public getColumns()

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;
    }