in src/sankeyDiagram.ts [1235:1267]
public getColumns(nodes: SankeyDiagramNode[]): SankeyDiagramColumn[] {
let columns: SankeyDiagramColumn[] = [],
currentX: number = -Number.MAX_VALUE;
nodes.forEach((node: SankeyDiagramNode) => {
if (!columns[node.x]) {
columns[node.x] = {
countOfNodes: SankeyDiagram.DefaultCountOfNodes,
sumValueOfNodes: SankeyDiagram.DefaultSumValueOfNodes
};
}
columns[node.x].sumValueOfNodes += Math.max(node.inputWeight, node.outputWeight);
columns[node.x].countOfNodes++;
// if node containg backward link it influence to node position (nodes shifts to down)
if (node.links.some((link: SankeyDiagramLink) => {
return link.direction === SankeyLinkDirrections.Backward ? true : false;
})) {
columns[node.x].sumValueOfNodes += node.backwardWeight;
columns[node.x].countOfNodes++;
}
if (node.links.some((link: SankeyDiagramLink) => {
return link.direction === SankeyLinkDirrections.SelfLink ? true : false;
})) {
columns[node.x].sumValueOfNodes += node.selftLinkWeight;
columns[node.x].countOfNodes++;
}
});
return columns;
}