UNPKG

@progress/kendo-charts

Version:

Kendo UI platform-independent Charts library

49 lines (41 loc) 1.49 kB
export var createSankeyData = function (data, dimensions, measure) { var nodes = new Set(); var links = new Map(); var linksMap = new Map(); data.forEach(function (row) { dimensions.forEach(function (dimension) { nodes.add(dimension.value(row)); }); for (var i = 0; i < dimensions.length - 1; i++) { var source = dimensions[i].value(row); var target = dimensions[i + 1].value(row); var key = source + "_" + target; var value = measure.value(row); var existingValue = links.get(key); if (existingValue !== undefined) { links.set(key, existingValue + value); } else { links.set(key, value); linksMap.set(key, { source: source, target: target }); } } }); var nodesId = new Map(); var nodesArray = Array.from(nodes).map(function (node, index) { nodesId.set(node, index); return { id: index, label: { text: String(node) } }; }); var linksArray = Array.from(links).map(function (ref) { var key = ref[0]; var value = ref[1]; var ref$1 = linksMap.get(key); var source = ref$1.source; var target = ref$1.target; return { sourceId: nodesId.get(source), targetId: nodesId.get(target), value: value }; }); return { nodes: nodesArray, links: linksArray }; };