@antv/layout 1.2.9 → 1.2.10
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/dist/5fc550bbb6f708833d84.worker.js +2 -0
- package/dist/5fc550bbb6f708833d84.worker.js.map +1 -0
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/package.json +1 -1
- package/dist/5c9e0aa9cf0218d179e9.worker.js +0 -2
- package/dist/5c9e0aa9cf0218d179e9.worker.js.map +0 -1
- package/lib/bundle-entry.js +0 -19
- package/lib/bundle-entry.js.map +0 -1
- package/lib/bundle-supervisor.js +0 -94
- package/lib/bundle-supervisor.js.map +0 -1
- package/lib/bundle-worker.js +0 -53
- package/lib/bundle-worker.js.map +0 -1
- package/lib/circular.js +0 -258
- package/lib/circular.js.map +0 -1
- package/lib/comboCombined.js +0 -441
- package/lib/comboCombined.js.map +0 -1
- package/lib/concentric.js +0 -229
- package/lib/concentric.js.map +0 -1
- package/lib/d3Force/forceInBox.js +0 -331
- package/lib/d3Force/forceInBox.js.map +0 -1
- package/lib/d3Force/index.js +0 -339
- package/lib/d3Force/index.js.map +0 -1
- package/lib/dagre/acyclic.js +0 -62
- package/lib/dagre/acyclic.js.map +0 -1
- package/lib/dagre/add-border-segments.js +0 -37
- package/lib/dagre/add-border-segments.js.map +0 -1
- package/lib/dagre/coordinate-system.js +0 -65
- package/lib/dagre/coordinate-system.js.map +0 -1
- package/lib/dagre/data/list.js +0 -50
- package/lib/dagre/data/list.js.map +0 -1
- package/lib/dagre/greedy-fas.js +0 -147
- package/lib/dagre/greedy-fas.js.map +0 -1
- package/lib/dagre/layout.js +0 -470
- package/lib/dagre/layout.js.map +0 -1
- package/lib/dagre/nesting-graph.js +0 -153
- package/lib/dagre/nesting-graph.js.map +0 -1
- package/lib/dagre/normalize.js +0 -98
- package/lib/dagre/normalize.js.map +0 -1
- package/lib/dagre/order/add-subgraph-constraints.js +0 -45
- package/lib/dagre/order/add-subgraph-constraints.js.map +0 -1
- package/lib/dagre/order/barycenter.js +0 -23
- package/lib/dagre/order/barycenter.js.map +0 -1
- package/lib/dagre/order/build-layer-graph.js +0 -96
- package/lib/dagre/order/build-layer-graph.js.map +0 -1
- package/lib/dagre/order/cross-count.js +0 -63
- package/lib/dagre/order/cross-count.js.map +0 -1
- package/lib/dagre/order/index.js +0 -91
- package/lib/dagre/order/index.js.map +0 -1
- package/lib/dagre/order/init-data-order.js +0 -28
- package/lib/dagre/order/init-data-order.js.map +0 -1
- package/lib/dagre/order/init-order.js +0 -50
- package/lib/dagre/order/init-order.js.map +0 -1
- package/lib/dagre/order/resolve-conflicts.js +0 -121
- package/lib/dagre/order/resolve-conflicts.js.map +0 -1
- package/lib/dagre/order/sort-subgraph.js +0 -84
- package/lib/dagre/order/sort-subgraph.js.map +0 -1
- package/lib/dagre/order/sort.js +0 -74
- package/lib/dagre/order/sort.js.map +0 -1
- package/lib/dagre/parent-dummy-chains.js +0 -80
- package/lib/dagre/parent-dummy-chains.js.map +0 -1
- package/lib/dagre/position/bk.js +0 -398
- package/lib/dagre/position/bk.js.map +0 -1
- package/lib/dagre/position/index.js +0 -54
- package/lib/dagre/position/index.js.map +0 -1
- package/lib/dagre/rank/feasible-tree.js +0 -164
- package/lib/dagre/rank/feasible-tree.js.map +0 -1
- package/lib/dagre/rank/index.js +0 -48
- package/lib/dagre/rank/index.js.map +0 -1
- package/lib/dagre/rank/network-simplex.js +0 -232
- package/lib/dagre/rank/network-simplex.js.map +0 -1
- package/lib/dagre/rank/util.js +0 -138
- package/lib/dagre/rank/util.js.map +0 -1
- package/lib/dagre/util.js +0 -289
- package/lib/dagre/util.js.map +0 -1
- package/lib/dagre.js +0 -545
- package/lib/dagre.js.map +0 -1
- package/lib/force/forceNBody.js +0 -123
- package/lib/force/forceNBody.js.map +0 -1
- package/lib/force/index.js +0 -805
- package/lib/force/index.js.map +0 -1
- package/lib/force/types.js +0 -2
- package/lib/force/types.js.map +0 -1
- package/lib/forceAtlas2/body.js +0 -91
- package/lib/forceAtlas2/body.js.map +0 -1
- package/lib/forceAtlas2/index.js +0 -562
- package/lib/forceAtlas2/index.js.map +0 -1
- package/lib/forceAtlas2/quad.js +0 -98
- package/lib/forceAtlas2/quad.js.map +0 -1
- package/lib/forceAtlas2/quadTree.js +0 -105
- package/lib/forceAtlas2/quadTree.js.map +0 -1
- package/lib/fruchterman.js +0 -376
- package/lib/fruchterman.js.map +0 -1
- package/lib/grid.js +0 -308
- package/lib/grid.js.map +0 -1
- package/lib/index.js +0 -17
- package/lib/index.js.map +0 -1
- package/lib/mds.js +0 -137
- package/lib/mds.js.map +0 -1
- package/lib/radial/index.js +0 -355
- package/lib/radial/index.js.map +0 -1
- package/lib/radial/mds.js +0 -29
- package/lib/radial/mds.js.map +0 -1
- package/lib/radial/radial-nonoverlap-force.js +0 -100
- package/lib/radial/radial-nonoverlap-force.js.map +0 -1
- package/lib/random.js +0 -98
- package/lib/random.js.map +0 -1
- package/lib/registry.js +0 -27
- package/lib/registry.js.map +0 -1
- package/lib/supervisor.js +0 -90
- package/lib/supervisor.js.map +0 -1
- package/lib/types.js +0 -4
- package/lib/types.js.map +0 -1
- package/lib/util/array.js +0 -2
- package/lib/util/array.js.map +0 -1
- package/lib/util/common.d.ts +0 -12
- package/lib/util/common.js +0 -32
- package/lib/util/common.js.map +0 -1
- package/lib/util/function.js +0 -127
- package/lib/util/function.js.map +0 -1
- package/lib/util/gpu.js +0 -214
- package/lib/util/gpu.js.map +0 -1
- package/lib/util/index.js +0 -7
- package/lib/util/index.js.map +0 -1
- package/lib/util/math.js +0 -257
- package/lib/util/math.js.map +0 -1
- package/lib/util/number.js +0 -5
- package/lib/util/number.js.map +0 -1
- package/lib/util/object.js +0 -42
- package/lib/util/object.js.map +0 -1
- package/lib/util/string.js +0 -15
- package/lib/util/string.js.map +0 -1
- package/lib/worker.d.ts +0 -1
- package/lib/worker.js +0 -45
- package/lib/worker.js.map +0 -1
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { __read, __spreadArray } from "tslib";
|
|
2
|
-
/*
|
|
3
|
-
* Assigns an initial order value for each node by performing a DFS search
|
|
4
|
-
* starting from nodes in the first rank. Nodes are assigned an order in their
|
|
5
|
-
* rank as they are first visited.
|
|
6
|
-
*
|
|
7
|
-
* This approach comes from Gansner, et al., "A Technique for Drawing Directed
|
|
8
|
-
* Graphs."
|
|
9
|
-
*
|
|
10
|
-
* Returns a layering matrix with an array per layer and each layer sorted by
|
|
11
|
-
* the order of its nodes.
|
|
12
|
-
*/
|
|
13
|
-
export var initOrder = function (g) {
|
|
14
|
-
var visited = {};
|
|
15
|
-
// const simpleNodes = g.getAllNodes().filter((v) => {
|
|
16
|
-
// return !g.getChildren(v.id)?.length;
|
|
17
|
-
// });
|
|
18
|
-
var simpleNodes = g.getAllNodes();
|
|
19
|
-
var nodeRanks = simpleNodes.map(function (v) { var _a; return (_a = v.data.rank) !== null && _a !== void 0 ? _a : -Infinity; });
|
|
20
|
-
var maxRank = Math.max.apply(Math, __spreadArray([], __read(nodeRanks)));
|
|
21
|
-
var layers = [];
|
|
22
|
-
for (var i = 0; i < maxRank + 1; i++) {
|
|
23
|
-
layers.push([]);
|
|
24
|
-
}
|
|
25
|
-
var orderedVs = simpleNodes.sort(function (a, b) { return g.getNode(a.id).data.rank - g.getNode(b.id).data.rank; });
|
|
26
|
-
// const orderedVs = _.sortBy(simpleNodes, function(v) { return g.node(v)!.rank; });
|
|
27
|
-
// 有fixOrder的,直接排序好放进去
|
|
28
|
-
var beforeSort = orderedVs.filter(function (n) {
|
|
29
|
-
return g.getNode(n.id).data.fixorder !== undefined;
|
|
30
|
-
});
|
|
31
|
-
var fixOrderNodes = beforeSort.sort(function (a, b) { return g.getNode(a.id).data.fixorder - g.getNode(b.id).data.fixorder; });
|
|
32
|
-
fixOrderNodes === null || fixOrderNodes === void 0 ? void 0 : fixOrderNodes.forEach(function (n) {
|
|
33
|
-
if (!isNaN(g.getNode(n.id).data.rank)) {
|
|
34
|
-
layers[g.getNode(n.id).data.rank].push(n.id);
|
|
35
|
-
}
|
|
36
|
-
visited[n.id] = true;
|
|
37
|
-
});
|
|
38
|
-
orderedVs === null || orderedVs === void 0 ? void 0 : orderedVs.forEach(function (n) {
|
|
39
|
-
return g.dfsTree(n.id, function (node) {
|
|
40
|
-
if (visited.hasOwnProperty(node.id))
|
|
41
|
-
return true;
|
|
42
|
-
visited[node.id] = true;
|
|
43
|
-
if (!isNaN(node.data.rank)) {
|
|
44
|
-
layers[node.data.rank].push(node.id);
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
});
|
|
48
|
-
return layers;
|
|
49
|
-
};
|
|
50
|
-
//# sourceMappingURL=init-order.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"init-order.js","sourceRoot":"","sources":["../../../src/dagre/order/init-order.ts"],"names":[],"mappings":";AAGA;;;;;;;;;;GAUG;AACH,MAAM,CAAC,IAAM,SAAS,GAAG,UAAC,CAAQ;IAChC,IAAM,OAAO,GAA4B,EAAE,CAAC;IAC5C,sDAAsD;IACtD,yCAAyC;IACzC,MAAM;IACN,IAAM,WAAW,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IACpC,IAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,UAAC,CAAC,YAAK,OAAA,MAAA,CAAC,CAAC,IAAI,CAAC,IAAK,mCAAI,CAAC,QAAQ,CAAA,EAAA,CAAC,CAAC;IAEpE,IAAM,OAAO,GAAG,IAAI,CAAC,GAAG,OAAR,IAAI,2BAAQ,SAAS,GAAC,CAAC;IACvC,IAAM,MAAM,GAAW,EAAE,CAAC;IAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QACpC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KACjB;IAED,IAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAChC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAK,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAK,EAAvD,CAAuD,CAClE,CAAC;IACF,oFAAoF;IAEpF,sBAAsB;IACtB,IAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,UAAC,CAAC;QACpC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC;IACrD,CAAC,CAAC,CAAC;IACH,IAAM,aAAa,GAAG,UAAU,CAAC,IAAI,CACnC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAS,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAS,EAA/D,CAA+D,CAC1E,CAAC;IACF,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,OAAO,CAAC,UAAC,CAAC;QACvB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAK,CAAC,EAAE;YACtC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SAC/C;QACD,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,CAAC,UAAC,CAAC;QACnB,OAAA,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,UAAC,IAAI;YACnB,IAAI,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;gBAAE,OAAO,IAAI,CAAC;YACjD,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAK,CAAC,EAAE;gBAC3B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aACvC;QACH,CAAC,CAAC;IANF,CAME,CACH,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Given a list of entries of the form {v, barycenter, weight} and a
|
|
3
|
-
* constraint graph this function will resolve any conflicts between the
|
|
4
|
-
* constraint graph and the barycenters for the entries. If the barycenters for
|
|
5
|
-
* an entry would violate a constraint in the constraint graph then we coalesce
|
|
6
|
-
* the nodes in the conflict into a new node that respects the contraint and
|
|
7
|
-
* aggregates barycenter and weight information.
|
|
8
|
-
*
|
|
9
|
-
* This implementation is based on the description in Forster, "A Fast and
|
|
10
|
-
* Simple Hueristic for Constrained Two-Level Crossing Reduction," thought it
|
|
11
|
-
* differs in some specific details.
|
|
12
|
-
*
|
|
13
|
-
* Pre-conditions:
|
|
14
|
-
*
|
|
15
|
-
* 1. Each entry has the form {v, barycenter, weight}, or if the node has
|
|
16
|
-
* no barycenter, then {v}.
|
|
17
|
-
*
|
|
18
|
-
* Returns:
|
|
19
|
-
*
|
|
20
|
-
* A new list of entries of the form {vs, i, barycenter, weight}. The list
|
|
21
|
-
* `vs` may either be a singleton or it may be an aggregation of nodes
|
|
22
|
-
* ordered such that they do not violate constraints from the constraint
|
|
23
|
-
* graph. The property `i` is the lowest original index of any of the
|
|
24
|
-
* elements in `vs`.
|
|
25
|
-
*/
|
|
26
|
-
var resolveConflicts = function (entries, cg) {
|
|
27
|
-
var _a, _b, _c;
|
|
28
|
-
var mappedEntries = {};
|
|
29
|
-
entries === null || entries === void 0 ? void 0 : entries.forEach(function (entry, i) {
|
|
30
|
-
mappedEntries[entry.v] = {
|
|
31
|
-
i: i,
|
|
32
|
-
indegree: 0,
|
|
33
|
-
in: [],
|
|
34
|
-
out: [],
|
|
35
|
-
vs: [entry.v],
|
|
36
|
-
};
|
|
37
|
-
var tmp = mappedEntries[entry.v];
|
|
38
|
-
if (entry.barycenter !== undefined) {
|
|
39
|
-
tmp.barycenter = entry.barycenter;
|
|
40
|
-
tmp.weight = entry.weight;
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
(_a = cg.getAllEdges()) === null || _a === void 0 ? void 0 : _a.forEach(function (e) {
|
|
44
|
-
var entryV = mappedEntries[e.source];
|
|
45
|
-
var entryW = mappedEntries[e.target];
|
|
46
|
-
if (entryV !== undefined && entryW !== undefined) {
|
|
47
|
-
entryW.indegree++;
|
|
48
|
-
entryV.out.push(mappedEntries[e.target]);
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
var sourceSet = (_c = (_b = Object.values(mappedEntries)).filter) === null || _c === void 0 ? void 0 : _c.call(_b, function (entry) { return !entry.indegree; });
|
|
52
|
-
return doResolveConflicts(sourceSet);
|
|
53
|
-
};
|
|
54
|
-
var doResolveConflicts = function (sourceSet) {
|
|
55
|
-
var _a, _b;
|
|
56
|
-
var entries = [];
|
|
57
|
-
var handleIn = function (vEntry) {
|
|
58
|
-
return function (uEntry) {
|
|
59
|
-
if (uEntry.merged)
|
|
60
|
-
return;
|
|
61
|
-
if (uEntry.barycenter === undefined ||
|
|
62
|
-
vEntry.barycenter === undefined ||
|
|
63
|
-
uEntry.barycenter >= vEntry.barycenter) {
|
|
64
|
-
mergeEntries(vEntry, uEntry);
|
|
65
|
-
}
|
|
66
|
-
};
|
|
67
|
-
};
|
|
68
|
-
var handleOut = function (vEntry) {
|
|
69
|
-
return function (wEntry) {
|
|
70
|
-
wEntry["in"].push(vEntry);
|
|
71
|
-
if (--wEntry.indegree === 0) {
|
|
72
|
-
sourceSet.push(wEntry);
|
|
73
|
-
}
|
|
74
|
-
};
|
|
75
|
-
};
|
|
76
|
-
var _loop_1 = function () {
|
|
77
|
-
var entry = sourceSet.pop();
|
|
78
|
-
entries.push(entry);
|
|
79
|
-
(_a = entry["in"].reverse()) === null || _a === void 0 ? void 0 : _a.forEach(function (e) { return handleIn(entry)(e); });
|
|
80
|
-
(_b = entry.out) === null || _b === void 0 ? void 0 : _b.forEach(function (e) { return handleOut(entry)(e); });
|
|
81
|
-
};
|
|
82
|
-
while (sourceSet === null || sourceSet === void 0 ? void 0 : sourceSet.length) {
|
|
83
|
-
_loop_1();
|
|
84
|
-
}
|
|
85
|
-
var filtered = entries.filter(function (entry) { return !entry.merged; });
|
|
86
|
-
var keys = [
|
|
87
|
-
"vs",
|
|
88
|
-
"i",
|
|
89
|
-
"barycenter",
|
|
90
|
-
"weight",
|
|
91
|
-
];
|
|
92
|
-
return filtered.map(function (entry) {
|
|
93
|
-
var picked = {};
|
|
94
|
-
keys === null || keys === void 0 ? void 0 : keys.forEach(function (key) {
|
|
95
|
-
if (entry[key] === undefined)
|
|
96
|
-
return;
|
|
97
|
-
picked[key] = entry[key];
|
|
98
|
-
});
|
|
99
|
-
return picked;
|
|
100
|
-
});
|
|
101
|
-
};
|
|
102
|
-
var mergeEntries = function (target, source) {
|
|
103
|
-
var _a;
|
|
104
|
-
var sum = 0;
|
|
105
|
-
var weight = 0;
|
|
106
|
-
if (target.weight) {
|
|
107
|
-
sum += target.barycenter * target.weight;
|
|
108
|
-
weight += target.weight;
|
|
109
|
-
}
|
|
110
|
-
if (source.weight) {
|
|
111
|
-
sum += source.barycenter * source.weight;
|
|
112
|
-
weight += source.weight;
|
|
113
|
-
}
|
|
114
|
-
target.vs = (_a = source.vs) === null || _a === void 0 ? void 0 : _a.concat(target.vs);
|
|
115
|
-
target.barycenter = sum / weight;
|
|
116
|
-
target.weight = weight;
|
|
117
|
-
target.i = Math.min(source.i, target.i);
|
|
118
|
-
source.merged = true;
|
|
119
|
-
};
|
|
120
|
-
export default resolveConflicts;
|
|
121
|
-
//# sourceMappingURL=resolve-conflicts.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-conflicts.js","sourceRoot":"","sources":["../../../src/dagre/order/resolve-conflicts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import { barycenter } from './barycenter';
|
|
2
|
-
import resolveConflicts from './resolve-conflicts';
|
|
3
|
-
import { sort } from './sort';
|
|
4
|
-
export var sortSubgraph = function (g, v, cg, biasRight, usePrev, keepNodeOrder) {
|
|
5
|
-
var _a, _b, _c, _d;
|
|
6
|
-
var movable = g.getChildren(v).map(function (n) { return n.id; });
|
|
7
|
-
// fixorder的点不参与排序(这个方案不合适,只排了新增节点,和原来的分离)
|
|
8
|
-
var node = g.getNode(v);
|
|
9
|
-
var bl = node ? node.data.borderLeft : undefined;
|
|
10
|
-
var br = node ? node.data.borderRight : undefined;
|
|
11
|
-
var subgraphs = {};
|
|
12
|
-
if (bl) {
|
|
13
|
-
movable = movable === null || movable === void 0 ? void 0 : movable.filter(function (w) {
|
|
14
|
-
return w !== bl && w !== br;
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
var barycenters = barycenter(g, movable || []);
|
|
18
|
-
barycenters === null || barycenters === void 0 ? void 0 : barycenters.forEach(function (entry) {
|
|
19
|
-
var _a;
|
|
20
|
-
if ((_a = g.getChildren(entry.v)) === null || _a === void 0 ? void 0 : _a.length) {
|
|
21
|
-
var subgraphResult = sortSubgraph(g, entry.v, cg, biasRight, keepNodeOrder);
|
|
22
|
-
subgraphs[entry.v] = subgraphResult;
|
|
23
|
-
if (subgraphResult.hasOwnProperty('barycenter')) {
|
|
24
|
-
mergeBarycenters(entry, subgraphResult);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
});
|
|
28
|
-
var entries = resolveConflicts(barycenters, cg);
|
|
29
|
-
expandSubgraphs(entries, subgraphs);
|
|
30
|
-
// 添加fixorder信息到entries里边
|
|
31
|
-
// TODO: 不考虑复合情况,只用第一个点的fixorder信息,后续考虑更完备的实现
|
|
32
|
-
(_a = entries
|
|
33
|
-
.filter(function (e) { return e.vs.length > 0; })) === null || _a === void 0 ? void 0 : _a.forEach(function (e) {
|
|
34
|
-
var node = g.getNode(e.vs[0]);
|
|
35
|
-
if (node) {
|
|
36
|
-
e.fixorder = node.data.fixorder;
|
|
37
|
-
e.order = node.data.order;
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
var result = sort(entries, biasRight, usePrev, keepNodeOrder);
|
|
41
|
-
if (bl) {
|
|
42
|
-
result.vs = [bl, result.vs, br].flat();
|
|
43
|
-
if ((_b = g.getPredecessors(bl)) === null || _b === void 0 ? void 0 : _b.length) {
|
|
44
|
-
var blPred = g.getNode(((_c = g.getPredecessors(bl)) === null || _c === void 0 ? void 0 : _c[0].id) || '');
|
|
45
|
-
var brPred = g.getNode(((_d = g.getPredecessors(br)) === null || _d === void 0 ? void 0 : _d[0].id) || '');
|
|
46
|
-
if (!result.hasOwnProperty('barycenter')) {
|
|
47
|
-
result.barycenter = 0;
|
|
48
|
-
result.weight = 0;
|
|
49
|
-
}
|
|
50
|
-
result.barycenter =
|
|
51
|
-
(result.barycenter * result.weight +
|
|
52
|
-
blPred.data.order +
|
|
53
|
-
brPred.data.order) /
|
|
54
|
-
(result.weight + 2);
|
|
55
|
-
result.weight += 2;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
return result;
|
|
59
|
-
};
|
|
60
|
-
var expandSubgraphs = function (entries, subgraphs) {
|
|
61
|
-
entries === null || entries === void 0 ? void 0 : entries.forEach(function (entry) {
|
|
62
|
-
var _a;
|
|
63
|
-
var vss = (_a = entry.vs) === null || _a === void 0 ? void 0 : _a.map(function (v) {
|
|
64
|
-
if (subgraphs[v]) {
|
|
65
|
-
return subgraphs[v].vs;
|
|
66
|
-
}
|
|
67
|
-
return v;
|
|
68
|
-
});
|
|
69
|
-
entry.vs = vss.flat();
|
|
70
|
-
});
|
|
71
|
-
};
|
|
72
|
-
var mergeBarycenters = function (target, other) {
|
|
73
|
-
if (target.barycenter !== undefined) {
|
|
74
|
-
target.barycenter =
|
|
75
|
-
(target.barycenter * target.weight + other.barycenter * other.weight) /
|
|
76
|
-
(target.weight + other.weight);
|
|
77
|
-
target.weight += other.weight;
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
target.barycenter = other.barycenter;
|
|
81
|
-
target.weight = other.weight;
|
|
82
|
-
}
|
|
83
|
-
};
|
|
84
|
-
//# sourceMappingURL=sort-subgraph.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sort-subgraph.js","sourceRoot":"","sources":["../../../src/dagre/order/sort-subgraph.ts"],"names":[],"mappings":"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"}
|
package/lib/dagre/order/sort.js
DELETED
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import { partition } from "../util";
|
|
2
|
-
export var sort = function (entries, biasRight, usePrev, keepNodeOrder) {
|
|
3
|
-
var parts = partition(entries, function (entry) {
|
|
4
|
-
var hasFixOrder = entry.hasOwnProperty("fixorder") && !isNaN(entry.fixorder);
|
|
5
|
-
if (keepNodeOrder) {
|
|
6
|
-
return !hasFixOrder && entry.hasOwnProperty("barycenter");
|
|
7
|
-
}
|
|
8
|
-
// NOTE: 有fixorder的也可以排
|
|
9
|
-
return hasFixOrder || entry.hasOwnProperty("barycenter");
|
|
10
|
-
});
|
|
11
|
-
var sortable = parts.lhs;
|
|
12
|
-
var unsortable = parts.rhs.sort(function (a, b) { return -a.i - -b.i; });
|
|
13
|
-
var vs = [];
|
|
14
|
-
var sum = 0;
|
|
15
|
-
var weight = 0;
|
|
16
|
-
var vsIndex = 0;
|
|
17
|
-
sortable === null || sortable === void 0 ? void 0 : sortable.sort(compareWithBias(!!biasRight, !!usePrev));
|
|
18
|
-
vsIndex = consumeUnsortable(vs, unsortable, vsIndex);
|
|
19
|
-
sortable === null || sortable === void 0 ? void 0 : sortable.forEach(function (entry) {
|
|
20
|
-
var _a;
|
|
21
|
-
vsIndex += (_a = entry.vs) === null || _a === void 0 ? void 0 : _a.length;
|
|
22
|
-
vs.push(entry.vs);
|
|
23
|
-
sum += entry.barycenter * entry.weight;
|
|
24
|
-
weight += entry.weight;
|
|
25
|
-
vsIndex = consumeUnsortable(vs, unsortable, vsIndex);
|
|
26
|
-
});
|
|
27
|
-
var result = {
|
|
28
|
-
vs: vs.flat(),
|
|
29
|
-
};
|
|
30
|
-
if (weight) {
|
|
31
|
-
result.barycenter = sum / weight;
|
|
32
|
-
result.weight = weight;
|
|
33
|
-
}
|
|
34
|
-
return result;
|
|
35
|
-
};
|
|
36
|
-
var consumeUnsortable = function (vs, unsortable, index) {
|
|
37
|
-
var iindex = index;
|
|
38
|
-
var last;
|
|
39
|
-
while (unsortable.length &&
|
|
40
|
-
(last = unsortable[unsortable.length - 1]).i <= iindex) {
|
|
41
|
-
unsortable.pop();
|
|
42
|
-
vs === null || vs === void 0 ? void 0 : vs.push(last.vs);
|
|
43
|
-
iindex++;
|
|
44
|
-
}
|
|
45
|
-
return iindex;
|
|
46
|
-
};
|
|
47
|
-
/**
|
|
48
|
-
* 配置是否考虑使用之前的布局结果
|
|
49
|
-
*/
|
|
50
|
-
var compareWithBias = function (bias, usePrev) {
|
|
51
|
-
return function (entryV, entryW) {
|
|
52
|
-
// 排序的时候先判断fixorder,不行再判断重心
|
|
53
|
-
if (entryV.fixorder !== undefined && entryW.fixorder !== undefined) {
|
|
54
|
-
return entryV.fixorder - entryW.fixorder;
|
|
55
|
-
}
|
|
56
|
-
if (entryV.barycenter < entryW.barycenter) {
|
|
57
|
-
return -1;
|
|
58
|
-
}
|
|
59
|
-
if (entryV.barycenter > entryW.barycenter) {
|
|
60
|
-
return 1;
|
|
61
|
-
}
|
|
62
|
-
// 重心相同,考虑之前排好的顺序
|
|
63
|
-
if (usePrev && entryV.order !== undefined && entryW.order !== undefined) {
|
|
64
|
-
if (entryV.order < entryW.order) {
|
|
65
|
-
return -1;
|
|
66
|
-
}
|
|
67
|
-
if (entryV.order > entryW.order) {
|
|
68
|
-
return 1;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
return !bias ? entryV.i - entryW.i : entryW.i - entryV.i;
|
|
72
|
-
};
|
|
73
|
-
};
|
|
74
|
-
//# sourceMappingURL=sort.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sort.js","sourceRoot":"","sources":["../../../src/dagre/order/sort.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
// deep first search with both order low for pre, lim for post
|
|
2
|
-
var dfsBothOrder = function (g) {
|
|
3
|
-
var result = {};
|
|
4
|
-
var lim = 0;
|
|
5
|
-
var dfs = function (v) {
|
|
6
|
-
var low = lim;
|
|
7
|
-
g.getChildren(v).forEach(function (n) { return dfs(n.id); });
|
|
8
|
-
result[v] = { low: low, lim: lim++ };
|
|
9
|
-
};
|
|
10
|
-
g.getRoots().forEach(function (n) { return dfs(n.id); });
|
|
11
|
-
return result;
|
|
12
|
-
};
|
|
13
|
-
// Find a path from v to w through the lowest common ancestor (LCA). Return the
|
|
14
|
-
// full path and the LCA.
|
|
15
|
-
var findPath = function (g, postorderNums, v, w) {
|
|
16
|
-
var _a, _b;
|
|
17
|
-
var vPath = [];
|
|
18
|
-
var wPath = [];
|
|
19
|
-
var low = Math.min(postorderNums[v].low, postorderNums[w].low);
|
|
20
|
-
var lim = Math.max(postorderNums[v].lim, postorderNums[w].lim);
|
|
21
|
-
var parent;
|
|
22
|
-
var lca;
|
|
23
|
-
// Traverse up from v to find the LCA
|
|
24
|
-
parent = v;
|
|
25
|
-
do {
|
|
26
|
-
parent = (_a = g.getParent(parent)) === null || _a === void 0 ? void 0 : _a.id;
|
|
27
|
-
vPath.push(parent);
|
|
28
|
-
} while (parent &&
|
|
29
|
-
(postorderNums[parent].low > low || lim > postorderNums[parent].lim));
|
|
30
|
-
lca = parent;
|
|
31
|
-
// Traverse from w to LCA
|
|
32
|
-
parent = w;
|
|
33
|
-
while (parent && parent !== lca) {
|
|
34
|
-
wPath.push(parent);
|
|
35
|
-
parent = (_b = g.getParent(parent)) === null || _b === void 0 ? void 0 : _b.id;
|
|
36
|
-
}
|
|
37
|
-
return { lca: lca, path: vPath.concat(wPath.reverse()) };
|
|
38
|
-
};
|
|
39
|
-
export var parentDummyChains = function (g, dummyChains) {
|
|
40
|
-
var postorderNums = dfsBothOrder(g);
|
|
41
|
-
dummyChains.forEach(function (startV) {
|
|
42
|
-
var _a, _b;
|
|
43
|
-
var v = startV;
|
|
44
|
-
var node = g.getNode(v);
|
|
45
|
-
var originalEdge = node.data.originalEdge;
|
|
46
|
-
if (!originalEdge)
|
|
47
|
-
return;
|
|
48
|
-
var pathData = findPath(g, postorderNums, originalEdge.source, originalEdge.target);
|
|
49
|
-
var path = pathData.path;
|
|
50
|
-
var lca = pathData.lca;
|
|
51
|
-
var pathIdx = 0;
|
|
52
|
-
var pathV = path[pathIdx];
|
|
53
|
-
var ascending = true;
|
|
54
|
-
while (v !== originalEdge.target) {
|
|
55
|
-
node = g.getNode(v);
|
|
56
|
-
if (ascending) {
|
|
57
|
-
while (pathV !== lca &&
|
|
58
|
-
((_a = g.getNode(pathV)) === null || _a === void 0 ? void 0 : _a.data.maxRank) < node.data.rank) {
|
|
59
|
-
pathIdx++;
|
|
60
|
-
pathV = path[pathIdx];
|
|
61
|
-
}
|
|
62
|
-
if (pathV === lca) {
|
|
63
|
-
ascending = false;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
if (!ascending) {
|
|
67
|
-
while (pathIdx < path.length - 1 &&
|
|
68
|
-
((_b = g.getNode(path[pathIdx + 1])) === null || _b === void 0 ? void 0 : _b.data.minRank) <= node.data.rank) {
|
|
69
|
-
pathIdx++;
|
|
70
|
-
}
|
|
71
|
-
pathV = path[pathIdx];
|
|
72
|
-
}
|
|
73
|
-
if (g.hasNode(pathV)) {
|
|
74
|
-
g.setParent(v, pathV);
|
|
75
|
-
}
|
|
76
|
-
v = g.getSuccessors(v)[0].id;
|
|
77
|
-
}
|
|
78
|
-
});
|
|
79
|
-
};
|
|
80
|
-
//# sourceMappingURL=parent-dummy-chains.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parent-dummy-chains.js","sourceRoot":"","sources":["../../src/dagre/parent-dummy-chains.ts"],"names":[],"mappings":"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"}
|