@antv/layout 0.2.1 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/dist/layout.min.js +1 -1
- package/dist/layout.min.js.LICENSE.txt +0 -9
- package/dist/layout.min.js.map +1 -1
- package/es/layout/circular.js.map +1 -1
- package/es/layout/comboCombined.js +1 -1
- package/es/layout/comboCombined.js.map +1 -1
- package/es/layout/concentric.js.map +1 -1
- package/es/layout/dagre/graph.d.ts +91 -0
- package/es/layout/dagre/graph.js +4 -0
- package/es/layout/dagre/graph.js.map +1 -0
- package/es/layout/dagre/index.d.ts +3 -4
- package/es/layout/dagre/index.js +0 -2
- package/es/layout/dagre/index.js.map +1 -1
- package/es/layout/dagre/src/acyclic.d.ts +1 -2
- package/es/layout/dagre/src/acyclic.js +7 -7
- package/es/layout/dagre/src/acyclic.js.map +1 -1
- package/es/layout/dagre/src/add-border-segments.d.ts +1 -2
- package/es/layout/dagre/src/add-border-segments.js +5 -5
- package/es/layout/dagre/src/add-border-segments.js.map +1 -1
- package/es/layout/dagre/src/coordinate-system.d.ts +1 -2
- package/es/layout/dagre/src/coordinate-system.js +15 -5
- package/es/layout/dagre/src/coordinate-system.js.map +1 -1
- package/es/layout/dagre/src/data/list.d.ts +9 -5
- package/es/layout/dagre/src/data/list.js +25 -27
- package/es/layout/dagre/src/data/list.js.map +1 -1
- package/es/layout/dagre/src/debug.d.ts +2 -3
- package/es/layout/dagre/src/debug.js +3 -5
- package/es/layout/dagre/src/debug.js.map +1 -1
- package/es/layout/dagre/src/greedy-fas.d.ts +2 -3
- package/es/layout/dagre/src/greedy-fas.js +16 -15
- package/es/layout/dagre/src/greedy-fas.js.map +1 -1
- package/es/layout/dagre/src/layout.d.ts +2 -3
- package/es/layout/dagre/src/layout.js +170 -91
- package/es/layout/dagre/src/layout.js.map +1 -1
- package/es/layout/dagre/src/nesting-graph.d.ts +1 -2
- package/es/layout/dagre/src/nesting-graph.js +15 -10
- package/es/layout/dagre/src/nesting-graph.js.map +1 -1
- package/es/layout/dagre/src/normalize.d.ts +1 -2
- package/es/layout/dagre/src/normalize.js +12 -11
- package/es/layout/dagre/src/normalize.js.map +1 -1
- package/es/layout/dagre/src/order/add-subgraph-constraints.d.ts +1 -2
- package/es/layout/dagre/src/order/add-subgraph-constraints.js.map +1 -1
- package/es/layout/dagre/src/order/barycenter.d.ts +1 -2
- package/es/layout/dagre/src/order/barycenter.js.map +1 -1
- package/es/layout/dagre/src/order/build-layer-graph.d.ts +2 -3
- package/es/layout/dagre/src/order/build-layer-graph.js +12 -8
- package/es/layout/dagre/src/order/build-layer-graph.js.map +1 -1
- package/es/layout/dagre/src/order/cross-count.d.ts +2 -3
- package/es/layout/dagre/src/order/cross-count.js +13 -12
- package/es/layout/dagre/src/order/cross-count.js.map +1 -1
- package/es/layout/dagre/src/order/index.d.ts +2 -3
- package/es/layout/dagre/src/order/index.js +17 -15
- package/es/layout/dagre/src/order/index.js.map +1 -1
- package/es/layout/dagre/src/order/init-data-order.d.ts +1 -2
- package/es/layout/dagre/src/order/init-data-order.js +3 -5
- package/es/layout/dagre/src/order/init-data-order.js.map +1 -1
- package/es/layout/dagre/src/order/init-order.d.ts +2 -3
- package/es/layout/dagre/src/order/init-order.js +1 -2
- package/es/layout/dagre/src/order/init-order.js.map +1 -1
- package/es/layout/dagre/src/order/resolve-conflicts.d.ts +18 -3
- package/es/layout/dagre/src/order/resolve-conflicts.js +9 -29
- package/es/layout/dagre/src/order/resolve-conflicts.js.map +1 -1
- package/es/layout/dagre/src/order/sort-subgraph.d.ts +6 -3
- package/es/layout/dagre/src/order/sort-subgraph.js +19 -14
- package/es/layout/dagre/src/order/sort-subgraph.js.map +1 -1
- package/es/layout/dagre/src/order/sort.d.ts +6 -1
- package/es/layout/dagre/src/order/sort.js +2 -2
- package/es/layout/dagre/src/order/sort.js.map +1 -1
- package/es/layout/dagre/src/parent-dummy-chains.d.ts +1 -2
- package/es/layout/dagre/src/parent-dummy-chains.js +47 -44
- package/es/layout/dagre/src/parent-dummy-chains.js.map +1 -1
- package/es/layout/dagre/src/position/bk.d.ts +22 -31
- package/es/layout/dagre/src/position/bk.js +49 -83
- package/es/layout/dagre/src/position/bk.js.map +1 -1
- package/es/layout/dagre/src/position/index.d.ts +1 -2
- package/es/layout/dagre/src/position/index.js +12 -14
- package/es/layout/dagre/src/position/index.js.map +1 -1
- package/es/layout/dagre/src/rank/feasible-tree.d.ts +5 -6
- package/es/layout/dagre/src/rank/feasible-tree.js +1 -2
- package/es/layout/dagre/src/rank/feasible-tree.js.map +1 -1
- package/es/layout/dagre/src/rank/index.d.ts +2 -3
- package/es/layout/dagre/src/rank/index.js.map +1 -1
- package/es/layout/dagre/src/rank/network-simplex.d.ts +8 -11
- package/es/layout/dagre/src/rank/network-simplex.js +18 -31
- package/es/layout/dagre/src/rank/network-simplex.js.map +1 -1
- package/es/layout/dagre/src/rank/util.d.ts +4 -5
- package/es/layout/dagre/src/rank/util.js +37 -20
- package/es/layout/dagre/src/rank/util.js.map +1 -1
- package/es/layout/dagre/src/util.d.ts +29 -48
- package/es/layout/dagre/src/util.js +91 -101
- package/es/layout/dagre/src/util.js.map +1 -1
- package/es/layout/dagre.d.ts +1 -1
- package/es/layout/dagre.js +28 -24
- package/es/layout/dagre.js.map +1 -1
- package/es/layout/fruchterman.js.map +1 -1
- package/es/layout/gForce.js.map +1 -1
- package/lib/index.js +5 -1
- package/lib/index.js.map +1 -1
- package/lib/layout/circular.js.map +1 -1
- package/lib/layout/comboCombined.js.map +1 -1
- package/lib/layout/comboForce.js +5 -5
- package/lib/layout/comboForce.js.map +1 -1
- package/lib/layout/concentric.js.map +1 -1
- package/lib/layout/dagre/graph.d.ts +91 -0
- package/lib/layout/dagre/graph.js +28 -0
- package/lib/layout/dagre/graph.js.map +1 -0
- package/lib/layout/dagre/index.d.ts +3 -4
- package/lib/layout/dagre/index.js +0 -2
- package/lib/layout/dagre/index.js.map +1 -1
- package/lib/layout/dagre/src/acyclic.d.ts +1 -2
- package/lib/layout/dagre/src/acyclic.js +7 -7
- package/lib/layout/dagre/src/acyclic.js.map +1 -1
- package/lib/layout/dagre/src/add-border-segments.d.ts +1 -2
- package/lib/layout/dagre/src/add-border-segments.js +5 -8
- package/lib/layout/dagre/src/add-border-segments.js.map +1 -1
- package/lib/layout/dagre/src/coordinate-system.d.ts +1 -2
- package/lib/layout/dagre/src/coordinate-system.js +15 -5
- package/lib/layout/dagre/src/coordinate-system.js.map +1 -1
- package/lib/layout/dagre/src/data/list.d.ts +9 -5
- package/lib/layout/dagre/src/data/list.js +25 -26
- package/lib/layout/dagre/src/data/list.js.map +1 -1
- package/lib/layout/dagre/src/debug.d.ts +2 -3
- package/lib/layout/dagre/src/debug.js +6 -11
- package/lib/layout/dagre/src/debug.js.map +1 -1
- package/lib/layout/dagre/src/greedy-fas.d.ts +2 -3
- package/lib/layout/dagre/src/greedy-fas.js +41 -15
- package/lib/layout/dagre/src/greedy-fas.js.map +1 -1
- package/lib/layout/dagre/src/layout.d.ts +2 -3
- package/lib/layout/dagre/src/layout.js +171 -100
- package/lib/layout/dagre/src/layout.js.map +1 -1
- package/lib/layout/dagre/src/nesting-graph.d.ts +1 -2
- package/lib/layout/dagre/src/nesting-graph.js +15 -13
- package/lib/layout/dagre/src/nesting-graph.js.map +1 -1
- package/lib/layout/dagre/src/normalize.d.ts +1 -2
- package/lib/layout/dagre/src/normalize.js +12 -14
- package/lib/layout/dagre/src/normalize.js.map +1 -1
- package/lib/layout/dagre/src/order/add-subgraph-constraints.d.ts +1 -2
- package/lib/layout/dagre/src/order/add-subgraph-constraints.js.map +1 -1
- package/lib/layout/dagre/src/order/barycenter.d.ts +1 -2
- package/lib/layout/dagre/src/order/barycenter.js.map +1 -1
- package/lib/layout/dagre/src/order/build-layer-graph.d.ts +2 -3
- package/lib/layout/dagre/src/order/build-layer-graph.js +13 -12
- package/lib/layout/dagre/src/order/build-layer-graph.js.map +1 -1
- package/lib/layout/dagre/src/order/cross-count.d.ts +2 -3
- package/lib/layout/dagre/src/order/cross-count.js +14 -13
- package/lib/layout/dagre/src/order/cross-count.js.map +1 -1
- package/lib/layout/dagre/src/order/index.d.ts +2 -3
- package/lib/layout/dagre/src/order/index.js +15 -13
- package/lib/layout/dagre/src/order/index.js.map +1 -1
- package/lib/layout/dagre/src/order/init-data-order.d.ts +1 -2
- package/lib/layout/dagre/src/order/init-data-order.js +3 -5
- package/lib/layout/dagre/src/order/init-data-order.js.map +1 -1
- package/lib/layout/dagre/src/order/init-order.d.ts +2 -3
- package/lib/layout/dagre/src/order/init-order.js +1 -2
- package/lib/layout/dagre/src/order/init-order.js.map +1 -1
- package/lib/layout/dagre/src/order/resolve-conflicts.d.ts +18 -3
- package/lib/layout/dagre/src/order/resolve-conflicts.js +9 -29
- package/lib/layout/dagre/src/order/resolve-conflicts.js.map +1 -1
- package/lib/layout/dagre/src/order/sort-subgraph.d.ts +6 -3
- package/lib/layout/dagre/src/order/sort-subgraph.js +16 -11
- package/lib/layout/dagre/src/order/sort-subgraph.js.map +1 -1
- package/lib/layout/dagre/src/order/sort.d.ts +6 -1
- package/lib/layout/dagre/src/order/sort.js +2 -5
- package/lib/layout/dagre/src/order/sort.js.map +1 -1
- package/lib/layout/dagre/src/parent-dummy-chains.d.ts +1 -2
- package/lib/layout/dagre/src/parent-dummy-chains.js +47 -44
- package/lib/layout/dagre/src/parent-dummy-chains.js.map +1 -1
- package/lib/layout/dagre/src/position/bk.d.ts +22 -31
- package/lib/layout/dagre/src/position/bk.js +75 -85
- package/lib/layout/dagre/src/position/bk.js.map +1 -1
- package/lib/layout/dagre/src/position/index.d.ts +1 -2
- package/lib/layout/dagre/src/position/index.js +14 -17
- package/lib/layout/dagre/src/position/index.js.map +1 -1
- package/lib/layout/dagre/src/rank/feasible-tree.d.ts +5 -6
- package/lib/layout/dagre/src/rank/feasible-tree.js +3 -7
- package/lib/layout/dagre/src/rank/feasible-tree.js.map +1 -1
- package/lib/layout/dagre/src/rank/index.d.ts +2 -3
- package/lib/layout/dagre/src/rank/index.js.map +1 -1
- package/lib/layout/dagre/src/rank/network-simplex.d.ts +8 -11
- package/lib/layout/dagre/src/rank/network-simplex.js +27 -35
- package/lib/layout/dagre/src/rank/network-simplex.js.map +1 -1
- package/lib/layout/dagre/src/rank/util.d.ts +4 -5
- package/lib/layout/dagre/src/rank/util.js +36 -19
- package/lib/layout/dagre/src/rank/util.js.map +1 -1
- package/lib/layout/dagre/src/util.d.ts +29 -48
- package/lib/layout/dagre/src/util.js +80 -92
- package/lib/layout/dagre/src/util.js.map +1 -1
- package/lib/layout/dagre.d.ts +1 -1
- package/lib/layout/dagre.js +27 -23
- package/lib/layout/dagre.js.map +1 -1
- package/lib/layout/er/core.js +5 -1
- package/lib/layout/er/core.js.map +1 -1
- package/lib/layout/force/force-in-a-box.js +7 -3
- package/lib/layout/force/force-in-a-box.js.map +1 -1
- package/lib/layout/force/force.js +5 -1
- package/lib/layout/force/force.js.map +1 -1
- package/lib/layout/force/index.js +5 -1
- package/lib/layout/force/index.js.map +1 -1
- package/lib/layout/fruchterman.js.map +1 -1
- package/lib/layout/gForce.js.map +1 -1
- package/lib/layout/grid.js +2 -2
- package/lib/layout/grid.js.map +1 -1
- package/lib/layout/index.js +5 -1
- package/lib/layout/index.js.map +1 -1
- package/lib/layout/radial/index.js +5 -1
- package/lib/layout/radial/index.js.map +1 -1
- package/lib/registy/index.js +1 -1
- package/lib/registy/index.js.map +1 -1
- package/lib/util/index.js +5 -1
- package/lib/util/index.js.map +1 -1
- package/package.json +2 -2
- package/es/layout/dagre/src/graphlib.d.ts +0 -2
- package/es/layout/dagre/src/graphlib.js +0 -51
- package/es/layout/dagre/src/graphlib.js.map +0 -1
- package/lib/layout/dagre/src/graphlib.d.ts +0 -2
- package/lib/layout/dagre/src/graphlib.js +0 -56
- package/lib/layout/dagre/src/graphlib.js.map +0 -1
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { feasibleTree } from './feasible-tree';
|
|
2
2
|
import { slack, longestPath as initRank } from './util';
|
|
3
3
|
import { minBy, simplify } from '../util';
|
|
4
|
-
import
|
|
5
|
-
const
|
|
6
|
-
const { preorder, postorder } = alg;
|
|
4
|
+
import { algorithm } from '@antv/graphlib';
|
|
5
|
+
const { preorder, postorder } = algorithm;
|
|
7
6
|
/*
|
|
8
7
|
* The network simplex algorithm assigns ranks to each node in the input graph
|
|
9
8
|
* and iteratively improves the ranking to reduce the length of edges.
|
|
@@ -37,9 +36,8 @@ const { preorder, postorder } = alg;
|
|
|
37
36
|
* for Drawing Directed Graphs." The structure of the file roughly follows the
|
|
38
37
|
* structure of the overall algorithm.
|
|
39
38
|
*/
|
|
40
|
-
const networkSimplex = (
|
|
41
|
-
|
|
42
|
-
g = simplify(g);
|
|
39
|
+
const networkSimplex = (og) => {
|
|
40
|
+
const g = simplify(og);
|
|
43
41
|
initRank(g);
|
|
44
42
|
const t = feasibleTree(g);
|
|
45
43
|
initLowLimValues(t);
|
|
@@ -54,7 +52,7 @@ const networkSimplex = (g) => {
|
|
|
54
52
|
/*
|
|
55
53
|
* Initializes cut values for all edges in the tree.
|
|
56
54
|
*/
|
|
57
|
-
const initCutValues = (t, g) => {
|
|
55
|
+
export const initCutValues = (t, g) => {
|
|
58
56
|
let vs = postorder(t, t.nodes());
|
|
59
57
|
vs = vs === null || vs === void 0 ? void 0 : vs.slice(0, (vs === null || vs === void 0 ? void 0 : vs.length) - 1);
|
|
60
58
|
vs === null || vs === void 0 ? void 0 : vs.forEach((v) => {
|
|
@@ -64,25 +62,25 @@ const initCutValues = (t, g) => {
|
|
|
64
62
|
const assignCutValue = (t, g, child) => {
|
|
65
63
|
const childLab = t.node(child);
|
|
66
64
|
const parent = childLab.parent;
|
|
67
|
-
t.
|
|
65
|
+
t.edgeFromArgs(child, parent).cutvalue = calcCutValue(t, g, child);
|
|
68
66
|
};
|
|
69
67
|
/*
|
|
70
68
|
* Given the tight tree, its graph, and a child in the graph calculate and
|
|
71
69
|
* return the cut value for the edge between the child and its parent.
|
|
72
70
|
*/
|
|
73
|
-
const calcCutValue = (t, g, child) => {
|
|
71
|
+
export const calcCutValue = (t, g, child) => {
|
|
74
72
|
var _a;
|
|
75
73
|
const childLab = t.node(child);
|
|
76
74
|
const parent = childLab.parent;
|
|
77
75
|
// True if the child is on the tail end of the edge in the directed graph
|
|
78
76
|
let childIsTail = true;
|
|
79
77
|
// The graph's view of the tree edge we're inspecting
|
|
80
|
-
let graphEdge = g.
|
|
78
|
+
let graphEdge = g.edgeFromArgs(child, parent);
|
|
81
79
|
// The accumulated cut value for the edge between this node and its parent
|
|
82
80
|
let cutValue = 0;
|
|
83
81
|
if (!graphEdge) {
|
|
84
82
|
childIsTail = false;
|
|
85
|
-
graphEdge = g.
|
|
83
|
+
graphEdge = g.edgeFromArgs(parent, child);
|
|
86
84
|
}
|
|
87
85
|
cutValue = graphEdge.weight;
|
|
88
86
|
(_a = g.nodeEdges(child)) === null || _a === void 0 ? void 0 : _a.forEach((e) => {
|
|
@@ -93,18 +91,14 @@ const calcCutValue = (t, g, child) => {
|
|
|
93
91
|
const otherWeight = g.edge(e).weight;
|
|
94
92
|
cutValue += pointsToHead ? otherWeight : -otherWeight;
|
|
95
93
|
if (isTreeEdge(t, child, other)) {
|
|
96
|
-
const otherCutValue = t.
|
|
94
|
+
const otherCutValue = t.edgeFromArgs(child, other).cutvalue;
|
|
97
95
|
cutValue += pointsToHead ? -otherCutValue : otherCutValue;
|
|
98
96
|
}
|
|
99
97
|
}
|
|
100
98
|
});
|
|
101
99
|
return cutValue;
|
|
102
100
|
};
|
|
103
|
-
const initLowLimValues = (tree, root) => {
|
|
104
|
-
if (root !== undefined) {
|
|
105
|
-
// tslint:disable-next-line
|
|
106
|
-
root = tree.nodes()[0];
|
|
107
|
-
}
|
|
101
|
+
export const initLowLimValues = (tree, root = tree.nodes()[0]) => {
|
|
108
102
|
dfsAssignLowLim(tree, {}, 1, root);
|
|
109
103
|
};
|
|
110
104
|
const dfsAssignLowLim = (tree, visited, nextLim, v, parent) => {
|
|
@@ -114,7 +108,7 @@ const dfsAssignLowLim = (tree, visited, nextLim, v, parent) => {
|
|
|
114
108
|
const label = tree.node(v);
|
|
115
109
|
visited[v] = true;
|
|
116
110
|
(_a = tree.neighbors(v)) === null || _a === void 0 ? void 0 : _a.forEach((w) => {
|
|
117
|
-
if (!visited
|
|
111
|
+
if (!visited[w]) {
|
|
118
112
|
useNextLim = dfsAssignLowLim(tree, visited, useNextLim, w, v);
|
|
119
113
|
}
|
|
120
114
|
});
|
|
@@ -129,12 +123,12 @@ const dfsAssignLowLim = (tree, visited, nextLim, v, parent) => {
|
|
|
129
123
|
}
|
|
130
124
|
return useNextLim;
|
|
131
125
|
};
|
|
132
|
-
const leaveEdge = (tree) => {
|
|
126
|
+
export const leaveEdge = (tree) => {
|
|
133
127
|
return tree.edges().find((e) => {
|
|
134
128
|
return tree.edge(e).cutvalue < 0;
|
|
135
129
|
});
|
|
136
130
|
};
|
|
137
|
-
const enterEdge = (t, g, edge) => {
|
|
131
|
+
export const enterEdge = (t, g, edge) => {
|
|
138
132
|
let v = edge.v;
|
|
139
133
|
let w = edge.w;
|
|
140
134
|
// For the rest of this function we assume that v is the tail and w is the
|
|
@@ -160,7 +154,7 @@ const enterEdge = (t, g, edge) => {
|
|
|
160
154
|
});
|
|
161
155
|
return minBy(candidates, (edge) => { return slack(g, edge); });
|
|
162
156
|
};
|
|
163
|
-
const exchangeEdges = (t, g, e, f) => {
|
|
157
|
+
export const exchangeEdges = (t, g, e, f) => {
|
|
164
158
|
const v = e.v;
|
|
165
159
|
const w = e.w;
|
|
166
160
|
t.removeEdge(v, w);
|
|
@@ -170,15 +164,15 @@ const exchangeEdges = (t, g, e, f) => {
|
|
|
170
164
|
updateRanks(t, g);
|
|
171
165
|
};
|
|
172
166
|
const updateRanks = (t, g) => {
|
|
173
|
-
const root = t.nodes().find((v) => { return !g.node(v).parent; });
|
|
167
|
+
const root = t.nodes().find((v) => { var _a; return !((_a = g.node(v)) === null || _a === void 0 ? void 0 : _a.parent); });
|
|
174
168
|
let vs = preorder(t, root);
|
|
175
169
|
vs = vs === null || vs === void 0 ? void 0 : vs.slice(1);
|
|
176
170
|
vs === null || vs === void 0 ? void 0 : vs.forEach((v) => {
|
|
177
171
|
const parent = t.node(v).parent;
|
|
178
|
-
let edge = g.
|
|
172
|
+
let edge = g.edgeFromArgs(v, parent);
|
|
179
173
|
let flipped = false;
|
|
180
174
|
if (!edge) {
|
|
181
|
-
edge = g.
|
|
175
|
+
edge = g.edgeFromArgs(parent, v);
|
|
182
176
|
flipped = true;
|
|
183
177
|
}
|
|
184
178
|
g.node(v).rank = g.node(parent).rank + (flipped ? edge.minlen : -edge.minlen);
|
|
@@ -197,12 +191,5 @@ const isTreeEdge = (tree, u, v) => {
|
|
|
197
191
|
const isDescendant = (tree, vLabel, rootLabel) => {
|
|
198
192
|
return rootLabel.low <= vLabel.lim && vLabel.lim <= rootLabel.lim;
|
|
199
193
|
};
|
|
200
|
-
// Expose some internals for testing purposes
|
|
201
|
-
networkSimplex.initLowLimValues = initLowLimValues;
|
|
202
|
-
networkSimplex.initCutValues = initCutValues;
|
|
203
|
-
networkSimplex.calcCutValue = calcCutValue;
|
|
204
|
-
networkSimplex.leaveEdge = leaveEdge;
|
|
205
|
-
networkSimplex.enterEdge = enterEdge;
|
|
206
|
-
networkSimplex.exchangeEdges = exchangeEdges;
|
|
207
194
|
export default networkSimplex;
|
|
208
195
|
//# sourceMappingURL=network-simplex.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network-simplex.js","sourceRoot":"","sources":["../../../../../src/layout/dagre/src/rank/network-simplex.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"network-simplex.js","sourceRoot":"","sources":["../../../../../src/layout/dagre/src/rank/network-simplex.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
declare type Graph = graphlib.Graph;
|
|
1
|
+
import { Edge, Graph } from "../../graph";
|
|
3
2
|
declare const longestPath: (g: Graph) => void;
|
|
4
3
|
declare const longestPathWithLayer: (g: Graph) => void;
|
|
5
|
-
declare const slack: (g: Graph, e:
|
|
6
|
-
export { longestPath, longestPathWithLayer, slack
|
|
4
|
+
declare const slack: (g: Graph, e: Edge) => number;
|
|
5
|
+
export { longestPath, longestPathWithLayer, slack };
|
|
7
6
|
declare const _default: {
|
|
8
7
|
longestPath: (g: Graph) => void;
|
|
9
8
|
longestPathWithLayer: (g: Graph) => void;
|
|
10
|
-
slack: (g: Graph, e:
|
|
9
|
+
slack: (g: Graph, e: Edge) => number;
|
|
11
10
|
};
|
|
12
11
|
export default _default;
|
|
@@ -25,17 +25,22 @@ const longestPath = (g) => {
|
|
|
25
25
|
const dfs = (v) => {
|
|
26
26
|
var _a;
|
|
27
27
|
const label = g.node(v);
|
|
28
|
-
if (visited
|
|
28
|
+
if (visited[v]) {
|
|
29
29
|
return label.rank;
|
|
30
30
|
}
|
|
31
31
|
visited[v] = true;
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
let rank;
|
|
33
|
+
(_a = g.outEdges(v)) === null || _a === void 0 ? void 0 : _a.forEach((edgeObj) => {
|
|
34
|
+
const wRank = dfs(edgeObj.w);
|
|
35
|
+
const minLen = g.edge(edgeObj).minlen;
|
|
36
|
+
const r = wRank - minLen;
|
|
37
|
+
if (r) {
|
|
38
|
+
if (rank === undefined || r < rank) {
|
|
39
|
+
rank = r;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
34
42
|
});
|
|
35
|
-
|
|
36
|
-
if (rank === Number.POSITIVE_INFINITY || // return value of _.map([]) for Lodash 3
|
|
37
|
-
rank === undefined || // return value of _.map([]) for Lodash 4
|
|
38
|
-
rank === null) { // return value of _.map([null])
|
|
43
|
+
if (!rank) {
|
|
39
44
|
rank = 0;
|
|
40
45
|
}
|
|
41
46
|
label.rank = rank;
|
|
@@ -47,29 +52,39 @@ const longestPathWithLayer = (g) => {
|
|
|
47
52
|
var _a;
|
|
48
53
|
// 用longest path,找出最深的点
|
|
49
54
|
const visited = {};
|
|
50
|
-
let minRank
|
|
55
|
+
let minRank;
|
|
51
56
|
const dfs = (v) => {
|
|
52
57
|
var _a;
|
|
53
58
|
const label = g.node(v);
|
|
54
|
-
if (visited
|
|
59
|
+
if (visited[v]) {
|
|
55
60
|
return label.rank;
|
|
56
61
|
}
|
|
57
62
|
visited[v] = true;
|
|
58
|
-
|
|
59
|
-
|
|
63
|
+
let rank;
|
|
64
|
+
(_a = g.outEdges(v)) === null || _a === void 0 ? void 0 : _a.forEach((edgeObj) => {
|
|
65
|
+
const wRank = dfs(edgeObj.w);
|
|
66
|
+
const minLen = g.edge(edgeObj).minlen;
|
|
67
|
+
const r = wRank - minLen;
|
|
68
|
+
if (r) {
|
|
69
|
+
if (rank === undefined || r < rank) {
|
|
70
|
+
rank = r;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
60
73
|
});
|
|
61
|
-
|
|
62
|
-
if (rank === Number.POSITIVE_INFINITY || // return value of _.map([]) for Lodash 3
|
|
63
|
-
rank === undefined || // return value of _.map([]) for Lodash 4
|
|
64
|
-
rank === null) { // return value of _.map([null])
|
|
74
|
+
if (!rank) {
|
|
65
75
|
rank = 0;
|
|
66
76
|
}
|
|
77
|
+
if (minRank === undefined || rank < minRank) {
|
|
78
|
+
minRank = rank;
|
|
79
|
+
}
|
|
67
80
|
label.rank = rank;
|
|
68
|
-
|
|
69
|
-
return label.rank;
|
|
81
|
+
return rank;
|
|
70
82
|
};
|
|
71
83
|
(_a = g.sources()) === null || _a === void 0 ? void 0 : _a.forEach((source) => dfs(source));
|
|
72
|
-
minRank
|
|
84
|
+
if (minRank === undefined) {
|
|
85
|
+
minRank = 0;
|
|
86
|
+
}
|
|
87
|
+
// minRank += 1; // NOTE: 最小的层级是dummy root,+1
|
|
73
88
|
// forward一遍,赋值层级
|
|
74
89
|
const dfsForward = (v, nextRank) => {
|
|
75
90
|
var _a;
|
|
@@ -100,9 +115,11 @@ const longestPathWithLayer = (g) => {
|
|
|
100
115
|
* difference between the length of the edge and its minimum length.
|
|
101
116
|
*/
|
|
102
117
|
const slack = (g, e) => {
|
|
103
|
-
return g.node(e.w).rank -
|
|
118
|
+
return (g.node(e.w).rank -
|
|
119
|
+
g.node(e.v).rank -
|
|
120
|
+
g.edge(e).minlen);
|
|
104
121
|
};
|
|
105
|
-
export { longestPath, longestPathWithLayer, slack
|
|
122
|
+
export { longestPath, longestPathWithLayer, slack };
|
|
106
123
|
export default {
|
|
107
124
|
longestPath,
|
|
108
125
|
longestPathWithLayer,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../../../src/layout/dagre/src/rank/util.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../../../src/layout/dagre/src/rank/util.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,50 +1,31 @@
|
|
|
1
|
-
import {
|
|
2
|
-
declare type
|
|
3
|
-
declare const
|
|
4
|
-
declare const
|
|
5
|
-
declare const
|
|
6
|
-
declare const
|
|
7
|
-
declare const
|
|
8
|
-
declare const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
import { Graph, Node } from "../graph";
|
|
2
|
+
export declare const addDummyNode: (g: Graph, type: string, attrs: Node<Record<string, any>>, name: string) => string;
|
|
3
|
+
export declare const simplify: (g: Graph) => Graph;
|
|
4
|
+
export declare const asNonCompoundGraph: (g: Graph) => Graph;
|
|
5
|
+
export declare const zipObject: <T = any>(keys: string[], values: T[]) => Record<string, T>;
|
|
6
|
+
export declare const successorWeights: (g: Graph) => Record<string, Record<string, number>>;
|
|
7
|
+
export declare const predecessorWeights: (g: Graph) => Record<string, Record<string, number>>;
|
|
8
|
+
export declare const intersectRect: (rect: {
|
|
9
|
+
x?: number;
|
|
10
|
+
y?: number;
|
|
11
|
+
width?: number;
|
|
12
|
+
height?: number;
|
|
13
|
+
}, point: {
|
|
14
|
+
x?: number;
|
|
15
|
+
y?: number;
|
|
16
|
+
}) => {
|
|
17
|
+
x: number;
|
|
18
|
+
y: number;
|
|
12
19
|
};
|
|
13
|
-
declare const buildLayerMatrix: (g:
|
|
14
|
-
declare const normalizeRanks: (g:
|
|
15
|
-
declare const removeEmptyRanks: (g:
|
|
16
|
-
declare const addBorderNode: (g:
|
|
17
|
-
declare const maxRank: (g:
|
|
18
|
-
declare const partition: (collection:
|
|
19
|
-
lhs:
|
|
20
|
-
rhs:
|
|
20
|
+
export declare const buildLayerMatrix: (g: Graph) => string[][];
|
|
21
|
+
export declare const normalizeRanks: (g: Graph) => void;
|
|
22
|
+
export declare const removeEmptyRanks: (g: Graph) => void;
|
|
23
|
+
export declare const addBorderNode: (g: Graph, prefix: string, rank?: number | undefined, order?: number | undefined) => string;
|
|
24
|
+
export declare const maxRank: (g: Graph) => number;
|
|
25
|
+
export declare const partition: <T = any>(collection: T[], fn: (val: T) => boolean) => {
|
|
26
|
+
lhs: T[];
|
|
27
|
+
rhs: T[];
|
|
21
28
|
};
|
|
22
|
-
declare const time: (name: string, fn: () =>
|
|
23
|
-
declare const notime: (name: string, fn: () =>
|
|
24
|
-
declare const minBy: (array:
|
|
25
|
-
export { addDummyNode, simplify, asNonCompoundGraph, successorWeights, predecessorWeights, intersectRect, buildLayerMatrix, normalizeRanks, removeEmptyRanks, addBorderNode, maxRank, partition, time, notime, zipObject, minBy };
|
|
26
|
-
declare const _default: {
|
|
27
|
-
addDummyNode: (g: IGraph, type: any, attrs: any, name: string) => string;
|
|
28
|
-
simplify: (g: IGraph) => any;
|
|
29
|
-
asNonCompoundGraph: (g: IGraph) => IGraph;
|
|
30
|
-
successorWeights: (g: IGraph) => any;
|
|
31
|
-
predecessorWeights: (g: IGraph) => any;
|
|
32
|
-
intersectRect: (rect: any, point: any) => {
|
|
33
|
-
x: any;
|
|
34
|
-
y: any;
|
|
35
|
-
};
|
|
36
|
-
buildLayerMatrix: (g: IGraph) => any;
|
|
37
|
-
normalizeRanks: (g: IGraph) => void;
|
|
38
|
-
removeEmptyRanks: (g: IGraph) => void;
|
|
39
|
-
addBorderNode: (g: IGraph, prefix: string, rank?: number | undefined, order?: number | undefined) => string;
|
|
40
|
-
maxRank: (g: IGraph) => number;
|
|
41
|
-
partition: (collection: any, fn: any) => {
|
|
42
|
-
lhs: any;
|
|
43
|
-
rhs: any;
|
|
44
|
-
};
|
|
45
|
-
time: (name: string, fn: () => unknown) => unknown;
|
|
46
|
-
notime: (name: string, fn: () => unknown) => unknown;
|
|
47
|
-
zipObject: (keys: string[], values: any) => any;
|
|
48
|
-
minBy: (array: any, func: (param: any) => number) => undefined;
|
|
49
|
-
};
|
|
50
|
-
export default _default;
|
|
29
|
+
export declare const time: (name: string, fn: () => void) => void;
|
|
30
|
+
export declare const notime: (name: string, fn: () => void) => void;
|
|
31
|
+
export declare const minBy: <T = any>(array: T[], func: (param: T) => number) => T;
|