diff --git a/README.md b/README.md
index 6b9c8d6..73ba02a 100644
--- a/README.md
+++ b/README.md
@@ -187,6 +187,10 @@ If *iterations* is specified, sets the number of relaxation iterations when [gen
If *circularLinkGap* is specified, sets the gap (in pixels) between circular links that travel next to each other. If *circularLinkGap*, it defaults to 2.
+# sankey.nodeSort([nodeSort]) [<>](https://github.com/d3/d3-sankey/blob/master/src/sankey.js#L151 "Source")
+If *nodeSort* is specified, sets the node sort method and returns this Sankey generator. If *sort* is not specified, returns the current node sort method, which defaults to *undefined*, indicating that vertical order of nodes within each column will be determined automatically by the layout. If *sort* is null, the order is fixed by the input. Otherwise, the specified *sort* function determines the order; the function is passed two nodes, and must return a value less than 0 if the first node should be above the second, and a value greater than 0 if the second node should be above the first, or 0 if the order is not specified.
+Sorting is only applied to nodes that both part or not part of a circular loop. When the result of a nodeSort is 0 then nodes are sorted by the top (y0) of the node
+
### Alignments
See [*sankey*.nodeAlign](#sankey_nodeAlign).
diff --git a/dist/d3-sankey-circular.es.js b/dist/d3-sankey-circular.es.js
index fe5fde3..d150d16 100644
--- a/dist/d3-sankey-circular.es.js
+++ b/dist/d3-sankey-circular.es.js
@@ -43,31 +43,6 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
/// https://github.com/tomshanley/d3-sankeyCircular-circular
-// sort links' breadth (ie top to bottom in a column), based on their source nodes' breadths
-function ascendingSourceBreadth(a, b) {
- return ascendingBreadth(a.source, b.source) || a.index - b.index;
-}
-
-// sort links' breadth (ie top to bottom in a column), based on their target nodes' breadths
-function ascendingTargetBreadth(a, b) {
- return ascendingBreadth(a.target, b.target) || a.index - b.index;
-}
-
-// sort nodes' breadth (ie top to bottom in a column)
-// if both nodes have circular links, or both don't have circular links, then sort by the top (y0) of the node
-// else push nodes that have top circular links to the top, and nodes that have bottom circular links to the bottom
-function ascendingBreadth(a, b) {
- if (a.partOfCycle === b.partOfCycle) {
- return a.y0 - b.y0;
- } else {
- if (a.circularLinkType === 'top' || b.circularLinkType === 'bottom') {
- return -1;
- } else {
- return 1;
- }
- }
-}
-
// return the value of a node or link
function value(d) {
return d.value;
@@ -139,7 +114,8 @@ function sankeyCircular () {
iterations = 32,
circularLinkGap = 2,
paddingRatio,
- sortNodes = null;
+ sortNodes = null,
+ nodeSort = null;
function sankeyCircular() {
var graph = {
@@ -186,7 +162,10 @@ function sankeyCircular () {
sortTargetLinks(graph, y1, id);
}
- // 8.1 Adjust node and link positions back to fill height of chart area if compressed
+ // 8.1 Fix nodes overlapping after sortNodes
+ resolveNodesOverlap(graph, y0, py);
+
+ // 8.2 Adjust node and link positions back to fill height of chart area if compressed
fillHeight(graph, y0, y1);
// 9. Calculate visually appealling path for the circular paths, and create the "d" string
@@ -195,6 +174,31 @@ function sankeyCircular () {
return graph;
} // end of sankeyCircular function
+ // sort links' breadth (ie top to bottom in a column), based on their source nodes' breadths
+ function ascendingSourceBreadth(a, b) {
+ return ascendingBreadth(a.source, b.source) || a.index - b.index;
+ }
+
+ // sort links' breadth (ie top to bottom in a column), based on their target nodes' breadths
+ function ascendingTargetBreadth(a, b) {
+ return ascendingBreadth(a.target, b.target) || a.index - b.index;
+ }
+
+ // sort nodes' breadth (ie top to bottom in a column)
+ // if both nodes have circular links, or both don't have circular links, then sort by the top (y0) of the node
+ // else push nodes that have top circular links to the top, and nodes that have bottom circular links to the bottom
+ function ascendingBreadth(a, b) {
+ if (a.partOfCycle === b.partOfCycle) {
+ if (nodeSort) return nodeSort(a, b) || a.y0 - b.y0;
+ return a.y0 - b.y0;
+ } else {
+ if (a.circularLinkType === 'top' || b.circularLinkType === 'bottom') {
+ return -1;
+ } else {
+ return 1;
+ }
+ }
+ }
// Set the sankeyCircular parameters
// nodeID, nodeAlign, nodeWidth, nodePadding, nodes, links, size, extent, iterations, nodePaddingRatio, circularLinkGap
@@ -246,6 +250,10 @@ function sankeyCircular () {
return arguments.length ? (sortNodes = _, sankeyCircular) : sortNodes;
};
+ sankeyCircular.nodeSort = function (_) {
+ return arguments.length ? (nodeSort = _, sankeyCircular) : nodeSort;
+ };
+
sankeyCircular.update = function (graph) {
// 5. Calculate the nodes' depth based on the incoming and outgoing links
// Sets the nodes':
@@ -440,7 +448,7 @@ function sankeyCircular () {
// assign column numbers, and get max value
graph.nodes.forEach(function (node) {
- node.column = Math.floor(align.call(null, node, x));
+ node.column = sortNodes !== null ? node[sortNodes] : Math.floor(align.call(null, node, x));
});
}
@@ -529,44 +537,28 @@ function sankeyCircular () {
// For each node in each column, check the node's vertical position in relation to its targets and sources vertical position
// and shift up/down to be closer to the vertical middle of those targets and sources
- function relaxLeftAndRight(alpha, id) {
- var columnsLength = columns.length;
-
+ function relaxLeftAndRight(alpha) {
columns.forEach(function (nodes) {
- var n = nodes.length;
- var depth = nodes[0].depth;
-
nodes.forEach(function (node) {
// check the node is not an orphan
var nodeHeight;
if (node.sourceLinks.length || node.targetLinks.length) {
- if (node.partOfCycle && numberOfNonSelfLinkingCycles(node, id) > 0) ; else if (depth == 0 && n == 1) {
- nodeHeight = node.y1 - node.y0;
-
- node.y0 = y1 / 2 - nodeHeight / 2;
- node.y1 = y1 / 2 + nodeHeight / 2;
- } else if (depth == columnsLength - 1 && n == 1) {
- nodeHeight = node.y1 - node.y0;
-
- node.y0 = y1 / 2 - nodeHeight / 2;
- node.y1 = y1 / 2 + nodeHeight / 2;
+ nodeHeight = node.y1 - node.y0;
+ node.y0 = y1 / 2 - nodeHeight / 2;
+ node.y1 = y1 / 2 + nodeHeight / 2;
+ var avg = 0;
+
+ var avgTargetY = mean(node.sourceLinks, linkTargetCenter);
+ var avgSourceY = mean(node.targetLinks, linkSourceCenter);
+ if (avgTargetY && avgSourceY) {
+ avg = (avgTargetY + avgSourceY) / 2;
} else {
- var avg = 0;
-
- var avgTargetY = mean(node.sourceLinks, linkTargetCenter);
- var avgSourceY = mean(node.targetLinks, linkSourceCenter);
-
- if (avgTargetY && avgSourceY) {
- avg = (avgTargetY + avgSourceY) / 2;
- } else {
- avg = avgTargetY || avgSourceY;
- }
-
- var dy = (avg - nodeCenter(node)) * alpha;
- // positive if it node needs to move down
- node.y0 += dy;
- node.y1 += dy;
+ avg = avgTargetY || avgSourceY;
}
+ var dy = (avg - nodeCenter(node)) * alpha;
+ // positive if it node needs to move down
+ node.y0 += dy;
+ node.y1 += dy;
}
});
});
@@ -1487,4 +1479,41 @@ function fillHeight(graph, y0, y1) {
}
}
-export { sankeyCircular, center as sankeyCenter, left as sankeyLeft, right as sankeyRight, justify as sankeyJustify };
+
+function resolveNodesOverlap(graph, y0, py) {
+ var columns = nest().key(function (d) {
+ return d.column;
+ }).sortKeys(ascending).entries(graph.nodes).map(function (d) {
+ return d.values;
+ });
+
+ columns.forEach(function (nodes) {
+ var node,
+ dy,
+ y = y0,
+ n = nodes.length,
+ i;
+ // Push any overlapping nodes down.
+ nodes.sort(ascendingBreadth);
+
+ for (i = 0; i < n; ++i) {
+ node = nodes[i];
+ dy = y - node.y0;
+
+ if (dy > 0) {
+ node.y0 += dy;
+ node.y1 += dy;
+ node.targetLinks.forEach(function (l) {
+ l.y1 = l.y1 + dy;
+ });
+ node.sourceLinks.forEach(function (l) {
+ l.y0 = l.y0 + dy;
+ });
+ }
+ y = node.y1 + py;
+ }
+ });
+}
+
+export { sankeyCircular, addCircularPathData, center as sankeyCenter, left as sankeyLeft, right as sankeyRight, justify as sankeyJustify };
+
diff --git a/dist/d3-sankey-circular.js b/dist/d3-sankey-circular.js
index 5ec08f5..85827d7 100644
--- a/dist/d3-sankey-circular.js
+++ b/dist/d3-sankey-circular.js
@@ -46,31 +46,6 @@
/// https://github.com/tomshanley/d3-sankeyCircular-circular
- // sort links' breadth (ie top to bottom in a column), based on their source nodes' breadths
- function ascendingSourceBreadth(a, b) {
- return ascendingBreadth(a.source, b.source) || a.index - b.index;
- }
-
- // sort links' breadth (ie top to bottom in a column), based on their target nodes' breadths
- function ascendingTargetBreadth(a, b) {
- return ascendingBreadth(a.target, b.target) || a.index - b.index;
- }
-
- // sort nodes' breadth (ie top to bottom in a column)
- // if both nodes have circular links, or both don't have circular links, then sort by the top (y0) of the node
- // else push nodes that have top circular links to the top, and nodes that have bottom circular links to the bottom
- function ascendingBreadth(a, b) {
- if (a.partOfCycle === b.partOfCycle) {
- return a.y0 - b.y0;
- } else {
- if (a.circularLinkType === 'top' || b.circularLinkType === 'bottom') {
- return -1;
- } else {
- return 1;
- }
- }
- }
-
// return the value of a node or link
function value(d) {
return d.value;
@@ -142,7 +117,8 @@
iterations = 32,
circularLinkGap = 2,
paddingRatio,
- sortNodes = null;
+ sortNodes = null,
+ nodeSort = null;
function sankeyCircular() {
var graph = {
@@ -189,7 +165,10 @@
sortTargetLinks(graph, y1, id);
}
- // 8.1 Adjust node and link positions back to fill height of chart area if compressed
+ // 8.1 Fix nodes overlapping after sortNodes
+ resolveNodesOverlap(graph, y0, py);
+
+ // 8.2 Adjust node and link positions back to fill height of chart area if compressed
fillHeight(graph, y0, y1);
// 9. Calculate visually appealling path for the circular paths, and create the "d" string
@@ -198,6 +177,31 @@
return graph;
} // end of sankeyCircular function
+ // sort links' breadth (ie top to bottom in a column), based on their source nodes' breadths
+ function ascendingSourceBreadth(a, b) {
+ return ascendingBreadth(a.source, b.source) || a.index - b.index;
+ }
+
+ // sort links' breadth (ie top to bottom in a column), based on their target nodes' breadths
+ function ascendingTargetBreadth(a, b) {
+ return ascendingBreadth(a.target, b.target) || a.index - b.index;
+ }
+
+ // sort nodes' breadth (ie top to bottom in a column)
+ // if both nodes have circular links, or both don't have circular links, then sort by the top (y0) of the node
+ // else push nodes that have top circular links to the top, and nodes that have bottom circular links to the bottom
+ function ascendingBreadth(a, b) {
+ if (a.partOfCycle === b.partOfCycle) {
+ if (nodeSort) return nodeSort(a, b) || a.y0 - b.y0;
+ return a.y0 - b.y0;
+ } else {
+ if (a.circularLinkType === 'top' || b.circularLinkType === 'bottom') {
+ return -1;
+ } else {
+ return 1;
+ }
+ }
+ }
// Set the sankeyCircular parameters
// nodeID, nodeAlign, nodeWidth, nodePadding, nodes, links, size, extent, iterations, nodePaddingRatio, circularLinkGap
@@ -249,6 +253,10 @@
return arguments.length ? (sortNodes = _, sankeyCircular) : sortNodes;
};
+ sankeyCircular.nodeSort = function (_) {
+ return arguments.length ? (nodeSort = _, sankeyCircular) : nodeSort;
+ };
+
sankeyCircular.update = function (graph) {
// 5. Calculate the nodes' depth based on the incoming and outgoing links
// Sets the nodes':
@@ -443,7 +451,7 @@
// assign column numbers, and get max value
graph.nodes.forEach(function (node) {
- node.column = Math.floor(align.call(null, node, x));
+ node.column = sortNodes !== null ? node[sortNodes] : Math.floor(align.call(null, node, x));
});
}
@@ -532,44 +540,28 @@
// For each node in each column, check the node's vertical position in relation to its targets and sources vertical position
// and shift up/down to be closer to the vertical middle of those targets and sources
- function relaxLeftAndRight(alpha, id) {
- var columnsLength = columns.length;
-
+ function relaxLeftAndRight(alpha) {
columns.forEach(function (nodes) {
- var n = nodes.length;
- var depth = nodes[0].depth;
-
nodes.forEach(function (node) {
// check the node is not an orphan
var nodeHeight;
if (node.sourceLinks.length || node.targetLinks.length) {
- if (node.partOfCycle && numberOfNonSelfLinkingCycles(node, id) > 0) ; else if (depth == 0 && n == 1) {
- nodeHeight = node.y1 - node.y0;
-
- node.y0 = y1 / 2 - nodeHeight / 2;
- node.y1 = y1 / 2 + nodeHeight / 2;
- } else if (depth == columnsLength - 1 && n == 1) {
- nodeHeight = node.y1 - node.y0;
-
- node.y0 = y1 / 2 - nodeHeight / 2;
- node.y1 = y1 / 2 + nodeHeight / 2;
+ nodeHeight = node.y1 - node.y0;
+ node.y0 = y1 / 2 - nodeHeight / 2;
+ node.y1 = y1 / 2 + nodeHeight / 2;
+ var avg = 0;
+
+ var avgTargetY = d3Array.mean(node.sourceLinks, linkTargetCenter);
+ var avgSourceY = d3Array.mean(node.targetLinks, linkSourceCenter);
+ if (avgTargetY && avgSourceY) {
+ avg = (avgTargetY + avgSourceY) / 2;
} else {
- var avg = 0;
-
- var avgTargetY = d3Array.mean(node.sourceLinks, linkTargetCenter);
- var avgSourceY = d3Array.mean(node.targetLinks, linkSourceCenter);
-
- if (avgTargetY && avgSourceY) {
- avg = (avgTargetY + avgSourceY) / 2;
- } else {
- avg = avgTargetY || avgSourceY;
- }
-
- var dy = (avg - nodeCenter(node)) * alpha;
- // positive if it node needs to move down
- node.y0 += dy;
- node.y1 += dy;
+ avg = avgTargetY || avgSourceY;
}
+ var dy = (avg - nodeCenter(node)) * alpha;
+ // positive if it node needs to move down
+ node.y0 += dy;
+ node.y1 += dy;
}
});
});
@@ -1490,7 +1482,43 @@
}
}
+ function resolveNodesOverlap(graph, y0, py) {
+ var columns = d3Collection.nest().key(function (d) {
+ return d.column;
+ }).sortKeys(d3Array.ascending).entries(graph.nodes).map(function (d) {
+ return d.values;
+ });
+
+ columns.forEach(function (nodes) {
+ var node,
+ dy,
+ y = y0,
+ n = nodes.length,
+ i;
+ // Push any overlapping nodes down.
+ nodes.sort(ascendingBreadth);
+
+ for (i = 0; i < n; ++i) {
+ node = nodes[i];
+ dy = y - node.y0;
+
+ if (dy > 0) {
+ node.y0 += dy;
+ node.y1 += dy;
+ node.targetLinks.forEach(function (l) {
+ l.y1 = l.y1 + dy;
+ });
+ node.sourceLinks.forEach(function (l) {
+ l.y0 = l.y0 + dy;
+ });
+ }
+ y = node.y1 + py;
+ }
+ });
+ }
+
exports.sankeyCircular = sankeyCircular;
+ exports.addCircularPathData = addCircularPathData;
exports.sankeyCenter = center;
exports.sankeyLeft = left;
exports.sankeyRight = right;
diff --git a/example/example-data.js b/example/example-data.js
index 42bcb13..46c1f36 100644
--- a/example/example-data.js
+++ b/example/example-data.js
@@ -1,608 +1,1417 @@
let data2 = {
- "nodes": [
- { "name": "startA", "col": 0 },
- { "name": "startB", "col": 0 },
- { "name": "process1", "col": 1 },
- { "name": "process2", "col": 1 },
- { "name": "process3", "col": 2 },
- { "name": "process4", "col": 2 },
- { "name": "process5", "col": 3 },
- { "name": "process6", "col": 4 },
- { "name": "process7", "col": 5 },
- { "name": "process8", "col": 6 },
- { "name": "process9", "col": 7 },
- { "name": "process10", "col": 6 },
- { "name": "process11", "col": 8 },
- { "name": "process12", "col": 6 },
- { "name": "process13", "col": 9 },
- { "name": "process14", "col": 9 },
- { "name": "process15", "col": 8 },
- { "name": "process16", "col": 9 },
- { "name": "finishA", "col": 10 },
- { "name": "finishB", "col": 10 }
- ],
- "links": [
- { "source": "startA", "target": "process8", "value": 20, "optimal": "yes" },
- { "source": "startA", "target": "process5", "value": 20, "optimal": "yes" },
- { "source": "startA", "target": "process6", "value": 20, "optimal": "yes" },
- { "source": "startB", "target": "process1", "value": 15, "optimal": "yes" },
- { "source": "startB", "target": "process5", "value": 15, "optimal": "yes" },
- { "source": "process1", "target": "process4", "value": 30, "optimal": "yes" },
- { "source": "process4", "target": "process1", "value": 10, "optimal": "yes" },
- { "source": "process2", "target": "process7", "value": 35, "optimal": "yes" },
- { "source": "process1", "target": "process3", "value": 20, "optimal": "yes" },
- { "source": "process5", "target": "process1", "value": 20, "optimal": "yes" },
- { "source": "process6", "target": "startA", "value": 5, "optimal": "yes" },
- { "source": "process4", "target": "process2", "value": 5, "optimal": "yes" },
- { "source": "process6", "target": "process8", "value": 15, "optimal": "yes" },
- { "source": "process4", "target": "startB", "value": 5, "optimal": "yes" },
- { "source": "process3", "target": "process2", "value": 15, "optimal": "yes" },
- { "source": "process3", "target": "startB", "value": 5, "optimal": "yes" },
- { "source": "process15", "target": "process13", "value": 10, "optimal": "yes" },
- { "source": "process13", "target": "process9", "value": 10, "optimal": "yes" },
- { "source": "process7", "target": "startB", "value": 20, "optimal": "yes" },
- { "source": "process8", "target": "process1", "value": 10, "optimal": "yes" },
- { "source": "process8", "target": "process16", "value": 10, "optimal": "yes" },
- { "source": "process16", "target": "process9", "value": 10, "optimal": "yes" },
- { "source": "process8", "target": "process11", "value": 25, "optimal": "yes" },
- { "source": "process11", "target": "process10", "value": 20, "optimal": "yes" },
- { "source": "process4", "target": "process12", "value": 10, "optimal": "yes" },
- { "source": "process12", "target": "process11", "value": 10, "optimal": "yes" },
- { "source": "process7", "target": "process15", "value": 15, "optimal": "yes" },
- { "source": "process15", "target": "process14", "value": 10, "optimal": "yes" },
- { "source": "process10", "target": "process13", "value": 10, "optimal": "yes" },
- { "source": "process10", "target": "process16", "value": 10, "optimal": "yes" },
- { "source": "process14", "target": "finishB", "value": 10, "optimal": "yes" },
- { "source": "process9", "target": "finishA", "value": 10, "optimal": "yes" },
- { "source": "process16", "target": "process8", "value": 10, "optimal": "yes" },
- { "source": "process9", "target": "finishB", "value": 10, "optimal": "yes" },
- { "source": "process15", "target": "finishB", "value": 10, "optimal": "yes" },
- { "source": "process15", "target": "finishA", "value": 10, "optimal": "yes" },
- { "source": "process11", "target": "process15", "value": 25, "optimal": "yes" }
- ]
- };
+ nodes: [
+ { name: "startA", col: 0 },
+ { name: "startB", col: 0 },
+ { name: "process1", col: 1 },
+ { name: "process2", col: 1 },
+ { name: "process3", col: 2 },
+ { name: "process4", col: 2 },
+ { name: "process5", col: 3 },
+ { name: "process6", col: 4 },
+ { name: "process7", col: 5 },
+ { name: "process8", col: 6 },
+ { name: "process9", col: 7 },
+ { name: "process10", col: 6 },
+ { name: "process11", col: 8 },
+ { name: "process12", col: 6 },
+ { name: "process13", col: 9 },
+ { name: "process14", col: 9 },
+ { name: "process15", col: 8 },
+ { name: "process16", col: 9 },
+ { name: "finishA", col: 10 },
+ { name: "finishB", col: 10 },
+ ],
+ links: [
+ { source: "startA", target: "process8", value: 20, optimal: "yes" },
+ { source: "startA", target: "process5", value: 20, optimal: "yes" },
+ { source: "startA", target: "process6", value: 20, optimal: "yes" },
+ { source: "startB", target: "process1", value: 15, optimal: "yes" },
+ { source: "startB", target: "process5", value: 15, optimal: "yes" },
+ { source: "process1", target: "process4", value: 30, optimal: "yes" },
+ { source: "process4", target: "process1", value: 10, optimal: "yes" },
+ { source: "process2", target: "process7", value: 35, optimal: "yes" },
+ { source: "process1", target: "process3", value: 20, optimal: "yes" },
+ { source: "process5", target: "process1", value: 20, optimal: "yes" },
+ { source: "process6", target: "startA", value: 5, optimal: "yes" },
+ { source: "process4", target: "process2", value: 5, optimal: "yes" },
+ { source: "process6", target: "process8", value: 15, optimal: "yes" },
+ { source: "process4", target: "startB", value: 5, optimal: "yes" },
+ { source: "process3", target: "process2", value: 15, optimal: "yes" },
+ { source: "process3", target: "startB", value: 5, optimal: "yes" },
+ { source: "process15", target: "process13", value: 10, optimal: "yes" },
+ { source: "process13", target: "process9", value: 10, optimal: "yes" },
+ { source: "process7", target: "startB", value: 20, optimal: "yes" },
+ { source: "process8", target: "process1", value: 10, optimal: "yes" },
+ { source: "process8", target: "process16", value: 10, optimal: "yes" },
+ { source: "process16", target: "process9", value: 10, optimal: "yes" },
+ { source: "process8", target: "process11", value: 25, optimal: "yes" },
+ { source: "process11", target: "process10", value: 20, optimal: "yes" },
+ { source: "process4", target: "process12", value: 10, optimal: "yes" },
+ { source: "process12", target: "process11", value: 10, optimal: "yes" },
+ { source: "process7", target: "process15", value: 15, optimal: "yes" },
+ { source: "process15", target: "process14", value: 10, optimal: "yes" },
+ { source: "process10", target: "process13", value: 10, optimal: "yes" },
+ { source: "process10", target: "process16", value: 10, optimal: "yes" },
+ { source: "process14", target: "finishB", value: 10, optimal: "yes" },
+ { source: "process9", target: "finishA", value: 10, optimal: "yes" },
+ { source: "process16", target: "process8", value: 10, optimal: "yes" },
+ { source: "process9", target: "finishB", value: 10, optimal: "yes" },
+ { source: "process15", target: "finishB", value: 10, optimal: "yes" },
+ { source: "process15", target: "finishA", value: 10, optimal: "yes" },
+ { source: "process11", target: "process15", value: 25, optimal: "yes" },
+ ],
+};
+let data1 = {
+ nodes: [
+ { name: "start" },
+ { name: "process0-0" },
+ { name: "process0-1" },
+ { name: "process0-2" },
+ { name: "process0-3" },
+ { name: "process0-4" },
+ { name: "process0-5" },
+ { name: "process0-6" },
+ { name: "process0-7" },
+ { name: "process0-8" },
+ { name: "process0-9" },
+ { name: "process1-0" },
+ { name: "process1-1" },
+ { name: "process1-2" },
+ { name: "process1-3" },
+ { name: "process1-4" },
+ { name: "process1-5" },
+ { name: "process1-6" },
+ { name: "process1-7" },
+ { name: "process1-8" },
+ { name: "process1-9" },
+ { name: "process2-0" },
+ { name: "process2-1" },
+ { name: "process2-2" },
+ { name: "process2-3" },
+ { name: "process2-4" },
+ { name: "process2-5" },
+ { name: "process2-6" },
+ { name: "process2-7" },
+ { name: "process2-8" },
+ { name: "process2-9" },
+ { name: "process3-0" },
+ { name: "process3-1" },
+ { name: "process3-2" },
+ { name: "process3-3" },
+ { name: "process3-4" },
+ { name: "process3-5" },
+ { name: "process3-6" },
+ { name: "process3-7" },
+ { name: "process3-8" },
+ { name: "process3-9" },
+ { name: "process4-0" },
+ { name: "process4-1" },
+ { name: "process4-2" },
+ { name: "process4-3" },
+ { name: "process4-4" },
+ { name: "process4-5" },
+ { name: "process4-6" },
+ { name: "process4-7" },
+ { name: "process4-8" },
+ { name: "process4-9" },
+ { name: "process5-0" },
+ { name: "process5-1" },
+ { name: "process5-2" },
+ { name: "process5-3" },
+ { name: "process5-4" },
+ { name: "process5-5" },
+ { name: "process5-6" },
+ { name: "process5-7" },
+ { name: "process5-8" },
+ { name: "process5-9" },
+ { name: "finish" },
+ ],
+ links: [
+ { source: "start", target: "process0-0", value: 3 },
+ { source: "start", target: "process0-1", value: 1 },
+ { source: "start", target: "process0-2", value: 3 },
+ { source: "start", target: "process0-3", value: 5 },
+ { source: "start", target: "process0-4", value: 4 },
+ { source: "start", target: "process0-5", value: 2 },
+ { source: "start", target: "process0-6", value: 5 },
+ { source: "start", target: "process0-7", value: 5 },
+ { source: "start", target: "process0-8", value: 1 },
+ { source: "start", target: "process0-9", value: 1 },
+ { source: "process0-0", target: "process1-0", value: 3 },
+ { source: "process0-0", target: "process1-7", value: 1 },
+ { source: "process0-0", target: "process1-3", value: 5 },
+ { source: "process0-0", target: "process1-3", value: 2 },
+ { source: "process0-0", target: "process1-6", value: 4 },
+ { source: "process0-1", target: "process1-5", value: 4 },
+ { source: "process0-1", target: "process1-7", value: 2 },
+ { source: "process0-1", target: "process1-4", value: 1 },
+ { source: "process0-1", target: "process1-3", value: 4 },
+ { source: "process0-1", target: "process1-7", value: 1 },
+ { source: "process0-2", target: "process1-1", value: 3 },
+ { source: "process0-2", target: "process1-0", value: 4 },
+ { source: "process0-2", target: "process1-2", value: 2 },
+ { source: "process0-2", target: "process1-1", value: 3 },
+ { source: "process0-2", target: "process1-8", value: 1 },
+ { source: "process0-3", target: "process1-4", value: 3 },
+ { source: "process0-3", target: "process1-8", value: 1 },
+ { source: "process0-3", target: "process1-5", value: 4 },
+ { source: "process0-3", target: "process1-2", value: 3 },
+ { source: "process0-3", target: "process1-2", value: 2 },
+ { source: "process0-4", target: "process1-6", value: 4 },
+ { source: "process0-4", target: "process1-1", value: 3 },
+ { source: "process0-4", target: "process1-5", value: 5 },
+ { source: "process0-4", target: "process1-2", value: 5 },
+ { source: "process0-4", target: "process1-9", value: 4 },
+ { source: "process0-5", target: "process1-7", value: 4 },
+ { source: "process0-5", target: "process1-9", value: 4 },
+ { source: "process0-5", target: "process1-5", value: 1 },
+ { source: "process0-5", target: "process1-5", value: 2 },
+ { source: "process0-5", target: "process1-3", value: 4 },
+ { source: "process0-6", target: "process1-6", value: 2 },
+ { source: "process0-6", target: "process1-4", value: 5 },
+ { source: "process0-6", target: "process1-0", value: 2 },
+ { source: "process0-6", target: "process1-9", value: 2 },
+ { source: "process0-6", target: "process1-5", value: 3 },
+ { source: "process0-7", target: "process1-7", value: 1 },
+ { source: "process0-7", target: "process1-9", value: 3 },
+ { source: "process0-7", target: "process1-1", value: 4 },
+ { source: "process0-7", target: "process1-2", value: 5 },
+ { source: "process0-7", target: "process1-2", value: 3 },
+ { source: "process0-8", target: "process1-7", value: 3 },
+ { source: "process0-8", target: "process1-7", value: 3 },
+ { source: "process0-8", target: "process1-0", value: 3 },
+ { source: "process0-8", target: "process1-6", value: 5 },
+ { source: "process0-8", target: "process1-0", value: 1 },
+ { source: "process0-9", target: "process1-3", value: 5 },
+ { source: "process0-9", target: "process1-8", value: 5 },
+ { source: "process0-9", target: "process1-2", value: 5 },
+ { source: "process0-9", target: "process1-5", value: 2 },
+ { source: "process0-9", target: "process1-7", value: 4 },
+ { source: "process1-0", target: "process2-9", value: 3 },
+ { source: "process1-0", target: "process2-4", value: 5 },
+ { source: "process1-0", target: "process2-3", value: 1 },
+ { source: "process1-0", target: "process2-0", value: 4 },
+ { source: "process1-0", target: "process2-1", value: 1 },
+ { source: "process1-1", target: "process2-4", value: 3 },
+ { source: "process1-1", target: "process2-0", value: 3 },
+ { source: "process1-1", target: "process2-5", value: 1 },
+ { source: "process1-1", target: "process2-2", value: 4 },
+ { source: "process1-1", target: "process2-9", value: 5 },
+ { source: "process1-2", target: "process2-6", value: 3 },
+ { source: "process1-2", target: "process2-1", value: 1 },
+ { source: "process1-2", target: "process2-4", value: 4 },
+ { source: "process1-2", target: "process2-9", value: 1 },
+ { source: "process1-2", target: "process2-8", value: 3 },
+ { source: "process1-3", target: "process2-5", value: 4 },
+ { source: "process1-3", target: "process2-7", value: 5 },
+ { source: "process1-3", target: "process2-4", value: 4 },
+ { source: "process1-3", target: "process2-7", value: 5 },
+ { source: "process1-3", target: "process2-0", value: 3 },
+ { source: "process1-4", target: "process2-8", value: 3 },
+ { source: "process1-4", target: "process2-7", value: 3 },
+ { source: "process1-4", target: "process2-4", value: 2 },
+ { source: "process1-4", target: "process2-2", value: 5 },
+ { source: "process1-4", target: "process2-9", value: 3 },
+ { source: "process1-5", target: "process2-2", value: 1 },
+ { source: "process1-5", target: "process2-8", value: 5 },
+ { source: "process1-5", target: "process2-3", value: 3 },
+ { source: "process1-5", target: "process2-5", value: 4 },
+ { source: "process1-5", target: "process2-4", value: 3 },
+ { source: "process1-6", target: "process2-6", value: 5 },
+ { source: "process1-6", target: "process2-2", value: 3 },
+ { source: "process1-6", target: "process2-7", value: 4 },
+ { source: "process1-6", target: "process2-6", value: 5 },
+ { source: "process1-6", target: "process2-3", value: 5 },
+ { source: "process1-7", target: "process2-4", value: 4 },
+ { source: "process1-7", target: "process2-8", value: 3 },
+ { source: "process1-7", target: "process2-6", value: 1 },
+ { source: "process1-7", target: "process2-9", value: 3 },
+ { source: "process1-7", target: "process2-0", value: 5 },
+ { source: "process1-8", target: "process2-9", value: 5 },
+ { source: "process1-8", target: "process2-7", value: 1 },
+ { source: "process1-8", target: "process2-4", value: 1 },
+ { source: "process1-8", target: "process2-8", value: 3 },
+ { source: "process1-8", target: "process2-8", value: 2 },
+ { source: "process1-9", target: "process2-0", value: 2 },
+ { source: "process1-9", target: "process2-9", value: 2 },
+ { source: "process1-9", target: "process2-5", value: 5 },
+ { source: "process1-9", target: "process2-6", value: 4 },
+ { source: "process1-9", target: "process2-2", value: 3 },
+ { source: "process2-0", target: "process3-8", value: 5 },
+ { source: "process2-0", target: "process3-2", value: 4 },
+ { source: "process2-0", target: "process3-3", value: 2 },
+ { source: "process2-0", target: "process3-5", value: 5 },
+ { source: "process2-0", target: "process3-2", value: 1 },
+ { source: "process2-1", target: "process3-5", value: 5 },
+ { source: "process2-1", target: "process3-2", value: 3 },
+ { source: "process2-1", target: "process3-7", value: 2 },
+ { source: "process2-1", target: "process3-6", value: 5 },
+ { source: "process2-1", target: "process3-9", value: 3 },
+ { source: "process2-2", target: "process3-2", value: 4 },
+ { source: "process2-2", target: "process3-4", value: 1 },
+ { source: "process2-2", target: "process3-7", value: 4 },
+ { source: "process2-2", target: "process3-2", value: 3 },
+ { source: "process2-2", target: "process3-9", value: 2 },
+ { source: "process2-3", target: "process3-4", value: 4 },
+ { source: "process2-3", target: "process3-3", value: 2 },
+ { source: "process2-3", target: "process3-0", value: 1 },
+ { source: "process2-3", target: "process3-5", value: 2 },
+ { source: "process2-3", target: "process3-8", value: 4 },
+ { source: "process2-4", target: "process3-1", value: 3 },
+ { source: "process2-4", target: "process3-1", value: 3 },
+ { source: "process2-4", target: "process3-1", value: 3 },
+ { source: "process2-4", target: "process3-4", value: 2 },
+ { source: "process2-4", target: "process3-4", value: 4 },
+ { source: "process2-5", target: "process3-8", value: 4 },
+ { source: "process2-5", target: "process3-2", value: 5 },
+ { source: "process2-5", target: "process3-4", value: 2 },
+ { source: "process2-5", target: "process3-1", value: 5 },
+ { source: "process2-5", target: "process3-4", value: 4 },
+ { source: "process2-6", target: "process3-5", value: 4 },
+ { source: "process2-6", target: "process3-6", value: 4 },
+ { source: "process2-6", target: "process3-7", value: 5 },
+ { source: "process2-6", target: "process3-9", value: 1 },
+ { source: "process2-6", target: "process3-9", value: 4 },
+ { source: "process2-7", target: "process3-1", value: 3 },
+ { source: "process2-7", target: "process3-5", value: 3 },
+ { source: "process2-7", target: "process3-8", value: 1 },
+ { source: "process2-7", target: "process3-4", value: 3 },
+ { source: "process2-7", target: "process3-9", value: 5 },
+ { source: "process2-8", target: "process3-7", value: 2 },
+ { source: "process2-8", target: "process3-5", value: 3 },
+ { source: "process2-8", target: "process3-5", value: 3 },
+ { source: "process2-8", target: "process3-2", value: 2 },
+ { source: "process2-8", target: "process3-1", value: 4 },
+ { source: "process2-9", target: "process3-4", value: 3 },
+ { source: "process2-9", target: "process3-5", value: 2 },
+ { source: "process2-9", target: "process3-3", value: 2 },
+ { source: "process2-9", target: "process3-1", value: 3 },
+ { source: "process2-9", target: "process3-7", value: 3 },
+ { source: "process3-0", target: "process4-5", value: 3 },
+ { source: "process3-0", target: "process4-6", value: 1 },
+ { source: "process3-0", target: "process4-4", value: 1 },
+ { source: "process3-0", target: "process4-3", value: 5 },
+ { source: "process3-0", target: "process4-4", value: 5 },
+ { source: "process3-1", target: "process4-0", value: 4 },
+ { source: "process3-1", target: "process4-8", value: 1 },
+ { source: "process3-1", target: "process4-0", value: 2 },
+ { source: "process3-1", target: "process4-8", value: 1 },
+ { source: "process3-1", target: "process4-7", value: 5 },
+ { source: "process3-2", target: "process4-5", value: 5 },
+ { source: "process3-2", target: "process4-9", value: 3 },
+ { source: "process3-2", target: "process4-5", value: 2 },
+ { source: "process3-2", target: "process4-6", value: 2 },
+ { source: "process3-2", target: "process4-2", value: 4 },
+ { source: "process3-3", target: "process4-6", value: 2 },
+ { source: "process3-3", target: "process4-3", value: 4 },
+ { source: "process3-3", target: "process4-0", value: 3 },
+ { source: "process3-3", target: "process4-3", value: 4 },
+ { source: "process3-3", target: "process4-5", value: 3 },
+ { source: "process3-4", target: "process4-2", value: 4 },
+ { source: "process3-4", target: "process4-4", value: 4 },
+ { source: "process3-4", target: "process4-6", value: 3 },
+ { source: "process3-4", target: "process4-9", value: 3 },
+ { source: "process3-4", target: "process4-1", value: 5 },
+ { source: "process3-5", target: "process4-7", value: 3 },
+ { source: "process3-5", target: "process4-9", value: 4 },
+ { source: "process3-5", target: "process4-8", value: 4 },
+ { source: "process3-5", target: "process4-3", value: 3 },
+ { source: "process3-5", target: "process4-0", value: 4 },
+ { source: "process3-6", target: "process4-8", value: 5 },
+ { source: "process3-6", target: "process4-9", value: 1 },
+ { source: "process3-6", target: "process4-3", value: 2 },
+ { source: "process3-6", target: "process4-7", value: 4 },
+ { source: "process3-6", target: "process4-8", value: 1 },
+ { source: "process3-7", target: "process4-1", value: 1 },
+ { source: "process3-7", target: "process4-2", value: 3 },
+ { source: "process3-7", target: "process4-1", value: 4 },
+ { source: "process3-7", target: "process4-4", value: 5 },
+ { source: "process3-7", target: "process4-2", value: 4 },
+ { source: "process3-8", target: "process4-4", value: 4 },
+ { source: "process3-8", target: "process4-5", value: 4 },
+ { source: "process3-8", target: "process4-7", value: 2 },
+ { source: "process3-8", target: "process4-7", value: 1 },
+ { source: "process3-8", target: "process4-5", value: 4 },
+ { source: "process3-9", target: "process4-8", value: 4 },
+ { source: "process3-9", target: "process4-7", value: 2 },
+ { source: "process3-9", target: "process4-5", value: 2 },
+ { source: "process3-9", target: "process4-0", value: 2 },
+ { source: "process3-9", target: "process4-9", value: 5 },
+ { source: "process4-0", target: "process5-3", value: 5 },
+ { source: "process4-0", target: "process5-6", value: 3 },
+ { source: "process4-0", target: "process5-5", value: 5 },
+ { source: "process4-0", target: "process5-0", value: 3 },
+ { source: "process4-0", target: "process5-8", value: 4 },
+ { source: "process4-1", target: "process5-2", value: 3 },
+ { source: "process4-1", target: "process5-3", value: 2 },
+ { source: "process4-1", target: "process5-7", value: 5 },
+ { source: "process4-1", target: "process5-1", value: 2 },
+ { source: "process4-1", target: "process5-3", value: 5 },
+ { source: "process4-2", target: "process5-0", value: 1 },
+ { source: "process4-2", target: "process5-1", value: 5 },
+ { source: "process4-2", target: "process5-9", value: 5 },
+ { source: "process4-2", target: "process5-3", value: 1 },
+ { source: "process4-2", target: "process5-4", value: 4 },
+ { source: "process4-3", target: "process5-6", value: 3 },
+ { source: "process4-3", target: "process5-7", value: 3 },
+ { source: "process4-3", target: "process5-0", value: 4 },
+ { source: "process4-3", target: "process5-9", value: 3 },
+ { source: "process4-3", target: "process5-9", value: 1 },
+ { source: "process4-4", target: "process5-4", value: 4 },
+ { source: "process4-4", target: "process5-8", value: 2 },
+ { source: "process4-4", target: "process5-4", value: 2 },
+ { source: "process4-4", target: "process5-3", value: 4 },
+ { source: "process4-4", target: "process5-6", value: 2 },
+ { source: "process4-5", target: "process5-5", value: 1 },
+ { source: "process4-5", target: "process5-1", value: 1 },
+ { source: "process4-5", target: "process5-1", value: 4 },
+ { source: "process4-5", target: "process5-6", value: 3 },
+ { source: "process4-5", target: "process5-9", value: 5 },
+ { source: "process4-6", target: "process5-3", value: 3 },
+ { source: "process4-6", target: "process5-2", value: 4 },
+ { source: "process4-6", target: "process5-0", value: 5 },
+ { source: "process4-6", target: "process5-7", value: 1 },
+ { source: "process4-6", target: "process5-2", value: 5 },
+ { source: "process4-7", target: "process5-6", value: 5 },
+ { source: "process4-7", target: "process5-5", value: 1 },
+ { source: "process4-7", target: "process5-8", value: 1 },
+ { source: "process4-7", target: "process5-1", value: 3 },
+ { source: "process4-7", target: "process5-9", value: 2 },
+ { source: "process4-8", target: "process5-3", value: 5 },
+ { source: "process4-8", target: "process5-1", value: 3 },
+ { source: "process4-8", target: "process5-8", value: 4 },
+ { source: "process4-8", target: "process5-4", value: 5 },
+ { source: "process4-8", target: "process5-4", value: 4 },
+ { source: "process4-9", target: "process5-0", value: 4 },
+ { source: "process4-9", target: "process5-0", value: 2 },
+ { source: "process4-9", target: "process5-1", value: 2 },
+ { source: "process4-9", target: "process5-7", value: 1 },
+ { source: "process4-9", target: "process5-7", value: 4 },
+ { source: "process5-0", target: "finish", value: 4 },
+ { source: "process5-1", target: "finish", value: 2 },
+ { source: "process5-2", target: "finish", value: 5 },
+ { source: "process5-3", target: "finish", value: 1 },
+ { source: "process5-4", target: "finish", value: 1 },
+ { source: "process5-5", target: "finish", value: 3 },
+ { source: "process5-6", target: "finish", value: 1 },
+ { source: "process5-7", target: "finish", value: 5 },
+ { source: "process5-8", target: "finish", value: 4 },
+ { source: "process5-8", target: "process1-2", value: 4 },
+ { source: "process5-9", target: "finish", value: 4 },
+ ],
+};
- var data1 = {
- "nodes": [
- { "name": "start" },
- { "name": "process0-0" },
- { "name": "process0-1" },
- { "name": "process0-2" },
- { "name": "process0-3" },
- { "name": "process0-4" },
- { "name": "process0-5" },
- { "name": "process0-6" },
- { "name": "process0-7" },
- { "name": "process0-8" },
- { "name": "process0-9" },
- { "name": "process1-0" },
- { "name": "process1-1" },
- { "name": "process1-2" },
- { "name": "process1-3" },
- { "name": "process1-4" },
- { "name": "process1-5" },
- { "name": "process1-6" },
- { "name": "process1-7" },
- { "name": "process1-8" },
- { "name": "process1-9" },
- { "name": "process2-0" },
- { "name": "process2-1" },
- { "name": "process2-2" },
- { "name": "process2-3" },
- { "name": "process2-4" },
- { "name": "process2-5" },
- { "name": "process2-6" },
- { "name": "process2-7" },
- { "name": "process2-8" },
- { "name": "process2-9" },
- { "name": "process3-0" },
- { "name": "process3-1" },
- { "name": "process3-2" },
- { "name": "process3-3" },
- { "name": "process3-4" },
- { "name": "process3-5" },
- { "name": "process3-6" },
- { "name": "process3-7" },
- { "name": "process3-8" },
- { "name": "process3-9" },
- { "name": "process4-0" },
- { "name": "process4-1" },
- { "name": "process4-2" },
- { "name": "process4-3" },
- { "name": "process4-4" },
- { "name": "process4-5" },
- { "name": "process4-6" },
- { "name": "process4-7" },
- { "name": "process4-8" },
- { "name": "process4-9" },
- { "name": "process5-0" },
- { "name": "process5-1" },
- { "name": "process5-2" },
- { "name": "process5-3" },
- { "name": "process5-4" },
- { "name": "process5-5" },
- { "name": "process5-6" },
- { "name": "process5-7" },
- { "name": "process5-8" },
- { "name": "process5-9" },
- { "name": "finish" }
- ],
- "links": [
- { "source": "start", "target": "process0-0", "value": 3 },
- { "source": "start", "target": "process0-1", "value": 1 },
- { "source": "start", "target": "process0-2", "value": 3 },
- { "source": "start", "target": "process0-3", "value": 5 },
- { "source": "start", "target": "process0-4", "value": 4 },
- { "source": "start", "target": "process0-5", "value": 2 },
- { "source": "start", "target": "process0-6", "value": 5 },
- { "source": "start", "target": "process0-7", "value": 5 },
- { "source": "start", "target": "process0-8", "value": 1 },
- { "source": "start", "target": "process0-9", "value": 1 },
- { "source": "process0-0", "target": "process1-0", "value": 3 },
- { "source": "process0-0", "target": "process1-7", "value": 1 },
- { "source": "process0-0", "target": "process1-3", "value": 5 },
- { "source": "process0-0", "target": "process1-3", "value": 2 },
- { "source": "process0-0", "target": "process1-6", "value": 4 },
- { "source": "process0-1", "target": "process1-5", "value": 4 },
- { "source": "process0-1", "target": "process1-7", "value": 2 },
- { "source": "process0-1", "target": "process1-4", "value": 1 },
- { "source": "process0-1", "target": "process1-3", "value": 4 },
- { "source": "process0-1", "target": "process1-7", "value": 1 },
- { "source": "process0-2", "target": "process1-1", "value": 3 },
- { "source": "process0-2", "target": "process1-0", "value": 4 },
- { "source": "process0-2", "target": "process1-2", "value": 2 },
- { "source": "process0-2", "target": "process1-1", "value": 3 },
- { "source": "process0-2", "target": "process1-8", "value": 1 },
- { "source": "process0-3", "target": "process1-4", "value": 3 },
- { "source": "process0-3", "target": "process1-8", "value": 1 },
- { "source": "process0-3", "target": "process1-5", "value": 4 },
- { "source": "process0-3", "target": "process1-2", "value": 3 },
- { "source": "process0-3", "target": "process1-2", "value": 2 },
- { "source": "process0-4", "target": "process1-6", "value": 4 },
- { "source": "process0-4", "target": "process1-1", "value": 3 },
- { "source": "process0-4", "target": "process1-5", "value": 5 },
- { "source": "process0-4", "target": "process1-2", "value": 5 },
- { "source": "process0-4", "target": "process1-9", "value": 4 },
- { "source": "process0-5", "target": "process1-7", "value": 4 },
- { "source": "process0-5", "target": "process1-9", "value": 4 },
- { "source": "process0-5", "target": "process1-5", "value": 1 },
- { "source": "process0-5", "target": "process1-5", "value": 2 },
- { "source": "process0-5", "target": "process1-3", "value": 4 },
- { "source": "process0-6", "target": "process1-6", "value": 2 },
- { "source": "process0-6", "target": "process1-4", "value": 5 },
- { "source": "process0-6", "target": "process1-0", "value": 2 },
- { "source": "process0-6", "target": "process1-9", "value": 2 },
- { "source": "process0-6", "target": "process1-5", "value": 3 },
- { "source": "process0-7", "target": "process1-7", "value": 1 },
- { "source": "process0-7", "target": "process1-9", "value": 3 },
- { "source": "process0-7", "target": "process1-1", "value": 4 },
- { "source": "process0-7", "target": "process1-2", "value": 5 },
- { "source": "process0-7", "target": "process1-2", "value": 3 },
- { "source": "process0-8", "target": "process1-7", "value": 3 },
- { "source": "process0-8", "target": "process1-7", "value": 3 },
- { "source": "process0-8", "target": "process1-0", "value": 3 },
- { "source": "process0-8", "target": "process1-6", "value": 5 },
- { "source": "process0-8", "target": "process1-0", "value": 1 },
- { "source": "process0-9", "target": "process1-3", "value": 5 },
- { "source": "process0-9", "target": "process1-8", "value": 5 },
- { "source": "process0-9", "target": "process1-2", "value": 5 },
- { "source": "process0-9", "target": "process1-5", "value": 2 },
- { "source": "process0-9", "target": "process1-7", "value": 4 },
- { "source": "process1-0", "target": "process2-9", "value": 3 },
- { "source": "process1-0", "target": "process2-4", "value": 5 },
- { "source": "process1-0", "target": "process2-3", "value": 1 },
- { "source": "process1-0", "target": "process2-0", "value": 4 },
- { "source": "process1-0", "target": "process2-1", "value": 1 },
- { "source": "process1-1", "target": "process2-4", "value": 3 },
- { "source": "process1-1", "target": "process2-0", "value": 3 },
- { "source": "process1-1", "target": "process2-5", "value": 1 },
- { "source": "process1-1", "target": "process2-2", "value": 4 },
- { "source": "process1-1", "target": "process2-9", "value": 5 },
- { "source": "process1-2", "target": "process2-6", "value": 3 },
- { "source": "process1-2", "target": "process2-1", "value": 1 },
- { "source": "process1-2", "target": "process2-4", "value": 4 },
- { "source": "process1-2", "target": "process2-9", "value": 1 },
- { "source": "process1-2", "target": "process2-8", "value": 3 },
- { "source": "process1-3", "target": "process2-5", "value": 4 },
- { "source": "process1-3", "target": "process2-7", "value": 5 },
- { "source": "process1-3", "target": "process2-4", "value": 4 },
- { "source": "process1-3", "target": "process2-7", "value": 5 },
- { "source": "process1-3", "target": "process2-0", "value": 3 },
- { "source": "process1-4", "target": "process2-8", "value": 3 },
- { "source": "process1-4", "target": "process2-7", "value": 3 },
- { "source": "process1-4", "target": "process2-4", "value": 2 },
- { "source": "process1-4", "target": "process2-2", "value": 5 },
- { "source": "process1-4", "target": "process2-9", "value": 3 },
- { "source": "process1-5", "target": "process2-2", "value": 1 },
- { "source": "process1-5", "target": "process2-8", "value": 5 },
- { "source": "process1-5", "target": "process2-3", "value": 3 },
- { "source": "process1-5", "target": "process2-5", "value": 4 },
- { "source": "process1-5", "target": "process2-4", "value": 3 },
- { "source": "process1-6", "target": "process2-6", "value": 5 },
- { "source": "process1-6", "target": "process2-2", "value": 3 },
- { "source": "process1-6", "target": "process2-7", "value": 4 },
- { "source": "process1-6", "target": "process2-6", "value": 5 },
- { "source": "process1-6", "target": "process2-3", "value": 5 },
- { "source": "process1-7", "target": "process2-4", "value": 4 },
- { "source": "process1-7", "target": "process2-8", "value": 3 },
- { "source": "process1-7", "target": "process2-6", "value": 1 },
- { "source": "process1-7", "target": "process2-9", "value": 3 },
- { "source": "process1-7", "target": "process2-0", "value": 5 },
- { "source": "process1-8", "target": "process2-9", "value": 5 },
- { "source": "process1-8", "target": "process2-7", "value": 1 },
- { "source": "process1-8", "target": "process2-4", "value": 1 },
- { "source": "process1-8", "target": "process2-8", "value": 3 },
- { "source": "process1-8", "target": "process2-8", "value": 2 },
- { "source": "process1-9", "target": "process2-0", "value": 2 },
- { "source": "process1-9", "target": "process2-9", "value": 2 },
- { "source": "process1-9", "target": "process2-5", "value": 5 },
- { "source": "process1-9", "target": "process2-6", "value": 4 },
- { "source": "process1-9", "target": "process2-2", "value": 3 },
- { "source": "process2-0", "target": "process3-8", "value": 5 },
- { "source": "process2-0", "target": "process3-2", "value": 4 },
- { "source": "process2-0", "target": "process3-3", "value": 2 },
- { "source": "process2-0", "target": "process3-5", "value": 5 },
- { "source": "process2-0", "target": "process3-2", "value": 1 },
- { "source": "process2-1", "target": "process3-5", "value": 5 },
- { "source": "process2-1", "target": "process3-2", "value": 3 },
- { "source": "process2-1", "target": "process3-7", "value": 2 },
- { "source": "process2-1", "target": "process3-6", "value": 5 },
- { "source": "process2-1", "target": "process3-9", "value": 3 },
- { "source": "process2-2", "target": "process3-2", "value": 4 },
- { "source": "process2-2", "target": "process3-4", "value": 1 },
- { "source": "process2-2", "target": "process3-7", "value": 4 },
- { "source": "process2-2", "target": "process3-2", "value": 3 },
- { "source": "process2-2", "target": "process3-9", "value": 2 },
- { "source": "process2-3", "target": "process3-4", "value": 4 },
- { "source": "process2-3", "target": "process3-3", "value": 2 },
- { "source": "process2-3", "target": "process3-0", "value": 1 },
- { "source": "process2-3", "target": "process3-5", "value": 2 },
- { "source": "process2-3", "target": "process3-8", "value": 4 },
- { "source": "process2-4", "target": "process3-1", "value": 3 },
- { "source": "process2-4", "target": "process3-1", "value": 3 },
- { "source": "process2-4", "target": "process3-1", "value": 3 },
- { "source": "process2-4", "target": "process3-4", "value": 2 },
- { "source": "process2-4", "target": "process3-4", "value": 4 },
- { "source": "process2-5", "target": "process3-8", "value": 4 },
- { "source": "process2-5", "target": "process3-2", "value": 5 },
- { "source": "process2-5", "target": "process3-4", "value": 2 },
- { "source": "process2-5", "target": "process3-1", "value": 5 },
- { "source": "process2-5", "target": "process3-4", "value": 4 },
- { "source": "process2-6", "target": "process3-5", "value": 4 },
- { "source": "process2-6", "target": "process3-6", "value": 4 },
- { "source": "process2-6", "target": "process3-7", "value": 5 },
- { "source": "process2-6", "target": "process3-9", "value": 1 },
- { "source": "process2-6", "target": "process3-9", "value": 4 },
- { "source": "process2-7", "target": "process3-1", "value": 3 },
- { "source": "process2-7", "target": "process3-5", "value": 3 },
- { "source": "process2-7", "target": "process3-8", "value": 1 },
- { "source": "process2-7", "target": "process3-4", "value": 3 },
- { "source": "process2-7", "target": "process3-9", "value": 5 },
- { "source": "process2-8", "target": "process3-7", "value": 2 },
- { "source": "process2-8", "target": "process3-5", "value": 3 },
- { "source": "process2-8", "target": "process3-5", "value": 3 },
- { "source": "process2-8", "target": "process3-2", "value": 2 },
- { "source": "process2-8", "target": "process3-1", "value": 4 },
- { "source": "process2-9", "target": "process3-4", "value": 3 },
- { "source": "process2-9", "target": "process3-5", "value": 2 },
- { "source": "process2-9", "target": "process3-3", "value": 2 },
- { "source": "process2-9", "target": "process3-1", "value": 3 },
- { "source": "process2-9", "target": "process3-7", "value": 3 },
- { "source": "process3-0", "target": "process4-5", "value": 3 },
- { "source": "process3-0", "target": "process4-6", "value": 1 },
- { "source": "process3-0", "target": "process4-4", "value": 1 },
- { "source": "process3-0", "target": "process4-3", "value": 5 },
- { "source": "process3-0", "target": "process4-4", "value": 5 },
- { "source": "process3-1", "target": "process4-0", "value": 4 },
- { "source": "process3-1", "target": "process4-8", "value": 1 },
- { "source": "process3-1", "target": "process4-0", "value": 2 },
- { "source": "process3-1", "target": "process4-8", "value": 1 },
- { "source": "process3-1", "target": "process4-7", "value": 5 },
- { "source": "process3-2", "target": "process4-5", "value": 5 },
- { "source": "process3-2", "target": "process4-9", "value": 3 },
- { "source": "process3-2", "target": "process4-5", "value": 2 },
- { "source": "process3-2", "target": "process4-6", "value": 2 },
- { "source": "process3-2", "target": "process4-2", "value": 4 },
- { "source": "process3-3", "target": "process4-6", "value": 2 },
- { "source": "process3-3", "target": "process4-3", "value": 4 },
- { "source": "process3-3", "target": "process4-0", "value": 3 },
- { "source": "process3-3", "target": "process4-3", "value": 4 },
- { "source": "process3-3", "target": "process4-5", "value": 3 },
- { "source": "process3-4", "target": "process4-2", "value": 4 },
- { "source": "process3-4", "target": "process4-4", "value": 4 },
- { "source": "process3-4", "target": "process4-6", "value": 3 },
- { "source": "process3-4", "target": "process4-9", "value": 3 },
- { "source": "process3-4", "target": "process4-1", "value": 5 },
- { "source": "process3-5", "target": "process4-7", "value": 3 },
- { "source": "process3-5", "target": "process4-9", "value": 4 },
- { "source": "process3-5", "target": "process4-8", "value": 4 },
- { "source": "process3-5", "target": "process4-3", "value": 3 },
- { "source": "process3-5", "target": "process4-0", "value": 4 },
- { "source": "process3-6", "target": "process4-8", "value": 5 },
- { "source": "process3-6", "target": "process4-9", "value": 1 },
- { "source": "process3-6", "target": "process4-3", "value": 2 },
- { "source": "process3-6", "target": "process4-7", "value": 4 },
- { "source": "process3-6", "target": "process4-8", "value": 1 },
- { "source": "process3-7", "target": "process4-1", "value": 1 },
- { "source": "process3-7", "target": "process4-2", "value": 3 },
- { "source": "process3-7", "target": "process4-1", "value": 4 },
- { "source": "process3-7", "target": "process4-4", "value": 5 },
- { "source": "process3-7", "target": "process4-2", "value": 4 },
- { "source": "process3-8", "target": "process4-4", "value": 4 },
- { "source": "process3-8", "target": "process4-5", "value": 4 },
- { "source": "process3-8", "target": "process4-7", "value": 2 },
- { "source": "process3-8", "target": "process4-7", "value": 1 },
- { "source": "process3-8", "target": "process4-5", "value": 4 },
- { "source": "process3-9", "target": "process4-8", "value": 4 },
- { "source": "process3-9", "target": "process4-7", "value": 2 },
- { "source": "process3-9", "target": "process4-5", "value": 2 },
- { "source": "process3-9", "target": "process4-0", "value": 2 },
- { "source": "process3-9", "target": "process4-9", "value": 5 },
- { "source": "process4-0", "target": "process5-3", "value": 5 },
- { "source": "process4-0", "target": "process5-6", "value": 3 },
- { "source": "process4-0", "target": "process5-5", "value": 5 },
- { "source": "process4-0", "target": "process5-0", "value": 3 },
- { "source": "process4-0", "target": "process5-8", "value": 4 },
- { "source": "process4-1", "target": "process5-2", "value": 3 },
- { "source": "process4-1", "target": "process5-3", "value": 2 },
- { "source": "process4-1", "target": "process5-7", "value": 5 },
- { "source": "process4-1", "target": "process5-1", "value": 2 },
- { "source": "process4-1", "target": "process5-3", "value": 5 },
- { "source": "process4-2", "target": "process5-0", "value": 1 },
- { "source": "process4-2", "target": "process5-1", "value": 5 },
- { "source": "process4-2", "target": "process5-9", "value": 5 },
- { "source": "process4-2", "target": "process5-3", "value": 1 },
- { "source": "process4-2", "target": "process5-4", "value": 4 },
- { "source": "process4-3", "target": "process5-6", "value": 3 },
- { "source": "process4-3", "target": "process5-7", "value": 3 },
- { "source": "process4-3", "target": "process5-0", "value": 4 },
- { "source": "process4-3", "target": "process5-9", "value": 3 },
- { "source": "process4-3", "target": "process5-9", "value": 1 },
- { "source": "process4-4", "target": "process5-4", "value": 4 },
- { "source": "process4-4", "target": "process5-8", "value": 2 },
- { "source": "process4-4", "target": "process5-4", "value": 2 },
- { "source": "process4-4", "target": "process5-3", "value": 4 },
- { "source": "process4-4", "target": "process5-6", "value": 2 },
- { "source": "process4-5", "target": "process5-5", "value": 1 },
- { "source": "process4-5", "target": "process5-1", "value": 1 },
- { "source": "process4-5", "target": "process5-1", "value": 4 },
- { "source": "process4-5", "target": "process5-6", "value": 3 },
- { "source": "process4-5", "target": "process5-9", "value": 5 },
- { "source": "process4-6", "target": "process5-3", "value": 3 },
- { "source": "process4-6", "target": "process5-2", "value": 4 },
- { "source": "process4-6", "target": "process5-0", "value": 5 },
- { "source": "process4-6", "target": "process5-7", "value": 1 },
- { "source": "process4-6", "target": "process5-2", "value": 5 },
- { "source": "process4-7", "target": "process5-6", "value": 5 },
- { "source": "process4-7", "target": "process5-5", "value": 1 },
- { "source": "process4-7", "target": "process5-8", "value": 1 },
- { "source": "process4-7", "target": "process5-1", "value": 3 },
- { "source": "process4-7", "target": "process5-9", "value": 2 },
- { "source": "process4-8", "target": "process5-3", "value": 5 },
- { "source": "process4-8", "target": "process5-1", "value": 3 },
- { "source": "process4-8", "target": "process5-8", "value": 4 },
- { "source": "process4-8", "target": "process5-4", "value": 5 },
- { "source": "process4-8", "target": "process5-4", "value": 4 },
- { "source": "process4-9", "target": "process5-0", "value": 4 },
- { "source": "process4-9", "target": "process5-0", "value": 2 },
- { "source": "process4-9", "target": "process5-1", "value": 2 },
- { "source": "process4-9", "target": "process5-7", "value": 1 },
- { "source": "process4-9", "target": "process5-7", "value": 4 },
- { "source": "process5-0", "target": "finish", "value": 4 },
- { "source": "process5-1", "target": "finish", "value": 2 },
- { "source": "process5-2", "target": "finish", "value": 5 },
- { "source": "process5-3", "target": "finish", "value": 1 },
- { "source": "process5-4", "target": "finish", "value": 1 },
- { "source": "process5-5", "target": "finish", "value": 3 },
- { "source": "process5-6", "target": "finish", "value": 1 },
- { "source": "process5-7", "target": "finish", "value": 5 },
- { "source": "process5-8", "target": "finish", "value": 4 },
- { "source": "process5-8", "target": "process1-2", "value": 4 },
- { "source": "process5-9", "target": "finish", "value": 4 }
+let data3 = {
+ nodes: [
+ { name: "Oceans" },
+ { name: "Evaporation" },
+ { name: "Atmosphere" },
+ { name: "Condensation" },
+ { name: "Precipitation" },
+ { name: "Ice and snow" },
+ { name: "Infiltration" },
+ { name: "Seepage" },
+ { name: "Spring" },
+ { name: "Freshwater" },
+ // { "name": "Soil moisture" },
+ { name: "Plants and animals" },
+ { name: "Sublimation" },
+ { name: "Groundwater flow" },
+ { name: "Groundwater storage" },
+ { name: "Surface runoff" },
+ { name: "Plant uptake" },
+ { name: "Evapotranspiration" },
+ ],
+ links: [
+ { source: "Oceans", target: "Evaporation", value: 4 },
+ { source: "Evaporation", target: "Condensation", value: 4 },
+ { source: "Condensation", target: "Atmosphere", value: 4 },
+ { source: "Atmosphere", target: "Precipitation", value: 4 },
+ { source: "Precipitation", target: "Ice and snow", value: 4 },
+ { source: "Precipitation", target: "Oceans", value: 4 },
+ { source: "Precipitation", target: "Surface runoff", value: 4 },
+ { source: "Ice and snow", target: "Infiltration", value: 4 },
+ { source: "Ice and snow", target: "Sublimation", value: 4 },
+ { source: "Sublimation", target: "Atmosphere", value: 4 },
+ { source: "Infiltration", target: "Groundwater flow", value: 4 },
+ { source: "Infiltration", target: "Groundwater storage", value: 4 },
+ { source: "Groundwater storage", target: "Oceans", value: 4 },
+ { source: "Groundwater flow", target: "Seepage", value: 4 },
+ { source: "Groundwater flow", target: "Spring", value: 4 },
+ { source: "Groundwater flow", target: "Plant uptake", value: 4 },
+ { source: "Groundwater flow", target: "Oceans", value: 4 },
+ { source: "Groundwater flow", target: "Freshwater", value: 4 },
+ { source: "Seepage", target: "Freshwater", value: 4 },
+ { source: "Spring", target: "Freshwater", value: 4 },
+ { source: "Freshwater", target: "Evaporation", value: 4 },
+ { source: "Freshwater", target: "Plants and animals", value: 4 },
+ { source: "Freshwater", target: "Seepage", value: 4 },
+ { source: "Plant uptake", target: "Plants and animals", value: 4 },
+ { source: "Plants and animals", target: "Freshwater", value: 4 },
+ { source: "Surface runoff", target: "Groundwater flow", value: 4 },
+ { source: "Plants and animals", target: "Evapotranspiration", value: 4 },
+ { source: "Evapotranspiration", target: "Atmosphere", value: 4 },
+ { source: "Freshwater", target: "Oceans", value: 4 },
+ ],
+};
+//https://www.ucl.ac.uk/bartlett/sustainable/news/2017/jun/global-paper-recycling-can-be-improved-according-new-research-ucl
+let data4 = {
+ nodes: [
+ { name: "Non-fibrous" },
+ { name: "Wood" },
+ { name: "Other fibres" },
+ { name: "Mechanical pulp" },
+ { name: "Chemical pulp" },
+ { name: "Recycled pulp" },
+ //{ "name": "Paper for recycling" },
+ { name: "Mill waste" },
+ { name: "Newsprint" },
+ { name: "Printing and writing" },
+ { name: "Sanitary and household" },
+ { name: "Packaging" },
+ { name: "Other" },
+ { name: "Use" },
+ { name: "To stock" },
+ { name: "Energy recovery municipal" },
+ { name: "Incineration municipal" },
+ { name: "Landfill" },
+ { name: "Non-energy recovery" },
+ { name: "Energy recovery on site" },
+ ],
+ links: [
+ { source: "Non-fibrous", target: "Newsprint", value: 4 },
+ { source: "Non-fibrous", target: "Printing and writing", value: 40 },
+ { source: "Non-fibrous", target: "Packaging", value: 20 },
+ { source: "Non-fibrous", target: "Other", value: 4 },
+ { source: "Non-fibrous", target: "Recycled pulp", value: 2 },
- ]
- }
+ { source: "Wood", target: "Mechanical pulp", value: 35 },
+ { source: "Wood", target: "Chemical pulp", value: 279 },
- let data3 = {
- "nodes": [
- { "name": "Oceans" },
- { "name": "Evaporation" },
- { "name": "Atmosphere" },
- { "name": "Condensation" },
- { "name": "Precipitation" },
- { "name": "Ice and snow" },
- { "name": "Infiltration" },
- { "name": "Seepage" },
- { "name": "Spring" },
- { "name": "Freshwater" },
- // { "name": "Soil moisture" },
- { "name": "Plants and animals" },
- { "name": "Sublimation" },
- { "name": "Groundwater flow" },
- { "name": "Groundwater storage" },
- { "name": "Surface runoff" },
- { "name": "Plant uptake"},
- { "name": "Evapotranspiration"},
- ],
- "links": [
- { "source": "Oceans", "target": "Evaporation", "value": 4 },
- { "source": "Evaporation", "target": "Condensation", "value": 4 },
- { "source": "Condensation", "target": "Atmosphere", "value": 4 },
- { "source": "Atmosphere", "target": "Precipitation", "value": 4 },
- { "source": "Precipitation", "target": "Ice and snow", "value": 4 },
- { "source": "Precipitation", "target": "Oceans", "value": 4 },
- { "source": "Precipitation", "target": "Surface runoff", "value": 4 },
- { "source": "Ice and snow", "target": "Infiltration", "value": 4 },
- { "source": "Ice and snow", "target": "Sublimation", "value": 4 },
- { "source": "Sublimation", "target": "Atmosphere", "value": 4 },
- { "source": "Infiltration", "target": "Groundwater flow", "value": 4 },
- { "source": "Infiltration", "target": "Groundwater storage", "value": 4 },
- { "source": "Groundwater storage", "target": "Oceans", "value": 4 },
- { "source": "Groundwater flow", "target": "Seepage", "value": 4 },
- { "source": "Groundwater flow", "target": "Spring", "value": 4 },
- { "source": "Groundwater flow", "target": "Plant uptake", "value": 4 },
- { "source": "Groundwater flow", "target": "Oceans", "value": 4 },
- { "source": "Groundwater flow", "target": "Freshwater", "value": 4 },
- { "source": "Seepage", "target": "Freshwater", "value": 4 },
- { "source": "Spring", "target": "Freshwater", "value": 4 },
- { "source": "Freshwater", "target": "Evaporation", "value": 4 },
- { "source": "Freshwater", "target": "Plants and animals", "value": 4 },
- { "source": "Freshwater", "target": "Seepage", "value": 4 },
- { "source": "Plant uptake", "target": "Plants and animals", "value": 4 },
- { "source": "Plants and animals", "target": "Freshwater", "value": 4 },
- { "source": "Surface runoff", "target": "Groundwater flow", "value": 4 },
- { "source": "Plants and animals", "target": "Evapotranspiration", "value": 4 },
- { "source": "Evapotranspiration", "target": "Atmosphere", "value": 4 },
- { "source": "Freshwater", "target": "Oceans", "value": 4 },
- ]
- }
+ { source: "Other fibres", target: "Chemical pulp", value: 4 },
- //https://www.ucl.ac.uk/bartlett/sustainable/news/2017/jun/global-paper-recycling-can-be-improved-according-new-research-ucl
- let data4 = {
- "nodes": [
- { "name": "Non-fibrous" },
- { "name": "Wood" },
- { "name": "Other fibres" },
- { "name": "Mechanical pulp" },
- { "name": "Chemical pulp" },
- { "name": "Recycled pulp" },
- //{ "name": "Paper for recycling" },
- { "name": "Mill waste" },
- { "name": "Newsprint" },
- { "name": "Printing and writing" },
- { "name": "Sanitary and household" },
- { "name": "Packaging" },
- { "name": "Other" },
- { "name": "Use" },
- { "name": "To stock" },
- { "name": "Energy recovery municipal" },
- { "name": "Incineration municipal" },
- { "name": "Landfill" },
- { "name": "Non-energy recovery"},
- { "name": "Energy recovery on site"}
- ],
- "links": [
- { "source": "Non-fibrous", "target": "Newsprint", "value": 4 },
- { "source": "Non-fibrous", "target": "Printing and writing", "value": 40 },
- { "source": "Non-fibrous", "target": "Packaging", "value": 20 },
- { "source": "Non-fibrous", "target": "Other", "value": 4 },
- { "source": "Non-fibrous", "target": "Recycled pulp", "value": 2 },
+ { source: "Mechanical pulp", target: "Newsprint", value: 3 },
+ { source: "Mechanical pulp", target: "Packaging", value: 23 },
+ { source: "Mechanical pulp", target: "Recycled pulp", value: 2 },
+ { source: "Mechanical pulp", target: "Mill waste", value: 3 },
- { "source": "Wood", "target": "Mechanical pulp", "value": 35 },
- { "source": "Wood", "target": "Chemical pulp", "value": 279 },
+ { source: "Chemical pulp", target: "Printing and writing", value: 50 },
+ { source: "Chemical pulp", target: "Sanitary and household", value: 20 },
+ { source: "Chemical pulp", target: "Packaging", value: 40 },
+ { source: "Chemical pulp", target: "Other", value: 9 },
+ { source: "Chemical pulp", target: "Recycled pulp", value: 3 },
+ { source: "Chemical pulp", target: "Mill waste", value: 162 },
- { "source": "Other fibres", "target": "Chemical pulp", "value": 4 },
+ { source: "Recycled pulp", target: "Newsprint", value: 25 },
+ { source: "Recycled pulp", target: "Printing and writing", value: 5 },
+ { source: "Recycled pulp", target: "Sanitary and household", value: 5 },
+ { source: "Recycled pulp", target: "Packaging", value: 100 },
+ { source: "Recycled pulp", target: "Other", value: 5 },
+ { source: "Recycled pulp", target: "Mill waste", value: 41 },
+ //{ "source": "Recycled pulp", "target": "Paper for recycling", "value": 3 },
- { "source": "Mechanical pulp", "target": "Newsprint", "value": 3 },
- { "source": "Mechanical pulp", "target": "Packaging", "value": 23 },
- { "source": "Mechanical pulp", "target": "Recycled pulp", "value": 2 },
- { "source": "Mechanical pulp", "target": "Mill waste", "value": 3 },
+ { source: "Newsprint", target: "Use", value: 31 },
+ { source: "Printing and writing", target: "Use", value: 106 },
+ { source: "Sanitary and household", target: "Use", value: 30 },
+ { source: "Packaging", target: "Use", value: 214 },
+ { source: "Other", target: "Use", value: 18 },
- { "source": "Chemical pulp", "target": "Printing and writing", "value": 50 },
- { "source": "Chemical pulp", "target": "Sanitary and household", "value": 20 },
- { "source": "Chemical pulp", "target": "Packaging", "value": 40 },
- { "source": "Chemical pulp", "target": "Other", "value": 9 },
- { "source": "Chemical pulp", "target": "Recycled pulp", "value": 3 },
- { "source": "Chemical pulp", "target": "Mill waste", "value": 162 },
+ { source: "Use", target: "To stock", value: 36 },
+ { source: "Use", target: "Energy recovery municipal", value: 20 },
+ { source: "Use", target: "Incineration municipal", value: 14 },
+ { source: "Use", target: "Landfill", value: 132 },
+ { source: "Use", target: "Non-energy recovery", value: 3 },
+ { source: "Use", target: "Recycled pulp", value: 194 },
- { "source": "Recycled pulp", "target": "Newsprint", "value": 25 },
- { "source": "Recycled pulp", "target": "Printing and writing", "value": 5 },
- { "source": "Recycled pulp", "target": "Sanitary and household", "value": 5 },
- { "source": "Recycled pulp", "target": "Packaging", "value": 100 },
- { "source": "Recycled pulp", "target": "Other", "value": 5 },
- { "source": "Recycled pulp", "target": "Mill waste", "value": 41 },
- //{ "source": "Recycled pulp", "target": "Paper for recycling", "value": 3 },
+ { source: "Mill waste", target: "Landfill", value: 22 },
+ { source: "Mill waste", target: "Non-energy recovery", value: 26 },
+ { source: "Mill waste", target: "Energy recovery on site", value: 158 },
- { "source": "Newsprint", "target": "Use", "value": 31 },
- { "source": "Printing and writing", "target": "Use", "value": 106 },
- { "source": "Sanitary and household", "target": "Use", "value": 30 },
- { "source": "Packaging", "target": "Use", "value": 214 },
- { "source": "Other", "target": "Use", "value": 18 },
+ //{ "source": "Paper for recycling", "target": "Recycled pulp", "value": 215 },
+ ],
+};
- { "source": "Use", "target": "To stock", "value": 36 },
- { "source": "Use", "target": "Energy recovery municipal", "value": 20 },
- { "source": "Use", "target": "Incineration municipal", "value": 14 },
- { "source": "Use", "target": "Landfill", "value": 132 },
- { "source": "Use", "target": "Non-energy recovery", "value": 3 },
- { "source": "Use", "target": "Recycled pulp", "value": 194 },
+//to test self-linking nodes
+let data5 = {
+ nodes: [
+ { name: "startA" },
+ { name: "startB" },
+ { name: "process1" },
+ { name: "process2" },
+ { name: "process3" },
+ { name: "process4" },
+ { name: "process5" },
+ { name: "process6" },
+ { name: "process7" },
+ { name: "process8" },
+ { name: "process9" },
+ { name: "process10" },
+ { name: "process11" },
+ { name: "process12" },
+ { name: "process13" },
+ { name: "process14" },
+ { name: "process15" },
+ { name: "process16" },
+ { name: "finishA" },
+ { name: "finishB" },
+ ],
+ links: [
+ { source: "startA", target: "process8", value: 20, optimal: "yes" },
+ { source: "startA", target: "process5", value: 20, optimal: "yes" },
+ { source: "startA", target: "process6", value: 20, optimal: "yes" },
+ { source: "startB", target: "process1", value: 15, optimal: "yes" },
+ { source: "startB", target: "process5", value: 15, optimal: "yes" },
+ { source: "process1", target: "process4", value: 30, optimal: "yes" },
+ { source: "process4", target: "process1", value: 10, optimal: "yes" },
+ { source: "process2", target: "process7", value: 35, optimal: "yes" },
+ { source: "process1", target: "process3", value: 20, optimal: "yes" },
+ { source: "process5", target: "process1", value: 20, optimal: "yes" },
+ { source: "process6", target: "startA", value: 5, optimal: "yes" },
+ { source: "process4", target: "process2", value: 10, optimal: "yes" },
+ { source: "process6", target: "process8", value: 15, optimal: "yes" },
+ //{ "source": "process4", "target": "startB", "value": 5, "optimal": "yes" },
+ { source: "process3", target: "process2", value: 15, optimal: "yes" },
+ //{ "source": "process3", "target": "startB", "value": 5, "optimal": "yes" },
+ { source: "process15", target: "process13", value: 10, optimal: "yes" },
+ { source: "process13", target: "process9", value: 10, optimal: "yes" },
+ { source: "process7", target: "startB", value: 20, optimal: "yes" },
+ { source: "process8", target: "process1", value: 10, optimal: "yes" },
+ { source: "process8", target: "process16", value: 10, optimal: "yes" },
+ { source: "process16", target: "process9", value: 10, optimal: "yes" },
+ { source: "process8", target: "process11", value: 25, optimal: "yes" },
+ { source: "process11", target: "process10", value: 20, optimal: "yes" },
+ { source: "process4", target: "process12", value: 10, optimal: "yes" },
+ { source: "process12", target: "process11", value: 10, optimal: "yes" },
+ { source: "process7", target: "process15", value: 15, optimal: "yes" },
+ { source: "process15", target: "process14", value: 10, optimal: "yes" },
+ { source: "process10", target: "process13", value: 10, optimal: "yes" },
+ { source: "process10", target: "process16", value: 10, optimal: "yes" },
+ { source: "process14", target: "finishB", value: 10, optimal: "yes" },
+ { source: "process9", target: "finishA", value: 10, optimal: "yes" },
+ { source: "process16", target: "process8", value: 10, optimal: "yes" },
+ { source: "process9", target: "finishB", value: 10, optimal: "yes" },
+ { source: "process15", target: "finishB", value: 10, optimal: "yes" },
+ { source: "process15", target: "finishA", value: 10, optimal: "yes" },
+ { source: "process11", target: "process15", value: 25, optimal: "yes" },
+ { source: "process11", target: "process11", value: 5, optimal: "yes" },
+ { source: "finishA", target: "finishA", value: 15, optimal: "yes" },
+ { source: "finishB", target: "finishB", value: 15, optimal: "yes" },
+ { source: "process5", target: "process5", value: 10, optimal: "yes" },
+ { source: "finishB", target: "process14", value: 5, optimal: "yes" },
+ ],
+};
- { "source": "Mill waste", "target": "Landfill", "value": 22 },
- { "source": "Mill waste", "target": "Non-energy recovery", "value": 26 },
- { "source": "Mill waste", "target": "Energy recovery on site", "value": 158 },
-
- //{ "source": "Paper for recycling", "target": "Recycled pulp", "value": 215 },
-
- ]
- }
-
- //to test self-linking nodes
- let data5 = {
- "nodes": [
- { "name": "startA" },
- { "name": "startB" },
- { "name": "process1" },
- { "name": "process2" },
- { "name": "process3" },
- { "name": "process4" },
- { "name": "process5" },
- { "name": "process6" },
- { "name": "process7" },
- { "name": "process8" },
- { "name": "process9" },
- { "name": "process10" },
- { "name": "process11" },
- { "name": "process12" },
- { "name": "process13" },
- { "name": "process14" },
- { "name": "process15" },
- { "name": "process16" },
- { "name": "finishA" },
- { "name": "finishB" }
- ],
- "links": [
- { "source": "startA", "target": "process8", "value": 20, "optimal": "yes" },
- { "source": "startA", "target": "process5", "value": 20, "optimal": "yes" },
- { "source": "startA", "target": "process6", "value": 20, "optimal": "yes" },
- { "source": "startB", "target": "process1", "value": 15, "optimal": "yes" },
- { "source": "startB", "target": "process5", "value": 15, "optimal": "yes" },
- { "source": "process1", "target": "process4", "value": 30, "optimal": "yes" },
- { "source": "process4", "target": "process1", "value": 10, "optimal": "yes" },
- { "source": "process2", "target": "process7", "value": 35, "optimal": "yes" },
- { "source": "process1", "target": "process3", "value": 20, "optimal": "yes" },
- { "source": "process5", "target": "process1", "value": 20, "optimal": "yes" },
- { "source": "process6", "target": "startA", "value": 5, "optimal": "yes" },
- { "source": "process4", "target": "process2", "value": 10, "optimal": "yes" },
- { "source": "process6", "target": "process8", "value": 15, "optimal": "yes" },
- //{ "source": "process4", "target": "startB", "value": 5, "optimal": "yes" },
- { "source": "process3", "target": "process2", "value": 15, "optimal": "yes" },
- //{ "source": "process3", "target": "startB", "value": 5, "optimal": "yes" },
- { "source": "process15", "target": "process13", "value": 10, "optimal": "yes" },
- { "source": "process13", "target": "process9", "value": 10, "optimal": "yes" },
- { "source": "process7", "target": "startB", "value": 20, "optimal": "yes" },
- { "source": "process8", "target": "process1", "value": 10, "optimal": "yes" },
- { "source": "process8", "target": "process16", "value": 10, "optimal": "yes" },
- { "source": "process16", "target": "process9", "value": 10, "optimal": "yes" },
- { "source": "process8", "target": "process11", "value": 25, "optimal": "yes" },
- { "source": "process11", "target": "process10", "value": 20, "optimal": "yes" },
- { "source": "process4", "target": "process12", "value": 10, "optimal": "yes" },
- { "source": "process12", "target": "process11", "value": 10, "optimal": "yes" },
- { "source": "process7", "target": "process15", "value": 15, "optimal": "yes" },
- { "source": "process15", "target": "process14", "value": 10, "optimal": "yes" },
- { "source": "process10", "target": "process13", "value": 10, "optimal": "yes" },
- { "source": "process10", "target": "process16", "value": 10, "optimal": "yes" },
- { "source": "process14", "target": "finishB", "value": 10, "optimal": "yes" },
- { "source": "process9", "target": "finishA", "value": 10, "optimal": "yes" },
- { "source": "process16", "target": "process8", "value": 10, "optimal": "yes" },
- { "source": "process9", "target": "finishB", "value": 10, "optimal": "yes" },
- { "source": "process15", "target": "finishB", "value": 10, "optimal": "yes" },
- { "source": "process15", "target": "finishA", "value": 10, "optimal": "yes" },
- { "source": "process11", "target": "process15", "value": 25, "optimal": "yes" },
- { "source": "process11", "target": "process11", "value": 5, "optimal": "yes" },
- { "source": "finishA", "target": "finishA", "value": 15, "optimal": "yes" },
- { "source": "finishB", "target": "finishB", "value": 15, "optimal": "yes" },
- { "source": "process5", "target": "process5", "value": 10, "optimal": "yes" },
- { "source": "finishB", "target": "process14", "value": 5, "optimal": "yes" }
- ]
- };
\ No newline at end of file
+//the big mockData to test relaxLeftAndRight
+let data6 = {
+ "nodes": [
+ {
+ "name": "label0",
+ "col": 1
+ },
+ {
+ "name": "label1",
+ "col": 2
+ },
+ {
+ "name": "label2",
+ "col": 0
+ },
+ {
+ "name": "label3",
+ "col": 0
+ },
+ {
+ "name": "label4",
+ "col": 0
+ },
+ {
+ "name": "label5",
+ "col": 0
+ },
+ {
+ "name": "label6",
+ "col": 0
+ },
+ {
+ "name": "label7",
+ "col": 0
+ },
+ {
+ "name": "label8",
+ "col": 0
+ },
+ {
+ "name": "label9",
+ "col": 0
+ },
+ {
+ "name": "label10",
+ "col": 0
+ },
+ {
+ "name": "label11",
+ "col": 0
+ },
+ {
+ "name": "label12",
+ "col": 0
+ },
+ {
+ "name": "label13",
+ "col": 0
+ },
+ {
+ "name": "label14",
+ "col": 0
+ },
+ {
+ "name": "label15",
+ "col": 2
+ },
+ {
+ "name": "label16",
+ "col": 6
+ },
+ {
+ "name": "label17",
+ "col": 3
+ },
+ {
+ "name": "label18",
+ "col": 3
+ },
+ {
+ "name": "label19",
+ "col": 5
+ },
+ {
+ "name": "label20",
+ "col": 4
+ },
+ {
+ "name": "label21",
+ "col": 4
+ },
+ {
+ "name": "label22",
+ "col": 1
+ },
+ {
+ "name": "label23",
+ "col": 1
+ },
+ {
+ "name": "label24",
+ "col": 7
+ },
+ {
+ "name": "label25",
+ "col": 1
+ },
+ {
+ "name": "label26",
+ "col": 7
+ },
+ {
+ "name": "label27",
+ "col": 7
+ },
+ {
+ "name": "label28",
+ "col": 1
+ },
+ {
+ "name": "label29",
+ "col": 7
+ },
+ {
+ "name": "label30",
+ "col": 1
+ },
+ {
+ "name": "label31",
+ "col": 1
+ },
+ {
+ "name": "label32",
+ "col": 1
+ },
+ {
+ "name": "label33",
+ "col": 7
+ },
+ {
+ "name": "label34",
+ "col": 7
+ },
+ {
+ "name": "label35",
+ "col": 1
+ },
+ {
+ "name": "label36",
+ "col": 7
+ },
+ {
+ "name": "label37",
+ "col": 2
+ },
+ {
+ "name": "label38",
+ "col": 1
+ },
+ {
+ "name": "label39",
+ "col": 7
+ },
+ {
+ "name": "label40",
+ "col": 1
+ },
+ {
+ "name": "label41",
+ "col": 1
+ },
+ {
+ "name": "label42",
+ "col": 7
+ },
+ {
+ "name": "label43",
+ "col": 1
+ },
+ {
+ "name": "label44",
+ "col": 7
+ },
+ {
+ "name": "label45",
+ "col": 1
+ },
+ {
+ "name": "label46",
+ "col": 1
+ },
+ {
+ "name": "label47",
+ "col": 7
+ },
+ {
+ "name": "label48",
+ "col": 1
+ },
+ {
+ "name": "label49",
+ "col": 7
+ },
+ {
+ "name": "label50",
+ "col": 1
+ },
+ {
+ "name": "label51",
+ "col": 7
+ },
+ {
+ "name": "label52",
+ "col": 1
+ },
+ {
+ "name": "label53",
+ "col": 1
+ },
+ {
+ "name": "label54",
+ "col": 7
+ },
+ {
+ "name": "label55",
+ "col": 1
+ },
+ {
+ "name": "label56",
+ "col": 7
+ },
+ {
+ "name": "label57",
+ "col": 3
+ },
+ {
+ "name": "label58",
+ "col": 2
+ },
+ {
+ "name": "label59",
+ "col": 1
+ },
+ {
+ "name": "label60",
+ "col": 1
+ },
+ {
+ "name": "label61",
+ "col": 7
+ },
+ {
+ "name": "label62",
+ "col": 1
+ },
+ {
+ "name": "label63",
+ "col": 7
+ },
+ {
+ "name": "label64",
+ "col": 1
+ },
+ {
+ "name": "label65",
+ "col": 1
+ },
+ {
+ "name": "label66",
+ "col": 7
+ },
+ {
+ "name": "label67",
+ "col": 1
+ },
+ {
+ "name": "label68",
+ "col": 7
+ },
+ {
+ "name": "label69",
+ "col": 1
+ },
+ {
+ "name": "label70",
+ "col": 1
+ },
+ {
+ "name": "label71",
+ "col": 1
+ },
+ {
+ "name": "label72",
+ "col": 7
+ },
+ {
+ "name": "label73",
+ "col": 1
+ },
+ {
+ "name": "label74",
+ "col": 7
+ }
+ ],
+ "links": [
+ {
+ "source": "label0",
+ "target": "label1",
+ "value": 13
+ },
+ {
+ "source": "label2",
+ "target": "label0",
+ "value": 1
+ },
+ {
+ "source": "label3",
+ "target": "label0",
+ "value": 1
+ },
+ {
+ "source": "label4",
+ "target": "label0",
+ "value": 1
+ },
+ {
+ "source": "label5",
+ "target": "label0",
+ "value": 1
+ },
+ {
+ "source": "label6",
+ "target": "label0",
+ "value": 1
+ },
+ {
+ "source": "label7",
+ "target": "label0",
+ "value": 1
+ },
+ {
+ "source": "label8",
+ "target": "label0",
+ "value": 1
+ },
+ {
+ "source": "label9",
+ "target": "label0",
+ "value": 1
+ },
+ {
+ "source": "label10",
+ "target": "label0",
+ "value": 1
+ },
+ {
+ "source": "label11",
+ "target": "label0",
+ "value": 1
+ },
+ {
+ "source": "label12",
+ "target": "label0",
+ "value": 1
+ },
+ {
+ "source": "label13",
+ "target": "label0",
+ "value": 1
+ },
+ {
+ "source": "label14",
+ "target": "label0",
+ "value": 1
+ },
+ {
+ "source": "label15",
+ "target": "label16",
+ "value": 1
+ },
+ {
+ "source": "label15",
+ "target": "label17",
+ "value": 1
+ },
+ {
+ "source": "label15",
+ "target": "label18",
+ "value": 1
+ },
+ {
+ "source": "label15",
+ "target": "label19",
+ "value": 1
+ },
+ {
+ "source": "label15",
+ "target": "label20",
+ "value": 1
+ },
+ {
+ "source": "label15",
+ "target": "label21",
+ "value": 1
+ },
+ {
+ "source": "label22",
+ "target": "label15",
+ "value": 1
+ },
+ {
+ "source": "label23",
+ "target": "label15",
+ "value": 1
+ },
+ {
+ "source": "label15",
+ "target": "label24",
+ "value": 1
+ },
+ {
+ "source": "label25",
+ "target": "label15",
+ "value": 1
+ },
+ {
+ "source": "label15",
+ "target": "label26",
+ "value": 1
+ },
+ {
+ "source": "label15",
+ "target": "label27",
+ "value": 1
+ },
+ {
+ "source": "label16",
+ "target": "label15",
+ "value": 1
+ },
+ {
+ "source": "label28",
+ "target": "label16",
+ "value": 1
+ },
+ {
+ "source": "label16",
+ "target": "label29",
+ "value": 1
+ },
+ {
+ "source": "label30",
+ "target": "label16",
+ "value": 1
+ },
+ {
+ "source": "label31",
+ "target": "label16",
+ "value": 1
+ },
+ {
+ "source": "label32",
+ "target": "label16",
+ "value": 1
+ },
+ {
+ "source": "label16",
+ "target": "label33",
+ "value": 1
+ },
+ {
+ "source": "label16",
+ "target": "label34",
+ "value": 1
+ },
+ {
+ "source": "label35",
+ "target": "label16",
+ "value": 1
+ },
+ {
+ "source": "label16",
+ "target": "label36",
+ "value": 1
+ },
+ {
+ "source": "label16",
+ "target": "label27",
+ "value": 1
+ },
+ {
+ "source": "label17",
+ "target": "label15",
+ "value": 1
+ },
+ {
+ "source": "label17",
+ "target": "label37",
+ "value": 1
+ },
+ {
+ "source": "label28",
+ "target": "label17",
+ "value": 1
+ },
+ {
+ "source": "label38",
+ "target": "label17",
+ "value": 1
+ },
+ {
+ "source": "label17",
+ "target": "label39",
+ "value": 1
+ },
+ {
+ "source": "label40",
+ "target": "label17",
+ "value": 1
+ },
+ {
+ "source": "label41",
+ "target": "label17",
+ "value": 1
+ },
+ {
+ "source": "label17",
+ "target": "label42",
+ "value": 1
+ },
+ {
+ "source": "label43",
+ "target": "label17",
+ "value": 1
+ },
+ {
+ "source": "label17",
+ "target": "label44",
+ "value": 1
+ },
+ {
+ "source": "label17",
+ "target": "label27",
+ "value": 1
+ },
+ {
+ "source": "label18",
+ "target": "label15",
+ "value": 1
+ },
+ {
+ "source": "label38",
+ "target": "label18",
+ "value": 1
+ },
+ {
+ "source": "label28",
+ "target": "label18",
+ "value": 1
+ },
+ {
+ "source": "label45",
+ "target": "label18",
+ "value": 1
+ },
+ {
+ "source": "label46",
+ "target": "label18",
+ "value": 1
+ },
+ {
+ "source": "label18",
+ "target": "label47",
+ "value": 1
+ },
+ {
+ "source": "label48",
+ "target": "label18",
+ "value": 1
+ },
+ {
+ "source": "label18",
+ "target": "label49",
+ "value": 1
+ },
+ {
+ "source": "label18",
+ "target": "label27",
+ "value": 1
+ },
+ {
+ "source": "label19",
+ "target": "label15",
+ "value": 1
+ },
+ {
+ "source": "label19",
+ "target": "label16",
+ "value": 1
+ },
+ {
+ "source": "label38",
+ "target": "label19",
+ "value": 1
+ },
+ {
+ "source": "label28",
+ "target": "label19",
+ "value": 1
+ },
+ {
+ "source": "label50",
+ "target": "label19",
+ "value": 1
+ },
+ {
+ "source": "label19",
+ "target": "label51",
+ "value": 1
+ },
+ {
+ "source": "label52",
+ "target": "label19",
+ "value": 1
+ },
+ {
+ "source": "label53",
+ "target": "label19",
+ "value": 1
+ },
+ {
+ "source": "label19",
+ "target": "label54",
+ "value": 1
+ },
+ {
+ "source": "label55",
+ "target": "label19",
+ "value": 1
+ },
+ {
+ "source": "label19",
+ "target": "label56",
+ "value": 1
+ },
+ {
+ "source": "label19",
+ "target": "label27",
+ "value": 1
+ },
+ {
+ "source": "label20",
+ "target": "label15",
+ "value": 1
+ },
+ {
+ "source": "label20",
+ "target": "label57",
+ "value": 1
+ },
+ {
+ "source": "label20",
+ "target": "label58",
+ "value": 1
+ },
+ {
+ "source": "label28",
+ "target": "label20",
+ "value": 1
+ },
+ {
+ "source": "label50",
+ "target": "label20",
+ "value": 1
+ },
+ {
+ "source": "label38",
+ "target": "label20",
+ "value": 1
+ },
+ {
+ "source": "label20",
+ "target": "label51",
+ "value": 1
+ },
+ {
+ "source": "label59",
+ "target": "label20",
+ "value": 1
+ },
+ {
+ "source": "label60",
+ "target": "label20",
+ "value": 1
+ },
+ {
+ "source": "label20",
+ "target": "label61",
+ "value": 1
+ },
+ {
+ "source": "label62",
+ "target": "label20",
+ "value": 1
+ },
+ {
+ "source": "label20",
+ "target": "label63",
+ "value": 1
+ },
+ {
+ "source": "label20",
+ "target": "label27",
+ "value": 1
+ },
+ {
+ "source": "label21",
+ "target": "label15",
+ "value": 1
+ },
+ {
+ "source": "label21",
+ "target": "label19",
+ "value": 1
+ },
+ {
+ "source": "label28",
+ "target": "label21",
+ "value": 1
+ },
+ {
+ "source": "label64",
+ "target": "label21",
+ "value": 1
+ },
+ {
+ "source": "label65",
+ "target": "label21",
+ "value": 1
+ },
+ {
+ "source": "label21",
+ "target": "label66",
+ "value": 1
+ },
+ {
+ "source": "label67",
+ "target": "label21",
+ "value": 1
+ },
+ {
+ "source": "label21",
+ "target": "label68",
+ "value": 1
+ },
+ {
+ "source": "label21",
+ "target": "label27",
+ "value": 1
+ },
+ {
+ "source": "label57",
+ "target": "label15",
+ "value": 1
+ },
+ {
+ "source": "label57",
+ "target": "label21",
+ "value": 1
+ },
+ {
+ "source": "label57",
+ "target": "label20",
+ "value": 1
+ },
+ {
+ "source": "label69",
+ "target": "label57",
+ "value": 1
+ },
+ {
+ "source": "label70",
+ "target": "label57",
+ "value": 1
+ },
+ {
+ "source": "label71",
+ "target": "label57",
+ "value": 1
+ },
+ {
+ "source": "label57",
+ "target": "label72",
+ "value": 1
+ },
+ {
+ "source": "label73",
+ "target": "label57",
+ "value": 1
+ },
+ {
+ "source": "label57",
+ "target": "label74",
+ "value": 1
+ },
+ {
+ "source": "label57",
+ "target": "label27",
+ "value": 1
+ }
+ ]
+}
diff --git a/package-lock.json b/package-lock.json
index 3ed382e..fecb449 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "d3-sankey-circular",
- "version": "0.33.0",
+ "version": "0.34.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@@ -100,6 +100,7 @@
"resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
"integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
"dev": true,
+ "optional": true,
"requires": {
"arr-flatten": "^1.0.1"
}
@@ -108,25 +109,29 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
"integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
- "dev": true
+ "dev": true,
+ "optional": true
},
"arr-union": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
"integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
- "dev": true
+ "dev": true,
+ "optional": true
},
"array-unique": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
"integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
- "dev": true
+ "dev": true,
+ "optional": true
},
"assign-symbols": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
"integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
- "dev": true
+ "dev": true,
+ "optional": true
},
"async-each": {
"version": "1.0.1",
@@ -139,7 +144,8 @@
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
"integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
- "dev": true
+ "dev": true,
+ "optional": true
},
"babel-cli": {
"version": "6.26.0",
@@ -825,6 +831,7 @@
"resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
"integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
"dev": true,
+ "optional": true,
"requires": {
"cache-base": "^1.0.1",
"class-utils": "^0.3.5",
@@ -840,6 +847,7 @@
"resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
"integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
"dev": true,
+ "optional": true,
"requires": {
"is-descriptor": "^1.0.0"
}
@@ -849,6 +857,7 @@
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
"integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
"dev": true,
+ "optional": true,
"requires": {
"kind-of": "^6.0.0"
}
@@ -858,6 +867,7 @@
"resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
"integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
"dev": true,
+ "optional": true,
"requires": {
"kind-of": "^6.0.0"
}
@@ -867,6 +877,7 @@
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
"integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
"dev": true,
+ "optional": true,
"requires": {
"is-accessor-descriptor": "^1.0.0",
"is-data-descriptor": "^1.0.0",
@@ -877,13 +888,15 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
"integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
+ "dev": true,
+ "optional": true
},
"kind-of": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
"integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
- "dev": true
+ "dev": true,
+ "optional": true
}
}
},
@@ -909,6 +922,7 @@
"resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
"integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
"dev": true,
+ "optional": true,
"requires": {
"expand-range": "^1.8.1",
"preserve": "^0.2.0",
@@ -942,6 +956,7 @@
"resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
"integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
"dev": true,
+ "optional": true,
"requires": {
"collection-visit": "^1.0.0",
"component-emitter": "^1.2.1",
@@ -958,7 +973,8 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
"integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
+ "dev": true,
+ "optional": true
}
}
},
@@ -1037,6 +1053,7 @@
"resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
"integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
"dev": true,
+ "optional": true,
"requires": {
"arr-union": "^3.1.0",
"define-property": "^0.2.5",
@@ -1049,6 +1066,7 @@
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
"dev": true,
+ "optional": true,
"requires": {
"is-descriptor": "^0.1.0"
}
@@ -1057,7 +1075,8 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
"integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
+ "dev": true,
+ "optional": true
}
}
},
@@ -1104,6 +1123,7 @@
"resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
"integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
"dev": true,
+ "optional": true,
"requires": {
"map-visit": "^1.0.0",
"object-visit": "^1.0.0"
@@ -1134,7 +1154,8 @@
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
"integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
- "dev": true
+ "dev": true,
+ "optional": true
},
"concat-map": {
"version": "0.0.1",
@@ -1167,7 +1188,8 @@
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
"integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
- "dev": true
+ "dev": true,
+ "optional": true
},
"core-js": {
"version": "2.6.1",
@@ -1217,9 +1239,9 @@
"integrity": "sha512-q0cW1RpvA5c5ma2rch62mX8AYaiLX0+bdaSM2wxSU9tXjU4DNvkx9qiUvjkuWCj3p22UO/hlPivujqMiR9PDzA=="
},
"d3-shape": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.4.tgz",
- "integrity": "sha512-izaz4fOpOnY3CD17hkZWNxbaN70sIGagLR/5jb6RS96Y+6VqX+q1BQf1av6QSBRdfULi3Gb8Js4CzG4+KAPjMg==",
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.5.tgz",
+ "integrity": "sha512-VKazVR3phgD+MUCldapHD7P9kcrvPcexeX/PkMJmkUov4JM8IxsSg1DvbYoYich9AtdTsa5nNk2++ImPiDiSxg==",
"requires": {
"d3-path": "1"
}
@@ -1243,7 +1265,8 @@
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
"integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
- "dev": true
+ "dev": true,
+ "optional": true
},
"deep-is": {
"version": "0.1.3",
@@ -1256,6 +1279,7 @@
"resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
"integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
"dev": true,
+ "optional": true,
"requires": {
"is-descriptor": "^1.0.2",
"isobject": "^3.0.1"
@@ -1266,6 +1290,7 @@
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
"integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
"dev": true,
+ "optional": true,
"requires": {
"kind-of": "^6.0.0"
}
@@ -1275,6 +1300,7 @@
"resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
"integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
"dev": true,
+ "optional": true,
"requires": {
"kind-of": "^6.0.0"
}
@@ -1284,6 +1310,7 @@
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
"integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
"dev": true,
+ "optional": true,
"requires": {
"is-accessor-descriptor": "^1.0.0",
"is-data-descriptor": "^1.0.0",
@@ -1294,13 +1321,15 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
"integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
+ "dev": true,
+ "optional": true
},
"kind-of": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
"integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
- "dev": true
+ "dev": true,
+ "optional": true
}
}
},
@@ -1651,6 +1680,7 @@
"resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
"integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
"dev": true,
+ "optional": true,
"requires": {
"is-posix-bracket": "^0.1.0"
}
@@ -1660,6 +1690,7 @@
"resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
"integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
"dev": true,
+ "optional": true,
"requires": {
"fill-range": "^2.1.0"
}
@@ -1669,6 +1700,7 @@
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
"integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
"dev": true,
+ "optional": true,
"requires": {
"assign-symbols": "^1.0.0",
"is-extendable": "^1.0.1"
@@ -1679,6 +1711,7 @@
"resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
"integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
"dev": true,
+ "optional": true,
"requires": {
"is-plain-object": "^2.0.4"
}
@@ -1701,6 +1734,7 @@
"resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
"integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
"dev": true,
+ "optional": true,
"requires": {
"is-extglob": "^1.0.0"
}
@@ -1746,13 +1780,15 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
"integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=",
- "dev": true
+ "dev": true,
+ "optional": true
},
"fill-range": {
"version": "2.2.4",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz",
"integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==",
"dev": true,
+ "optional": true,
"requires": {
"is-number": "^2.1.0",
"isobject": "^2.0.0",
@@ -1787,13 +1823,15 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
"integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
- "dev": true
+ "dev": true,
+ "optional": true
},
"for-own": {
"version": "0.1.5",
"resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
"integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
"dev": true,
+ "optional": true,
"requires": {
"for-in": "^1.0.1"
}
@@ -1803,6 +1841,7 @@
"resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
"integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
"dev": true,
+ "optional": true,
"requires": {
"map-cache": "^0.2.2"
}
@@ -1820,14 +1859,14 @@
"dev": true
},
"fsevents": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz",
- "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==",
+ "version": "1.2.9",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz",
+ "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==",
"dev": true,
"optional": true,
"requires": {
- "nan": "^2.9.2",
- "node-pre-gyp": "^0.10.0"
+ "nan": "^2.12.1",
+ "node-pre-gyp": "^0.12.0"
},
"dependencies": {
"abbrev": {
@@ -1839,7 +1878,8 @@
"ansi-regex": {
"version": "2.1.1",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"aproba": {
"version": "1.2.0",
@@ -1848,7 +1888,7 @@
"optional": true
},
"are-we-there-yet": {
- "version": "1.1.4",
+ "version": "1.1.5",
"bundled": true,
"dev": true,
"optional": true,
@@ -1874,7 +1914,7 @@
}
},
"chownr": {
- "version": "1.0.1",
+ "version": "1.1.1",
"bundled": true,
"dev": true,
"optional": true
@@ -1904,16 +1944,16 @@
"optional": true
},
"debug": {
- "version": "2.6.9",
+ "version": "4.1.1",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
- "ms": "2.0.0"
+ "ms": "^2.1.1"
}
},
"deep-extend": {
- "version": "0.5.1",
+ "version": "0.6.0",
"bundled": true,
"dev": true,
"optional": true
@@ -1962,7 +2002,7 @@
}
},
"glob": {
- "version": "7.1.2",
+ "version": "7.1.3",
"bundled": true,
"dev": true,
"optional": true,
@@ -1982,12 +2022,12 @@
"optional": true
},
"iconv-lite": {
- "version": "0.4.21",
+ "version": "0.4.24",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
- "safer-buffer": "^2.1.0"
+ "safer-buffer": ">= 2.1.2 < 3"
}
},
"ignore-walk": {
@@ -2052,17 +2092,17 @@
"optional": true
},
"minipass": {
- "version": "2.2.4",
+ "version": "2.3.5",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
- "safe-buffer": "^5.1.1",
+ "safe-buffer": "^5.1.2",
"yallist": "^3.0.0"
}
},
"minizlib": {
- "version": "1.1.0",
+ "version": "1.2.1",
"bundled": true,
"dev": true,
"optional": true,
@@ -2080,35 +2120,35 @@
}
},
"ms": {
- "version": "2.0.0",
+ "version": "2.1.1",
"bundled": true,
"dev": true,
"optional": true
},
"needle": {
- "version": "2.2.0",
+ "version": "2.3.0",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
- "debug": "^2.1.2",
+ "debug": "^4.1.0",
"iconv-lite": "^0.4.4",
"sax": "^1.2.4"
}
},
"node-pre-gyp": {
- "version": "0.10.0",
+ "version": "0.12.0",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"detect-libc": "^1.0.2",
"mkdirp": "^0.5.1",
- "needle": "^2.2.0",
+ "needle": "^2.2.1",
"nopt": "^4.0.1",
"npm-packlist": "^1.1.6",
"npmlog": "^4.0.2",
- "rc": "^1.1.7",
+ "rc": "^1.2.7",
"rimraf": "^2.6.1",
"semver": "^5.3.0",
"tar": "^4"
@@ -2125,13 +2165,13 @@
}
},
"npm-bundled": {
- "version": "1.0.3",
+ "version": "1.0.6",
"bundled": true,
"dev": true,
"optional": true
},
"npm-packlist": {
- "version": "1.1.10",
+ "version": "1.4.1",
"bundled": true,
"dev": true,
"optional": true,
@@ -2208,12 +2248,12 @@
"optional": true
},
"rc": {
- "version": "1.2.7",
+ "version": "1.2.8",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
- "deep-extend": "^0.5.1",
+ "deep-extend": "^0.6.0",
"ini": "~1.3.0",
"minimist": "^1.2.0",
"strip-json-comments": "~2.0.1"
@@ -2243,18 +2283,19 @@
}
},
"rimraf": {
- "version": "2.6.2",
+ "version": "2.6.3",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
- "glob": "^7.0.5"
+ "glob": "^7.1.3"
}
},
"safe-buffer": {
- "version": "5.1.1",
+ "version": "5.1.2",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"safer-buffer": {
"version": "2.1.2",
@@ -2269,7 +2310,7 @@
"optional": true
},
"semver": {
- "version": "5.5.0",
+ "version": "5.7.0",
"bundled": true,
"dev": true,
"optional": true
@@ -2310,6 +2351,7 @@
"version": "3.0.1",
"bundled": true,
"dev": true,
+ "optional": true,
"requires": {
"ansi-regex": "^2.0.0"
}
@@ -2321,17 +2363,17 @@
"optional": true
},
"tar": {
- "version": "4.4.1",
+ "version": "4.4.8",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
- "chownr": "^1.0.1",
+ "chownr": "^1.1.1",
"fs-minipass": "^1.2.5",
- "minipass": "^2.2.4",
- "minizlib": "^1.1.0",
+ "minipass": "^2.3.4",
+ "minizlib": "^1.1.1",
"mkdirp": "^0.5.0",
- "safe-buffer": "^5.1.1",
+ "safe-buffer": "^5.1.2",
"yallist": "^3.0.2"
}
},
@@ -2342,23 +2384,25 @@
"optional": true
},
"wide-align": {
- "version": "1.1.2",
+ "version": "1.1.3",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
- "string-width": "^1.0.2"
+ "string-width": "^1.0.2 || 2"
}
},
"wrappy": {
"version": "1.0.2",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"yallist": {
- "version": "3.0.2",
+ "version": "3.0.3",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
}
}
},
@@ -2378,7 +2422,8 @@
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
"integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
- "dev": true
+ "dev": true,
+ "optional": true
},
"glob": {
"version": "7.1.3",
@@ -2399,6 +2444,7 @@
"resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
"integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
"dev": true,
+ "optional": true,
"requires": {
"glob-parent": "^2.0.0",
"is-glob": "^2.0.0"
@@ -2409,6 +2455,7 @@
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
"integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
"dev": true,
+ "optional": true,
"requires": {
"is-glob": "^2.0.0"
}
@@ -2445,6 +2492,7 @@
"resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
"integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
"dev": true,
+ "optional": true,
"requires": {
"get-value": "^2.0.6",
"has-values": "^1.0.0",
@@ -2455,7 +2503,8 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
"integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
+ "dev": true,
+ "optional": true
}
}
},
@@ -2464,6 +2513,7 @@
"resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
"integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
"dev": true,
+ "optional": true,
"requires": {
"is-number": "^3.0.0",
"kind-of": "^4.0.0"
@@ -2474,6 +2524,7 @@
"resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
"integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
"dev": true,
+ "optional": true,
"requires": {
"kind-of": "^3.0.2"
},
@@ -2483,6 +2534,7 @@
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"dev": true,
+ "optional": true,
"requires": {
"is-buffer": "^1.1.5"
}
@@ -2494,6 +2546,7 @@
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
"integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
"dev": true,
+ "optional": true,
"requires": {
"is-buffer": "^1.1.5"
}
@@ -2657,6 +2710,7 @@
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
"integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
"dev": true,
+ "optional": true,
"requires": {
"kind-of": "^3.0.2"
}
@@ -2681,7 +2735,8 @@
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
- "dev": true
+ "dev": true,
+ "optional": true
},
"is-builtin-module": {
"version": "1.0.0",
@@ -2697,6 +2752,7 @@
"resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
"integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
"dev": true,
+ "optional": true,
"requires": {
"kind-of": "^3.0.2"
}
@@ -2706,6 +2762,7 @@
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
"integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
"dev": true,
+ "optional": true,
"requires": {
"is-accessor-descriptor": "^0.1.6",
"is-data-descriptor": "^0.1.4",
@@ -2716,7 +2773,8 @@
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
"integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
- "dev": true
+ "dev": true,
+ "optional": true
}
}
},
@@ -2724,13 +2782,15 @@
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz",
"integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=",
- "dev": true
+ "dev": true,
+ "optional": true
},
"is-equal-shallow": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
"integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
"dev": true,
+ "optional": true,
"requires": {
"is-primitive": "^2.0.0"
}
@@ -2739,13 +2799,15 @@
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
"integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
- "dev": true
+ "dev": true,
+ "optional": true
},
"is-extglob": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
"integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
- "dev": true
+ "dev": true,
+ "optional": true
},
"is-finite": {
"version": "1.0.2",
@@ -2770,6 +2832,7 @@
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
"integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
"dev": true,
+ "optional": true,
"requires": {
"is-extglob": "^1.0.0"
}
@@ -2785,6 +2848,7 @@
"resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
"integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
"dev": true,
+ "optional": true,
"requires": {
"kind-of": "^3.0.2"
}
@@ -2794,6 +2858,7 @@
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
"integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
"dev": true,
+ "optional": true,
"requires": {
"isobject": "^3.0.1"
},
@@ -2802,7 +2867,8 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
"integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
+ "dev": true,
+ "optional": true
}
}
},
@@ -2810,13 +2876,15 @@
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
"integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=",
- "dev": true
+ "dev": true,
+ "optional": true
},
"is-primitive": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
"integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
- "dev": true
+ "dev": true,
+ "optional": true
},
"is-promise": {
"version": "2.1.0",
@@ -2860,6 +2928,7 @@
"resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
"integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
"dev": true,
+ "optional": true,
"requires": {
"isarray": "1.0.0"
}
@@ -2871,9 +2940,9 @@
"dev": true
},
"js-yaml": {
- "version": "3.12.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.1.tgz",
- "integrity": "sha512-um46hB9wNOKlwkHgiuyEVAybXBjwFUV0Z/RaHJblRd9DXltue9FTYvzCr9ErQrK9Adz5MU4gHWVaNUfdmrC8qA==",
+ "version": "3.13.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
+ "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
"dev": true,
"requires": {
"argparse": "^1.0.7",
@@ -2909,6 +2978,7 @@
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"dev": true,
+ "optional": true,
"requires": {
"is-buffer": "^1.1.5"
}
@@ -2946,9 +3016,9 @@
}
},
"lodash": {
- "version": "4.17.11",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
- "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
+ "version": "4.17.19",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
+ "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==",
"dev": true
},
"loose-envify": {
@@ -2971,25 +3041,27 @@
}
},
"magic-string": {
- "version": "0.25.1",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.1.tgz",
- "integrity": "sha512-sCuTz6pYom8Rlt4ISPFn6wuFodbKMIHUMv4Qko9P17dpxb7s52KJTmRuZZqHdGmLCK9AOcDare039nRIcfdkEg==",
+ "version": "0.25.3",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.3.tgz",
+ "integrity": "sha512-6QK0OpF/phMz0Q2AxILkX2mFhi7m+WMwTRg0LQKq/WBB0cDP4rYH3Wp4/d3OTXlrPLVJT/RFqj8tFeAR4nk8AA==",
"dev": true,
"requires": {
- "sourcemap-codec": "^1.4.1"
+ "sourcemap-codec": "^1.4.4"
}
},
"map-cache": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
"integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
- "dev": true
+ "dev": true,
+ "optional": true
},
"map-visit": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
"integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
"dev": true,
+ "optional": true,
"requires": {
"object-visit": "^1.0.0"
}
@@ -2998,13 +3070,15 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz",
"integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=",
- "dev": true
+ "dev": true,
+ "optional": true
},
"micromatch": {
"version": "2.3.11",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
"integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
"dev": true,
+ "optional": true,
"requires": {
"arr-diff": "^2.0.0",
"array-unique": "^0.2.1",
@@ -3043,10 +3117,11 @@
"dev": true
},
"mixin-deep": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz",
- "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==",
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
+ "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
"dev": true,
+ "optional": true,
"requires": {
"for-in": "^1.0.2",
"is-extendable": "^1.0.1"
@@ -3057,6 +3132,7 @@
"resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
"integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
"dev": true,
+ "optional": true,
"requires": {
"is-plain-object": "^2.0.4"
}
@@ -3085,9 +3161,9 @@
"dev": true
},
"nan": {
- "version": "2.12.1",
- "resolved": "https://registry.npmjs.org/nan/-/nan-2.12.1.tgz",
- "integrity": "sha512-JY7V6lRkStKcKTvHO5NVSQRv+RV+FIL5pvDoLiAtSL9pKlC5x9PKQcZDsq7m4FO4d57mkhC6Z+QhAh3Jdk5JFw==",
+ "version": "2.14.0",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz",
+ "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==",
"dev": true,
"optional": true
},
@@ -3163,6 +3239,7 @@
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
"integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
"dev": true,
+ "optional": true,
"requires": {
"remove-trailing-separator": "^1.0.1"
}
@@ -3184,6 +3261,7 @@
"resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
"integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
"dev": true,
+ "optional": true,
"requires": {
"copy-descriptor": "^0.1.0",
"define-property": "^0.2.5",
@@ -3195,6 +3273,7 @@
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
"dev": true,
+ "optional": true,
"requires": {
"is-descriptor": "^0.1.0"
}
@@ -3206,6 +3285,7 @@
"resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
"integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
"dev": true,
+ "optional": true,
"requires": {
"isobject": "^3.0.0"
},
@@ -3214,7 +3294,8 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
"integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
+ "dev": true,
+ "optional": true
}
}
},
@@ -3223,6 +3304,7 @@
"resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
"integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
"dev": true,
+ "optional": true,
"requires": {
"for-own": "^0.1.4",
"is-extendable": "^0.1.1"
@@ -3233,6 +3315,7 @@
"resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
"integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
"dev": true,
+ "optional": true,
"requires": {
"isobject": "^3.0.1"
},
@@ -3241,7 +3324,8 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
"integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
+ "dev": true,
+ "optional": true
}
}
},
@@ -3314,6 +3398,7 @@
"resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
"integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
"dev": true,
+ "optional": true,
"requires": {
"glob-base": "^0.3.0",
"is-dotfile": "^1.0.0",
@@ -3334,7 +3419,8 @@
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
"integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
- "dev": true
+ "dev": true,
+ "optional": true
},
"path-exists": {
"version": "2.1.0",
@@ -3418,7 +3504,8 @@
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
"integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=",
- "dev": true
+ "dev": true,
+ "optional": true
},
"private": {
"version": "0.1.8",
@@ -3449,6 +3536,7 @@
"resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz",
"integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==",
"dev": true,
+ "optional": true,
"requires": {
"is-number": "^4.0.0",
"kind-of": "^6.0.0",
@@ -3459,13 +3547,15 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
"integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==",
- "dev": true
+ "dev": true,
+ "optional": true
},
"kind-of": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
"integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
- "dev": true
+ "dev": true,
+ "optional": true
}
}
},
@@ -3528,7 +3618,8 @@
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
"integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
- "dev": true
+ "dev": true,
+ "optional": true
},
"braces": {
"version": "2.3.2",
@@ -3791,7 +3882,8 @@
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
"integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
- "dev": true
+ "dev": true,
+ "optional": true
},
"micromatch": {
"version": "3.1.10",
@@ -3845,6 +3937,7 @@
"resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz",
"integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
"dev": true,
+ "optional": true,
"requires": {
"is-equal-shallow": "^0.1.3"
}
@@ -3854,6 +3947,7 @@
"resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
"integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
"dev": true,
+ "optional": true,
"requires": {
"extend-shallow": "^3.0.2",
"safe-regex": "^1.1.0"
@@ -3903,19 +3997,22 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
"integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
- "dev": true
+ "dev": true,
+ "optional": true
},
"repeat-element": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
"integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==",
- "dev": true
+ "dev": true,
+ "optional": true
},
"repeat-string": {
"version": "1.6.1",
"resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
"integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
- "dev": true
+ "dev": true,
+ "optional": true
},
"repeating": {
"version": "2.0.1",
@@ -3967,7 +4064,8 @@
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
"integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
- "dev": true
+ "dev": true,
+ "optional": true
},
"restore-cursor": {
"version": "2.0.0",
@@ -3983,7 +4081,8 @@
"version": "0.1.15",
"resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
"integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
- "dev": true
+ "dev": true,
+ "optional": true
},
"rimraf": {
"version": "2.6.3",
@@ -4014,31 +4113,39 @@
}
},
"rollup-plugin-commonjs": {
- "version": "9.2.0",
- "resolved": "https://registry.npmjs.org/rollup-plugin-commonjs/-/rollup-plugin-commonjs-9.2.0.tgz",
- "integrity": "sha512-0RM5U4Vd6iHjL6rLvr3lKBwnPsaVml+qxOGaaNUWN1lSq6S33KhITOfHmvxV3z2vy9Mk4t0g4rNlVaJJsNQPWA==",
+ "version": "9.3.4",
+ "resolved": "https://registry.npmjs.org/rollup-plugin-commonjs/-/rollup-plugin-commonjs-9.3.4.tgz",
+ "integrity": "sha512-DTZOvRoiVIHHLFBCL4pFxOaJt8pagxsVldEXBOn6wl3/V21wVaj17HFfyzTsQUuou3sZL3lEJZVWKPFblJfI6w==",
"dev": true,
"requires": {
- "estree-walker": "^0.5.2",
- "magic-string": "^0.25.1",
- "resolve": "^1.8.1",
- "rollup-pluginutils": "^2.3.3"
+ "estree-walker": "^0.6.0",
+ "magic-string": "^0.25.2",
+ "resolve": "^1.10.0",
+ "rollup-pluginutils": "^2.6.0"
},
"dependencies": {
"estree-walker": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.5.2.tgz",
- "integrity": "sha512-XpCnW/AE10ws/kDAs37cngSkvgIR8aN3G0MS85m7dUpuK2EREo9VJ00uvw6Dg/hXEpfsE1I1TvJOJr+Z+TL+ig==",
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz",
+ "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==",
"dev": true
},
+ "resolve": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz",
+ "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==",
+ "dev": true,
+ "requires": {
+ "path-parse": "^1.0.6"
+ }
+ },
"rollup-pluginutils": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.3.3.tgz",
- "integrity": "sha512-2XZwja7b6P5q4RZ5FhyX1+f46xi1Z3qBKigLRZ6VTZjwbN0K1IFGMlwm06Uu0Emcre2Z63l77nq/pzn+KxIEoA==",
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.1.tgz",
+ "integrity": "sha512-J5oAoysWar6GuZo0s+3bZ6sVZAC0pfqKz68De7ZgDi5z63jOVZn1uJL/+z1jeKHNbGII8kAyHF5q8LnxSX5lQg==",
"dev": true,
"requires": {
- "estree-walker": "^0.5.2",
- "micromatch": "^2.3.11"
+ "estree-walker": "^0.6.1"
}
}
}
@@ -4107,6 +4214,7 @@
"resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
"integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
"dev": true,
+ "optional": true,
"requires": {
"ret": "~0.1.10"
}
@@ -4134,6 +4242,7 @@
"resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz",
"integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==",
"dev": true,
+ "optional": true,
"requires": {
"extend-shallow": "^2.0.1",
"is-extendable": "^0.1.1",
@@ -4146,6 +4255,7 @@
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"dev": true,
+ "optional": true,
"requires": {
"is-extendable": "^0.1.0"
}
@@ -4201,6 +4311,7 @@
"resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
"integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
"dev": true,
+ "optional": true,
"requires": {
"base": "^0.11.1",
"debug": "^2.2.0",
@@ -4217,6 +4328,7 @@
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
"dev": true,
+ "optional": true,
"requires": {
"is-descriptor": "^0.1.0"
}
@@ -4226,6 +4338,7 @@
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"dev": true,
+ "optional": true,
"requires": {
"is-extendable": "^0.1.0"
}
@@ -4297,7 +4410,8 @@
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
"integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
- "dev": true
+ "dev": true,
+ "optional": true
}
}
},
@@ -4322,6 +4436,7 @@
"resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz",
"integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==",
"dev": true,
+ "optional": true,
"requires": {
"atob": "^2.1.1",
"decode-uri-component": "^0.2.0",
@@ -4343,12 +4458,13 @@
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
"integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
- "dev": true
+ "dev": true,
+ "optional": true
},
"sourcemap-codec": {
- "version": "1.4.4",
- "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.4.tgz",
- "integrity": "sha512-CYAPYdBu34781kLHkaW3m6b/uUSyMOC2R61gcYMWooeuaGtjof86ZA/8T+qVPPt7np1085CR9hmMGrySwEc8Xg==",
+ "version": "1.4.6",
+ "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.6.tgz",
+ "integrity": "sha512-1ZooVLYFxC448piVLBbtOxFcXwnymH9oUF8nRd3CuYDVvkRBxRl6pB4Mtas5a4drtL+E8LDgFkQNcgIw6tc8Hg==",
"dev": true
},
"spdx-correct": {
@@ -4388,6 +4504,7 @@
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
"integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
"dev": true,
+ "optional": true,
"requires": {
"extend-shallow": "^3.0.0"
}
@@ -4403,6 +4520,7 @@
"resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
"integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
"dev": true,
+ "optional": true,
"requires": {
"define-property": "^0.2.5",
"object-copy": "^0.1.0"
@@ -4413,6 +4531,7 @@
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
"dev": true,
+ "optional": true,
"requires": {
"is-descriptor": "^0.1.0"
}
@@ -4592,6 +4711,7 @@
"resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
"integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
"dev": true,
+ "optional": true,
"requires": {
"kind-of": "^3.0.2"
}
@@ -4601,6 +4721,7 @@
"resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
"integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
"dev": true,
+ "optional": true,
"requires": {
"define-property": "^2.0.2",
"extend-shallow": "^3.0.2",
@@ -4653,19 +4774,19 @@
"dev": true
},
"uglify-js": {
- "version": "3.4.9",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.9.tgz",
- "integrity": "sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==",
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.0.tgz",
+ "integrity": "sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg==",
"dev": true,
"requires": {
- "commander": "~2.17.1",
+ "commander": "~2.20.0",
"source-map": "~0.6.1"
},
"dependencies": {
"commander": {
- "version": "2.17.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz",
- "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==",
+ "version": "2.20.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz",
+ "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==",
"dev": true
},
"source-map": {
@@ -4681,6 +4802,7 @@
"resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz",
"integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=",
"dev": true,
+ "optional": true,
"requires": {
"arr-union": "^3.1.0",
"get-value": "^2.0.6",
@@ -4693,6 +4815,7 @@
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"dev": true,
+ "optional": true,
"requires": {
"is-extendable": "^0.1.0"
}
@@ -4702,6 +4825,7 @@
"resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz",
"integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=",
"dev": true,
+ "optional": true,
"requires": {
"extend-shallow": "^2.0.1",
"is-extendable": "^0.1.1",
@@ -4716,6 +4840,7 @@
"resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
"integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
"dev": true,
+ "optional": true,
"requires": {
"has-value": "^0.3.1",
"isobject": "^3.0.0"
@@ -4726,6 +4851,7 @@
"resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
"integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
"dev": true,
+ "optional": true,
"requires": {
"get-value": "^2.0.3",
"has-values": "^0.1.4",
@@ -4737,6 +4863,7 @@
"resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
"integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
"dev": true,
+ "optional": true,
"requires": {
"isarray": "1.0.0"
}
@@ -4747,13 +4874,15 @@
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
"integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
- "dev": true
+ "dev": true,
+ "optional": true
},
"isobject": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
"integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
+ "dev": true,
+ "optional": true
}
}
},
@@ -4761,13 +4890,15 @@
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
"integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
- "dev": true
+ "dev": true,
+ "optional": true
},
"use": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
"integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
- "dev": true
+ "dev": true,
+ "optional": true
},
"user-home": {
"version": "1.1.1",
diff --git a/package.json b/package.json
index 6187c3a..26a3b0c 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "d3-sankey-circular",
- "version": "0.33.0",
+ "version": "0.34.0",
"description": "D3 sankey with circular links",
"author": "Tom Shanley",
"license": "MIT",
@@ -27,9 +27,9 @@
"rimraf": "^2.6.2",
"rollup": "^0.59.4",
"rollup-plugin-babel": "^3.0.4",
- "rollup-plugin-commonjs": "^9.1.3",
+ "rollup-plugin-commonjs": "^9.3.4",
"rollup-plugin-node-resolve": "^3.3.0",
- "uglify-js": "^3.1.3"
+ "uglify-js": "^3.6.0"
},
"babel": {
"presets": [
diff --git a/src/index.js b/src/index.js
index f65891a..c852e3d 100644
--- a/src/index.js
+++ b/src/index.js
@@ -1,7 +1,10 @@
-export { default as sankeyCircular } from './sankeyCircular.js'
+export {
+ default as sankeyCircular,
+ addCircularPathData,
+} from "./sankeyCircular.js";
export {
center as sankeyCenter,
left as sankeyLeft,
right as sankeyRight,
- justify as sankeyJustify
-} from './align'
+ justify as sankeyJustify,
+} from "./align";
diff --git a/src/sankeyCircular.js b/src/sankeyCircular.js
index b7d36aa..dfa4340 100644
--- a/src/sankeyCircular.js
+++ b/src/sankeyCircular.js
@@ -7,31 +7,6 @@ import constant from "./constant";
import {linkHorizontal} from "d3-shape";
import findCircuits from "elementary-circuits-directed-graph";
- // sort links' breadth (ie top to bottom in a column), based on their source nodes' breadths
- function ascendingSourceBreadth (a, b) {
- return ascendingBreadth(a.source, b.source) || a.index - b.index
- }
-
- // sort links' breadth (ie top to bottom in a column), based on their target nodes' breadths
- function ascendingTargetBreadth (a, b) {
- return ascendingBreadth(a.target, b.target) || a.index - b.index
- }
-
- // sort nodes' breadth (ie top to bottom in a column)
- // if both nodes have circular links, or both don't have circular links, then sort by the top (y0) of the node
- // else push nodes that have top circular links to the top, and nodes that have bottom circular links to the bottom
- function ascendingBreadth (a, b) {
- if (a.partOfCycle === b.partOfCycle) {
- return a.y0 - b.y0
- } else {
- if (a.circularLinkType === 'top' || b.circularLinkType === 'bottom') {
- return -1
- } else {
- return 1
- }
- }
- }
-
// return the value of a node or link
function value (d) {
return d.value
@@ -101,7 +76,8 @@ import findCircuits from "elementary-circuits-directed-graph";
iterations = 32,
circularLinkGap = 2,
paddingRatio,
- sortNodes = null
+ sortNodes = null,
+ nodeSort = null;
function sankeyCircular () {
var graph = {
@@ -150,7 +126,10 @@ import findCircuits from "elementary-circuits-directed-graph";
}
- // 8.1 Adjust node and link positions back to fill height of chart area if compressed
+ // 8.1 Fix nodes overlapping after sortNodes
+ resolveNodesOverlap(graph, y0, py)
+
+ // 8.2 Adjust node and link positions back to fill height of chart area if compressed
fillHeight(graph, y0, y1)
// 9. Calculate visually appealling path for the circular paths, and create the "d" string
@@ -159,6 +138,32 @@ import findCircuits from "elementary-circuits-directed-graph";
return graph
} // end of sankeyCircular function
+ // sort links' breadth (ie top to bottom in a column), based on their source nodes' breadths
+ function ascendingSourceBreadth (a, b) {
+ return ascendingBreadth(a.source, b.source) || a.index - b.index
+ }
+
+ // sort links' breadth (ie top to bottom in a column), based on their target nodes' breadths
+ function ascendingTargetBreadth (a, b) {
+ return ascendingBreadth(a.target, b.target) || a.index - b.index
+ }
+
+ // sort nodes' breadth (ie top to bottom in a column)
+ // if both nodes have circular links, or both don't have circular links, then sort by the top (y0) of the node
+ // else push nodes that have top circular links to the top, and nodes that have bottom circular links to the bottom
+ function ascendingBreadth (a, b) {
+ if (a.partOfCycle === b.partOfCycle) {
+ if (nodeSort) return nodeSort(a, b) || a.y0 - b.y0;
+ return a.y0 - b.y0
+ } else {
+ if (a.circularLinkType === 'top' || b.circularLinkType === 'bottom') {
+ return -1
+ } else {
+ return 1
+ }
+ }
+ }
+
// Set the sankeyCircular parameters
// nodeID, nodeAlign, nodeWidth, nodePadding, nodes, links, size, extent, iterations, nodePaddingRatio, circularLinkGap
@@ -224,6 +229,10 @@ import findCircuits from "elementary-circuits-directed-graph";
return arguments.length ? ((sortNodes = _), sankeyCircular) : sortNodes
}
+ sankeyCircular.nodeSort = function(_) {
+ return arguments.length ? (nodeSort = _, sankeyCircular) : nodeSort;
+ };
+
sankeyCircular.update = function(graph) {
// 5. Calculate the nodes' depth based on the incoming and outgoing links
// Sets the nodes':
@@ -433,7 +442,7 @@ import findCircuits from "elementary-circuits-directed-graph";
// assign column numbers, and get max value
graph.nodes.forEach(function (node) {
- node.column = Math.floor(align.call(null, node, x))
+ node.column = sortNodes !== null ? node[sortNodes] : Math.floor(align.call(null, node, x))
})
@@ -530,33 +539,17 @@ import findCircuits from "elementary-circuits-directed-graph";
// For each node in each column, check the node's vertical position in relation to its targets and sources vertical position
// and shift up/down to be closer to the vertical middle of those targets and sources
- function relaxLeftAndRight (alpha, id) {
- var columnsLength = columns.length
-
+ function relaxLeftAndRight (alpha) {
columns.forEach(function (nodes) {
- var n = nodes.length
- var depth = nodes[0].depth
-
nodes.forEach(function (node) {
// check the node is not an orphan
var nodeHeight
if (node.sourceLinks.length || node.targetLinks.length) {
- if (node.partOfCycle && numberOfNonSelfLinkingCycles(node, id) > 0) {
-
- /* empty */
- } else if (depth == 0 && n == 1) {
nodeHeight = node.y1 - node.y0
-
node.y0 = y1 / 2 - nodeHeight / 2
node.y1 = y1 / 2 + nodeHeight / 2
- } else if (depth == columnsLength - 1 && n == 1) {
- nodeHeight = node.y1 - node.y0
-
- node.y0 = y1 / 2 - nodeHeight / 2
- node.y1 = y1 / 2 + nodeHeight / 2
- } else {
var avg = 0
-
+
var avgTargetY = mean(
node.sourceLinks,
linkTargetCenter
@@ -565,19 +558,16 @@ import findCircuits from "elementary-circuits-directed-graph";
node.targetLinks,
linkSourceCenter
)
-
if (avgTargetY && avgSourceY) {
avg = (avgTargetY + avgSourceY) / 2
} else {
avg = avgTargetY || avgSourceY
}
-
var dy = (avg - nodeCenter(node)) * alpha
// positive if it node needs to move down
node.y0 += dy
node.y1 += dy
}
- }
})
})
}
@@ -872,7 +862,7 @@ import findCircuits from "elementary-circuits-directed-graph";
}
// calculate the optimum path for a link to reduce overlaps
- function addCircularPathData (graph, circularLinkGap, y1, id) {
+ export function addCircularPathData (graph, circularLinkGap, y1, id) {
//var baseRadius = 10
var buffer = 5
//var verticalMargin = 25
@@ -1671,3 +1661,37 @@ import findCircuits from "elementary-circuits-directed-graph";
}
}
+
+ function resolveNodesOverlap(graph, y0, py){
+ var columns = nest()
+ .key(function (d) {
+ return d.column
+ })
+ .sortKeys(ascending)
+ .entries(graph.nodes)
+ .map(function (d) {
+ return d.values
+ })
+
+ columns.forEach(function (nodes) {
+ var node, dy, y = y0, n = nodes.length, i
+ // Push any overlapping nodes down.
+ nodes.sort(ascendingBreadth)
+
+ for (i = 0; i < n; ++i) {
+ node = nodes[i]
+ dy = y - node.y0
+
+ if (dy > 0) {
+ node.y0 += dy
+ node.y1 += dy
+ node.targetLinks.forEach(function (l) {
+ l.y1 = l.y1 + dy
+ })
+ node.sourceLinks.forEach(function (l) {
+ l.y0 = l.y0 + dy
+ })
+ }
+ y = node.y1 + py
+ }})
+ }