private static sortColumns()

in src/sankeyDiagram.ts [1296:1326]


    private static sortColumns(
        nodes: SankeyDiagramNode[],
        columns: SankeyDiagramColumn[],
        ascending: boolean,
        sortBy: string): SankeyDiagramNode[] {

        let sortedNodes: SankeyDiagramNode[] = [];
        let current: number = 0;



        columns.forEach(col => {
            let sortedColumn = nodes
                .slice(current, current + col.countOfNodes)
                .sort((a, b) => {
                    let x, y;
                    if (sortBy === "name") {
                        x = a.label.name;
                        y = b.label.name;
                    } else if (sortBy === "weight") {
                        x = Math.max(a.inputWeight, a.outputWeight);
                        y = Math.max(b.inputWeight, b.outputWeight);
                    }
                    return (ascending ? 1 : -1) * ((x < y) ? -1 : ((x > y) ? 1 : 0));
                });
            sortedNodes = [...sortedNodes, ...sortedColumn];
            current += col.countOfNodes;
        });

        return sortedNodes;
    }