minerva-design 1.6.0 → 1.7.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/CHANGELOG.md +13 -0
- package/dist/charts/engine/data.cjs +1 -1
- package/dist/charts/engine/data.cjs.map +1 -1
- package/dist/charts/engine/data.d.cts +2 -0
- package/dist/charts/engine/data.d.ts +2 -0
- package/dist/charts/engine/data.js +6 -4
- package/dist/charts/engine/data.js.map +1 -1
- package/dist/charts/engine/defaults.cjs +1 -1
- package/dist/charts/engine/defaults.cjs.map +1 -1
- package/dist/charts/engine/defaults.js +22 -18
- package/dist/charts/engine/defaults.js.map +1 -1
- package/dist/charts/engine/graph/chart.cjs +1 -1
- package/dist/charts/engine/graph/chart.cjs.map +1 -1
- package/dist/charts/engine/graph/chart.js +532 -493
- package/dist/charts/engine/graph/chart.js.map +1 -1
- package/dist/charts/engine/graph/geometry.cjs +1 -1
- package/dist/charts/engine/graph/geometry.cjs.map +1 -1
- package/dist/charts/engine/graph/geometry.d.cts +12 -2
- package/dist/charts/engine/graph/geometry.d.ts +12 -2
- package/dist/charts/engine/graph/geometry.js +35 -31
- package/dist/charts/engine/graph/geometry.js.map +1 -1
- package/dist/charts/engine/model.cjs +1 -1
- package/dist/charts/engine/model.cjs.map +1 -1
- package/dist/charts/engine/model.js +95 -74
- package/dist/charts/engine/model.js.map +1 -1
- package/dist/charts/engine/orderbook/field.cjs +1 -1
- package/dist/charts/engine/orderbook/field.cjs.map +1 -1
- package/dist/charts/engine/orderbook/field.d.cts +15 -2
- package/dist/charts/engine/orderbook/field.d.ts +15 -2
- package/dist/charts/engine/orderbook/field.js +21 -9
- package/dist/charts/engine/orderbook/field.js.map +1 -1
- package/dist/charts/engine/orderbook/heatmap.cjs +1 -1
- package/dist/charts/engine/orderbook/heatmap.cjs.map +1 -1
- package/dist/charts/engine/orderbook/heatmap.d.cts +29 -0
- package/dist/charts/engine/orderbook/heatmap.d.ts +29 -0
- package/dist/charts/engine/orderbook/heatmap.js +576 -453
- package/dist/charts/engine/orderbook/heatmap.js.map +1 -1
- package/dist/charts/engine/orderbook/types.d.cts +36 -11
- package/dist/charts/engine/orderbook/types.d.ts +36 -11
- package/dist/charts/engine/presets.cjs +1 -1
- package/dist/charts/engine/presets.cjs.map +1 -1
- package/dist/charts/engine/presets.d.cts +16 -3
- package/dist/charts/engine/presets.d.ts +16 -3
- package/dist/charts/engine/presets.js +42 -32
- package/dist/charts/engine/presets.js.map +1 -1
- package/dist/charts/engine/scene.cjs +1 -1
- package/dist/charts/engine/scene.cjs.map +1 -1
- package/dist/charts/engine/scene.d.cts +4 -2
- package/dist/charts/engine/scene.d.ts +4 -2
- package/dist/charts/engine/scene.js +185 -107
- package/dist/charts/engine/scene.js.map +1 -1
- package/dist/charts/engine/three-d/oit.cjs +119 -34
- package/dist/charts/engine/three-d/oit.cjs.map +1 -1
- package/dist/charts/engine/three-d/oit.d.cts +65 -10
- package/dist/charts/engine/three-d/oit.d.ts +65 -10
- package/dist/charts/engine/three-d/oit.js +119 -34
- package/dist/charts/engine/three-d/oit.js.map +1 -1
- package/dist/charts/engine/three-d/render-types.cjs.map +1 -1
- package/dist/charts/engine/three-d/render-types.d.cts +19 -0
- package/dist/charts/engine/three-d/render-types.d.ts +19 -0
- package/dist/charts/engine/three-d/render-types.js.map +1 -1
- package/dist/charts/engine/three-d/shaders.cjs +14 -6
- package/dist/charts/engine/three-d/shaders.cjs.map +1 -1
- package/dist/charts/engine/three-d/shaders.d.cts +6 -1
- package/dist/charts/engine/three-d/shaders.d.ts +6 -1
- package/dist/charts/engine/three-d/shaders.js +40 -26
- package/dist/charts/engine/three-d/shaders.js.map +1 -1
- package/dist/charts/engine/three-d/webgl.cjs +1 -1
- package/dist/charts/engine/three-d/webgl.cjs.map +1 -1
- package/dist/charts/engine/three-d/webgl.js +167 -125
- package/dist/charts/engine/three-d/webgl.js.map +1 -1
- package/dist/charts/engine/three-d/webgpu.cjs +1 -1
- package/dist/charts/engine/three-d/webgpu.cjs.map +1 -1
- package/dist/charts/engine/three-d/webgpu.js +169 -140
- package/dist/charts/engine/three-d/webgpu.js.map +1 -1
- package/dist/charts/engine/trading/chart.cjs +1 -1
- package/dist/charts/engine/trading/chart.cjs.map +1 -1
- package/dist/charts/engine/trading/chart.js +1149 -1023
- package/dist/charts/engine/trading/chart.js.map +1 -1
- package/dist/charts/engine/trading/labels.cjs +1 -1
- package/dist/charts/engine/trading/labels.cjs.map +1 -1
- package/dist/charts/engine/trading/labels.js +12 -0
- package/dist/charts/engine/trading/labels.js.map +1 -1
- package/dist/charts/engine/trading/layout.cjs +2 -0
- package/dist/charts/engine/trading/layout.cjs.map +1 -0
- package/dist/charts/engine/trading/layout.d.cts +37 -0
- package/dist/charts/engine/trading/layout.d.ts +37 -0
- package/dist/charts/engine/trading/layout.js +63 -0
- package/dist/charts/engine/trading/layout.js.map +1 -0
- package/dist/charts/engine/trading/types.d.cts +24 -7
- package/dist/charts/engine/trading/types.d.ts +24 -7
- package/dist/charts/engine/types.d.cts +21 -8
- package/dist/charts/engine/types.d.ts +21 -8
- package/dist/core/contracts.cjs +1 -1
- package/dist/core/contracts.cjs.map +1 -1
- package/dist/core/contracts.js +1 -1
- package/dist/core/contracts.js.map +1 -1
- package/dist/native/charts/src/engine/data.cjs +1 -1
- package/dist/native/charts/src/engine/data.cjs.map +1 -1
- package/dist/native/charts/src/engine/data.js +6 -4
- package/dist/native/charts/src/engine/data.js.map +1 -1
- package/dist/native/charts/src/engine/model.cjs +1 -1
- package/dist/native/charts/src/engine/model.cjs.map +1 -1
- package/dist/native/charts/src/engine/model.js +104 -83
- package/dist/native/charts/src/engine/model.js.map +1 -1
- package/dist/native/charts/src/engine/presets.cjs +1 -1
- package/dist/native/charts/src/engine/presets.cjs.map +1 -1
- package/dist/native/charts/src/engine/presets.js +42 -32
- package/dist/native/charts/src/engine/presets.js.map +1 -1
- package/dist/native/charts/src/engine/scene.cjs +1 -1
- package/dist/native/charts/src/engine/scene.cjs.map +1 -1
- package/dist/native/charts/src/engine/scene.js +185 -107
- package/dist/native/charts/src/engine/scene.js.map +1 -1
- package/dist/taro/index.js +1263 -1152
- package/dist/vue/components/Chart/OrderBookHeatmap.vue.d.ts +11 -0
- package/dist/vue/components/Chart/orderbook.d.ts +7 -0
- package/dist/vue/components/Chart/orderbook.js +2 -0
- package/dist/vue/components/Chart/orderbook.js.map +1 -1
- package/dist/weapp/charts/canvas.js +234 -58
- package/package.json +1 -1
|
@@ -8,14 +8,14 @@ import { forceInit as p, forceKernel as m } from "./force.js";
|
|
|
8
8
|
import { arcPositions as h, circularPositions as g } from "./circular.js";
|
|
9
9
|
import { layeredLayout as _, longestPath as v } from "./dag.js";
|
|
10
10
|
import { createGraphDom as y, sizeCanvas as ee, style as b, swatch as x } from "./dom.js";
|
|
11
|
-
import { arcPath as te, arrowHead as ne, boundaryDistance as re,
|
|
12
|
-
import { fill as
|
|
13
|
-
import { buildModel as
|
|
14
|
-
import { NodeKind as C, computeSizing as
|
|
15
|
-
import { TREE_LEVEL_GAP as
|
|
16
|
-
import { createForceRunner as
|
|
11
|
+
import { arcPath as te, arrowHead as ne, boundaryDistance as re, boxLoopPath as S, cubicPoints as ie, dashPath as ae, distanceToPath as oe, endDirection as se, filledArrow as ce, loopPath as le, orthogonalPath as ue, pathLength as de, pointAt as fe, quadraticPath as pe, roundCorners as me, splinePath as he, trimPath as ge } from "./geometry.js";
|
|
12
|
+
import { fill as _e, graphLocale as ve } from "./labels.js";
|
|
13
|
+
import { buildModel as ye, lineage as be, neighborhood as xe } from "./model.js";
|
|
14
|
+
import { NodeKind as C, computeSizing as Se, labelOf as Ce } from "./sizing.js";
|
|
15
|
+
import { TREE_LEVEL_GAP as we, tidyTreeLayout as Te } from "./tree.js";
|
|
16
|
+
import { createForceRunner as Ee } from "./worker.js";
|
|
17
17
|
//#region src/engine/graph/chart.ts
|
|
18
|
-
var
|
|
18
|
+
var De = [
|
|
19
19
|
"force",
|
|
20
20
|
"dag",
|
|
21
21
|
"tree",
|
|
@@ -25,15 +25,15 @@ var Ee = [
|
|
|
25
25
|
"circular",
|
|
26
26
|
"arc",
|
|
27
27
|
"none"
|
|
28
|
-
],
|
|
28
|
+
], Oe = /* @__PURE__ */ new Set([
|
|
29
29
|
"tree",
|
|
30
30
|
"radial",
|
|
31
31
|
"mindmap",
|
|
32
32
|
"org"
|
|
33
|
-
]),
|
|
33
|
+
]), ke = 5e3, Ae = .4, je = 8, Me = 10, Ne = 14, Pe = 24, Fe = 4e3, Ie = 2e3, Le = 450, Re = 320, ze = 9, Be = 1.25, Ve = 1.4, He = (e, t, n) => {
|
|
34
34
|
let r = t === 1 ? e * 16 : t === 2 ? e * 400 : e;
|
|
35
35
|
return Math.exp(Math.max(-1, Math.min(1, r * (n ? .01 : .0025))));
|
|
36
|
-
},
|
|
36
|
+
}, Ue = (e) => e < .5 ? 4 * e * e * e : 1 - (-2 * e + 2) ** 3 / 2, We = () => {
|
|
37
37
|
let e = /* @__PURE__ */ new Float32Array(1024), t = 0, n = (n) => {
|
|
38
38
|
if (t + n <= e.length) return;
|
|
39
39
|
let r = new Float32Array(Math.max(e.length * 2, t + n));
|
|
@@ -50,8 +50,8 @@ var Ee = [
|
|
|
50
50
|
count: () => t / 2,
|
|
51
51
|
points: () => e.subarray(0, t)
|
|
52
52
|
};
|
|
53
|
-
},
|
|
54
|
-
|
|
53
|
+
}, Ge = (e) => e && De.includes(e) ? e : "force", Ke = (e) => JSON.stringify([
|
|
54
|
+
Ge(e.layout),
|
|
55
55
|
e.direction ?? "",
|
|
56
56
|
e.force ?? null,
|
|
57
57
|
e.dag ? {
|
|
@@ -64,17 +64,17 @@ var Ee = [
|
|
|
64
64
|
e.nodeSize ?? null,
|
|
65
65
|
e.nodeShape ?? null,
|
|
66
66
|
e.nodeLabels === !1
|
|
67
|
-
]),
|
|
68
|
-
let w =
|
|
69
|
-
|
|
70
|
-
},
|
|
67
|
+
]), qe = (De, qe) => {
|
|
68
|
+
let w = De.ownerDocument, Ye = w.defaultView, T = y(De), E = T.stage, D = qe, O = u(T.root, D.palette), Xe = Je(O), k = ve(D.locale, D.labels), A = !1, Ze = /* @__PURE__ */ new Map(), Qe = (e, t) => {
|
|
69
|
+
Ze.get(e)?.forEach((e) => e(t));
|
|
70
|
+
}, $e = (e) => !!Ze.get(e)?.size, et = typeof Ye?.matchMedia == "function" ? Ye.matchMedia("(prefers-reduced-motion: reduce)") : null, tt = () => Ye?.performance?.now() ?? Date.now(), j = ye(D.nodes ?? [], D.edges ?? [], D.groups), M = Ge(D.layout), nt = "TB", rt = Ke(D), N, P = /* @__PURE__ */ new Float64Array(), F = /* @__PURE__ */ new Float64Array(), I = /* @__PURE__ */ new Float64Array(), it = /* @__PURE__ */ new Float64Array(), at = /* @__PURE__ */ new Float64Array(), ot = /* @__PURE__ */ new Float64Array(), st = /* @__PURE__ */ new Uint8Array(), ct = null, lt = null, ut = 1, L = null, dt = null, ft = null, R = null, pt = !1, z = /* @__PURE__ */ new Set(), mt = /* @__PURE__ */ new Set(), ht = null, gt = /* @__PURE__ */ new Int32Array(), _t = [], vt = !0, yt = 0, B = !0, bt = [], xt = 0, V = [], St = [], Ct = /* @__PURE__ */ new Float64Array(), wt = /* @__PURE__ */ new Uint8Array(), Tt = /* @__PURE__ */ new Uint8Array(), Et = [], Dt = [
|
|
71
71
|
.94,
|
|
72
72
|
.27,
|
|
73
73
|
.27,
|
|
74
74
|
1
|
|
75
|
-
],
|
|
76
|
-
|
|
77
|
-
}),
|
|
75
|
+
], Ot = /* @__PURE__ */ new Float64Array(), H = 1, U = 0, W = 0, kt = null, At = !1, jt = !0, Mt = !1, Nt = !1, Pt = !1, G = 0, K = 0, q = null, J = -1, Ft = !1, Y = /* @__PURE__ */ new Set(), It = null, Lt = "", X = null, Rt = 0, zt = () => {}, Bt = new Promise((e) => {
|
|
76
|
+
zt = e;
|
|
77
|
+
}), Vt = 0, Ht = () => {
|
|
78
78
|
let e = D.interaction;
|
|
79
79
|
if (e === !1) return null;
|
|
80
80
|
let t = typeof e == "object" ? e : {};
|
|
@@ -87,11 +87,11 @@ var Ee = [
|
|
|
87
87
|
keyboard: t.keyboard ?? !0,
|
|
88
88
|
zoomRange: t.zoomRange ?? [.02, 8]
|
|
89
89
|
};
|
|
90
|
-
},
|
|
90
|
+
}, Ut = () => Oe.has(M), Wt = () => Ut() && D.tree?.collapsible !== !1, Gt = () => {
|
|
91
91
|
let e = D.animation;
|
|
92
|
-
return e === !1 ||
|
|
93
|
-
},
|
|
94
|
-
let e = D.edgeStyle, t = M === "dag" ||
|
|
92
|
+
return e === !1 || et?.matches ? 0 : typeof e == "number" && e >= 0 ? e : Le;
|
|
93
|
+
}, Kt = () => D.highlight ?? (M === "dag" ? "lineage" : "neighbors"), qt = () => {
|
|
94
|
+
let e = D.edgeStyle, t = M === "dag" || Ut();
|
|
95
95
|
if (e === "straight" || e === "curve" || (e === "spline" || e === "orthogonal") && t) return e;
|
|
96
96
|
if (e) return "curve";
|
|
97
97
|
switch (M) {
|
|
@@ -104,7 +104,7 @@ var Ee = [
|
|
|
104
104
|
case "arc": return "curve";
|
|
105
105
|
default: return "straight";
|
|
106
106
|
}
|
|
107
|
-
},
|
|
107
|
+
}, Jt = (e, n) => {
|
|
108
108
|
let i = O.resolve ? O.resolve(e, n) : r(e) ?? n;
|
|
109
109
|
return i[3] < 1 ? t(O.background, [
|
|
110
110
|
i[0],
|
|
@@ -112,25 +112,25 @@ var Ee = [
|
|
|
112
112
|
i[2],
|
|
113
113
|
1
|
|
114
114
|
], i[3]) : i;
|
|
115
|
-
},
|
|
115
|
+
}, Yt = T.foreground.getContext("2d"), Xt = (e, t) => Yt ? (Yt.font = t, Yt.measureText(e).width) : e.length * 7, Zt = () => {
|
|
116
116
|
let e = /* @__PURE__ */ new Map();
|
|
117
117
|
if (P.length !== j.n) return e;
|
|
118
118
|
for (let t = 0; t < j.n; t++) Number.isFinite(P[t]) && e.set(j.nodes[t].id, {
|
|
119
119
|
x: P[t],
|
|
120
120
|
y: F[t],
|
|
121
|
-
visible: !!
|
|
121
|
+
visible: !!st[t] && !pt
|
|
122
122
|
});
|
|
123
123
|
return e;
|
|
124
|
-
},
|
|
125
|
-
R?.destroy(), R = null,
|
|
126
|
-
},
|
|
124
|
+
}, Qt = () => {
|
|
125
|
+
R?.destroy(), R = null, pt = !1;
|
|
126
|
+
}, $t = () => {
|
|
127
127
|
let e = /* @__PURE__ */ new Set();
|
|
128
128
|
for (let t of z) {
|
|
129
129
|
let n = j.index.get(t);
|
|
130
130
|
n !== void 0 && e.add(n);
|
|
131
131
|
}
|
|
132
132
|
return e;
|
|
133
|
-
},
|
|
133
|
+
}, en = (e, t, n, r) => {
|
|
134
134
|
let i = D.tree ?? {};
|
|
135
135
|
return {
|
|
136
136
|
n: j.n,
|
|
@@ -139,15 +139,15 @@ var Ee = [
|
|
|
139
139
|
width: t,
|
|
140
140
|
height: n,
|
|
141
141
|
type: e,
|
|
142
|
-
direction:
|
|
142
|
+
direction: nt,
|
|
143
143
|
root: i.root === void 0 ? -1 : j.index.get(i.root) ?? -1,
|
|
144
144
|
levelGap: r,
|
|
145
145
|
siblingGap: i.siblingGap ?? (e === "org" ? 20 : e === "mindmap" ? 10 : 12),
|
|
146
|
-
collapsed:
|
|
146
|
+
collapsed: $t(),
|
|
147
147
|
compact: i.compact
|
|
148
148
|
};
|
|
149
|
-
},
|
|
150
|
-
|
|
149
|
+
}, tn = (e, t = !0) => {
|
|
150
|
+
Pt = t;
|
|
151
151
|
let n = j.n, r = new Float64Array(n).fill(NaN), i = new Float64Array(n).fill(NaN), a = new Uint8Array(n), o = 0;
|
|
152
152
|
for (let t = 0; t < n; t++) {
|
|
153
153
|
let n = j.nodes[t], s = e.get(n.id);
|
|
@@ -181,63 +181,63 @@ var Ee = [
|
|
|
181
181
|
alpha: u,
|
|
182
182
|
aspect: d > 0 && f > 0 ? d / f : 1
|
|
183
183
|
}), g = D.force ?? {}, _ = g.animate !== !1, v = g.worker ?? "auto", y = v === !0 || v === "auto" && n >= 2e3;
|
|
184
|
-
if (P = r, F = i, I = r,
|
|
184
|
+
if (P = r, F = i, I = r, it = i, !_ && !y) {
|
|
185
185
|
let e = m()(h);
|
|
186
186
|
for (; e.tick(50););
|
|
187
|
-
e.settle(),
|
|
187
|
+
e.settle(), nn();
|
|
188
188
|
return;
|
|
189
189
|
}
|
|
190
|
-
|
|
190
|
+
pt = !_, R = Ee(h, {
|
|
191
191
|
worker: y,
|
|
192
192
|
stream: _,
|
|
193
|
-
now:
|
|
193
|
+
now: tt,
|
|
194
194
|
onTick: () => {
|
|
195
|
-
|
|
195
|
+
vt = !0, Q();
|
|
196
196
|
},
|
|
197
197
|
onEnd: () => {
|
|
198
|
-
let e =
|
|
199
|
-
|
|
198
|
+
let e = pt;
|
|
199
|
+
pt = !1, vt = !0, !At && Pt && (jt = !0, Mt = !e), Pt = !1, nn(), Q();
|
|
200
200
|
}
|
|
201
201
|
});
|
|
202
|
-
},
|
|
202
|
+
}, nn = () => {
|
|
203
203
|
Promise.resolve().then(() => {
|
|
204
|
-
A ||
|
|
204
|
+
A || Qe("layoutEnd", { layout: M });
|
|
205
205
|
});
|
|
206
|
-
},
|
|
207
|
-
|
|
206
|
+
}, rn = (e, t) => {
|
|
207
|
+
Qt();
|
|
208
208
|
let n = M;
|
|
209
|
-
M =
|
|
209
|
+
M = Ge(D.layout), nt = D.direction ?? (M === "tree" ? "LR" : "TB"), n !== M && (jt = !0);
|
|
210
210
|
let r = j.n;
|
|
211
|
-
L = null,
|
|
211
|
+
L = null, dt = null, ft = null;
|
|
212
212
|
let i = null;
|
|
213
213
|
if (M === "mindmap") {
|
|
214
214
|
let e = new Float64Array(r).fill(1);
|
|
215
|
-
i =
|
|
215
|
+
i = Te(en("mindmap", e, e, 1)).depth;
|
|
216
216
|
}
|
|
217
|
-
N =
|
|
217
|
+
N = Se(j, M, D, i, Xt, O.fontFamily);
|
|
218
218
|
let a = new Uint8Array(r).fill(1), o = new Float64Array(r), s = new Float64Array(r);
|
|
219
219
|
switch (M) {
|
|
220
220
|
case "dag": {
|
|
221
221
|
let e = D.dag ?? {};
|
|
222
|
-
|
|
222
|
+
dt = _({
|
|
223
223
|
n: r,
|
|
224
224
|
source: j.source,
|
|
225
225
|
target: j.target,
|
|
226
226
|
width: N.width,
|
|
227
227
|
height: N.height,
|
|
228
|
-
direction:
|
|
228
|
+
direction: nt,
|
|
229
229
|
layerGap: e.layerGap ?? 56,
|
|
230
230
|
nodeGap: e.nodeGap ?? 24,
|
|
231
231
|
sweeps: e.sweeps ?? 8
|
|
232
|
-
}), o =
|
|
232
|
+
}), o = dt.x, s = dt.y;
|
|
233
233
|
break;
|
|
234
234
|
}
|
|
235
235
|
case "tree":
|
|
236
236
|
case "radial":
|
|
237
237
|
case "mindmap":
|
|
238
238
|
case "org": {
|
|
239
|
-
let e = M, t = D.tree?.levelGap ?? Math.max(
|
|
240
|
-
L =
|
|
239
|
+
let e = M, t = D.tree?.levelGap ?? Math.max(we[e], N.levelGap);
|
|
240
|
+
L = Te(en(e, N.layoutWidth, N.layoutHeight, t)), o = L.x, s = L.y, a.set(L.visible);
|
|
241
241
|
break;
|
|
242
242
|
}
|
|
243
243
|
case "circular":
|
|
@@ -252,7 +252,7 @@ var Ee = [
|
|
|
252
252
|
order: D.circular?.order ?? "group",
|
|
253
253
|
spacing: Math.max(M === "arc" ? 16 : 18, e)
|
|
254
254
|
};
|
|
255
|
-
|
|
255
|
+
ft = M === "arc" ? h(t) : g(t), o = ft.x, s = ft.y;
|
|
256
256
|
break;
|
|
257
257
|
}
|
|
258
258
|
case "none": j.nodes.forEach((t, n) => {
|
|
@@ -262,30 +262,30 @@ var Ee = [
|
|
|
262
262
|
}
|
|
263
263
|
let c = new Uint8Array(r);
|
|
264
264
|
for (let t = 0; t < r; t++) c[t] = +!!e.get(j.nodes[t].id)?.visible;
|
|
265
|
-
if (
|
|
265
|
+
if (st = a, gt = an(), M === "force") tn(e), lt = null, ct = null;
|
|
266
266
|
else {
|
|
267
|
-
I = o,
|
|
268
|
-
let n = t && e.size ?
|
|
267
|
+
I = o, it = s, P = new Float64Array(r), F = new Float64Array(r);
|
|
268
|
+
let n = t && e.size ? Gt() : 0;
|
|
269
269
|
if (n > 0) {
|
|
270
|
-
|
|
270
|
+
at = new Float64Array(r), ot = new Float64Array(r);
|
|
271
271
|
for (let t = 0; t < r; t++) {
|
|
272
272
|
let n = e.get(j.nodes[t].id);
|
|
273
273
|
if (n && n.visible) {
|
|
274
|
-
|
|
274
|
+
at[t] = n.x, ot[t] = n.y;
|
|
275
275
|
continue;
|
|
276
276
|
}
|
|
277
277
|
let r = L ? L.parent[t] : -1, i;
|
|
278
278
|
for (; r >= 0 && !(i = e.get(j.nodes[r].id))?.visible;) r = L.parent[r];
|
|
279
|
-
|
|
279
|
+
at[t] = i?.visible ? i.x : I[t], ot[t] = i?.visible ? i.y : it[t];
|
|
280
280
|
}
|
|
281
|
-
P.set(
|
|
282
|
-
start:
|
|
281
|
+
P.set(at), F.set(ot), ct = c, lt = {
|
|
282
|
+
start: tt(),
|
|
283
283
|
duration: n
|
|
284
|
-
},
|
|
285
|
-
} else P.set(I), F.set(
|
|
284
|
+
}, ut = 0;
|
|
285
|
+
} else P.set(I), F.set(it), lt = null, ct = null;
|
|
286
286
|
}
|
|
287
|
-
|
|
288
|
-
},
|
|
287
|
+
At || (jt = !0, Mt = e.size > 0 && t && M !== "force"), on(), sn(), Ot = new Float64Array(j.m).fill(NaN), Xn = null, vt = !0, B = !0, Lt = "", Hn(), Bn(), Q(), M !== "force" && nn();
|
|
288
|
+
}, an = () => {
|
|
289
289
|
let e = new Int32Array(j.n);
|
|
290
290
|
if (!L) return e;
|
|
291
291
|
let t = [];
|
|
@@ -298,8 +298,8 @@ var Ee = [
|
|
|
298
298
|
i >= 0 && (e[i] += e[r] + 1);
|
|
299
299
|
}
|
|
300
300
|
return e;
|
|
301
|
-
},
|
|
302
|
-
|
|
301
|
+
}, on = () => {
|
|
302
|
+
ht = null;
|
|
303
303
|
let e = D.dag?.criticalPath;
|
|
304
304
|
if (!e || M !== "dag") return;
|
|
305
305
|
let t = new Uint8Array(j.n), n = new Uint8Array(j.m);
|
|
@@ -319,15 +319,15 @@ var Ee = [
|
|
|
319
319
|
t >= 0 && r[t + 1] === j.target[e] && (n[e] = 1);
|
|
320
320
|
}
|
|
321
321
|
}
|
|
322
|
-
|
|
322
|
+
ht = {
|
|
323
323
|
nodes: t,
|
|
324
324
|
edges: n
|
|
325
325
|
};
|
|
326
|
-
},
|
|
326
|
+
}, sn = () => {
|
|
327
327
|
let e = O.background;
|
|
328
|
-
|
|
328
|
+
Xe = Je(O);
|
|
329
329
|
let n = O.palette.length ? O.palette : [O.primary];
|
|
330
|
-
|
|
330
|
+
Et = j.groups.map((e, t) => e.color ? Jt(e.color, n[t % n.length]) : n[t % n.length]), Dt = Jt(D.dag?.criticalColor ?? "var(--danger-color, #ef4444)", [
|
|
331
331
|
.94,
|
|
332
332
|
.27,
|
|
333
333
|
.27,
|
|
@@ -345,36 +345,36 @@ var Ee = [
|
|
|
345
345
|
});
|
|
346
346
|
}
|
|
347
347
|
V = j.nodes.map((e, t) => {
|
|
348
|
-
if (e.color) return
|
|
348
|
+
if (e.color) return Jt(e.color, O.primary);
|
|
349
349
|
let i = j.groupOf[t];
|
|
350
|
-
return i >= 0 ?
|
|
350
|
+
return i >= 0 ? Et[i] : r[t] >= 0 ? n[(r[t] + 1) % n.length] : O.primary;
|
|
351
351
|
});
|
|
352
|
-
let i = t(e, O.textMuted,
|
|
353
|
-
|
|
352
|
+
let i = t(e, O.textMuted, Xe ? .42 : .36), a = D.edgeColor ?? "neutral", o = D.edgeWidth, s = j.edgeValueRange, [c, l] = Array.isArray(o) ? o : typeof o == "number" ? [o, o] : s && s[1] > s[0] ? [1, 5] : [1.25, 1.25];
|
|
353
|
+
St = [], Ct = new Float64Array(j.m), wt = new Uint8Array(j.m), Tt = new Uint8Array(j.m);
|
|
354
354
|
let u = D.arrows ?? M === "dag";
|
|
355
355
|
j.edges.forEach((n, r) => {
|
|
356
356
|
let d = j.source[r], f = j.target[r], p = i;
|
|
357
|
-
n.color ? p =
|
|
357
|
+
n.color ? p = Jt(n.color, i) : a === "source" ? p = t(e, V[d], .55) : a === "target" ? p = t(e, V[f], .55) : M === "mindmap" && (p = t(e, V[f], .7)), St.push(p);
|
|
358
358
|
let m = c;
|
|
359
|
-
Number.isFinite(n.width) && n.width > 0 ? m = n.width : s && s[1] > s[0] && Number.isFinite(n.value) ? m = c + (l - c) * Math.sqrt((n.value - s[0]) / (s[1] - s[0])) : M === "mindmap" && L && o === void 0 && (m = Math.max(1.25, 3.4 - L.depth[f] * .75)),
|
|
359
|
+
Number.isFinite(n.width) && n.width > 0 ? m = n.width : s && s[1] > s[0] && Number.isFinite(n.value) ? m = c + (l - c) * Math.sqrt((n.value - s[0]) / (s[1] - s[0])) : M === "mindmap" && L && o === void 0 && (m = Math.max(1.25, 3.4 - L.depth[f] * .75)), Ct[r] = m, wt[r] = n.directed ?? u ? 1 : 0, Tt[r] = +!!n.dashed;
|
|
360
360
|
}), B = !0;
|
|
361
361
|
}, Z = (e) => {
|
|
362
|
-
if (
|
|
362
|
+
if (pt) return 0;
|
|
363
363
|
let t = j.groupOf[e];
|
|
364
|
-
if (t >= 0 &&
|
|
365
|
-
let n =
|
|
366
|
-
return
|
|
367
|
-
},
|
|
368
|
-
let e = M === "org" ? "TB" :
|
|
364
|
+
if (t >= 0 && mt.has(j.groups[t].id)) return 0;
|
|
365
|
+
let n = st[e], r = ct ? ct[e] : n;
|
|
366
|
+
return lt ? n && r ? 1 : n ? ut : r ? 1 - ut : 0 : n;
|
|
367
|
+
}, cn = (e) => N.kind[e] !== C.Circle, ln = (e, t, n) => t ? [P[e], F[e] + n * N.height[e] / 2] : [P[e] + n * N.width[e] / 2, F[e]], un = () => {
|
|
368
|
+
let e = M === "org" ? "TB" : nt;
|
|
369
369
|
return {
|
|
370
370
|
vertical: M !== "mindmap" && (e === "TB" || e === "BT"),
|
|
371
371
|
sign: e === "BT" || e === "RL" ? -1 : 1
|
|
372
372
|
};
|
|
373
|
-
},
|
|
373
|
+
}, dn = (e, t, n, r) => {
|
|
374
374
|
if (e.length < 4) return e;
|
|
375
|
-
let [i, a] = [e[2] - e[0], e[3] - e[1]], o = Math.hypot(i, a) || 1, [s, c] =
|
|
376
|
-
return
|
|
377
|
-
},
|
|
375
|
+
let [i, a] = [e[2] - e[0], e[3] - e[1]], o = Math.hypot(i, a) || 1, [s, c] = se(e), l = re(cn(t), N.width[t], N.height[t], i / o, a / o), u = re(cn(n), N.width[n], N.height[n], s, c) + +!!r;
|
|
376
|
+
return ge(e, l, u);
|
|
377
|
+
}, fn = (e) => {
|
|
378
378
|
let t = [];
|
|
379
379
|
N.kind[e] === C.Circle && D.nodeLabels !== !1 && t.push(Math.PI / 2);
|
|
380
380
|
for (let n = j.adjStart[e]; n < j.adjStart[e + 1]; n++) {
|
|
@@ -391,107 +391,146 @@ var Ee = [
|
|
|
391
391
|
n > r + 1e-9 && (r = n, i = t[e - 1] + n / 2);
|
|
392
392
|
}
|
|
393
393
|
return i;
|
|
394
|
-
},
|
|
395
|
-
let
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
394
|
+
}, pn = (e) => Math.max(12, Math.min(40, Math.min(N.width[e], N.height[e]) * .9)), mn = (e, t, n) => {
|
|
395
|
+
let r = Math.abs(t) > .5, i = (e) => r ? N.width[e] / 2 : N.height[e] / 2, a = (e) => r ? N.height[e] / 2 : N.width[e] / 2, o = Infinity, s = (r, s, c, l) => {
|
|
396
|
+
let u = r - P[e], d = s - F[e], f = u * t + d * n;
|
|
397
|
+
f <= 0 || Math.abs(u * n - d * t) >= a(e) + l + 4 || (o = Math.min(o, f - i(e) - c));
|
|
398
|
+
};
|
|
399
|
+
for (let t = 0; t < j.n; t++) t !== e && Z(t) > 0 && s(P[t], F[t], i(t), a(t));
|
|
400
|
+
if (dt && !lt) for (let e of dt.routes) for (let t = 2; t < e.length - 2; t += 2) s(e[t], e[t + 1], 0, 0);
|
|
401
|
+
return o;
|
|
402
|
+
}, hn = (e) => {
|
|
403
|
+
let t = pn(e);
|
|
404
|
+
if (M !== "dag" && (!Ut() || M === "radial")) return [fn(e), t];
|
|
405
|
+
let { vertical: n } = un(), r = M === "org" && L?.stacked[e] ? [0] : n ? [0, Math.PI] : [-Math.PI / 2, Math.PI / 2], i = N.kind[e] === C.Circle && D.nodeLabels !== !1, a = r[0], o = -Infinity;
|
|
406
|
+
for (let t of r) {
|
|
407
|
+
let r = j.n > Fe ? Infinity : mn(e, Math.round(Math.cos(t)), Math.round(Math.sin(t)));
|
|
408
|
+
t > 0 && !n && i && (r -= 18), r > o && (o = r, a = t);
|
|
409
|
+
}
|
|
410
|
+
let s = 0;
|
|
411
|
+
for (let t = j.adjStart[e]; t < j.adjStart[e + 1]; t++) {
|
|
412
|
+
let e = j.adjEdge[t];
|
|
413
|
+
j.source[e] === j.target[e] && (s = Math.max(s, j.bend[e]));
|
|
414
|
+
}
|
|
415
|
+
return [a, Math.min(t, Math.max(8, (o - 6) / (1 + .6 * s)))];
|
|
416
|
+
}, gn = (e) => {
|
|
417
|
+
let t = j.source[e], [n, r] = hn(t), i = N.width[t], a = N.height[t], o = r * (1 + .6 * j.bend[e]), s = +!!wt[e];
|
|
418
|
+
if (cn(t)) return S(P[t], F[t], i, a, n, o, Math.max(10, r * .8) * (1 + .35 * j.bend[e]), s);
|
|
419
|
+
let c = (e) => re(!1, i, a, Math.cos(e), Math.sin(e));
|
|
420
|
+
return le(P[t], F[t], n, c(n - .42), c(n + .42) + s, o);
|
|
421
|
+
}, _n = (e, t) => t * Math.min(je, e / (2 * Math.abs(t) + 2)), vn = (e, t, n, r, i, a) => {
|
|
422
|
+
let o = e.slice(), s = o.length - 2, c = +!r, l = (e, t) => {
|
|
423
|
+
let n = r ? N.width[t] : N.height[t], a = _n(n, i);
|
|
424
|
+
if (o[e + c] += a, !cn(t)) {
|
|
425
|
+
let i = r ? F[t] : P[t], s = 1 - c, l = n / 2;
|
|
426
|
+
o[e + s] = i + (o[e + s] >= i ? 1 : -1) * Math.sqrt(Math.max(0, l * l - a * a));
|
|
427
|
+
}
|
|
428
|
+
};
|
|
429
|
+
for (let e = 2; e < s; e += 2) o[e + c] += i * Ne;
|
|
430
|
+
if (l(0, t), l(s, n), a && o.length === 4) {
|
|
431
|
+
let t = [(o[0] + o[2]) / 2, (o[1] + o[3]) / 2];
|
|
432
|
+
t[c] = (e[c] + e[2 + c]) / 2 + i * Pe, o.splice(2, 0, t[0], t[1]);
|
|
433
|
+
}
|
|
434
|
+
return o;
|
|
435
|
+
}, yn = (e, t) => {
|
|
436
|
+
let n = j.source[e], r = j.target[e], i = !!wt[e];
|
|
437
|
+
if (n === r) return gn(e);
|
|
400
438
|
let a = j.bend[e], o = Number.isFinite(a);
|
|
401
439
|
if (M === "arc") {
|
|
402
440
|
let e = o ? 1 + .25 * (n < r ? a : -a) : 1;
|
|
403
|
-
return
|
|
441
|
+
return dn(te(P[n], P[r], F[n], e), n, r, i);
|
|
404
442
|
}
|
|
405
|
-
let s = P[r] - P[n], c = F[r] - F[n], l = o ? a *
|
|
443
|
+
let s = P[r] - P[n], c = F[r] - F[n], l = o ? a * Ae : 0;
|
|
406
444
|
if (t === "straight") {
|
|
407
445
|
if (!l) return null;
|
|
408
446
|
let e = (P[n] + P[r]) / 2, t = (F[n] + F[r]) / 2;
|
|
409
|
-
return
|
|
447
|
+
return dn(pe(P[n], F[n], e - c * l, t + s * l, P[r], F[r]), n, r, i);
|
|
410
448
|
}
|
|
411
449
|
if (M === "circular" && t === "curve") {
|
|
412
450
|
let e = Math.max(0, Math.min(1, D.circular?.tension ?? .8)), t = (P[n] + P[r]) / 2 * (1 - e) - c * l, a = (F[n] + F[r]) / 2 * (1 - e) + s * l;
|
|
413
|
-
return
|
|
451
|
+
return dn(pe(P[n], F[n], t, a, P[r], F[r]), n, r, i);
|
|
414
452
|
}
|
|
415
453
|
if (M === "radial" && t === "spline") {
|
|
416
454
|
let e = Math.hypot(P[n], F[n]), t = Math.hypot(P[r], F[r]), a = Math.atan2(F[n], P[n]), o = Math.atan2(F[r], P[r]), s = (e + t) / 2, c = [P[n], F[n]];
|
|
417
|
-
return
|
|
455
|
+
return ie(c, P[n], F[n], e < 1e-6 ? P[n] : s * Math.cos(a), e < 1e-6 ? F[n] : s * Math.sin(a), s * Math.cos(o), s * Math.sin(o), P[r], F[r]), dn(c, n, r, i);
|
|
418
456
|
}
|
|
419
457
|
if (t === "spline" || t === "orthogonal") {
|
|
420
|
-
let i =
|
|
421
|
-
M === "mindmap" && (
|
|
422
|
-
let
|
|
423
|
-
if (
|
|
458
|
+
let i = un(), s = i.sign;
|
|
459
|
+
M === "mindmap" && (s = P[r] >= P[n] ? 1 : -1);
|
|
460
|
+
let c = dt && !lt ? dt.routes[e] : null, l;
|
|
461
|
+
if (c && c.length >= 4) l = c;
|
|
424
462
|
else {
|
|
425
|
-
let e = i.vertical ? F[r] - F[n] : P[r] - P[n], t = M === "mindmap" || e *
|
|
426
|
-
|
|
463
|
+
let e = i.vertical ? F[r] - F[n] : P[r] - P[n], t = M === "mindmap" || e * s >= 0 ? s : -s;
|
|
464
|
+
l = [...ln(n, i.vertical, t), ...ln(r, i.vertical, -t)];
|
|
427
465
|
}
|
|
428
|
-
|
|
466
|
+
let u = o ? n < r ? a : -a : 0;
|
|
467
|
+
if (u && (l = vn(l, n, r, i.vertical, u, t === "spline")), t === "orthogonal") {
|
|
429
468
|
if (M === "org" && L?.stacked[r] && L.parent[r] === n) {
|
|
430
|
-
let e = F[n] + N.height[n] / 2, t = P[r] - N.width[r] / 2, i = t - 10,
|
|
431
|
-
return
|
|
432
|
-
|
|
469
|
+
let e = F[n] + N.height[n] / 2, t = P[r] - N.width[r] / 2, i = P[n] + _n(N.width[n], u), a = F[r] - _n(N.height[r], u), o = t - 10 + u * 3, s = e + 14 + u * 4;
|
|
470
|
+
return me([
|
|
471
|
+
i,
|
|
433
472
|
e,
|
|
434
|
-
P[n],
|
|
435
|
-
a,
|
|
436
473
|
i,
|
|
474
|
+
s,
|
|
475
|
+
o,
|
|
476
|
+
s,
|
|
477
|
+
o,
|
|
437
478
|
a,
|
|
438
|
-
i,
|
|
439
|
-
F[r],
|
|
440
479
|
t,
|
|
441
|
-
|
|
480
|
+
a
|
|
442
481
|
], 6);
|
|
443
482
|
}
|
|
444
|
-
if (M === "org" &&
|
|
445
|
-
let e = (
|
|
446
|
-
return
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
483
|
+
if (M === "org" && l.length === 4 && !u) {
|
|
484
|
+
let e = (l[1] + l[3]) / 2;
|
|
485
|
+
return me([
|
|
486
|
+
l[0],
|
|
487
|
+
l[1],
|
|
488
|
+
l[0],
|
|
450
489
|
e,
|
|
451
|
-
|
|
490
|
+
l[2],
|
|
452
491
|
e,
|
|
453
|
-
|
|
454
|
-
|
|
492
|
+
l[2],
|
|
493
|
+
l[3]
|
|
455
494
|
], 6);
|
|
456
495
|
}
|
|
457
|
-
return
|
|
496
|
+
return ue(l, i.vertical, M === "org" ? 6 : 8, u * Me);
|
|
458
497
|
}
|
|
459
|
-
return
|
|
498
|
+
return he(l, i.vertical);
|
|
460
499
|
}
|
|
461
500
|
let u = (P[n] + P[r]) / 2, d = (F[n] + F[r]) / 2, f = o ? l : .18;
|
|
462
|
-
return
|
|
463
|
-
},
|
|
464
|
-
let e =
|
|
465
|
-
|
|
466
|
-
for (let t = 0; t < j.m; t++)
|
|
467
|
-
|
|
468
|
-
},
|
|
501
|
+
return dn(pe(P[n], F[n], u - c * f, d + s * f, P[r], F[r]), n, r, i);
|
|
502
|
+
}, bn = () => {
|
|
503
|
+
let e = qt();
|
|
504
|
+
_t = Array(j.m);
|
|
505
|
+
for (let t = 0; t < j.m; t++) _t[t] = Z(j.source[t]) > 0 && Z(j.target[t]) > 0 ? yn(t, e) : null;
|
|
506
|
+
vt = !1, yt++;
|
|
507
|
+
}, xn = (e) => {
|
|
469
508
|
let t = j.source[e], n = j.target[e], r = P[n] - P[t], i = F[n] - F[t], a = Math.hypot(r, i);
|
|
470
509
|
if (a < 1e-9) return null;
|
|
471
|
-
let o = r / a, s = i / a, c = re(
|
|
510
|
+
let o = r / a, s = i / a, c = re(cn(t), N.width[t], N.height[t], o, s), l = re(cn(n), N.width[n], N.height[n], o, s) + +!!wt[e];
|
|
472
511
|
return c + l >= a ? null : [
|
|
473
512
|
P[t] + o * c,
|
|
474
513
|
F[t] + s * c,
|
|
475
514
|
P[n] - o * l,
|
|
476
515
|
F[n] - s * l
|
|
477
516
|
];
|
|
478
|
-
},
|
|
479
|
-
let e = q?.type === "node" ? [q.index] : J >= 0 ? [J] : [...Y], t =
|
|
480
|
-
if (r ===
|
|
481
|
-
if (
|
|
482
|
-
|
|
517
|
+
}, Sn = () => {
|
|
518
|
+
let e = q?.type === "node" ? [q.index] : J >= 0 ? [J] : [...Y], t = Kt(), n = q?.type === "edge" ? q.index : -1, r = `${t}|${e.join(",")}|${n}`;
|
|
519
|
+
if (r === Lt) return;
|
|
520
|
+
if (Lt = r, B = !0, (t === "none" || !e.length) && n < 0) {
|
|
521
|
+
It = null;
|
|
483
522
|
return;
|
|
484
523
|
}
|
|
485
524
|
let i = new Uint8Array(j.n), a = new Uint8Array(j.m);
|
|
486
|
-
if (t !== "none") for (let n of e) t === "lineage" ?
|
|
487
|
-
n >= 0 && (a[n] = 1, i[j.source[n]] = 1, i[j.target[n]] = 1),
|
|
525
|
+
if (t !== "none") for (let n of e) t === "lineage" ? be(j, n, i, a) : xe(j, n, i, a);
|
|
526
|
+
n >= 0 && (a[n] = 1, i[j.source[n]] = 1, i[j.target[n]] = 1), It = {
|
|
488
527
|
nodes: i,
|
|
489
528
|
edges: a,
|
|
490
529
|
accent: (t === "lineage" || e.length !== 1 ? O.primary : V[e[0]]) ?? O.primary
|
|
491
530
|
};
|
|
492
|
-
},
|
|
493
|
-
|
|
494
|
-
let e = O.background, r = [], i =
|
|
531
|
+
}, Cn = () => {
|
|
532
|
+
xt++;
|
|
533
|
+
let e = O.background, r = [], i = qt(), o = j.n > 2e3 ? 2 : 3, s = It, c = [
|
|
495
534
|
/* @__PURE__ */ new Map(),
|
|
496
535
|
/* @__PURE__ */ new Map(),
|
|
497
536
|
/* @__PURE__ */ new Map()
|
|
@@ -500,7 +539,7 @@ var Ee = [
|
|
|
500
539
|
return a || (a = {
|
|
501
540
|
color: t,
|
|
502
541
|
width: r,
|
|
503
|
-
buf:
|
|
542
|
+
buf: We()
|
|
504
543
|
}, c[e].set(i, a)), a.buf;
|
|
505
544
|
}, u = (e) => (6 + e * 1.6) / H, d = (e) => (8 + e * 2.2) / H, f = D.arrowStyle === "filled", p = [
|
|
506
545
|
/* @__PURE__ */ new Map(),
|
|
@@ -515,20 +554,20 @@ var Ee = [
|
|
|
515
554
|
_ || (_ = {
|
|
516
555
|
color: r,
|
|
517
556
|
points: []
|
|
518
|
-
}, p[t].set(g, _)),
|
|
557
|
+
}, p[t].set(g, _)), ce(_.points, m, o, s, c, h, d(i), a), l(t, r, Math.min(i, 1)).pushAll(m);
|
|
519
558
|
};
|
|
520
559
|
for (let n = 0; n < j.m; n++) {
|
|
521
560
|
let r = j.source[n], o = j.target[n], c = Math.min(Z(r), Z(o));
|
|
522
561
|
if (c <= 0) continue;
|
|
523
|
-
let u =
|
|
524
|
-
|
|
525
|
-
let g = l(m, u, p), _ =
|
|
562
|
+
let u = St[n], p = Ct[n], m = 1;
|
|
563
|
+
ht?.edges[n] && (u = Dt, p += 1), s && (s.edges[n] ? (m = 2, ht?.edges[n] || (u = t(e, s.accent, .9)), p += .75) : (m = 0, u = t(e, u, .22))), c < 1 && (u = t(e, u, c));
|
|
564
|
+
let g = l(m, u, p), _ = _t[n] ?? null;
|
|
526
565
|
if (!_) {
|
|
527
566
|
if (i !== "straight" || M === "arc") continue;
|
|
528
|
-
let e =
|
|
567
|
+
let e = xn(n);
|
|
529
568
|
if (!e) continue;
|
|
530
|
-
if (!
|
|
531
|
-
if (g.push(e[0], e[1]), g.push(e[2], e[3]), g.push(a, a),
|
|
569
|
+
if (!Tt[n] && !(f && wt[n])) {
|
|
570
|
+
if (g.push(e[0], e[1]), g.push(e[2], e[3]), g.push(a, a), wt[n]) {
|
|
532
571
|
let t = Math.hypot(e[2] - e[0], e[3] - e[1]) || 1;
|
|
533
572
|
h(g, m, u, p, e[2], e[3], (e[2] - e[0]) / t, (e[3] - e[1]) / t);
|
|
534
573
|
}
|
|
@@ -543,8 +582,8 @@ var Ee = [
|
|
|
543
582
|
}
|
|
544
583
|
if (_.length < 4) continue;
|
|
545
584
|
let v = _;
|
|
546
|
-
if (f &&
|
|
547
|
-
let [e, t] =
|
|
585
|
+
if (f && wt[n] && (v = ge(_.slice(), 0, d(p) * .72)), Tt[n] ? g.pushAll(ae(v, 5 / H, 4 / H, a)) : (g.pushAll(v), g.push(a, a)), wt[n]) {
|
|
586
|
+
let [e, t] = se(_);
|
|
548
587
|
h(g, m, u, p, _[_.length - 2], _[_.length - 1], e, t);
|
|
549
588
|
}
|
|
550
589
|
}
|
|
@@ -554,7 +593,7 @@ var Ee = [
|
|
|
554
593
|
let e = {
|
|
555
594
|
kind: "line",
|
|
556
595
|
key: `edges:${t}:${n}`,
|
|
557
|
-
version:
|
|
596
|
+
version: xt,
|
|
558
597
|
color: i.color,
|
|
559
598
|
points: i.buf.points(),
|
|
560
599
|
count: i.buf.count(),
|
|
@@ -567,7 +606,7 @@ var Ee = [
|
|
|
567
606
|
let i = {
|
|
568
607
|
kind: "area",
|
|
569
608
|
key: `heads:${t}:${e}`,
|
|
570
|
-
version:
|
|
609
|
+
version: xt,
|
|
571
610
|
color: n.color,
|
|
572
611
|
points: Float32Array.from(n.points),
|
|
573
612
|
count: n.points.length / 3,
|
|
@@ -581,38 +620,38 @@ var Ee = [
|
|
|
581
620
|
let g = (n, r) => {
|
|
582
621
|
let i = V[n];
|
|
583
622
|
return s && !s.nodes[n] && (i = t(e, i, .2)), r < 1 ? t(e, i, r) : i;
|
|
584
|
-
}, _ = [], v = [], y = [], ee = [], b = [], x = [], te = /* @__PURE__ */ new Map(), re = /* @__PURE__ */ new Map(), S = M === "mindmap" ? 999 : Math.max(1, Math.min(M === "org" ? 10 : 8, (M === "org" ? 10 : 7) * H)),
|
|
585
|
-
for (let r of
|
|
623
|
+
}, _ = [], v = [], y = [], ee = [], b = [], x = [], te = /* @__PURE__ */ new Map(), re = /* @__PURE__ */ new Map(), S = M === "mindmap" ? 999 : Math.max(1, Math.min(M === "org" ? 10 : 8, (M === "org" ? 10 : 7) * H)), ie = j.n <= ke;
|
|
624
|
+
for (let r of wn()) {
|
|
586
625
|
let i = Z(r);
|
|
587
626
|
if (i <= 0) continue;
|
|
588
627
|
let a = P[r], c = F[r], l = g(r, i), u = Y.has(r), d = q?.type === "node" && q.index === r;
|
|
589
628
|
if (N.kind[r] === C.Circle) {
|
|
590
629
|
let i = Math.max(o, N.width[r] * H);
|
|
591
|
-
|
|
630
|
+
ie && _.push(a, c, i + 3, n(e)), Wt() && L && gt[r] > 0 && !Tn(r) ? ee.push(a, c, i, n(l)) : v.push(a, c, i, n(l)), u ? b.push(a, c, i + 7, n(O.primary)) : d && y.push(a, c, i + 6, n(t(e, V[r], .7)));
|
|
592
631
|
continue;
|
|
593
632
|
}
|
|
594
|
-
let f = N.width[r], p = N.height[r], m = N.kind[r] === C.Solid, h = !!
|
|
595
|
-
h && (ne = t(e,
|
|
596
|
-
let
|
|
633
|
+
let f = N.width[r], p = N.height[r], m = N.kind[r] === C.Solid, h = !!ht?.nodes[r], ne = m ? l : t(e, l, h ? 1 : Xe ? .62 : .5), S = m ? l : t(e, l, Xe ? .2 : .09);
|
|
634
|
+
h && (ne = t(e, Dt, i)), s && !s.nodes[r] && (S = t(e, S, .5), m || (ne = t(e, ne, .4)));
|
|
635
|
+
let ae = `${Math.round(f * 2) / 2}|${h ? 2 : 1.25}`, oe = te.get(ae);
|
|
597
636
|
if (oe || (oe = {
|
|
598
637
|
half: f / 2,
|
|
599
638
|
inset: h ? 2 : 1.25,
|
|
600
639
|
border: [],
|
|
601
640
|
fill: []
|
|
602
|
-
}, te.set(
|
|
641
|
+
}, te.set(ae, oe)), oe.border.push(a, c - p / 2, c + p / 2, n(ne)), oe.fill.push(a, c - p / 2, c + p / 2, n(S)), u || d) {
|
|
603
642
|
let i = (u ? 3 : 2.5) / H, o = `${Math.round((f / 2 + i) * 64)}`, s = re.get(o);
|
|
604
643
|
s || re.set(o, s = []), s.push(f / 2 + i, a, c - p / 2 - i, c + p / 2 + i, n(u ? O.primary : t(e, V[r], .55)));
|
|
605
644
|
}
|
|
606
645
|
N.kind[r] === C.Card && f * H >= 96 && x.push(a - f / 2 + 26, c, Math.min(32, p - 16) * H, n(l));
|
|
607
646
|
}
|
|
608
|
-
let
|
|
647
|
+
let oe = (e, t, n, i) => {
|
|
609
648
|
if (!t.length) return;
|
|
610
649
|
let a = t.length / 4, o = /* @__PURE__ */ new ArrayBuffer(a * 16), s = new Float32Array(o), c = new Uint32Array(o);
|
|
611
650
|
for (let e = 0; e < a; e++) s[e * 4] = t[e * 4], s[e * 4 + 1] = t[e * 4 + 1], s[e * 4 + 2] = t[e * 4 + 2], c[e * 4 + 3] = t[e * 4 + 3];
|
|
612
651
|
let l = {
|
|
613
652
|
kind: "scatter",
|
|
614
653
|
key: e,
|
|
615
|
-
version:
|
|
654
|
+
version: xt,
|
|
616
655
|
color: O.primary,
|
|
617
656
|
instances: o,
|
|
618
657
|
count: a,
|
|
@@ -627,7 +666,7 @@ var Ee = [
|
|
|
627
666
|
let u = {
|
|
628
667
|
kind: "bar",
|
|
629
668
|
key: e,
|
|
630
|
-
version:
|
|
669
|
+
version: xt,
|
|
631
670
|
color: O.primary,
|
|
632
671
|
instances: s,
|
|
633
672
|
count: o,
|
|
@@ -639,73 +678,73 @@ var Ee = [
|
|
|
639
678
|
};
|
|
640
679
|
r.push(u);
|
|
641
680
|
};
|
|
642
|
-
|
|
681
|
+
oe("halo", _, 1, 0), oe("nodes", v, 1, 0), oe("collapsed", ee, .28, 2), oe("hover-rings", y, 0, 2), oe("selection", b, 0, 2.25);
|
|
643
682
|
for (let [e, t] of re) {
|
|
644
683
|
let n = [];
|
|
645
684
|
for (let e = 0; e < t.length; e += 5) n.push(t[e + 1], t[e + 2], t[e + 3], t[e + 4]);
|
|
646
685
|
le(`outline:${e}`, n, t[0], 0, S === 999 ? 999 : S + 3);
|
|
647
686
|
}
|
|
648
687
|
for (let [e, t] of te) le(`border:${e}`, t.border, t.half, 0, S), le(`fill:${e}`, t.fill, t.half, t.inset, S === 999 ? 999 : Math.max(0, S - 1));
|
|
649
|
-
return
|
|
650
|
-
},
|
|
688
|
+
return oe("avatars", x, 1, 0), r;
|
|
689
|
+
}, wn = () => {
|
|
651
690
|
let e = [], t = [];
|
|
652
691
|
for (let n = 0; n < j.n; n++) Y.has(n) || q?.type === "node" && q.index === n || n === J ? t.push(n) : e.push(n);
|
|
653
692
|
return e.concat(t);
|
|
654
|
-
},
|
|
693
|
+
}, Tn = (e) => !!L && L.children[e].some((e) => st[e]);
|
|
655
694
|
function Q() {
|
|
656
|
-
A ||
|
|
695
|
+
A || Vt || !Ye || (Vt = Ye.requestAnimationFrame(Dn));
|
|
657
696
|
}
|
|
658
|
-
let
|
|
697
|
+
let En = () => ({
|
|
659
698
|
xScale: 2 * H / G,
|
|
660
699
|
xOffset: 2 * U / G - 1,
|
|
661
700
|
yScale: -2 * H / K,
|
|
662
701
|
yOffset: 1 - 2 * W / K
|
|
663
702
|
});
|
|
664
|
-
function
|
|
665
|
-
if (
|
|
703
|
+
function Dn() {
|
|
704
|
+
if (Vt = 0, A) return;
|
|
666
705
|
let e = E.clientWidth, t = E.clientHeight;
|
|
667
706
|
if (e <= 0 || t <= 0) return;
|
|
668
|
-
(e !== G || t !== K) && (G = e, K = t,
|
|
669
|
-
let n =
|
|
670
|
-
if (R?.running() && (R.step(8),
|
|
671
|
-
let e = Math.min(1, (
|
|
672
|
-
|
|
673
|
-
for (let e = 0; e < j.n; e++) P[e] =
|
|
674
|
-
e >= 1 && (
|
|
675
|
-
}
|
|
676
|
-
if (
|
|
677
|
-
|
|
678
|
-
let e =
|
|
679
|
-
e &&
|
|
707
|
+
(e !== G || t !== K) && (G = e, K = t, At || (jt = !0), B = !0);
|
|
708
|
+
let n = Ye?.devicePixelRatio || 1, r = !1, i = !1;
|
|
709
|
+
if (R?.running() && (R.step(8), vt = !0, r = R.running() && !R.threaded(), i = R.running() && Pt && !At && !pt), lt) {
|
|
710
|
+
let e = Math.min(1, (tt() - lt.start) / Math.max(1, lt.duration));
|
|
711
|
+
ut = Ue(e);
|
|
712
|
+
for (let e = 0; e < j.n; e++) P[e] = at[e] + (I[e] - at[e]) * ut, F[e] = ot[e] + (it[e] - ot[e]) * ut;
|
|
713
|
+
e >= 1 && (lt = null, ct = null, ut = 1), vt = !0, r = !0;
|
|
714
|
+
}
|
|
715
|
+
if (jt) {
|
|
716
|
+
jt = !1;
|
|
717
|
+
let e = Pn();
|
|
718
|
+
e && Mt && Nt && !et?.matches ? kt = {
|
|
680
719
|
from: [
|
|
681
720
|
H,
|
|
682
721
|
U,
|
|
683
722
|
W
|
|
684
723
|
],
|
|
685
724
|
to: e,
|
|
686
|
-
start:
|
|
687
|
-
} : e && ([H, U, W] = e),
|
|
725
|
+
start: tt()
|
|
726
|
+
} : e && ([H, U, W] = e), Mt = !1, B = !0;
|
|
688
727
|
} else if (i) {
|
|
689
|
-
let e =
|
|
690
|
-
e && (
|
|
728
|
+
let e = Pn();
|
|
729
|
+
e && (kt = null, !Nt || et?.matches ? [H, U, W] = e : In(e, .25) && (r = !0), B = !0);
|
|
691
730
|
}
|
|
692
|
-
if (
|
|
693
|
-
let e = Math.min(1, (
|
|
694
|
-
H = l, U = G / 2 - m * l, W = K / 2 - h * l, e >= 1 && ([H, U, W] =
|
|
731
|
+
if (kt) {
|
|
732
|
+
let e = Math.min(1, (tt() - kt.start) / Re), t = Ue(e), [n, i, a] = kt.from, [o, s, c] = kt.to, l = n * (o / n) ** +t, u = (G / 2 - i) / n, d = (K / 2 - a) / n, f = (G / 2 - s) / o, p = (K / 2 - c) / o, m = u + (f - u) * t, h = d + (p - d) * t;
|
|
733
|
+
H = l, U = G / 2 - m * l, W = K / 2 - h * l, e >= 1 && ([H, U, W] = kt.to, kt = null), B = !0, r = !0;
|
|
695
734
|
}
|
|
696
|
-
if (
|
|
697
|
-
B && (
|
|
735
|
+
if (vt && (bn(), B = !0), Sn(), X) {
|
|
736
|
+
B && (bt = pt ? [] : Cn(), B = !1);
|
|
698
737
|
let r = Math.max(1, Math.round(e * n)), i = Math.max(1, Math.round(t * n));
|
|
699
|
-
(X.canvas.width !== r || X.canvas.height !== i) && X.resize(r, i), X.canvas.style.width = `${e}px`, X.canvas.style.height = `${t}px`, X.render(
|
|
700
|
-
transform:
|
|
738
|
+
(X.canvas.width !== r || X.canvas.height !== i) && X.resize(r, i), X.canvas.style.width = `${e}px`, X.canvas.style.height = `${t}px`, X.render(bt, {
|
|
739
|
+
transform: En(),
|
|
701
740
|
width: r,
|
|
702
741
|
height: i,
|
|
703
742
|
dpr: n
|
|
704
|
-
}),
|
|
743
|
+
}), Nt = !0;
|
|
705
744
|
}
|
|
706
|
-
ee(T.foreground, e, t, n),
|
|
745
|
+
ee(T.foreground, e, t, n), Mn(n), q && ar(), r && Q();
|
|
707
746
|
}
|
|
708
|
-
let
|
|
747
|
+
let On = (e) => P[e] * H + U, kn = (e) => F[e] * H + W, An = (e, t, n) => {
|
|
709
748
|
if (n <= 8) return "";
|
|
710
749
|
if (e.measureText(t).width <= n) return t;
|
|
711
750
|
let r = 0, i = t.length;
|
|
@@ -714,10 +753,10 @@ var Ee = [
|
|
|
714
753
|
e.measureText(`${t.slice(0, a)}…`).width <= n ? r = a : i = a - 1;
|
|
715
754
|
}
|
|
716
755
|
return r ? `${t.slice(0, r)}…` : "";
|
|
717
|
-
},
|
|
756
|
+
}, jn = (t) => e(t) > .6 ? "#111827" : "#ffffff", Mn = (e) => {
|
|
718
757
|
let n = T.foreground.getContext("2d");
|
|
719
|
-
if (!n || (n.setTransform(e, 0, 0, e, 0, 0), n.clearRect(0, 0, G, K),
|
|
720
|
-
let r = O.fontFamily, a = i(O.text), o = i(O.textMuted), s = i(O.background), c =
|
|
758
|
+
if (!n || (n.setTransform(e, 0, 0, e, 0, 0), n.clearRect(0, 0, G, K), pt || !j.n)) return;
|
|
759
|
+
let r = O.fontFamily, a = i(O.text), o = i(O.textMuted), s = i(O.background), c = It, l = Math.ceil(G / 8) + 1, u = Math.ceil(K / 8) + 1, d = new Uint8Array(l * u), f = (e, t, n, r, i) => {
|
|
721
760
|
let a = Math.max(0, Math.floor(e / 8)), o = Math.min(l - 1, Math.floor(n / 8)), s = Math.max(0, Math.floor(t / 8)), c = Math.min(u - 1, Math.floor(r / 8));
|
|
722
761
|
if (a > o || s > c) return !1;
|
|
723
762
|
if (!i) {
|
|
@@ -731,32 +770,32 @@ var Ee = [
|
|
|
731
770
|
if (N.kind[e] === C.Circle) continue;
|
|
732
771
|
let l = Z(e);
|
|
733
772
|
if (l <= 0) continue;
|
|
734
|
-
let u =
|
|
773
|
+
let u = On(e), d = kn(e), h = N.width[e] * H, g = N.height[e] * H;
|
|
735
774
|
if (!p(u, d, Math.max(h, g))) continue;
|
|
736
775
|
f(u - h / 2, d - g / 2, u + h / 2, d + g / 2, !0);
|
|
737
|
-
let _ = N.font[e] * H, v = Math.max(
|
|
776
|
+
let _ = N.font[e] * H, v = Math.max(ze, _), y = j.nodes[e];
|
|
738
777
|
n.globalAlpha = l * (c && !c.nodes[e] ? .45 : 1);
|
|
739
778
|
let ee = N.kind[e] === C.Solid, b = N.kind[e] === C.Card && h >= 96;
|
|
740
779
|
if (m && g >= v + 1) {
|
|
741
780
|
let t = b ? u - h / 2 + 48 * H : u, i = b ? h - 56 * H : h - Math.max(4, 12 * H);
|
|
742
781
|
n.textAlign = b ? "left" : "center", n.textBaseline = "middle";
|
|
743
782
|
let s = Math.max(8.5, _ * .88), c = v + Math.max(2, _ * .6) + s, l = y.subtitle && c <= g - 4 ? y.subtitle : "", f = l ? d - c / 2 + v / 2 : d;
|
|
744
|
-
n.font = `${N.weight[e]} ${v}px ${r}`, n.fillStyle = ee ?
|
|
745
|
-
let p =
|
|
783
|
+
n.font = `${N.weight[e]} ${v}px ${r}`, n.fillStyle = ee ? jn(V[e]) : a;
|
|
784
|
+
let p = An(n, Ce(j, e), i);
|
|
746
785
|
if (p && n.fillText(p, t, f), l && p) {
|
|
747
|
-
n.font = `${s}px ${r}`, n.fillStyle = ee ?
|
|
748
|
-
let a =
|
|
786
|
+
n.font = `${s}px ${r}`, n.fillStyle = ee ? jn(V[e]) : o;
|
|
787
|
+
let a = An(n, l, i);
|
|
749
788
|
a && n.fillText(a, t, d + c / 2 - s / 2);
|
|
750
789
|
}
|
|
751
790
|
}
|
|
752
791
|
if (b) {
|
|
753
|
-
let t = Array.from(
|
|
754
|
-
n.textAlign = "center", n.font = `600 ${Math.max(8, 13 * H)}px ${r}`, n.fillStyle =
|
|
792
|
+
let t = Array.from(Ce(j, e).trim())[0] ?? "";
|
|
793
|
+
n.textAlign = "center", n.font = `600 ${Math.max(8, 13 * H)}px ${r}`, n.fillStyle = jn(V[e]), n.fillText(t.toUpperCase(), u - h / 2 + 26 * H, d);
|
|
755
794
|
}
|
|
756
|
-
if (
|
|
757
|
-
let o = !
|
|
795
|
+
if (Wt() && L && L.children[e].length) {
|
|
796
|
+
let o = !Tn(e), c = q?.type === "node" && q.index === e || J === e;
|
|
758
797
|
if (o || c) {
|
|
759
|
-
let c = M === "org", f = M === "mindmap" && L.side[e] < 0 ? -1 : 1, p = c ? u : u + f * (h / 2 + 9), m = c ? d + g / 2 + 9 : d, _ = o ? String(
|
|
798
|
+
let c = M === "org", f = M === "mindmap" && L.side[e] < 0 ? -1 : 1, p = c ? u : u + f * (h / 2 + 9), m = c ? d + g / 2 + 9 : d, _ = o ? String(gt[e]) : "−";
|
|
760
799
|
n.font = `600 10px ${r}`;
|
|
761
800
|
let v = Math.max(8, n.measureText(_).width / 2 + 5);
|
|
762
801
|
n.globalAlpha = l, n.beginPath(), n.fillStyle = s, n.strokeStyle = i(t(O.background, V[e], .75)), n.lineWidth = 1.25, typeof n.roundRect == "function" ? n.roundRect(p - v, m - 8, v * 2, 16, 8) : n.rect(p - v, m - 8, v * 2, 16), n.fill(), n.stroke(), n.fillStyle = a, n.textAlign = "center", n.fillText(_, p, m + .5);
|
|
@@ -768,18 +807,18 @@ var Ee = [
|
|
|
768
807
|
if (_[e] || N.kind[e] !== C.Circle || h === !1) return;
|
|
769
808
|
let i = Z(e);
|
|
770
809
|
if (i <= 0) return;
|
|
771
|
-
let l =
|
|
810
|
+
let l = On(e), u = kn(e);
|
|
772
811
|
if (!p(l, u, 160)) return;
|
|
773
812
|
let d = Math.max(j.n > 2e3 ? 1 : 1.5, N.width[e] * H / 2);
|
|
774
813
|
if (!t && h === "auto" && (M === "force" || M === "none") && d * 2 < 5) return;
|
|
775
|
-
let m = g(e), y = c && !c.nodes[e], ee =
|
|
814
|
+
let m = g(e), y = c && !c.nodes[e], ee = Ce(j, e), b = Math.min(180, N.labelWidth[e] * (m ? 1.06 : 1)), x = Nn(e, l, u, d), te, ne, re, S;
|
|
776
815
|
if (x.angle !== 0) {
|
|
777
816
|
let e = x.x + Math.cos(x.angle) * (x.align === "left" ? 7 : -7), t = x.y + Math.sin(x.angle) * (x.align === "left" ? 7 : -7);
|
|
778
817
|
te = e - 6, re = e + 6, ne = t - 6, S = t + 6;
|
|
779
818
|
} else te = x.align === "left" ? x.x : x.align === "right" ? x.x - b : x.x - b / 2, re = te + b, ne = x.baseline === "top" ? x.y : x.baseline === "bottom" ? x.y - 14 : x.y - 7, S = ne + 14;
|
|
780
819
|
if (!t && !f(te - 2, ne, re + 2, S, !1)) return;
|
|
781
820
|
f(te - 2, ne, re + 2, S, !0), _[e] = 1, v--, n.save(), n.globalAlpha = i * (y ? .35 : 1), n.font = `${m ? 600 : 400} 12px ${r}`, n.textAlign = x.align, n.textBaseline = x.baseline, n.translate(x.x, x.y), x.angle && n.rotate(x.angle);
|
|
782
|
-
let ie = N.labelWidth[e] > 180 ?
|
|
821
|
+
let ie = N.labelWidth[e] > 180 ? An(n, ee, 180) : ee;
|
|
783
822
|
n.lineJoin = "round", n.lineWidth = 3, n.strokeStyle = s, n.strokeText(ie, 0, 0), n.fillStyle = m ? a : y ? o : a, n.fillText(ie, 0, 0), n.restore();
|
|
784
823
|
};
|
|
785
824
|
for (let e = 0; e < j.n; e++) g(e) && y(e, !0);
|
|
@@ -794,18 +833,18 @@ var Ee = [
|
|
|
794
833
|
if (m <= 0) continue;
|
|
795
834
|
let h = !!c?.edges[r];
|
|
796
835
|
if (ee === "hover" && !h || ee === "auto" && !h && (H < .75 || c && !h)) continue;
|
|
797
|
-
let g, _, v =
|
|
836
|
+
let g, _, v = _t[r];
|
|
798
837
|
if (v) {
|
|
799
|
-
let e =
|
|
838
|
+
let e = fe(v, de(v) / 2);
|
|
800
839
|
if (g = e[0] * H + U, _ = e[1] * H + W, u === d) {
|
|
801
840
|
let e = g - (P[u] * H + U), t = _ - (F[u] * H + W), n = Math.hypot(e, t) || 1;
|
|
802
841
|
g += e / n * 10, _ += t / n * 10;
|
|
803
842
|
}
|
|
804
843
|
} else g = (P[u] + P[d]) / 2 * H + U, _ = (F[u] + F[d]) / 2 * H + W;
|
|
805
844
|
if (!p(g, _, 40)) continue;
|
|
806
|
-
Number.isNaN(
|
|
807
|
-
let y =
|
|
808
|
-
(h || f(g - y / 2, _ - 8, g + y / 2, _ + 8, !1)) && (f(g - y / 2, _ - 8, g + y / 2, _ + 8, !0), e++, n.globalAlpha = m, n.fillStyle = s, n.beginPath(), typeof n.roundRect == "function" ? n.roundRect(g - y / 2, _ - 8, y, 16, 8) : n.rect(g - y / 2, _ - 8, y, 16), n.fill(), h && (n.strokeStyle = i(t(O.background,
|
|
845
|
+
Number.isNaN(Ot[r]) && (Ot[r] = n.measureText(l).width);
|
|
846
|
+
let y = Ot[r] + 10;
|
|
847
|
+
(h || f(g - y / 2, _ - 8, g + y / 2, _ + 8, !1)) && (f(g - y / 2, _ - 8, g + y / 2, _ + 8, !0), e++, n.globalAlpha = m, n.fillStyle = s, n.beginPath(), typeof n.roundRect == "function" ? n.roundRect(g - y / 2, _ - 8, y, 16, 8) : n.rect(g - y / 2, _ - 8, y, 16), n.fill(), h && (n.strokeStyle = i(t(O.background, It?.accent ?? O.primary, .6)), n.lineWidth = 1, n.stroke()), n.fillStyle = h ? a : o, n.fillText(l, g, _ + .5));
|
|
809
848
|
}
|
|
810
849
|
n.globalAlpha = 1;
|
|
811
850
|
}
|
|
@@ -816,8 +855,8 @@ var Ee = [
|
|
|
816
855
|
if (y(n, !1), !e && t > 4e3) break;
|
|
817
856
|
}
|
|
818
857
|
}
|
|
819
|
-
if (
|
|
820
|
-
let e =
|
|
858
|
+
if (Ft && J >= 0 && Z(J) > 0) {
|
|
859
|
+
let e = On(J), t = kn(J);
|
|
821
860
|
if (n.save(), n.strokeStyle = i(O.primary), n.lineWidth = 2, n.setLineDash([4, 3]), n.beginPath(), N.kind[J] === C.Circle) {
|
|
822
861
|
let r = Math.max(3, N.width[J] * H / 2) + 6;
|
|
823
862
|
n.arc(e, t, r, 0, Math.PI * 2);
|
|
@@ -827,7 +866,7 @@ var Ee = [
|
|
|
827
866
|
}
|
|
828
867
|
n.stroke(), n.restore();
|
|
829
868
|
}
|
|
830
|
-
},
|
|
869
|
+
}, Nn = (e, t, n, r) => {
|
|
831
870
|
let i = {
|
|
832
871
|
x: t,
|
|
833
872
|
y: n + r + 3,
|
|
@@ -846,9 +885,9 @@ var Ee = [
|
|
|
846
885
|
};
|
|
847
886
|
switch (M) {
|
|
848
887
|
case "tree": {
|
|
849
|
-
let a =
|
|
850
|
-
if (
|
|
851
|
-
let e =
|
|
888
|
+
let a = Tn(e);
|
|
889
|
+
if (nt === "LR" || nt === "RL") {
|
|
890
|
+
let e = nt === "LR" !== a;
|
|
852
891
|
return {
|
|
853
892
|
x: t + (e ? r + 5 : -r - 5),
|
|
854
893
|
y: n,
|
|
@@ -857,7 +896,7 @@ var Ee = [
|
|
|
857
896
|
angle: 0
|
|
858
897
|
};
|
|
859
898
|
}
|
|
860
|
-
return
|
|
899
|
+
return nt === "BT" ? {
|
|
861
900
|
x: t,
|
|
862
901
|
y: n - r - 3,
|
|
863
902
|
align: "center",
|
|
@@ -865,8 +904,8 @@ var Ee = [
|
|
|
865
904
|
angle: 0
|
|
866
905
|
} : i;
|
|
867
906
|
}
|
|
868
|
-
case "radial": return L && (
|
|
869
|
-
case "circular": return a(
|
|
907
|
+
case "radial": return L && (Tn(e) || L.depth[e] === 0 && Math.hypot(P[e], F[e]) < 1e-6) ? i : a(L ? L.side[e] : 0);
|
|
908
|
+
case "circular": return a(ft ? ft.angle[e] : 0);
|
|
870
909
|
case "arc": return {
|
|
871
910
|
x: t,
|
|
872
911
|
y: n + r + 4,
|
|
@@ -876,27 +915,27 @@ var Ee = [
|
|
|
876
915
|
};
|
|
877
916
|
default: return i;
|
|
878
917
|
}
|
|
879
|
-
},
|
|
918
|
+
}, Pn = () => {
|
|
880
919
|
if (G <= 0 || K <= 0) return null;
|
|
881
920
|
let e = Infinity, t = Infinity, n = -Infinity, r = -Infinity, i = 0;
|
|
882
921
|
for (let a = 0; a < j.n; a++) {
|
|
883
|
-
if (!
|
|
922
|
+
if (!st[a] || !Number.isFinite(I[a])) continue;
|
|
884
923
|
let o = j.groupOf[a];
|
|
885
|
-
if (o >= 0 &&
|
|
924
|
+
if (o >= 0 && mt.has(j.groups[o].id)) continue;
|
|
886
925
|
let s = N.width[a] / 2, c = N.height[a] / 2;
|
|
887
|
-
e = Math.min(e, I[a] - s), n = Math.max(n, I[a] + s), t = Math.min(t,
|
|
926
|
+
e = Math.min(e, I[a] - s), n = Math.max(n, I[a] + s), t = Math.min(t, it[a] - c), r = Math.max(r, it[a] + c), N.kind[a] === C.Circle && (i = Math.max(i, N.labelWidth[a]));
|
|
888
927
|
}
|
|
889
928
|
if (!(e <= n)) return null;
|
|
890
929
|
if (M === "arc") for (let e = 0; e < j.m; e++) {
|
|
891
930
|
let n = j.source[e], r = j.target[e];
|
|
892
|
-
if (!
|
|
931
|
+
if (!st[n] || !st[r]) continue;
|
|
893
932
|
let i = j.bend[e], a = n !== r && Number.isFinite(i) ? 1 + .25 * Math.abs(i) : 1;
|
|
894
|
-
t = Math.min(t,
|
|
933
|
+
t = Math.min(t, it[n] - Math.abs(I[r] - I[n]) / 2 * a);
|
|
895
934
|
}
|
|
896
935
|
if (j.hasLoops) for (let i = 0; i < j.m; i++) {
|
|
897
936
|
let a = j.source[i];
|
|
898
|
-
if (a !== j.target[i] || !
|
|
899
|
-
let o
|
|
937
|
+
if (a !== j.target[i] || !st[a]) continue;
|
|
938
|
+
let [o, s] = hn(a), c = Math.max(N.width[a], N.height[a]) / 2 + s * (1 + .6 * j.bend[i]), l = I[a] + Math.cos(o) * c, u = it[a] + Math.sin(o) * c;
|
|
900
939
|
e = Math.min(e, l - s / 2), n = Math.max(n, l + s / 2), t = Math.min(t, u - s / 2), r = Math.max(r, u + s / 2);
|
|
901
940
|
}
|
|
902
941
|
let a = D.fitPadding ?? 24, [o, s, c, l] = [
|
|
@@ -906,14 +945,14 @@ var Ee = [
|
|
|
906
945
|
a
|
|
907
946
|
], u = D.nodeLabels === !1 ? 0 : Math.min(140, i) + 8;
|
|
908
947
|
if (N.kind.some((e) => e === C.Circle) && u > 8) {
|
|
909
|
-
if (M === "tree" && (
|
|
948
|
+
if (M === "tree" && (nt === "LR" || nt === "RL")) {
|
|
910
949
|
let e = 0;
|
|
911
|
-
for (let t = 0; t < j.n; t++) L && L.parent[t] < 0 &&
|
|
912
|
-
|
|
950
|
+
for (let t = 0; t < j.n; t++) L && L.parent[t] < 0 && st[t] && Tn(t) && (e = Math.max(e, Math.min(140, N.labelWidth[t]) + 8));
|
|
951
|
+
nt === "LR" ? (s += u, o += e) : (o += u, s += e);
|
|
913
952
|
} else M === "radial" || M === "circular" ? (o += u, s += u, c += u * .6, l += u * .6) : l += M === "arc" ? u : 16;
|
|
914
953
|
}
|
|
915
954
|
(M === "org" || M === "mindmap") && (l += 10);
|
|
916
|
-
let d = Math.max(10, G - o - s), f = Math.max(10, K - c - l), p = Math.max(1e-6, n - e), m = Math.max(1e-6, r - t), h =
|
|
955
|
+
let d = Math.max(10, G - o - s), f = Math.max(10, K - c - l), p = Math.max(1e-6, n - e), m = Math.max(1e-6, r - t), h = Ht()?.zoomRange ?? [.02, 8], g = Math.min(d / p, f / m, 1.6, h[1]);
|
|
917
956
|
g = Math.max(g, 1e-4);
|
|
918
957
|
let _ = o + (d - p * g) / 2 - e * g, v = c + (f - m * g) / 2 - t * g;
|
|
919
958
|
return [
|
|
@@ -921,45 +960,45 @@ var Ee = [
|
|
|
921
960
|
_,
|
|
922
961
|
v
|
|
923
962
|
];
|
|
924
|
-
},
|
|
925
|
-
let e =
|
|
963
|
+
}, Fn = () => {
|
|
964
|
+
let e = Ht()?.zoomRange ?? [.02, 8], t = Pn();
|
|
926
965
|
return [Math.min(e[0], t ? t[0] * .5 : e[0]), e[1]];
|
|
927
|
-
},
|
|
966
|
+
}, In = (e, t) => {
|
|
928
967
|
let [n, r, i] = e, a = (G / 2 - U) / H, o = (K / 2 - W) / H, s = (G / 2 - r) / n, c = (K / 2 - i) / n;
|
|
929
968
|
if (!(Math.abs(Math.log(n / H)) > .002 || Math.hypot(s - a, c - o) * n > .5)) return [H, U, W] = e, !1;
|
|
930
969
|
let l = H * (n / H) ** +t, u = a + (s - a) * t, d = o + (c - o) * t;
|
|
931
970
|
return H = l, U = G / 2 - u * l, W = K / 2 - d * l, !0;
|
|
932
|
-
},
|
|
933
|
-
|
|
971
|
+
}, Ln = (e, t) => {
|
|
972
|
+
kt = null, t && !et?.matches && G > 0 ? kt = {
|
|
934
973
|
from: [
|
|
935
974
|
H,
|
|
936
975
|
U,
|
|
937
976
|
W
|
|
938
977
|
],
|
|
939
978
|
to: e,
|
|
940
|
-
start:
|
|
979
|
+
start: tt()
|
|
941
980
|
} : [H, U, W] = e, B = !0, Q();
|
|
942
|
-
},
|
|
943
|
-
let [i, a] =
|
|
944
|
-
|
|
981
|
+
}, Rn = (e, t, n, r = !1) => {
|
|
982
|
+
let [i, a] = Fn(), o = Math.max(i, Math.min(a, H * e)), s = o / H;
|
|
983
|
+
Ln([
|
|
945
984
|
o,
|
|
946
985
|
t - (t - U) * s,
|
|
947
986
|
n - (n - W) * s
|
|
948
|
-
], r),
|
|
949
|
-
},
|
|
987
|
+
], r), At = !0;
|
|
988
|
+
}, zn = "", Bn = () => {
|
|
950
989
|
let e = D.legend, t = j.groups.filter((e) => e.count > 0), n = e === void 0 ? t.length > 1 : !!e && t.length > 0, r = typeof e == "object" ? e : {}, a = r.toggle ?? !0, o = r.position === "bottom", s = `${n}|${o}|${a}`;
|
|
951
990
|
if (n) for (let e of t) {
|
|
952
991
|
let t = j.groups.indexOf(e);
|
|
953
|
-
s += `\n${e.id}\u0001${e.name}\u0001${i(
|
|
992
|
+
s += `\n${e.id}\u0001${e.name}\u0001${i(Et[t] ?? O.primary)}\u0001${mt.has(e.id)}`;
|
|
954
993
|
}
|
|
955
|
-
if (s ===
|
|
956
|
-
|
|
994
|
+
if (s === zn) return;
|
|
995
|
+
zn = s;
|
|
957
996
|
let c = [...T.legend.children].indexOf(w.activeElement);
|
|
958
997
|
if (T.legend.replaceChildren(), T.legend.style.display = n ? "flex" : "none", n) {
|
|
959
998
|
T.legend.style.order = o ? "1" : "0", T.legend.style.padding = o ? "8px 4px 0" : "0 4px 8px";
|
|
960
999
|
for (let e of t) {
|
|
961
|
-
let t = j.groups.indexOf(e), n =
|
|
962
|
-
r instanceof HTMLButtonElement && (r.type = "button", r.setAttribute("aria-pressed", String(!n)), r.addEventListener("click", () =>
|
|
1000
|
+
let t = j.groups.indexOf(e), n = mt.has(e.id), r = w.createElement(a ? "button" : "span");
|
|
1001
|
+
r instanceof HTMLButtonElement && (r.type = "button", r.setAttribute("aria-pressed", String(!n)), r.addEventListener("click", () => Vn(e.id))), b(r, {
|
|
963
1002
|
display: "inline-flex",
|
|
964
1003
|
alignItems: "center",
|
|
965
1004
|
gap: "6px",
|
|
@@ -973,51 +1012,51 @@ var Ee = [
|
|
|
973
1012
|
cursor: a ? "pointer" : "default",
|
|
974
1013
|
opacity: n ? "0.45" : "1",
|
|
975
1014
|
textDecoration: n ? "line-through" : "none"
|
|
976
|
-
}), r.append(x(w, i(
|
|
1015
|
+
}), r.append(x(w, i(Et[t] ?? O.primary)), w.createTextNode(e.name)), T.legend.appendChild(r);
|
|
977
1016
|
}
|
|
978
1017
|
c >= 0 && T.legend.children[c]?.focus();
|
|
979
1018
|
}
|
|
980
|
-
},
|
|
1019
|
+
}, Vn = (e) => {
|
|
981
1020
|
let t = j.groups.find((t) => t.id === e);
|
|
982
1021
|
if (!t) return;
|
|
983
|
-
let n = !
|
|
984
|
-
n ?
|
|
985
|
-
for (let e of [...Y]) Z(e) <= 0 && j.groupOf[e] >= 0 &&
|
|
986
|
-
J >= 0 && j.groupOf[J] >= 0 &&
|
|
1022
|
+
let n = !mt.has(e);
|
|
1023
|
+
n ? mt.add(e) : mt.delete(e), T.live.textContent = _e(n ? k.labels.hidden : k.labels.shown, { name: t.name });
|
|
1024
|
+
for (let e of [...Y]) Z(e) <= 0 && j.groupOf[e] >= 0 && mt.has(j.groups[j.groupOf[e]].id) && Y.delete(e);
|
|
1025
|
+
J >= 0 && j.groupOf[J] >= 0 && mt.has(j.groups[j.groupOf[J]].id) && (J = -1), q && nr(null), vt = !0, B = !0, Lt = "", Bn(), Q(), Qe("groupToggle", {
|
|
987
1026
|
group: e,
|
|
988
1027
|
hidden: n
|
|
989
1028
|
});
|
|
990
|
-
},
|
|
991
|
-
let { labels: e, count: t } = k, n = M === "dag" ? e.dag :
|
|
1029
|
+
}, Hn = () => {
|
|
1030
|
+
let { labels: e, count: t } = k, n = M === "dag" ? e.dag : Ut() ? e.tree : e.chart;
|
|
992
1031
|
E.setAttribute("aria-roledescription", n), E.setAttribute("aria-label", D.ariaLabel ?? n);
|
|
993
|
-
let r =
|
|
1032
|
+
let r = Ht()?.keyboard;
|
|
994
1033
|
r ? E.tabIndex = 0 : E.removeAttribute("tabindex");
|
|
995
|
-
let i =
|
|
1034
|
+
let i = Ht();
|
|
996
1035
|
E.style.cursor = i?.pan ? "grab" : "default";
|
|
997
|
-
let a = [
|
|
1036
|
+
let a = [_e(e.summary, {
|
|
998
1037
|
nodes: t(j.n),
|
|
999
1038
|
edges: t(j.m)
|
|
1000
1039
|
})], o = j.groups.filter((e) => e.count > 0).map((e) => e.name);
|
|
1001
|
-
o.length && a.push(
|
|
1040
|
+
o.length && a.push(_e(e.groupsSummary, { groups: o.join(e.listSeparator) })), r && a.push(e.keyboardHelp), T.summary.textContent = a.join(" ");
|
|
1002
1041
|
let s = D.controls !== !1 && !!i?.zoom;
|
|
1003
1042
|
T.controls.style.display = s ? "flex" : "none", T.zoomIn.setAttribute("aria-label", e.zoomIn), T.zoomIn.title = e.zoomIn, T.zoomOut.setAttribute("aria-label", e.zoomOut), T.zoomOut.title = e.zoomOut, T.fit.setAttribute("aria-label", e.fit), T.fit.title = e.fit;
|
|
1004
|
-
},
|
|
1005
|
-
|
|
1006
|
-
for (let e = 0; e < j.n; e++)
|
|
1007
|
-
|
|
1043
|
+
}, Un = null, Wn = 32, Gn = 0, Kn = (e, t) => (e + 2097152) * 4194304 + (t + 2097152), qn = () => {
|
|
1044
|
+
Gn = 0;
|
|
1045
|
+
for (let e = 0; e < j.n; e++) Gn = Math.max(Gn, N.width[e], N.height[e]);
|
|
1046
|
+
Wn = Math.max(16, Gn);
|
|
1008
1047
|
let e = /* @__PURE__ */ new Map();
|
|
1009
1048
|
for (let t = 0; t < j.n; t++) {
|
|
1010
1049
|
if (Z(t) <= 0) continue;
|
|
1011
|
-
let n =
|
|
1050
|
+
let n = Kn(Math.floor(P[t] / Wn), Math.floor(F[t] / Wn)), r = e.get(n);
|
|
1012
1051
|
r || e.set(n, r = []), r.push(t);
|
|
1013
1052
|
}
|
|
1014
|
-
|
|
1015
|
-
},
|
|
1016
|
-
if (
|
|
1017
|
-
|
|
1018
|
-
let n = (e - U) / H, r = (t - W) / H, i = 3 / H, a = (j.n > 2e3 ? 1 : 1.5) / H, o = Math.ceil((
|
|
1053
|
+
Un = e;
|
|
1054
|
+
}, Jn = (e, t) => {
|
|
1055
|
+
if (pt || !j.n) return -1;
|
|
1056
|
+
qn();
|
|
1057
|
+
let n = (e - U) / H, r = (t - W) / H, i = 3 / H, a = (j.n > 2e3 ? 1 : 1.5) / H, o = Math.ceil((Gn / 2 + i + a) / Wn), s = Math.floor(n / Wn), c = Math.floor(r / Wn), l = -1, u = Infinity;
|
|
1019
1058
|
for (let e = -o; e <= o; e++) for (let t = -o; t <= o; t++) {
|
|
1020
|
-
let o =
|
|
1059
|
+
let o = Un.get(Kn(s + t, c + e));
|
|
1021
1060
|
if (o) for (let e of o) {
|
|
1022
1061
|
let t = n - P[e], o = r - F[e];
|
|
1023
1062
|
if (N.kind[e] === C.Circle) {
|
|
@@ -1030,24 +1069,24 @@ var Ee = [
|
|
|
1030
1069
|
}
|
|
1031
1070
|
}
|
|
1032
1071
|
return l;
|
|
1033
|
-
},
|
|
1034
|
-
if (
|
|
1072
|
+
}, Yn = (e, t) => {
|
|
1073
|
+
if (pt) return -1;
|
|
1035
1074
|
let n = (e - U) / H, r = (t - W) / H, i = 4 / H, a = -1, o = i * i, s = (e) => {
|
|
1036
1075
|
if (Math.min(Z(j.source[e]), Z(j.target[e])) <= 0) return;
|
|
1037
|
-
let t =
|
|
1076
|
+
let t = _t[e] ?? null;
|
|
1038
1077
|
if (!t) {
|
|
1039
|
-
let n =
|
|
1078
|
+
let n = xn(e);
|
|
1040
1079
|
if (!n) return;
|
|
1041
1080
|
t = n;
|
|
1042
1081
|
}
|
|
1043
|
-
let i =
|
|
1082
|
+
let i = oe(t, n, r);
|
|
1044
1083
|
i <= o && (a = e, o = i);
|
|
1045
1084
|
};
|
|
1046
|
-
if (j.m <
|
|
1085
|
+
if (j.m < Ie) {
|
|
1047
1086
|
for (let e = 0; e < j.m; e++) s(e);
|
|
1048
1087
|
return a;
|
|
1049
1088
|
}
|
|
1050
|
-
let c =
|
|
1089
|
+
let c = Zn();
|
|
1051
1090
|
if (!c) return -1;
|
|
1052
1091
|
let { cell: l, x0: u, y0: d, cols: f, rows: p, start: m, items: h, stamp: g } = c, _ = Math.max(0, Math.floor((n - i - u) / l)), v = Math.min(f - 1, Math.floor((n + i - u) / l)), y = Math.max(0, Math.floor((r - i - d) / l)), ee = Math.min(p - 1, Math.floor((r + i - d) / l)), b = ++c.visit;
|
|
1053
1092
|
for (let e = y; e <= ee; e++) for (let t = _; t <= v; t++) {
|
|
@@ -1058,10 +1097,10 @@ var Ee = [
|
|
|
1058
1097
|
}
|
|
1059
1098
|
}
|
|
1060
1099
|
return a;
|
|
1061
|
-
},
|
|
1062
|
-
let e =
|
|
1063
|
-
if (e && e.geometry ===
|
|
1064
|
-
let t = j.m, n = (e) => Math.min(Z(j.source[e]), Z(j.target[e])) <= 0 ? null :
|
|
1100
|
+
}, Xn = null, Zn = () => {
|
|
1101
|
+
let e = Xn;
|
|
1102
|
+
if (e && e.geometry === yt || e && R?.running() && tt() - e.built < 250) return e;
|
|
1103
|
+
let t = j.m, n = (e) => Math.min(Z(j.source[e]), Z(j.target[e])) <= 0 ? null : _t[e] ?? xn(e), r = Infinity, i = Infinity, a = -Infinity, o = -Infinity, s = 0, c = 0;
|
|
1065
1104
|
for (let e = 0; e < t; e++) {
|
|
1066
1105
|
let t = n(e);
|
|
1067
1106
|
if (t) {
|
|
@@ -1090,7 +1129,7 @@ var Ee = [
|
|
|
1090
1129
|
let h = new Int32Array(p[d * f]), g = p.slice(0, d * f);
|
|
1091
1130
|
return m((e, t) => {
|
|
1092
1131
|
h[g[e]++] = t;
|
|
1093
|
-
}),
|
|
1132
|
+
}), Xn = {
|
|
1094
1133
|
cell: u,
|
|
1095
1134
|
x0: r,
|
|
1096
1135
|
y0: i,
|
|
@@ -1100,21 +1139,21 @@ var Ee = [
|
|
|
1100
1139
|
items: h,
|
|
1101
1140
|
stamp: new Int32Array(t),
|
|
1102
1141
|
visit: 0,
|
|
1103
|
-
geometry:
|
|
1104
|
-
built:
|
|
1105
|
-
},
|
|
1106
|
-
},
|
|
1107
|
-
let n =
|
|
1142
|
+
geometry: yt,
|
|
1143
|
+
built: tt()
|
|
1144
|
+
}, Xn;
|
|
1145
|
+
}, Qn = (e, t) => {
|
|
1146
|
+
let n = Jn(e, t);
|
|
1108
1147
|
if (n >= 0) return {
|
|
1109
1148
|
type: "node",
|
|
1110
1149
|
index: n
|
|
1111
1150
|
};
|
|
1112
|
-
let r =
|
|
1151
|
+
let r = $n() || $e("hover") || $e("click") ? Yn(e, t) : -1;
|
|
1113
1152
|
return r >= 0 ? {
|
|
1114
1153
|
type: "edge",
|
|
1115
1154
|
index: r
|
|
1116
1155
|
} : null;
|
|
1117
|
-
},
|
|
1156
|
+
}, $n = () => D.tooltip !== !1, er = (e) => {
|
|
1118
1157
|
let t = E.offsetLeft, n = E.offsetTop;
|
|
1119
1158
|
if (e.type === "node") {
|
|
1120
1159
|
let r = e.index, a = j.nodes[r], o = j.groupOf[r];
|
|
@@ -1126,13 +1165,13 @@ var Ee = [
|
|
|
1126
1165
|
group: o >= 0 ? j.groups[o].id : void 0,
|
|
1127
1166
|
color: i(V[r]),
|
|
1128
1167
|
degree: j.inDegree[r] + j.outDegree[r],
|
|
1129
|
-
clientX:
|
|
1130
|
-
clientY:
|
|
1168
|
+
clientX: On(r) + t,
|
|
1169
|
+
clientY: kn(r) + n
|
|
1131
1170
|
};
|
|
1132
1171
|
}
|
|
1133
|
-
let r = e.index, a = j.edges[r], o = j.source[r], s = j.target[r], c =
|
|
1172
|
+
let r = e.index, a = j.edges[r], o = j.source[r], s = j.target[r], c = _t[r], l = (P[o] + P[s]) / 2, u = (F[o] + F[s]) / 2;
|
|
1134
1173
|
if (c) {
|
|
1135
|
-
let e =
|
|
1174
|
+
let e = fe(c, de(c) / 2);
|
|
1136
1175
|
l = e[0], u = e[1];
|
|
1137
1176
|
}
|
|
1138
1177
|
return {
|
|
@@ -1140,45 +1179,45 @@ var Ee = [
|
|
|
1140
1179
|
id: `${a.source}→${a.target}`,
|
|
1141
1180
|
edge: a,
|
|
1142
1181
|
index: j.edgeInput[r],
|
|
1143
|
-
color: i(
|
|
1182
|
+
color: i(St[r]),
|
|
1144
1183
|
clientX: l * H + U + t,
|
|
1145
1184
|
clientY: u * H + W + n
|
|
1146
1185
|
};
|
|
1147
|
-
},
|
|
1148
|
-
if (
|
|
1149
|
-
e &&
|
|
1186
|
+
}, tr = (e, t) => e === t || !!e && !!t && e.type === t.type && e.index === t.index, nr = (e) => {
|
|
1187
|
+
if (tr(e, q)) {
|
|
1188
|
+
e && ar();
|
|
1150
1189
|
return;
|
|
1151
1190
|
}
|
|
1152
|
-
q = e,
|
|
1153
|
-
},
|
|
1191
|
+
q = e, ir(), B = !0, Q(), Qe("hover", e ? er(e) : null);
|
|
1192
|
+
}, rr = () => q ?? (Ft && J >= 0 ? {
|
|
1154
1193
|
type: "node",
|
|
1155
1194
|
index: J
|
|
1156
|
-
} : null),
|
|
1157
|
-
let e = T.tooltip, t =
|
|
1158
|
-
if (!t ||
|
|
1195
|
+
} : null), ir = () => {
|
|
1196
|
+
let e = T.tooltip, t = rr();
|
|
1197
|
+
if (!t || !$n()) {
|
|
1159
1198
|
e.style.display = "none";
|
|
1160
1199
|
return;
|
|
1161
1200
|
}
|
|
1162
|
-
let n =
|
|
1201
|
+
let n = er(t), r = typeof D.tooltip == "object" ? D.tooltip.render : void 0, i = r ? r(n) : cr(t);
|
|
1163
1202
|
if (i === null) {
|
|
1164
1203
|
e.style.display = "none";
|
|
1165
1204
|
return;
|
|
1166
1205
|
}
|
|
1167
|
-
typeof i == "string" ? e.textContent = i : e.replaceChildren(i), e.style.display = "block",
|
|
1168
|
-
},
|
|
1169
|
-
let e = T.tooltip, t =
|
|
1206
|
+
typeof i == "string" ? e.textContent = i : e.replaceChildren(i), e.style.display = "block", ar();
|
|
1207
|
+
}, ar = () => {
|
|
1208
|
+
let e = T.tooltip, t = rr();
|
|
1170
1209
|
if (!t || e.style.display === "none") return;
|
|
1171
1210
|
let n, r, i = 14;
|
|
1172
|
-
if (t.type === "node") n =
|
|
1211
|
+
if (t.type === "node") n = On(t.index), r = kn(t.index), i += Math.max(N.width[t.index], 0) * H / 2;
|
|
1173
1212
|
else {
|
|
1174
|
-
let e =
|
|
1213
|
+
let e = er(t);
|
|
1175
1214
|
n = e.clientX - E.offsetLeft, r = e.clientY - E.offsetTop;
|
|
1176
1215
|
}
|
|
1177
1216
|
let a = e.offsetWidth, o = e.offsetHeight, s = n + i;
|
|
1178
1217
|
s + a > G - 4 && (s = n - i - a), s = Math.max(4, Math.min(G - a - 4, s));
|
|
1179
1218
|
let c = Math.max(4, Math.min(K - o - 4, r - o / 2));
|
|
1180
1219
|
e.style.transform = `translate(${Math.round(s)}px, ${Math.round(c)}px)`;
|
|
1181
|
-
},
|
|
1220
|
+
}, or = (e, t) => {
|
|
1182
1221
|
let n = b(w.createElement("div"), {
|
|
1183
1222
|
display: "flex",
|
|
1184
1223
|
alignItems: "center",
|
|
@@ -1194,7 +1233,7 @@ var Ee = [
|
|
|
1194
1233
|
marginLeft: "12px"
|
|
1195
1234
|
});
|
|
1196
1235
|
return i.textContent = t, n.append(r, i), n;
|
|
1197
|
-
},
|
|
1236
|
+
}, sr = (e, t) => {
|
|
1198
1237
|
let n = b(w.createElement("div"), {
|
|
1199
1238
|
display: "flex",
|
|
1200
1239
|
alignItems: "center",
|
|
@@ -1204,11 +1243,11 @@ var Ee = [
|
|
|
1204
1243
|
color: "var(--text-color, #1f2937)"
|
|
1205
1244
|
});
|
|
1206
1245
|
return n.append(x(w, e), w.createTextNode(t)), n;
|
|
1207
|
-
},
|
|
1246
|
+
}, cr = (e) => {
|
|
1208
1247
|
let { labels: t } = k, n = w.createDocumentFragment();
|
|
1209
1248
|
if (e.type === "node") {
|
|
1210
1249
|
let r = e.index, a = j.nodes[r];
|
|
1211
|
-
if (n.append(
|
|
1250
|
+
if (n.append(sr(i(V[r]), Ce(j, r))), a.subtitle) {
|
|
1212
1251
|
let e = b(w.createElement("div"), {
|
|
1213
1252
|
color: "var(--text-secondary-color, #6b7280)",
|
|
1214
1253
|
marginBottom: "2px"
|
|
@@ -1216,8 +1255,8 @@ var Ee = [
|
|
|
1216
1255
|
e.textContent = a.subtitle, n.append(e);
|
|
1217
1256
|
}
|
|
1218
1257
|
let o = j.groupOf[r];
|
|
1219
|
-
if (o >= 0 && n.append(
|
|
1220
|
-
let e = i(
|
|
1258
|
+
if (o >= 0 && n.append(or(t.group, j.groups[o].name)), Number.isFinite(a.value) && n.append(or(t.value, k.value(a.value))), (M === "dag" || D.arrows || j.edges.some((e) => e.directed)) && !Ut() ? (n.append(or(t.incoming, k.count(j.inDegree[r]))), n.append(or(t.outgoing, k.count(j.outDegree[r])))) : Ut() || n.append(or(t.degree, k.count(j.inDegree[r] + j.outDegree[r]))), Ut() && gt[r] > 0 && !Tn(r) && n.append(or(t.hiddenChildren, k.count(gt[r]))), ht?.nodes[r]) {
|
|
1259
|
+
let e = i(Dt), r = b(w.createElement("div"), {
|
|
1221
1260
|
display: "inline-flex",
|
|
1222
1261
|
alignItems: "center",
|
|
1223
1262
|
gap: "5px",
|
|
@@ -1239,53 +1278,53 @@ var Ee = [
|
|
|
1239
1278
|
}
|
|
1240
1279
|
return n;
|
|
1241
1280
|
}
|
|
1242
|
-
let r = e.index, a = j.edges[r], o = j.source[r], s = j.target[r], c =
|
|
1243
|
-
if (n.append(
|
|
1281
|
+
let r = e.index, a = j.edges[r], o = j.source[r], s = j.target[r], c = wt[r] ? " → " : " — ";
|
|
1282
|
+
if (n.append(sr(i(St[r]), `${Ce(j, o)}${c}${Ce(j, s)}`)), a.label) {
|
|
1244
1283
|
let e = w.createElement("div");
|
|
1245
1284
|
e.textContent = a.label, n.append(e);
|
|
1246
1285
|
}
|
|
1247
|
-
return Number.isFinite(a.value) && n.append(
|
|
1248
|
-
},
|
|
1249
|
-
|
|
1286
|
+
return Number.isFinite(a.value) && n.append(or(t.value, k.value(a.value))), n;
|
|
1287
|
+
}, lr = 0, ur = null, dr = (e, t) => {
|
|
1288
|
+
ur = {
|
|
1250
1289
|
x: e,
|
|
1251
1290
|
y: t
|
|
1252
|
-
},
|
|
1253
|
-
|
|
1254
|
-
let e =
|
|
1255
|
-
if (
|
|
1256
|
-
let t =
|
|
1257
|
-
|
|
1291
|
+
}, !lr && Ye && (lr = Ye.requestAnimationFrame(() => {
|
|
1292
|
+
lr = 0;
|
|
1293
|
+
let e = ur;
|
|
1294
|
+
if (ur = null, !e || A || $) return;
|
|
1295
|
+
let t = Qn(e.x, e.y);
|
|
1296
|
+
nr(t), E.style.cursor = t?.type === "node" ? "pointer" : Ht()?.pan ? "grab" : "default";
|
|
1258
1297
|
}));
|
|
1259
|
-
},
|
|
1260
|
-
e.size === Y.size && [...e].every((e) => Y.has(e)) || (Y.clear(), e.forEach((e) => Y.add(e)), B = !0, Q(), T.live.textContent = Y.size ?
|
|
1261
|
-
},
|
|
1262
|
-
let n =
|
|
1298
|
+
}, fr = (e, t) => {
|
|
1299
|
+
e.size === Y.size && [...e].every((e) => Y.has(e)) || (Y.clear(), e.forEach((e) => Y.add(e)), B = !0, Q(), T.live.textContent = Y.size ? _e(k.labels.selected, { count: k.count(Y.size) }) : k.labels.selectionCleared, t && Qe("select", { ids: [...Y].map((e) => j.nodes[e].id) }));
|
|
1300
|
+
}, pr = (e, t) => {
|
|
1301
|
+
let n = Ht();
|
|
1263
1302
|
if (!n?.select) return;
|
|
1264
1303
|
let r = n.select === "multiple" || t, i = new Set(r ? Y : []);
|
|
1265
|
-
r && i.has(e) ? i.delete(e) : i.add(e),
|
|
1266
|
-
},
|
|
1304
|
+
r && i.has(e) ? i.delete(e) : i.add(e), fr(i, !0);
|
|
1305
|
+
}, mr = (e, t, n) => {
|
|
1267
1306
|
if (!L || !L.children[e]?.length) return !1;
|
|
1268
1307
|
let r = j.nodes[e].id;
|
|
1269
1308
|
if (t === z.has(r)) return !1;
|
|
1270
1309
|
t ? z.add(r) : z.delete(r);
|
|
1271
|
-
let i =
|
|
1272
|
-
|
|
1273
|
-
let a = new Set([...Y].filter((e) =>
|
|
1274
|
-
return a.size !== Y.size &&
|
|
1275
|
-
name:
|
|
1276
|
-
count: k.count(
|
|
1277
|
-
}) :
|
|
1310
|
+
let i = Zt();
|
|
1311
|
+
rn(i, !0);
|
|
1312
|
+
let a = new Set([...Y].filter((e) => st[e]));
|
|
1313
|
+
return a.size !== Y.size && fr(a, !0), J >= 0 && !st[J] && (J = e), T.live.textContent = t ? _e(k.labels.collapsed, {
|
|
1314
|
+
name: Ce(j, e),
|
|
1315
|
+
count: k.count(gt[e])
|
|
1316
|
+
}) : _e(k.labels.expanded, { name: Ce(j, e) }), n && Qe("toggle", {
|
|
1278
1317
|
id: r,
|
|
1279
1318
|
collapsed: t
|
|
1280
1319
|
}), !0;
|
|
1281
|
-
}, $ = null,
|
|
1320
|
+
}, $ = null, hr = /* @__PURE__ */ new Map(), gr = (e) => {
|
|
1282
1321
|
let t = E.getBoundingClientRect();
|
|
1283
1322
|
return {
|
|
1284
1323
|
x: e.clientX - t.left,
|
|
1285
1324
|
y: e.clientY - t.top
|
|
1286
1325
|
};
|
|
1287
|
-
},
|
|
1288
|
-
let e = [...
|
|
1326
|
+
}, _r = () => {
|
|
1327
|
+
let e = [...hr.values()], t = e[0] ?? {
|
|
1289
1328
|
x: 0,
|
|
1290
1329
|
y: 0
|
|
1291
1330
|
}, n = e[1] ?? t;
|
|
@@ -1296,12 +1335,12 @@ var Ee = [
|
|
|
1296
1335
|
y: (t.y + n.y) / 2
|
|
1297
1336
|
}
|
|
1298
1337
|
};
|
|
1299
|
-
},
|
|
1300
|
-
let t =
|
|
1338
|
+
}, vr = (e) => {
|
|
1339
|
+
let t = Ht();
|
|
1301
1340
|
if (!t || e.target?.closest?.("button")) return;
|
|
1302
|
-
let n =
|
|
1303
|
-
if (
|
|
1304
|
-
let { distance: e, center: t } =
|
|
1341
|
+
let n = gr(e);
|
|
1342
|
+
if (hr.set(e.pointerId, n), E.setPointerCapture?.(e.pointerId), kt = null, hr.size === 2 && (t.zoom || t.pan)) {
|
|
1343
|
+
let { distance: e, center: t } = _r();
|
|
1305
1344
|
$ = {
|
|
1306
1345
|
mode: "pinch",
|
|
1307
1346
|
index: -1,
|
|
@@ -1318,8 +1357,8 @@ var Ee = [
|
|
|
1318
1357
|
};
|
|
1319
1358
|
return;
|
|
1320
1359
|
}
|
|
1321
|
-
if (
|
|
1322
|
-
let r = e.button === 0 ?
|
|
1360
|
+
if (hr.size > 1) return;
|
|
1361
|
+
let r = e.button === 0 ? Jn(n.x, n.y) : -1, i = {
|
|
1323
1362
|
origin: n,
|
|
1324
1363
|
view: [
|
|
1325
1364
|
H,
|
|
@@ -1341,126 +1380,126 @@ var Ee = [
|
|
|
1341
1380
|
index: r,
|
|
1342
1381
|
offset: [0, 0]
|
|
1343
1382
|
}, e.button === 1 && e.preventDefault();
|
|
1344
|
-
},
|
|
1345
|
-
let t =
|
|
1346
|
-
if (
|
|
1347
|
-
if (e.pointerType === "touch" &&
|
|
1348
|
-
|
|
1383
|
+
}, yr = (e) => {
|
|
1384
|
+
let t = gr(e);
|
|
1385
|
+
if (hr.has(e.pointerId) && hr.set(e.pointerId, t), !$) {
|
|
1386
|
+
if (e.pointerType === "touch" && hr.size) return;
|
|
1387
|
+
dr(t.x, t.y);
|
|
1349
1388
|
return;
|
|
1350
1389
|
}
|
|
1351
|
-
let n =
|
|
1390
|
+
let n = Ht();
|
|
1352
1391
|
if (!n) return;
|
|
1353
1392
|
if ($.mode === "pinch") {
|
|
1354
|
-
let { distance: e, center: t } =
|
|
1355
|
-
H = l, U = p - (d - i) * u, W = m - (f - a) * u,
|
|
1393
|
+
let { distance: e, center: t } = _r(), [r, i, a] = $.view, [o, s] = Fn(), c = n.zoom && $.distance > 0 ? e / $.distance : 1, l = Math.max(o, Math.min(s, r * c)), u = l / r, d = $.origin.x, f = $.origin.y, p = n.pan ? t.x : d, m = n.pan ? t.y : f;
|
|
1394
|
+
H = l, U = p - (d - i) * u, W = m - (f - a) * u, At = !0, B = !0, Q();
|
|
1356
1395
|
return;
|
|
1357
1396
|
}
|
|
1358
1397
|
let r = t.x - $.origin.x, i = t.y - $.origin.y;
|
|
1359
1398
|
if (!$.moved && Math.hypot(r, i) < 3) return;
|
|
1360
|
-
if ($.moved || ($.moved = !0, q &&
|
|
1399
|
+
if ($.moved || ($.moved = !0, q && nr(null), E.style.cursor = ($.mode, "grabbing")), $.mode === "node") {
|
|
1361
1400
|
let e = $.index;
|
|
1362
|
-
|
|
1401
|
+
Pt = !1;
|
|
1363
1402
|
let n = (t.x - U) / H - $.offset[0], r = (t.y - W) / H - $.offset[1];
|
|
1364
1403
|
if (R) R.drag(e, n, r);
|
|
1365
1404
|
else if (M === "force") {
|
|
1366
|
-
let t =
|
|
1367
|
-
|
|
1405
|
+
let t = Zt();
|
|
1406
|
+
br(t), R?.drag(e, n, r);
|
|
1368
1407
|
}
|
|
1369
|
-
P[e] = I[e] = n, F[e] =
|
|
1408
|
+
P[e] = I[e] = n, F[e] = it[e] = r, vt = !0, Q();
|
|
1370
1409
|
return;
|
|
1371
1410
|
}
|
|
1372
1411
|
if (!n.pan) return;
|
|
1373
1412
|
let [a, o, s] = $.view;
|
|
1374
|
-
H = a, U = o + r, W = s + i,
|
|
1375
|
-
},
|
|
1376
|
-
|
|
1377
|
-
},
|
|
1413
|
+
H = a, U = o + r, W = s + i, At = !0, B = !0, Q();
|
|
1414
|
+
}, br = (e) => {
|
|
1415
|
+
Qt(), tn(e, !1);
|
|
1416
|
+
}, xr = (e) => {
|
|
1378
1417
|
let t = $;
|
|
1379
|
-
if (
|
|
1418
|
+
if (hr.delete(e.pointerId), E.hasPointerCapture?.(e.pointerId) && E.releasePointerCapture(e.pointerId), hr.size) {
|
|
1380
1419
|
t?.mode === "pinch" && ($ = null);
|
|
1381
1420
|
return;
|
|
1382
1421
|
}
|
|
1383
|
-
if ($ = null, E.style.cursor =
|
|
1422
|
+
if ($ = null, E.style.cursor = Ht()?.pan ? "grab" : "default", !t) return;
|
|
1384
1423
|
if (t.mode === "node" && t.moved) {
|
|
1385
1424
|
R?.release(t.index, !!j.nodes[t.index].fixed);
|
|
1386
1425
|
return;
|
|
1387
1426
|
}
|
|
1388
1427
|
if (t.moved || t.button !== 0) return;
|
|
1389
|
-
let n =
|
|
1390
|
-
|
|
1391
|
-
},
|
|
1428
|
+
let n = gr(e), r = Qn(n.x, n.y);
|
|
1429
|
+
Sr(r, e.ctrlKey || e.metaKey || e.shiftKey);
|
|
1430
|
+
}, Sr = (e, t) => {
|
|
1392
1431
|
if (!e) {
|
|
1393
|
-
Y.size &&
|
|
1432
|
+
Y.size && Ht()?.select && fr(/* @__PURE__ */ new Set(), !0);
|
|
1394
1433
|
return;
|
|
1395
1434
|
}
|
|
1396
|
-
let n =
|
|
1397
|
-
if (
|
|
1435
|
+
let n = er(e);
|
|
1436
|
+
if (Qe("click", n), e.type !== "node") return;
|
|
1398
1437
|
let r = e.index;
|
|
1399
|
-
|
|
1400
|
-
},
|
|
1401
|
-
|
|
1402
|
-
},
|
|
1403
|
-
|
|
1404
|
-
},
|
|
1405
|
-
let e = /Mac|iPhone|iPad/.test(
|
|
1406
|
-
T.hint.textContent =
|
|
1407
|
-
|
|
1438
|
+
Wt() && L?.children[r]?.length && mr(r, Tn(r), !0), pr(r, t);
|
|
1439
|
+
}, Cr = (e) => {
|
|
1440
|
+
hr.delete(e.pointerId), hr.size || ($?.mode === "node" && R?.release($.index, !!j.nodes[$.index].fixed), $ = null);
|
|
1441
|
+
}, wr = () => {
|
|
1442
|
+
ur = null, !$ && q && nr(null);
|
|
1443
|
+
}, Tr = 0, Er = () => {
|
|
1444
|
+
let e = /Mac|iPhone|iPad/.test(Ye?.navigator?.platform ?? "");
|
|
1445
|
+
T.hint.textContent = _e(k.labels.zoomHint, { key: e ? "⌘" : "Ctrl" }), T.hint.style.opacity = "1", Tr && clearTimeout(Tr), Tr = setTimeout(() => {
|
|
1446
|
+
Tr = 0, T.hint.style.opacity = "0";
|
|
1408
1447
|
}, 1200);
|
|
1409
|
-
},
|
|
1410
|
-
let t =
|
|
1448
|
+
}, Dr = (e) => {
|
|
1449
|
+
let t = Ht();
|
|
1411
1450
|
if (!t?.zoom) return;
|
|
1412
1451
|
let n = e.ctrlKey && !e.metaKey;
|
|
1413
1452
|
if (t.wheel === "modifier" && !e.ctrlKey && !e.metaKey) {
|
|
1414
|
-
Math.abs(e.deltaY) > Math.abs(e.deltaX) &&
|
|
1453
|
+
Math.abs(e.deltaY) > Math.abs(e.deltaX) && Er();
|
|
1415
1454
|
return;
|
|
1416
1455
|
}
|
|
1417
1456
|
e.preventDefault();
|
|
1418
|
-
let r =
|
|
1419
|
-
|
|
1420
|
-
},
|
|
1421
|
-
if (!
|
|
1422
|
-
let t =
|
|
1423
|
-
|
|
1424
|
-
},
|
|
1457
|
+
let r = gr(e);
|
|
1458
|
+
kt = null, Rn(1 / He(e.deltaY, e.deltaMode, n), r.x, r.y), q && nr(null);
|
|
1459
|
+
}, Or = (e) => {
|
|
1460
|
+
if (!Ht()) return;
|
|
1461
|
+
let t = gr(e);
|
|
1462
|
+
Jn(t.x, t.y) >= 0 || (e.preventDefault(), Jr.fit(!0));
|
|
1463
|
+
}, kr = () => {
|
|
1425
1464
|
let e;
|
|
1426
1465
|
try {
|
|
1427
1466
|
e = E.matches(":focus-visible");
|
|
1428
1467
|
} catch {
|
|
1429
1468
|
e = !0;
|
|
1430
1469
|
}
|
|
1431
|
-
|
|
1432
|
-
},
|
|
1433
|
-
E.style.boxShadow = "",
|
|
1434
|
-
},
|
|
1470
|
+
Ft = e, e && (E.style.boxShadow = "0 0 0 2px var(--primary-color, #4f46e5)");
|
|
1471
|
+
}, Ar = () => {
|
|
1472
|
+
E.style.boxShadow = "", Ft = !1, J >= 0 && (J = -1, ir(), B = !0, Q());
|
|
1473
|
+
}, jr = () => {
|
|
1435
1474
|
let e = [];
|
|
1436
|
-
for (let t = 0; t < j.n; t++) Z(t) > 0 && (!
|
|
1475
|
+
for (let t = 0; t < j.n; t++) Z(t) > 0 && (!lt || st[t]) && e.push(t);
|
|
1437
1476
|
return e;
|
|
1438
|
-
},
|
|
1477
|
+
}, Mr = (e) => {
|
|
1439
1478
|
if (e === J) return;
|
|
1440
|
-
J = e,
|
|
1441
|
-
let t =
|
|
1442
|
-
(t < 40 || n < 40 || t > G - 40 || n > K - 40) &&
|
|
1479
|
+
J = e, Ft = !0, B = !0;
|
|
1480
|
+
let t = On(e), n = kn(e);
|
|
1481
|
+
(t < 40 || n < 40 || t > G - 40 || n > K - 40) && Ln([
|
|
1443
1482
|
H,
|
|
1444
1483
|
U + G / 2 - t,
|
|
1445
1484
|
W + K / 2 - n
|
|
1446
1485
|
], !0);
|
|
1447
1486
|
let r = j.groupOf[e], i = j.inDegree[e] + j.outDegree[e];
|
|
1448
|
-
T.live.textContent = r >= 0 ?
|
|
1449
|
-
name:
|
|
1487
|
+
T.live.textContent = r >= 0 ? _e(k.labels.nodeFocusGroup, {
|
|
1488
|
+
name: Ce(j, e),
|
|
1450
1489
|
group: j.groups[r].name,
|
|
1451
1490
|
degree: k.count(i)
|
|
1452
|
-
}) :
|
|
1453
|
-
name:
|
|
1491
|
+
}) : _e(k.labels.nodeFocus, {
|
|
1492
|
+
name: Ce(j, e),
|
|
1454
1493
|
degree: k.count(i)
|
|
1455
|
-
}),
|
|
1494
|
+
}), ir(), Q(), Qe("hover", er({
|
|
1456
1495
|
type: "node",
|
|
1457
1496
|
index: e
|
|
1458
1497
|
}));
|
|
1459
|
-
},
|
|
1460
|
-
let r =
|
|
1461
|
-
for (let s of
|
|
1498
|
+
}, Nr = (e, t, n) => {
|
|
1499
|
+
let r = On(e), i = kn(e), a = -1, o = Infinity;
|
|
1500
|
+
for (let s of jr()) {
|
|
1462
1501
|
if (s === e) continue;
|
|
1463
|
-
let c =
|
|
1502
|
+
let c = On(s) - r, l = kn(s) - i, u = c * t + l * n;
|
|
1464
1503
|
if (u <= .5) continue;
|
|
1465
1504
|
let d = Math.abs(c * n - l * t);
|
|
1466
1505
|
if (d > u * 2.5) continue;
|
|
@@ -1468,13 +1507,13 @@ var Ee = [
|
|
|
1468
1507
|
f < o && (o = f, a = s);
|
|
1469
1508
|
}
|
|
1470
1509
|
return a;
|
|
1471
|
-
},
|
|
1510
|
+
}, Pr = () => {
|
|
1472
1511
|
let e = [...Y].find((e) => Z(e) > 0);
|
|
1473
1512
|
if (e !== void 0) return e;
|
|
1474
1513
|
for (let e of j.rank) if (Z(e) > 0) return e;
|
|
1475
1514
|
return -1;
|
|
1476
|
-
},
|
|
1477
|
-
let t =
|
|
1515
|
+
}, Fr = (e) => {
|
|
1516
|
+
let t = Ht();
|
|
1478
1517
|
if (!t?.keyboard) return;
|
|
1479
1518
|
let n = {
|
|
1480
1519
|
ArrowLeft: [-1, 0],
|
|
@@ -1484,60 +1523,60 @@ var Ee = [
|
|
|
1484
1523
|
}[e.key];
|
|
1485
1524
|
if (n) {
|
|
1486
1525
|
if (e.preventDefault(), J < 0 || Z(J) <= 0) {
|
|
1487
|
-
let e =
|
|
1488
|
-
e >= 0 &&
|
|
1526
|
+
let e = Pr();
|
|
1527
|
+
e >= 0 && Mr(e);
|
|
1489
1528
|
return;
|
|
1490
1529
|
}
|
|
1491
|
-
let t =
|
|
1492
|
-
t >= 0 &&
|
|
1530
|
+
let t = Nr(J, n[0], n[1]);
|
|
1531
|
+
t >= 0 && Mr(t);
|
|
1493
1532
|
return;
|
|
1494
1533
|
}
|
|
1495
1534
|
switch (e.key) {
|
|
1496
1535
|
case "Enter":
|
|
1497
1536
|
case " ":
|
|
1498
1537
|
if (J < 0) return;
|
|
1499
|
-
e.preventDefault(), e.key === "Enter" &&
|
|
1538
|
+
e.preventDefault(), e.key === "Enter" && Wt() && L?.children[J]?.length && mr(J, Tn(J), !0), Qe("click", er({
|
|
1500
1539
|
type: "node",
|
|
1501
1540
|
index: J
|
|
1502
|
-
})),
|
|
1541
|
+
})), pr(J, e.ctrlKey || e.metaKey || e.key === " ");
|
|
1503
1542
|
return;
|
|
1504
1543
|
case "+":
|
|
1505
1544
|
case "=":
|
|
1506
1545
|
if (!t.zoom) return;
|
|
1507
|
-
e.preventDefault(),
|
|
1546
|
+
e.preventDefault(), Rn(Be, G / 2, K / 2, !0);
|
|
1508
1547
|
return;
|
|
1509
1548
|
case "-":
|
|
1510
1549
|
case "_":
|
|
1511
1550
|
if (!t.zoom) return;
|
|
1512
|
-
e.preventDefault(),
|
|
1551
|
+
e.preventDefault(), Rn(1 / Be, G / 2, K / 2, !0);
|
|
1513
1552
|
return;
|
|
1514
1553
|
case "0":
|
|
1515
1554
|
case "Home":
|
|
1516
|
-
e.preventDefault(),
|
|
1555
|
+
e.preventDefault(), Jr.fit(!0);
|
|
1517
1556
|
return;
|
|
1518
1557
|
case "Escape":
|
|
1519
1558
|
if (!(J >= 0 || Y.size > 0 || q)) return;
|
|
1520
|
-
e.preventDefault(), J = -1, q &&
|
|
1559
|
+
e.preventDefault(), J = -1, q && nr(null), fr(/* @__PURE__ */ new Set(), !0), ir(), B = !0, Q();
|
|
1521
1560
|
return;
|
|
1522
1561
|
}
|
|
1523
|
-
},
|
|
1524
|
-
E.addEventListener("pointerdown",
|
|
1525
|
-
let
|
|
1526
|
-
|
|
1527
|
-
let
|
|
1562
|
+
}, Ir = () => Rn(Ve, G / 2, K / 2, !0), Lr = () => Rn(1 / Ve, G / 2, K / 2, !0), Rr = () => Jr.fit(!0);
|
|
1563
|
+
E.addEventListener("pointerdown", vr), E.addEventListener("pointermove", yr), E.addEventListener("pointerup", xr), E.addEventListener("pointercancel", Cr), E.addEventListener("pointerleave", wr), E.addEventListener("wheel", Dr, { passive: !1 }), E.addEventListener("dblclick", Or), E.addEventListener("keydown", Fr), E.addEventListener("focus", kr), E.addEventListener("blur", Ar), T.zoomIn.addEventListener("click", Ir), T.zoomOut.addEventListener("click", Lr), T.fit.addEventListener("click", Rr);
|
|
1564
|
+
let zr = typeof ResizeObserver == "function" ? new ResizeObserver(() => Q()) : null;
|
|
1565
|
+
zr?.observe(E);
|
|
1566
|
+
let Br = () => {
|
|
1528
1567
|
if (A) return;
|
|
1529
1568
|
let e = u(T.root, D.palette), t = e.fontFamily !== O.fontFamily;
|
|
1530
1569
|
if (d(O, e) || t) {
|
|
1531
1570
|
if (O = e, t) {
|
|
1532
|
-
Zt(
|
|
1571
|
+
rn(Zt(), !1);
|
|
1533
1572
|
return;
|
|
1534
1573
|
}
|
|
1535
|
-
|
|
1574
|
+
sn(), zn = "", Bn(), Lt = "", Q();
|
|
1536
1575
|
}
|
|
1537
|
-
},
|
|
1538
|
-
A || o(D.locale) === k.locale || (k =
|
|
1539
|
-
}),
|
|
1540
|
-
let t = ++
|
|
1576
|
+
}, Vr = f(Br), Hr = s(() => {
|
|
1577
|
+
A || o(D.locale) === k.locale || (k = ve(D.locale, D.labels), Hn(), (q || J >= 0) && ir());
|
|
1578
|
+
}), Ur = async (e = /* @__PURE__ */ new Set()) => {
|
|
1579
|
+
let t = ++Rt, n = await c(D.renderer ?? "auto", () => {
|
|
1541
1580
|
let e = b(w.createElement("canvas"), {
|
|
1542
1581
|
position: "absolute",
|
|
1543
1582
|
left: "0",
|
|
@@ -1546,34 +1585,34 @@ var Ee = [
|
|
|
1546
1585
|
});
|
|
1547
1586
|
return e.setAttribute("aria-hidden", "true"), e.className = "minerva-chart-data", e;
|
|
1548
1587
|
}, (t) => {
|
|
1549
|
-
A || X?.kind !== t || (X.destroy(), X.canvas.remove(), X = null,
|
|
1588
|
+
A || X?.kind !== t || (X.destroy(), X.canvas.remove(), X = null, Ur(/* @__PURE__ */ new Set([...e, t])));
|
|
1550
1589
|
}, e);
|
|
1551
|
-
if (A || t !==
|
|
1590
|
+
if (A || t !== Rt) {
|
|
1552
1591
|
n?.destroy();
|
|
1553
1592
|
return;
|
|
1554
1593
|
}
|
|
1555
|
-
X && (X.destroy(), X.canvas.remove()), X = n, B = !0, n ? (T.root.dataset.renderer = n.kind, E.insertBefore(n.canvas, T.foreground),
|
|
1556
|
-
},
|
|
1594
|
+
X && (X.destroy(), X.canvas.remove()), X = n, B = !0, n ? (T.root.dataset.renderer = n.kind, E.insertBefore(n.canvas, T.foreground), Qe("renderer", n.kind)) : delete T.root.dataset.renderer, zt(n?.kind ?? null), Q();
|
|
1595
|
+
}, Wr = (e) => {
|
|
1557
1596
|
z.clear();
|
|
1558
1597
|
for (let t of e.nodes ?? []) t?.collapsed && z.add(t.id);
|
|
1559
|
-
|
|
1560
|
-
for (let t of e.groups ?? []) t?.hidden &&
|
|
1561
|
-
},
|
|
1598
|
+
mt.clear();
|
|
1599
|
+
for (let t of e.groups ?? []) t?.hidden && mt.add(t.id);
|
|
1600
|
+
}, Gr = () => {
|
|
1562
1601
|
if (!D.selected) return;
|
|
1563
1602
|
let e = /* @__PURE__ */ new Set();
|
|
1564
1603
|
for (let t of D.selected) {
|
|
1565
1604
|
let n = j.index.get(t);
|
|
1566
1605
|
n !== void 0 && e.add(n);
|
|
1567
1606
|
}
|
|
1568
|
-
Y.clear(), e.forEach((e) => Y.add(e)),
|
|
1607
|
+
Y.clear(), e.forEach((e) => Y.add(e)), Lt = "", B = !0;
|
|
1569
1608
|
};
|
|
1570
|
-
|
|
1571
|
-
let
|
|
1572
|
-
let n =
|
|
1609
|
+
Wr(D), rn(/* @__PURE__ */ new Map(), !1), Gr(), Ur();
|
|
1610
|
+
let Kr = l(() => D.renderer, () => void Ur()), qr = (e, t) => {
|
|
1611
|
+
let n = Zt(), r = [...Y].map((e) => j.nodes[e].id), i = J >= 0 ? j.nodes[J].id : null;
|
|
1573
1612
|
if (t) {
|
|
1574
1613
|
for (let t of e.nodes ?? []) t?.collapsed && z.add(t.id);
|
|
1575
|
-
j =
|
|
1576
|
-
for (let t of e.groups ?? []) t?.hidden &&
|
|
1614
|
+
j = ye(e.nodes ?? [], e.edges ?? [], e.groups);
|
|
1615
|
+
for (let t of e.groups ?? []) t?.hidden && mt.add(t.id);
|
|
1577
1616
|
Y.clear();
|
|
1578
1617
|
for (let e of r) {
|
|
1579
1618
|
let t = j.index.get(e);
|
|
@@ -1581,17 +1620,17 @@ var Ee = [
|
|
|
1581
1620
|
}
|
|
1582
1621
|
J = i === null ? -1 : j.index.get(i) ?? -1, q = null, T.tooltip.style.display = "none";
|
|
1583
1622
|
}
|
|
1584
|
-
|
|
1585
|
-
},
|
|
1623
|
+
rn(n, !0);
|
|
1624
|
+
}, Jr = {
|
|
1586
1625
|
setOptions(e) {
|
|
1587
1626
|
if (A) return;
|
|
1588
1627
|
let t = D;
|
|
1589
|
-
D = e, (e.palette ?? []).join() !== (t.palette ?? []).join() && (O = u(T.root, e.palette)), (e.locale !== t.locale || e.labels !== t.labels) && (k =
|
|
1590
|
-
let n = e.nodes !== t.nodes || e.edges !== t.edges || e.groups !== t.groups, r =
|
|
1591
|
-
n || r !==
|
|
1628
|
+
D = e, (e.palette ?? []).join() !== (t.palette ?? []).join() && (O = u(T.root, e.palette)), (e.locale !== t.locale || e.labels !== t.labels) && (k = ve(e.locale, e.labels));
|
|
1629
|
+
let n = e.nodes !== t.nodes || e.edges !== t.edges || e.groups !== t.groups, r = Ke(e);
|
|
1630
|
+
n || r !== rt ? (rt = r, qr(e, n)) : (on(), sn(), vt = !0, Lt = "", zn = "", Bn(), Hn(), Q()), (e.selected ?? []).join("") !== (t.selected ?? []).join("") && Gr(), (e.renderer ?? "auto") !== (t.renderer ?? "auto") && Ur();
|
|
1592
1631
|
},
|
|
1593
1632
|
setData(e) {
|
|
1594
|
-
A ||
|
|
1633
|
+
A || Jr.setOptions({
|
|
1595
1634
|
...D,
|
|
1596
1635
|
nodes: e.nodes,
|
|
1597
1636
|
edges: e.edges,
|
|
@@ -1600,27 +1639,27 @@ var Ee = [
|
|
|
1600
1639
|
},
|
|
1601
1640
|
fit(e = !0) {
|
|
1602
1641
|
if (A) return;
|
|
1603
|
-
|
|
1604
|
-
let t =
|
|
1605
|
-
t ?
|
|
1642
|
+
At = !1, R?.running() && (Pt = !0);
|
|
1643
|
+
let t = Pn();
|
|
1644
|
+
t ? Ln(t, e) : jt = !0, Q();
|
|
1606
1645
|
},
|
|
1607
1646
|
focusNode(e, t = {}) {
|
|
1608
1647
|
if (A) return;
|
|
1609
1648
|
let n = j.index.get(e);
|
|
1610
1649
|
if (n === void 0) return;
|
|
1611
|
-
if (L && !
|
|
1650
|
+
if (L && !st[n]) {
|
|
1612
1651
|
let r = !1;
|
|
1613
1652
|
for (let e = L.parent[n]; e >= 0; e = L.parent[e]) z.delete(j.nodes[e].id) && (r = !0);
|
|
1614
|
-
r && Zt(
|
|
1653
|
+
r && rn(Zt(), t.animate !== !1), n = j.index.get(e);
|
|
1615
1654
|
}
|
|
1616
|
-
let r = t.zoom ?? Math.max(H, 1), [i, a] =
|
|
1617
|
-
|
|
1655
|
+
let r = t.zoom ?? Math.max(H, 1), [i, a] = Fn(), o = Math.max(i, Math.min(a, r));
|
|
1656
|
+
At = !0;
|
|
1618
1657
|
let s = G || E.clientWidth, c = K || E.clientHeight;
|
|
1619
|
-
|
|
1658
|
+
Ln([
|
|
1620
1659
|
o,
|
|
1621
1660
|
s / 2 - I[n] * o,
|
|
1622
|
-
c / 2 -
|
|
1623
|
-
], t.animate !== !1), J = n,
|
|
1661
|
+
c / 2 - it[n] * o
|
|
1662
|
+
], t.animate !== !1), J = n, Lt = "", B = !0, Q();
|
|
1624
1663
|
},
|
|
1625
1664
|
select(e) {
|
|
1626
1665
|
if (A) return;
|
|
@@ -1629,7 +1668,7 @@ var Ee = [
|
|
|
1629
1668
|
let t = j.index.get(e);
|
|
1630
1669
|
t !== void 0 && n.add(t);
|
|
1631
1670
|
}
|
|
1632
|
-
|
|
1671
|
+
fr(n, !0);
|
|
1633
1672
|
},
|
|
1634
1673
|
getSelection: () => [...Y].map((e) => j.nodes[e].id),
|
|
1635
1674
|
expand(e) {
|
|
@@ -1637,15 +1676,15 @@ var Ee = [
|
|
|
1637
1676
|
if (e === void 0) {
|
|
1638
1677
|
if (!z.size) return;
|
|
1639
1678
|
let e = [...z];
|
|
1640
|
-
z.clear(), Zt(
|
|
1641
|
-
for (let t of e) j.index.has(t) &&
|
|
1679
|
+
z.clear(), rn(Zt(), !0);
|
|
1680
|
+
for (let t of e) j.index.has(t) && Qe("toggle", {
|
|
1642
1681
|
id: t,
|
|
1643
1682
|
collapsed: !1
|
|
1644
1683
|
});
|
|
1645
1684
|
return;
|
|
1646
1685
|
}
|
|
1647
1686
|
let t = j.index.get(e);
|
|
1648
|
-
t === void 0 ? z.delete(e) :
|
|
1687
|
+
t === void 0 ? z.delete(e) : mr(t, !1, !0);
|
|
1649
1688
|
},
|
|
1650
1689
|
collapse(e) {
|
|
1651
1690
|
if (A) return;
|
|
@@ -1656,53 +1695,53 @@ var Ee = [
|
|
|
1656
1695
|
let r = j.nodes[n].id;
|
|
1657
1696
|
t.length && L.parent[n] >= 0 && !z.has(r) && (z.add(r), e.push(r));
|
|
1658
1697
|
}), !e.length) return;
|
|
1659
|
-
Zt(
|
|
1660
|
-
for (let t of e)
|
|
1698
|
+
rn(Zt(), !0);
|
|
1699
|
+
for (let t of e) Qe("toggle", {
|
|
1661
1700
|
id: t,
|
|
1662
1701
|
collapsed: !0
|
|
1663
1702
|
});
|
|
1664
1703
|
return;
|
|
1665
1704
|
}
|
|
1666
1705
|
let t = j.index.get(e);
|
|
1667
|
-
t !== void 0 &&
|
|
1706
|
+
t !== void 0 && mr(t, !0, !0);
|
|
1668
1707
|
},
|
|
1669
1708
|
toggle(e) {
|
|
1670
1709
|
let t = j.index.get(e);
|
|
1671
|
-
t === void 0 || A ||
|
|
1710
|
+
t === void 0 || A || mr(t, Tn(t), !0);
|
|
1672
1711
|
},
|
|
1673
1712
|
getPositions() {
|
|
1674
1713
|
let e = {};
|
|
1675
1714
|
for (let t = 0; t < j.n; t++) e[j.nodes[t].id] = {
|
|
1676
1715
|
x: I[t],
|
|
1677
|
-
y:
|
|
1716
|
+
y: it[t]
|
|
1678
1717
|
};
|
|
1679
1718
|
return e;
|
|
1680
1719
|
},
|
|
1681
1720
|
relayout() {
|
|
1682
|
-
A ||
|
|
1721
|
+
A || rn(M === "force" ? /* @__PURE__ */ new Map() : Zt(), !0);
|
|
1683
1722
|
},
|
|
1684
1723
|
resize() {
|
|
1685
1724
|
Q();
|
|
1686
1725
|
},
|
|
1687
1726
|
getRenderer: () => X?.kind ?? null,
|
|
1688
|
-
ready:
|
|
1689
|
-
refreshTheme:
|
|
1727
|
+
ready: Bt,
|
|
1728
|
+
refreshTheme: Br,
|
|
1690
1729
|
on(e, t) {
|
|
1691
|
-
let n =
|
|
1692
|
-
return n || (n = /* @__PURE__ */ new Set(),
|
|
1730
|
+
let n = Ze.get(e);
|
|
1731
|
+
return n || (n = /* @__PURE__ */ new Set(), Ze.set(e, n)), n.add(t), () => {
|
|
1693
1732
|
n.delete(t);
|
|
1694
1733
|
};
|
|
1695
1734
|
},
|
|
1696
1735
|
destroy() {
|
|
1697
|
-
A || (A = !0,
|
|
1736
|
+
A || (A = !0, Rt++, Vt && Ye?.cancelAnimationFrame(Vt), lr && Ye?.cancelAnimationFrame(lr), Tr && clearTimeout(Tr), Vt = 0, lr = 0, Qt(), zr?.disconnect(), Kr(), Vr(), Hr(), E.removeEventListener("pointerdown", vr), E.removeEventListener("pointermove", yr), E.removeEventListener("pointerup", xr), E.removeEventListener("pointercancel", Cr), E.removeEventListener("pointerleave", wr), E.removeEventListener("wheel", Dr), E.removeEventListener("dblclick", Or), E.removeEventListener("keydown", Fr), E.removeEventListener("focus", kr), E.removeEventListener("blur", Ar), T.zoomIn.removeEventListener("click", Ir), T.zoomOut.removeEventListener("click", Lr), T.fit.removeEventListener("click", Rr), X?.destroy(), X = null, Ze.clear(), zt(null), T.root.remove());
|
|
1698
1737
|
}
|
|
1699
1738
|
};
|
|
1700
|
-
return
|
|
1739
|
+
return Jr;
|
|
1701
1740
|
};
|
|
1702
|
-
function
|
|
1741
|
+
function Je(t) {
|
|
1703
1742
|
return e(t.background) < .4 || e(t.text) > .6;
|
|
1704
1743
|
}
|
|
1705
1744
|
//#endregion
|
|
1706
|
-
export {
|
|
1745
|
+
export { qe as createGraphChart, Ge as resolveLayout };
|
|
1707
1746
|
|
|
1708
1747
|
//# sourceMappingURL=chart.js.map
|