in app/assets/javascripts/sankey.js [419:445]
function bfs(node, extractTargets) {
var queue = [node], currentCount = 1, nextCount = 0;
var x = 0;
while(currentCount > 0) {
var currentNode = queue.shift();
currentCount--;
if (!currentNode.hasOwnProperty('x')) {
currentNode.x = x;
currentNode.dx = nodeWidth;
var targets = extractTargets(currentNode);
queue = queue.concat(targets);
nextCount += targets.length;
}
if (currentCount == 0) { // level change
x++;
currentCount = nextCount;
nextCount = 0;
}
}
}