@dpuse/dpuse-tool-d3-visualiser 0.0.18 → 0.0.22
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/README.md +223 -223
- package/dist/dpuse-tool-d3-visualiser.es.js +3 -3
- package/dist/{erdDiagram-b-qDkEhY.js → erdDiagram-C-wRJWHp.js} +747 -458
- package/dist/erdDiagram-C-wRJWHp.js.map +1 -0
- package/dist/link-20hHJfDf.js +65 -0
- package/dist/link-20hHJfDf.js.map +1 -0
- package/dist/point-BwTGxj8U.js +40 -0
- package/dist/point-BwTGxj8U.js.map +1 -0
- package/dist/{sankeyDiagram-Dgf87Zt4.js → sankeyDiagram-DDZfWF8l.js} +2 -2
- package/dist/{sankeyDiagram-Dgf87Zt4.js.map → sankeyDiagram-DDZfWF8l.js.map} +1 -1
- package/dist/{treeDiagram-BJ_QF4os.js → treeDiagram-C8jl6ALp.js} +2 -2
- package/dist/{treeDiagram-BJ_QF4os.js.map → treeDiagram-C8jl6ALp.js.map} +1 -1
- package/dist/types/src/erdDiagram.d.ts +4 -0
- package/package.json +2 -2
- package/dist/bump-znhpCF6A.js +0 -75
- package/dist/bump-znhpCF6A.js.map +0 -1
- package/dist/erdDiagram-b-qDkEhY.js.map +0 -1
- package/dist/link-Dti9fi9g.js +0 -33
- package/dist/link-Dti9fi9g.js.map +0 -1
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import { t as e } from "./select-BIuoFcZG.js";
|
|
2
|
-
import { a as t,
|
|
3
|
-
import { t as
|
|
2
|
+
import { a as t, n, o as r, r as i, t as a } from "./point-BwTGxj8U.js";
|
|
3
|
+
import { t as o } from "./linear-J4iYa1Bf.js";
|
|
4
4
|
//#region node_modules/d3-shape/src/line.js
|
|
5
|
-
function
|
|
6
|
-
var c =
|
|
7
|
-
e = typeof e == "function" ? e : e === void 0 ? a :
|
|
8
|
-
function p(
|
|
9
|
-
var
|
|
10
|
-
for (l ?? (d = u(p = f())),
|
|
5
|
+
function s(e, s) {
|
|
6
|
+
var c = r(!0), l = null, u = o, d = null, f = t(p);
|
|
7
|
+
e = typeof e == "function" ? e : e === void 0 ? a : r(e), s = typeof s == "function" ? s : s === void 0 ? n : r(s);
|
|
8
|
+
function p(t) {
|
|
9
|
+
var n, r = (t = i(t)).length, a, o = !1, p;
|
|
10
|
+
for (l ?? (d = u(p = f())), n = 0; n <= r; ++n) !(n < r && c(a = t[n], n, t)) === o && ((o = !o) ? d.lineStart() : d.lineEnd()), o && d.point(+e(a, n, t), +s(a, n, t));
|
|
11
11
|
if (p) return d = null, p + "" || null;
|
|
12
12
|
}
|
|
13
13
|
return p.x = function(t) {
|
|
14
|
-
return arguments.length ? (e = typeof t == "function" ? t :
|
|
14
|
+
return arguments.length ? (e = typeof t == "function" ? t : r(+t), p) : e;
|
|
15
15
|
}, p.y = function(e) {
|
|
16
|
-
return arguments.length ? (
|
|
16
|
+
return arguments.length ? (s = typeof e == "function" ? e : r(+e), p) : s;
|
|
17
17
|
}, p.defined = function(e) {
|
|
18
|
-
return arguments.length ? (c = typeof e == "function" ? e :
|
|
18
|
+
return arguments.length ? (c = typeof e == "function" ? e : r(!!e), p) : c;
|
|
19
19
|
}, p.curve = function(e) {
|
|
20
20
|
return arguments.length ? (u = e, l != null && (d = u(l)), p) : u;
|
|
21
21
|
}, p.context = function(e) {
|
|
@@ -24,29 +24,29 @@ function c(e, i) {
|
|
|
24
24
|
}
|
|
25
25
|
//#endregion
|
|
26
26
|
//#region node_modules/@dagrejs/dagre/dist/dagre.esm.js
|
|
27
|
-
var
|
|
27
|
+
var c = Object.defineProperty, l = (e, t, n) => t in e ? c(e, t, {
|
|
28
28
|
enumerable: !0,
|
|
29
29
|
configurable: !0,
|
|
30
30
|
writable: !0,
|
|
31
31
|
value: n
|
|
32
|
-
}) : e[t] = n,
|
|
33
|
-
for (var n in t)
|
|
32
|
+
}) : e[t] = n, u = (e, t) => {
|
|
33
|
+
for (var n in t) c(e, n, {
|
|
34
34
|
get: t[n],
|
|
35
35
|
enumerable: !0
|
|
36
36
|
});
|
|
37
|
-
},
|
|
38
|
-
|
|
39
|
-
Graph: () =>
|
|
37
|
+
}, d = (e, t, n) => l(e, typeof t == "symbol" ? t : t + "", n), f = {};
|
|
38
|
+
u(f, {
|
|
39
|
+
Graph: () => h,
|
|
40
40
|
alg: () => S,
|
|
41
|
-
json: () =>
|
|
42
|
-
version: () =>
|
|
41
|
+
json: () => ee,
|
|
42
|
+
version: () => x
|
|
43
43
|
});
|
|
44
|
-
var
|
|
45
|
-
for (var n in t)
|
|
44
|
+
var p = Object.defineProperty, m = (e, t) => {
|
|
45
|
+
for (var n in t) p(e, n, {
|
|
46
46
|
get: t[n],
|
|
47
47
|
enumerable: !0
|
|
48
48
|
});
|
|
49
|
-
},
|
|
49
|
+
}, h = class {
|
|
50
50
|
constructor(e) {
|
|
51
51
|
this._isDirected = !0, this._isMultigraph = !1, this._isCompound = !1, this._nodes = {}, this._in = {}, this._preds = {}, this._out = {}, this._sucs = {}, this._edgeObjs = {}, this._edgeLabels = {}, this._nodeCount = 0, this._edgeCount = 0, this._defaultNodeLabelFn = () => {}, this._defaultEdgeLabelFn = () => {}, e && (this._isDirected = "directed" in e ? e.directed : !0, this._isMultigraph = "multigraph" in e && e.multigraph, this._isCompound = "compound" in e && e.compound), this._isCompound && (this._parent = {}, this._children = {}, this._children["\0"] = {});
|
|
52
52
|
}
|
|
@@ -181,15 +181,15 @@ var m = Object.defineProperty, h = (e, t) => {
|
|
|
181
181
|
setEdge(e, t, n, r) {
|
|
182
182
|
let i, a, o, s, c = !1;
|
|
183
183
|
typeof e == "object" && e && "v" in e ? (i = e.v, a = e.w, o = e.name, arguments.length === 2 && (s = t, c = !0)) : (i = e, a = t, o = r, arguments.length > 2 && (s = n, c = !0)), i = "" + i, a = "" + a, o !== void 0 && (o = "" + o);
|
|
184
|
-
let l =
|
|
184
|
+
let l = v(this._isDirected, i, a, o);
|
|
185
185
|
if (l in this._edgeLabels) return c && (this._edgeLabels[l] = s), this;
|
|
186
186
|
if (o !== void 0 && !this._isMultigraph) throw Error("Cannot set a named edge when isMultigraph = false");
|
|
187
187
|
this.setNode(i), this.setNode(a), this._edgeLabels[l] = c ? s : this._defaultEdgeLabelFn(i, a, o);
|
|
188
|
-
let u =
|
|
189
|
-
return i = u.v, a = u.w, Object.freeze(u), this._edgeObjs[l] = u,
|
|
188
|
+
let u = y(this._isDirected, i, a, o);
|
|
189
|
+
return i = u.v, a = u.w, Object.freeze(u), this._edgeObjs[l] = u, g(this._preds[a], i), g(this._sucs[i], a), this._in[a][l] = u, this._out[i][l] = u, this._edgeCount++, this;
|
|
190
190
|
}
|
|
191
191
|
edge(e, t, n) {
|
|
192
|
-
let r = arguments.length === 1 ?
|
|
192
|
+
let r = arguments.length === 1 ? b(this._isDirected, e) : v(this._isDirected, e, t, n);
|
|
193
193
|
return this._edgeLabels[r];
|
|
194
194
|
}
|
|
195
195
|
edgeAsObj(e, t, n) {
|
|
@@ -197,13 +197,13 @@ var m = Object.defineProperty, h = (e, t) => {
|
|
|
197
197
|
return typeof r == "object" ? r : { label: r };
|
|
198
198
|
}
|
|
199
199
|
hasEdge(e, t, n) {
|
|
200
|
-
return (arguments.length === 1 ?
|
|
200
|
+
return (arguments.length === 1 ? b(this._isDirected, e) : v(this._isDirected, e, t, n)) in this._edgeLabels;
|
|
201
201
|
}
|
|
202
202
|
removeEdge(e, t, n) {
|
|
203
|
-
let r = arguments.length === 1 ?
|
|
203
|
+
let r = arguments.length === 1 ? b(this._isDirected, e) : v(this._isDirected, e, t, n), i = this._edgeObjs[r];
|
|
204
204
|
if (i) {
|
|
205
205
|
let e = i.v, t = i.w;
|
|
206
|
-
delete this._edgeLabels[r], delete this._edgeObjs[r],
|
|
206
|
+
delete this._edgeLabels[r], delete this._edgeObjs[r], _(this._preds[t], e), _(this._sucs[e], t), delete this._in[t][r], delete this._out[e][r], this._edgeCount--;
|
|
207
207
|
}
|
|
208
208
|
return this;
|
|
209
209
|
}
|
|
@@ -228,13 +228,13 @@ var m = Object.defineProperty, h = (e, t) => {
|
|
|
228
228
|
return n ? r.filter((e) => e.v === t && e.w === n || e.v === n && e.w === t) : r;
|
|
229
229
|
}
|
|
230
230
|
};
|
|
231
|
-
function
|
|
231
|
+
function g(e, t) {
|
|
232
232
|
e[t] ? e[t]++ : e[t] = 1;
|
|
233
233
|
}
|
|
234
|
-
function
|
|
234
|
+
function _(e, t) {
|
|
235
235
|
e[t] !== void 0 && !--e[t] && delete e[t];
|
|
236
236
|
}
|
|
237
|
-
function
|
|
237
|
+
function v(e, t, n, r) {
|
|
238
238
|
let i = "" + t, a = "" + n;
|
|
239
239
|
if (!e && i > a) {
|
|
240
240
|
let e = i;
|
|
@@ -242,7 +242,7 @@ function y(e, t, n, r) {
|
|
|
242
242
|
}
|
|
243
243
|
return i + "" + a + "" + (r === void 0 ? "\0" : r);
|
|
244
244
|
}
|
|
245
|
-
function
|
|
245
|
+
function y(e, t, n, r) {
|
|
246
246
|
let i = "" + t, a = "" + n;
|
|
247
247
|
if (!e && i > a) {
|
|
248
248
|
let e = i;
|
|
@@ -254,33 +254,33 @@ function b(e, t, n, r) {
|
|
|
254
254
|
};
|
|
255
255
|
return r && (o.name = r), o;
|
|
256
256
|
}
|
|
257
|
-
function
|
|
258
|
-
return
|
|
257
|
+
function b(e, t) {
|
|
258
|
+
return v(e, t.v, t.w, t.name);
|
|
259
259
|
}
|
|
260
|
-
var
|
|
261
|
-
|
|
262
|
-
read: () =>
|
|
263
|
-
write: () =>
|
|
260
|
+
var x = "4.0.1", ee = {};
|
|
261
|
+
m(ee, {
|
|
262
|
+
read: () => ie,
|
|
263
|
+
write: () => te
|
|
264
264
|
});
|
|
265
|
-
function
|
|
265
|
+
function te(e) {
|
|
266
266
|
let t = {
|
|
267
267
|
options: {
|
|
268
268
|
directed: e.isDirected(),
|
|
269
269
|
multigraph: e.isMultigraph(),
|
|
270
270
|
compound: e.isCompound()
|
|
271
271
|
},
|
|
272
|
-
nodes:
|
|
273
|
-
edges:
|
|
272
|
+
nodes: ne(e),
|
|
273
|
+
edges: re(e)
|
|
274
274
|
}, n = e.graph();
|
|
275
275
|
return n !== void 0 && (t.value = structuredClone(n)), t;
|
|
276
276
|
}
|
|
277
|
-
function
|
|
277
|
+
function ne(e) {
|
|
278
278
|
return e.nodes().map((t) => {
|
|
279
279
|
let n = e.node(t), r = e.parent(t), i = { v: t };
|
|
280
280
|
return n !== void 0 && (i.value = n), r !== void 0 && (i.parent = r), i;
|
|
281
281
|
});
|
|
282
282
|
}
|
|
283
|
-
function
|
|
283
|
+
function re(e) {
|
|
284
284
|
return e.edges().map((t) => {
|
|
285
285
|
let n = e.edge(t), r = {
|
|
286
286
|
v: t.v,
|
|
@@ -289,8 +289,8 @@ function ie(e) {
|
|
|
289
289
|
return t.name !== void 0 && (r.name = t.name), n !== void 0 && (r.value = n), r;
|
|
290
290
|
});
|
|
291
291
|
}
|
|
292
|
-
function
|
|
293
|
-
let t = new
|
|
292
|
+
function ie(e) {
|
|
293
|
+
let t = new h(e.options);
|
|
294
294
|
return e.value !== void 0 && t.setGraph(e.value), e.nodes.forEach((e) => {
|
|
295
295
|
t.setNode(e.v, e.value), e.parent && t.setParent(e.v, e.parent);
|
|
296
296
|
}), e.edges.forEach((e) => {
|
|
@@ -302,29 +302,29 @@ function ae(e) {
|
|
|
302
302
|
}), t;
|
|
303
303
|
}
|
|
304
304
|
var S = {};
|
|
305
|
-
|
|
305
|
+
m(S, {
|
|
306
306
|
CycleException: () => T,
|
|
307
307
|
bellmanFord: () => C,
|
|
308
|
-
components: () =>
|
|
308
|
+
components: () => se,
|
|
309
309
|
dijkstra: () => w,
|
|
310
|
-
dijkstraAll: () =>
|
|
311
|
-
findCycles: () =>
|
|
312
|
-
floydWarshall: () =>
|
|
313
|
-
isAcyclic: () =>
|
|
314
|
-
postorder: () =>
|
|
315
|
-
preorder: () =>
|
|
316
|
-
prim: () =>
|
|
317
|
-
shortestPaths: () =>
|
|
318
|
-
tarjan: () =>
|
|
319
|
-
topsort: () =>
|
|
310
|
+
dijkstraAll: () => de,
|
|
311
|
+
findCycles: () => pe,
|
|
312
|
+
floydWarshall: () => he,
|
|
313
|
+
isAcyclic: () => ve,
|
|
314
|
+
postorder: () => Se,
|
|
315
|
+
preorder: () => Ce,
|
|
316
|
+
prim: () => we,
|
|
317
|
+
shortestPaths: () => Te,
|
|
318
|
+
tarjan: () => fe,
|
|
319
|
+
topsort: () => _e
|
|
320
320
|
});
|
|
321
|
-
var
|
|
321
|
+
var ae = () => 1;
|
|
322
322
|
function C(e, t, n, r) {
|
|
323
|
-
return
|
|
323
|
+
return oe(e, String(t), n || ae, r || function(t) {
|
|
324
324
|
return e.outEdges(t);
|
|
325
325
|
});
|
|
326
326
|
}
|
|
327
|
-
function
|
|
327
|
+
function oe(e, t, n, r) {
|
|
328
328
|
let i = {}, a, o = 0, s = e.nodes(), c = function(e) {
|
|
329
329
|
let t = n(e);
|
|
330
330
|
i[e.v].distance + t < i[e.w].distance && (i[e.w] = {
|
|
@@ -353,7 +353,7 @@ function se(e, t, n, r) {
|
|
|
353
353
|
if (o === u - 1 && (a = !1, l(), a)) throw Error("The graph contains a negative weight cycle");
|
|
354
354
|
return i;
|
|
355
355
|
}
|
|
356
|
-
function
|
|
356
|
+
function se(e) {
|
|
357
357
|
let t = {}, n = [], r;
|
|
358
358
|
function i(n) {
|
|
359
359
|
n in t || (t[n] = !0, r.push(n), e.successors(n).forEach(i), e.predecessors(n).forEach(i));
|
|
@@ -362,7 +362,7 @@ function ce(e) {
|
|
|
362
362
|
r = [], i(e), r.length && n.push(r);
|
|
363
363
|
}), n;
|
|
364
364
|
}
|
|
365
|
-
var
|
|
365
|
+
var ce = class {
|
|
366
366
|
constructor() {
|
|
367
367
|
this._arr = [], this._keyIndices = {};
|
|
368
368
|
}
|
|
@@ -418,14 +418,14 @@ var le = class {
|
|
|
418
418
|
let n = this._arr, r = this._keyIndices, i = n[e], a = n[t];
|
|
419
419
|
n[e] = a, n[t] = i, r[a.key] = e, r[i.key] = t;
|
|
420
420
|
}
|
|
421
|
-
},
|
|
421
|
+
}, le = () => 1;
|
|
422
422
|
function w(e, t, n, r) {
|
|
423
|
-
return
|
|
423
|
+
return ue(e, String(t), n || le, r || function(t) {
|
|
424
424
|
return e.outEdges(t);
|
|
425
425
|
});
|
|
426
426
|
}
|
|
427
|
-
function
|
|
428
|
-
let i = {}, a = new
|
|
427
|
+
function ue(e, t, n, r) {
|
|
428
|
+
let i = {}, a = new ce(), o, s, c = function(e) {
|
|
429
429
|
let t = e.v === o ? e.w : e.v, r = i[t], c = n(e), l = s.distance + c;
|
|
430
430
|
if (c < 0) throw Error("dijkstra does not allow negative edge weights. Bad edge: " + e + " Weight: " + c);
|
|
431
431
|
l < r.distance && (r.distance = l, r.predecessor = o, a.decrease(t, l));
|
|
@@ -439,12 +439,12 @@ function de(e, t, n, r) {
|
|
|
439
439
|
}); a.size() > 0 && (o = a.removeMin(), s = i[o], s.distance !== Infinity);) r(o).forEach(c);
|
|
440
440
|
return i;
|
|
441
441
|
}
|
|
442
|
-
function
|
|
442
|
+
function de(e, t, n) {
|
|
443
443
|
return e.nodes().reduce(function(r, i) {
|
|
444
444
|
return r[i] = w(e, i, t, n), r;
|
|
445
445
|
}, {});
|
|
446
446
|
}
|
|
447
|
-
function
|
|
447
|
+
function fe(e) {
|
|
448
448
|
let t = 0, n = [], r = {}, i = [];
|
|
449
449
|
function a(o) {
|
|
450
450
|
let s = r[o] = {
|
|
@@ -466,18 +466,18 @@ function pe(e) {
|
|
|
466
466
|
e in r || a(e);
|
|
467
467
|
}), i;
|
|
468
468
|
}
|
|
469
|
-
function
|
|
470
|
-
return
|
|
469
|
+
function pe(e) {
|
|
470
|
+
return fe(e).filter(function(t) {
|
|
471
471
|
return t.length > 1 || t.length === 1 && e.hasEdge(t[0], t[0]);
|
|
472
472
|
});
|
|
473
473
|
}
|
|
474
|
-
var
|
|
475
|
-
function
|
|
476
|
-
return
|
|
474
|
+
var me = () => 1;
|
|
475
|
+
function he(e, t, n) {
|
|
476
|
+
return ge(e, t || me, n || function(t) {
|
|
477
477
|
return e.outEdges(t);
|
|
478
478
|
});
|
|
479
479
|
}
|
|
480
|
-
function
|
|
480
|
+
function ge(e, t, n) {
|
|
481
481
|
let r = {}, i = e.nodes();
|
|
482
482
|
return i.forEach(function(e) {
|
|
483
483
|
r[e] = {}, r[e][e] = {
|
|
@@ -511,7 +511,7 @@ var T = class extends Error {
|
|
|
511
511
|
super(...e);
|
|
512
512
|
}
|
|
513
513
|
};
|
|
514
|
-
function
|
|
514
|
+
function _e(e) {
|
|
515
515
|
let t = {}, n = {}, r = [];
|
|
516
516
|
function i(a) {
|
|
517
517
|
if (a in n) throw new T();
|
|
@@ -520,41 +520,41 @@ function ve(e) {
|
|
|
520
520
|
if (e.sinks().forEach(i), Object.keys(t).length !== e.nodeCount()) throw new T();
|
|
521
521
|
return r;
|
|
522
522
|
}
|
|
523
|
-
function
|
|
523
|
+
function ve(e) {
|
|
524
524
|
try {
|
|
525
|
-
|
|
525
|
+
_e(e);
|
|
526
526
|
} catch (e) {
|
|
527
527
|
if (e instanceof T) return !1;
|
|
528
528
|
throw e;
|
|
529
529
|
}
|
|
530
530
|
return !0;
|
|
531
531
|
}
|
|
532
|
-
function
|
|
532
|
+
function ye(e, t, n, r, i) {
|
|
533
533
|
Array.isArray(t) || (t = [t]);
|
|
534
534
|
let a = ((t) => (e.isDirected() ? e.successors(t) : e.neighbors(t)) ?? []), o = {};
|
|
535
535
|
return t.forEach(function(t) {
|
|
536
536
|
if (!e.hasNode(t)) throw Error("Graph does not have node: " + t);
|
|
537
|
-
i =
|
|
537
|
+
i = be(e, t, n === "post", o, a, r, i);
|
|
538
538
|
}), i;
|
|
539
539
|
}
|
|
540
|
-
function
|
|
540
|
+
function be(e, t, n, r, i, a, o) {
|
|
541
541
|
return t in r || (r[t] = !0, n || (o = a(o, t)), i(t).forEach(function(t) {
|
|
542
|
-
o =
|
|
542
|
+
o = be(e, t, n, r, i, a, o);
|
|
543
543
|
}), n && (o = a(o, t))), o;
|
|
544
544
|
}
|
|
545
|
-
function
|
|
546
|
-
return
|
|
545
|
+
function xe(e, t, n) {
|
|
546
|
+
return ye(e, t, n, function(e, t) {
|
|
547
547
|
return e.push(t), e;
|
|
548
548
|
}, []);
|
|
549
549
|
}
|
|
550
|
-
function xe(e, t) {
|
|
551
|
-
return D(e, t, "post");
|
|
552
|
-
}
|
|
553
550
|
function Se(e, t) {
|
|
554
|
-
return
|
|
551
|
+
return xe(e, t, "post");
|
|
555
552
|
}
|
|
556
553
|
function Ce(e, t) {
|
|
557
|
-
|
|
554
|
+
return xe(e, t, "pre");
|
|
555
|
+
}
|
|
556
|
+
function we(e, t) {
|
|
557
|
+
let n = new h(), r = {}, i = new ce(), a;
|
|
558
558
|
function o(e) {
|
|
559
559
|
let n = e.v === a ? e.w : e.v, o = i.priority(n);
|
|
560
560
|
if (o !== void 0) {
|
|
@@ -577,10 +577,10 @@ function Ce(e, t) {
|
|
|
577
577
|
}
|
|
578
578
|
return n;
|
|
579
579
|
}
|
|
580
|
-
function we(e, t, n, r) {
|
|
581
|
-
return Te(e, t, n, r ?? ((t) => e.outEdges(t) ?? []));
|
|
582
|
-
}
|
|
583
580
|
function Te(e, t, n, r) {
|
|
581
|
+
return Ee(e, t, n, r ?? ((t) => e.outEdges(t) ?? []));
|
|
582
|
+
}
|
|
583
|
+
function Ee(e, t, n, r) {
|
|
584
584
|
if (n === void 0) return w(e, t, n, r);
|
|
585
585
|
let i = !1, a = e.nodes();
|
|
586
586
|
for (let o = 0; o < a.length; o++) {
|
|
@@ -596,13 +596,13 @@ function Te(e, t, n, r) {
|
|
|
596
596
|
}
|
|
597
597
|
return w(e, t, n, r);
|
|
598
598
|
}
|
|
599
|
-
function
|
|
599
|
+
function E(e, t, n, r) {
|
|
600
600
|
let i = r;
|
|
601
|
-
for (; e.hasNode(i);) i =
|
|
601
|
+
for (; e.hasNode(i);) i = P(r);
|
|
602
602
|
return n.dummy = t, e.setNode(i, n), i;
|
|
603
603
|
}
|
|
604
|
-
function
|
|
605
|
-
let t = new
|
|
604
|
+
function De(e) {
|
|
605
|
+
let t = new h().setGraph(e.graph());
|
|
606
606
|
return e.nodes().forEach((n) => t.setNode(n, e.node(n))), e.edges().forEach((n) => {
|
|
607
607
|
let r = t.edge(n.v, n.w) || {
|
|
608
608
|
weight: 0,
|
|
@@ -614,15 +614,15 @@ function Ee(e) {
|
|
|
614
614
|
});
|
|
615
615
|
}), t;
|
|
616
616
|
}
|
|
617
|
-
function
|
|
618
|
-
let t = new
|
|
617
|
+
function D(e) {
|
|
618
|
+
let t = new h({ multigraph: e.isMultigraph() }).setGraph(e.graph());
|
|
619
619
|
return e.nodes().forEach((n) => {
|
|
620
620
|
e.children(n).length || t.setNode(n, e.node(n));
|
|
621
621
|
}), e.edges().forEach((n) => {
|
|
622
622
|
t.setEdge(n, e.edge(n));
|
|
623
623
|
}), t;
|
|
624
624
|
}
|
|
625
|
-
function
|
|
625
|
+
function O(e, t) {
|
|
626
626
|
let n = e.x, r = e.y, i = t.x - n, a = t.y - r, o = e.width / 2, s = e.height / 2;
|
|
627
627
|
if (!i && !a) throw Error("Not possible to find intersection inside of the rectangle");
|
|
628
628
|
let c, l;
|
|
@@ -631,25 +631,25 @@ function A(e, t) {
|
|
|
631
631
|
y: r + l
|
|
632
632
|
};
|
|
633
633
|
}
|
|
634
|
-
function
|
|
635
|
-
let t =
|
|
634
|
+
function k(e) {
|
|
635
|
+
let t = F(N(e) + 1).map(() => []);
|
|
636
636
|
return e.nodes().forEach((n) => {
|
|
637
637
|
let r = e.node(n), i = r.rank;
|
|
638
638
|
i !== void 0 && (t[i] || (t[i] = []), t[i][r.order] = n);
|
|
639
639
|
}), t;
|
|
640
640
|
}
|
|
641
|
-
function
|
|
641
|
+
function Oe(e) {
|
|
642
642
|
let t = e.nodes().map((t) => {
|
|
643
643
|
let n = e.node(t).rank;
|
|
644
644
|
return n === void 0 ? Number.MAX_VALUE : n;
|
|
645
|
-
}), n =
|
|
645
|
+
}), n = M(Math.min, t);
|
|
646
646
|
e.nodes().forEach((t) => {
|
|
647
647
|
let r = e.node(t);
|
|
648
648
|
Object.hasOwn(r, "rank") && (r.rank -= n);
|
|
649
649
|
});
|
|
650
650
|
}
|
|
651
|
-
function
|
|
652
|
-
let t = e.nodes().map((t) => e.node(t).rank).filter((e) => e !== void 0), n =
|
|
651
|
+
function ke(e) {
|
|
652
|
+
let t = e.nodes().map((t) => e.node(t).rank).filter((e) => e !== void 0), n = M(Math.min, t), r = [];
|
|
653
653
|
e.nodes().forEach((t) => {
|
|
654
654
|
let i = e.node(t).rank - n;
|
|
655
655
|
r[i] || (r[i] = []), r[i].push(t);
|
|
@@ -659,14 +659,14 @@ function Oe(e) {
|
|
|
659
659
|
t === void 0 && n % a !== 0 ? --i : t !== void 0 && i && t.forEach((t) => e.node(t).rank += i);
|
|
660
660
|
});
|
|
661
661
|
}
|
|
662
|
-
function
|
|
662
|
+
function A(e, t, n, r) {
|
|
663
663
|
let i = {
|
|
664
664
|
width: 0,
|
|
665
665
|
height: 0
|
|
666
666
|
};
|
|
667
|
-
return arguments.length >= 4 && (i.rank = n, i.order = r),
|
|
667
|
+
return arguments.length >= 4 && (i.rank = n, i.order = r), E(e, "border", i, t);
|
|
668
668
|
}
|
|
669
|
-
function
|
|
669
|
+
function Ae(e, t = j) {
|
|
670
670
|
let n = [];
|
|
671
671
|
for (let r = 0; r < e.length; r += t) {
|
|
672
672
|
let i = e.slice(r, r + t);
|
|
@@ -674,18 +674,18 @@ function ke(e, t = N) {
|
|
|
674
674
|
}
|
|
675
675
|
return n;
|
|
676
676
|
}
|
|
677
|
-
var
|
|
678
|
-
function
|
|
679
|
-
return t.length >
|
|
677
|
+
var j = 65535;
|
|
678
|
+
function M(e, t) {
|
|
679
|
+
return t.length > j ? e(...Ae(t).map((t) => e(...t))) : e(...t);
|
|
680
680
|
}
|
|
681
|
-
function
|
|
681
|
+
function N(e) {
|
|
682
682
|
let t = e.nodes().map((t) => {
|
|
683
683
|
let n = e.node(t).rank;
|
|
684
684
|
return n === void 0 ? Number.MIN_VALUE : n;
|
|
685
685
|
});
|
|
686
|
-
return
|
|
686
|
+
return M(Math.max, t);
|
|
687
687
|
}
|
|
688
|
-
function
|
|
688
|
+
function je(e, t) {
|
|
689
689
|
let n = {
|
|
690
690
|
lhs: [],
|
|
691
691
|
rhs: []
|
|
@@ -694,22 +694,14 @@ function Ae(e, t) {
|
|
|
694
694
|
t(e) ? n.lhs.push(e) : n.rhs.push(e);
|
|
695
695
|
}), n;
|
|
696
696
|
}
|
|
697
|
-
function je(e, t) {
|
|
698
|
-
let n = Date.now();
|
|
699
|
-
try {
|
|
700
|
-
return t();
|
|
701
|
-
} finally {
|
|
702
|
-
console.log(e + " time: " + (Date.now() - n) + "ms");
|
|
703
|
-
}
|
|
704
|
-
}
|
|
705
697
|
function Me(e, t) {
|
|
706
698
|
return t();
|
|
707
699
|
}
|
|
708
700
|
var Ne = 0;
|
|
709
|
-
function
|
|
701
|
+
function P(e) {
|
|
710
702
|
return e + ("" + ++Ne);
|
|
711
703
|
}
|
|
712
|
-
function
|
|
704
|
+
function F(e, t, n = 1) {
|
|
713
705
|
t ?? (t = e, e = 0);
|
|
714
706
|
let r = (e) => e < t;
|
|
715
707
|
n < 0 && (r = (e) => t < e);
|
|
@@ -717,21 +709,31 @@ function L(e, t, n = 1) {
|
|
|
717
709
|
for (let t = e; r(t); t += n) i.push(t);
|
|
718
710
|
return i;
|
|
719
711
|
}
|
|
720
|
-
function
|
|
712
|
+
function I(e, t) {
|
|
721
713
|
let n = {};
|
|
722
714
|
for (let r of t) e[r] !== void 0 && (n[r] = e[r]);
|
|
723
715
|
return n;
|
|
724
716
|
}
|
|
725
|
-
function
|
|
717
|
+
function L(e, t) {
|
|
726
718
|
let n;
|
|
727
719
|
return n = typeof t == "string" ? (e) => e[t] : t, Object.entries(e).reduce((e, [t, r]) => (e[t] = n(r, t), e), {});
|
|
728
720
|
}
|
|
729
721
|
function Pe(e, t) {
|
|
730
722
|
return e.reduce((e, n, r) => (e[n] = t[r], e), {});
|
|
731
723
|
}
|
|
732
|
-
var
|
|
724
|
+
var R = "\0";
|
|
725
|
+
function z(e, t, n) {
|
|
726
|
+
if (!(e && t && n && t.dummy === "edge" && n.dummy === "edge" && t.edgeObj && n.edgeObj && e[t.edgeObj.v] && e[n.edgeObj.v] && e[t.edgeObj.w] && e[n.edgeObj.w])) return 0;
|
|
727
|
+
let r = !0;
|
|
728
|
+
t.edgeObj.w === n.edgeObj.w && (r = !1);
|
|
729
|
+
let i = r ? e[t.edgeObj.v]?.rank ?? NaN : e[t.edgeObj.w]?.rank ?? NaN, a = Object.entries(e).find((e) => e[1].edgeObj?.v === t.edgeObj.v && e[1].edgeObj?.w === t.edgeObj.w && e[1].rank === i), o = Object.entries(e).find((e) => e[1].edgeObj?.v === n.edgeObj.v && e[1].edgeObj?.w === n.edgeObj.w && e[1].rank === i);
|
|
730
|
+
if (!a || !o) return 0;
|
|
731
|
+
let s = a[1].order ?? NaN, c = o[1].order ?? NaN;
|
|
732
|
+
return isNaN(s - c) ? 0 : s - c;
|
|
733
|
+
}
|
|
734
|
+
var Fe = class {
|
|
733
735
|
constructor() {
|
|
734
|
-
|
|
736
|
+
d(this, "_sentinel");
|
|
735
737
|
let e = {};
|
|
736
738
|
e._next = e._prev = e, this._sentinel = e;
|
|
737
739
|
}
|
|
@@ -764,32 +766,32 @@ function Be(e, t) {
|
|
|
764
766
|
function Ve(e, t, n) {
|
|
765
767
|
let r = [], i = t[t.length - 1], a = t[0], o;
|
|
766
768
|
for (; e.nodeCount();) {
|
|
767
|
-
for (; o = a.dequeue();)
|
|
768
|
-
for (; o = i.dequeue();)
|
|
769
|
+
for (; o = a.dequeue();) B(e, t, n, o);
|
|
770
|
+
for (; o = i.dequeue();) B(e, t, n, o);
|
|
769
771
|
if (e.nodeCount()) {
|
|
770
772
|
for (let i = t.length - 2; i > 0; --i) if (o = t[i]?.dequeue(), o) {
|
|
771
|
-
r = r.concat(
|
|
773
|
+
r = r.concat(B(e, t, n, o, !0) || []);
|
|
772
774
|
break;
|
|
773
775
|
}
|
|
774
776
|
}
|
|
775
777
|
}
|
|
776
778
|
return r;
|
|
777
779
|
}
|
|
778
|
-
function
|
|
780
|
+
function B(e, t, n, r, i) {
|
|
779
781
|
let a = [], o = i ? a : void 0;
|
|
780
782
|
return (e.inEdges(r.v) || []).forEach((r) => {
|
|
781
783
|
let o = e.edge(r), s = e.node(r.v);
|
|
782
784
|
i && a.push({
|
|
783
785
|
v: r.v,
|
|
784
786
|
w: r.w
|
|
785
|
-
}), s.out -= o,
|
|
787
|
+
}), s.out -= o, V(t, n, s);
|
|
786
788
|
}), (e.outEdges(r.v) || []).forEach((r) => {
|
|
787
789
|
let i = e.edge(r), a = r.w, o = e.node(a);
|
|
788
|
-
o.in -= i,
|
|
790
|
+
o.in -= i, V(t, n, o);
|
|
789
791
|
}), e.removeNode(r.v), o;
|
|
790
792
|
}
|
|
791
793
|
function He(e, t) {
|
|
792
|
-
let n = new
|
|
794
|
+
let n = new h(), r = 0, i = 0;
|
|
793
795
|
e.nodes().forEach((e) => {
|
|
794
796
|
n.setNode(e, {
|
|
795
797
|
v: e,
|
|
@@ -804,14 +806,14 @@ function He(e, t) {
|
|
|
804
806
|
});
|
|
805
807
|
let a = Ue(i + r + 3).map(() => new Re()), o = r + 1;
|
|
806
808
|
return n.nodes().forEach((e) => {
|
|
807
|
-
|
|
809
|
+
V(a, o, n.node(e));
|
|
808
810
|
}), {
|
|
809
811
|
graph: n,
|
|
810
812
|
buckets: a,
|
|
811
813
|
zeroIdx: o
|
|
812
814
|
};
|
|
813
815
|
}
|
|
814
|
-
function
|
|
816
|
+
function V(e, t, n) {
|
|
815
817
|
var r, i, a;
|
|
816
818
|
n.out ? n.in ? (a = e[n.out - n.in + t]) == null || a.enqueue(n) : (i = e[e.length - 1]) == null || i.enqueue(n) : (r = e[0]) == null || r.enqueue(n);
|
|
817
819
|
}
|
|
@@ -820,23 +822,30 @@ function Ue(e) {
|
|
|
820
822
|
for (let n = 0; n < e; n++) t.push(n);
|
|
821
823
|
return t;
|
|
822
824
|
}
|
|
823
|
-
function We(e) {
|
|
824
|
-
(e.graph().acyclicer === "greedy" ? Be(e,
|
|
825
|
+
function We(e, t) {
|
|
826
|
+
(e.graph().acyclicer === "greedy" ? Be(e, n(e)) : Ge(e, t ?? null)).forEach((t) => {
|
|
825
827
|
let n = e.edge(t);
|
|
826
|
-
e.removeEdge(t), n.forwardName = t.name, n.reversed = !0, e.setEdge(t.w, t.v, n,
|
|
828
|
+
e.removeEdge(t), n.forwardName = t.name, n.reversed = !0, e.setEdge(t.w, t.v, n, P("rev"));
|
|
827
829
|
});
|
|
828
|
-
function
|
|
830
|
+
function n(e) {
|
|
829
831
|
return (t) => e.edge(t).weight;
|
|
830
832
|
}
|
|
831
833
|
}
|
|
832
|
-
function Ge(e) {
|
|
833
|
-
let
|
|
834
|
-
function
|
|
835
|
-
Object.hasOwn(
|
|
836
|
-
Object.hasOwn(
|
|
837
|
-
}), delete
|
|
834
|
+
function Ge(e, t) {
|
|
835
|
+
let n = [], r = {}, i = {};
|
|
836
|
+
function a(t) {
|
|
837
|
+
Object.hasOwn(i, t) || (i[t] = !0, r[t] = !0, e.outEdges(t).forEach((e) => {
|
|
838
|
+
Object.hasOwn(r, e.w) ? n.push(e) : a(e.w);
|
|
839
|
+
}), delete r[t]);
|
|
840
|
+
}
|
|
841
|
+
function o(a) {
|
|
842
|
+
var s;
|
|
843
|
+
Object.hasOwn(i, a) || (i[a] = !0, r[a] = !0, (s = e.outEdges(a)) == null || s.forEach((i) => {
|
|
844
|
+
Object.hasOwn(r, i.w) || t.node(a)?.rank > t.node(i.w)?.rank && qe(e, i.w, i) ? n.push(i) : o(i.w);
|
|
845
|
+
}), delete r[a]);
|
|
838
846
|
}
|
|
839
|
-
|
|
847
|
+
let s = a;
|
|
848
|
+
return t && typeof t.node == "function" && (s = o), e.sources().forEach(s), e.nodes().forEach(s), n;
|
|
840
849
|
}
|
|
841
850
|
function Ke(e) {
|
|
842
851
|
e.edges().forEach((t) => {
|
|
@@ -848,10 +857,20 @@ function Ke(e) {
|
|
|
848
857
|
}
|
|
849
858
|
});
|
|
850
859
|
}
|
|
851
|
-
function qe(e) {
|
|
852
|
-
|
|
860
|
+
function qe(e, t, n) {
|
|
861
|
+
let r = /* @__PURE__ */ new Set();
|
|
862
|
+
function i(t) {
|
|
863
|
+
if (e.sources().includes(t)) return !0;
|
|
864
|
+
r.add(t);
|
|
865
|
+
for (let a of e.inEdges(t) ?? []) if ((a.v !== n.v || a.w !== n.w) && !r.has(a.v) && i(a.v)) return !0;
|
|
866
|
+
return !1;
|
|
867
|
+
}
|
|
868
|
+
return i(t);
|
|
869
|
+
}
|
|
870
|
+
function Je(e) {
|
|
871
|
+
e.graph().dummyChains = [], e.edges().forEach((t) => Ye(e, t));
|
|
853
872
|
}
|
|
854
|
-
function
|
|
873
|
+
function Ye(e, t) {
|
|
855
874
|
let n = t.v, r = e.node(n).rank, i = t.w, a = e.node(i).rank, o = t.name, s = e.edge(t), c = s.labelRank;
|
|
856
875
|
if (a === r + 1) return;
|
|
857
876
|
e.removeEdge(t);
|
|
@@ -862,10 +881,10 @@ function Je(e, t) {
|
|
|
862
881
|
edgeLabel: s,
|
|
863
882
|
edgeObj: t,
|
|
864
883
|
rank: r
|
|
865
|
-
}, l =
|
|
884
|
+
}, l = E(e, "edge", u, "_d"), r === c && (u.width = s.width, u.height = s.height, u.dummy = "edge-label", u.labelpos = s.labelpos), e.setEdge(n, l, { weight: s.weight }, o), d === 0 && e.graph().dummyChains.push(l), n = l;
|
|
866
885
|
e.setEdge(n, i, { weight: s.weight }, o);
|
|
867
886
|
}
|
|
868
|
-
function
|
|
887
|
+
function Xe(e) {
|
|
869
888
|
e.graph().dummyChains.forEach((t) => {
|
|
870
889
|
let n = e.node(t), r = n.edgeLabel, i;
|
|
871
890
|
for (e.setEdge(n.edgeObj, r); n.dummy;) i = e.successors(t)[0], e.removeNode(t), r.points.push({
|
|
@@ -874,67 +893,67 @@ function Ye(e) {
|
|
|
874
893
|
}), n.dummy === "edge-label" && (r.x = n.x, r.y = n.y, r.width = n.width, r.height = n.height), t = i, n = e.node(t);
|
|
875
894
|
});
|
|
876
895
|
}
|
|
877
|
-
function
|
|
896
|
+
function H(e) {
|
|
878
897
|
let t = {};
|
|
879
898
|
function n(r) {
|
|
880
899
|
let i = e.node(r);
|
|
881
900
|
if (Object.hasOwn(t, r)) return i.rank;
|
|
882
901
|
t[r] = !0;
|
|
883
|
-
let a = e.outEdges(r), o = a ? a.map((t) => t == null ? Infinity : n(t.w) - e.edge(t).minlen) : [], s =
|
|
902
|
+
let a = e.outEdges(r), o = a ? a.map((t) => t == null ? Infinity : n(t.w) - e.edge(t).minlen) : [], s = M(Math.min, o);
|
|
884
903
|
return s === Infinity && (s = 0), i.rank = s;
|
|
885
904
|
}
|
|
886
905
|
e.sources().forEach(n);
|
|
887
906
|
}
|
|
888
|
-
function
|
|
907
|
+
function U(e, t) {
|
|
889
908
|
return e.node(t.w).rank - e.node(t.v).rank - e.edge(t).minlen;
|
|
890
909
|
}
|
|
891
|
-
var
|
|
892
|
-
function
|
|
893
|
-
let t = new
|
|
910
|
+
var Ze = Qe;
|
|
911
|
+
function Qe(e) {
|
|
912
|
+
let t = new h({ directed: !1 }), n = e.nodes();
|
|
894
913
|
if (n.length === 0) throw Error("Graph must have at least one node");
|
|
895
914
|
let r = n[0], i = e.nodeCount();
|
|
896
915
|
t.setNode(r, {});
|
|
897
916
|
let a, o;
|
|
898
|
-
for (;
|
|
917
|
+
for (; $e(t, e) < i && (a = et(t, e), a);) o = t.hasNode(a.v) ? U(e, a) : -U(e, a), tt(t, e, o);
|
|
899
918
|
return t;
|
|
900
919
|
}
|
|
901
|
-
function
|
|
920
|
+
function $e(e, t) {
|
|
902
921
|
function n(r) {
|
|
903
922
|
let i = t.nodeEdges(r);
|
|
904
923
|
i && i.forEach((i) => {
|
|
905
924
|
let a = i.v, o = r === a ? i.w : a;
|
|
906
|
-
!e.hasNode(o) && !
|
|
925
|
+
!e.hasNode(o) && !U(t, i) && (e.setNode(o, {}), e.setEdge(r, o, {}), n(o));
|
|
907
926
|
});
|
|
908
927
|
}
|
|
909
928
|
return e.nodes().forEach(n), e.nodeCount();
|
|
910
929
|
}
|
|
911
|
-
function
|
|
930
|
+
function et(e, t) {
|
|
912
931
|
return t.edges().reduce((n, r) => {
|
|
913
932
|
let i = Infinity;
|
|
914
|
-
return e.hasNode(r.v) !== e.hasNode(r.w) && (i =
|
|
933
|
+
return e.hasNode(r.v) !== e.hasNode(r.w) && (i = U(t, r)), i < n[0] ? [i, r] : n;
|
|
915
934
|
}, [Infinity, null])[1];
|
|
916
935
|
}
|
|
917
|
-
function
|
|
936
|
+
function tt(e, t, n) {
|
|
918
937
|
e.nodes().forEach((e) => t.node(e).rank += n);
|
|
919
938
|
}
|
|
920
|
-
var { preorder:
|
|
921
|
-
|
|
922
|
-
function
|
|
923
|
-
e =
|
|
924
|
-
let t =
|
|
925
|
-
|
|
939
|
+
var { preorder: nt, postorder: rt } = S, it = W;
|
|
940
|
+
W.initLowLimValues = K, W.initCutValues = G, W.calcCutValue = ot, W.leaveEdge = ct, W.enterEdge = lt, W.exchangeEdges = ut;
|
|
941
|
+
function W(e) {
|
|
942
|
+
e = De(e), H(e);
|
|
943
|
+
let t = Ze(e);
|
|
944
|
+
K(t), G(t, e);
|
|
926
945
|
let n, r;
|
|
927
|
-
for (; n =
|
|
946
|
+
for (; n = ct(t);) r = lt(t, e, n), ut(t, e, n, r);
|
|
928
947
|
}
|
|
929
|
-
function
|
|
930
|
-
let n =
|
|
931
|
-
n = n.slice(0, n.length - 1), n.forEach((n) =>
|
|
948
|
+
function G(e, t) {
|
|
949
|
+
let n = rt(e, e.nodes());
|
|
950
|
+
n = n.slice(0, n.length - 1), n.forEach((n) => at(e, t, n));
|
|
932
951
|
}
|
|
933
|
-
function
|
|
952
|
+
function at(e, t, n) {
|
|
934
953
|
let r = e.node(n).parent, i = e.edge(n, r);
|
|
935
|
-
i.cutvalue =
|
|
954
|
+
i.cutvalue = ot(e, t, n);
|
|
936
955
|
}
|
|
937
|
-
function
|
|
956
|
+
function ot(e, t, n) {
|
|
938
957
|
let r = e.node(n).parent, i = !0, a = t.edge(n, r), o = 0;
|
|
939
958
|
a ||= (i = !1, t.edge(r, n)), o = a.weight;
|
|
940
959
|
let s = t.nodeEdges(n);
|
|
@@ -942,82 +961,82 @@ function at(e, t, n) {
|
|
|
942
961
|
let s = a.v === n, c = s ? a.w : a.v;
|
|
943
962
|
if (c !== r) {
|
|
944
963
|
let r = s === i, l = t.edge(a).weight;
|
|
945
|
-
if (o += r ? l : -l,
|
|
964
|
+
if (o += r ? l : -l, ft(e, n, c)) {
|
|
946
965
|
let t = e.edge(n, c).cutvalue;
|
|
947
966
|
o += r ? -t : t;
|
|
948
967
|
}
|
|
949
968
|
}
|
|
950
969
|
}), o;
|
|
951
970
|
}
|
|
952
|
-
function
|
|
953
|
-
arguments.length < 2 && (t = e.nodes()[0]),
|
|
971
|
+
function K(e, t) {
|
|
972
|
+
arguments.length < 2 && (t = e.nodes()[0]), st(e, {}, 1, t);
|
|
954
973
|
}
|
|
955
|
-
function
|
|
974
|
+
function st(e, t, n, r, i) {
|
|
956
975
|
let a = n, o = e.node(r);
|
|
957
976
|
t[r] = !0;
|
|
958
977
|
let s = e.neighbors(r);
|
|
959
978
|
return s && s.forEach((i) => {
|
|
960
|
-
Object.hasOwn(t, i) || (n =
|
|
979
|
+
Object.hasOwn(t, i) || (n = st(e, t, n, i, r));
|
|
961
980
|
}), o.low = a, o.lim = n++, i ? o.parent = i : delete o.parent, n;
|
|
962
981
|
}
|
|
963
|
-
function
|
|
982
|
+
function ct(e) {
|
|
964
983
|
return e.edges().find((t) => e.edge(t).cutvalue < 0);
|
|
965
984
|
}
|
|
966
|
-
function
|
|
985
|
+
function lt(e, t, n) {
|
|
967
986
|
let r = n.v, i = n.w;
|
|
968
987
|
t.hasEdge(r, i) || (r = n.w, i = n.v);
|
|
969
988
|
let a = e.node(r), o = e.node(i), s = a, c = !1;
|
|
970
|
-
return a.lim > o.lim && (s = o, c = !0), t.edges().filter((t) => c ===
|
|
989
|
+
return a.lim > o.lim && (s = o, c = !0), t.edges().filter((t) => c === pt(e, e.node(t.v), s) && c !== pt(e, e.node(t.w), s)).reduce((e, n) => U(t, n) < U(t, e) ? n : e);
|
|
971
990
|
}
|
|
972
|
-
function
|
|
991
|
+
function ut(e, t, n, r) {
|
|
973
992
|
let i = n.v, a = n.w;
|
|
974
|
-
e.removeEdge(i, a), e.setEdge(r.v, r.w, {}),
|
|
993
|
+
e.removeEdge(i, a), e.setEdge(r.v, r.w, {}), K(e), G(e, t), dt(e, t);
|
|
975
994
|
}
|
|
976
|
-
function
|
|
995
|
+
function dt(e, t) {
|
|
977
996
|
let n = e.nodes().find((t) => !e.node(t).parent);
|
|
978
997
|
if (!n) return;
|
|
979
|
-
let r =
|
|
998
|
+
let r = nt(e, [n]);
|
|
980
999
|
r = r.slice(1), r.forEach((n) => {
|
|
981
1000
|
let r = e.node(n).parent, i = t.edge(n, r), a = !1;
|
|
982
1001
|
i || (i = t.edge(r, n), a = !0), t.node(n).rank = t.node(r).rank + (a ? i.minlen : -i.minlen);
|
|
983
1002
|
});
|
|
984
1003
|
}
|
|
985
|
-
function
|
|
1004
|
+
function ft(e, t, n) {
|
|
986
1005
|
return e.hasEdge(t, n);
|
|
987
1006
|
}
|
|
988
|
-
function
|
|
1007
|
+
function pt(e, t, n) {
|
|
989
1008
|
return n.low <= t.lim && t.lim <= n.lim;
|
|
990
1009
|
}
|
|
991
|
-
var
|
|
992
|
-
function
|
|
1010
|
+
var mt = ht;
|
|
1011
|
+
function ht(e) {
|
|
993
1012
|
let t = e.graph().ranker;
|
|
994
1013
|
if (typeof t == "function") return t(e);
|
|
995
1014
|
switch (t) {
|
|
996
1015
|
case "network-simplex":
|
|
997
|
-
|
|
1016
|
+
vt(e);
|
|
998
1017
|
break;
|
|
999
1018
|
case "tight-tree":
|
|
1000
|
-
|
|
1019
|
+
_t(e);
|
|
1001
1020
|
break;
|
|
1002
1021
|
case "longest-path":
|
|
1003
|
-
|
|
1022
|
+
gt(e);
|
|
1004
1023
|
break;
|
|
1005
1024
|
case "none": break;
|
|
1006
|
-
default:
|
|
1025
|
+
default: vt(e);
|
|
1007
1026
|
}
|
|
1008
1027
|
}
|
|
1009
|
-
var
|
|
1010
|
-
function gt(e) {
|
|
1011
|
-
U(e), Xe(e);
|
|
1012
|
-
}
|
|
1028
|
+
var gt = H;
|
|
1013
1029
|
function _t(e) {
|
|
1014
|
-
|
|
1030
|
+
H(e), Ze(e);
|
|
1015
1031
|
}
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1032
|
+
function vt(e) {
|
|
1033
|
+
it(e);
|
|
1034
|
+
}
|
|
1035
|
+
var yt = bt;
|
|
1036
|
+
function bt(e) {
|
|
1037
|
+
let t = St(e), n = e.graph();
|
|
1038
|
+
Array.isArray(n.dummyChains) && n.dummyChains.forEach((n) => {
|
|
1039
|
+
let r = e.node(n), i = r.edgeObj, a = xt(e, t, i.v, i.w), o = a.path, s = a.lca, c = 0, l = o[c], u = !0;
|
|
1021
1040
|
for (; n !== i.w;) {
|
|
1022
1041
|
if (r = e.node(n), u) {
|
|
1023
1042
|
for (; (l = o[c]) !== s && e.node(l).maxRank < r.rank;) c++;
|
|
@@ -1031,7 +1050,7 @@ function yt(e) {
|
|
|
1031
1050
|
}
|
|
1032
1051
|
});
|
|
1033
1052
|
}
|
|
1034
|
-
function
|
|
1053
|
+
function xt(e, t, n, r) {
|
|
1035
1054
|
let i = [], a = [], o = Math.min(t[n].low, t[r].low), s = Math.max(t[n].lim, t[r].lim), c;
|
|
1036
1055
|
c = n;
|
|
1037
1056
|
do
|
|
@@ -1044,7 +1063,7 @@ function bt(e, t, n, r) {
|
|
|
1044
1063
|
lca: l
|
|
1045
1064
|
};
|
|
1046
1065
|
}
|
|
1047
|
-
function
|
|
1066
|
+
function St(e) {
|
|
1048
1067
|
let t = {}, n = 0;
|
|
1049
1068
|
function r(i) {
|
|
1050
1069
|
let a = n;
|
|
@@ -1053,15 +1072,17 @@ function xt(e) {
|
|
|
1053
1072
|
lim: n++
|
|
1054
1073
|
};
|
|
1055
1074
|
}
|
|
1056
|
-
return e.children(
|
|
1075
|
+
return e.children(R).forEach(r), t;
|
|
1057
1076
|
}
|
|
1058
|
-
function
|
|
1059
|
-
let t =
|
|
1077
|
+
function Ct(e) {
|
|
1078
|
+
let t = E(e, "root", {}, "_root"), n = wt(e), r = Object.values(n), i = M(Math.max, r) - 1, a = 2 * i + 1;
|
|
1060
1079
|
e.graph().nestingRoot = t, e.edges().forEach((t) => e.edge(t).minlen *= a);
|
|
1061
|
-
let o =
|
|
1062
|
-
e.children(
|
|
1080
|
+
let o = Tt(e) + 1;
|
|
1081
|
+
e.children(R).forEach((r) => {
|
|
1082
|
+
q(e, t, a, o, i, n, r);
|
|
1083
|
+
}), e.graph().nodeRankFactor = a;
|
|
1063
1084
|
}
|
|
1064
|
-
function
|
|
1085
|
+
function q(e, t, n, r, i, a, o) {
|
|
1065
1086
|
let s = e.children(o);
|
|
1066
1087
|
if (!s.length) {
|
|
1067
1088
|
o !== t && e.setEdge(t, o, {
|
|
@@ -1070,9 +1091,9 @@ function J(e, t, n, r, i, a, o) {
|
|
|
1070
1091
|
});
|
|
1071
1092
|
return;
|
|
1072
1093
|
}
|
|
1073
|
-
let c =
|
|
1094
|
+
let c = A(e, "_bt"), l = A(e, "_bb"), u = e.node(o);
|
|
1074
1095
|
e.setParent(c, o), u.borderTop = c, e.setParent(l, o), u.borderBottom = l, s.forEach((s) => {
|
|
1075
|
-
|
|
1096
|
+
q(e, t, n, r, i, a, s);
|
|
1076
1097
|
let u = e.node(s), d = u.borderTop ? u.borderTop : s, f = u.borderBottom ? u.borderBottom : s, p = u.borderTop ? r : 2 * r, m = d === f ? i - (a[o] ?? 0) + 1 : 1;
|
|
1077
1098
|
e.setEdge(c, d, {
|
|
1078
1099
|
weight: p,
|
|
@@ -1088,97 +1109,101 @@ function J(e, t, n, r, i, a, o) {
|
|
|
1088
1109
|
minlen: i + (a[o] ?? 0)
|
|
1089
1110
|
});
|
|
1090
1111
|
}
|
|
1091
|
-
function
|
|
1112
|
+
function wt(e) {
|
|
1092
1113
|
let t = {};
|
|
1093
1114
|
function n(r, i) {
|
|
1094
1115
|
let a = e.children(r);
|
|
1095
1116
|
a && a.length && a.forEach((e) => n(e, i + 1)), t[r] = i;
|
|
1096
1117
|
}
|
|
1097
|
-
return e.children(
|
|
1118
|
+
return e.children(R).forEach((e) => n(e, 1)), t;
|
|
1098
1119
|
}
|
|
1099
|
-
function
|
|
1120
|
+
function Tt(e) {
|
|
1100
1121
|
return e.edges().reduce((t, n) => t + e.edge(n).weight, 0);
|
|
1101
1122
|
}
|
|
1102
|
-
function
|
|
1123
|
+
function Et(e) {
|
|
1103
1124
|
let t = e.graph();
|
|
1104
1125
|
e.removeNode(t.nestingRoot), delete t.nestingRoot, e.edges().forEach((t) => {
|
|
1105
1126
|
e.edge(t).nestingEdge && e.removeEdge(t);
|
|
1106
1127
|
});
|
|
1107
1128
|
}
|
|
1108
|
-
var
|
|
1109
|
-
function
|
|
1129
|
+
var Dt = Ot;
|
|
1130
|
+
function Ot(e) {
|
|
1110
1131
|
function t(n) {
|
|
1111
1132
|
let r = e.children(n), i = e.node(n);
|
|
1112
|
-
if (r.length && r.forEach(t), Object.hasOwn(i, "minRank")) {
|
|
1133
|
+
if (r.length && r.forEach(t), i && Object.hasOwn(i, "minRank")) {
|
|
1113
1134
|
i.borderLeft = [], i.borderRight = [];
|
|
1114
|
-
for (let t = i.minRank, r = i.maxRank + 1; t < r; ++t)
|
|
1135
|
+
for (let t = i.minRank, r = i.maxRank + 1; t < r; ++t) kt(e, "borderLeft", "_bl", n, i, t), kt(e, "borderRight", "_br", n, i, t);
|
|
1115
1136
|
}
|
|
1116
1137
|
}
|
|
1117
|
-
e.children(
|
|
1138
|
+
e.children(R).forEach(t);
|
|
1118
1139
|
}
|
|
1119
|
-
function
|
|
1140
|
+
function kt(e, t, n, r, i, a) {
|
|
1120
1141
|
let o = {
|
|
1121
1142
|
width: 0,
|
|
1122
1143
|
height: 0,
|
|
1123
1144
|
rank: a,
|
|
1124
1145
|
borderType: t
|
|
1125
|
-
}, s = i[t][a - 1], c =
|
|
1146
|
+
}, s = i[t][a - 1], c = E(e, "border", o, n);
|
|
1126
1147
|
i[t][a] = c, e.setParent(c, r), s && e.setEdge(s, c, { weight: 1 });
|
|
1127
1148
|
}
|
|
1128
|
-
function kt(e) {
|
|
1129
|
-
let t = e.graph().rankdir?.toLowerCase();
|
|
1130
|
-
(t === "lr" || t === "rl") && jt(e);
|
|
1131
|
-
}
|
|
1132
1149
|
function At(e) {
|
|
1133
1150
|
let t = e.graph().rankdir?.toLowerCase();
|
|
1134
|
-
(t === "
|
|
1151
|
+
(t === "lr" || t === "rl") && Mt(e);
|
|
1135
1152
|
}
|
|
1136
1153
|
function jt(e) {
|
|
1137
|
-
|
|
1154
|
+
let t = e.graph().rankdir?.toLowerCase();
|
|
1155
|
+
(t === "bt" || t === "rl") && Pt(e), (t === "lr" || t === "rl") && (Ft(e), Mt(e));
|
|
1138
1156
|
}
|
|
1139
1157
|
function Mt(e) {
|
|
1158
|
+
e.nodes().forEach((t) => Nt(e.node(t))), e.edges().forEach((t) => Nt(e.edge(t)));
|
|
1159
|
+
}
|
|
1160
|
+
function Nt(e) {
|
|
1140
1161
|
let t = e.width;
|
|
1141
1162
|
e.width = e.height, e.height = t;
|
|
1142
1163
|
}
|
|
1143
|
-
function
|
|
1144
|
-
e.nodes().forEach((t) =>
|
|
1164
|
+
function Pt(e) {
|
|
1165
|
+
e.nodes().forEach((t) => J(e.node(t))), e.edges().forEach((t) => {
|
|
1145
1166
|
var n;
|
|
1146
1167
|
let r = e.edge(t);
|
|
1147
|
-
(n = r.points) == null || n.forEach(
|
|
1168
|
+
(n = r.points) == null || n.forEach(J), Object.hasOwn(r, "y") && J(r);
|
|
1148
1169
|
});
|
|
1149
1170
|
}
|
|
1150
|
-
function
|
|
1171
|
+
function J(e) {
|
|
1151
1172
|
e.y = -e.y;
|
|
1152
1173
|
}
|
|
1153
|
-
function
|
|
1154
|
-
e.nodes().forEach((t) =>
|
|
1174
|
+
function Ft(e) {
|
|
1175
|
+
e.nodes().forEach((t) => Y(e.node(t))), e.edges().forEach((t) => {
|
|
1155
1176
|
var n;
|
|
1156
1177
|
let r = e.edge(t);
|
|
1157
|
-
(n = r.points) == null || n.forEach(
|
|
1178
|
+
(n = r.points) == null || n.forEach(Y), Object.hasOwn(r, "x") && Y(r);
|
|
1158
1179
|
});
|
|
1159
1180
|
}
|
|
1160
|
-
function
|
|
1181
|
+
function Y(e) {
|
|
1161
1182
|
let t = e.x;
|
|
1162
1183
|
e.x = e.y, e.y = t;
|
|
1163
1184
|
}
|
|
1164
|
-
function
|
|
1165
|
-
let
|
|
1166
|
-
function
|
|
1167
|
-
if (t
|
|
1168
|
-
t
|
|
1169
|
-
let r = e.node(
|
|
1170
|
-
|
|
1171
|
-
let
|
|
1172
|
-
|
|
1185
|
+
function It(e, t = null) {
|
|
1186
|
+
let n = {}, r = e.nodes().filter((t) => !e.children(t).length), i = r.map((t) => e.node(t).rank), a = F(M(Math.max, i) + 1).map(() => []);
|
|
1187
|
+
function o(t) {
|
|
1188
|
+
if (n[t]) return;
|
|
1189
|
+
n[t] = !0;
|
|
1190
|
+
let r = e.node(t);
|
|
1191
|
+
a[r.rank].push(t);
|
|
1192
|
+
let i = e.successors(t);
|
|
1193
|
+
i && [...i].sort((e, t) => s(e, t)).forEach(o);
|
|
1173
1194
|
}
|
|
1174
|
-
|
|
1195
|
+
r.sort((t, n) => e.node(t).rank - e.node(n).rank).forEach(o);
|
|
1196
|
+
function s(n, r) {
|
|
1197
|
+
return z(t, e.node(n), e.node(r));
|
|
1198
|
+
}
|
|
1199
|
+
return a;
|
|
1175
1200
|
}
|
|
1176
|
-
function
|
|
1201
|
+
function Lt(e, t) {
|
|
1177
1202
|
let n = 0;
|
|
1178
|
-
for (let r = 1; r < t.length; ++r) n +=
|
|
1203
|
+
for (let r = 1; r < t.length; ++r) n += Rt(e, t[r - 1], t[r]);
|
|
1179
1204
|
return n;
|
|
1180
1205
|
}
|
|
1181
|
-
function
|
|
1206
|
+
function Rt(e, t, n) {
|
|
1182
1207
|
let r = Pe(n, n.map((e, t) => t)), i = t.flatMap((t) => {
|
|
1183
1208
|
let n = e.outEdges(t);
|
|
1184
1209
|
return n ? n.map((t) => ({
|
|
@@ -1198,7 +1223,7 @@ function Lt(e, t, n) {
|
|
|
1198
1223
|
c += e.weight * n;
|
|
1199
1224
|
}), c;
|
|
1200
1225
|
}
|
|
1201
|
-
function
|
|
1226
|
+
function zt(e, t = []) {
|
|
1202
1227
|
return t.map((t) => {
|
|
1203
1228
|
let n = e.inEdges(t);
|
|
1204
1229
|
if (!n || !n.length) return { v: t };
|
|
@@ -1221,7 +1246,7 @@ function Rt(e, t = []) {
|
|
|
1221
1246
|
}
|
|
1222
1247
|
});
|
|
1223
1248
|
}
|
|
1224
|
-
function
|
|
1249
|
+
function Bt(e, t) {
|
|
1225
1250
|
let n = {};
|
|
1226
1251
|
return e.forEach((e, t) => {
|
|
1227
1252
|
let r = {
|
|
@@ -1235,13 +1260,13 @@ function zt(e, t) {
|
|
|
1235
1260
|
}), t.edges().forEach((e) => {
|
|
1236
1261
|
let t = n[e.v], r = n[e.w];
|
|
1237
1262
|
t !== void 0 && r !== void 0 && (r.indegree++, t.out.push(r));
|
|
1238
|
-
}),
|
|
1263
|
+
}), Vt(Object.values(n).filter((e) => !e.indegree));
|
|
1239
1264
|
}
|
|
1240
|
-
function
|
|
1265
|
+
function Vt(e) {
|
|
1241
1266
|
let t = [];
|
|
1242
1267
|
function n(e) {
|
|
1243
1268
|
return (t) => {
|
|
1244
|
-
t.merged || (t.barycenter === void 0 || e.barycenter === void 0 || t.barycenter >= e.barycenter) &&
|
|
1269
|
+
t.merged || (t.barycenter === void 0 || e.barycenter === void 0 || t.barycenter >= e.barycenter) && Ht(e, t);
|
|
1245
1270
|
};
|
|
1246
1271
|
}
|
|
1247
1272
|
function r(t) {
|
|
@@ -1253,71 +1278,108 @@ function Bt(e) {
|
|
|
1253
1278
|
let i = e.pop();
|
|
1254
1279
|
t.push(i), i.in.reverse().forEach(n(i)), i.out.forEach(r(i));
|
|
1255
1280
|
}
|
|
1256
|
-
return t.filter((e) => !e.merged).map((e) =>
|
|
1281
|
+
return t.filter((e) => !e.merged).map((e) => I(e, [
|
|
1257
1282
|
"vs",
|
|
1258
1283
|
"i",
|
|
1259
1284
|
"barycenter",
|
|
1260
1285
|
"weight"
|
|
1261
1286
|
]));
|
|
1262
1287
|
}
|
|
1263
|
-
function
|
|
1288
|
+
function Ht(e, t) {
|
|
1264
1289
|
let n = 0, r = 0;
|
|
1265
1290
|
e.weight && (n += e.barycenter * e.weight, r += e.weight), t.weight && (n += t.barycenter * t.weight, r += t.weight), e.vs = t.vs.concat(e.vs), e.barycenter = n / r, e.weight = r, e.i = Math.min(t.i, e.i), t.merged = !0;
|
|
1266
1291
|
}
|
|
1267
|
-
function
|
|
1268
|
-
let
|
|
1269
|
-
|
|
1270
|
-
|
|
1292
|
+
function Ut(e, t, n, r, i) {
|
|
1293
|
+
let a = {}, o = null, s = null, c = i;
|
|
1294
|
+
typeof t == "boolean" ? (c = t, a = {}) : t && (a = t, o = n ?? null, s = r ?? null);
|
|
1295
|
+
let l = je(e, (e) => Object.hasOwn(e, "barycenter")), u = l.lhs, d = l.rhs.sort((e, t) => t.i - e.i), f = [], p = 0, m = 0, h = 0;
|
|
1296
|
+
u.sort(Gt(s, o, !!c));
|
|
1297
|
+
for (let [e, t] of Object.entries(a)) {
|
|
1298
|
+
let n = u.findIndex((t) => t.vs[0] === e);
|
|
1299
|
+
u.splice(n + 1, 0, t);
|
|
1300
|
+
}
|
|
1301
|
+
h = Wt(f, d, h), u.forEach((e) => {
|
|
1302
|
+
h += e.vs.length, f.push(e.vs), p += e.barycenter * e.weight, m += e.weight, h = Wt(f, d, h);
|
|
1271
1303
|
});
|
|
1272
|
-
let
|
|
1273
|
-
return
|
|
1304
|
+
let g = { vs: f.flat(1) };
|
|
1305
|
+
return m && (g.barycenter = p / m, g.weight = m), g;
|
|
1274
1306
|
}
|
|
1275
|
-
function
|
|
1307
|
+
function Wt(e, t, n) {
|
|
1276
1308
|
let r;
|
|
1277
1309
|
for (; t.length && (r = t[t.length - 1]).i <= n;) t.pop(), e.push(r.vs), n++;
|
|
1278
1310
|
return n;
|
|
1279
1311
|
}
|
|
1280
|
-
function
|
|
1281
|
-
return (
|
|
1312
|
+
function Gt(e, t, n) {
|
|
1313
|
+
return (r, i) => {
|
|
1314
|
+
if (r.barycenter < i.barycenter) return -1;
|
|
1315
|
+
if (r.barycenter > i.barycenter) return 1;
|
|
1316
|
+
if (e && (typeof r.vs[0] == "string" || typeof i.vs[0] == "string")) {
|
|
1317
|
+
let n = z(t, e.node(r.vs[0]), e.node(i.vs[0]));
|
|
1318
|
+
if (n !== 0) return n;
|
|
1319
|
+
}
|
|
1320
|
+
return n ? i.i - r.i : r.i - i.i;
|
|
1321
|
+
};
|
|
1282
1322
|
}
|
|
1283
|
-
function
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
l.
|
|
1323
|
+
function Kt(e, t, n, r, i) {
|
|
1324
|
+
var a, o;
|
|
1325
|
+
let s = null, c = i;
|
|
1326
|
+
typeof r == "boolean" ? (c = r, s = null) : r !== void 0 && (s = r);
|
|
1327
|
+
let l = e.children(t), u = e.node(t), d = u ? u.borderLeft : void 0, f = u ? u.borderRight : void 0, p = {};
|
|
1328
|
+
d && (l = l.filter((e) => e !== d && e !== f));
|
|
1329
|
+
let m = zt(e, l);
|
|
1330
|
+
m.forEach((t) => {
|
|
1288
1331
|
if (e.children(t.v).length) {
|
|
1289
|
-
let
|
|
1290
|
-
|
|
1332
|
+
let { result: r } = Kt(e, t.v, n, s, c);
|
|
1333
|
+
p[t.v] = r, Object.hasOwn(r, "barycenter") && Jt(t, r);
|
|
1291
1334
|
}
|
|
1292
1335
|
});
|
|
1293
|
-
let
|
|
1294
|
-
|
|
1295
|
-
let
|
|
1296
|
-
if (o &&
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1336
|
+
let h = Bt(m, n);
|
|
1337
|
+
qt(h, p);
|
|
1338
|
+
let g = {}, _ = !1;
|
|
1339
|
+
for (let t = 0; t < h.length; t++) for (let n = t + 1; n < h.length; n++) if (!(!h[t] || !h[n] || !((a = h[t]) != null && a.barycenter) || !((o = h[n]) != null && o.barycenter)) && h[t]?.barycenter === h[n].barycenter) {
|
|
1340
|
+
let r = h[t]?.vs[0] ?? "", i = h[n]?.vs[0] ?? "", a = e.node(r), o = e.node(i);
|
|
1341
|
+
if (a.dummy === "edge" && o.dummy === "edge" && a.edgeObj?.v === o.edgeObj?.v && a.edgeObj?.w === o.edgeObj?.w) if (a.edgeLabel.reversed) {
|
|
1342
|
+
g[i] = h[t], h.splice(t, 1), t--;
|
|
1343
|
+
break;
|
|
1344
|
+
} else g[r] = h[n], h.splice(n, 1), n--;
|
|
1345
|
+
else _ = !0;
|
|
1346
|
+
}
|
|
1347
|
+
let v = Ut(h, g, s, e, c);
|
|
1348
|
+
if (d && f) {
|
|
1349
|
+
v.vs = [
|
|
1350
|
+
d,
|
|
1351
|
+
v.vs,
|
|
1352
|
+
f
|
|
1301
1353
|
].flat(1);
|
|
1302
|
-
let t = e.predecessors(
|
|
1354
|
+
let t = e.predecessors(d);
|
|
1303
1355
|
if (t && t.length) {
|
|
1304
|
-
let n = e.node(t[0]), r = e.predecessors(
|
|
1305
|
-
Object.hasOwn(
|
|
1356
|
+
let n = e.node(t[0]), r = e.predecessors(f), i = e.node(r[0]);
|
|
1357
|
+
Object.hasOwn(v, "barycenter") || (v.barycenter = 0, v.weight = 0), v.barycenter = (v.barycenter * v.weight + n.order + i.order) / (v.weight + 2), v.weight += 2;
|
|
1306
1358
|
}
|
|
1307
1359
|
}
|
|
1308
|
-
return
|
|
1360
|
+
return Object.defineProperty(v, "result", {
|
|
1361
|
+
value: v,
|
|
1362
|
+
enumerable: !1,
|
|
1363
|
+
configurable: !0,
|
|
1364
|
+
writable: !0
|
|
1365
|
+
}), Object.defineProperty(v, "usedBias", {
|
|
1366
|
+
value: _,
|
|
1367
|
+
enumerable: !1,
|
|
1368
|
+
configurable: !0,
|
|
1369
|
+
writable: !0
|
|
1370
|
+
}), v;
|
|
1309
1371
|
}
|
|
1310
|
-
function
|
|
1372
|
+
function qt(e, t) {
|
|
1311
1373
|
e.forEach((e) => {
|
|
1312
1374
|
e.vs = e.vs.flatMap((e) => t[e] ? t[e].vs : e);
|
|
1313
1375
|
});
|
|
1314
1376
|
}
|
|
1315
|
-
function
|
|
1377
|
+
function Jt(e, t) {
|
|
1316
1378
|
e.barycenter === void 0 ? (e.barycenter = t.barycenter, e.weight = t.weight) : (e.barycenter = (e.barycenter * e.weight + t.barycenter * t.weight) / (e.weight + t.weight), e.weight += t.weight);
|
|
1317
1379
|
}
|
|
1318
|
-
function
|
|
1380
|
+
function Yt(e, t, n, r) {
|
|
1319
1381
|
r ||= e.nodes();
|
|
1320
|
-
let i =
|
|
1382
|
+
let i = Xt(e), a = new h({ compound: !0 }).setGraph({ root: i }).setDefaultNodeLabel((t) => e.node(t));
|
|
1321
1383
|
return r.forEach((r) => {
|
|
1322
1384
|
let o = e.node(r), s = e.parent(r);
|
|
1323
1385
|
if (o.rank === t || o.minRank <= t && t <= o.maxRank) {
|
|
@@ -1333,12 +1395,12 @@ function Jt(e, t, n, r) {
|
|
|
1333
1395
|
}
|
|
1334
1396
|
}), a;
|
|
1335
1397
|
}
|
|
1336
|
-
function
|
|
1398
|
+
function Xt(e) {
|
|
1337
1399
|
let t;
|
|
1338
|
-
for (; e.hasNode(t =
|
|
1400
|
+
for (; e.hasNode(t = P("_root")););
|
|
1339
1401
|
return t;
|
|
1340
1402
|
}
|
|
1341
|
-
function
|
|
1403
|
+
function Zt(e, t, n) {
|
|
1342
1404
|
let r = {}, i;
|
|
1343
1405
|
n.forEach((n) => {
|
|
1344
1406
|
let a = e.parent(n), o, s;
|
|
@@ -1351,22 +1413,22 @@ function Xt(e, t, n) {
|
|
|
1351
1413
|
}
|
|
1352
1414
|
});
|
|
1353
1415
|
}
|
|
1354
|
-
function
|
|
1416
|
+
function Qt(e, t = {}, n = null) {
|
|
1355
1417
|
if (typeof t.customOrder == "function") {
|
|
1356
|
-
t.customOrder(e,
|
|
1418
|
+
t.customOrder(e, Qt);
|
|
1357
1419
|
return;
|
|
1358
1420
|
}
|
|
1359
|
-
let
|
|
1360
|
-
if (
|
|
1361
|
-
let
|
|
1362
|
-
for (let t = 0,
|
|
1363
|
-
|
|
1364
|
-
let
|
|
1365
|
-
|
|
1421
|
+
let r = N(e), i = $t(e, F(1, r + 1), "inEdges"), a = $t(e, F(r - 1, -1, -1), "outEdges"), o = It(e, n);
|
|
1422
|
+
if (tn(e, o), t.disableOptimalOrderHeuristic) return;
|
|
1423
|
+
let s = Infinity, c, l = t.constraints || [];
|
|
1424
|
+
for (let t = 0, r = 0; r < 4; ++t, ++r) {
|
|
1425
|
+
en(t % 2 ? i : a, t % 4 >= 2, l, n), o = k(e);
|
|
1426
|
+
let u = Lt(e, o);
|
|
1427
|
+
u < s ? (r = 0, c = Object.assign({}, o), s = u) : u === s && (c = structuredClone(o));
|
|
1366
1428
|
}
|
|
1367
|
-
|
|
1429
|
+
tn(e, c);
|
|
1368
1430
|
}
|
|
1369
|
-
function
|
|
1431
|
+
function $t(e, t, n) {
|
|
1370
1432
|
let r = /* @__PURE__ */ new Map(), i = (e, t) => {
|
|
1371
1433
|
r.has(e) || r.set(e, []), r.get(e).push(t);
|
|
1372
1434
|
};
|
|
@@ -1375,48 +1437,48 @@ function Qt(e, t, n) {
|
|
|
1375
1437
|
if (typeof n.rank == "number" && i(n.rank, t), typeof n.minRank == "number" && typeof n.maxRank == "number") for (let e = n.minRank; e <= n.maxRank; e++) e !== n.rank && i(e, t);
|
|
1376
1438
|
}
|
|
1377
1439
|
return t.map(function(t) {
|
|
1378
|
-
return
|
|
1440
|
+
return Yt(e, t, n, r.get(t) || []);
|
|
1379
1441
|
});
|
|
1380
1442
|
}
|
|
1381
|
-
function
|
|
1382
|
-
let
|
|
1443
|
+
function en(e, t, n, r) {
|
|
1444
|
+
let i = !0, a = new h();
|
|
1383
1445
|
e.forEach(function(e) {
|
|
1384
|
-
n.forEach((e) =>
|
|
1385
|
-
let
|
|
1386
|
-
|
|
1446
|
+
n.forEach((e) => a.setEdge(e.left, e.right));
|
|
1447
|
+
let o = e.graph().root, { result: s, usedBias: c } = Kt(e, o, a, r, i);
|
|
1448
|
+
t && c && (i = !i), s.vs.forEach((t, n) => e.node(t).order = n), Zt(e, a, s.vs);
|
|
1387
1449
|
});
|
|
1388
1450
|
}
|
|
1389
|
-
function
|
|
1451
|
+
function tn(e, t) {
|
|
1390
1452
|
Object.values(t).forEach((t) => t.forEach((t, n) => e.node(t).order = n));
|
|
1391
1453
|
}
|
|
1392
|
-
function
|
|
1454
|
+
function nn(e, t) {
|
|
1393
1455
|
let n = {};
|
|
1394
1456
|
function r(t, r) {
|
|
1395
1457
|
let i = 0, a = 0, o = t.length, s = r[r.length - 1];
|
|
1396
1458
|
return r.forEach((t, c) => {
|
|
1397
|
-
let l =
|
|
1459
|
+
let l = an(e, t), u = l ? e.node(l).order : o;
|
|
1398
1460
|
(l || t === s) && (r.slice(a, c + 1).forEach((t) => {
|
|
1399
1461
|
let r = e.predecessors(t);
|
|
1400
1462
|
r && r.forEach((r) => {
|
|
1401
1463
|
let a = e.node(r), o = a.order;
|
|
1402
|
-
(o < i || u < o) && !(a.dummy && e.node(t).dummy) &&
|
|
1464
|
+
(o < i || u < o) && !(a.dummy && e.node(t).dummy) && on(n, r, t);
|
|
1403
1465
|
});
|
|
1404
1466
|
}), a = c + 1, i = u);
|
|
1405
1467
|
}), r;
|
|
1406
1468
|
}
|
|
1407
1469
|
return t.length && t.reduce(r), n;
|
|
1408
1470
|
}
|
|
1409
|
-
function
|
|
1471
|
+
function rn(e, t) {
|
|
1410
1472
|
let n = {};
|
|
1411
1473
|
function r(t, r, i, a, o) {
|
|
1412
|
-
|
|
1474
|
+
F(r, i).forEach((r) => {
|
|
1413
1475
|
let i = t[r];
|
|
1414
1476
|
if (i !== void 0 && e.node(i).dummy) {
|
|
1415
1477
|
let t = e.predecessors(i);
|
|
1416
1478
|
t && t.forEach((t) => {
|
|
1417
1479
|
if (t === void 0) return;
|
|
1418
1480
|
let r = e.node(t);
|
|
1419
|
-
r.dummy && (r.order < a || r.order > o) &&
|
|
1481
|
+
r.dummy && (r.order < a || r.order > o) && on(n, t, i);
|
|
1420
1482
|
});
|
|
1421
1483
|
}
|
|
1422
1484
|
});
|
|
@@ -1437,13 +1499,13 @@ function nn(e, t) {
|
|
|
1437
1499
|
}
|
|
1438
1500
|
return t.length && t.reduce(i), n;
|
|
1439
1501
|
}
|
|
1440
|
-
function
|
|
1502
|
+
function an(e, t) {
|
|
1441
1503
|
if (e.node(t).dummy) {
|
|
1442
1504
|
let n = e.predecessors(t);
|
|
1443
1505
|
if (n) return n.find((t) => e.node(t).dummy);
|
|
1444
1506
|
}
|
|
1445
1507
|
}
|
|
1446
|
-
function
|
|
1508
|
+
function on(e, t, n) {
|
|
1447
1509
|
if (t > n) {
|
|
1448
1510
|
let e = t;
|
|
1449
1511
|
t = n, n = e;
|
|
@@ -1451,7 +1513,7 @@ function an(e, t, n) {
|
|
|
1451
1513
|
let r = e[t];
|
|
1452
1514
|
r || (e[t] = r = {}), r[n] = !0;
|
|
1453
1515
|
}
|
|
1454
|
-
function
|
|
1516
|
+
function sn(e, t, n) {
|
|
1455
1517
|
if (t > n) {
|
|
1456
1518
|
let e = t;
|
|
1457
1519
|
t = n, n = e;
|
|
@@ -1459,39 +1521,44 @@ function on(e, t, n) {
|
|
|
1459
1521
|
let r = e[t];
|
|
1460
1522
|
return r !== void 0 && Object.hasOwn(r, n);
|
|
1461
1523
|
}
|
|
1462
|
-
function
|
|
1463
|
-
let
|
|
1524
|
+
function cn(e, t, n, r, i) {
|
|
1525
|
+
let a = {}, o = {}, s = {};
|
|
1464
1526
|
return t.forEach((e) => {
|
|
1465
1527
|
e.forEach((e, t) => {
|
|
1466
|
-
|
|
1528
|
+
a[e] = e, o[e] = e, s[e] = t;
|
|
1467
1529
|
});
|
|
1468
|
-
}), t.forEach((
|
|
1469
|
-
let
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
|
|
1474
|
-
|
|
1530
|
+
}), t.forEach((t) => {
|
|
1531
|
+
let c = -1, l = -1, u = !1, d = t, f = t.findIndex((t) => i?.includes(t) || _n(t, e, i));
|
|
1532
|
+
f > 0 && (d = [
|
|
1533
|
+
t[f],
|
|
1534
|
+
...t.slice(0, f),
|
|
1535
|
+
...t.slice(f + 1)
|
|
1536
|
+
], u = !0), d.forEach((t) => {
|
|
1537
|
+
let d = r(t);
|
|
1538
|
+
if (d && d.length) {
|
|
1539
|
+
i != null && i.includes(t) && (d = d.filter((t) => _n(t, e, i)));
|
|
1540
|
+
let r = d.sort((e, t) => {
|
|
1541
|
+
let n = s[e], r = s[t];
|
|
1475
1542
|
return (n === void 0 ? 0 : n) - (r === void 0 ? 0 : r);
|
|
1476
|
-
}),
|
|
1477
|
-
for (let
|
|
1478
|
-
let
|
|
1479
|
-
if (
|
|
1480
|
-
let
|
|
1481
|
-
if (
|
|
1482
|
-
let
|
|
1483
|
-
|
|
1543
|
+
}), f = (r.length - 1) / 2;
|
|
1544
|
+
for (let e = Math.floor(f), i = Math.ceil(f); e <= i; ++e) {
|
|
1545
|
+
let i = r[e];
|
|
1546
|
+
if (i === void 0) continue;
|
|
1547
|
+
let d = s[i];
|
|
1548
|
+
if (d !== void 0 && o[t] === t && c < d && s[i] !== l && !sn(n, t, i)) {
|
|
1549
|
+
let e = a[i];
|
|
1550
|
+
e !== void 0 && (o[i] = t, o[t] = a[t] = e, c = d, u &&= (c = -1, l = s[i] ?? -1, !1));
|
|
1484
1551
|
}
|
|
1485
1552
|
}
|
|
1486
1553
|
}
|
|
1487
1554
|
});
|
|
1488
1555
|
}), {
|
|
1489
|
-
root:
|
|
1490
|
-
align:
|
|
1556
|
+
root: a,
|
|
1557
|
+
align: o
|
|
1491
1558
|
};
|
|
1492
1559
|
}
|
|
1493
|
-
function
|
|
1494
|
-
let a = {}, o =
|
|
1560
|
+
function ln(e, t, n, r, i = !1) {
|
|
1561
|
+
let a = {}, o = un(e, t, n, i), s = i ? "borderLeft" : "borderRight";
|
|
1495
1562
|
function c(e, t) {
|
|
1496
1563
|
let n = o.nodes().slice(), r = {}, i = n.pop();
|
|
1497
1564
|
for (; i;) {
|
|
@@ -1530,8 +1597,8 @@ function cn(e, t, n, r, i = !1) {
|
|
|
1530
1597
|
t !== void 0 && (a[e] = a[t] ?? 0);
|
|
1531
1598
|
}), a;
|
|
1532
1599
|
}
|
|
1533
|
-
function
|
|
1534
|
-
let i = new
|
|
1600
|
+
function un(e, t, n, r) {
|
|
1601
|
+
let i = new h(), a = e.graph(), o = hn(a.nodesep, a.edgesep, r);
|
|
1535
1602
|
return t.forEach((t) => {
|
|
1536
1603
|
let r;
|
|
1537
1604
|
t.forEach((t) => {
|
|
@@ -1549,31 +1616,31 @@ function ln(e, t, n, r) {
|
|
|
1549
1616
|
});
|
|
1550
1617
|
}), i;
|
|
1551
1618
|
}
|
|
1552
|
-
function
|
|
1619
|
+
function dn(e, t) {
|
|
1553
1620
|
return Object.values(t).reduce((t, n) => {
|
|
1554
1621
|
let r = -Infinity, i = Infinity;
|
|
1555
1622
|
Object.entries(n).forEach(([t, n]) => {
|
|
1556
|
-
let a =
|
|
1623
|
+
let a = gn(e, t) / 2;
|
|
1557
1624
|
r = Math.max(n + a, r), i = Math.min(n - a, i);
|
|
1558
1625
|
});
|
|
1559
1626
|
let a = r - i;
|
|
1560
1627
|
return a < t[0] && (t = [a, n]), t;
|
|
1561
1628
|
}, [Infinity, null])[1];
|
|
1562
1629
|
}
|
|
1563
|
-
function
|
|
1564
|
-
let n = Object.values(t), r =
|
|
1630
|
+
function fn(e, t) {
|
|
1631
|
+
let n = Object.values(t), r = M(Math.min, n), i = M(Math.max, n);
|
|
1565
1632
|
["u", "d"].forEach((n) => {
|
|
1566
1633
|
["l", "r"].forEach((a) => {
|
|
1567
1634
|
let o = n + a, s = e[o];
|
|
1568
1635
|
if (!s || s === t) return;
|
|
1569
|
-
let c = Object.values(s), l = r -
|
|
1570
|
-
a !== "l" && (l = i -
|
|
1636
|
+
let c = Object.values(s), l = r - M(Math.min, c);
|
|
1637
|
+
a !== "l" && (l = i - M(Math.max, c)), l && (e[o] = L(s, (e) => e + l));
|
|
1571
1638
|
});
|
|
1572
1639
|
});
|
|
1573
1640
|
}
|
|
1574
|
-
function
|
|
1641
|
+
function pn(e, t = void 0) {
|
|
1575
1642
|
let n = e.ul;
|
|
1576
|
-
return n ?
|
|
1643
|
+
return n ? L(n, (n, r) => {
|
|
1577
1644
|
if (t) {
|
|
1578
1645
|
let n = e[t.toLowerCase()];
|
|
1579
1646
|
if (n && n[r] !== void 0) return n[r];
|
|
@@ -1585,17 +1652,17 @@ function fn(e, t = void 0) {
|
|
|
1585
1652
|
return ((i[1] ?? 0) + (i[2] ?? 0)) / 2;
|
|
1586
1653
|
}) : {};
|
|
1587
1654
|
}
|
|
1588
|
-
function
|
|
1589
|
-
let
|
|
1590
|
-
return ["u", "d"].forEach((
|
|
1591
|
-
|
|
1592
|
-
|
|
1593
|
-
let
|
|
1594
|
-
|
|
1655
|
+
function mn(e, t) {
|
|
1656
|
+
let n = k(e), r = Object.assign(nn(e, n), rn(e, n)), i = {}, a;
|
|
1657
|
+
return ["u", "d"].forEach((o) => {
|
|
1658
|
+
a = o === "u" ? n : Object.values(n).reverse(), ["l", "r"].forEach((n) => {
|
|
1659
|
+
n === "r" && (a = a.map((e) => Object.values(e).reverse()));
|
|
1660
|
+
let s = cn(e, a, r, (t) => (o === "u" ? e.predecessors(t) : e.successors(t)) || [], t), c = ln(e, a, s.root, s.align, n === "r");
|
|
1661
|
+
n === "r" && (c = L(c, (e) => -e)), i[o + n] = c;
|
|
1595
1662
|
});
|
|
1596
|
-
}),
|
|
1663
|
+
}), fn(i, dn(e, i)), pn(i, e.graph().align);
|
|
1597
1664
|
}
|
|
1598
|
-
function
|
|
1665
|
+
function hn(e, t, n) {
|
|
1599
1666
|
return (r, i, a) => {
|
|
1600
1667
|
let o = r.node(i), s = r.node(a), c = 0, l;
|
|
1601
1668
|
if (c += o.width / 2, Object.hasOwn(o, "labelpos")) switch (o.labelpos.toLowerCase()) {
|
|
@@ -1617,14 +1684,21 @@ function mn(e, t, n) {
|
|
|
1617
1684
|
return l && (c += n ? l : -l), c;
|
|
1618
1685
|
};
|
|
1619
1686
|
}
|
|
1620
|
-
function
|
|
1687
|
+
function gn(e, t) {
|
|
1621
1688
|
return e.node(t).width;
|
|
1622
1689
|
}
|
|
1623
|
-
function
|
|
1624
|
-
|
|
1690
|
+
function _n(e, t, n) {
|
|
1691
|
+
if (!n) return !1;
|
|
1692
|
+
let r = t.node(e)?.edgeObj;
|
|
1693
|
+
if (!r || t.node(e).edgeLabel.reversed) return !1;
|
|
1694
|
+
let i = n.indexOf(r?.v), a = n.indexOf(r?.w);
|
|
1695
|
+
return i !== -1 && a !== -1 && i === (a + 1) % n.length || i === (a - 1) % n.length;
|
|
1625
1696
|
}
|
|
1626
|
-
function
|
|
1627
|
-
|
|
1697
|
+
function vn(e, t) {
|
|
1698
|
+
e = D(e), yn(e), Object.entries(mn(e, t)).forEach(([t, n]) => e.node(t).x = n);
|
|
1699
|
+
}
|
|
1700
|
+
function yn(e) {
|
|
1701
|
+
let t = k(e), n = e.graph(), r = n.ranksep, i = n.rankalign, a = 0;
|
|
1628
1702
|
t.forEach((t) => {
|
|
1629
1703
|
let n = t.reduce((t, n) => {
|
|
1630
1704
|
let r = e.node(n).height ?? 0;
|
|
@@ -1636,17 +1710,160 @@ function _n(e) {
|
|
|
1636
1710
|
}), a += n + r;
|
|
1637
1711
|
});
|
|
1638
1712
|
}
|
|
1639
|
-
|
|
1640
|
-
|
|
1641
|
-
return
|
|
1642
|
-
|
|
1643
|
-
|
|
1713
|
+
var X = null, Z = null;
|
|
1714
|
+
function bn(e, t = {}) {
|
|
1715
|
+
return Sn(e, Me, t), e;
|
|
1716
|
+
}
|
|
1717
|
+
function xn(e, t, n) {
|
|
1718
|
+
let r = t;
|
|
1719
|
+
for (; r !== void 0;) {
|
|
1720
|
+
let t = e.parent(r);
|
|
1721
|
+
if (t === n) return r;
|
|
1722
|
+
r = t;
|
|
1723
|
+
}
|
|
1724
|
+
}
|
|
1725
|
+
function Sn(e, t, n) {
|
|
1726
|
+
let r = e.nodes().filter((t) => e.children(t).length), i = {};
|
|
1727
|
+
r.forEach((r) => {
|
|
1728
|
+
let a = e.node(r);
|
|
1729
|
+
if (a && a.rankdir) {
|
|
1730
|
+
let o = new h({
|
|
1731
|
+
multigraph: !0,
|
|
1732
|
+
compound: !0
|
|
1733
|
+
});
|
|
1734
|
+
o.setGraph({ rankdir: a.rankdir });
|
|
1735
|
+
let s = e.children(r);
|
|
1736
|
+
s.forEach((t) => {
|
|
1737
|
+
let n = { ...e.node(t) };
|
|
1738
|
+
o.setNode(t, n);
|
|
1739
|
+
let i = e.parent(t);
|
|
1740
|
+
i && i !== r && s.includes(i) && o.setParent(t, i);
|
|
1741
|
+
});
|
|
1742
|
+
let c = /* @__PURE__ */ new Set();
|
|
1743
|
+
e.edges().forEach((t) => {
|
|
1744
|
+
let n = xn(e, t.v, r), i = xn(e, t.w, r);
|
|
1745
|
+
if (n && i && n !== i) {
|
|
1746
|
+
let r = `${n}\0${i}`;
|
|
1747
|
+
c.has(r) || (c.add(r), o.setEdge(n, i, { ...e.edge(t) }));
|
|
1748
|
+
}
|
|
1749
|
+
}), Sn(o, t, n);
|
|
1750
|
+
let l = Nn(o);
|
|
1751
|
+
Cn(l, t, n), wn(o, l);
|
|
1752
|
+
let u = Infinity, d = Infinity, f = -Infinity, p = -Infinity;
|
|
1753
|
+
o.nodes().forEach((e) => {
|
|
1754
|
+
if (e === r) return;
|
|
1755
|
+
let t = o.node(e);
|
|
1756
|
+
t && typeof t.x == "number" && typeof t.y == "number" && typeof t.width == "number" && typeof t.height == "number" && (u = Math.min(u, t.x - t.width / 2), f = Math.max(f, t.x + t.width / 2), d = Math.min(d, t.y - t.height / 2), p = Math.max(p, t.y + t.height / 2));
|
|
1757
|
+
}), (!isFinite(u) || !isFinite(d) || !isFinite(f) || !isFinite(p)) && (u = d = 0, f = p = 0);
|
|
1758
|
+
let m = f - u, g = p - d;
|
|
1759
|
+
i[r] = {
|
|
1760
|
+
minX: u,
|
|
1761
|
+
minY: d,
|
|
1762
|
+
maxX: f,
|
|
1763
|
+
maxY: p,
|
|
1764
|
+
width: m,
|
|
1765
|
+
height: g,
|
|
1766
|
+
offsetX: u,
|
|
1767
|
+
offsetY: d
|
|
1768
|
+
}, a._dagreClusterSubgraph = o;
|
|
1769
|
+
}
|
|
1770
|
+
});
|
|
1771
|
+
let a = [], o = (t) => {
|
|
1772
|
+
let n = [], r = (e.children(t) || []).filter((e) => e !== t);
|
|
1773
|
+
for (; r.length > 0;) {
|
|
1774
|
+
let t = r.shift();
|
|
1775
|
+
n.push(t), (e.children(t) || []).filter((e) => e !== t).forEach((e) => r.push(e));
|
|
1776
|
+
}
|
|
1777
|
+
return n;
|
|
1778
|
+
}, s = /* @__PURE__ */ new Map();
|
|
1779
|
+
r.forEach((t) => {
|
|
1780
|
+
let n = e.node(t);
|
|
1781
|
+
n && n.rankdir && i[t] && s.set(t, (e.children(t) || []).filter((e) => e !== t));
|
|
1782
|
+
});
|
|
1783
|
+
let c = new Set([...s.values()].flat()), l = /* @__PURE__ */ new Map();
|
|
1784
|
+
s.forEach((e, t) => {
|
|
1785
|
+
c.has(t) || l.set(t, o(t));
|
|
1786
|
+
});
|
|
1787
|
+
let u = new Set([...l.values()].flat()), d = (e) => {
|
|
1788
|
+
for (let [t, n] of l) if (n.includes(e)) return t;
|
|
1789
|
+
return e;
|
|
1790
|
+
}, f = [];
|
|
1791
|
+
e.edges().forEach((t) => {
|
|
1792
|
+
(u.has(t.v) || u.has(t.w)) && f.push({
|
|
1793
|
+
edge: t,
|
|
1794
|
+
label: e.edge(t)
|
|
1795
|
+
});
|
|
1796
|
+
});
|
|
1797
|
+
let p = /* @__PURE__ */ new Map();
|
|
1798
|
+
u.forEach((t) => {
|
|
1799
|
+
let n = e.parent(t);
|
|
1800
|
+
p.set(t, typeof n == "string" ? n : void 0);
|
|
1801
|
+
}), l.forEach((t, n) => {
|
|
1802
|
+
let r = e.node(n), o = [];
|
|
1803
|
+
t.forEach((t) => {
|
|
1804
|
+
let n = e.node(t);
|
|
1805
|
+
n && (o.push({
|
|
1806
|
+
id: t,
|
|
1807
|
+
node: n,
|
|
1808
|
+
parent: p.get(t)
|
|
1809
|
+
}), e.removeNode(t));
|
|
1810
|
+
});
|
|
1811
|
+
let s = f.filter(({ edge: e }) => t.includes(e.v) || t.includes(e.w)), c = i[n];
|
|
1812
|
+
r && (a.push({
|
|
1813
|
+
clusterId: n,
|
|
1814
|
+
subgraph: r._dagreClusterSubgraph,
|
|
1815
|
+
bounds: c,
|
|
1816
|
+
children: t,
|
|
1817
|
+
removedNodes: o,
|
|
1818
|
+
removedEdges: s
|
|
1819
|
+
}), r.width = c.width, r.height = c.height);
|
|
1820
|
+
});
|
|
1821
|
+
let m = /* @__PURE__ */ new Set();
|
|
1822
|
+
f.forEach(({ edge: t, label: n }) => {
|
|
1823
|
+
let r = d(t.v), i = d(t.w);
|
|
1824
|
+
if (r !== i && e.hasNode(r) && e.hasNode(i)) {
|
|
1825
|
+
let t = `${r}\0${i}`;
|
|
1826
|
+
m.has(t) || (m.add(t), e.setEdge(r, i, {
|
|
1827
|
+
...n,
|
|
1828
|
+
width: 0,
|
|
1829
|
+
height: 0
|
|
1830
|
+
}));
|
|
1831
|
+
}
|
|
1832
|
+
});
|
|
1833
|
+
let g = Nn(e);
|
|
1834
|
+
Cn(g, t, n), wn(e, g), m.forEach((t) => {
|
|
1835
|
+
let n = t.indexOf("\0"), r = t.slice(0, n), i = t.slice(n + 1);
|
|
1836
|
+
e.hasEdge(r, i) && e.removeEdge(r, i);
|
|
1837
|
+
}), a.forEach(({ clusterId: t, subgraph: n, bounds: r, removedNodes: i, removedEdges: a }) => {
|
|
1838
|
+
let o = e.node(t), s = o?.x ?? 0, c = o?.y ?? 0, l = (r.minX + r.maxX) / 2, u = (r.minY + r.maxY) / 2;
|
|
1839
|
+
i.forEach(({ id: t, node: n, parent: r }) => {
|
|
1840
|
+
e.setNode(t, n), r !== void 0 && e.setParent(t, r);
|
|
1841
|
+
}), a.forEach(({ edge: t, label: n }) => {
|
|
1842
|
+
e.setEdge(t, n);
|
|
1843
|
+
}), n.nodes().forEach((r) => {
|
|
1844
|
+
if (r === t) return;
|
|
1845
|
+
let i = n.node(r), a = e.node(r);
|
|
1846
|
+
a && i && typeof i.x == "number" && typeof i.y == "number" && (a.x = s + (i.x - l), a.y = c + (i.y - u));
|
|
1847
|
+
}), delete o._dagreClusterSubgraph;
|
|
1848
|
+
}), r.forEach((t) => {
|
|
1849
|
+
let n = e.node(t), r = i[t];
|
|
1850
|
+
if (n && n.rankdir && n._dagreClusterSubgraph && r) {
|
|
1851
|
+
let i = n._dagreClusterSubgraph, a = n.x ?? 0, o = n.y ?? 0, s = (r.minX + r.maxX) / 2, c = (r.minY + r.maxY) / 2;
|
|
1852
|
+
i.nodes().forEach((n) => {
|
|
1853
|
+
if (n === t) return;
|
|
1854
|
+
let r = i.node(n), l = e.node(n);
|
|
1855
|
+
if (l && r && typeof r.x == "number" && typeof r.y == "number") {
|
|
1856
|
+
let e = r.x - s, t = r.y - c;
|
|
1857
|
+
l.x = a + e, l.y = o + t;
|
|
1858
|
+
}
|
|
1859
|
+
}), delete n._dagreClusterSubgraph;
|
|
1860
|
+
}
|
|
1644
1861
|
});
|
|
1645
1862
|
}
|
|
1646
|
-
function
|
|
1647
|
-
t(" makeSpaceForEdgeLabels", () =>
|
|
1863
|
+
function Cn(e, t, n) {
|
|
1864
|
+
n?.useDynamic === !1 && (X = null, Z = null), t(" makeSpaceForEdgeLabels", () => Pn(e)), t(" removeSelfEdges", () => Un(e)), t(" acyclic", () => We(e, X)), t(" nestingGraph.run", () => Ct(e)), t(" rank", () => mt(D(e))), t(" injectEdgeLabelProxies", () => Fn(e)), t(" removeEmptyRanks", () => ke(e)), t(" nestingGraph.cleanup", () => Et(e)), t(" normalizeRanks", () => Oe(e)), t(" assignRankMinMax", () => In(e)), t(" removeEdgeLabelProxies", () => Ln(e)), t(" normalize.run", () => Je(e)), t(" parentDummyChains", () => yt(e)), t(" addBorderSegments", () => Dt(e)), t(" order", () => Qt(e, n, Z)), t(" insertSelfEdges", () => Wn(e)), t(" adjustCoordinateSystem", () => At(e)), t(" position", () => vn(e, n.corePath)), t(" positionSelfEdges", () => Gn(e)), Z = JSON.parse(JSON.stringify(e._nodes)), t(" removeBorderNodes", () => Hn(e)), t(" normalize.undo", () => Xe(e)), t(" fixupEdgeLabelCoords", () => Bn(e)), t(" undoCoordinateSystem", () => jt(e)), t(" translateGraph", () => Rn(e)), t(" assignNodeIntersects", () => zn(e)), t(" reversePoints", () => Vn(e)), t(" acyclic.undo", () => Ke(e)), X = e;
|
|
1648
1865
|
}
|
|
1649
|
-
function
|
|
1866
|
+
function wn(e, t) {
|
|
1650
1867
|
e.nodes().forEach((n) => {
|
|
1651
1868
|
let r = e.node(n), i = t.node(n);
|
|
1652
1869
|
r && (r.x = i.x, r.y = i.y, r.order = i.order, r.rank = i.rank, t.children(n).length && (r.width = i.width, r.height = i.height));
|
|
@@ -1655,89 +1872,89 @@ function bn(e, t) {
|
|
|
1655
1872
|
r.points = i.points, Object.hasOwn(i, "x") && (r.x = i.x, r.y = i.y);
|
|
1656
1873
|
}), e.graph().width = t.graph().width, e.graph().height = t.graph().height;
|
|
1657
1874
|
}
|
|
1658
|
-
var
|
|
1875
|
+
var Tn = [
|
|
1659
1876
|
"nodesep",
|
|
1660
1877
|
"edgesep",
|
|
1661
1878
|
"ranksep",
|
|
1662
1879
|
"marginx",
|
|
1663
1880
|
"marginy"
|
|
1664
|
-
],
|
|
1881
|
+
], En = {
|
|
1665
1882
|
ranksep: 50,
|
|
1666
1883
|
edgesep: 20,
|
|
1667
1884
|
nodesep: 50,
|
|
1668
1885
|
rankdir: "TB",
|
|
1669
1886
|
rankalign: "center"
|
|
1670
|
-
},
|
|
1887
|
+
}, Dn = [
|
|
1671
1888
|
"acyclicer",
|
|
1672
1889
|
"ranker",
|
|
1673
1890
|
"rankdir",
|
|
1674
1891
|
"align",
|
|
1675
1892
|
"rankalign"
|
|
1676
|
-
],
|
|
1893
|
+
], On = [
|
|
1677
1894
|
"width",
|
|
1678
1895
|
"height",
|
|
1679
1896
|
"rank"
|
|
1680
|
-
],
|
|
1897
|
+
], kn = {
|
|
1681
1898
|
width: 0,
|
|
1682
1899
|
height: 0
|
|
1683
|
-
},
|
|
1900
|
+
}, An = [
|
|
1684
1901
|
"minlen",
|
|
1685
1902
|
"weight",
|
|
1686
1903
|
"width",
|
|
1687
1904
|
"height",
|
|
1688
1905
|
"labeloffset"
|
|
1689
|
-
],
|
|
1906
|
+
], jn = {
|
|
1690
1907
|
minlen: 1,
|
|
1691
1908
|
weight: 1,
|
|
1692
1909
|
width: 0,
|
|
1693
1910
|
height: 0,
|
|
1694
1911
|
labeloffset: 10,
|
|
1695
1912
|
labelpos: "r"
|
|
1696
|
-
},
|
|
1697
|
-
function
|
|
1698
|
-
let t = new
|
|
1913
|
+
}, Mn = ["labelpos"];
|
|
1914
|
+
function Nn(e) {
|
|
1915
|
+
let t = new h({
|
|
1699
1916
|
multigraph: !0,
|
|
1700
1917
|
compound: !0
|
|
1701
|
-
}), n =
|
|
1702
|
-
return t.setGraph(Object.assign({},
|
|
1703
|
-
let r =
|
|
1704
|
-
Object.keys(
|
|
1705
|
-
r[e] === void 0 && (r[e] =
|
|
1918
|
+
}), n = $(e.graph());
|
|
1919
|
+
return t.setGraph(Object.assign({}, En, Q(n, Tn), I(n, Dn))), e.nodes().forEach((n) => {
|
|
1920
|
+
let r = Q($(e.node(n)), On);
|
|
1921
|
+
Object.keys(kn).forEach((e) => {
|
|
1922
|
+
r[e] === void 0 && (r[e] = kn[e]);
|
|
1706
1923
|
}), t.setNode(n, r);
|
|
1707
1924
|
let i = e.parent(n);
|
|
1708
1925
|
i !== void 0 && t.setParent(n, i);
|
|
1709
1926
|
}), e.edges().forEach((n) => {
|
|
1710
|
-
let r =
|
|
1711
|
-
t.setEdge(n, Object.assign({},
|
|
1927
|
+
let r = $(e.edge(n));
|
|
1928
|
+
t.setEdge(n, Object.assign({}, jn, Q(r, An), I(r, Mn)));
|
|
1712
1929
|
}), t;
|
|
1713
1930
|
}
|
|
1714
|
-
function
|
|
1931
|
+
function Pn(e) {
|
|
1715
1932
|
let t = e.graph();
|
|
1716
1933
|
t.ranksep /= 2, e.edges().forEach((n) => {
|
|
1717
1934
|
let r = e.edge(n);
|
|
1718
|
-
r.minlen *= 2, r.labelpos.toLowerCase() !== "c" && (t.rankdir === "TB" || t.rankdir === "BT" ? r.width += r.labeloffset : r.height += r.labeloffset);
|
|
1935
|
+
r.minlen *= 2, (r.labelpos ?? "r").toLowerCase() !== "c" && (t.rankdir === "TB" || t.rankdir === "BT" ? r.width += r.labeloffset : r.height += r.labeloffset);
|
|
1719
1936
|
});
|
|
1720
1937
|
}
|
|
1721
|
-
function
|
|
1938
|
+
function Fn(e) {
|
|
1722
1939
|
e.edges().forEach((t) => {
|
|
1723
1940
|
let n = e.edge(t);
|
|
1724
1941
|
if (n.width && n.height) {
|
|
1725
1942
|
let n = e.node(t.v);
|
|
1726
|
-
|
|
1943
|
+
E(e, "edge-proxy", {
|
|
1727
1944
|
rank: (e.node(t.w).rank - n.rank) / 2 + n.rank,
|
|
1728
1945
|
e: t
|
|
1729
1946
|
}, "_ep");
|
|
1730
1947
|
}
|
|
1731
1948
|
});
|
|
1732
1949
|
}
|
|
1733
|
-
function
|
|
1950
|
+
function In(e) {
|
|
1734
1951
|
let t = 0;
|
|
1735
1952
|
e.nodes().forEach((n) => {
|
|
1736
1953
|
let r = e.node(n);
|
|
1737
1954
|
r.borderTop && (r.minRank = e.node(r.borderTop).rank, r.maxRank = e.node(r.borderBottom).rank, t = Math.max(t, r.maxRank));
|
|
1738
1955
|
}), e.graph().maxRank = t;
|
|
1739
1956
|
}
|
|
1740
|
-
function
|
|
1957
|
+
function Ln(e) {
|
|
1741
1958
|
e.nodes().forEach((t) => {
|
|
1742
1959
|
let n = e.node(t);
|
|
1743
1960
|
if (n.dummy === "edge-proxy") {
|
|
@@ -1746,7 +1963,7 @@ function Nn(e) {
|
|
|
1746
1963
|
}
|
|
1747
1964
|
});
|
|
1748
1965
|
}
|
|
1749
|
-
function
|
|
1966
|
+
function Rn(e) {
|
|
1750
1967
|
let t = Infinity, n = 0, r = Infinity, i = 0, a = e.graph(), o = a.marginx || 0, s = a.marginy || 0;
|
|
1751
1968
|
function c(e) {
|
|
1752
1969
|
let a = e.x, o = e.y, s = e.width, c = e.height;
|
|
@@ -1765,13 +1982,14 @@ function Pn(e) {
|
|
|
1765
1982
|
}), Object.hasOwn(i, "x") && (i.x -= t), Object.hasOwn(i, "y") && (i.y -= r);
|
|
1766
1983
|
}), a.width = n - t + o, a.height = i - r + s;
|
|
1767
1984
|
}
|
|
1768
|
-
function
|
|
1985
|
+
function zn(e) {
|
|
1769
1986
|
e.edges().forEach((t) => {
|
|
1987
|
+
if (t.v === t.w) return;
|
|
1770
1988
|
let n = e.edge(t), r = e.node(t.v), i = e.node(t.w), a, o;
|
|
1771
|
-
n.points ? (a = n.points[0], o = n.points[n.points.length - 1]) : (n.points = [], a = i, o = r), n.points.unshift(
|
|
1989
|
+
n.points ? (a = n.points[0], o = n.points[n.points.length - 1]) : (n.points = [], a = i, o = r), n.points.unshift(O(r, a)), n.points.push(O(i, o));
|
|
1772
1990
|
});
|
|
1773
1991
|
}
|
|
1774
|
-
function
|
|
1992
|
+
function Bn(e) {
|
|
1775
1993
|
e.edges().forEach((t) => {
|
|
1776
1994
|
let n = e.edge(t);
|
|
1777
1995
|
if (Object.hasOwn(n, "x")) switch ((n.labelpos === "l" || n.labelpos === "r") && (n.width -= n.labeloffset), n.labelpos) {
|
|
@@ -1784,13 +2002,13 @@ function In(e) {
|
|
|
1784
2002
|
}
|
|
1785
2003
|
});
|
|
1786
2004
|
}
|
|
1787
|
-
function
|
|
2005
|
+
function Vn(e) {
|
|
1788
2006
|
e.edges().forEach((t) => {
|
|
1789
2007
|
let n = e.edge(t);
|
|
1790
2008
|
n.reversed && n.points.reverse();
|
|
1791
2009
|
});
|
|
1792
2010
|
}
|
|
1793
|
-
function
|
|
2011
|
+
function Hn(e) {
|
|
1794
2012
|
e.nodes().forEach((t) => {
|
|
1795
2013
|
if (e.children(t).length) {
|
|
1796
2014
|
let n = e.node(t), r = e.node(n.borderTop), i = e.node(n.borderBottom), a = e.node(n.borderLeft[n.borderLeft.length - 1]), o = e.node(n.borderRight[n.borderRight.length - 1]);
|
|
@@ -1800,7 +2018,7 @@ function Rn(e) {
|
|
|
1800
2018
|
e.node(t).dummy === "border" && e.removeNode(t);
|
|
1801
2019
|
});
|
|
1802
2020
|
}
|
|
1803
|
-
function
|
|
2021
|
+
function Un(e) {
|
|
1804
2022
|
e.edges().forEach((t) => {
|
|
1805
2023
|
if (t.v === t.w) {
|
|
1806
2024
|
let n = e.node(t.v);
|
|
@@ -1811,58 +2029,129 @@ function zn(e) {
|
|
|
1811
2029
|
}
|
|
1812
2030
|
});
|
|
1813
2031
|
}
|
|
1814
|
-
function
|
|
1815
|
-
|
|
2032
|
+
function Wn(e) {
|
|
2033
|
+
k(e).forEach((t) => {
|
|
1816
2034
|
let n = 0;
|
|
1817
2035
|
t.forEach((t, r) => {
|
|
1818
2036
|
let i = e.node(t);
|
|
1819
|
-
i.order = r + n, (i.selfEdges || []).forEach((t) => {
|
|
1820
|
-
|
|
2037
|
+
typeof i.rank != "number" && (i.rank = 0), i.order = r + n, (i.selfEdges || []).forEach((t) => {
|
|
2038
|
+
E(e, "selfedge", {
|
|
1821
2039
|
width: t.label.width,
|
|
1822
2040
|
height: t.label.height,
|
|
1823
2041
|
rank: i.rank,
|
|
1824
2042
|
order: r + ++n,
|
|
1825
2043
|
e: t.e,
|
|
1826
|
-
|
|
1827
|
-
}, "_se")
|
|
2044
|
+
edgeLabel: t.label
|
|
2045
|
+
}, "_se"), (!Array.isArray(t.label.points) || t.label.points.length !== 7) && (t.label.points = [
|
|
2046
|
+
{
|
|
2047
|
+
x: 0,
|
|
2048
|
+
y: -10
|
|
2049
|
+
},
|
|
2050
|
+
{
|
|
2051
|
+
x: 0,
|
|
2052
|
+
y: -10
|
|
2053
|
+
},
|
|
2054
|
+
{
|
|
2055
|
+
x: 0,
|
|
2056
|
+
y: 0
|
|
2057
|
+
},
|
|
2058
|
+
{
|
|
2059
|
+
x: 0,
|
|
2060
|
+
y: 10
|
|
2061
|
+
},
|
|
2062
|
+
{
|
|
2063
|
+
x: 0,
|
|
2064
|
+
y: 10
|
|
2065
|
+
},
|
|
2066
|
+
{
|
|
2067
|
+
x: 0,
|
|
2068
|
+
y: 0
|
|
2069
|
+
},
|
|
2070
|
+
{
|
|
2071
|
+
x: 0,
|
|
2072
|
+
y: 0
|
|
2073
|
+
}
|
|
2074
|
+
]);
|
|
1828
2075
|
}), delete i.selfEdges;
|
|
1829
2076
|
});
|
|
1830
2077
|
});
|
|
1831
2078
|
}
|
|
1832
|
-
function
|
|
2079
|
+
function Gn(e) {
|
|
1833
2080
|
e.nodes().forEach((t) => {
|
|
1834
|
-
let n = e.node(t);
|
|
2081
|
+
let n = e.node(t), r = (e) => typeof e == "number" && isFinite(e);
|
|
1835
2082
|
if (n.dummy === "selfedge") {
|
|
1836
|
-
let
|
|
1837
|
-
|
|
2083
|
+
let i = n, a = e.node(i.e.v), o = r(a?.x) ? a.x : 0, s = r(a?.y) ? a.y : 0, c = r(a?.width) ? a.width : 0, l = r(a?.height) ? a.height : 0, u = r(n.x) ? n.x : o, d = r(n.y) ? n.y : s, f = c / 2, p = l / 2;
|
|
2084
|
+
i.edgeLabel.points = [
|
|
1838
2085
|
{
|
|
1839
|
-
x:
|
|
1840
|
-
y:
|
|
2086
|
+
x: u + f,
|
|
2087
|
+
y: d - p
|
|
1841
2088
|
},
|
|
1842
2089
|
{
|
|
1843
|
-
x:
|
|
1844
|
-
y:
|
|
2090
|
+
x: u + f,
|
|
2091
|
+
y: d - p
|
|
1845
2092
|
},
|
|
1846
2093
|
{
|
|
1847
|
-
x:
|
|
1848
|
-
y:
|
|
2094
|
+
x: u,
|
|
2095
|
+
y: d
|
|
1849
2096
|
},
|
|
1850
2097
|
{
|
|
1851
|
-
x:
|
|
1852
|
-
y:
|
|
2098
|
+
x: u - f,
|
|
2099
|
+
y: d + p
|
|
1853
2100
|
},
|
|
1854
2101
|
{
|
|
1855
|
-
x:
|
|
1856
|
-
y:
|
|
2102
|
+
x: u - f,
|
|
2103
|
+
y: d + p
|
|
2104
|
+
},
|
|
2105
|
+
{
|
|
2106
|
+
x: u,
|
|
2107
|
+
y: d
|
|
2108
|
+
},
|
|
2109
|
+
{
|
|
2110
|
+
x: u,
|
|
2111
|
+
y: d
|
|
1857
2112
|
}
|
|
1858
|
-
],
|
|
1859
|
-
}
|
|
2113
|
+
], i.edgeLabel.x = u, i.edgeLabel.y = d, e.setEdge(i.e, i.edgeLabel), e.removeNode(t);
|
|
2114
|
+
} else n && Array.isArray(n.selfEdges) && n.selfEdges.forEach((e) => {
|
|
2115
|
+
if (!Array.isArray(e.label.points) || e.label.points.length !== 7) {
|
|
2116
|
+
let t = r(n.x) ? n.x : 0, i = r(n.y) ? n.y : 0, a = r(n.width) ? n.width : 0, o = r(n.height) ? n.height : 0, s = a / 2, c = o / 2;
|
|
2117
|
+
e.label.points = [
|
|
2118
|
+
{
|
|
2119
|
+
x: t + s,
|
|
2120
|
+
y: i - c
|
|
2121
|
+
},
|
|
2122
|
+
{
|
|
2123
|
+
x: t + s,
|
|
2124
|
+
y: i - c
|
|
2125
|
+
},
|
|
2126
|
+
{
|
|
2127
|
+
x: t,
|
|
2128
|
+
y: i
|
|
2129
|
+
},
|
|
2130
|
+
{
|
|
2131
|
+
x: t - s,
|
|
2132
|
+
y: i + c
|
|
2133
|
+
},
|
|
2134
|
+
{
|
|
2135
|
+
x: t - s,
|
|
2136
|
+
y: i + c
|
|
2137
|
+
},
|
|
2138
|
+
{
|
|
2139
|
+
x: t,
|
|
2140
|
+
y: i
|
|
2141
|
+
},
|
|
2142
|
+
{
|
|
2143
|
+
x: t,
|
|
2144
|
+
y: i
|
|
2145
|
+
}
|
|
2146
|
+
];
|
|
2147
|
+
}
|
|
2148
|
+
});
|
|
1860
2149
|
});
|
|
1861
2150
|
}
|
|
1862
|
-
function
|
|
1863
|
-
return
|
|
2151
|
+
function Q(e, t) {
|
|
2152
|
+
return L(I(e, t), Number);
|
|
1864
2153
|
}
|
|
1865
|
-
function
|
|
2154
|
+
function $(e) {
|
|
1866
2155
|
let t = {};
|
|
1867
2156
|
return e && Object.entries(e).forEach(([e, n]) => {
|
|
1868
2157
|
typeof e == "string" && (e = e.toLowerCase()), t[e] = n;
|
|
@@ -1870,7 +2159,7 @@ function Q(e) {
|
|
|
1870
2159
|
}
|
|
1871
2160
|
//#endregion
|
|
1872
2161
|
//#region src/erdDiagram.ts
|
|
1873
|
-
var
|
|
2162
|
+
var Kn = 160, qn = 50, Jn = 8, Yn = 24, Xn = {
|
|
1874
2163
|
child: {
|
|
1875
2164
|
fill: "#dae8fc",
|
|
1876
2165
|
stroke: "#6c8ebf"
|
|
@@ -1879,20 +2168,20 @@ var Hn = 160, Un = 50, Wn = 8, Gn = 24, Kn = {
|
|
|
1879
2168
|
fill: "#d5e8d4",
|
|
1880
2169
|
stroke: "#82b366"
|
|
1881
2170
|
}
|
|
1882
|
-
},
|
|
1883
|
-
function
|
|
1884
|
-
let
|
|
1885
|
-
function
|
|
2171
|
+
}, Zn = "dpuse-tool-d3-erd-arrow";
|
|
2172
|
+
function Qn(t, n, r = {}) {
|
|
2173
|
+
let i = r.nodeWidth ?? Kn, a = r.nodeHeight ?? qn, c = r.padding ?? Jn, l = r.selfEdgeSize ?? Yn, u = r.nodeColors ?? Xn, d = r.orderConstraints ?? [];
|
|
2174
|
+
function p() {
|
|
1886
2175
|
e(n).selectAll("svg").remove();
|
|
1887
|
-
let r = new
|
|
2176
|
+
let r = new f.Graph();
|
|
1888
2177
|
r.setGraph({
|
|
1889
2178
|
rankdir: "TB",
|
|
1890
2179
|
nodesep: 40,
|
|
1891
2180
|
ranksep: 60
|
|
1892
2181
|
}), r.setDefaultEdgeLabel(() => ({}));
|
|
1893
2182
|
for (let e of t.nodes) r.setNode(e.id, {
|
|
1894
|
-
width:
|
|
1895
|
-
height:
|
|
2183
|
+
width: i,
|
|
2184
|
+
height: a,
|
|
1896
2185
|
label: e.label,
|
|
1897
2186
|
typeId: e.typeId
|
|
1898
2187
|
});
|
|
@@ -1900,35 +2189,35 @@ function qn(t, n, r = {}) {
|
|
|
1900
2189
|
width: l,
|
|
1901
2190
|
height: l
|
|
1902
2191
|
}) : r.setEdge(e.source, e.target);
|
|
1903
|
-
|
|
1904
|
-
let { width:
|
|
1905
|
-
|
|
1906
|
-
let
|
|
1907
|
-
|
|
1908
|
-
let
|
|
2192
|
+
bn(r, { constraints: d });
|
|
2193
|
+
let { width: p = 0, height: m = 0 } = r.graph(), h = p + c * 2, g = m + c * 2, _ = e(n).append("svg").attr("viewBox", `0 0 ${String(h)} ${String(g)}`).attr("width", h).attr("height", g), v = _.append("g").attr("transform", `translate(${String(c)}, ${String(c)})`);
|
|
2194
|
+
_.append("defs").append("marker").attr("id", Zn).attr("viewBox", "0 0 10 10").attr("refX", 9).attr("refY", 5).attr("markerWidth", 6).attr("markerHeight", 6).attr("orient", "auto-start-reverse").append("path").attr("d", "M 0 0 L 10 5 L 0 10 z").attr("fill", "#6c8ebf");
|
|
2195
|
+
let y = s().x((e) => e.x).y((e) => e.y).curve(o);
|
|
2196
|
+
v.append("g").attr("fill", "none").attr("stroke", "#6c8ebf").attr("stroke-width", 1.5).selectAll("path").data(r.edges()).join("path").attr("marker-end", `url(#${Zn})`).attr("d", (e) => e.v === e.w ? $n(r.node(e.v), l) : y(r.edge(e).points ?? []) ?? "");
|
|
2197
|
+
let b = v.append("g").selectAll("g").data(r.nodes()).join("g").attr("transform", (e) => {
|
|
1909
2198
|
let t = r.node(e);
|
|
1910
2199
|
return `translate(${String((t.x ?? 0) - t.width / 2)}, ${String((t.y ?? 0) - t.height / 2)})`;
|
|
1911
2200
|
});
|
|
1912
|
-
|
|
1913
|
-
let
|
|
1914
|
-
if (
|
|
1915
|
-
return
|
|
2201
|
+
b.append("rect").attr("width", (e) => r.node(e).width).attr("height", (e) => r.node(e).height).attr("rx", 6).attr("fill", (e) => u[r.node(e).typeId].fill).attr("stroke", (e) => u[r.node(e).typeId].stroke), b.append("text").attr("x", (e) => r.node(e).width / 2).attr("y", (e) => r.node(e).height / 2).attr("text-anchor", "middle").attr("dominant-baseline", "middle").attr("font-family", "Helvetica, Arial, sans-serif").attr("font-size", 14).attr("fill", "#000000").text((e) => r.node(e).label ?? "");
|
|
2202
|
+
let x = _.node();
|
|
2203
|
+
if (x == null) throw Error("Failed to create ERD diagram SVG element.");
|
|
2204
|
+
return x;
|
|
1916
2205
|
}
|
|
1917
|
-
let
|
|
2206
|
+
let m = p();
|
|
1918
2207
|
return {
|
|
1919
2208
|
resize: () => {
|
|
1920
|
-
|
|
2209
|
+
m = p();
|
|
1921
2210
|
},
|
|
1922
2211
|
get svg() {
|
|
1923
|
-
return
|
|
2212
|
+
return m;
|
|
1924
2213
|
}
|
|
1925
2214
|
};
|
|
1926
2215
|
}
|
|
1927
|
-
function
|
|
2216
|
+
function $n(e, t) {
|
|
1928
2217
|
let n = (e.x ?? 0) + e.width / 2, r = n + t, i = (e.y ?? 0) - e.height / 4, a = (e.y ?? 0) + e.height / 4;
|
|
1929
2218
|
return `M ${String(n)} ${String(i)} C ${String(r)} ${String(i)}, ${String(r)} ${String(a)}, ${String(n)} ${String(a)}`;
|
|
1930
2219
|
}
|
|
1931
2220
|
//#endregion
|
|
1932
|
-
export {
|
|
2221
|
+
export { Qn as renderErdDiagram };
|
|
1933
2222
|
|
|
1934
|
-
//# sourceMappingURL=erdDiagram-
|
|
2223
|
+
//# sourceMappingURL=erdDiagram-C-wRJWHp.js.map
|