@progress/kendo-charts 2.3.0-dev.202404170829 → 2.3.0-dev.202404191639

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,48 @@
1
+ export var createSankeyData = function (data, dimensions, measure) {
2
+ var nodes = new Set();
3
+ var links = new Map();
4
+ var linksMap = new Map();
5
+
6
+ data.forEach(function (row) {
7
+ dimensions.forEach(function (dimension) {
8
+ nodes.add(dimension.value(row));
9
+ });
10
+
11
+ for (var i = 0; i < dimensions.length - 1; i++) {
12
+ var source = dimensions[i].value(row);
13
+ var target = dimensions[i + 1].value(row);
14
+ var key = source + "_" + target;
15
+ var value = measure.value(row);
16
+ var existingValue = links.get(key);
17
+
18
+ if (existingValue !== undefined) {
19
+ links.set(key, existingValue + value);
20
+ } else {
21
+ links.set(key, value);
22
+ linksMap.set(key, { source: source, target: target });
23
+ }
24
+ }
25
+ });
26
+
27
+ var nodesId = new Map();
28
+ var nodesArray = Array.from(nodes).map(function (node, index) {
29
+ nodesId.set(node, index);
30
+ return { id: index, label: { text: String(node) } };
31
+ });
32
+
33
+ var linksArray = Array.from(links).map(function (ref) {
34
+ var key = ref[0];
35
+ var value = ref[1];
36
+
37
+ var ref$1 = linksMap.get(key);
38
+ var source = ref$1.source;
39
+ var target = ref$1.target;
40
+ return {
41
+ sourceId: nodesId.get(source),
42
+ targetId: nodesId.get(target),
43
+ value: value
44
+ };
45
+ });
46
+
47
+ return { nodes: nodesArray, links: linksArray };
48
+ };
package/dist/es/sankey.js CHANGED
@@ -1 +1,2 @@
1
1
  export { Sankey } from './sankey/sankey';
2
+ export { createSankeyData } from './sankey/utils';
@@ -0,0 +1,43 @@
1
+ export const createSankeyData = (data, dimensions, measure) => {
2
+ const nodes = new Set();
3
+ const links = new Map();
4
+ const linksMap = new Map();
5
+
6
+ data.forEach((row) => {
7
+ dimensions.forEach((dimension) => {
8
+ nodes.add(dimension.value(row));
9
+ });
10
+
11
+ for (let i = 0; i < dimensions.length - 1; i++) {
12
+ const source = dimensions[i].value(row);
13
+ const target = dimensions[i + 1].value(row);
14
+ const key = `${source}_${target}`;
15
+ const value = measure.value(row);
16
+ const existingValue = links.get(key);
17
+
18
+ if (existingValue !== undefined) {
19
+ links.set(key, existingValue + value);
20
+ } else {
21
+ links.set(key, value);
22
+ linksMap.set(key, { source, target });
23
+ }
24
+ }
25
+ });
26
+
27
+ const nodesId = new Map();
28
+ const nodesArray = Array.from(nodes).map((node, index) => {
29
+ nodesId.set(node, index);
30
+ return { id: index, label: { text: String(node) } };
31
+ });
32
+
33
+ const linksArray = Array.from(links).map(([key, value]) => {
34
+ const { source, target } = linksMap.get(key);
35
+ return {
36
+ sourceId: nodesId.get(source),
37
+ targetId: nodesId.get(target),
38
+ value
39
+ };
40
+ });
41
+
42
+ return { nodes: nodesArray, links: linksArray };
43
+ };
@@ -1 +1,2 @@
1
1
  export { Sankey } from './sankey/sankey';
2
+ export { createSankeyData } from './sankey/utils';