- Pull in graphlib 0.7.4 / cp-data v1.1.3
- Pull in graphlib v0.7.2 / cp-data v1.1.2
- More fixes to ranker.
- Introduce experimental orderRestarts feature, which yields reduce crossing counts. See 72128a71d4ece45d4932da44e07ba692b0da5a1c for details.
- Fixes to ranker.
- Removed bbox on outputGraph.graph(). Instead dimensions are exposed as outputGraph.graph().width and outputGraph.graph().height.
- Add support for 'BT' and 'RL' rankDir values.
- Some fixes to how self loops and sideways edges are handled.
- Correctly preserve edge direction in cyclic graphs
- Add bounding box information to output graph
- Fix a bug where some dummy edges were leaked to the layout graph
- Fix a bug where edge ids were lost during layout
- Fix a bug in instrumentation that caused dagre to throw an exception when used with IE.
- Rank constraint values may be one of 'min', 'max', or a value that starts with 'same_'. The latter groups all nodes with the same value into the same rank.
- Temporarily disable cluster orderer, yielding much better ordering results.
- Made cp-data a runtime dependency. It was incorrectly specified as a dev
dependency, which could case result in the error
cannot find module cp-data
.
- Added support for rank constraints.
Backwards incompatible changes:
- Dagre now takes a
dagre.Digraph
ordagre.Graph
as input for layout. See README.md for details. util
is no longer exported from dagre.
Backwards compatible changes:
- Dagre can now perform layout for undirected graphs (dagre.Graph).
This release removes the export of Graph
from the graphlib
library. If you
use Graph
, please get it directly from graphlib
.
With this release you can use node ids instead of references in edges. Where you used to do this:
var nodes = [
{width: w1, height: h1},
{width: w2, height: h2}
];
var edges = [
{ source: nodes[0], target: nodes[1] }
];
dagre.layout()
.nodes(nodes)
.edges(edges)
.run();
You can instead do this:
var nodes = [
{id: "n1", width: w1, height: h1},
{id: "n2", width: w2, height: h2}
];
var edges = [
{ sourceId: "n1", targetId: "n2" }
];
dagre.layout()
.nodes(nodes)
.edges(edges)
.run();
Use whichever is more convenient for your needs.
- Initial CHANGELOG entry