{
"_args": [
[
{
"raw": "d3-chord@1.0.4",
"scope": null,
"escapedName": "d3-chord",
"name": "d3-chord",
"rawSpec": "1.0.4",
"spec": "1.0.4",
"type": "version"
},
"C:\\Users\\Giuliano\\worldwind\\nasaworldwind\\node\\node_modules\\d3"
]
],
"_from": "d3-chord@1.0.4",
"_id": "d3-chord@1.0.4",
"_inCache": true,
"_location": "/d3-chord",
"_nodeVersion": "7.3.0",
"_npmOperationalInternal": {
"host": "packages-12-west.internal.npmjs.com",
"tmp": "tmp/d3-chord-1.0.4.tgz_1489170070509_0.23624127125367522"
},
"_npmUser": {
"name": "mbostock",
"email": "mike@ocks.org"
},
"_npmVersion": "3.10.10",
"_phantomChildren": {},
"_requested": {
"raw": "d3-chord@1.0.4",
"scope": null,
"escapedName": "d3-chord",
"name": "d3-chord",
"rawSpec": "1.0.4",
"spec": "1.0.4",
"type": "version"
},
"_requiredBy": [
"/d3"
],
"_resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-1.0.4.tgz",
"_shasum": "7dec4f0ba886f713fe111c45f763414f6f74ca2c",
"_shrinkwrap": null,
"_spec": "d3-chord@1.0.4",
"_where": "C:\\Users\\Giuliano\\worldwind\\nasaworldwind\\node\\node_modules\\d3",
"author": {
"name": "Mike Bostock",
"url": "http://bost.ocks.org/mike"
},
"bugs": {
"url": "https://github.com/d3/d3-chord/issues"
},
"dependencies": {
"d3-array": "1",
"d3-path": "1"
},
"description": "Visualize relationships or network flow with an aesthetically-pleasing circular layout.",
"devDependencies": {
"eslint": "3",
"package-preamble": "0.0",
"rollup": "0.41",
"tape": "4",
"uglify-js": "^2.8.11"
},
"directories": {},
"dist": {
"shasum": "7dec4f0ba886f713fe111c45f763414f6f74ca2c",
"tarball": "https://registry.npmjs.org/d3-chord/-/d3-chord-1.0.4.tgz"
},
"gitHead": "7341594ea53679c84d56d308e14503982fd6ccfd",
"homepage": "https://d3js.org/d3-chord/",
"jsnext:main": "index",
"keywords": [
"d3",
"d3-module",
"chord",
"radial",
"network",
"flow"
],
"license": "BSD-3-Clause",
"main": "build/d3-chord.js",
"maintainers": [
{
"name": "mbostock",
"email": "mike@ocks.org"
}
],
"module": "index",
"name": "d3-chord",
"optionalDependencies": {},
"readme": "# d3-chord\n\nVisualize relationships or network flow with an aesthetically-pleasing circular layout.\n\n[](http://bl.ocks.org/mbostock/4062006)\n\n## Installing\n\nIf you use NPM, `npm install d3-chord`. Otherwise, download the [latest release](https://github.com/d3/d3-chord/releases/latest). You can also load directly from [d3js.org](https://d3js.org), either as a [standalone library](https://d3js.org/d3-chord.v1.min.js) or as part of [D3 4.0](https://github.com/d3/d3). AMD, CommonJS, and vanilla environments are supported. In vanilla, a `d3` global is exported:\n\n```html\n\n\n\n\n```\n\n[Try d3-chord in your browser.](https://tonicdev.com/npm/d3-chord)\n\n## API Reference\n\n# d3.chord() [<>](https://github.com/d3/d3-chord/blob/master/src/chord.js \"Source\")\n\nConstructs a new chord layout with the default settings.\n\n# chord(matrix) [<>](https://github.com/d3/d3-chord/blob/master/src/chord.js#L19 \"Source\")\n\nComputes the chord layout for the specified square *matrix* of size *n*×*n*, where the *matrix* represents the directed flow amongst a network (a complete digraph) of *n* nodes. The given *matrix* must be an array of length *n*, where each element *matrix*[*i*] is an array of *n* numbers, where each *matrix*[*i*][*j*] represents the flow from the *i*th node in the network to the *j*th node. Each number *matrix*[*i*][*j*] must be nonnegative, though it can be zero if there is no flow from node *i* to node *j*. From the [Circos tableviewer example](http://mkweb.bcgsc.ca/circos/guide/tables/):\n\n```js\nvar matrix = [\n [11975, 5871, 8916, 2868],\n [ 1951, 10048, 2060, 6171],\n [ 8010, 16145, 8090, 8045],\n [ 1013, 990, 940, 6907]\n];\n```\n\nThe return value of *chord*(*matrix*) is an array of *chords*, where each chord represents the combined bidirectional flow between two nodes *i* and *j* (where *i* may be equal to *j*) and is an object with the following properties:\n\n* `source` - the source subgroup\n* `target` - the target subgroup\n\nEach source and target subgroup is also an object with the following properties:\n\n* `startAngle` - the start angle in radians\n* `endAngle` - the end angle in radians\n* `value` - the flow value *matrix*[*i*][*j*]\n* `index` - the node index *i*\n* `subindex` - the node index *j*\n\nThe chords are typically passed to [d3.ribbon](#ribbon) to display the network relationships. The returned array includes only chord objects for which the value *matrix*[*i*][*j*] or *matrix*[*j*][*i*] is non-zero. Furthermore, the returned array only contains unique chords: a given chord *ij* represents the bidirectional flow from *i* to *j* *and* from *j* to *i*, and does not contain a duplicate chord *ji*; *i* and *j* are chosen such that the chord’s source always represents the larger of *matrix*[*i*][*j*] and *matrix*[*j*][*i*]. In other words, *chord*.source.index equals *chord*.target.subindex, *chord*.source.subindex equals *chord*.target.index, *chord*.source.value is greater than or equal to *chord*.target.value, and *chord*.source.value is always greater than zero.\n\nThe *chords* array also defines a secondary array of length *n*, *chords*.groups, where each group represents the combined outflow for node *i*, corresponding to the elements *matrix*[*i*][0 … *n* - 1], and is an object with the following properties:\n\n* `startAngle` - the start angle in radians\n* `endAngle` - the end angle in radians\n* `value` - the total outgoing flow value for node *i*\n* `index` - the node index *i*\n\nThe groups are typically passed to [d3.arc](https://github.com/d3/d3-shape#arc) to produce a donut chart around the circumference of the chord layout.\n\n# chord.padAngle([angle]) [<>](https://github.com/d3/d3-chord/blob/master/src/chord.js#L104 \"Source\")\n\nIf *angle* is specified, sets the pad angle between adjacent groups to the specified number in radians and returns this chord layout. If *angle* is not specified, returns the current pad angle, which defaults to zero.\n\n# chord.sortGroups([compare]) [<>](https://github.com/d3/d3-chord/blob/master/src/chord.js#L108 \"Source\")\n\nIf *compare* is specified, sets the group comparator to the specified function or null and returns this chord layout. If *compare* is not specified, returns the current group comparator, which defaults to null. If the group comparator is non-null, it is used to sort the groups by their total outflow. See also [d3.ascending](https://github.com/d3/d3-array#ascending) and [d3.descending](https://github.com/d3/d3-array#descending).\n\n# chord.sortSubgroups([compare]) [<>](https://github.com/d3/d3-chord/blob/master/src/chord.js#L112 \"Source\")\n\nIf *compare* is specified, sets the subgroup comparator to the specified function or null and returns this chord layout. If *compare* is not specified, returns the current subgroup comparator, which defaults to null. If the subgroup comparator is non-null, it is used to sort the subgroups corresponding to *matrix*[*i*][0 … *n* - 1] for a given group *i* by their total outflow. See also [d3.ascending](https://github.com/d3/d3-array#ascending) and [d3.descending](https://github.com/d3/d3-array#descending).\n\n# chord.sortChords([compare]) [<>](https://github.com/d3/d3-chord/blob/master/src/chord.js#L116 \"Source\")\n\nIf *compare* is specified, sets the chord comparator to the specified function or null and returns this chord layout. If *compare* is not specified, returns the current chord comparator, which defaults to null. If the chord comparator is non-null, it is used to sort the [chords](#_chord) by their combined flow; this only affects the *z*-order of the chords. See also [d3.ascending](https://github.com/d3/d3-array#ascending) and [d3.descending](https://github.com/d3/d3-array#descending).\n\n# d3.ribbon() [<>](https://github.com/d3/d3-chord/blob/master/src/ribbon.js \"Source\")\n\nCreates a new ribbon generator with the default settings.\n\n# ribbon(arguments…) [<>](https://github.com/d3/d3-chord/blob/master/src/ribbon.js#L34 \"Source\")\n\nGenerates a ribbon for the given *arguments*. The *arguments* are arbitrary; they are simply propagated to the ribbon generator’s accessor functions along with the `this` object. For example, with the default settings, a [chord object](#_chord) expected:\n\n```js\nvar ribbon = d3.ribbon();\n\nribbon({\n source: {startAngle: 0.7524114, endAngle: 1.1212972, radius: 240},\n target: {startAngle: 1.8617078, endAngle: 1.9842927, radius: 240}\n}); // \"M164.0162810494058,-175.21032946354026A240,240,0,0,1,216.1595644740915,-104.28347273835429Q0,0,229.9158815306728,68.8381247563705A240,240,0,0,1,219.77316791012538,96.43523560788266Q0,0,164.0162810494058,-175.21032946354026Z\"\n```\n\nOr equivalently if the radius is instead defined as a constant:\n\n```js\nvar ribbon = d3.ribbon()\n .radius(240);\n\nribbon({\n source: {startAngle: 0.7524114, endAngle: 1.1212972},\n target: {startAngle: 1.8617078, endAngle: 1.9842927}\n}); // \"M164.0162810494058,-175.21032946354026A240,240,0,0,1,216.1595644740915,-104.28347273835429Q0,0,229.9158815306728,68.8381247563705A240,240,0,0,1,219.77316791012538,96.43523560788266Q0,0,164.0162810494058,-175.21032946354026Z\"\n```\n\nIf the ribbon generator has a context, then the ribbon is rendered to this context as a sequence of path method calls and this function returns void. Otherwise, a path data string is returned.\n\n# ribbon.source([source]) [<>](https://github.com/d3/d3-chord/blob/master/src/ribbon.js#L74 \"Source\")\n\nIf *source* is specified, sets the source accessor to the specified function and returns this ribbon generator. If *source* is not specified, returns the current source accessor, which defaults to:\n\n```js\nfunction source(d) {\n return d.source;\n}\n```\n\n# ribbon.target([target]) [<>](https://github.com/d3/d3-chord/blob/master/src/ribbon.js#L78 \"Source\")\n\nIf *target* is specified, sets the target accessor to the specified function and returns this ribbon generator. If *target* is not specified, returns the current target accessor, which defaults to:\n\n```js\nfunction target(d) {\n return d.target;\n}\n```\n\n# ribbon.radius([radius]) [<>](https://github.com/d3/d3-chord/blob/master/src/ribbon.js#L62 \"Source\")\n\nIf *radius* is specified, sets the radius accessor to the specified function and returns this ribbon generator. If *radius* is not specified, returns the current radius accessor, which defaults to:\n\n```js\nfunction radius(d) {\n return d.radius;\n}\n```\n\n# ribbon.startAngle([angle]) [<>](https://github.com/d3/d3-chord/blob/master/src/ribbon.js#L66 \"Source\")\n\nIf *angle* is specified, sets the start angle accessor to the specified function and returns this ribbon generator. If *angle* is not specified, returns the current start angle accessor, which defaults to:\n\n```js\nfunction startAngle(d) {\n return d.startAngle;\n}\n```\n\nThe *angle* is specified in radians, with 0 at -*y* (12 o’clock) and positive angles proceeding clockwise.\n\n# ribbon.endAngle([angle]) [<>](https://github.com/d3/d3-chord/blob/master/src/ribbon.js#L70 \"Source\")\n\nIf *angle* is specified, sets the end angle accessor to the specified function and returns this ribbon generator. If *angle* is not specified, returns the current end angle accessor, which defaults to:\n\n```js\nfunction endAngle(d) {\n return d.endAngle;\n}\n```\n\nThe *angle* is specified in radians, with 0 at -*y* (12 o’clock) and positive angles proceeding clockwise.\n\n# ribbon.context([context]) [<>](https://github.com/d3/d3-chord/blob/master/src/ribbon.js#L82 \"Source\")\n\nIf *context* is specified, sets the context and returns this ribbon generator. If *context* is not specified, returns the current context, which defaults to null. If the context is not null, then the [generated ribbon](#_ribbon) is rendered to this context as a sequence of [path method](http://www.w3.org/TR/2dcontext/#canvaspathmethods) calls. Otherwise, a [path data](http://www.w3.org/TR/SVG/paths.html#PathData) string representing the generated ribbon is returned. See also [d3-path](https://github.com/d3/d3-path).\n",
"readmeFilename": "README.md",
"repository": {
"type": "git",
"url": "git+https://github.com/d3/d3-chord.git"
},
"scripts": {
"postpublish": "git push && git push --tags && cd ../d3.github.com && git pull && cp ../d3-chord/build/d3-chord.js d3-chord.v1.js && cp ../d3-chord/build/d3-chord.min.js d3-chord.v1.min.js && git add d3-chord.v1.js d3-chord.v1.min.js && git commit -m \"d3-chord ${npm_package_version}\" && git push && cd - && zip -j build/d3-chord.zip -- LICENSE README.md build/d3-chord.js build/d3-chord.min.js",
"prepublish": "npm run test && uglifyjs --preamble \"$(preamble)\" build/d3-chord.js -c -m -o build/d3-chord.min.js",
"pretest": "rm -rf build && mkdir build && rollup --banner \"$(preamble)\" -g d3-array:d3,d3-path:d3 -f umd -n d3 -o build/d3-chord.js -- index.js",
"test": "tape 'test/**/*-test.js' && eslint index.js src"
},
"version": "1.0.4"
}