@antv/layout 1.2.13 → 1.2.14-beta.0
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/85db61ddc757dae66e04.worker.js +2 -0
- package/dist/85db61ddc757dae66e04.worker.js.map +1 -0
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/lib/{dagre → antv-dagre}/acyclic.d.ts +1 -1
- package/lib/antv-dagre/acyclic.js +65 -0
- package/lib/antv-dagre/acyclic.js.map +1 -0
- package/lib/antv-dagre/add-border-segments.js +41 -0
- package/lib/antv-dagre/add-border-segments.js.map +1 -0
- package/lib/{dagre → antv-dagre}/coordinate-system.d.ts +2 -1
- package/lib/antv-dagre/coordinate-system.js +69 -0
- package/lib/antv-dagre/coordinate-system.js.map +1 -0
- package/lib/{dagre → antv-dagre}/data/list.d.ts +1 -1
- package/lib/{dagre → antv-dagre}/data/list.js +23 -22
- package/lib/antv-dagre/data/list.js.map +1 -0
- package/lib/{dagre → antv-dagre}/greedy-fas.d.ts +2 -2
- package/lib/antv-dagre/greedy-fas.js +141 -0
- package/lib/antv-dagre/greedy-fas.js.map +1 -0
- package/lib/{dagre → antv-dagre}/layout.d.ts +2 -1
- package/lib/{dagre → antv-dagre}/layout.js +156 -154
- package/lib/antv-dagre/layout.js.map +1 -0
- package/lib/{dagre → antv-dagre}/nesting-graph.js +42 -39
- package/lib/antv-dagre/nesting-graph.js.map +1 -0
- package/lib/{dagre → antv-dagre}/normalize.d.ts +2 -2
- package/lib/{dagre → antv-dagre}/normalize.js +29 -25
- package/lib/antv-dagre/normalize.js.map +1 -0
- package/lib/{dagre → antv-dagre}/order/add-subgraph-constraints.js +13 -9
- package/lib/antv-dagre/order/add-subgraph-constraints.js.map +1 -0
- package/lib/{dagre → antv-dagre}/order/barycenter.d.ts +2 -2
- package/lib/antv-dagre/order/barycenter.js +27 -0
- package/lib/antv-dagre/order/barycenter.js.map +1 -0
- package/lib/{dagre → antv-dagre}/order/build-layer-graph.js +23 -23
- package/lib/antv-dagre/order/build-layer-graph.js.map +1 -0
- package/lib/antv-dagre/order/cross-count.d.ts +3 -0
- package/lib/{dagre → antv-dagre}/order/cross-count.js +21 -17
- package/lib/antv-dagre/order/cross-count.js.map +1 -0
- package/lib/{dagre → antv-dagre}/order/index.d.ts +1 -1
- package/lib/antv-dagre/order/index.js +95 -0
- package/lib/antv-dagre/order/index.js.map +1 -0
- package/lib/{dagre → antv-dagre}/order/init-data-order.js +12 -9
- package/lib/antv-dagre/order/init-data-order.js.map +1 -0
- package/lib/antv-dagre/order/init-order.js +51 -0
- package/lib/antv-dagre/order/init-order.js.map +1 -0
- package/lib/{dagre → antv-dagre}/order/resolve-conflicts.d.ts +3 -3
- package/lib/{dagre → antv-dagre}/order/resolve-conflicts.js +35 -36
- package/lib/antv-dagre/order/resolve-conflicts.js.map +1 -0
- package/lib/{dagre → antv-dagre}/order/sort-subgraph.js +28 -23
- package/lib/antv-dagre/order/sort-subgraph.js.map +1 -0
- package/lib/{dagre → antv-dagre}/order/sort.d.ts +2 -2
- package/lib/{dagre → antv-dagre}/order/sort.js +23 -19
- package/lib/antv-dagre/order/sort.js.map +1 -0
- package/lib/{dagre → antv-dagre}/parent-dummy-chains.js +32 -28
- package/lib/antv-dagre/parent-dummy-chains.js.map +1 -0
- package/lib/{dagre → antv-dagre}/position/bk.d.ts +5 -4
- package/lib/{dagre → antv-dagre}/position/bk.js +162 -148
- package/lib/antv-dagre/position/bk.js.map +1 -0
- package/lib/{dagre → antv-dagre}/position/index.d.ts +2 -1
- package/lib/antv-dagre/position/index.js +55 -0
- package/lib/antv-dagre/position/index.js.map +1 -0
- package/lib/{dagre → antv-dagre}/rank/feasible-tree.d.ts +2 -2
- package/lib/{dagre → antv-dagre}/rank/feasible-tree.js +42 -38
- package/lib/antv-dagre/rank/feasible-tree.js.map +1 -0
- package/lib/antv-dagre/rank/index.d.ts +2 -0
- package/lib/{dagre → antv-dagre}/rank/index.js +17 -13
- package/lib/antv-dagre/rank/index.js.map +1 -0
- package/lib/{dagre → antv-dagre}/rank/network-simplex.d.ts +2 -2
- package/lib/{dagre → antv-dagre}/rank/network-simplex.js +90 -81
- package/lib/antv-dagre/rank/network-simplex.js.map +1 -0
- package/lib/{dagre → antv-dagre}/rank/util.d.ts +2 -2
- package/lib/{dagre → antv-dagre}/rank/util.js +37 -32
- package/lib/antv-dagre/rank/util.js.map +1 -0
- package/lib/antv-dagre/types.d.ts +2 -0
- package/lib/antv-dagre/types.js +3 -0
- package/lib/antv-dagre/types.js.map +1 -0
- package/lib/{dagre → antv-dagre}/util.d.ts +1 -1
- package/lib/antv-dagre/util.js +299 -0
- package/lib/antv-dagre/util.js.map +1 -0
- package/lib/antv-dagre.d.ts +50 -0
- package/lib/antv-dagre.js +542 -0
- package/lib/antv-dagre.js.map +1 -0
- package/lib/bundle-entry.d.ts +2 -18
- package/lib/bundle-entry.js +5 -18
- package/lib/bundle-entry.js.map +1 -1
- package/lib/bundle-supervisor.d.ts +4 -22
- package/lib/bundle-supervisor.js +59 -54
- package/lib/bundle-supervisor.js.map +1 -1
- package/lib/bundle-worker.d.ts +1 -1
- package/lib/bundle-worker.js +38 -35
- package/lib/bundle-worker.js.map +1 -1
- package/lib/circular.d.ts +1 -1
- package/lib/circular.js +133 -145
- package/lib/circular.js.map +1 -1
- package/lib/comboCombined.d.ts +1 -1
- package/lib/comboCombined.js +273 -299
- package/lib/comboCombined.js.map +1 -1
- package/lib/concentric.d.ts +1 -1
- package/lib/concentric.js +173 -179
- package/lib/concentric.js.map +1 -1
- package/lib/d3Force/forceInBox.js +80 -78
- package/lib/d3Force/forceInBox.js.map +1 -1
- package/lib/d3Force/index.d.ts +2 -2
- package/lib/d3Force/index.js +207 -229
- package/lib/d3Force/index.js.map +1 -1
- package/lib/dagre.d.ts +13 -24
- package/lib/dagre.js +61 -542
- package/lib/dagre.js.map +1 -1
- package/lib/exports.d.ts +17 -0
- package/lib/exports.js +20 -0
- package/lib/exports.js.map +1 -0
- package/lib/force/forceNBody.js +48 -47
- package/lib/force/forceNBody.js.map +1 -1
- package/lib/force/index.d.ts +1 -1
- package/lib/force/index.js +301 -324
- package/lib/force/index.js.map +1 -1
- package/lib/force/types.d.ts +5 -5
- package/lib/force/types.js +2 -1
- package/lib/forceAtlas2/body.d.ts +1 -1
- package/lib/forceAtlas2/body.js +32 -31
- package/lib/forceAtlas2/body.js.map +1 -1
- package/lib/forceAtlas2/index.d.ts +1 -1
- package/lib/forceAtlas2/index.js +219 -227
- package/lib/forceAtlas2/index.js.map +1 -1
- package/lib/forceAtlas2/quad.d.ts +2 -2
- package/lib/forceAtlas2/quad.js +43 -42
- package/lib/forceAtlas2/quad.js.map +1 -1
- package/lib/forceAtlas2/quadTree.js +19 -17
- package/lib/forceAtlas2/quadTree.js.map +1 -1
- package/lib/fruchterman.d.ts +1 -1
- package/lib/fruchterman.js +203 -219
- package/lib/fruchterman.js.map +1 -1
- package/lib/grid.d.ts +1 -1
- package/lib/grid.js +201 -207
- package/lib/grid.js.map +1 -1
- package/lib/index.d.ts +1 -15
- package/lib/index.js +5 -16
- package/lib/index.js.map +1 -1
- package/lib/mds.d.ts +1 -1
- package/lib/mds.js +73 -79
- package/lib/mds.js.map +1 -1
- package/lib/radial/index.d.ts +1 -1
- package/lib/radial/index.js +183 -186
- package/lib/radial/index.js.map +1 -1
- package/lib/radial/mds.d.ts +1 -1
- package/lib/radial/mds.js +20 -14
- package/lib/radial/mds.js.map +1 -1
- package/lib/radial/radial-nonoverlap-force.d.ts +2 -2
- package/lib/radial/radial-nonoverlap-force.js +40 -37
- package/lib/radial/radial-nonoverlap-force.js.map +1 -1
- package/lib/random.d.ts +1 -1
- package/lib/random.js +57 -66
- package/lib/random.js.map +1 -1
- package/lib/registry.d.ts +2 -2
- package/lib/registry.js +30 -25
- package/lib/registry.js.map +1 -1
- package/lib/supervisor.d.ts +2 -3
- package/lib/supervisor.js +63 -58
- package/lib/supervisor.js.map +1 -1
- package/lib/types.d.ts +20 -75
- package/lib/types.js +5 -1
- package/lib/types.js.map +1 -1
- package/lib/util/array.js +4 -1
- package/lib/util/array.js.map +1 -1
- package/lib/util/common.d.ts +1 -1
- package/lib/util/common.js +11 -8
- package/lib/util/common.js.map +1 -1
- package/lib/util/function.js +41 -37
- package/lib/util/function.js.map +1 -1
- package/lib/util/index.d.ts +0 -2
- package/lib/util/index.js +7 -6
- package/lib/util/index.js.map +1 -1
- package/lib/util/math.d.ts +1 -26
- package/lib/util/math.js +55 -154
- package/lib/util/math.js.map +1 -1
- package/lib/util/object.d.ts +1 -1
- package/lib/util/object.js +20 -15
- package/lib/util/object.js.map +1 -1
- package/lib/util/size.d.ts +3 -0
- package/lib/util/size.js +16 -0
- package/lib/util/size.js.map +1 -0
- package/lib/worker.js +36 -35
- package/lib/worker.js.map +1 -1
- package/package.json +10 -6
- package/dist/aa1bb0ccc06b11cf79c1.worker.js +0 -2
- package/dist/aa1bb0ccc06b11cf79c1.worker.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.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.map +0 -1
- package/lib/dagre/nesting-graph.js.map +0 -1
- package/lib/dagre/normalize.js.map +0 -1
- 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.map +0 -1
- package/lib/dagre/order/cross-count.d.ts +0 -3
- 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.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.map +0 -1
- package/lib/dagre/order/sort-subgraph.js.map +0 -1
- package/lib/dagre/order/sort.js.map +0 -1
- package/lib/dagre/parent-dummy-chains.js.map +0 -1
- 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.map +0 -1
- package/lib/dagre/rank/index.d.ts +0 -2
- package/lib/dagre/rank/index.js.map +0 -1
- package/lib/dagre/rank/network-simplex.js.map +0 -1
- 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/util/gpu.d.ts +0 -45
- package/lib/util/gpu.js +0 -214
- package/lib/util/gpu.js.map +0 -1
- package/lib/util/number.d.ts +0 -1
- package/lib/util/number.js +0 -5
- package/lib/util/number.js.map +0 -1
- package/lib/util/string.d.ts +0 -1
- package/lib/util/string.js +0 -15
- package/lib/util/string.js.map +0 -1
- /package/lib/{dagre → antv-dagre}/add-border-segments.d.ts +0 -0
- /package/lib/{dagre → antv-dagre}/nesting-graph.d.ts +0 -0
- /package/lib/{dagre → antv-dagre}/order/add-subgraph-constraints.d.ts +0 -0
- /package/lib/{dagre → antv-dagre}/order/build-layer-graph.d.ts +0 -0
- /package/lib/{dagre → antv-dagre}/order/init-data-order.d.ts +0 -0
- /package/lib/{dagre → antv-dagre}/order/init-order.d.ts +0 -0
- /package/lib/{dagre → antv-dagre}/order/sort-subgraph.d.ts +0 -0
- /package/lib/{dagre → antv-dagre}/parent-dummy-chains.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parent-dummy-chains.js","sourceRoot":"","sources":["../../src/antv-dagre/parent-dummy-chains.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { ID, Node } from
|
|
2
|
-
import {
|
|
3
|
-
|
|
1
|
+
import { ID, Node } from '@antv/graphlib';
|
|
2
|
+
import type { Graph as IGraph, NodeData } from '../../types';
|
|
3
|
+
import type { DagreAlign } from '../types';
|
|
4
|
+
type Conflicts = Record<ID, Record<ID, boolean>>;
|
|
4
5
|
export declare const findType1Conflicts: (g: IGraph, layering?: ID[][]) => {};
|
|
5
6
|
export declare const findType2Conflicts: (g: IGraph, layering?: ID[][]) => {};
|
|
6
7
|
export declare const findOtherInnerSegmentNode: (g: IGraph, v: ID) => Node<NodeData>;
|
|
@@ -21,5 +22,5 @@ export declare const positionX: (g: IGraph, options?: Partial<{
|
|
|
21
22
|
edgesep: number;
|
|
22
23
|
}>) => Record<string, number>;
|
|
23
24
|
export declare const sep: (nodeSep: number, edgeSep: number, reverseSep: boolean) => (g: IGraph, v: ID, w: ID) => number;
|
|
24
|
-
export declare const width: (g: IGraph, v: ID) =>
|
|
25
|
+
export declare const width: (g: IGraph, v: ID) => any;
|
|
25
26
|
export {};
|
|
@@ -1,35 +1,37 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.width = exports.sep = exports.positionX = exports.balance = exports.alignCoordinates = exports.findSmallestWidthAlignment = exports.buildBlockGraph = exports.horizontalCompaction = exports.verticalAlignment = exports.hasConflict = exports.addConflict = exports.findOtherInnerSegmentNode = exports.findType2Conflicts = exports.findType1Conflicts = void 0;
|
|
2
4
|
/*
|
|
3
5
|
* This module provides coordinate assignment based on Brandes and Köpf, "Fast
|
|
4
6
|
* and Simple Horizontal Coordinate Assignment."
|
|
5
7
|
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
const graphlib_1 = require("@antv/graphlib");
|
|
9
|
+
const util_1 = require("../util");
|
|
10
|
+
const findType1Conflicts = (g, layering) => {
|
|
11
|
+
const conflicts = {};
|
|
12
|
+
const visitLayer = (prevLayer, layer) => {
|
|
11
13
|
// last visited node in the previous layer that is incident on an inner
|
|
12
14
|
// segment.
|
|
13
|
-
|
|
15
|
+
let k0 = 0;
|
|
14
16
|
// Tracks the last node in this layer scanned for crossings with a type-1
|
|
15
17
|
// segment.
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
layer === null || layer === void 0 ? void 0 : layer.forEach(
|
|
18
|
+
let scanPos = 0;
|
|
19
|
+
const prevLayerLength = prevLayer.length;
|
|
20
|
+
const lastNode = layer === null || layer === void 0 ? void 0 : layer[(layer === null || layer === void 0 ? void 0 : layer.length) - 1];
|
|
21
|
+
layer === null || layer === void 0 ? void 0 : layer.forEach((v, i) => {
|
|
20
22
|
var _a;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
+
const w = (0, exports.findOtherInnerSegmentNode)(g, v);
|
|
24
|
+
const k1 = w ? g.getNode(w.id).data.order : prevLayerLength;
|
|
23
25
|
if (w || v === lastNode) {
|
|
24
|
-
(_a = layer.slice(scanPos, i + 1)) === null || _a === void 0 ? void 0 : _a.forEach(
|
|
26
|
+
(_a = layer.slice(scanPos, i + 1)) === null || _a === void 0 ? void 0 : _a.forEach((scanNode) => {
|
|
25
27
|
var _a;
|
|
26
|
-
(_a = g.getPredecessors(scanNode)) === null || _a === void 0 ? void 0 : _a.forEach(
|
|
28
|
+
(_a = g.getPredecessors(scanNode)) === null || _a === void 0 ? void 0 : _a.forEach((u) => {
|
|
27
29
|
var _a;
|
|
28
|
-
|
|
29
|
-
|
|
30
|
+
const uLabel = g.getNode(u.id);
|
|
31
|
+
const uPos = uLabel.data.order;
|
|
30
32
|
if ((uPos < k0 || k1 < uPos) &&
|
|
31
33
|
!(uLabel.data.dummy && ((_a = g.getNode(scanNode)) === null || _a === void 0 ? void 0 : _a.data.dummy))) {
|
|
32
|
-
addConflict(conflicts, u.id, scanNode);
|
|
34
|
+
(0, exports.addConflict)(conflicts, u.id, scanNode);
|
|
33
35
|
}
|
|
34
36
|
});
|
|
35
37
|
});
|
|
@@ -44,20 +46,21 @@ export var findType1Conflicts = function (g, layering) {
|
|
|
44
46
|
}
|
|
45
47
|
return conflicts;
|
|
46
48
|
};
|
|
47
|
-
|
|
48
|
-
|
|
49
|
+
exports.findType1Conflicts = findType1Conflicts;
|
|
50
|
+
const findType2Conflicts = (g, layering) => {
|
|
51
|
+
const conflicts = {};
|
|
49
52
|
function scan(south, southPos, southEnd, prevNorthBorder, nextNorthBorder) {
|
|
50
53
|
var _a, _b;
|
|
51
|
-
|
|
52
|
-
for (
|
|
54
|
+
let v;
|
|
55
|
+
for (let i = southPos; i < southEnd; i++) {
|
|
53
56
|
v = south[i];
|
|
54
57
|
if ((_a = g.getNode(v)) === null || _a === void 0 ? void 0 : _a.data.dummy) {
|
|
55
|
-
(_b = g.getPredecessors(v)) === null || _b === void 0 ? void 0 : _b.forEach(
|
|
56
|
-
|
|
58
|
+
(_b = g.getPredecessors(v)) === null || _b === void 0 ? void 0 : _b.forEach((u) => {
|
|
59
|
+
const uNode = g.getNode(u.id);
|
|
57
60
|
if (uNode.data.dummy &&
|
|
58
61
|
(uNode.data.order < prevNorthBorder ||
|
|
59
62
|
uNode.data.order > nextNorthBorder)) {
|
|
60
|
-
addConflict(conflicts, u.id, v);
|
|
63
|
+
(0, exports.addConflict)(conflicts, u.id, v);
|
|
61
64
|
}
|
|
62
65
|
});
|
|
63
66
|
}
|
|
@@ -68,21 +71,21 @@ export var findType2Conflicts = function (g, layering) {
|
|
|
68
71
|
return JSON.stringify(params.slice(1));
|
|
69
72
|
}
|
|
70
73
|
function scanIfNeeded(params, scanCache) {
|
|
71
|
-
|
|
74
|
+
const cacheKey = getScannedKey(params);
|
|
72
75
|
if (scanCache.get(cacheKey))
|
|
73
76
|
return;
|
|
74
|
-
scan
|
|
77
|
+
scan(...params);
|
|
75
78
|
scanCache.set(cacheKey, true);
|
|
76
79
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
south === null || south === void 0 ? void 0 : south.forEach(
|
|
80
|
+
const visitLayer = (north, south) => {
|
|
81
|
+
let prevNorthPos = -1;
|
|
82
|
+
let nextNorthPos;
|
|
83
|
+
let southPos = 0;
|
|
84
|
+
const scanned = new Map();
|
|
85
|
+
south === null || south === void 0 ? void 0 : south.forEach((v, southLookahead) => {
|
|
83
86
|
var _a;
|
|
84
|
-
if (((_a = g.getNode(v)) === null || _a === void 0 ? void 0 : _a.data.dummy) ===
|
|
85
|
-
|
|
87
|
+
if (((_a = g.getNode(v)) === null || _a === void 0 ? void 0 : _a.data.dummy) === 'border') {
|
|
88
|
+
const predecessors = g.getPredecessors(v) || [];
|
|
86
89
|
if (predecessors.length) {
|
|
87
90
|
nextNorthPos = g.getNode(predecessors[0].id).data.order;
|
|
88
91
|
scanIfNeeded([south, southPos, southLookahead, prevNorthPos, nextNorthPos], scanned);
|
|
@@ -99,36 +102,40 @@ export var findType2Conflicts = function (g, layering) {
|
|
|
99
102
|
}
|
|
100
103
|
return conflicts;
|
|
101
104
|
};
|
|
102
|
-
|
|
105
|
+
exports.findType2Conflicts = findType2Conflicts;
|
|
106
|
+
const findOtherInnerSegmentNode = (g, v) => {
|
|
103
107
|
var _a, _b;
|
|
104
108
|
if ((_a = g.getNode(v)) === null || _a === void 0 ? void 0 : _a.data.dummy) {
|
|
105
|
-
return (_b = g.getPredecessors(v)) === null || _b === void 0 ? void 0 : _b.find(
|
|
109
|
+
return (_b = g.getPredecessors(v)) === null || _b === void 0 ? void 0 : _b.find((u) => g.getNode(u.id).data.dummy);
|
|
106
110
|
}
|
|
107
111
|
};
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
112
|
+
exports.findOtherInnerSegmentNode = findOtherInnerSegmentNode;
|
|
113
|
+
const addConflict = (conflicts, v, w) => {
|
|
114
|
+
let vv = v;
|
|
115
|
+
let ww = w;
|
|
111
116
|
if (vv > ww) {
|
|
112
|
-
|
|
117
|
+
const tmp = vv;
|
|
113
118
|
vv = ww;
|
|
114
119
|
ww = tmp;
|
|
115
120
|
}
|
|
116
|
-
|
|
121
|
+
let conflictsV = conflicts[vv];
|
|
117
122
|
if (!conflictsV) {
|
|
118
123
|
conflicts[vv] = conflictsV = {};
|
|
119
124
|
}
|
|
120
125
|
conflictsV[ww] = true;
|
|
121
126
|
};
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
127
|
+
exports.addConflict = addConflict;
|
|
128
|
+
const hasConflict = (conflicts, v, w) => {
|
|
129
|
+
let vv = v;
|
|
130
|
+
let ww = w;
|
|
125
131
|
if (vv > ww) {
|
|
126
|
-
|
|
132
|
+
const tmp = v;
|
|
127
133
|
vv = ww;
|
|
128
134
|
ww = tmp;
|
|
129
135
|
}
|
|
130
136
|
return !!conflicts[vv];
|
|
131
137
|
};
|
|
138
|
+
exports.hasConflict = hasConflict;
|
|
132
139
|
/*
|
|
133
140
|
* Try to align nodes into vertical "blocks" where possible. This algorithm
|
|
134
141
|
* attempts to align a node with one of its median neighbors. If the edge
|
|
@@ -137,32 +144,32 @@ export var hasConflict = function (conflicts, v, w) {
|
|
|
137
144
|
* we're trying to form a block with, we also ignore that possibility - our
|
|
138
145
|
* blocks would be split in that scenario.
|
|
139
146
|
*/
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
147
|
+
const verticalAlignment = (g, layering, conflicts, neighborFn) => {
|
|
148
|
+
const root = {};
|
|
149
|
+
const align = {};
|
|
150
|
+
const pos = {};
|
|
144
151
|
// We cache the position here based on the layering because the graph and
|
|
145
152
|
// layering may be out of sync. The layering matrix is manipulated to
|
|
146
153
|
// generate different extreme alignments.
|
|
147
|
-
layering === null || layering === void 0 ? void 0 : layering.forEach(
|
|
148
|
-
layer === null || layer === void 0 ? void 0 : layer.forEach(
|
|
154
|
+
layering === null || layering === void 0 ? void 0 : layering.forEach((layer) => {
|
|
155
|
+
layer === null || layer === void 0 ? void 0 : layer.forEach((v, order) => {
|
|
149
156
|
root[v] = v;
|
|
150
157
|
align[v] = v;
|
|
151
158
|
pos[v] = order;
|
|
152
159
|
});
|
|
153
160
|
});
|
|
154
|
-
layering === null || layering === void 0 ? void 0 : layering.forEach(
|
|
155
|
-
|
|
156
|
-
layer === null || layer === void 0 ? void 0 : layer.forEach(
|
|
157
|
-
|
|
161
|
+
layering === null || layering === void 0 ? void 0 : layering.forEach((layer) => {
|
|
162
|
+
let prevIdx = -1;
|
|
163
|
+
layer === null || layer === void 0 ? void 0 : layer.forEach((v) => {
|
|
164
|
+
let ws = neighborFn(v).map((n) => n.id);
|
|
158
165
|
if (ws.length) {
|
|
159
|
-
ws = ws.sort(
|
|
160
|
-
|
|
161
|
-
for (
|
|
162
|
-
|
|
166
|
+
ws = ws.sort((a, b) => pos[a] - pos[b]);
|
|
167
|
+
const mp = (ws.length - 1) / 2;
|
|
168
|
+
for (let i = Math.floor(mp), il = Math.ceil(mp); i <= il; ++i) {
|
|
169
|
+
const w = ws[i];
|
|
163
170
|
if (align[v] === v &&
|
|
164
171
|
prevIdx < pos[w] &&
|
|
165
|
-
!hasConflict(conflicts, v, w)) {
|
|
172
|
+
!(0, exports.hasConflict)(conflicts, v, w)) {
|
|
166
173
|
align[w] = v;
|
|
167
174
|
align[v] = root[v] = root[w];
|
|
168
175
|
prevIdx = pos[w];
|
|
@@ -171,22 +178,23 @@ export var verticalAlignment = function (g, layering, conflicts, neighborFn) {
|
|
|
171
178
|
}
|
|
172
179
|
});
|
|
173
180
|
});
|
|
174
|
-
return { root
|
|
181
|
+
return { root, align };
|
|
175
182
|
};
|
|
176
|
-
|
|
183
|
+
exports.verticalAlignment = verticalAlignment;
|
|
184
|
+
const horizontalCompaction = (g, layering, root, align, nodesep, edgesep, reverseSep) => {
|
|
177
185
|
var _a;
|
|
178
186
|
// This portion of the algorithm differs from BK due to a number of problems.
|
|
179
187
|
// Instead of their algorithm we construct a new block graph and do two
|
|
180
188
|
// sweeps. The first sweep places blocks with the smallest possible
|
|
181
189
|
// coordinates. The second sweep removes unused space by moving blocks to the
|
|
182
190
|
// greatest coordinates without violating separation.
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
191
|
+
const xs = {};
|
|
192
|
+
const blockG = (0, exports.buildBlockGraph)(g, layering, root, nodesep, edgesep, reverseSep);
|
|
193
|
+
const borderType = reverseSep ? 'borderLeft' : 'borderRight';
|
|
194
|
+
const iterate = (setXsFunc, nextNodesFunc) => {
|
|
195
|
+
let stack = blockG.getAllNodes();
|
|
196
|
+
let elem = stack.pop();
|
|
197
|
+
const visited = {};
|
|
190
198
|
while (elem) {
|
|
191
199
|
if (visited[elem.id]) {
|
|
192
200
|
setXsFunc(elem.id);
|
|
@@ -200,17 +208,17 @@ export var horizontalCompaction = function (g, layering, root, align, nodesep, e
|
|
|
200
208
|
}
|
|
201
209
|
};
|
|
202
210
|
// First pass, assign smallest coordinates
|
|
203
|
-
|
|
204
|
-
xs[elem] = (blockG.getRelatedEdges(elem,
|
|
211
|
+
const pass1 = (elem) => {
|
|
212
|
+
xs[elem] = (blockG.getRelatedEdges(elem, 'in') || []).reduce((acc, e) => {
|
|
205
213
|
return Math.max(acc, (xs[e.source] || 0) + e.data.weight);
|
|
206
214
|
}, 0);
|
|
207
215
|
};
|
|
208
216
|
// Second pass, assign greatest coordinates
|
|
209
|
-
|
|
210
|
-
|
|
217
|
+
const pass2 = (elem) => {
|
|
218
|
+
const min = (blockG.getRelatedEdges(elem, 'out') || []).reduce((acc, e) => {
|
|
211
219
|
return Math.min(acc, (xs[e.target] || 0) - e.data.weight);
|
|
212
220
|
}, Number.POSITIVE_INFINITY);
|
|
213
|
-
|
|
221
|
+
const node = g.getNode(elem);
|
|
214
222
|
if (min !== Number.POSITIVE_INFINITY &&
|
|
215
223
|
node.data.borderType !== borderType) {
|
|
216
224
|
xs[elem] = Math.max(xs[elem], min);
|
|
@@ -219,18 +227,19 @@ export var horizontalCompaction = function (g, layering, root, align, nodesep, e
|
|
|
219
227
|
iterate(pass1, blockG.getPredecessors.bind(blockG));
|
|
220
228
|
iterate(pass2, blockG.getSuccessors.bind(blockG));
|
|
221
229
|
// Assign x coordinates to all nodes
|
|
222
|
-
(_a = Object.values(align)) === null || _a === void 0 ? void 0 : _a.forEach(
|
|
230
|
+
(_a = Object.values(align)) === null || _a === void 0 ? void 0 : _a.forEach((v) => {
|
|
223
231
|
xs[v] = xs[root[v]];
|
|
224
232
|
});
|
|
225
233
|
return xs;
|
|
226
234
|
};
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
235
|
+
exports.horizontalCompaction = horizontalCompaction;
|
|
236
|
+
const buildBlockGraph = (g, layering, root, nodesep, edgesep, reverseSep) => {
|
|
237
|
+
const blockGraph = new graphlib_1.Graph();
|
|
238
|
+
const sepFn = (0, exports.sep)(nodesep, edgesep, reverseSep);
|
|
239
|
+
layering === null || layering === void 0 ? void 0 : layering.forEach((layer) => {
|
|
240
|
+
let u;
|
|
241
|
+
layer === null || layer === void 0 ? void 0 : layer.forEach((v) => {
|
|
242
|
+
const vRoot = root[v];
|
|
234
243
|
if (!blockGraph.hasNode(vRoot)) {
|
|
235
244
|
blockGraph.addNode({
|
|
236
245
|
id: vRoot,
|
|
@@ -238,13 +247,13 @@ export var buildBlockGraph = function (g, layering, root, nodesep, edgesep, reve
|
|
|
238
247
|
});
|
|
239
248
|
}
|
|
240
249
|
if (u) {
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
.getRelatedEdges(uRoot,
|
|
244
|
-
.find(
|
|
250
|
+
const uRoot = root[u];
|
|
251
|
+
const edge = blockGraph
|
|
252
|
+
.getRelatedEdges(uRoot, 'out')
|
|
253
|
+
.find((edge) => edge.target === vRoot);
|
|
245
254
|
if (!edge) {
|
|
246
255
|
blockGraph.addEdge({
|
|
247
|
-
id:
|
|
256
|
+
id: `e${Math.random()}`,
|
|
248
257
|
source: uRoot,
|
|
249
258
|
target: vRoot,
|
|
250
259
|
data: {
|
|
@@ -253,7 +262,7 @@ export var buildBlockGraph = function (g, layering, root, nodesep, edgesep, reve
|
|
|
253
262
|
});
|
|
254
263
|
}
|
|
255
264
|
else {
|
|
256
|
-
blockGraph.updateEdgeData(edge.id,
|
|
265
|
+
blockGraph.updateEdgeData(edge.id, Object.assign(Object.assign({}, edge.data), { weight: Math.max(sepFn(g, v, u), edge.data.weight || 0) }));
|
|
257
266
|
}
|
|
258
267
|
}
|
|
259
268
|
u = v;
|
|
@@ -261,23 +270,25 @@ export var buildBlockGraph = function (g, layering, root, nodesep, edgesep, reve
|
|
|
261
270
|
});
|
|
262
271
|
return blockGraph;
|
|
263
272
|
};
|
|
273
|
+
exports.buildBlockGraph = buildBlockGraph;
|
|
264
274
|
/*
|
|
265
275
|
* Returns the alignment that has the smallest width of the given alignments.
|
|
266
276
|
*/
|
|
267
|
-
|
|
268
|
-
return minBy(Object.values(xss),
|
|
277
|
+
const findSmallestWidthAlignment = (g, xss) => {
|
|
278
|
+
return (0, util_1.minBy)(Object.values(xss), (xs) => {
|
|
269
279
|
var _a;
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
(_a = Object.keys(xs)) === null || _a === void 0 ? void 0 : _a.forEach(
|
|
273
|
-
|
|
274
|
-
|
|
280
|
+
let max = Number.NEGATIVE_INFINITY;
|
|
281
|
+
let min = Number.POSITIVE_INFINITY;
|
|
282
|
+
(_a = Object.keys(xs)) === null || _a === void 0 ? void 0 : _a.forEach((v) => {
|
|
283
|
+
const x = xs[v];
|
|
284
|
+
const halfWidth = (0, exports.width)(g, v) / 2;
|
|
275
285
|
max = Math.max(x + halfWidth, max);
|
|
276
286
|
min = Math.min(x - halfWidth, min);
|
|
277
287
|
});
|
|
278
288
|
return max - min;
|
|
279
289
|
});
|
|
280
290
|
};
|
|
291
|
+
exports.findSmallestWidthAlignment = findSmallestWidthAlignment;
|
|
281
292
|
/*
|
|
282
293
|
* Align the coordinates of each of the layout alignments such that
|
|
283
294
|
* left-biased alignments have their minimum coordinate at the same point as
|
|
@@ -285,87 +296,88 @@ export var findSmallestWidthAlignment = function (g, xss) {
|
|
|
285
296
|
* alignments have their maximum coordinate at the same point as the maximum
|
|
286
297
|
* coordinate of the smallest width alignment.
|
|
287
298
|
*/
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
[
|
|
293
|
-
[
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
299
|
+
function alignCoordinates(xss, alignTo) {
|
|
300
|
+
const alignToVals = Object.values(alignTo);
|
|
301
|
+
const alignToMin = Math.min(...alignToVals);
|
|
302
|
+
const alignToMax = Math.max(...alignToVals);
|
|
303
|
+
['u', 'd'].forEach((vert) => {
|
|
304
|
+
['l', 'r'].forEach((horiz) => {
|
|
305
|
+
const alignment = vert + horiz;
|
|
306
|
+
const xs = xss[alignment];
|
|
307
|
+
let delta;
|
|
297
308
|
if (xs === alignTo)
|
|
298
309
|
return;
|
|
299
|
-
|
|
310
|
+
const xsVals = Object.values(xs);
|
|
300
311
|
delta =
|
|
301
|
-
horiz ===
|
|
302
|
-
? alignToMin - Math.min
|
|
303
|
-
: alignToMax - Math.max
|
|
312
|
+
horiz === 'l'
|
|
313
|
+
? alignToMin - Math.min(...xsVals)
|
|
314
|
+
: alignToMax - Math.max(...xsVals);
|
|
304
315
|
if (delta) {
|
|
305
316
|
xss[alignment] = {};
|
|
306
|
-
Object.keys(xs).forEach(
|
|
317
|
+
Object.keys(xs).forEach((key) => {
|
|
307
318
|
xss[alignment][key] = xs[key] + delta;
|
|
308
319
|
});
|
|
309
320
|
}
|
|
310
321
|
});
|
|
311
322
|
});
|
|
312
323
|
}
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
324
|
+
exports.alignCoordinates = alignCoordinates;
|
|
325
|
+
const balance = (xss, align) => {
|
|
326
|
+
const result = {};
|
|
327
|
+
Object.keys(xss.ul).forEach((key) => {
|
|
316
328
|
if (align) {
|
|
317
329
|
result[key] = xss[align.toLowerCase()][key];
|
|
318
330
|
}
|
|
319
331
|
else {
|
|
320
|
-
|
|
332
|
+
const values = Object.values(xss).map((x) => x[key]);
|
|
321
333
|
result[key] = (values[0] + values[1]) / 2; // (ur + ul) / 2
|
|
322
334
|
}
|
|
323
335
|
});
|
|
324
336
|
return result;
|
|
325
337
|
};
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
338
|
+
exports.balance = balance;
|
|
339
|
+
const positionX = (g, options) => {
|
|
340
|
+
const { align: graphAlign, nodesep = 0, edgesep = 0 } = options || {};
|
|
341
|
+
const layering = (0, util_1.buildLayerMatrix)(g);
|
|
342
|
+
const conflicts = Object.assign((0, exports.findType1Conflicts)(g, layering), (0, exports.findType2Conflicts)(g, layering));
|
|
343
|
+
const xss = {};
|
|
344
|
+
let adjustedLayering;
|
|
345
|
+
['u', 'd'].forEach((vert) => {
|
|
333
346
|
adjustedLayering =
|
|
334
|
-
vert ===
|
|
335
|
-
[
|
|
336
|
-
if (horiz ===
|
|
337
|
-
adjustedLayering = adjustedLayering.map(
|
|
338
|
-
return Object.values(inner).reverse();
|
|
339
|
-
});
|
|
347
|
+
vert === 'u' ? layering : Object.values(layering).reverse();
|
|
348
|
+
['l', 'r'].forEach((horiz) => {
|
|
349
|
+
if (horiz === 'r') {
|
|
350
|
+
adjustedLayering = adjustedLayering.map((inner) => Object.values(inner).reverse());
|
|
340
351
|
}
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
if (horiz ===
|
|
345
|
-
Object.keys(xs).forEach(
|
|
352
|
+
const neighborFn = (vert === 'u' ? g.getPredecessors : g.getSuccessors).bind(g);
|
|
353
|
+
const align = (0, exports.verticalAlignment)(g, adjustedLayering, conflicts, neighborFn);
|
|
354
|
+
const xs = (0, exports.horizontalCompaction)(g, adjustedLayering, align.root, align.align, nodesep, edgesep, horiz === 'r');
|
|
355
|
+
if (horiz === 'r') {
|
|
356
|
+
Object.keys(xs).forEach((key) => {
|
|
346
357
|
xs[key] = -xs[key];
|
|
347
358
|
});
|
|
348
359
|
}
|
|
349
360
|
xss[vert + horiz] = xs;
|
|
350
361
|
});
|
|
351
362
|
});
|
|
352
|
-
|
|
363
|
+
const smallestWidth = (0, exports.findSmallestWidthAlignment)(g, xss);
|
|
353
364
|
alignCoordinates(xss, smallestWidth);
|
|
354
|
-
return balance(xss, graphAlign);
|
|
365
|
+
return (0, exports.balance)(xss, graphAlign);
|
|
355
366
|
};
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
367
|
+
exports.positionX = positionX;
|
|
368
|
+
const sep = (nodeSep, edgeSep, reverseSep) => {
|
|
369
|
+
return (g, v, w) => {
|
|
370
|
+
const vLabel = g.getNode(v);
|
|
371
|
+
const wLabel = g.getNode(w);
|
|
372
|
+
let sum = 0;
|
|
373
|
+
let delta = 0;
|
|
362
374
|
sum += vLabel.data.width / 2;
|
|
363
|
-
if (vLabel.data.hasOwnProperty(
|
|
364
|
-
switch ((vLabel.data.labelpos ||
|
|
365
|
-
case
|
|
375
|
+
if (vLabel.data.hasOwnProperty('labelpos')) {
|
|
376
|
+
switch ((vLabel.data.labelpos || '').toLowerCase()) {
|
|
377
|
+
case 'l':
|
|
366
378
|
delta = -vLabel.data.width / 2;
|
|
367
379
|
break;
|
|
368
|
-
case
|
|
380
|
+
case 'r':
|
|
369
381
|
delta = vLabel.data.width / 2;
|
|
370
382
|
break;
|
|
371
383
|
}
|
|
@@ -378,11 +390,11 @@ export var sep = function (nodeSep, edgeSep, reverseSep) {
|
|
|
378
390
|
sum += (wLabel.data.dummy ? edgeSep : nodeSep) / 2;
|
|
379
391
|
sum += wLabel.data.width / 2;
|
|
380
392
|
if (wLabel.data.labelpos) {
|
|
381
|
-
switch ((wLabel.data.labelpos ||
|
|
382
|
-
case
|
|
393
|
+
switch ((wLabel.data.labelpos || '').toLowerCase()) {
|
|
394
|
+
case 'l':
|
|
383
395
|
delta = wLabel.data.width / 2;
|
|
384
396
|
break;
|
|
385
|
-
case
|
|
397
|
+
case 'r':
|
|
386
398
|
delta = -wLabel.data.width / 2;
|
|
387
399
|
break;
|
|
388
400
|
}
|
|
@@ -394,5 +406,7 @@ export var sep = function (nodeSep, edgeSep, reverseSep) {
|
|
|
394
406
|
return sum;
|
|
395
407
|
};
|
|
396
408
|
};
|
|
397
|
-
|
|
409
|
+
exports.sep = sep;
|
|
410
|
+
const width = (g, v) => g.getNode(v).data.width || 0;
|
|
411
|
+
exports.width = width;
|
|
398
412
|
//# sourceMappingURL=bk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bk.js","sourceRoot":"","sources":["../../../src/antv-dagre/position/bk.ts"],"names":[],"mappings":"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"}
|