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