@infinit-canvas/react 0.1.27 → 0.1.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/react-infinite-canvas.cjs +557 -555
- package/dist/react-infinite-canvas.js +553 -551
- package/package.json +1 -1
|
@@ -89,11 +89,11 @@ function Vo(t) {
|
|
|
89
89
|
const { width: e, height: n } = Mr(t);
|
|
90
90
|
return { x: t.position.x, y: t.position.y, width: e, height: n };
|
|
91
91
|
}
|
|
92
|
-
const Rr = `var
|
|
92
|
+
const Rr = `var Ia = null, r = null, fr = 0, vr = 0, k = { x: 0, y: 0, zoom: 1 }, H = [], W = [], S = [], $ = !1, Ke = 40, Pe = !1, cr = "lines", xa = 1, Jt = null, lt = null, mr = null, Kt = {}, el = {}, it = {}, bt = {}, Ka = 0, C = 160, B = 60, Za = 8, Oo = 5;
|
|
93
93
|
function y(a) {
|
|
94
94
|
return a._absolutePosition || a.position;
|
|
95
95
|
}
|
|
96
|
-
function
|
|
96
|
+
function Nl(a, t, e, l, i) {
|
|
97
97
|
if (a.x !== void 0 && a.y !== void 0)
|
|
98
98
|
return { x: t + a.x, y: e + a.y };
|
|
99
99
|
var o = a.position || (a.type === "source" ? "right" : "left");
|
|
@@ -110,16 +110,16 @@ function cl(a, t, e, l, i) {
|
|
|
110
110
|
return { x: t + l, y: e + i / 2 };
|
|
111
111
|
}
|
|
112
112
|
}
|
|
113
|
-
function
|
|
114
|
-
var t = a.width ||
|
|
113
|
+
function ol(a) {
|
|
114
|
+
var t = a.width || C, e = a.height || B;
|
|
115
115
|
if (a.handles && a.handles.length > 0)
|
|
116
|
-
return a.handles.map(function(
|
|
117
|
-
var
|
|
118
|
-
return { id:
|
|
116
|
+
return a.handles.map(function(h) {
|
|
117
|
+
var x = Nl(h, y(a).x, y(a).y, t, e);
|
|
118
|
+
return { id: h.id || null, type: h.type, x: x.x, y: x.y, position: h.position };
|
|
119
119
|
});
|
|
120
120
|
var l = a.targetPosition || "left", i = a.sourcePosition || "right", o = y(a);
|
|
121
|
-
function f(
|
|
122
|
-
switch (
|
|
121
|
+
function f(h) {
|
|
122
|
+
switch (h) {
|
|
123
123
|
case "top":
|
|
124
124
|
return { x: o.x + t / 2, y: o.y };
|
|
125
125
|
case "bottom":
|
|
@@ -132,69 +132,69 @@ function el(a) {
|
|
|
132
132
|
return { x: o.x + t, y: o.y + e / 2 };
|
|
133
133
|
}
|
|
134
134
|
}
|
|
135
|
-
var
|
|
135
|
+
var n = f(l), g = f(i);
|
|
136
136
|
return [
|
|
137
|
-
{ id: null, type: "target", x:
|
|
138
|
-
{ id: null, type: "source", x:
|
|
137
|
+
{ id: null, type: "target", x: n.x, y: n.y, position: l },
|
|
138
|
+
{ id: null, type: "source", x: g.x, y: g.y, position: i }
|
|
139
139
|
];
|
|
140
140
|
}
|
|
141
|
-
var
|
|
142
|
-
function
|
|
143
|
-
|
|
144
|
-
var t =
|
|
145
|
-
return t || (t =
|
|
141
|
+
var qe = {}, ht = !0;
|
|
142
|
+
function Dl(a) {
|
|
143
|
+
ht && (qe = {}, ht = !1);
|
|
144
|
+
var t = qe[a.id];
|
|
145
|
+
return t || (t = ol(a), qe[a.id] = t, t);
|
|
146
146
|
}
|
|
147
|
-
function
|
|
148
|
-
for (var l =
|
|
147
|
+
function Qt(a, t, e) {
|
|
148
|
+
for (var l = Dl(a), i = 0; i < l.length; i++)
|
|
149
149
|
if (l[i].type === t)
|
|
150
150
|
if (e) {
|
|
151
151
|
if (l[i].id === e) return l[i];
|
|
152
152
|
} else
|
|
153
153
|
return l[i];
|
|
154
|
-
var o = a.width ||
|
|
154
|
+
var o = a.width || C, f = a.height || B;
|
|
155
155
|
return t === "source" ? { x: y(a).x + o, y: y(a).y + f / 2 } : { x: y(a).x, y: y(a).y + f / 2 };
|
|
156
156
|
}
|
|
157
|
-
var
|
|
158
|
-
function
|
|
159
|
-
|
|
160
|
-
grid:
|
|
161
|
-
origin:
|
|
162
|
-
cardBg:
|
|
163
|
-
cardBorder:
|
|
164
|
-
cardShadow:
|
|
157
|
+
var M = {};
|
|
158
|
+
function be() {
|
|
159
|
+
M = {
|
|
160
|
+
grid: $ ? "rgba(255,255,255,0.07)" : "rgba(0,0,0,0.07)",
|
|
161
|
+
origin: $ ? "rgba(255,255,255,0.2)" : "rgba(0,0,0,0.15)",
|
|
162
|
+
cardBg: $ ? "#2a2a28" : "#ffffff",
|
|
163
|
+
cardBorder: $ ? "rgba(255,255,255,0.1)" : "rgba(0,0,0,0.1)",
|
|
164
|
+
cardShadow: $ ? "rgba(0,0,0,0.3)" : "rgba(0,0,0,0.06)",
|
|
165
165
|
titleText: "rgba(255,255,255,0.9)",
|
|
166
|
-
bodyText:
|
|
167
|
-
coordText:
|
|
168
|
-
nodeBg:
|
|
169
|
-
nodeBorder:
|
|
166
|
+
bodyText: $ ? "rgba(255,255,255,0.55)" : "rgba(0,0,0,0.5)",
|
|
167
|
+
coordText: $ ? "rgba(255,255,255,0.25)" : "rgba(0,0,0,0.2)",
|
|
168
|
+
nodeBg: $ ? "#1e1e2e" : "#ffffff",
|
|
169
|
+
nodeBorder: $ ? "rgba(255,255,255,0.15)" : "rgba(0,0,0,0.15)",
|
|
170
170
|
nodeSelectedBorder: "#3b82f6",
|
|
171
|
-
nodeShadow:
|
|
172
|
-
nodeText:
|
|
173
|
-
edgeStroke:
|
|
171
|
+
nodeShadow: $ ? "rgba(0,0,0,0.4)" : "rgba(0,0,0,0.08)",
|
|
172
|
+
nodeText: $ ? "rgba(255,255,255,0.9)" : "rgba(0,0,0,0.85)",
|
|
173
|
+
edgeStroke: $ ? "rgba(255,255,255,0.35)" : "rgba(0,0,0,0.3)",
|
|
174
174
|
edgeSelected: "#3b82f6",
|
|
175
175
|
edgeAnimated: "#3b82f6",
|
|
176
176
|
handleFill: "#ffffff",
|
|
177
177
|
handleBorder: "#3b82f6",
|
|
178
178
|
connectionLine: "#3b82f6"
|
|
179
|
-
},
|
|
179
|
+
}, ba = !0;
|
|
180
180
|
}
|
|
181
|
-
|
|
182
|
-
var
|
|
183
|
-
function
|
|
181
|
+
be();
|
|
182
|
+
var Ol = ["#534AB7", "#0F6E56", "#993C1D", "#185FA5"], ot = 8, jl = "500 11px system-ui, sans-serif", Yl = "400 11px system-ui, sans-serif", Xl = "10px monospace", jo = "500 13px system-ui, sans-serif", Hl = "400 11px system-ui, sans-serif", Vr = 400, ft = {}, $t = !0;
|
|
183
|
+
function pl() {
|
|
184
184
|
ft = {};
|
|
185
|
-
for (var a = 0; a <
|
|
186
|
-
for (var t =
|
|
187
|
-
for (var
|
|
188
|
-
var
|
|
189
|
-
ft[
|
|
185
|
+
for (var a = 0; a < H.length; a++)
|
|
186
|
+
for (var t = H[a], e = Math.floor(t.x / Vr), l = Math.floor(t.y / Vr), i = Math.floor((t.x + t.w) / Vr), o = Math.floor((t.y + t.h) / Vr), f = e; f <= i; f++)
|
|
187
|
+
for (var n = l; n <= o; n++) {
|
|
188
|
+
var g = f + "," + n;
|
|
189
|
+
ft[g] || (ft[g] = []), ft[g].push(a);
|
|
190
190
|
}
|
|
191
|
-
|
|
191
|
+
$t = !1;
|
|
192
192
|
}
|
|
193
|
-
function
|
|
194
|
-
|
|
195
|
-
for (var i = {}, o = [], f = Math.floor(a /
|
|
196
|
-
for (var v =
|
|
197
|
-
var u =
|
|
193
|
+
function Yo(a, t, e, l) {
|
|
194
|
+
$t && pl();
|
|
195
|
+
for (var i = {}, o = [], f = Math.floor(a / Vr), n = Math.floor(t / Vr), g = Math.floor(e / Vr), h = Math.floor(l / Vr), x = f; x <= g; x++)
|
|
196
|
+
for (var v = n; v <= h; v++) {
|
|
197
|
+
var u = x + "," + v, s = ft[u];
|
|
198
198
|
if (s)
|
|
199
199
|
for (var d = 0; d < s.length; d++) {
|
|
200
200
|
var T = s[d];
|
|
@@ -203,25 +203,25 @@ function jo(a, t, e, l) {
|
|
|
203
203
|
}
|
|
204
204
|
return o;
|
|
205
205
|
}
|
|
206
|
-
var
|
|
207
|
-
function
|
|
206
|
+
var Nr = 500, vt = {}, Dr = !0;
|
|
207
|
+
function Fe() {
|
|
208
208
|
vt = {};
|
|
209
209
|
for (var a = 0; a < W.length; a++) {
|
|
210
210
|
var t = W[a];
|
|
211
211
|
if (!t.hidden)
|
|
212
|
-
for (var e = y(t), l = t.width ||
|
|
213
|
-
for (var
|
|
214
|
-
var v =
|
|
212
|
+
for (var e = y(t), l = t.width || C, i = t.height || B, o = Math.floor(e.x / Nr), f = Math.floor(e.y / Nr), n = Math.floor((e.x + l) / Nr), g = Math.floor((e.y + i) / Nr), h = o; h <= n; h++)
|
|
213
|
+
for (var x = f; x <= g; x++) {
|
|
214
|
+
var v = h + "," + x;
|
|
215
215
|
vt[v] || (vt[v] = []), vt[v].push(a);
|
|
216
216
|
}
|
|
217
217
|
}
|
|
218
|
-
|
|
218
|
+
Dr = !1;
|
|
219
219
|
}
|
|
220
|
-
function
|
|
221
|
-
|
|
222
|
-
for (var i = {}, o = [], f = Math.floor(a /
|
|
223
|
-
for (var v =
|
|
224
|
-
var u =
|
|
220
|
+
function ll(a, t, e, l) {
|
|
221
|
+
Dr && Fe();
|
|
222
|
+
for (var i = {}, o = [], f = Math.floor(a / Nr), n = Math.floor(t / Nr), g = Math.floor(e / Nr), h = Math.floor(l / Nr), x = f; x <= g; x++)
|
|
223
|
+
for (var v = n; v <= h; v++) {
|
|
224
|
+
var u = x + "," + v, s = vt[u];
|
|
225
225
|
if (s)
|
|
226
226
|
for (var d = 0; d < s.length; d++) {
|
|
227
227
|
var T = s[d];
|
|
@@ -230,47 +230,47 @@ function ol(a, t, e, l) {
|
|
|
230
230
|
}
|
|
231
231
|
return o;
|
|
232
232
|
}
|
|
233
|
-
var
|
|
234
|
-
function
|
|
235
|
-
|
|
233
|
+
var Ma = {}, ga = !0;
|
|
234
|
+
function Ft() {
|
|
235
|
+
Ma = {};
|
|
236
236
|
for (var a = 0; a < W.length; a++)
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
}
|
|
240
|
-
function
|
|
241
|
-
return
|
|
242
|
-
}
|
|
243
|
-
var
|
|
244
|
-
function
|
|
245
|
-
|
|
246
|
-
for (var a = 0; a <
|
|
247
|
-
var t =
|
|
248
|
-
|
|
237
|
+
Ma[W[a].id] = W[a];
|
|
238
|
+
ga = !1;
|
|
239
|
+
}
|
|
240
|
+
function Xo(a) {
|
|
241
|
+
return ga && Ft(), Ma[a];
|
|
242
|
+
}
|
|
243
|
+
var _r = {}, Ut = !0;
|
|
244
|
+
function ri() {
|
|
245
|
+
_r = {};
|
|
246
|
+
for (var a = 0; a < S.length; a++) {
|
|
247
|
+
var t = S[a];
|
|
248
|
+
_r[t.source] || (_r[t.source] = []), _r[t.source].push(a), t.source !== t.target && (_r[t.target] || (_r[t.target] = []), _r[t.target].push(a));
|
|
249
249
|
}
|
|
250
|
-
|
|
250
|
+
Ut = !1;
|
|
251
251
|
}
|
|
252
|
-
var
|
|
253
|
-
function
|
|
254
|
-
|
|
252
|
+
var ya = null, il = 0, fl = 0, vl = "", ba = !0;
|
|
253
|
+
function ai(a) {
|
|
254
|
+
ya || (ya = new OffscreenCanvas(1, 1));
|
|
255
255
|
var t = Math.ceil(a), e = Math.ceil(a);
|
|
256
256
|
if (t < 2 || e < 2) return !1;
|
|
257
|
-
t > 512 && (t = 512), e > 512 && (e = 512),
|
|
258
|
-
var l =
|
|
257
|
+
t > 512 && (t = 512), e > 512 && (e = 512), ya.width = t, ya.height = e, il = t, fl = a, vl = cr, ba = !1;
|
|
258
|
+
var l = ya.getContext("2d");
|
|
259
259
|
l.clearRect(0, 0, t, e);
|
|
260
|
-
var i =
|
|
261
|
-
if (
|
|
260
|
+
var i = Jt || M.grid;
|
|
261
|
+
if (cr === "dots") {
|
|
262
262
|
l.fillStyle = i;
|
|
263
|
-
var o =
|
|
263
|
+
var o = xa * k.zoom;
|
|
264
264
|
l.beginPath(), l.arc(0, 0, o, 0, 6.2832), l.fill();
|
|
265
|
-
} else if (
|
|
266
|
-
l.strokeStyle = i, l.lineWidth =
|
|
267
|
-
var f = 3 *
|
|
265
|
+
} else if (cr === "cross") {
|
|
266
|
+
l.strokeStyle = i, l.lineWidth = xa;
|
|
267
|
+
var f = 3 * k.zoom;
|
|
268
268
|
l.beginPath(), l.moveTo(-f, 0), l.lineTo(f, 0), l.moveTo(0, -f), l.lineTo(0, f), l.stroke();
|
|
269
269
|
} else
|
|
270
|
-
l.beginPath(), l.strokeStyle = i, l.lineWidth =
|
|
270
|
+
l.beginPath(), l.strokeStyle = i, l.lineWidth = xa * 0.5, l.moveTo(0.5, 0), l.lineTo(0.5, e), l.moveTo(0, 0.5), l.lineTo(t, 0.5), l.stroke();
|
|
271
271
|
return !0;
|
|
272
272
|
}
|
|
273
|
-
var
|
|
273
|
+
var Ho = 0, Ge = 0, po = 0, rl = 0, Je = 0, nt = !1;
|
|
274
274
|
console.log("[worker] script loaded v2 - FRESH");
|
|
275
275
|
self.postMessage({ type: "ping", data: { status: "alive" } });
|
|
276
276
|
self.onmessage = function(a) {
|
|
@@ -278,128 +278,128 @@ self.onmessage = function(a) {
|
|
|
278
278
|
var t = a.data.type, e = a.data.data;
|
|
279
279
|
switch (t) {
|
|
280
280
|
case "init":
|
|
281
|
-
|
|
282
|
-
return
|
|
283
|
-
}), console.log("[worker] init done — canvas:", fr, "x", vr, "| cards:",
|
|
281
|
+
Ia = e.canvas, r = Ia.getContext("2d"), fr = e.width, vr = e.height, Ia.width = fr, Ia.height = vr, k = e.camera, H = e.cards || [], W = e.nodes || [], S = e.edges || [], $ = e.dark, e.gridSize && (Ke = e.gridSize), e.edgeRouting !== void 0 && (Ur = !!e.edgeRouting), be(), $t = !0, ga = !0, Dr = !0, ht = !0, Ut = !0, nt = S.some(function(nr) {
|
|
282
|
+
return nr.animated;
|
|
283
|
+
}), console.log("[worker] init done — canvas:", fr, "x", vr, "| cards:", H.length, "| nodes:", W.length, "| edges:", S.length, "| routing:", Ur), ct(), self.postMessage({ type: "ready" }), nt && al();
|
|
284
284
|
break;
|
|
285
285
|
case "resize":
|
|
286
|
-
fr = e.width, vr = e.height,
|
|
286
|
+
fr = e.width, vr = e.height, Ia.width = fr, Ia.height = vr, ba = !0, ct();
|
|
287
287
|
break;
|
|
288
288
|
case "camera":
|
|
289
|
-
|
|
289
|
+
k = e.camera, ba = !0, Q();
|
|
290
290
|
break;
|
|
291
291
|
case "cards":
|
|
292
|
-
|
|
292
|
+
H = e.cards, $t = !0, Q();
|
|
293
293
|
break;
|
|
294
294
|
case "nodes":
|
|
295
|
-
W = e.nodes,
|
|
295
|
+
W = e.nodes, Ka = 0;
|
|
296
296
|
for (var l = 0; l < W.length; l++)
|
|
297
|
-
W[l].dragging &&
|
|
298
|
-
|
|
297
|
+
W[l].dragging && Ka++;
|
|
298
|
+
ga = !0, Dr = !0, ht = !0, Q(), Zt(), self.postMessage({ type: "nodesProcessed", data: { nodeCount: W.length } });
|
|
299
299
|
break;
|
|
300
300
|
case "nodePositions":
|
|
301
|
-
|
|
301
|
+
ga && Ft();
|
|
302
302
|
for (var i = e.updates, o = 0, f = 0; f < i.length; f++) {
|
|
303
|
-
var
|
|
304
|
-
|
|
303
|
+
var n = i[f], g = Ma[n.id];
|
|
304
|
+
g && (g.position = n.position, n._absolutePosition && (g._absolutePosition = n._absolutePosition), n.width !== void 0 && (g.width = n.width), n.height !== void 0 && (g.height = n.height), n.dragging && !g.dragging ? o++ : !n.dragging && g.dragging && o--, g.dragging = n.dragging, g.selected = n.selected);
|
|
305
305
|
}
|
|
306
|
-
if (
|
|
307
|
-
for (var
|
|
308
|
-
for (var
|
|
309
|
-
(
|
|
310
|
-
i.length > 10 && (
|
|
306
|
+
if (Ka = Math.max(0, Ka + o), ht = !0, Ur)
|
|
307
|
+
for (var h = 0; h < i.length; h++)
|
|
308
|
+
for (var x = i[h].id, v = 0; v < S.length; v++)
|
|
309
|
+
(S[v].source === x || S[v].target === x) && (S[v]._routedPoints = null);
|
|
310
|
+
i.length > 10 && (Dr = !0), Ur && Ka === 0 && o < 0 && (Dr = !0, Zt()), Q();
|
|
311
311
|
break;
|
|
312
312
|
case "nodeSelections":
|
|
313
|
-
|
|
313
|
+
ga && Ft();
|
|
314
314
|
for (var u = e.selections, s = 0; s < u.length; s++) {
|
|
315
|
-
var d = u[s], T =
|
|
315
|
+
var d = u[s], T = Ma[d.id];
|
|
316
316
|
T && (T.selected = d.selected);
|
|
317
317
|
}
|
|
318
|
-
|
|
318
|
+
Q();
|
|
319
319
|
break;
|
|
320
320
|
case "edgeSelections":
|
|
321
321
|
for (var Z = e.selections, _ = 0; _ < Z.length; _++) {
|
|
322
|
-
for (var K = Z[_],
|
|
323
|
-
if (
|
|
324
|
-
|
|
322
|
+
for (var K = Z[_], rr = null, ar = 0; ar < S.length; ar++)
|
|
323
|
+
if (S[ar].id === K.id) {
|
|
324
|
+
rr = S[ar];
|
|
325
325
|
break;
|
|
326
326
|
}
|
|
327
|
-
|
|
327
|
+
rr && (rr.selected = K.selected);
|
|
328
328
|
}
|
|
329
|
-
|
|
329
|
+
Q();
|
|
330
330
|
break;
|
|
331
331
|
case "edges":
|
|
332
|
-
|
|
333
|
-
return
|
|
334
|
-
}),
|
|
332
|
+
S = e.edges, Ut = !0, nt = S.some(function(nr) {
|
|
333
|
+
return nr.animated;
|
|
334
|
+
}), nt && al(), Q(), Zt();
|
|
335
335
|
break;
|
|
336
336
|
case "theme":
|
|
337
|
-
|
|
337
|
+
$ = e.dark, be(), Q();
|
|
338
338
|
break;
|
|
339
339
|
case "connecting":
|
|
340
|
-
lt = e,
|
|
340
|
+
lt = e, Q();
|
|
341
341
|
break;
|
|
342
342
|
case "selectionBox":
|
|
343
|
-
|
|
343
|
+
mr = e, Q();
|
|
344
344
|
break;
|
|
345
345
|
case "background":
|
|
346
|
-
e.variant && (
|
|
346
|
+
e.variant && (cr = e.variant), e.gap && (Ke = e.gap), e.size && (xa = e.size), Jt = e.color || null, ba = !0, Q();
|
|
347
347
|
break;
|
|
348
348
|
case "nodeTypeBitmaps":
|
|
349
|
-
|
|
349
|
+
Kt = e.bitmaps || {}, Q();
|
|
350
350
|
break;
|
|
351
351
|
case "nodeBitmaps":
|
|
352
|
-
|
|
352
|
+
el = e.cache || {}, it = e.keys || {}, Q();
|
|
353
353
|
break;
|
|
354
354
|
case "nodeTypeConfigs":
|
|
355
|
-
|
|
355
|
+
bt = e.configs || {}, Q();
|
|
356
356
|
break;
|
|
357
357
|
case "edgeRouting":
|
|
358
|
-
if (
|
|
359
|
-
|
|
358
|
+
if (Ur = !!e.enabled, Ur)
|
|
359
|
+
Zt();
|
|
360
360
|
else {
|
|
361
|
-
for (var
|
|
362
|
-
|
|
363
|
-
|
|
361
|
+
for (var Tr = 0; Tr < S.length; Tr++)
|
|
362
|
+
S[Tr]._routedPoints = null;
|
|
363
|
+
Q();
|
|
364
364
|
}
|
|
365
365
|
break;
|
|
366
366
|
}
|
|
367
|
-
} catch (
|
|
368
|
-
console.error("[worker] error:",
|
|
367
|
+
} catch (nr) {
|
|
368
|
+
console.error("[worker] error:", nr);
|
|
369
369
|
}
|
|
370
370
|
};
|
|
371
|
-
function
|
|
372
|
-
|
|
373
|
-
|
|
371
|
+
function Q() {
|
|
372
|
+
Pe || (Pe = !0, requestAnimationFrame(function() {
|
|
373
|
+
Pe = !1, ct();
|
|
374
374
|
}));
|
|
375
375
|
}
|
|
376
|
-
var
|
|
377
|
-
function
|
|
378
|
-
if (
|
|
379
|
-
|
|
376
|
+
var Ie = !1;
|
|
377
|
+
function al() {
|
|
378
|
+
if (Ie) return;
|
|
379
|
+
Ie = !0;
|
|
380
380
|
function a() {
|
|
381
|
-
if (!
|
|
382
|
-
|
|
381
|
+
if (!nt) {
|
|
382
|
+
Ie = !1;
|
|
383
383
|
return;
|
|
384
384
|
}
|
|
385
|
-
|
|
385
|
+
Je = (Je + 0.5) % 20, ct(), requestAnimationFrame(a);
|
|
386
386
|
}
|
|
387
387
|
requestAnimationFrame(a);
|
|
388
388
|
}
|
|
389
|
-
function
|
|
389
|
+
function tl(a, t) {
|
|
390
390
|
var e = 6;
|
|
391
391
|
a.moveTo(t[0].x, t[0].y);
|
|
392
392
|
for (var l = 1; l < t.length - 1; l++) {
|
|
393
|
-
var i = t[l - 1], o = t[l], f = t[l + 1],
|
|
394
|
-
if (
|
|
395
|
-
var
|
|
396
|
-
a.lineTo(o.x -
|
|
393
|
+
var i = t[l - 1], o = t[l], f = t[l + 1], n = Math.abs(o.x - i.x) + Math.abs(o.y - i.y), g = Math.abs(f.x - o.x) + Math.abs(f.y - o.y), h = Math.min(e, n / 2, g / 2);
|
|
394
|
+
if (h > 0.5) {
|
|
395
|
+
var x = o.x - i.x, v = o.y - i.y, u = f.x - o.x, s = f.y - o.y, d = Math.sqrt(x * x + v * v) || 1, T = Math.sqrt(u * u + s * s) || 1;
|
|
396
|
+
a.lineTo(o.x - x / d * h, o.y - v / d * h), a.quadraticCurveTo(o.x, o.y, o.x + u / T * h, o.y + s / T * h);
|
|
397
397
|
} else
|
|
398
398
|
a.lineTo(o.x, o.y);
|
|
399
399
|
}
|
|
400
400
|
a.lineTo(t[t.length - 1].x, t[t.length - 1].y);
|
|
401
401
|
}
|
|
402
|
-
function
|
|
402
|
+
function ti(a) {
|
|
403
403
|
for (var t = 0, e = 1; e < a.length; e++)
|
|
404
404
|
t += Math.abs(a[e].x - a[e - 1].x) + Math.abs(a[e].y - a[e - 1].y);
|
|
405
405
|
for (var l = t / 2, i = 1; i < a.length; i++) {
|
|
@@ -415,166 +415,166 @@ function ri(a) {
|
|
|
415
415
|
}
|
|
416
416
|
return { x: a[0].x, y: a[0].y };
|
|
417
417
|
}
|
|
418
|
-
function
|
|
419
|
-
var i = Math.abs(e - a), o = Math.max(50, i * 0.5), f = a + o,
|
|
420
|
-
return { cp1x: f, cp1y:
|
|
418
|
+
function Qe(a, t, e, l) {
|
|
419
|
+
var i = Math.abs(e - a), o = Math.max(50, i * 0.5), f = a + o, n = t, g = e - o, h = l;
|
|
420
|
+
return { cp1x: f, cp1y: n, cp2x: g, cp2y: h };
|
|
421
421
|
}
|
|
422
|
-
function
|
|
423
|
-
var i =
|
|
424
|
-
return { x:
|
|
422
|
+
function ei(a, t, e, l) {
|
|
423
|
+
var i = Qe(a, t, e, l), o = 0.5, f = 1 - o, n = f * f * f * a + 3 * f * f * o * i.cp1x + 3 * f * o * o * i.cp2x + o * o * o * e, g = f * f * f * t + 3 * f * f * o * i.cp1y + 3 * f * o * o * i.cp2y + o * o * o * l;
|
|
424
|
+
return { x: n, y: g };
|
|
425
425
|
}
|
|
426
|
-
var
|
|
427
|
-
function
|
|
428
|
-
|
|
429
|
-
for (var o = Math.min(a, e) - 20, f = Math.min(t, l) - 20,
|
|
430
|
-
var u = W[
|
|
431
|
-
u.hidden || i[u.id] || u.type !== "group" &&
|
|
426
|
+
var Ur = !0, $e = !1, Ze = !1;
|
|
427
|
+
function nl(a, t, e, l, i) {
|
|
428
|
+
Dr && Fe();
|
|
429
|
+
for (var o = Math.min(a, e) - 20, f = Math.min(t, l) - 20, n = Math.max(a, e) + 20, g = Math.max(t, l) + 20, h = ll(o, f, n, g), x = [], v = 0; v < h.length; v++) {
|
|
430
|
+
var u = W[h[v]];
|
|
431
|
+
u.hidden || i[u.id] || u.type !== "group" && x.push(u);
|
|
432
432
|
}
|
|
433
|
-
return
|
|
433
|
+
return x;
|
|
434
434
|
}
|
|
435
|
-
function
|
|
435
|
+
function Er(a, t, e, l) {
|
|
436
436
|
for (var i = Math.min(a, t), o = Math.max(a, t), f = 0; f < l.length; f++) {
|
|
437
|
-
var
|
|
438
|
-
if (e >
|
|
437
|
+
var n = l[f], g = y(n), h = n.width || C, x = n.height || B;
|
|
438
|
+
if (e > g.y && e < g.y + x && o > g.x && i < g.x + h) return n;
|
|
439
439
|
}
|
|
440
440
|
return null;
|
|
441
441
|
}
|
|
442
|
-
function
|
|
442
|
+
function Cr(a, t, e, l) {
|
|
443
443
|
for (var i = Math.min(t, e), o = Math.max(t, e), f = 0; f < l.length; f++) {
|
|
444
|
-
var
|
|
445
|
-
if (a >
|
|
444
|
+
var n = l[f], g = y(n), h = n.width || C, x = n.height || B;
|
|
445
|
+
if (a > g.x && a < g.x + h && o > g.y && i < g.y + x) return n;
|
|
446
446
|
}
|
|
447
447
|
return null;
|
|
448
448
|
}
|
|
449
|
-
function
|
|
450
|
-
if (
|
|
451
|
-
|
|
452
|
-
for (var a = 20, t = !1, e = 0; e <
|
|
453
|
-
var l =
|
|
449
|
+
function oi() {
|
|
450
|
+
if (Ur && !(!$e || S.length === 0 || W.length === 0)) {
|
|
451
|
+
$e = !1, ga && Ft(), Dr && Fe();
|
|
452
|
+
for (var a = 20, t = !1, e = 0; e < S.length; e++) {
|
|
453
|
+
var l = S[e];
|
|
454
454
|
if (!l._customRendered) {
|
|
455
455
|
var i = l.type || "default";
|
|
456
456
|
if (!(i === "bezier" || i === "simplebezier" || i === "default")) {
|
|
457
|
-
var o =
|
|
457
|
+
var o = Ma[l.source], f = Ma[l.target];
|
|
458
458
|
if (!(!o || !f || o.hidden || f.hidden)) {
|
|
459
|
-
var
|
|
460
|
-
|
|
461
|
-
var
|
|
462
|
-
|
|
463
|
-
var
|
|
464
|
-
Math.min(v, s) -
|
|
465
|
-
Math.min(u, d) -
|
|
466
|
-
Math.max(v, s) +
|
|
467
|
-
Math.max(u, d) +
|
|
468
|
-
|
|
459
|
+
var n = Qt(o, "source", l.sourceHandle), g = Qt(f, "target", l.targetHandle), h = n.position || "right", x = g.position || "left", v = n.x, u = n.y, s = g.x, d = g.y, T = v, Z = u, _ = s, K = d;
|
|
460
|
+
h === "right" ? T += a : h === "left" ? T -= a : h === "bottom" ? Z += a : h === "top" && (Z -= a), x === "right" ? _ += a : x === "left" ? _ -= a : x === "bottom" ? K += a : x === "top" && (K -= a);
|
|
461
|
+
var rr = y(o), ar = y(f), Tr = o.width || C, nr = o.height || B, Or = f.width || C, jr = f.height || B, Lr = {};
|
|
462
|
+
Lr[l.source] = !0, Lr[l.target] = !0;
|
|
463
|
+
var D = nl(
|
|
464
|
+
Math.min(v, s) - Tr,
|
|
465
|
+
Math.min(u, d) - nr,
|
|
466
|
+
Math.max(v, s) + Or,
|
|
467
|
+
Math.max(u, d) + jr,
|
|
468
|
+
Lr
|
|
469
469
|
);
|
|
470
|
-
|
|
471
|
-
var
|
|
472
|
-
if (
|
|
473
|
-
var
|
|
474
|
-
if (
|
|
475
|
-
|
|
476
|
-
var
|
|
477
|
-
if (
|
|
478
|
-
var
|
|
479
|
-
|
|
470
|
+
D.push(o), D.push(f);
|
|
471
|
+
var Yr = h === "left" || h === "right", Ja = x === "left" || x === "right", P = null;
|
|
472
|
+
if (Yr && Ja) {
|
|
473
|
+
var O, ut = h === "right" && T < _, sr = h === "left" && T > _;
|
|
474
|
+
if (ut || sr) {
|
|
475
|
+
O = (T + _) / 2;
|
|
476
|
+
var tr = Cr(O, u, d, D);
|
|
477
|
+
if (tr) {
|
|
478
|
+
var Qa = y(tr), st = tr.width || C;
|
|
479
|
+
O = O < Qa.x + st / 2 ? Qa.x - a : Qa.x + st + a;
|
|
480
480
|
}
|
|
481
481
|
} else
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
var
|
|
485
|
-
if (
|
|
486
|
-
var ma = y(
|
|
487
|
-
|
|
482
|
+
h === "right" ? O = Math.max(rr.x + Tr, ar.x + Or) + a : O = Math.min(rr.x, ar.x) - a;
|
|
483
|
+
P = [{ x: v, y: u }, { x: T, y: u }, { x: O, y: u }, { x: O, y: d }, { x: _, y: d }, { x: s, y: d }];
|
|
484
|
+
var ka = Er(O, _, d, D);
|
|
485
|
+
if (ka) {
|
|
486
|
+
var ma = y(ka), Ta = ka.height || B, Ra = ma.y - a, Xr = ma.y + Ta + a, za = Math.abs(u - Ra) <= Math.abs(u - Xr) ? Ra : Xr;
|
|
487
|
+
P = [{ x: v, y: u }, { x: T, y: u }, { x: O, y: u }, { x: O, y: za }, { x: _, y: za }, { x: _, y: d }, { x: s, y: d }];
|
|
488
488
|
}
|
|
489
|
-
} else if (!
|
|
490
|
-
var
|
|
491
|
-
if (
|
|
492
|
-
|
|
493
|
-
var
|
|
494
|
-
if (
|
|
495
|
-
var
|
|
496
|
-
|
|
489
|
+
} else if (!Yr && !Ja) {
|
|
490
|
+
var G, wa = h === "bottom" && Z < K, $a = h === "top" && Z > K;
|
|
491
|
+
if (wa || $a) {
|
|
492
|
+
G = (Z + K) / 2;
|
|
493
|
+
var Ba = Er(v, s, G, D);
|
|
494
|
+
if (Ba) {
|
|
495
|
+
var Hr = y(Ba), pr = Ba.height || B;
|
|
496
|
+
G = G < Hr.y + pr / 2 ? Hr.y - a : Hr.y + pr + a;
|
|
497
497
|
}
|
|
498
498
|
} else
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
var
|
|
502
|
-
if (
|
|
503
|
-
var
|
|
504
|
-
|
|
499
|
+
h === "bottom" ? G = Math.max(rr.y + nr, ar.y + jr) + a : G = Math.min(rr.y, ar.y) - a;
|
|
500
|
+
P = [{ x: v, y: u }, { x: v, y: Z }, { x: v, y: G }, { x: s, y: G }, { x: s, y: K }, { x: s, y: d }];
|
|
501
|
+
var Sr = Cr(s, G, K, D);
|
|
502
|
+
if (Sr) {
|
|
503
|
+
var Aa = y(Sr), Fa = Sr.height || B, _a = Aa.y - a, Ea = Aa.y + Fa + a, Ca = Math.abs(G - _a) <= Math.abs(G - Ea) ? _a : Ea;
|
|
504
|
+
P = [{ x: v, y: u }, { x: v, y: Z }, { x: v, y: G }, { x: s, y: G }, { x: s, y: Ca }, { x: _, y: Ca }, { x: _, y: d }, { x: s, y: d }];
|
|
505
505
|
}
|
|
506
|
-
} else if (
|
|
507
|
-
|
|
508
|
-
var
|
|
509
|
-
if (
|
|
510
|
-
var
|
|
511
|
-
|
|
506
|
+
} else if (Yr) {
|
|
507
|
+
P = [{ x: v, y: u }, { x: T, y: u }, { x: s, y: u }, { x: s, y: K }, { x: s, y: d }];
|
|
508
|
+
var ra = Cr(s, u, K, D);
|
|
509
|
+
if (ra) {
|
|
510
|
+
var Wr = y(ra), aa = ra.width || C, Rr = Math.abs(v - Wr.x + a) <= Math.abs(v - Wr.x - aa - a) ? Wr.x - a : Wr.x + aa + a;
|
|
511
|
+
P = [{ x: v, y: u }, { x: T, y: u }, { x: Rr, y: u }, { x: Rr, y: d }, { x: s, y: d }, { x: s, y: K }, { x: s, y: d }];
|
|
512
512
|
}
|
|
513
|
-
var
|
|
514
|
-
if (
|
|
515
|
-
var
|
|
516
|
-
|
|
513
|
+
var dr = Er(T, s, u, D);
|
|
514
|
+
if (dr) {
|
|
515
|
+
var ta = y(dr), La = dr.height || B, Sa = Math.abs(d - ta.y + a) <= Math.abs(d - ta.y - La - a) ? ta.y - a : ta.y + La + a;
|
|
516
|
+
P = [{ x: v, y: u }, { x: T, y: u }, { x: T, y: Sa }, { x: s, y: Sa }, { x: s, y: K }, { x: s, y: d }];
|
|
517
517
|
}
|
|
518
518
|
} else {
|
|
519
|
-
|
|
520
|
-
var
|
|
521
|
-
if (
|
|
522
|
-
var
|
|
523
|
-
|
|
519
|
+
P = [{ x: v, y: u }, { x: v, y: Z }, { x: v, y: d }, { x: _, y: d }, { x: s, y: d }];
|
|
520
|
+
var ea = Er(v, _, d, D);
|
|
521
|
+
if (ea) {
|
|
522
|
+
var F = y(ea), oa = ea.height || B, dt = Math.abs(u - F.y + a) <= Math.abs(u - F.y - oa - a) ? F.y - a : F.y + oa + a;
|
|
523
|
+
P = [{ x: v, y: u }, { x: v, y: Z }, { x: v, y: dt }, { x: _, y: dt }, { x: _, y: d }, { x: s, y: d }];
|
|
524
524
|
}
|
|
525
|
-
var
|
|
526
|
-
if (
|
|
527
|
-
var yr = y(
|
|
528
|
-
|
|
525
|
+
var hr = Cr(v, Z, d, D);
|
|
526
|
+
if (hr) {
|
|
527
|
+
var yr = y(hr), Pr = hr.width || C, qr = Math.abs(s - yr.x + a) <= Math.abs(s - yr.x - Pr - a) ? yr.x - a : yr.x + Pr + a;
|
|
528
|
+
P = [{ x: v, y: u }, { x: v, y: Z }, { x: qr, y: Z }, { x: qr, y: d }, { x: _, y: d }, { x: s, y: d }];
|
|
529
529
|
}
|
|
530
530
|
}
|
|
531
|
-
if (
|
|
532
|
-
for (var
|
|
533
|
-
var
|
|
534
|
-
(Math.abs(
|
|
531
|
+
if (P) {
|
|
532
|
+
for (var la = [P[0]], Gr = 1; Gr < P.length; Gr++) {
|
|
533
|
+
var Ua = la[la.length - 1];
|
|
534
|
+
(Math.abs(P[Gr].x - Ua.x) > 0.1 || Math.abs(P[Gr].y - Ua.y) > 0.1) && la.push(P[Gr]);
|
|
535
535
|
}
|
|
536
|
-
l._routedPoints =
|
|
536
|
+
l._routedPoints = la, t = !0;
|
|
537
537
|
}
|
|
538
538
|
}
|
|
539
539
|
}
|
|
540
540
|
}
|
|
541
541
|
}
|
|
542
|
-
t &&
|
|
542
|
+
t && Q();
|
|
543
543
|
}
|
|
544
544
|
}
|
|
545
|
-
function
|
|
546
|
-
|
|
547
|
-
|
|
545
|
+
function Zt() {
|
|
546
|
+
Ur && (Ze || (Ze = !0, $e = !0, requestAnimationFrame(function() {
|
|
547
|
+
Ze = !1;
|
|
548
548
|
try {
|
|
549
|
-
|
|
549
|
+
oi();
|
|
550
550
|
} catch (a) {
|
|
551
551
|
console.error("[worker] async routing error:", a);
|
|
552
552
|
}
|
|
553
553
|
})));
|
|
554
554
|
}
|
|
555
|
-
function
|
|
555
|
+
function ct() {
|
|
556
556
|
if (r) {
|
|
557
557
|
var a = performance.now();
|
|
558
558
|
r.clearRect(0, 0, fr, vr);
|
|
559
|
-
var t =
|
|
559
|
+
var t = Ke * k.zoom;
|
|
560
560
|
if (t > 2)
|
|
561
|
-
if (
|
|
562
|
-
if ((
|
|
563
|
-
var e = (
|
|
561
|
+
if (cr === "lines" && t >= 4 && t <= 512) {
|
|
562
|
+
if ((ba || fl !== t || vl !== cr) && ai(t), ya && il > 0) {
|
|
563
|
+
var e = (k.x % t + t) % t, l = (k.y % t + t) % t;
|
|
564
564
|
r.save(), r.translate(e, l);
|
|
565
|
-
var i = r.createPattern(
|
|
565
|
+
var i = r.createPattern(ya, "repeat");
|
|
566
566
|
i && (r.fillStyle = i, r.fillRect(-e, -l, fr, vr)), r.restore();
|
|
567
567
|
}
|
|
568
568
|
} else {
|
|
569
|
-
var o = (
|
|
570
|
-
if (
|
|
571
|
-
r.fillStyle =
|
|
572
|
-
for (var
|
|
573
|
-
for (var
|
|
574
|
-
r.beginPath(), r.arc(Math.round(
|
|
575
|
-
} else if (
|
|
576
|
-
r.strokeStyle =
|
|
577
|
-
var v = 3 *
|
|
569
|
+
var o = (k.x % t + t) % t, f = (k.y % t + t) % t, n = Jt || M.grid;
|
|
570
|
+
if (cr === "dots") {
|
|
571
|
+
r.fillStyle = n;
|
|
572
|
+
for (var g = xa * k.zoom, h = o; h < fr; h += t)
|
|
573
|
+
for (var x = f; x < vr; x += t)
|
|
574
|
+
r.beginPath(), r.arc(Math.round(h), Math.round(x), g, 0, 6.2832), r.fill();
|
|
575
|
+
} else if (cr === "cross") {
|
|
576
|
+
r.strokeStyle = n, r.lineWidth = xa;
|
|
577
|
+
var v = 3 * k.zoom;
|
|
578
578
|
r.beginPath();
|
|
579
579
|
for (var u = o; u < fr; u += t)
|
|
580
580
|
for (var s = f; s < vr; s += t) {
|
|
@@ -583,452 +583,454 @@ function Ft() {
|
|
|
583
583
|
}
|
|
584
584
|
r.stroke();
|
|
585
585
|
} else {
|
|
586
|
-
var Z =
|
|
587
|
-
r.beginPath(), r.strokeStyle = Z, r.lineWidth =
|
|
586
|
+
var Z = Jt || M.grid;
|
|
587
|
+
r.beginPath(), r.strokeStyle = Z, r.lineWidth = xa * 0.5;
|
|
588
588
|
for (var _ = o; _ < fr; _ += t) {
|
|
589
589
|
var K = Math.round(_) + 0.5;
|
|
590
590
|
r.moveTo(K, 0), r.lineTo(K, vr);
|
|
591
591
|
}
|
|
592
|
-
for (var
|
|
593
|
-
var
|
|
594
|
-
r.moveTo(0,
|
|
592
|
+
for (var rr = f; rr < vr; rr += t) {
|
|
593
|
+
var ar = Math.round(rr) + 0.5;
|
|
594
|
+
r.moveTo(0, ar), r.lineTo(fr, ar);
|
|
595
595
|
}
|
|
596
596
|
r.stroke();
|
|
597
597
|
}
|
|
598
598
|
}
|
|
599
|
-
r.beginPath(), r.arc(
|
|
600
|
-
var
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
599
|
+
r.beginPath(), r.arc(Math.round(k.x), Math.round(k.y), 4 * k.zoom, 0, 6.2832), r.fillStyle = M.origin, r.fill();
|
|
600
|
+
var Tr = Math.round(k.x), nr = Math.round(k.y);
|
|
601
|
+
r.save(), r.translate(Tr, nr), r.scale(k.zoom, k.zoom);
|
|
602
|
+
var Or = 100, jr = -Tr / k.zoom, Lr = -nr / k.zoom, D = jr + fr / k.zoom, Yr = Lr + vr / k.zoom, Ja = jr - Or, P = Lr - Or, O = D + Or, ut = Yr + Or;
|
|
603
|
+
if (H.length > 0) {
|
|
604
|
+
var sr = Yo(jr, Lr, D, Yr), tr = sr.length, Qa = k.zoom > 0.15, st = k.zoom > 0.3, ka = k.zoom > 0.08 && tr < 200;
|
|
605
|
+
if (ka) {
|
|
606
|
+
r.shadowColor = M.cardShadow, r.shadowBlur = 6, r.shadowOffsetY = 2, r.fillStyle = M.cardBg, r.beginPath();
|
|
607
|
+
for (var ma = 0; ma < tr; ma++) {
|
|
608
|
+
var Ta = H[sr[ma]];
|
|
609
|
+
r.roundRect(Ta.x, Ta.y, Ta.w, Ta.h, ot);
|
|
608
610
|
}
|
|
609
611
|
r.fill(), r.shadowColor = "transparent", r.shadowBlur = 0, r.shadowOffsetY = 0;
|
|
610
612
|
}
|
|
611
|
-
if (!
|
|
612
|
-
r.fillStyle =
|
|
613
|
-
for (var
|
|
614
|
-
var
|
|
615
|
-
r.roundRect(
|
|
613
|
+
if (!ka) {
|
|
614
|
+
r.fillStyle = M.cardBg, r.beginPath();
|
|
615
|
+
for (var Ra = 0; Ra < tr; Ra++) {
|
|
616
|
+
var Xr = H[sr[Ra]];
|
|
617
|
+
r.roundRect(Xr.x, Xr.y, Xr.w, Xr.h, ot);
|
|
616
618
|
}
|
|
617
619
|
r.fill();
|
|
618
620
|
}
|
|
619
|
-
r.strokeStyle =
|
|
620
|
-
for (var
|
|
621
|
-
var
|
|
622
|
-
r.roundRect(
|
|
621
|
+
r.strokeStyle = M.cardBorder, r.lineWidth = 0.5, r.beginPath();
|
|
622
|
+
for (var za = 0; za < tr; za++) {
|
|
623
|
+
var G = H[sr[za]];
|
|
624
|
+
r.roundRect(G.x, G.y, G.w, G.h, ot);
|
|
623
625
|
}
|
|
624
626
|
r.stroke();
|
|
625
|
-
for (var
|
|
626
|
-
var
|
|
627
|
-
|
|
627
|
+
for (var wa = [{}, {}, {}, {}], $a = 0; $a < tr; $a++) {
|
|
628
|
+
var Ba = sr[$a], Hr = Ba % 4;
|
|
629
|
+
wa[Hr].items || (wa[Hr].items = []), wa[Hr].items.push(H[Ba]);
|
|
628
630
|
}
|
|
629
|
-
for (var
|
|
630
|
-
var
|
|
631
|
-
if (!(!
|
|
632
|
-
r.fillStyle =
|
|
633
|
-
for (var
|
|
634
|
-
var
|
|
635
|
-
r.roundRect(
|
|
631
|
+
for (var pr = 0; pr < 4; pr++) {
|
|
632
|
+
var Sr = wa[pr].items;
|
|
633
|
+
if (!(!Sr || Sr.length === 0)) {
|
|
634
|
+
r.fillStyle = Ol[pr], r.beginPath();
|
|
635
|
+
for (var Aa = 0; Aa < Sr.length; Aa++) {
|
|
636
|
+
var Fa = Sr[Aa];
|
|
637
|
+
r.roundRect(Fa.x, Fa.y, Fa.w, 30, [ot, ot, 0, 0]);
|
|
636
638
|
}
|
|
637
639
|
r.fill();
|
|
638
640
|
}
|
|
639
641
|
}
|
|
640
|
-
if (
|
|
641
|
-
r.fillStyle =
|
|
642
|
-
for (var
|
|
643
|
-
var
|
|
644
|
-
r.fillText(
|
|
642
|
+
if (Qa) {
|
|
643
|
+
r.fillStyle = M.titleText, r.font = jl;
|
|
644
|
+
for (var _a = 0; _a < tr; _a++) {
|
|
645
|
+
var Ea = H[sr[_a]];
|
|
646
|
+
r.fillText(Ea.title, Ea.x + 12, Ea.y + 19);
|
|
645
647
|
}
|
|
646
|
-
r.fillStyle =
|
|
647
|
-
for (var
|
|
648
|
-
var
|
|
649
|
-
r.fillText(
|
|
648
|
+
r.fillStyle = M.bodyText, r.font = Yl;
|
|
649
|
+
for (var Ca = 0; Ca < tr; Ca++) {
|
|
650
|
+
var ra = H[sr[Ca]];
|
|
651
|
+
r.fillText(ra.body, ra.x + 12, ra.y + 52);
|
|
650
652
|
}
|
|
651
|
-
if (
|
|
652
|
-
r.fillStyle =
|
|
653
|
-
for (var
|
|
654
|
-
var
|
|
655
|
-
r.fillText("(" +
|
|
653
|
+
if (st) {
|
|
654
|
+
r.fillStyle = M.coordText, r.font = Xl;
|
|
655
|
+
for (var Wr = 0; Wr < tr; Wr++) {
|
|
656
|
+
var aa = H[sr[Wr]];
|
|
657
|
+
r.fillText("(" + aa.x + ", " + aa.y + ")", aa.x + 12, aa.y + 75);
|
|
656
658
|
}
|
|
657
659
|
}
|
|
658
660
|
}
|
|
659
661
|
}
|
|
660
|
-
var
|
|
662
|
+
var Rr = [], dr = null;
|
|
661
663
|
if (W.length > 0)
|
|
662
|
-
if (
|
|
663
|
-
for (var
|
|
664
|
-
var
|
|
665
|
-
|
|
664
|
+
if (dr = {}, W.length > 100)
|
|
665
|
+
for (var ta = ll(Ja, P, O, ut), La = 0; La < ta.length; La++) {
|
|
666
|
+
var Sa = W[ta[La]];
|
|
667
|
+
dr[Sa.id] = !0, Sa._customRendered || Rr.push(Sa);
|
|
666
668
|
}
|
|
667
669
|
else
|
|
668
|
-
for (var
|
|
669
|
-
var
|
|
670
|
-
if (!
|
|
671
|
-
var
|
|
672
|
-
y(
|
|
670
|
+
for (var ea = 0; ea < W.length; ea++) {
|
|
671
|
+
var F = W[ea];
|
|
672
|
+
if (!F.hidden) {
|
|
673
|
+
var oa = F.width || C, dt = F.height || B;
|
|
674
|
+
y(F).x + oa < Ja || y(F).x > O || y(F).y + dt < P || y(F).y > ut || (dr[F.id] = !0, F._customRendered || Rr.push(F));
|
|
673
675
|
}
|
|
674
676
|
}
|
|
675
|
-
var
|
|
676
|
-
if (
|
|
677
|
-
let
|
|
678
|
-
if (
|
|
679
|
-
r.fillStyle =
|
|
680
|
-
for (var
|
|
681
|
-
var
|
|
682
|
-
r.moveTo(
|
|
677
|
+
var hr = Rr.length;
|
|
678
|
+
if (S.length > 0 && W.length > 0) {
|
|
679
|
+
let It = function(Fr, Do) {
|
|
680
|
+
if (Fr.length) {
|
|
681
|
+
r.fillStyle = Do, r.beginPath();
|
|
682
|
+
for (var We = 0; We < Fr.length; We++) {
|
|
683
|
+
var X = Fr[We];
|
|
684
|
+
r.moveTo(X.x, X.y), r.lineTo(X.x - X.size * Math.cos(X.angle - 0.5236), X.y - X.size * Math.sin(X.angle - 0.5236)), r.lineTo(X.x - X.size * Math.cos(X.angle + 0.5236), X.y - X.size * Math.sin(X.angle + 0.5236)), r.closePath();
|
|
683
685
|
}
|
|
684
686
|
r.fill();
|
|
685
687
|
}
|
|
686
688
|
};
|
|
687
|
-
var
|
|
688
|
-
|
|
689
|
-
var
|
|
690
|
-
if (
|
|
691
|
-
var
|
|
692
|
-
|
|
693
|
-
for (var
|
|
694
|
-
var
|
|
695
|
-
if (
|
|
696
|
-
for (var
|
|
697
|
-
var
|
|
698
|
-
|
|
689
|
+
var li = It;
|
|
690
|
+
Ut && ri();
|
|
691
|
+
var yr = null, Pr = null, qr = null, la = [], Gr = [], Ua = [], yt = [], hl = k.zoom > 0.3, ul = k.zoom > 0.05, ia;
|
|
692
|
+
if (dr && W.length > 100) {
|
|
693
|
+
var gt = {};
|
|
694
|
+
ia = [];
|
|
695
|
+
for (var sl in dr) {
|
|
696
|
+
var Vt = _r[sl];
|
|
697
|
+
if (Vt)
|
|
698
|
+
for (var Nt = 0; Nt < Vt.length; Nt++) {
|
|
699
|
+
var Dt = Vt[Nt];
|
|
700
|
+
gt[Dt] || (gt[Dt] = !0, ia.push(Dt));
|
|
699
701
|
}
|
|
700
702
|
}
|
|
701
|
-
for (var
|
|
702
|
-
var
|
|
703
|
-
if ((
|
|
704
|
-
var ca =
|
|
703
|
+
for (var p = 0; p < W.length; p++) {
|
|
704
|
+
var xt = W[p];
|
|
705
|
+
if ((xt.dragging || xt.selected) && !dr[xt.id]) {
|
|
706
|
+
var ca = _r[xt.id];
|
|
705
707
|
if (ca)
|
|
706
708
|
for (var Va = 0; Va < ca.length; Va++)
|
|
707
|
-
|
|
709
|
+
gt[ca[Va]] || (gt[ca[Va]] = !0, ia.push(ca[Va]));
|
|
708
710
|
}
|
|
709
711
|
}
|
|
710
712
|
} else {
|
|
711
|
-
|
|
712
|
-
for (var
|
|
713
|
+
ia = [];
|
|
714
|
+
for (var Ot = 0; Ot < S.length; Ot++) ia.push(Ot);
|
|
713
715
|
}
|
|
714
|
-
for (var
|
|
715
|
-
var
|
|
716
|
-
if (!(!
|
|
717
|
-
var
|
|
718
|
-
|
|
719
|
-
var
|
|
720
|
-
if (
|
|
721
|
-
|
|
716
|
+
for (var jt = 0; jt < ia.length; jt++) {
|
|
717
|
+
var j = S[ia[jt]], fa = Xo(j.source), va = Xo(j.target);
|
|
718
|
+
if (!(!fa || !va) && !(fa.hidden || va.hidden) && !j._customRendered) {
|
|
719
|
+
var Mt = Qt(fa, "source", j.sourceHandle), kt = Qt(va, "target", j.targetHandle), A = Mt.x, w = Mt.y, R = kt.x, z = kt.y, gr = j.type || "default", Ue = j.selected, ce = j.animated, b;
|
|
720
|
+
Ue ? (Pr || (Pr = new Path2D()), b = Pr) : ce ? (qr || (qr = new Path2D()), b = qr) : (yr || (yr = new Path2D()), b = yr);
|
|
721
|
+
var J = j._routedPoints;
|
|
722
|
+
if (J && J.length >= 2)
|
|
723
|
+
tl(b, J);
|
|
722
724
|
else if (gr === "straight")
|
|
723
|
-
|
|
725
|
+
b.moveTo(A, w), b.lineTo(R, z);
|
|
724
726
|
else if (gr === "step" || gr === "smoothstep")
|
|
725
727
|
try {
|
|
726
|
-
var er =
|
|
727
|
-
er === "right" ? U += m : er === "left" ? U -= m : er === "bottom" ?
|
|
728
|
-
var
|
|
729
|
-
|
|
730
|
-
var lr =
|
|
728
|
+
var er = Mt.position || "right", Wa = kt.position || "left", m = 20, U = A, Y = w, c = R, or = z;
|
|
729
|
+
er === "right" ? U += m : er === "left" ? U -= m : er === "bottom" ? Y += m : er === "top" && (Y -= m), Wa === "right" ? c += m : Wa === "left" ? c -= m : Wa === "bottom" ? or += m : Wa === "top" && (or -= m);
|
|
730
|
+
var mt = y(fa), Tt = y(va), Na = fa.width || C, Da = fa.height || B, Ve = va.width || C, Ne = va.height || B, Yt = er === "left" || er === "right", De = Wa === "left" || Wa === "right", Xt = {};
|
|
731
|
+
Xt[j.source] = !0, Xt[j.target] = !0;
|
|
732
|
+
var lr = nl(
|
|
731
733
|
Math.min(A, R) - Na,
|
|
732
734
|
Math.min(w, z) - Da,
|
|
733
|
-
Math.max(A, R) +
|
|
734
|
-
Math.max(w, z) +
|
|
735
|
-
|
|
735
|
+
Math.max(A, R) + Ve,
|
|
736
|
+
Math.max(w, z) + Ne,
|
|
737
|
+
Xt
|
|
736
738
|
);
|
|
737
|
-
lr.push(
|
|
739
|
+
lr.push(fa), lr.push(va);
|
|
738
740
|
var I = [];
|
|
739
|
-
if (
|
|
740
|
-
var V,
|
|
741
|
-
if (
|
|
741
|
+
if (Yt && De) {
|
|
742
|
+
var V, dl = er === "right" && U < c, yl = er === "left" && U > c;
|
|
743
|
+
if (dl || yl) {
|
|
742
744
|
V = (U + c) / 2;
|
|
743
|
-
var
|
|
744
|
-
if (
|
|
745
|
-
var
|
|
746
|
-
V <
|
|
745
|
+
var Ht = Cr(V, w, z, lr);
|
|
746
|
+
if (Ht) {
|
|
747
|
+
var pt = y(Ht), oa = Ht.width || C;
|
|
748
|
+
V < pt.x + oa / 2 ? V = pt.x - m : V = pt.x + oa + m;
|
|
747
749
|
}
|
|
748
750
|
} else
|
|
749
|
-
er === "right" ? V = Math.max(
|
|
751
|
+
er === "right" ? V = Math.max(mt.x + Na, Tt.x + Ve) + m : V = Math.min(mt.x, Tt.x) - m;
|
|
750
752
|
I = [{ x: U, y: w }, { x: V, y: w }, { x: V, y: z }, { x: c, y: z }];
|
|
751
|
-
var
|
|
752
|
-
if (
|
|
753
|
-
var
|
|
753
|
+
var re = Er(V, c, z, lr);
|
|
754
|
+
if (re) {
|
|
755
|
+
var Oe = y(re), gl = re.height || B, je = Oe.y - m, Ye = Oe.y + gl + m, Xe = Math.abs(w - je) <= Math.abs(w - Ye) ? je : Ye;
|
|
754
756
|
I = [
|
|
755
757
|
{ x: U, y: w },
|
|
756
758
|
{ x: V, y: w },
|
|
757
|
-
{ x: V, y:
|
|
758
|
-
{ x: c, y:
|
|
759
|
+
{ x: V, y: Xe },
|
|
760
|
+
{ x: c, y: Xe },
|
|
759
761
|
{ x: c, y: z }
|
|
760
762
|
];
|
|
761
763
|
}
|
|
762
|
-
var
|
|
763
|
-
if (
|
|
764
|
-
var
|
|
764
|
+
var ae = Er(U, V, w, lr);
|
|
765
|
+
if (ae) {
|
|
766
|
+
var He = y(ae), xl = ae.height || B, pe = He.y - m, ro = He.y + xl + m, ao = Math.abs(z - pe) <= Math.abs(z - ro) ? pe : ro;
|
|
765
767
|
I.splice(
|
|
766
768
|
1,
|
|
767
769
|
0,
|
|
768
|
-
{ x: U, y:
|
|
769
|
-
{ x: V, y:
|
|
770
|
-
), I = I.filter(function(
|
|
771
|
-
return !(Math.abs(
|
|
770
|
+
{ x: U, y: ao },
|
|
771
|
+
{ x: V, y: ao }
|
|
772
|
+
), I = I.filter(function(Fr, Do) {
|
|
773
|
+
return !(Math.abs(Fr.x - V) < 1 && Math.abs(Fr.y - w) < 1);
|
|
772
774
|
}), I.splice(0, 0, { x: U, y: w });
|
|
773
775
|
}
|
|
774
|
-
} else if (!
|
|
775
|
-
var N,
|
|
776
|
-
if (
|
|
777
|
-
N = (
|
|
778
|
-
var
|
|
779
|
-
if (
|
|
780
|
-
var
|
|
781
|
-
N <
|
|
776
|
+
} else if (!Yt && !De) {
|
|
777
|
+
var N, Ml = er === "bottom" && Y < or, kl = er === "top" && Y > or;
|
|
778
|
+
if (Ml || kl) {
|
|
779
|
+
N = (Y + or) / 2;
|
|
780
|
+
var te = Er(A, R, N, lr);
|
|
781
|
+
if (te) {
|
|
782
|
+
var ee = y(te), to = te.height || B;
|
|
783
|
+
N < ee.y + to / 2 ? N = ee.y - m : N = ee.y + to + m;
|
|
782
784
|
}
|
|
783
785
|
} else
|
|
784
|
-
er === "bottom" ? N = Math.max(
|
|
785
|
-
I = [{ x: A, y:
|
|
786
|
-
var
|
|
787
|
-
if (
|
|
788
|
-
var
|
|
786
|
+
er === "bottom" ? N = Math.max(mt.y + Da, Tt.y + Ne) + m : N = Math.min(mt.y, Tt.y) - m;
|
|
787
|
+
I = [{ x: A, y: Y }, { x: A, y: N }, { x: R, y: N }, { x: R, y: or }];
|
|
788
|
+
var oe = Cr(A, Y, N, lr);
|
|
789
|
+
if (oe) {
|
|
790
|
+
var eo = y(oe), ml = oe.width || C, oo = eo.x - m, lo = eo.x + ml + m, io = Math.abs(R - oo) <= Math.abs(R - lo) ? oo : lo;
|
|
789
791
|
I = [
|
|
790
|
-
{ x: A, y:
|
|
791
|
-
{ x:
|
|
792
|
-
{ x:
|
|
792
|
+
{ x: A, y: Y },
|
|
793
|
+
{ x: io, y: Y },
|
|
794
|
+
{ x: io, y: N },
|
|
793
795
|
{ x: R, y: N },
|
|
794
796
|
{ x: R, y: or }
|
|
795
797
|
];
|
|
796
798
|
}
|
|
797
|
-
var
|
|
798
|
-
if (
|
|
799
|
-
var
|
|
799
|
+
var le = Cr(R, N, or, lr);
|
|
800
|
+
if (le) {
|
|
801
|
+
var fo = y(le), Tl = le.height || B, vo = fo.y - m, no = fo.y + Tl + m, Rl = Math.abs(N - vo) <= Math.abs(N - no) ? vo : no;
|
|
800
802
|
I.splice(
|
|
801
803
|
I.length - 1,
|
|
802
804
|
0,
|
|
803
|
-
{ x: c, y:
|
|
805
|
+
{ x: c, y: Rl }
|
|
804
806
|
);
|
|
805
807
|
}
|
|
806
|
-
} else if (
|
|
808
|
+
} else if (Yt) {
|
|
807
809
|
I = [{ x: U, y: w }, { x: R, y: w }, { x: R, y: or }];
|
|
808
|
-
var
|
|
809
|
-
if (le) {
|
|
810
|
-
var ho = y(le), Tl = le.width || L, no = ho.x - m, uo = ho.x + Tl + m, so = Math.abs(A - no) <= Math.abs(A - uo) ? no : uo;
|
|
811
|
-
I = [{ x: U, y: w }, { x: so, y: w }, { x: so, y: z }, { x: R, y: z }, { x: R, y: or }];
|
|
812
|
-
}
|
|
813
|
-
var ie = Lr(U, R, w, lr);
|
|
810
|
+
var ie = Cr(R, w, or, lr);
|
|
814
811
|
if (ie) {
|
|
815
|
-
var
|
|
816
|
-
I = [{ x: U, y: w }, { x:
|
|
812
|
+
var ho = y(ie), zl = ie.width || C, uo = ho.x - m, so = ho.x + zl + m, yo = Math.abs(A - uo) <= Math.abs(A - so) ? uo : so;
|
|
813
|
+
I = [{ x: U, y: w }, { x: yo, y: w }, { x: yo, y: z }, { x: R, y: z }, { x: R, y: or }];
|
|
817
814
|
}
|
|
818
|
-
|
|
819
|
-
I = [{ x: A, y: O }, { x: A, y: z }, { x: c, y: z }];
|
|
820
|
-
var fe = Lr(A, c, z, lr);
|
|
815
|
+
var fe = Er(U, R, w, lr);
|
|
821
816
|
if (fe) {
|
|
822
|
-
var
|
|
823
|
-
I = [{ x:
|
|
817
|
+
var go = y(fe), wl = fe.height || B, xo = go.y - m, Mo = go.y + wl + m, ko = Math.abs(z - xo) <= Math.abs(z - Mo) ? xo : Mo;
|
|
818
|
+
I = [{ x: U, y: w }, { x: U, y: ko }, { x: R, y: ko }, { x: R, y: or }];
|
|
824
819
|
}
|
|
825
|
-
|
|
820
|
+
} else {
|
|
821
|
+
I = [{ x: A, y: Y }, { x: A, y: z }, { x: c, y: z }];
|
|
822
|
+
var ve = Er(A, c, z, lr);
|
|
826
823
|
if (ve) {
|
|
827
|
-
var
|
|
828
|
-
I = [{ x: A, y:
|
|
824
|
+
var mo = y(ve), Bl = ve.height || B, To = mo.y - m, Ro = mo.y + Bl + m, zo = Math.abs(w - To) <= Math.abs(w - Ro) ? To : Ro;
|
|
825
|
+
I = [{ x: A, y: Y }, { x: A, y: zo }, { x: c, y: zo }, { x: c, y: z }];
|
|
826
|
+
}
|
|
827
|
+
var ne = Cr(A, Y, z, lr);
|
|
828
|
+
if (ne) {
|
|
829
|
+
var wo = y(ne), Al = ne.width || C, Bo = wo.x - m, Ao = wo.x + Al + m, _o = Math.abs(R - Bo) <= Math.abs(R - Ao) ? Bo : Ao;
|
|
830
|
+
I = [{ x: A, y: Y }, { x: _o, y: Y }, { x: _o, y: z }, { x: c, y: z }];
|
|
829
831
|
}
|
|
830
832
|
}
|
|
831
|
-
for (var
|
|
832
|
-
|
|
833
|
-
for (var ir = [
|
|
833
|
+
for (var na = [{ x: A, y: w }], he = 0; he < I.length; he++) na.push(I[he]);
|
|
834
|
+
na.push({ x: R, y: z });
|
|
835
|
+
for (var ir = [na[0]], Oa = 1; Oa < na.length; Oa++) {
|
|
834
836
|
var ja = ir[ir.length - 1];
|
|
835
|
-
(Math.abs(
|
|
837
|
+
(Math.abs(na[Oa].x - ja.x) > 0.1 || Math.abs(na[Oa].y - ja.y) > 0.1) && ir.push(na[Oa]);
|
|
836
838
|
}
|
|
837
|
-
var
|
|
838
|
-
|
|
839
|
-
for (var
|
|
840
|
-
if (
|
|
841
|
-
var
|
|
842
|
-
if (Math.abs(
|
|
843
|
-
|
|
839
|
+
var Eo = gr === "smoothstep" ? 8 : 0;
|
|
840
|
+
b.moveTo(ir[0].x, ir[0].y);
|
|
841
|
+
for (var p = 1; p < ir.length; p++)
|
|
842
|
+
if (Eo > 0 && p > 0 && p < ir.length - 1) {
|
|
843
|
+
var zr = ir[p - 1], L = ir[p], Ir = ir[p + 1];
|
|
844
|
+
if (Math.abs(zr.x - L.x) < 0.5 && Math.abs(L.x - Ir.x) < 0.5 || Math.abs(zr.y - L.y) < 0.5 && Math.abs(L.y - Ir.y) < 0.5)
|
|
845
|
+
b.lineTo(L.x, L.y);
|
|
844
846
|
else {
|
|
845
|
-
var
|
|
846
|
-
Math.abs(
|
|
847
|
+
var Rt = Math.min(Math.hypot(zr.x - L.x, zr.y - L.y) / 2, Math.hypot(L.x - Ir.x, L.y - Ir.y) / 2, Eo);
|
|
848
|
+
Math.abs(zr.y - L.y) < 0.5 ? (b.lineTo(L.x + (zr.x < Ir.x ? -1 : 1) * Rt, L.y), b.quadraticCurveTo(L.x, L.y, L.x, L.y + (zr.y < Ir.y ? 1 : -1) * Rt)) : (b.lineTo(L.x, L.y + (zr.y < Ir.y ? -1 : 1) * Rt), b.quadraticCurveTo(L.x, L.y, L.x + (zr.x < Ir.x ? 1 : -1) * Rt, L.y));
|
|
847
849
|
}
|
|
848
850
|
} else
|
|
849
|
-
|
|
850
|
-
} catch (
|
|
851
|
-
console.error("[worker] smoothstep error:",
|
|
851
|
+
b.lineTo(ir[p].x, ir[p].y);
|
|
852
|
+
} catch (Fr) {
|
|
853
|
+
console.error("[worker] smoothstep error:", Fr, "edge:", j.id);
|
|
852
854
|
}
|
|
853
855
|
else {
|
|
854
|
-
var
|
|
855
|
-
|
|
856
|
-
var
|
|
857
|
-
|
|
856
|
+
var Zr = Mt.position || "right", Kr = kt.position || "left", br = 20, Ya = A, zt = w, Xa = R, wt = z;
|
|
857
|
+
Zr === "right" ? Ya += br : Zr === "left" ? Ya -= br : Zr === "bottom" ? zt += br : Zr === "top" && (zt -= br), Kr === "right" ? Xa += br : Kr === "left" ? Xa -= br : Kr === "bottom" ? wt += br : Kr === "top" && (wt -= br);
|
|
858
|
+
var _l = Math.abs(Xa - Ya), Jr = Math.max(50, _l * 0.5), El = Ya + (Zr === "left" ? -Jr : Zr === "right" ? Jr : 0), Cl = zt + (Zr === "top" ? -Jr : Zr === "bottom" ? Jr : 0), Ll = Xa + (Kr === "left" ? -Jr : Kr === "right" ? Jr : 0), Sl = wt + (Kr === "top" ? -Jr : Kr === "bottom" ? Jr : 0);
|
|
859
|
+
b.moveTo(A, w), b.lineTo(Ya, zt), b.bezierCurveTo(El, Cl, Ll, Sl, Xa, wt), b.lineTo(R, z);
|
|
858
860
|
}
|
|
859
|
-
if (
|
|
860
|
-
var
|
|
861
|
-
if (
|
|
862
|
-
var ja =
|
|
863
|
-
Ha = Math.atan2(ja.y -
|
|
861
|
+
if (ul) {
|
|
862
|
+
var Wl = 8, Ha;
|
|
863
|
+
if (J && J.length >= 2) {
|
|
864
|
+
var ja = J[J.length - 1], Co = J[J.length - 2];
|
|
865
|
+
Ha = Math.atan2(ja.y - Co.y, ja.x - Co.x);
|
|
864
866
|
} else if (gr === "straight")
|
|
865
867
|
Ha = Math.atan2(z - w, R - A);
|
|
866
868
|
else if (gr === "step" || gr === "smoothstep")
|
|
867
869
|
Ha = 0;
|
|
868
870
|
else {
|
|
869
|
-
var Lo =
|
|
871
|
+
var Lo = Qe(A, w, R, z);
|
|
870
872
|
Ha = Math.atan2(z - Lo.cp2y, R - Lo.cp2x);
|
|
871
873
|
}
|
|
872
|
-
var So =
|
|
873
|
-
|
|
874
|
+
var So = J && J.length >= 2 ? J[J.length - 1] : { x: R, y: z }, ue = { x: So.x, y: So.y, angle: Ha, size: Wl };
|
|
875
|
+
Ue ? Gr.push(ue) : ce ? Ua.push(ue) : la.push(ue);
|
|
874
876
|
}
|
|
875
|
-
if (
|
|
877
|
+
if (hl && j.label) {
|
|
876
878
|
var pa;
|
|
877
|
-
|
|
879
|
+
J && J.length >= 2 ? pa = ti(J) : gr === "straight" || gr === "step" || gr === "smoothstep" ? pa = { x: (A + R) / 2, y: (w + z) / 2 } : pa = ei(A, w, R, z), yt.push({ text: j.label, x: pa.x, y: pa.y });
|
|
878
880
|
}
|
|
879
881
|
}
|
|
880
882
|
}
|
|
881
|
-
if (
|
|
882
|
-
r.font =
|
|
883
|
-
for (var
|
|
884
|
-
var
|
|
885
|
-
r.fillStyle =
|
|
883
|
+
if (yr && (r.strokeStyle = M.edgeStroke, r.lineWidth = 1.5, r.setLineDash([]), r.stroke(yr)), qr && (r.strokeStyle = M.edgeAnimated, r.lineWidth = 1.5, r.setLineDash([5, 5]), r.lineDashOffset = -Je, r.stroke(qr), r.setLineDash([])), Pr && (r.strokeStyle = M.edgeSelected, r.lineWidth = 2.5, r.setLineDash([]), r.stroke(Pr)), It(la, M.edgeStroke), It(Ua, M.edgeAnimated), It(Gr, M.edgeSelected), yt.length > 0) {
|
|
884
|
+
r.font = Hl, r.textAlign = "center", r.textBaseline = "middle";
|
|
885
|
+
for (var se = 0; se < yt.length; se++) {
|
|
886
|
+
var Pa = yt[se], Pl = r.measureText(Pa.text), Wo = Pl.width + 12;
|
|
887
|
+
r.fillStyle = $ ? "#2a2a2a" : "#ffffff", r.fillRect(Pa.x - Wo / 2, Pa.y - 9, Wo, 18), r.fillStyle = M.nodeText, r.fillText(Pa.text, Pa.x, Pa.y);
|
|
886
888
|
}
|
|
887
889
|
r.textAlign = "start", r.textBaseline = "alphabetic";
|
|
888
890
|
}
|
|
889
891
|
}
|
|
890
892
|
if (lt) {
|
|
891
|
-
r.beginPath(), r.strokeStyle =
|
|
892
|
-
var
|
|
893
|
-
if (
|
|
894
|
-
var
|
|
895
|
-
|
|
893
|
+
r.beginPath(), r.strokeStyle = M.connectionLine, r.lineWidth = 2, r.setLineDash([6, 4]);
|
|
894
|
+
var de = lt._routedPoints;
|
|
895
|
+
if (de && de.length >= 2) {
|
|
896
|
+
var Po = new Path2D();
|
|
897
|
+
tl(Po, de), r.stroke(Po);
|
|
896
898
|
} else {
|
|
897
|
-
var
|
|
898
|
-
r.moveTo(
|
|
899
|
+
var Bt = lt.from, At = lt.to, _t = Qe(Bt.x, Bt.y, At.x, At.y);
|
|
900
|
+
r.moveTo(Bt.x, Bt.y), r.bezierCurveTo(_t.cp1x, _t.cp1y, _t.cp2x, _t.cp2y, At.x, At.y), r.stroke();
|
|
899
901
|
}
|
|
900
902
|
r.setLineDash([]);
|
|
901
903
|
}
|
|
902
|
-
if (
|
|
903
|
-
var
|
|
904
|
-
r.fillStyle =
|
|
904
|
+
if (mr) {
|
|
905
|
+
var qo = Math.min(mr.startWorld.x, mr.endWorld.x), Go = Math.min(mr.startWorld.y, mr.endWorld.y), Na = Math.abs(mr.endWorld.x - mr.startWorld.x), Da = Math.abs(mr.endWorld.y - mr.startWorld.y);
|
|
906
|
+
r.fillStyle = $ ? "rgba(59,130,246,0.08)" : "rgba(59,130,246,0.06)", r.fillRect(qo, Go, Na, Da), r.strokeStyle = "#3b82f6", r.lineWidth = 1 / k.zoom, r.setLineDash([]), r.strokeRect(qo, Go, Na, Da);
|
|
905
907
|
}
|
|
906
|
-
if (
|
|
907
|
-
var
|
|
908
|
-
if (
|
|
909
|
-
|
|
910
|
-
for (var
|
|
911
|
-
var
|
|
912
|
-
it[
|
|
908
|
+
if (hr > 0) {
|
|
909
|
+
var Io = Ka > 0, ha = k.zoom > 0.12 && (k.zoom > 0.25 || hr < 500), ye = !Io && k.zoom > 0.08 && hr < 200, ql = !Io && k.zoom > 0.2 && hr < 300, Gl = Object.keys(Kt).length > 0 || Object.keys(it).length > 0 || Object.keys(bt).length > 0, Qr = Rr, Et = [], Ct = [];
|
|
910
|
+
if (Gl) {
|
|
911
|
+
Qr = [];
|
|
912
|
+
for (var ge = 0; ge < hr; ge++) {
|
|
913
|
+
var $r = Rr[ge];
|
|
914
|
+
it[$r.id] || $r.type && Kt[$r.type] ? Et.push($r) : $r.type && bt[$r.type] ? Ct.push($r) : Qr.push($r);
|
|
913
915
|
}
|
|
914
916
|
}
|
|
915
|
-
var rt =
|
|
916
|
-
if (
|
|
917
|
-
r.shadowColor =
|
|
917
|
+
var rt = Qr.length;
|
|
918
|
+
if (ye) {
|
|
919
|
+
r.shadowColor = M.nodeShadow, r.shadowBlur = 6, r.shadowOffsetY = 2, r.fillStyle = M.nodeBg, r.beginPath();
|
|
918
920
|
for (var xe = 0; xe < rt; xe++) {
|
|
919
|
-
var
|
|
920
|
-
r.roundRect(y(
|
|
921
|
+
var Lt = Qr[xe];
|
|
922
|
+
r.roundRect(y(Lt).x, y(Lt).y, Lt.width || C, Lt.height || B, Za);
|
|
921
923
|
}
|
|
922
924
|
r.fill(), r.shadowColor = "transparent", r.shadowBlur = 0, r.shadowOffsetY = 0;
|
|
923
925
|
}
|
|
924
|
-
if (!
|
|
925
|
-
r.fillStyle =
|
|
926
|
-
for (var
|
|
927
|
-
var
|
|
928
|
-
r.roundRect(y(
|
|
926
|
+
if (!ye) {
|
|
927
|
+
r.fillStyle = M.nodeBg, r.beginPath();
|
|
928
|
+
for (var Me = 0; Me < rt; Me++) {
|
|
929
|
+
var St = Qr[Me];
|
|
930
|
+
r.roundRect(y(St).x, y(St).y, St.width || C, St.height || B, Za);
|
|
929
931
|
}
|
|
930
932
|
r.fill();
|
|
931
933
|
}
|
|
932
|
-
r.strokeStyle =
|
|
933
|
-
for (var
|
|
934
|
-
var at =
|
|
935
|
-
at.selected || r.roundRect(y(at).x, y(at).y, at.width ||
|
|
934
|
+
r.strokeStyle = M.nodeBorder, r.lineWidth = 1, r.beginPath();
|
|
935
|
+
for (var ke = 0; ke < rt; ke++) {
|
|
936
|
+
var at = Qr[ke];
|
|
937
|
+
at.selected || r.roundRect(y(at).x, y(at).y, at.width || C, at.height || B, Za);
|
|
936
938
|
}
|
|
937
939
|
r.stroke();
|
|
938
|
-
var
|
|
939
|
-
r.strokeStyle =
|
|
940
|
-
for (var
|
|
941
|
-
var tt =
|
|
942
|
-
tt.selected && (
|
|
940
|
+
var Zo = !1;
|
|
941
|
+
r.strokeStyle = M.nodeSelectedBorder, r.lineWidth = 2, r.beginPath();
|
|
942
|
+
for (var me = 0; me < rt; me++) {
|
|
943
|
+
var tt = Qr[me];
|
|
944
|
+
tt.selected && (Zo = !0, r.roundRect(y(tt).x, y(tt).y, tt.width || C, tt.height || B, Za));
|
|
943
945
|
}
|
|
944
|
-
if (
|
|
945
|
-
r.fillStyle =
|
|
946
|
-
for (var
|
|
947
|
-
var
|
|
948
|
-
if (!(!
|
|
949
|
-
var
|
|
950
|
-
r.fillText(
|
|
946
|
+
if (Zo && r.stroke(), ha) {
|
|
947
|
+
r.fillStyle = M.nodeText, r.font = jo, r.textAlign = "center", r.textBaseline = "middle";
|
|
948
|
+
for (var Te = 0; Te < rt; Te++) {
|
|
949
|
+
var ua = Qr[Te];
|
|
950
|
+
if (!(!ua.data || !ua.data.label)) {
|
|
951
|
+
var Ko = ua.width || C, Il = ua.height || B;
|
|
952
|
+
r.fillText(ua.data.label, y(ua).x + Ko / 2, y(ua).y + Il / 2, Ko - 24);
|
|
951
953
|
}
|
|
952
954
|
}
|
|
953
955
|
r.textAlign = "start", r.textBaseline = "alphabetic";
|
|
954
956
|
}
|
|
955
|
-
for (var
|
|
956
|
-
var
|
|
957
|
-
|
|
957
|
+
for (var Re = 0; Re < Et.length; Re++) {
|
|
958
|
+
var xr = Et[Re], qa = y(xr), Wt = xr.width || C, ze = xr.height || B, bo = it[xr.id] && el[it[xr.id]] || Kt[xr.type];
|
|
959
|
+
bo && r.drawImage(bo, qa.x, qa.y, Wt, ze), ha && xr.data && xr.data.label && (r.fillStyle = M.nodeText, r.font = jo, r.textAlign = "center", r.textBaseline = "middle", r.fillText(xr.data.label, qa.x + Wt / 2, qa.y + ze / 2, Wt - 24)), xr.selected && (r.strokeStyle = M.nodeSelectedBorder, r.lineWidth = 2, r.beginPath(), r.roundRect(qa.x, qa.y, Wt, ze, Za), r.stroke());
|
|
958
960
|
}
|
|
959
|
-
|
|
960
|
-
for (var
|
|
961
|
-
var
|
|
962
|
-
if (
|
|
963
|
-
var et =
|
|
961
|
+
Et.length > 0 && ha && (r.textAlign = "start", r.textBaseline = "alphabetic");
|
|
962
|
+
for (var we = 0; we < Ct.length; we++) {
|
|
963
|
+
var sa = Ct[we], q = bt[sa.type], E = y(sa), wr = sa.width || C, da = sa.height || B, ur = q.radius || Za, Pt = sa.data || {};
|
|
964
|
+
if (ye && q.shadow !== !1 && (r.save(), r.shadowColor = q.shadowColor || M.nodeShadow, r.shadowBlur = q.shadowBlur || 6, r.shadowOffsetY = q.shadowOffsetY || 2, r.fillStyle = q.fill || M.nodeBg, r.beginPath(), r.roundRect(E.x, E.y, wr, da, ur), r.fill(), r.restore()), r.fillStyle = q.fill || M.nodeBg, r.beginPath(), r.roundRect(E.x, E.y, wr, da, ur), r.fill(), r.strokeStyle = sa.selected ? M.nodeSelectedBorder : q.stroke || M.nodeBorder, r.lineWidth = sa.selected ? 2 : q.strokeWidth || 1, r.beginPath(), r.roundRect(E.x, E.y, wr, da, ur), r.stroke(), q.accent) {
|
|
965
|
+
var et = q.accent;
|
|
964
966
|
r.fillStyle = et.color || "#3b82f6";
|
|
965
|
-
var
|
|
966
|
-
r.beginPath(), et.side === "right" ? r.roundRect(E.x +
|
|
967
|
+
var Ga = et.width || 5;
|
|
968
|
+
r.beginPath(), et.side === "right" ? r.roundRect(E.x + wr - Ga, E.y, Ga, da, [0, ur, ur, 0]) : et.side === "top" ? r.roundRect(E.x, E.y, wr, Ga, [ur, ur, 0, 0]) : et.side === "bottom" ? r.roundRect(E.x, E.y + da - Ga, wr, Ga, [0, 0, ur, ur]) : r.roundRect(E.x, E.y, Ga, da, [ur, 0, 0, ur]), r.fill();
|
|
967
969
|
}
|
|
968
|
-
if (
|
|
969
|
-
var
|
|
970
|
-
if (
|
|
971
|
-
r.font = (
|
|
972
|
-
var
|
|
973
|
-
r.fillText(
|
|
970
|
+
if (q.icon && ha) {
|
|
971
|
+
var Br = q.icon, Jo = Br.dataField ? Pt[Br.dataField] : Br.text;
|
|
972
|
+
if (Jo) {
|
|
973
|
+
r.font = (Br.size || 18) + "px system-ui, sans-serif", r.textAlign = "center", r.textBaseline = "middle", r.fillStyle = Br.color || M.nodeText;
|
|
974
|
+
var Zl = E.x + (Br.x !== void 0 ? Br.x : 20), Kl = E.y + (Br.y !== void 0 ? Br.y : da / 2);
|
|
975
|
+
r.fillText(Jo, Zl, Kl);
|
|
974
976
|
}
|
|
975
977
|
}
|
|
976
|
-
if (
|
|
977
|
-
var
|
|
978
|
-
if (
|
|
979
|
-
r.font =
|
|
980
|
-
var
|
|
981
|
-
r.fillText(
|
|
978
|
+
if (q.title && ha) {
|
|
979
|
+
var Mr = q.title, Qo = Mr.dataField ? Pt[Mr.dataField] : Mr.text;
|
|
980
|
+
if (Qo) {
|
|
981
|
+
r.font = Mr.font || "600 13px system-ui, sans-serif", r.textAlign = Mr.align || "left", r.textBaseline = "top", r.fillStyle = Mr.color || M.nodeText;
|
|
982
|
+
var $o = E.x + (Mr.x !== void 0 ? Mr.x : 12), bl = E.y + (Mr.y !== void 0 ? Mr.y : 12);
|
|
983
|
+
r.fillText(Qo, $o, bl, wr - $o + E.x - 12);
|
|
982
984
|
}
|
|
983
985
|
}
|
|
984
|
-
if (
|
|
985
|
-
var
|
|
986
|
-
if (
|
|
987
|
-
r.font =
|
|
988
|
-
var
|
|
989
|
-
r.fillText(
|
|
986
|
+
if (q.subtitle && ha) {
|
|
987
|
+
var kr = q.subtitle, Fo = kr.dataField ? Pt[kr.dataField] : kr.text;
|
|
988
|
+
if (Fo) {
|
|
989
|
+
r.font = kr.font || "11px system-ui, sans-serif", r.textAlign = kr.align || "left", r.textBaseline = "top", r.fillStyle = kr.color || "#64748b";
|
|
990
|
+
var Uo = E.x + (kr.x !== void 0 ? kr.x : 12), Jl = E.y + (kr.y !== void 0 ? kr.y : 32);
|
|
991
|
+
r.fillText(Fo, Uo, Jl, wr - Uo + E.x - 12);
|
|
990
992
|
}
|
|
991
993
|
}
|
|
992
|
-
if (
|
|
993
|
-
var
|
|
994
|
-
if (
|
|
995
|
-
r.font =
|
|
996
|
-
var
|
|
997
|
-
r.fillStyle =
|
|
994
|
+
if (q.badge && ha) {
|
|
995
|
+
var Ar = q.badge, Be = Ar.dataField ? Pt[Ar.dataField] : Ar.text;
|
|
996
|
+
if (Be) {
|
|
997
|
+
r.font = Ar.font || "700 9px system-ui, sans-serif";
|
|
998
|
+
var Ql = r.measureText(Be), $l = Ar.paddingX || 6, Fl = Ar.paddingY || 3, Ae = Ql.width + $l * 2, _e = 14 + Fl, co = E.x + wr - Ae / 2 - 4, Vo = E.y - _e / 2;
|
|
999
|
+
r.fillStyle = Ar.bg || "#3b82f6", r.beginPath(), r.roundRect(co, Vo, Ae, _e, Ar.radius || 7), r.fill(), r.fillStyle = Ar.color || "#fff", r.textAlign = "center", r.textBaseline = "middle", r.fillText(Be, co + Ae / 2, Vo + _e / 2);
|
|
998
1000
|
}
|
|
999
1001
|
}
|
|
1000
1002
|
}
|
|
1001
|
-
if (
|
|
1002
|
-
for (var
|
|
1003
|
-
for (var
|
|
1004
|
-
|
|
1005
|
-
r.fillStyle =
|
|
1006
|
-
for (var Se = 0; Se <
|
|
1007
|
-
var
|
|
1008
|
-
r.moveTo(
|
|
1003
|
+
if (Ct.length > 0 && (r.textAlign = "start", r.textBaseline = "alphabetic"), ql) {
|
|
1004
|
+
for (var Ee = [], Ce = 0; Ce < hr; Ce++)
|
|
1005
|
+
for (var No = ol(Rr[Ce]), Le = 0; Le < No.length; Le++)
|
|
1006
|
+
Ee.push(No[Le]);
|
|
1007
|
+
r.fillStyle = M.handleFill, r.beginPath();
|
|
1008
|
+
for (var Se = 0; Se < Ee.length; Se++) {
|
|
1009
|
+
var qt = Ee[Se];
|
|
1010
|
+
r.moveTo(qt.x + Oo, qt.y), r.arc(qt.x, qt.y, Oo, 0, 6.2832);
|
|
1009
1011
|
}
|
|
1010
|
-
r.fill(), r.strokeStyle =
|
|
1012
|
+
r.fill(), r.strokeStyle = M.handleBorder, r.lineWidth = 1.5, r.stroke();
|
|
1011
1013
|
}
|
|
1012
1014
|
}
|
|
1013
1015
|
r.restore();
|
|
1014
|
-
var
|
|
1015
|
-
|
|
1016
|
-
var
|
|
1017
|
-
if (
|
|
1018
|
-
|
|
1019
|
-
var
|
|
1016
|
+
var Ul = (performance.now() - a).toFixed(1);
|
|
1017
|
+
Ge++;
|
|
1018
|
+
var Gt = performance.now();
|
|
1019
|
+
if (Gt - Ho >= 1e3 && (po = Ge, Ge = 0, Ho = Gt), Gt - rl >= 100) {
|
|
1020
|
+
rl = Gt;
|
|
1021
|
+
var cl = Math.round(-k.x / k.zoom), Vl = Math.round(-k.y / k.zoom);
|
|
1020
1022
|
self.postMessage({
|
|
1021
1023
|
type: "hud",
|
|
1022
1024
|
data: {
|
|
1023
|
-
wx:
|
|
1024
|
-
wy:
|
|
1025
|
-
zoom:
|
|
1026
|
-
renderMs:
|
|
1027
|
-
fps:
|
|
1028
|
-
visible:
|
|
1025
|
+
wx: cl,
|
|
1026
|
+
wy: Vl,
|
|
1027
|
+
zoom: k.zoom.toFixed(2),
|
|
1028
|
+
renderMs: Ul,
|
|
1029
|
+
fps: po,
|
|
1030
|
+
visible: H.length > 0 ? Yo(jr, Lr, D, Yr).length : 0,
|
|
1029
1031
|
nodeCount: W.length,
|
|
1030
|
-
visibleNodes:
|
|
1031
|
-
edgeCount:
|
|
1032
|
+
visibleNodes: hr,
|
|
1033
|
+
edgeCount: S.length
|
|
1032
1034
|
}
|
|
1033
1035
|
});
|
|
1034
1036
|
}
|