From fddd6cc3f31b1673cdc6612c21186a5079121642 Mon Sep 17 00:00:00 2001 From: Anya Date: Fri, 28 Jun 2019 12:15:04 +0200 Subject: [PATCH 1/2] Allow positioner to be configurable --- lib/layout.js | 2 +- lib/position/index.js | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/layout.js b/lib/layout.js index 26b07304..a6972b70 100644 --- a/lib/layout.js +++ b/lib/layout.js @@ -96,7 +96,7 @@ function updateInputGraph(inputGraph, layoutGraph) { var graphNumAttrs = ["nodesep", "edgesep", "ranksep", "marginx", "marginy"]; var graphDefaults = { ranksep: 50, edgesep: 20, nodesep: 50, rankdir: "tb" }; -var graphAttrs = ["acyclicer", "ranker", "rankdir", "align"]; +var graphAttrs = ["acyclicer", "ranker", "positioner", "rankdir", "align"]; var nodeNumAttrs = ["width", "height"]; var nodeDefaults = { width: 0, height: 0 }; var edgeNumAttrs = ["minlen", "weight", "width", "height", "labeloffset"]; diff --git a/lib/position/index.js b/lib/position/index.js index b4e9872a..00e33d8e 100644 --- a/lib/position/index.js +++ b/lib/position/index.js @@ -9,6 +9,11 @@ module.exports = position; function position(g) { g = util.asNonCompoundGraph(g); + var positioner = g.graph().positioner; + if (positioner instanceof Function) { + return positioner(g) + } + positionY(g); _.forEach(positionX(g), function(x, v) { g.node(v).x = x; From 7298d4d4596543be2ed5b926fe277e2406251638 Mon Sep 17 00:00:00 2001 From: Anya Date: Fri, 28 Jun 2019 12:16:35 +0200 Subject: [PATCH 2/2] Export util.buildLayerMatrix --- index.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/index.js b/index.js index 625910c0..283a16fd 100644 --- a/index.js +++ b/index.js @@ -27,7 +27,8 @@ module.exports = { debug: require("./lib/debug"), util: { time: require("./lib/util").time, - notime: require("./lib/util").notime + notime: require("./lib/util").notime, + buildLayerMatrix: require("./lib/util").buildLayerMatrix }, version: require("./lib/version") };