24 lines
661 B
JavaScript
24 lines
661 B
JavaScript
![]() |
function positionNode(node, previousNode, dx, dropCap) {
|
||
|
if (!dropCap) {
|
||
|
try {
|
||
|
if (node.id === node.parent.children[node.parent.children.length - 1].id) {
|
||
|
node.x += dx * node.depth;
|
||
|
node.y = previousNode ? previousNode.y : 0;
|
||
|
return;
|
||
|
}
|
||
|
} catch (e) {// skip to normal when a node has no parent
|
||
|
}
|
||
|
}
|
||
|
|
||
|
node.x += dx * node.depth;
|
||
|
node.y = previousNode ? previousNode.y + previousNode.height : 0;
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
module.exports = function (root, indent, dropCap) {
|
||
|
var previousNode = null;
|
||
|
root.eachNode(function (node) {
|
||
|
positionNode(node, previousNode, indent, dropCap);
|
||
|
previousNode = node;
|
||
|
});
|
||
|
};
|