@infinit-canvas/react 0.1.22 → 0.1.23
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 +601 -597
- package/dist/react-infinite-canvas.js +796 -792
- package/package.json +1 -1
|
@@ -89,73 +89,73 @@ function Jo(t) {
|
|
|
89
89
|
const { width: e, height: n } = br(t);
|
|
90
90
|
return { x: t.position.x, y: t.position.y, width: e, height: n };
|
|
91
91
|
}
|
|
92
|
-
const Mr = `var
|
|
92
|
+
const Mr = `var qa = null, r = null, fr = 0, vr = 0, M = { x: 0, y: 0, zoom: 1 }, Y = [], W = [], C = [], F = !1, Ze = 40, We = !1, Nr = "lines", da = 1, Kt = null, lt = null, Tr = null, It = {}, tl = {}, it = {}, Zt = {}, Ia = 0, L = 160, B = 60, Ga = 8, Do = 5;
|
|
93
93
|
function y(a) {
|
|
94
94
|
return a._absolutePosition || a.position;
|
|
95
95
|
}
|
|
96
|
-
function
|
|
96
|
+
function cl(a, t, e, l, i) {
|
|
97
97
|
if (a.x !== void 0 && a.y !== void 0)
|
|
98
|
-
return { x:
|
|
98
|
+
return { x: t + a.x, y: e + a.y };
|
|
99
99
|
var o = a.position || (a.type === "source" ? "right" : "left");
|
|
100
100
|
switch (o) {
|
|
101
101
|
case "top":
|
|
102
|
-
return { x:
|
|
102
|
+
return { x: t + l / 2, y: e };
|
|
103
103
|
case "bottom":
|
|
104
|
-
return { x:
|
|
104
|
+
return { x: t + l / 2, y: e + i };
|
|
105
105
|
case "left":
|
|
106
|
-
return { x:
|
|
106
|
+
return { x: t, y: e + i / 2 };
|
|
107
107
|
case "right":
|
|
108
|
-
return { x:
|
|
108
|
+
return { x: t + l, y: e + i / 2 };
|
|
109
109
|
default:
|
|
110
|
-
return { x:
|
|
110
|
+
return { x: t + l, y: e + i / 2 };
|
|
111
111
|
}
|
|
112
112
|
}
|
|
113
|
-
function
|
|
114
|
-
var
|
|
113
|
+
function el(a) {
|
|
114
|
+
var t = a.width || L, e = a.height || B;
|
|
115
115
|
if (a.handles && a.handles.length > 0)
|
|
116
|
-
return a.handles.map(function(
|
|
117
|
-
var g =
|
|
118
|
-
return { id:
|
|
116
|
+
return a.handles.map(function(n) {
|
|
117
|
+
var g = cl(n, y(a).x, y(a).y, t, e);
|
|
118
|
+
return { id: n.id || null, type: n.type, x: g.x, y: g.y, position: n.position };
|
|
119
119
|
});
|
|
120
|
-
var
|
|
121
|
-
function f(
|
|
122
|
-
switch (
|
|
120
|
+
var l = a.targetPosition || "left", i = a.sourcePosition || "right", o = y(a);
|
|
121
|
+
function f(n) {
|
|
122
|
+
switch (n) {
|
|
123
123
|
case "top":
|
|
124
|
-
return { x: o.x +
|
|
124
|
+
return { x: o.x + t / 2, y: o.y };
|
|
125
125
|
case "bottom":
|
|
126
|
-
return { x: o.x +
|
|
126
|
+
return { x: o.x + t / 2, y: o.y + e };
|
|
127
127
|
case "left":
|
|
128
|
-
return { x: o.x, y: o.y +
|
|
128
|
+
return { x: o.x, y: o.y + e / 2 };
|
|
129
129
|
case "right":
|
|
130
|
-
return { x: o.x +
|
|
130
|
+
return { x: o.x + t, y: o.y + e / 2 };
|
|
131
131
|
default:
|
|
132
|
-
return { x: o.x +
|
|
132
|
+
return { x: o.x + t, y: o.y + e / 2 };
|
|
133
133
|
}
|
|
134
134
|
}
|
|
135
|
-
var h = f(
|
|
135
|
+
var h = f(l), x = f(i);
|
|
136
136
|
return [
|
|
137
|
-
{ id: null, type: "target", x: h.x, y: h.y, position:
|
|
138
|
-
{ id: null, type: "source", x: x.x, y: x.y, position:
|
|
137
|
+
{ id: null, type: "target", x: h.x, y: h.y, position: l },
|
|
138
|
+
{ id: null, type: "source", x: x.x, y: x.y, position: i }
|
|
139
139
|
];
|
|
140
140
|
}
|
|
141
|
-
var
|
|
142
|
-
function
|
|
143
|
-
|
|
144
|
-
var
|
|
145
|
-
return
|
|
146
|
-
}
|
|
147
|
-
function
|
|
148
|
-
for (var
|
|
149
|
-
if (i
|
|
150
|
-
if (
|
|
151
|
-
if (i
|
|
141
|
+
var Pe = {}, nt = !0;
|
|
142
|
+
function Vl(a) {
|
|
143
|
+
nt && (Pe = {}, nt = !1);
|
|
144
|
+
var t = Pe[a.id];
|
|
145
|
+
return t || (t = el(a), Pe[a.id] = t, t);
|
|
146
|
+
}
|
|
147
|
+
function bt(a, t, e) {
|
|
148
|
+
for (var l = Vl(a), i = 0; i < l.length; i++)
|
|
149
|
+
if (l[i].type === t)
|
|
150
|
+
if (e) {
|
|
151
|
+
if (l[i].id === e) return l[i];
|
|
152
152
|
} else
|
|
153
|
-
return i
|
|
153
|
+
return l[i];
|
|
154
154
|
var o = a.width || L, f = a.height || B;
|
|
155
|
-
return
|
|
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
157
|
var k = {};
|
|
158
|
-
function
|
|
158
|
+
function Ke() {
|
|
159
159
|
k = {
|
|
160
160
|
grid: F ? "rgba(255,255,255,0.07)" : "rgba(0,0,0,0.07)",
|
|
161
161
|
origin: F ? "rgba(255,255,255,0.2)" : "rgba(0,0,0,0.15)",
|
|
@@ -176,855 +176,859 @@ function Kt() {
|
|
|
176
176
|
handleFill: "#ffffff",
|
|
177
177
|
handleBorder: "#3b82f6",
|
|
178
178
|
connectionLine: "#3b82f6"
|
|
179
|
-
},
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
var
|
|
183
|
-
function
|
|
184
|
-
|
|
185
|
-
for (var a = 0; a <
|
|
186
|
-
for (var
|
|
187
|
-
for (var h =
|
|
179
|
+
}, Za = !0;
|
|
180
|
+
}
|
|
181
|
+
Ke();
|
|
182
|
+
var Nl = ["#534AB7", "#0F6E56", "#993C1D", "#185FA5"], ot = 8, Dl = "500 11px system-ui, sans-serif", Ol = "400 11px system-ui, sans-serif", jl = "10px monospace", Oo = "500 13px system-ui, sans-serif", Yl = "400 11px system-ui, sans-serif", Dr = 400, ft = {}, Jt = !0;
|
|
183
|
+
function Xl() {
|
|
184
|
+
ft = {};
|
|
185
|
+
for (var a = 0; a < Y.length; a++)
|
|
186
|
+
for (var t = Y[a], e = Math.floor(t.x / Dr), l = Math.floor(t.y / Dr), i = Math.floor((t.x + t.w) / Dr), o = Math.floor((t.y + t.h) / Dr), f = e; f <= i; f++)
|
|
187
|
+
for (var h = l; h <= o; h++) {
|
|
188
188
|
var x = f + "," + h;
|
|
189
|
-
|
|
189
|
+
ft[x] || (ft[x] = []), ft[x].push(a);
|
|
190
190
|
}
|
|
191
|
-
|
|
192
|
-
}
|
|
193
|
-
function jo(a,
|
|
194
|
-
|
|
195
|
-
for (var
|
|
196
|
-
for (var v = h; v <=
|
|
197
|
-
var
|
|
198
|
-
if (
|
|
199
|
-
for (var
|
|
200
|
-
var T = d
|
|
201
|
-
|
|
191
|
+
Jt = !1;
|
|
192
|
+
}
|
|
193
|
+
function jo(a, t, e, l) {
|
|
194
|
+
Jt && Xl();
|
|
195
|
+
for (var i = {}, o = [], f = Math.floor(a / Dr), h = Math.floor(t / Dr), x = Math.floor(e / Dr), n = Math.floor(l / Dr), g = f; g <= x; g++)
|
|
196
|
+
for (var v = h; v <= n; v++) {
|
|
197
|
+
var u = g + "," + v, s = ft[u];
|
|
198
|
+
if (s)
|
|
199
|
+
for (var d = 0; d < s.length; d++) {
|
|
200
|
+
var T = s[d];
|
|
201
|
+
i[T] || (i[T] = !0, o.push(T));
|
|
202
202
|
}
|
|
203
203
|
}
|
|
204
204
|
return o;
|
|
205
205
|
}
|
|
206
|
-
var
|
|
207
|
-
function $
|
|
208
|
-
|
|
209
|
-
for (var a = 0; a <
|
|
210
|
-
var
|
|
211
|
-
if (!
|
|
212
|
-
for (var
|
|
206
|
+
var Or = 500, vt = {}, jr = !0;
|
|
207
|
+
function $e() {
|
|
208
|
+
vt = {};
|
|
209
|
+
for (var a = 0; a < W.length; a++) {
|
|
210
|
+
var t = W[a];
|
|
211
|
+
if (!t.hidden)
|
|
212
|
+
for (var e = y(t), l = t.width || L, i = t.height || B, o = Math.floor(e.x / Or), f = Math.floor(e.y / Or), h = Math.floor((e.x + l) / Or), x = Math.floor((e.y + i) / Or), n = o; n <= h; n++)
|
|
213
213
|
for (var g = f; g <= x; g++) {
|
|
214
|
-
var v =
|
|
215
|
-
|
|
214
|
+
var v = n + "," + g;
|
|
215
|
+
vt[v] || (vt[v] = []), vt[v].push(a);
|
|
216
216
|
}
|
|
217
217
|
}
|
|
218
|
-
|
|
219
|
-
}
|
|
220
|
-
function
|
|
221
|
-
|
|
222
|
-
for (var
|
|
223
|
-
for (var v = h; v <=
|
|
224
|
-
var
|
|
225
|
-
if (
|
|
226
|
-
for (var
|
|
227
|
-
var T = d
|
|
228
|
-
|
|
218
|
+
jr = !1;
|
|
219
|
+
}
|
|
220
|
+
function ol(a, t, e, l) {
|
|
221
|
+
jr && $e();
|
|
222
|
+
for (var i = {}, o = [], f = Math.floor(a / Or), h = Math.floor(t / Or), x = Math.floor(e / Or), n = Math.floor(l / Or), g = f; g <= x; g++)
|
|
223
|
+
for (var v = h; v <= n; v++) {
|
|
224
|
+
var u = g + "," + v, s = vt[u];
|
|
225
|
+
if (s)
|
|
226
|
+
for (var d = 0; d < s.length; d++) {
|
|
227
|
+
var T = s[d];
|
|
228
|
+
i[T] || (i[T] = !0, o.push(T));
|
|
229
229
|
}
|
|
230
230
|
}
|
|
231
231
|
return o;
|
|
232
232
|
}
|
|
233
|
-
var
|
|
234
|
-
function
|
|
235
|
-
|
|
236
|
-
for (var a = 0; a <
|
|
237
|
-
|
|
238
|
-
|
|
233
|
+
var ya = {}, sa = !0;
|
|
234
|
+
function Qt() {
|
|
235
|
+
ya = {};
|
|
236
|
+
for (var a = 0; a < W.length; a++)
|
|
237
|
+
ya[W[a].id] = W[a];
|
|
238
|
+
sa = !1;
|
|
239
239
|
}
|
|
240
240
|
function Yo(a) {
|
|
241
|
-
return
|
|
242
|
-
}
|
|
243
|
-
var
|
|
244
|
-
function
|
|
245
|
-
|
|
246
|
-
for (var a = 0; a <
|
|
247
|
-
var
|
|
248
|
-
|
|
241
|
+
return sa && Qt(), ya[a];
|
|
242
|
+
}
|
|
243
|
+
var Er = {}, $t = !0;
|
|
244
|
+
function Hl() {
|
|
245
|
+
Er = {};
|
|
246
|
+
for (var a = 0; a < C.length; a++) {
|
|
247
|
+
var t = C[a];
|
|
248
|
+
Er[t.source] || (Er[t.source] = []), Er[t.source].push(a), t.source !== t.target && (Er[t.target] || (Er[t.target] = []), Er[t.target].push(a));
|
|
249
249
|
}
|
|
250
|
-
|
|
251
|
-
}
|
|
252
|
-
var
|
|
253
|
-
function
|
|
254
|
-
|
|
255
|
-
var
|
|
256
|
-
if (
|
|
257
|
-
|
|
258
|
-
var
|
|
259
|
-
|
|
260
|
-
var
|
|
261
|
-
if (
|
|
262
|
-
|
|
263
|
-
var o =
|
|
264
|
-
|
|
265
|
-
} else if (
|
|
266
|
-
|
|
250
|
+
$t = !1;
|
|
251
|
+
}
|
|
252
|
+
var ua = null, ll = 0, il = 0, fl = "", Za = !0;
|
|
253
|
+
function pl(a) {
|
|
254
|
+
ua || (ua = new OffscreenCanvas(1, 1));
|
|
255
|
+
var t = Math.ceil(a), e = Math.ceil(a);
|
|
256
|
+
if (t < 2 || e < 2) return !1;
|
|
257
|
+
t > 512 && (t = 512), e > 512 && (e = 512), ua.width = t, ua.height = e, ll = t, il = a, fl = Nr, Za = !1;
|
|
258
|
+
var l = ua.getContext("2d");
|
|
259
|
+
l.clearRect(0, 0, t, e);
|
|
260
|
+
var i = Kt || k.grid;
|
|
261
|
+
if (Nr === "dots") {
|
|
262
|
+
l.fillStyle = i;
|
|
263
|
+
var o = da * M.zoom;
|
|
264
|
+
l.beginPath(), l.arc(0, 0, o, 0, 6.2832), l.fill();
|
|
265
|
+
} else if (Nr === "cross") {
|
|
266
|
+
l.strokeStyle = i, l.lineWidth = da;
|
|
267
267
|
var f = 3 * M.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
|
-
|
|
270
|
+
l.beginPath(), l.strokeStyle = i, l.lineWidth = da * 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 Xo = 0,
|
|
273
|
+
var Xo = 0, qe = 0, Ho = 0, po = 0, be = 0, ht = !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) {
|
|
277
277
|
try {
|
|
278
|
-
var
|
|
279
|
-
switch (
|
|
278
|
+
var t = a.data.type, e = a.data.data;
|
|
279
|
+
switch (t) {
|
|
280
280
|
case "init":
|
|
281
|
-
|
|
282
|
-
return
|
|
283
|
-
}), console.log("[worker] init done — canvas:",
|
|
281
|
+
qa = e.canvas, r = qa.getContext("2d"), fr = e.width, vr = e.height, qa.width = fr, qa.height = vr, M = e.camera, Y = e.cards || [], W = e.nodes || [], C = e.edges || [], F = e.dark, e.gridSize && (Ze = e.gridSize), e.edgeRouting !== void 0 && (Vr = !!e.edgeRouting), Ke(), Jt = !0, sa = !0, jr = !0, nt = !0, $t = !0, ht = C.some(function(X) {
|
|
282
|
+
return X.animated;
|
|
283
|
+
}), console.log("[worker] init done — canvas:", fr, "x", vr, "| cards:", Y.length, "| nodes:", W.length, "| edges:", C.length, "| routing:", Vr), Ft(), self.postMessage({ type: "ready" }), ht && rl();
|
|
284
284
|
break;
|
|
285
285
|
case "resize":
|
|
286
|
-
|
|
286
|
+
fr = e.width, vr = e.height, qa.width = fr, qa.height = vr, Za = !0, Ft();
|
|
287
287
|
break;
|
|
288
288
|
case "camera":
|
|
289
|
-
M =
|
|
289
|
+
M = e.camera, Za = !0, $();
|
|
290
290
|
break;
|
|
291
291
|
case "cards":
|
|
292
|
-
|
|
292
|
+
Y = e.cards, Jt = !0, $();
|
|
293
293
|
break;
|
|
294
294
|
case "nodes":
|
|
295
|
-
|
|
296
|
-
for (var
|
|
297
|
-
|
|
298
|
-
|
|
295
|
+
W = e.nodes, Ia = 0;
|
|
296
|
+
for (var l = 0; l < W.length; l++)
|
|
297
|
+
W[l].dragging && Ia++;
|
|
298
|
+
sa = !0, jr = !0, nt = !0, $(), Gt(), self.postMessage({ type: "nodesProcessed", data: { nodeCount: W.length } });
|
|
299
299
|
break;
|
|
300
300
|
case "nodePositions":
|
|
301
|
-
|
|
302
|
-
for (var
|
|
303
|
-
var h =
|
|
301
|
+
sa && Qt();
|
|
302
|
+
for (var i = e.updates, o = 0, f = 0; f < i.length; f++) {
|
|
303
|
+
var h = i[f], x = ya[h.id];
|
|
304
304
|
x && (x.position = h.position, h._absolutePosition && (x._absolutePosition = h._absolutePosition), h.width !== void 0 && (x.width = h.width), h.height !== void 0 && (x.height = h.height), h.dragging && !x.dragging ? o++ : !h.dragging && x.dragging && o--, x.dragging = h.dragging, x.selected = h.selected);
|
|
305
305
|
}
|
|
306
|
-
|
|
306
|
+
if (Ia = Math.max(0, Ia + o), nt = !0, Vr)
|
|
307
|
+
for (var n = 0; n < i.length; n++)
|
|
308
|
+
for (var g = i[n].id, v = 0; v < C.length; v++)
|
|
309
|
+
(C[v].source === g || C[v].target === g) && (C[v]._routedPoints = null);
|
|
310
|
+
i.length > 10 && (jr = !0), Vr && Ia === 0 && o < 0 && (jr = !0, Gt()), $();
|
|
307
311
|
break;
|
|
308
312
|
case "nodeSelections":
|
|
309
|
-
|
|
310
|
-
for (var u =
|
|
311
|
-
var
|
|
312
|
-
|
|
313
|
+
sa && Qt();
|
|
314
|
+
for (var u = e.selections, s = 0; s < u.length; s++) {
|
|
315
|
+
var d = u[s], T = ya[d.id];
|
|
316
|
+
T && (T.selected = d.selected);
|
|
313
317
|
}
|
|
314
318
|
$();
|
|
315
319
|
break;
|
|
316
320
|
case "edgeSelections":
|
|
317
|
-
for (var
|
|
318
|
-
for (var
|
|
319
|
-
if (
|
|
320
|
-
|
|
321
|
+
for (var Z = e.selections, _ = 0; _ < Z.length; _++) {
|
|
322
|
+
for (var K = Z[_], ar = null, tr = 0; tr < C.length; tr++)
|
|
323
|
+
if (C[tr].id === K.id) {
|
|
324
|
+
ar = C[tr];
|
|
321
325
|
break;
|
|
322
326
|
}
|
|
323
|
-
|
|
327
|
+
ar && (ar.selected = K.selected);
|
|
324
328
|
}
|
|
325
329
|
$();
|
|
326
330
|
break;
|
|
327
331
|
case "edges":
|
|
328
|
-
|
|
329
|
-
return
|
|
330
|
-
}),
|
|
332
|
+
C = e.edges, $t = !0, ht = C.some(function(X) {
|
|
333
|
+
return X.animated;
|
|
334
|
+
}), ht && rl(), $(), Gt();
|
|
331
335
|
break;
|
|
332
336
|
case "theme":
|
|
333
|
-
F =
|
|
337
|
+
F = e.dark, Ke(), $();
|
|
334
338
|
break;
|
|
335
339
|
case "connecting":
|
|
336
|
-
|
|
340
|
+
lt = e, $();
|
|
337
341
|
break;
|
|
338
342
|
case "selectionBox":
|
|
339
|
-
|
|
343
|
+
Tr = e, $();
|
|
340
344
|
break;
|
|
341
345
|
case "background":
|
|
342
|
-
|
|
346
|
+
e.variant && (Nr = e.variant), e.gap && (Ze = e.gap), e.size && (da = e.size), Kt = e.color || null, Za = !0, $();
|
|
343
347
|
break;
|
|
344
348
|
case "nodeTypeBitmaps":
|
|
345
|
-
|
|
349
|
+
It = e.bitmaps || {}, $();
|
|
346
350
|
break;
|
|
347
351
|
case "nodeBitmaps":
|
|
348
|
-
|
|
352
|
+
tl = e.cache || {}, it = e.keys || {}, $();
|
|
349
353
|
break;
|
|
350
354
|
case "nodeTypeConfigs":
|
|
351
|
-
|
|
355
|
+
Zt = e.configs || {}, $();
|
|
352
356
|
break;
|
|
353
357
|
case "edgeRouting":
|
|
354
|
-
if (
|
|
355
|
-
|
|
358
|
+
if (Vr = !!e.enabled, Vr)
|
|
359
|
+
Gt();
|
|
356
360
|
else {
|
|
357
|
-
for (var
|
|
358
|
-
|
|
361
|
+
for (var hr = 0; hr < C.length; hr++)
|
|
362
|
+
C[hr]._routedPoints = null;
|
|
359
363
|
$();
|
|
360
364
|
}
|
|
361
365
|
break;
|
|
362
366
|
}
|
|
363
|
-
} catch (
|
|
364
|
-
console.error("[worker] error:",
|
|
367
|
+
} catch (X) {
|
|
368
|
+
console.error("[worker] error:", X);
|
|
365
369
|
}
|
|
366
370
|
};
|
|
367
371
|
function $() {
|
|
368
|
-
|
|
369
|
-
|
|
372
|
+
We || (We = !0, requestAnimationFrame(function() {
|
|
373
|
+
We = !1, Ft();
|
|
370
374
|
}));
|
|
371
375
|
}
|
|
372
|
-
var
|
|
373
|
-
function
|
|
374
|
-
if (
|
|
375
|
-
|
|
376
|
+
var Ge = !1;
|
|
377
|
+
function rl() {
|
|
378
|
+
if (Ge) return;
|
|
379
|
+
Ge = !0;
|
|
376
380
|
function a() {
|
|
377
|
-
if (!
|
|
378
|
-
|
|
381
|
+
if (!ht) {
|
|
382
|
+
Ge = !1;
|
|
379
383
|
return;
|
|
380
384
|
}
|
|
381
|
-
|
|
385
|
+
be = (be + 0.5) % 20, Ft(), requestAnimationFrame(a);
|
|
382
386
|
}
|
|
383
387
|
requestAnimationFrame(a);
|
|
384
388
|
}
|
|
385
|
-
function
|
|
386
|
-
var
|
|
387
|
-
a.moveTo(
|
|
388
|
-
for (var
|
|
389
|
-
var
|
|
390
|
-
if (
|
|
391
|
-
var g = o.x -
|
|
392
|
-
a.lineTo(o.x - g /
|
|
389
|
+
function al(a, t) {
|
|
390
|
+
var e = 6;
|
|
391
|
+
a.moveTo(t[0].x, t[0].y);
|
|
392
|
+
for (var l = 1; l < t.length - 1; l++) {
|
|
393
|
+
var i = t[l - 1], o = t[l], f = t[l + 1], h = Math.abs(o.x - i.x) + Math.abs(o.y - i.y), x = Math.abs(f.x - o.x) + Math.abs(f.y - o.y), n = Math.min(e, h / 2, x / 2);
|
|
394
|
+
if (n > 0.5) {
|
|
395
|
+
var g = o.x - i.x, v = o.y - i.y, u = f.x - o.x, s = f.y - o.y, d = Math.sqrt(g * g + v * v) || 1, T = Math.sqrt(u * u + s * s) || 1;
|
|
396
|
+
a.lineTo(o.x - g / d * n, o.y - v / d * n), a.quadraticCurveTo(o.x, o.y, o.x + u / T * n, o.y + s / T * n);
|
|
393
397
|
} else
|
|
394
398
|
a.lineTo(o.x, o.y);
|
|
395
399
|
}
|
|
396
|
-
a.lineTo(
|
|
397
|
-
}
|
|
398
|
-
function
|
|
399
|
-
for (var
|
|
400
|
-
|
|
401
|
-
for (var
|
|
402
|
-
var o = Math.abs(a[
|
|
403
|
-
if (
|
|
404
|
-
var f = o > 0 ?
|
|
400
|
+
a.lineTo(t[t.length - 1].x, t[t.length - 1].y);
|
|
401
|
+
}
|
|
402
|
+
function ri(a) {
|
|
403
|
+
for (var t = 0, e = 1; e < a.length; e++)
|
|
404
|
+
t += Math.abs(a[e].x - a[e - 1].x) + Math.abs(a[e].y - a[e - 1].y);
|
|
405
|
+
for (var l = t / 2, i = 1; i < a.length; i++) {
|
|
406
|
+
var o = Math.abs(a[i].x - a[i - 1].x) + Math.abs(a[i].y - a[i - 1].y);
|
|
407
|
+
if (l <= o) {
|
|
408
|
+
var f = o > 0 ? l / o : 0;
|
|
405
409
|
return {
|
|
406
|
-
x: a[
|
|
407
|
-
y: a[
|
|
410
|
+
x: a[i - 1].x + (a[i].x - a[i - 1].x) * f,
|
|
411
|
+
y: a[i - 1].y + (a[i].y - a[i - 1].y) * f
|
|
408
412
|
};
|
|
409
413
|
}
|
|
410
|
-
|
|
414
|
+
l -= o;
|
|
411
415
|
}
|
|
412
416
|
return { x: a[0].x, y: a[0].y };
|
|
413
417
|
}
|
|
414
|
-
function
|
|
415
|
-
var
|
|
416
|
-
return { cp1x: f, cp1y: h, cp2x: x, cp2y:
|
|
418
|
+
function Je(a, t, e, l) {
|
|
419
|
+
var i = Math.abs(e - a), o = Math.max(50, i * 0.5), f = a + o, h = t, x = e - o, n = l;
|
|
420
|
+
return { cp1x: f, cp1y: h, cp2x: x, cp2y: n };
|
|
417
421
|
}
|
|
418
|
-
function
|
|
419
|
-
var
|
|
422
|
+
function ai(a, t, e, l) {
|
|
423
|
+
var i = Je(a, t, e, l), o = 0.5, f = 1 - o, h = f * f * f * a + 3 * f * f * o * i.cp1x + 3 * f * o * o * i.cp2x + o * o * o * e, x = f * f * f * t + 3 * f * f * o * i.cp1y + 3 * f * o * o * i.cp2y + o * o * o * l;
|
|
420
424
|
return { x: h, y: x };
|
|
421
425
|
}
|
|
422
|
-
var
|
|
423
|
-
function
|
|
424
|
-
|
|
425
|
-
for (var o = Math.min(a,
|
|
426
|
-
var
|
|
427
|
-
|
|
426
|
+
var Vr = !0, Qe = !1, Ie = !1;
|
|
427
|
+
function vl(a, t, e, l, i) {
|
|
428
|
+
jr && $e();
|
|
429
|
+
for (var o = Math.min(a, e) - 20, f = Math.min(t, l) - 20, h = Math.max(a, e) + 20, x = Math.max(t, l) + 20, n = ol(o, f, h, x), g = [], v = 0; v < n.length; v++) {
|
|
430
|
+
var u = W[n[v]];
|
|
431
|
+
u.hidden || i[u.id] || u.type !== "group" && g.push(u);
|
|
428
432
|
}
|
|
429
433
|
return g;
|
|
430
434
|
}
|
|
431
|
-
function
|
|
432
|
-
for (var
|
|
433
|
-
var h =
|
|
434
|
-
if (
|
|
435
|
+
function Lr(a, t, e, l) {
|
|
436
|
+
for (var i = Math.min(a, t), o = Math.max(a, t), f = 0; f < l.length; f++) {
|
|
437
|
+
var h = l[f], x = y(h), n = h.width || L, g = h.height || B;
|
|
438
|
+
if (e > x.y && e < x.y + g && o > x.x && i < x.x + n) return h;
|
|
435
439
|
}
|
|
436
440
|
return null;
|
|
437
441
|
}
|
|
438
|
-
function
|
|
439
|
-
for (var
|
|
440
|
-
var h =
|
|
441
|
-
if (a > x.x && a < x.x +
|
|
442
|
+
function Sr(a, t, e, l) {
|
|
443
|
+
for (var i = Math.min(t, e), o = Math.max(t, e), f = 0; f < l.length; f++) {
|
|
444
|
+
var h = l[f], x = y(h), n = h.width || L, g = h.height || B;
|
|
445
|
+
if (a > x.x && a < x.x + n && o > x.y && i < x.y + g) return h;
|
|
442
446
|
}
|
|
443
447
|
return null;
|
|
444
448
|
}
|
|
445
|
-
function
|
|
446
|
-
if (
|
|
447
|
-
|
|
448
|
-
for (var a = 20,
|
|
449
|
-
var
|
|
450
|
-
if (!
|
|
451
|
-
var
|
|
452
|
-
if (!(
|
|
453
|
-
var o =
|
|
449
|
+
function ti() {
|
|
450
|
+
if (Vr && !(!Qe || C.length === 0 || W.length === 0)) {
|
|
451
|
+
Qe = !1, sa && Qt(), jr && $e();
|
|
452
|
+
for (var a = 20, t = !1, e = 0; e < C.length; e++) {
|
|
453
|
+
var l = C[e];
|
|
454
|
+
if (!l._customRendered) {
|
|
455
|
+
var i = l.type || "default";
|
|
456
|
+
if (!(i === "bezier" || i === "simplebezier" || i === "default")) {
|
|
457
|
+
var o = ya[l.source], f = ya[l.target];
|
|
454
458
|
if (!(!o || !f || o.hidden || f.hidden)) {
|
|
455
|
-
var h =
|
|
456
|
-
|
|
457
|
-
var
|
|
458
|
-
|
|
459
|
-
var H =
|
|
460
|
-
Math.min(v,
|
|
461
|
-
Math.min(
|
|
462
|
-
Math.max(v,
|
|
463
|
-
Math.max(
|
|
464
|
-
|
|
459
|
+
var h = bt(o, "source", l.sourceHandle), x = bt(f, "target", l.targetHandle), n = h.position || "right", g = x.position || "left", v = h.x, u = h.y, s = x.x, d = x.y, T = v, Z = u, _ = s, K = d;
|
|
460
|
+
n === "right" ? T += a : n === "left" ? T -= a : n === "bottom" ? Z += a : n === "top" && (Z -= a), g === "right" ? _ += a : g === "left" ? _ -= a : g === "bottom" ? K += a : g === "top" && (K -= a);
|
|
461
|
+
var ar = y(o), tr = y(f), hr = o.width || L, X = o.height || B, Yr = f.width || L, xa = f.height || B, Xr = {};
|
|
462
|
+
Xr[l.source] = !0, Xr[l.target] = !0;
|
|
463
|
+
var H = vl(
|
|
464
|
+
Math.min(v, s) - hr,
|
|
465
|
+
Math.min(u, d) - X,
|
|
466
|
+
Math.max(v, s) + Yr,
|
|
467
|
+
Math.max(u, d) + xa,
|
|
468
|
+
Xr
|
|
465
469
|
);
|
|
466
470
|
H.push(o), H.push(f);
|
|
467
|
-
var
|
|
468
|
-
if (
|
|
469
|
-
var
|
|
470
|
-
if (
|
|
471
|
-
|
|
472
|
-
var
|
|
473
|
-
if (
|
|
474
|
-
var
|
|
475
|
-
|
|
471
|
+
var ga = n === "left" || n === "right", Ka = g === "left" || g === "right", q = null;
|
|
472
|
+
if (ga && Ka) {
|
|
473
|
+
var P, sr = n === "right" && T < _, Ut = n === "left" && T > _;
|
|
474
|
+
if (sr || Ut) {
|
|
475
|
+
P = (T + _) / 2;
|
|
476
|
+
var ba = Sr(P, u, d, H);
|
|
477
|
+
if (ba) {
|
|
478
|
+
var Ma = y(ba), ka = ba.width || L;
|
|
479
|
+
P = P < Ma.x + ka / 2 ? Ma.x - a : Ma.x + ka + a;
|
|
476
480
|
}
|
|
477
481
|
} else
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
var
|
|
481
|
-
if (
|
|
482
|
-
var
|
|
483
|
-
|
|
482
|
+
n === "right" ? P = Math.max(ar.x + hr, tr.x + Yr) + a : P = Math.min(ar.x, tr.x) - a;
|
|
483
|
+
q = [{ x: v, y: u }, { x: T, y: u }, { x: P, y: u }, { x: P, y: d }, { x: _, y: d }, { x: s, y: d }];
|
|
484
|
+
var Cr = Lr(P, _, d, H);
|
|
485
|
+
if (Cr) {
|
|
486
|
+
var ma = y(Cr), Ta = Cr.height || B, Ra = ma.y - a, Hr = ma.y + Ta + a, pr = Math.abs(u - Ra) <= Math.abs(u - Hr) ? Ra : Hr;
|
|
487
|
+
q = [{ x: v, y: u }, { x: T, y: u }, { x: P, y: u }, { x: P, y: pr }, { x: _, y: pr }, { x: _, y: d }, { x: s, y: d }];
|
|
484
488
|
}
|
|
485
|
-
} else if (!
|
|
486
|
-
var b,
|
|
487
|
-
if (
|
|
488
|
-
b = (
|
|
489
|
-
var
|
|
490
|
-
if (
|
|
491
|
-
var
|
|
492
|
-
b = b <
|
|
489
|
+
} else if (!ga && !Ka) {
|
|
490
|
+
var b, ut = n === "bottom" && Z < K, Ja = n === "top" && Z > K;
|
|
491
|
+
if (ut || Ja) {
|
|
492
|
+
b = (Z + K) / 2;
|
|
493
|
+
var Wr = Lr(v, s, b, H);
|
|
494
|
+
if (Wr) {
|
|
495
|
+
var Pr = y(Wr), za = Wr.height || B;
|
|
496
|
+
b = b < Pr.y + za / 2 ? Pr.y - a : Pr.y + za + a;
|
|
493
497
|
}
|
|
494
498
|
} else
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
var
|
|
498
|
-
if (
|
|
499
|
-
var
|
|
500
|
-
|
|
499
|
+
n === "bottom" ? b = Math.max(ar.y + X, tr.y + xa) + a : b = Math.min(ar.y, tr.y) - a;
|
|
500
|
+
q = [{ x: v, y: u }, { x: v, y: Z }, { x: v, y: b }, { x: s, y: b }, { x: s, y: K }, { x: s, y: d }];
|
|
501
|
+
var ra = Sr(s, b, K, H);
|
|
502
|
+
if (ra) {
|
|
503
|
+
var wa = y(ra), Qa = ra.height || B, Ba = wa.y - a, Aa = wa.y + Qa + a, _a = Math.abs(b - Ba) <= Math.abs(b - Aa) ? Ba : Aa;
|
|
504
|
+
q = [{ x: v, y: u }, { x: v, y: Z }, { x: v, y: b }, { x: s, y: b }, { x: s, y: _a }, { x: _, y: _a }, { x: _, y: d }, { x: s, y: d }];
|
|
501
505
|
}
|
|
502
|
-
} else if (
|
|
503
|
-
|
|
504
|
-
var
|
|
505
|
-
if (
|
|
506
|
-
var
|
|
507
|
-
|
|
506
|
+
} else if (ga) {
|
|
507
|
+
q = [{ x: v, y: u }, { x: T, y: u }, { x: s, y: u }, { x: s, y: K }, { x: s, y: d }];
|
|
508
|
+
var qr = Sr(s, u, K, H);
|
|
509
|
+
if (qr) {
|
|
510
|
+
var nr = y(qr), Rr = qr.width || L, $a = Math.abs(v - nr.x + a) <= Math.abs(v - nr.x - Rr - a) ? nr.x - a : nr.x + Rr + a;
|
|
511
|
+
q = [{ x: v, y: u }, { x: T, y: u }, { x: $a, y: u }, { x: $a, y: d }, { x: s, y: d }, { x: s, y: K }, { x: s, y: d }];
|
|
508
512
|
}
|
|
509
|
-
var
|
|
510
|
-
if (
|
|
511
|
-
var
|
|
512
|
-
|
|
513
|
+
var aa = Lr(T, s, u, H);
|
|
514
|
+
if (aa) {
|
|
515
|
+
var Gr = y(aa), Ea = aa.height || B, p = Math.abs(d - Gr.y + a) <= Math.abs(d - Gr.y - Ea - a) ? Gr.y - a : Gr.y + Ea + a;
|
|
516
|
+
q = [{ x: v, y: u }, { x: T, y: u }, { x: T, y: p }, { x: s, y: p }, { x: s, y: K }, { x: s, y: d }];
|
|
513
517
|
}
|
|
514
518
|
} else {
|
|
515
|
-
|
|
516
|
-
var
|
|
517
|
-
if (
|
|
518
|
-
var
|
|
519
|
-
|
|
519
|
+
q = [{ x: v, y: u }, { x: v, y: Z }, { x: v, y: d }, { x: _, y: d }, { x: s, y: d }];
|
|
520
|
+
var Ir = Lr(v, _, d, H);
|
|
521
|
+
if (Ir) {
|
|
522
|
+
var La = y(Ir), dr = Ir.height || B, Zr = Math.abs(u - La.y + a) <= Math.abs(u - La.y - dr - a) ? La.y - a : La.y + dr + a;
|
|
523
|
+
q = [{ x: v, y: u }, { x: v, y: Z }, { x: v, y: Zr }, { x: _, y: Zr }, { x: _, y: d }, { x: s, y: d }];
|
|
520
524
|
}
|
|
521
|
-
var
|
|
522
|
-
if (
|
|
523
|
-
var
|
|
524
|
-
|
|
525
|
+
var zr = Sr(v, Z, d, H);
|
|
526
|
+
if (zr) {
|
|
527
|
+
var yr = y(zr), Fa = zr.width || L, Ua = Math.abs(s - yr.x + a) <= Math.abs(s - yr.x - Fa - a) ? yr.x - a : yr.x + Fa + a;
|
|
528
|
+
q = [{ x: v, y: u }, { x: v, y: Z }, { x: Ua, y: Z }, { x: Ua, y: d }, { x: _, y: d }, { x: s, y: d }];
|
|
525
529
|
}
|
|
526
530
|
}
|
|
527
|
-
if (
|
|
528
|
-
for (var
|
|
529
|
-
var
|
|
530
|
-
(Math.abs(
|
|
531
|
+
if (q) {
|
|
532
|
+
for (var ta = [q[0]], xr = 1; xr < q.length; xr++) {
|
|
533
|
+
var st = ta[ta.length - 1];
|
|
534
|
+
(Math.abs(q[xr].x - st.x) > 0.1 || Math.abs(q[xr].y - st.y) > 0.1) && ta.push(q[xr]);
|
|
531
535
|
}
|
|
532
|
-
|
|
536
|
+
l._routedPoints = ta, t = !0;
|
|
533
537
|
}
|
|
534
538
|
}
|
|
535
539
|
}
|
|
536
540
|
}
|
|
537
541
|
}
|
|
538
|
-
|
|
542
|
+
t && $();
|
|
539
543
|
}
|
|
540
544
|
}
|
|
541
|
-
function
|
|
542
|
-
|
|
543
|
-
|
|
545
|
+
function Gt() {
|
|
546
|
+
Vr && (Ie || (Ie = !0, Qe = !0, requestAnimationFrame(function() {
|
|
547
|
+
Ie = !1;
|
|
544
548
|
try {
|
|
545
|
-
|
|
549
|
+
ti();
|
|
546
550
|
} catch (a) {
|
|
547
551
|
console.error("[worker] async routing error:", a);
|
|
548
552
|
}
|
|
549
553
|
})));
|
|
550
554
|
}
|
|
551
|
-
function
|
|
555
|
+
function Ft() {
|
|
552
556
|
if (r) {
|
|
553
557
|
var a = performance.now();
|
|
554
|
-
r.clearRect(0, 0,
|
|
555
|
-
var
|
|
556
|
-
if (
|
|
557
|
-
if (
|
|
558
|
-
if ((
|
|
559
|
-
var
|
|
560
|
-
r.save(), r.translate(
|
|
561
|
-
var
|
|
562
|
-
|
|
558
|
+
r.clearRect(0, 0, fr, vr);
|
|
559
|
+
var t = Ze * M.zoom;
|
|
560
|
+
if (t > 2)
|
|
561
|
+
if (Nr === "lines" && t >= 4 && t <= 512) {
|
|
562
|
+
if ((Za || il !== t || fl !== Nr) && pl(t), ua && ll > 0) {
|
|
563
|
+
var e = (M.x % t + t) % t, l = (M.y % t + t) % t;
|
|
564
|
+
r.save(), r.translate(e, l);
|
|
565
|
+
var i = r.createPattern(ua, "repeat");
|
|
566
|
+
i && (r.fillStyle = i, r.fillRect(-e, -l, fr, vr)), r.restore();
|
|
563
567
|
}
|
|
564
568
|
} else {
|
|
565
|
-
var o = (M.x %
|
|
566
|
-
if (
|
|
569
|
+
var o = (M.x % t + t) % t, f = (M.y % t + t) % t, h = Kt || k.grid;
|
|
570
|
+
if (Nr === "dots") {
|
|
567
571
|
r.fillStyle = h;
|
|
568
|
-
for (var x =
|
|
569
|
-
for (var g = f; g <
|
|
570
|
-
r.beginPath(), r.arc(Math.round(
|
|
571
|
-
} else if (
|
|
572
|
-
r.strokeStyle = h, r.lineWidth =
|
|
572
|
+
for (var x = da * M.zoom, n = o; n < fr; n += t)
|
|
573
|
+
for (var g = f; g < vr; g += t)
|
|
574
|
+
r.beginPath(), r.arc(Math.round(n), Math.round(g), x, 0, 6.2832), r.fill();
|
|
575
|
+
} else if (Nr === "cross") {
|
|
576
|
+
r.strokeStyle = h, r.lineWidth = da;
|
|
573
577
|
var v = 3 * M.zoom;
|
|
574
578
|
r.beginPath();
|
|
575
|
-
for (var
|
|
576
|
-
for (var
|
|
577
|
-
var
|
|
578
|
-
r.moveTo(
|
|
579
|
+
for (var u = o; u < fr; u += t)
|
|
580
|
+
for (var s = f; s < vr; s += t) {
|
|
581
|
+
var d = Math.round(u), T = Math.round(s);
|
|
582
|
+
r.moveTo(d - v, T), r.lineTo(d + v, T), r.moveTo(d, T - v), r.lineTo(d, T + v);
|
|
579
583
|
}
|
|
580
584
|
r.stroke();
|
|
581
585
|
} else {
|
|
582
|
-
var
|
|
583
|
-
r.beginPath(), r.strokeStyle =
|
|
584
|
-
for (var
|
|
585
|
-
var
|
|
586
|
-
r.moveTo(
|
|
586
|
+
var Z = Kt || k.grid;
|
|
587
|
+
r.beginPath(), r.strokeStyle = Z, r.lineWidth = da * 0.5;
|
|
588
|
+
for (var _ = o; _ < fr; _ += t) {
|
|
589
|
+
var K = Math.round(_) + 0.5;
|
|
590
|
+
r.moveTo(K, 0), r.lineTo(K, vr);
|
|
587
591
|
}
|
|
588
|
-
for (var
|
|
589
|
-
var
|
|
590
|
-
r.moveTo(0,
|
|
592
|
+
for (var ar = f; ar < vr; ar += t) {
|
|
593
|
+
var tr = Math.round(ar) + 0.5;
|
|
594
|
+
r.moveTo(0, tr), r.lineTo(fr, tr);
|
|
591
595
|
}
|
|
592
596
|
r.stroke();
|
|
593
597
|
}
|
|
594
598
|
}
|
|
595
599
|
r.beginPath(), r.arc(M.x, M.y, 4 * M.zoom, 0, 6.2832), r.fillStyle = k.origin, r.fill(), r.save(), r.translate(M.x, M.y), r.scale(M.zoom, M.zoom);
|
|
596
|
-
var
|
|
597
|
-
if (
|
|
598
|
-
var
|
|
599
|
-
if (
|
|
600
|
+
var hr = 100, X = -M.x / M.zoom, Yr = -M.y / M.zoom, xa = X + fr / M.zoom, Xr = Yr + vr / M.zoom, H = X - hr, ga = Yr - hr, Ka = xa + hr, q = Xr + hr;
|
|
601
|
+
if (Y.length > 0) {
|
|
602
|
+
var P = jo(X, Yr, xa, Xr), sr = P.length, Ut = M.zoom > 0.15, ba = M.zoom > 0.3, Ma = M.zoom > 0.08 && sr < 200;
|
|
603
|
+
if (Ma) {
|
|
600
604
|
r.shadowColor = k.cardShadow, r.shadowBlur = 6, r.shadowOffsetY = 2, r.fillStyle = k.cardBg, r.beginPath();
|
|
601
|
-
for (var
|
|
602
|
-
var
|
|
603
|
-
r.roundRect(
|
|
605
|
+
for (var ka = 0; ka < sr; ka++) {
|
|
606
|
+
var Cr = Y[P[ka]];
|
|
607
|
+
r.roundRect(Cr.x, Cr.y, Cr.w, Cr.h, ot);
|
|
604
608
|
}
|
|
605
609
|
r.fill(), r.shadowColor = "transparent", r.shadowBlur = 0, r.shadowOffsetY = 0;
|
|
606
610
|
}
|
|
607
|
-
if (!
|
|
611
|
+
if (!Ma) {
|
|
608
612
|
r.fillStyle = k.cardBg, r.beginPath();
|
|
609
|
-
for (var
|
|
610
|
-
var
|
|
611
|
-
r.roundRect(
|
|
613
|
+
for (var ma = 0; ma < sr; ma++) {
|
|
614
|
+
var Ta = Y[P[ma]];
|
|
615
|
+
r.roundRect(Ta.x, Ta.y, Ta.w, Ta.h, ot);
|
|
612
616
|
}
|
|
613
617
|
r.fill();
|
|
614
618
|
}
|
|
615
619
|
r.strokeStyle = k.cardBorder, r.lineWidth = 0.5, r.beginPath();
|
|
616
|
-
for (var
|
|
617
|
-
var
|
|
618
|
-
r.roundRect(
|
|
620
|
+
for (var Ra = 0; Ra < sr; Ra++) {
|
|
621
|
+
var Hr = Y[P[Ra]];
|
|
622
|
+
r.roundRect(Hr.x, Hr.y, Hr.w, Hr.h, ot);
|
|
619
623
|
}
|
|
620
624
|
r.stroke();
|
|
621
|
-
for (var
|
|
622
|
-
var
|
|
623
|
-
|
|
625
|
+
for (var pr = [{}, {}, {}, {}], b = 0; b < sr; b++) {
|
|
626
|
+
var ut = P[b], Ja = ut % 4;
|
|
627
|
+
pr[Ja].items || (pr[Ja].items = []), pr[Ja].items.push(Y[ut]);
|
|
624
628
|
}
|
|
625
|
-
for (var
|
|
626
|
-
var
|
|
627
|
-
if (!(!
|
|
628
|
-
r.fillStyle =
|
|
629
|
-
for (var
|
|
630
|
-
var
|
|
631
|
-
r.roundRect(
|
|
629
|
+
for (var Wr = 0; Wr < 4; Wr++) {
|
|
630
|
+
var Pr = pr[Wr].items;
|
|
631
|
+
if (!(!Pr || Pr.length === 0)) {
|
|
632
|
+
r.fillStyle = Nl[Wr], r.beginPath();
|
|
633
|
+
for (var za = 0; za < Pr.length; za++) {
|
|
634
|
+
var ra = Pr[za];
|
|
635
|
+
r.roundRect(ra.x, ra.y, ra.w, 30, [ot, ot, 0, 0]);
|
|
632
636
|
}
|
|
633
637
|
r.fill();
|
|
634
638
|
}
|
|
635
639
|
}
|
|
636
|
-
if (
|
|
637
|
-
r.fillStyle = k.titleText, r.font =
|
|
638
|
-
for (var
|
|
639
|
-
var
|
|
640
|
-
r.fillText(
|
|
640
|
+
if (Ut) {
|
|
641
|
+
r.fillStyle = k.titleText, r.font = Dl;
|
|
642
|
+
for (var wa = 0; wa < sr; wa++) {
|
|
643
|
+
var Qa = Y[P[wa]];
|
|
644
|
+
r.fillText(Qa.title, Qa.x + 12, Qa.y + 19);
|
|
641
645
|
}
|
|
642
|
-
r.fillStyle = k.bodyText, r.font =
|
|
643
|
-
for (var
|
|
644
|
-
var
|
|
645
|
-
r.fillText(
|
|
646
|
+
r.fillStyle = k.bodyText, r.font = Ol;
|
|
647
|
+
for (var Ba = 0; Ba < sr; Ba++) {
|
|
648
|
+
var Aa = Y[P[Ba]];
|
|
649
|
+
r.fillText(Aa.body, Aa.x + 12, Aa.y + 52);
|
|
646
650
|
}
|
|
647
|
-
if (
|
|
648
|
-
r.fillStyle = k.coordText, r.font =
|
|
649
|
-
for (var
|
|
650
|
-
var
|
|
651
|
-
r.fillText("(" +
|
|
651
|
+
if (ba) {
|
|
652
|
+
r.fillStyle = k.coordText, r.font = jl;
|
|
653
|
+
for (var _a = 0; _a < sr; _a++) {
|
|
654
|
+
var qr = Y[P[_a]];
|
|
655
|
+
r.fillText("(" + qr.x + ", " + qr.y + ")", qr.x + 12, qr.y + 75);
|
|
652
656
|
}
|
|
653
657
|
}
|
|
654
658
|
}
|
|
655
659
|
}
|
|
656
|
-
var
|
|
657
|
-
if (
|
|
658
|
-
if (
|
|
659
|
-
for (var
|
|
660
|
-
var
|
|
661
|
-
|
|
660
|
+
var nr = [], Rr = null;
|
|
661
|
+
if (W.length > 0)
|
|
662
|
+
if (Rr = {}, W.length > 100)
|
|
663
|
+
for (var $a = ol(H, ga, Ka, q), aa = 0; aa < $a.length; aa++) {
|
|
664
|
+
var Gr = W[$a[aa]];
|
|
665
|
+
Rr[Gr.id] = !0, Gr._customRendered || nr.push(Gr);
|
|
662
666
|
}
|
|
663
667
|
else
|
|
664
|
-
for (var
|
|
665
|
-
var p =
|
|
668
|
+
for (var Ea = 0; Ea < W.length; Ea++) {
|
|
669
|
+
var p = W[Ea];
|
|
666
670
|
if (!p.hidden) {
|
|
667
|
-
var
|
|
668
|
-
y(p).x +
|
|
671
|
+
var Ir = p.width || L, La = p.height || B;
|
|
672
|
+
y(p).x + Ir < H || y(p).x > Ka || y(p).y + La < ga || y(p).y > q || (Rr[p.id] = !0, p._customRendered || nr.push(p));
|
|
669
673
|
}
|
|
670
674
|
}
|
|
671
|
-
var
|
|
672
|
-
if (
|
|
673
|
-
let
|
|
674
|
-
if (
|
|
675
|
+
var dr = nr.length;
|
|
676
|
+
if (C.length > 0 && W.length > 0) {
|
|
677
|
+
let qt = function(cr, No) {
|
|
678
|
+
if (cr.length) {
|
|
675
679
|
r.fillStyle = No, r.beginPath();
|
|
676
|
-
for (var
|
|
677
|
-
var
|
|
678
|
-
r.moveTo(
|
|
680
|
+
for (var Ce = 0; Ce < cr.length; Ce++) {
|
|
681
|
+
var j = cr[Ce];
|
|
682
|
+
r.moveTo(j.x, j.y), r.lineTo(j.x - j.size * Math.cos(j.angle - 0.5236), j.y - j.size * Math.sin(j.angle - 0.5236)), r.lineTo(j.x - j.size * Math.cos(j.angle + 0.5236), j.y - j.size * Math.sin(j.angle + 0.5236)), r.closePath();
|
|
679
683
|
}
|
|
680
684
|
r.fill();
|
|
681
685
|
}
|
|
682
686
|
};
|
|
683
|
-
var
|
|
684
|
-
|
|
685
|
-
var
|
|
686
|
-
if (
|
|
687
|
-
var
|
|
688
|
-
|
|
689
|
-
for (var
|
|
690
|
-
var
|
|
691
|
-
if (
|
|
692
|
-
for (var
|
|
693
|
-
var
|
|
694
|
-
|
|
687
|
+
var ei = qt;
|
|
688
|
+
$t && Hl();
|
|
689
|
+
var Zr = null, zr = null, yr = null, Fa = [], Ua = [], ta = [], xr = [], st = M.zoom > 0.3, hl = M.zoom > 0.05, ea;
|
|
690
|
+
if (Rr && W.length > 100) {
|
|
691
|
+
var dt = {};
|
|
692
|
+
ea = [];
|
|
693
|
+
for (var nl in Rr) {
|
|
694
|
+
var ct = Er[nl];
|
|
695
|
+
if (ct)
|
|
696
|
+
for (var Vt = 0; Vt < ct.length; Vt++) {
|
|
697
|
+
var Nt = ct[Vt];
|
|
698
|
+
dt[Nt] || (dt[Nt] = !0, ea.push(Nt));
|
|
695
699
|
}
|
|
696
700
|
}
|
|
697
|
-
for (var rr = 0; rr <
|
|
698
|
-
var
|
|
699
|
-
if ((
|
|
700
|
-
var
|
|
701
|
-
if (
|
|
702
|
-
for (var
|
|
703
|
-
|
|
701
|
+
for (var rr = 0; rr < W.length; rr++) {
|
|
702
|
+
var yt = W[rr];
|
|
703
|
+
if ((yt.dragging || yt.selected) && !Rr[yt.id]) {
|
|
704
|
+
var ca = Er[yt.id];
|
|
705
|
+
if (ca)
|
|
706
|
+
for (var Va = 0; Va < ca.length; Va++)
|
|
707
|
+
dt[ca[Va]] || (dt[ca[Va]] = !0, ea.push(ca[Va]));
|
|
704
708
|
}
|
|
705
709
|
}
|
|
706
710
|
} else {
|
|
707
|
-
|
|
708
|
-
for (var
|
|
711
|
+
ea = [];
|
|
712
|
+
for (var Dt = 0; Dt < C.length; Dt++) ea.push(Dt);
|
|
709
713
|
}
|
|
710
|
-
for (var
|
|
711
|
-
var
|
|
712
|
-
if (!(!
|
|
713
|
-
var
|
|
714
|
-
|
|
715
|
-
var Q =
|
|
714
|
+
for (var Ot = 0; Ot < ea.length; Ot++) {
|
|
715
|
+
var D = C[ea[Ot]], oa = Yo(D.source), la = Yo(D.target);
|
|
716
|
+
if (!(!oa || !la) && !(oa.hidden || la.hidden) && !D._customRendered) {
|
|
717
|
+
var xt = bt(oa, "source", D.sourceHandle), gt = bt(la, "target", D.targetHandle), A = xt.x, w = xt.y, R = gt.x, z = gt.y, gr = D.type || "default", Fe = D.selected, Ue = D.animated, J;
|
|
718
|
+
Fe ? (zr || (zr = new Path2D()), J = zr) : Ue ? (yr || (yr = new Path2D()), J = yr) : (Zr || (Zr = new Path2D()), J = Zr);
|
|
719
|
+
var Q = D._routedPoints;
|
|
716
720
|
if (Q && Q.length >= 2)
|
|
717
|
-
|
|
718
|
-
else if (
|
|
719
|
-
J.moveTo(
|
|
720
|
-
else if (
|
|
721
|
+
al(J, Q);
|
|
722
|
+
else if (gr === "straight")
|
|
723
|
+
J.moveTo(A, w), J.lineTo(R, z);
|
|
724
|
+
else if (gr === "step" || gr === "smoothstep")
|
|
721
725
|
try {
|
|
722
|
-
var
|
|
723
|
-
|
|
724
|
-
var
|
|
725
|
-
|
|
726
|
-
var
|
|
727
|
-
Math.min(
|
|
728
|
-
Math.min(w, z) -
|
|
729
|
-
Math.max(
|
|
730
|
-
Math.max(w, z) +
|
|
731
|
-
|
|
726
|
+
var er = xt.position || "right", Sa = gt.position || "left", m = 20, U = A, O = w, c = R, or = z;
|
|
727
|
+
er === "right" ? U += m : er === "left" ? U -= m : er === "bottom" ? O += m : er === "top" && (O -= m), Sa === "right" ? c += m : Sa === "left" ? c -= m : Sa === "bottom" ? or += m : Sa === "top" && (or -= m);
|
|
728
|
+
var Mt = y(oa), kt = y(la), Na = oa.width || L, Da = oa.height || B, ce = la.width || L, Ve = la.height || B, jt = er === "left" || er === "right", Ne = Sa === "left" || Sa === "right", Yt = {};
|
|
729
|
+
Yt[D.source] = !0, Yt[D.target] = !0;
|
|
730
|
+
var lr = vl(
|
|
731
|
+
Math.min(A, R) - Na,
|
|
732
|
+
Math.min(w, z) - Da,
|
|
733
|
+
Math.max(A, R) + ce,
|
|
734
|
+
Math.max(w, z) + Ve,
|
|
735
|
+
Yt
|
|
732
736
|
);
|
|
733
|
-
|
|
734
|
-
var
|
|
735
|
-
if (
|
|
736
|
-
var V,
|
|
737
|
-
if (
|
|
737
|
+
lr.push(oa), lr.push(la);
|
|
738
|
+
var I = [];
|
|
739
|
+
if (jt && Ne) {
|
|
740
|
+
var V, ul = er === "right" && U < c, sl = er === "left" && U > c;
|
|
741
|
+
if (ul || sl) {
|
|
738
742
|
V = (U + c) / 2;
|
|
739
|
-
var
|
|
740
|
-
if (
|
|
741
|
-
var
|
|
742
|
-
V <
|
|
743
|
+
var Xt = Sr(V, w, z, lr);
|
|
744
|
+
if (Xt) {
|
|
745
|
+
var Ht = y(Xt), Ir = Xt.width || L;
|
|
746
|
+
V < Ht.x + Ir / 2 ? V = Ht.x - m : V = Ht.x + Ir + m;
|
|
743
747
|
}
|
|
744
748
|
} else
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
var
|
|
748
|
-
if (
|
|
749
|
-
var
|
|
750
|
-
|
|
749
|
+
er === "right" ? V = Math.max(Mt.x + Na, kt.x + ce) + m : V = Math.min(Mt.x, kt.x) - m;
|
|
750
|
+
I = [{ x: U, y: w }, { x: V, y: w }, { x: V, y: z }, { x: c, y: z }];
|
|
751
|
+
var pt = Lr(V, c, z, lr);
|
|
752
|
+
if (pt) {
|
|
753
|
+
var De = y(pt), dl = pt.height || B, Oe = De.y - m, je = De.y + dl + m, Ye = Math.abs(w - Oe) <= Math.abs(w - je) ? Oe : je;
|
|
754
|
+
I = [
|
|
751
755
|
{ x: U, y: w },
|
|
752
756
|
{ x: V, y: w },
|
|
753
|
-
{ x: V, y:
|
|
754
|
-
{ x: c, y:
|
|
757
|
+
{ x: V, y: Ye },
|
|
758
|
+
{ x: c, y: Ye },
|
|
755
759
|
{ x: c, y: z }
|
|
756
760
|
];
|
|
757
761
|
}
|
|
758
|
-
var
|
|
759
|
-
if (
|
|
760
|
-
var
|
|
761
|
-
|
|
762
|
+
var re = Lr(U, V, w, lr);
|
|
763
|
+
if (re) {
|
|
764
|
+
var Xe = y(re), yl = re.height || B, He = Xe.y - m, pe = Xe.y + yl + m, ro = Math.abs(z - He) <= Math.abs(z - pe) ? He : pe;
|
|
765
|
+
I.splice(
|
|
762
766
|
1,
|
|
763
767
|
0,
|
|
764
768
|
{ x: U, y: ro },
|
|
765
769
|
{ x: V, y: ro }
|
|
766
|
-
),
|
|
767
|
-
return !(Math.abs(
|
|
768
|
-
}),
|
|
770
|
+
), I = I.filter(function(cr, No) {
|
|
771
|
+
return !(Math.abs(cr.x - V) < 1 && Math.abs(cr.y - w) < 1);
|
|
772
|
+
}), I.splice(0, 0, { x: U, y: w });
|
|
769
773
|
}
|
|
770
|
-
} else if (!
|
|
771
|
-
var N,
|
|
772
|
-
if (
|
|
773
|
-
N = (
|
|
774
|
-
var
|
|
775
|
-
if (
|
|
776
|
-
var
|
|
777
|
-
N <
|
|
774
|
+
} else if (!jt && !Ne) {
|
|
775
|
+
var N, xl = er === "bottom" && O < or, gl = er === "top" && O > or;
|
|
776
|
+
if (xl || gl) {
|
|
777
|
+
N = (O + or) / 2;
|
|
778
|
+
var ae = Lr(A, R, N, lr);
|
|
779
|
+
if (ae) {
|
|
780
|
+
var te = y(ae), ao = ae.height || B;
|
|
781
|
+
N < te.y + ao / 2 ? N = te.y - m : N = te.y + ao + m;
|
|
778
782
|
}
|
|
779
783
|
} else
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
var
|
|
783
|
-
if (
|
|
784
|
-
var
|
|
785
|
-
|
|
786
|
-
{ x:
|
|
787
|
-
{ x:
|
|
788
|
-
{ x:
|
|
784
|
+
er === "bottom" ? N = Math.max(Mt.y + Da, kt.y + Ve) + m : N = Math.min(Mt.y, kt.y) - m;
|
|
785
|
+
I = [{ x: A, y: O }, { x: A, y: N }, { x: R, y: N }, { x: R, y: or }];
|
|
786
|
+
var ee = Sr(A, O, N, lr);
|
|
787
|
+
if (ee) {
|
|
788
|
+
var to = y(ee), Ml = ee.width || L, eo = to.x - m, oo = to.x + Ml + m, lo = Math.abs(R - eo) <= Math.abs(R - oo) ? eo : oo;
|
|
789
|
+
I = [
|
|
790
|
+
{ x: A, y: O },
|
|
791
|
+
{ x: lo, y: O },
|
|
792
|
+
{ x: lo, y: N },
|
|
789
793
|
{ x: R, y: N },
|
|
790
|
-
{ x: R, y:
|
|
794
|
+
{ x: R, y: or }
|
|
791
795
|
];
|
|
792
796
|
}
|
|
793
|
-
var
|
|
794
|
-
if (
|
|
795
|
-
var
|
|
796
|
-
|
|
797
|
-
|
|
797
|
+
var oe = Sr(R, N, or, lr);
|
|
798
|
+
if (oe) {
|
|
799
|
+
var io = y(oe), kl = oe.height || B, fo = io.y - m, vo = io.y + kl + m, ml = Math.abs(N - fo) <= Math.abs(N - vo) ? fo : vo;
|
|
800
|
+
I.splice(
|
|
801
|
+
I.length - 1,
|
|
798
802
|
0,
|
|
799
|
-
{ x: c, y:
|
|
803
|
+
{ x: c, y: ml }
|
|
800
804
|
);
|
|
801
805
|
}
|
|
802
|
-
} else if (
|
|
803
|
-
|
|
804
|
-
var
|
|
805
|
-
if (
|
|
806
|
-
var ho = y(
|
|
807
|
-
|
|
806
|
+
} else if (jt) {
|
|
807
|
+
I = [{ x: U, y: w }, { x: R, y: w }, { x: R, y: or }];
|
|
808
|
+
var le = Sr(R, w, or, lr);
|
|
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 }];
|
|
808
812
|
}
|
|
809
|
-
var
|
|
810
|
-
if (
|
|
811
|
-
var yo = y(
|
|
812
|
-
|
|
813
|
+
var ie = Lr(U, R, w, lr);
|
|
814
|
+
if (ie) {
|
|
815
|
+
var yo = y(ie), Rl = ie.height || B, xo = yo.y - m, go = yo.y + Rl + m, Mo = Math.abs(z - xo) <= Math.abs(z - go) ? xo : go;
|
|
816
|
+
I = [{ x: U, y: w }, { x: U, y: Mo }, { x: R, y: Mo }, { x: R, y: or }];
|
|
813
817
|
}
|
|
814
818
|
} else {
|
|
815
|
-
|
|
816
|
-
var
|
|
817
|
-
if (
|
|
818
|
-
var ko = y(
|
|
819
|
-
|
|
819
|
+
I = [{ x: A, y: O }, { x: A, y: z }, { x: c, y: z }];
|
|
820
|
+
var fe = Lr(A, c, z, lr);
|
|
821
|
+
if (fe) {
|
|
822
|
+
var ko = y(fe), zl = fe.height || B, mo = ko.y - m, To = ko.y + zl + m, Ro = Math.abs(w - mo) <= Math.abs(w - To) ? mo : To;
|
|
823
|
+
I = [{ x: A, y: O }, { x: A, y: Ro }, { x: c, y: Ro }, { x: c, y: z }];
|
|
820
824
|
}
|
|
821
|
-
var
|
|
822
|
-
if (
|
|
823
|
-
var zo = y(
|
|
824
|
-
|
|
825
|
+
var ve = Sr(A, O, z, lr);
|
|
826
|
+
if (ve) {
|
|
827
|
+
var zo = y(ve), wl = ve.width || L, wo = zo.x - m, Bo = zo.x + wl + m, Ao = Math.abs(R - wo) <= Math.abs(R - Bo) ? wo : Bo;
|
|
828
|
+
I = [{ x: A, y: O }, { x: Ao, y: O }, { x: Ao, y: z }, { x: c, y: z }];
|
|
825
829
|
}
|
|
826
830
|
}
|
|
827
|
-
for (var
|
|
828
|
-
|
|
829
|
-
for (var
|
|
830
|
-
var
|
|
831
|
-
(Math.abs(
|
|
831
|
+
for (var ia = [{ x: A, y: w }], he = 0; he < I.length; he++) ia.push(I[he]);
|
|
832
|
+
ia.push({ x: R, y: z });
|
|
833
|
+
for (var ir = [ia[0]], Oa = 1; Oa < ia.length; Oa++) {
|
|
834
|
+
var ja = ir[ir.length - 1];
|
|
835
|
+
(Math.abs(ia[Oa].x - ja.x) > 0.1 || Math.abs(ia[Oa].y - ja.y) > 0.1) && ir.push(ia[Oa]);
|
|
832
836
|
}
|
|
833
|
-
var _o =
|
|
834
|
-
J.moveTo(
|
|
835
|
-
for (var rr = 1; rr <
|
|
836
|
-
if (_o > 0 && rr > 0 && rr <
|
|
837
|
-
var
|
|
838
|
-
if (Math.abs(
|
|
837
|
+
var _o = gr === "smoothstep" ? 8 : 0;
|
|
838
|
+
J.moveTo(ir[0].x, ir[0].y);
|
|
839
|
+
for (var rr = 1; rr < ir.length; rr++)
|
|
840
|
+
if (_o > 0 && rr > 0 && rr < ir.length - 1) {
|
|
841
|
+
var wr = ir[rr - 1], S = ir[rr], Kr = ir[rr + 1];
|
|
842
|
+
if (Math.abs(wr.x - S.x) < 0.5 && Math.abs(S.x - Kr.x) < 0.5 || Math.abs(wr.y - S.y) < 0.5 && Math.abs(S.y - Kr.y) < 0.5)
|
|
839
843
|
J.lineTo(S.x, S.y);
|
|
840
844
|
else {
|
|
841
|
-
var
|
|
842
|
-
Math.abs(
|
|
845
|
+
var mt = Math.min(Math.hypot(wr.x - S.x, wr.y - S.y) / 2, Math.hypot(S.x - Kr.x, S.y - Kr.y) / 2, _o);
|
|
846
|
+
Math.abs(wr.y - S.y) < 0.5 ? (J.lineTo(S.x + (wr.x < Kr.x ? -1 : 1) * mt, S.y), J.quadraticCurveTo(S.x, S.y, S.x, S.y + (wr.y < Kr.y ? 1 : -1) * mt)) : (J.lineTo(S.x, S.y + (wr.y < Kr.y ? -1 : 1) * mt), J.quadraticCurveTo(S.x, S.y, S.x + (wr.x < Kr.x ? 1 : -1) * mt, S.y));
|
|
843
847
|
}
|
|
844
848
|
} else
|
|
845
|
-
J.lineTo(
|
|
846
|
-
} catch (
|
|
847
|
-
console.error("[worker] smoothstep error:",
|
|
849
|
+
J.lineTo(ir[rr].x, ir[rr].y);
|
|
850
|
+
} catch (cr) {
|
|
851
|
+
console.error("[worker] smoothstep error:", cr, "edge:", D.id);
|
|
848
852
|
}
|
|
849
853
|
else {
|
|
850
|
-
var
|
|
851
|
-
|
|
852
|
-
var
|
|
853
|
-
J.moveTo(
|
|
854
|
+
var br = xt.position || "right", Jr = gt.position || "left", Qr = 20, Ya = A, Tt = w, Xa = R, Rt = z;
|
|
855
|
+
br === "right" ? Ya += Qr : br === "left" ? Ya -= Qr : br === "bottom" ? Tt += Qr : br === "top" && (Tt -= Qr), Jr === "right" ? Xa += Qr : Jr === "left" ? Xa -= Qr : Jr === "bottom" ? Rt += Qr : Jr === "top" && (Rt -= Qr);
|
|
856
|
+
var Bl = Math.abs(Xa - Ya), $r = Math.max(50, Bl * 0.5), Al = Ya + (br === "left" ? -$r : br === "right" ? $r : 0), _l = Tt + (br === "top" ? -$r : br === "bottom" ? $r : 0), El = Xa + (Jr === "left" ? -$r : Jr === "right" ? $r : 0), Ll = Rt + (Jr === "top" ? -$r : Jr === "bottom" ? $r : 0);
|
|
857
|
+
J.moveTo(A, w), J.lineTo(Ya, Tt), J.bezierCurveTo(Al, _l, El, Ll, Xa, Rt), J.lineTo(R, z);
|
|
854
858
|
}
|
|
855
|
-
if (
|
|
856
|
-
var
|
|
859
|
+
if (hl) {
|
|
860
|
+
var Sl = 8, Ha;
|
|
857
861
|
if (Q && Q.length >= 2) {
|
|
858
|
-
var
|
|
859
|
-
|
|
860
|
-
} else if (
|
|
861
|
-
|
|
862
|
-
else if (
|
|
863
|
-
|
|
862
|
+
var ja = Q[Q.length - 1], Eo = Q[Q.length - 2];
|
|
863
|
+
Ha = Math.atan2(ja.y - Eo.y, ja.x - Eo.x);
|
|
864
|
+
} else if (gr === "straight")
|
|
865
|
+
Ha = Math.atan2(z - w, R - A);
|
|
866
|
+
else if (gr === "step" || gr === "smoothstep")
|
|
867
|
+
Ha = 0;
|
|
864
868
|
else {
|
|
865
|
-
var Lo =
|
|
866
|
-
|
|
869
|
+
var Lo = Je(A, w, R, z);
|
|
870
|
+
Ha = Math.atan2(z - Lo.cp2y, R - Lo.cp2x);
|
|
867
871
|
}
|
|
868
|
-
var So = Q && Q.length >= 2 ? Q[Q.length - 1] : { x: R, y: z },
|
|
869
|
-
|
|
872
|
+
var So = Q && Q.length >= 2 ? Q[Q.length - 1] : { x: R, y: z }, ne = { x: So.x, y: So.y, angle: Ha, size: Sl };
|
|
873
|
+
Fe ? Ua.push(ne) : Ue ? ta.push(ne) : Fa.push(ne);
|
|
870
874
|
}
|
|
871
|
-
if (
|
|
872
|
-
var
|
|
873
|
-
Q && Q.length >= 2 ?
|
|
875
|
+
if (st && D.label) {
|
|
876
|
+
var pa;
|
|
877
|
+
Q && Q.length >= 2 ? pa = ri(Q) : gr === "straight" || gr === "step" || gr === "smoothstep" ? pa = { x: (A + R) / 2, y: (w + z) / 2 } : pa = ai(A, w, R, z), xr.push({ text: D.label, x: pa.x, y: pa.y });
|
|
874
878
|
}
|
|
875
879
|
}
|
|
876
880
|
}
|
|
877
|
-
if (
|
|
878
|
-
r.font =
|
|
879
|
-
for (var
|
|
880
|
-
var
|
|
881
|
-
r.fillStyle = F ? "#2a2a2a" : "#ffffff", r.fillRect(
|
|
881
|
+
if (Zr && (r.strokeStyle = k.edgeStroke, r.lineWidth = 1.5, r.setLineDash([]), r.stroke(Zr)), yr && (r.strokeStyle = k.edgeAnimated, r.lineWidth = 1.5, r.setLineDash([5, 5]), r.lineDashOffset = -be, r.stroke(yr), r.setLineDash([])), zr && (r.strokeStyle = k.edgeSelected, r.lineWidth = 2.5, r.setLineDash([]), r.stroke(zr)), qt(Fa, k.edgeStroke), qt(ta, k.edgeAnimated), qt(Ua, k.edgeSelected), xr.length > 0) {
|
|
882
|
+
r.font = Yl, r.textAlign = "center", r.textBaseline = "middle";
|
|
883
|
+
for (var ue = 0; ue < xr.length; ue++) {
|
|
884
|
+
var Ca = xr[ue], Cl = r.measureText(Ca.text), Co = Cl.width + 12;
|
|
885
|
+
r.fillStyle = F ? "#2a2a2a" : "#ffffff", r.fillRect(Ca.x - Co / 2, Ca.y - 9, Co, 18), r.fillStyle = k.nodeText, r.fillText(Ca.text, Ca.x, Ca.y);
|
|
882
886
|
}
|
|
883
887
|
r.textAlign = "start", r.textBaseline = "alphabetic";
|
|
884
888
|
}
|
|
885
889
|
}
|
|
886
|
-
if (
|
|
890
|
+
if (lt) {
|
|
887
891
|
r.beginPath(), r.strokeStyle = k.connectionLine, r.lineWidth = 2, r.setLineDash([6, 4]);
|
|
888
|
-
var
|
|
889
|
-
if (
|
|
892
|
+
var se = lt._routedPoints;
|
|
893
|
+
if (se && se.length >= 2) {
|
|
890
894
|
var Wo = new Path2D();
|
|
891
|
-
|
|
895
|
+
al(Wo, se), r.stroke(Wo);
|
|
892
896
|
} else {
|
|
893
|
-
var
|
|
894
|
-
r.moveTo(
|
|
897
|
+
var zt = lt.from, wt = lt.to, Bt = Je(zt.x, zt.y, wt.x, wt.y);
|
|
898
|
+
r.moveTo(zt.x, zt.y), r.bezierCurveTo(Bt.cp1x, Bt.cp1y, Bt.cp2x, Bt.cp2y, wt.x, wt.y), r.stroke();
|
|
895
899
|
}
|
|
896
900
|
r.setLineDash([]);
|
|
897
901
|
}
|
|
898
|
-
if (
|
|
899
|
-
var Po = Math.min(
|
|
900
|
-
r.fillStyle = F ? "rgba(59,130,246,0.08)" : "rgba(59,130,246,0.06)", r.fillRect(Po, qo,
|
|
902
|
+
if (Tr) {
|
|
903
|
+
var Po = Math.min(Tr.startWorld.x, Tr.endWorld.x), qo = Math.min(Tr.startWorld.y, Tr.endWorld.y), Na = Math.abs(Tr.endWorld.x - Tr.startWorld.x), Da = Math.abs(Tr.endWorld.y - Tr.startWorld.y);
|
|
904
|
+
r.fillStyle = F ? "rgba(59,130,246,0.08)" : "rgba(59,130,246,0.06)", r.fillRect(Po, qo, Na, Da), r.strokeStyle = "#3b82f6", r.lineWidth = 1 / M.zoom, r.setLineDash([]), r.strokeRect(Po, qo, Na, Da);
|
|
901
905
|
}
|
|
902
|
-
if (
|
|
903
|
-
var Go =
|
|
904
|
-
if (
|
|
905
|
-
|
|
906
|
-
for (var
|
|
907
|
-
var
|
|
908
|
-
|
|
906
|
+
if (dr > 0) {
|
|
907
|
+
var Go = Ia > 0, fa = M.zoom > 0.12 && (M.zoom > 0.25 || dr < 500), de = !Go && M.zoom > 0.08 && dr < 200, Wl = !Go && M.zoom > 0.2 && dr < 300, Pl = Object.keys(It).length > 0 || Object.keys(it).length > 0 || Object.keys(Zt).length > 0, Fr = nr, At = [], _t = [];
|
|
908
|
+
if (Pl) {
|
|
909
|
+
Fr = [];
|
|
910
|
+
for (var ye = 0; ye < dr; ye++) {
|
|
911
|
+
var Ur = nr[ye];
|
|
912
|
+
it[Ur.id] || Ur.type && It[Ur.type] ? At.push(Ur) : Ur.type && Zt[Ur.type] ? _t.push(Ur) : Fr.push(Ur);
|
|
909
913
|
}
|
|
910
914
|
}
|
|
911
|
-
var
|
|
912
|
-
if (
|
|
915
|
+
var rt = Fr.length;
|
|
916
|
+
if (de) {
|
|
913
917
|
r.shadowColor = k.nodeShadow, r.shadowBlur = 6, r.shadowOffsetY = 2, r.fillStyle = k.nodeBg, r.beginPath();
|
|
914
|
-
for (var
|
|
915
|
-
var
|
|
916
|
-
r.roundRect(y(
|
|
918
|
+
for (var xe = 0; xe < rt; xe++) {
|
|
919
|
+
var Et = Fr[xe];
|
|
920
|
+
r.roundRect(y(Et).x, y(Et).y, Et.width || L, Et.height || B, Ga);
|
|
917
921
|
}
|
|
918
922
|
r.fill(), r.shadowColor = "transparent", r.shadowBlur = 0, r.shadowOffsetY = 0;
|
|
919
923
|
}
|
|
920
|
-
if (!
|
|
924
|
+
if (!de) {
|
|
921
925
|
r.fillStyle = k.nodeBg, r.beginPath();
|
|
922
|
-
for (var
|
|
923
|
-
var
|
|
924
|
-
r.roundRect(y(
|
|
926
|
+
for (var ge = 0; ge < rt; ge++) {
|
|
927
|
+
var Lt = Fr[ge];
|
|
928
|
+
r.roundRect(y(Lt).x, y(Lt).y, Lt.width || L, Lt.height || B, Ga);
|
|
925
929
|
}
|
|
926
930
|
r.fill();
|
|
927
931
|
}
|
|
928
932
|
r.strokeStyle = k.nodeBorder, r.lineWidth = 1, r.beginPath();
|
|
929
|
-
for (var
|
|
930
|
-
var
|
|
931
|
-
|
|
933
|
+
for (var Me = 0; Me < rt; Me++) {
|
|
934
|
+
var at = Fr[Me];
|
|
935
|
+
at.selected || r.roundRect(y(at).x, y(at).y, at.width || L, at.height || B, Ga);
|
|
932
936
|
}
|
|
933
937
|
r.stroke();
|
|
934
938
|
var Io = !1;
|
|
935
939
|
r.strokeStyle = k.nodeSelectedBorder, r.lineWidth = 2, r.beginPath();
|
|
936
|
-
for (var
|
|
937
|
-
var
|
|
938
|
-
|
|
940
|
+
for (var ke = 0; ke < rt; ke++) {
|
|
941
|
+
var tt = Fr[ke];
|
|
942
|
+
tt.selected && (Io = !0, r.roundRect(y(tt).x, y(tt).y, tt.width || L, tt.height || B, Ga));
|
|
939
943
|
}
|
|
940
|
-
if (Io && r.stroke(),
|
|
944
|
+
if (Io && r.stroke(), fa) {
|
|
941
945
|
r.fillStyle = k.nodeText, r.font = Oo, r.textAlign = "center", r.textBaseline = "middle";
|
|
942
|
-
for (var
|
|
943
|
-
var
|
|
944
|
-
if (!(!
|
|
945
|
-
var Zo =
|
|
946
|
-
r.fillText(
|
|
946
|
+
for (var me = 0; me < rt; me++) {
|
|
947
|
+
var va = Fr[me];
|
|
948
|
+
if (!(!va.data || !va.data.label)) {
|
|
949
|
+
var Zo = va.width || L, ql = va.height || B;
|
|
950
|
+
r.fillText(va.data.label, y(va).x + Zo / 2, y(va).y + ql / 2, Zo - 24);
|
|
947
951
|
}
|
|
948
952
|
}
|
|
949
953
|
r.textAlign = "start", r.textBaseline = "alphabetic";
|
|
950
954
|
}
|
|
951
|
-
for (var
|
|
952
|
-
var
|
|
953
|
-
Ko && r.drawImage(Ko,
|
|
955
|
+
for (var Te = 0; Te < At.length; Te++) {
|
|
956
|
+
var Mr = At[Te], Wa = y(Mr), St = Mr.width || L, Re = Mr.height || B, Ko = it[Mr.id] && tl[it[Mr.id]] || It[Mr.type];
|
|
957
|
+
Ko && r.drawImage(Ko, Wa.x, Wa.y, St, Re), fa && Mr.data && Mr.data.label && (r.fillStyle = k.nodeText, r.font = Oo, r.textAlign = "center", r.textBaseline = "middle", r.fillText(Mr.data.label, Wa.x + St / 2, Wa.y + Re / 2, St - 24)), Mr.selected && (r.strokeStyle = k.nodeSelectedBorder, r.lineWidth = 2, r.beginPath(), r.roundRect(Wa.x, Wa.y, St, Re, Ga), r.stroke());
|
|
954
958
|
}
|
|
955
|
-
|
|
956
|
-
for (var
|
|
957
|
-
var
|
|
958
|
-
if (
|
|
959
|
-
var
|
|
960
|
-
r.fillStyle =
|
|
961
|
-
var
|
|
962
|
-
r.beginPath(),
|
|
959
|
+
At.length > 0 && fa && (r.textAlign = "start", r.textBaseline = "alphabetic");
|
|
960
|
+
for (var ze = 0; ze < _t.length; ze++) {
|
|
961
|
+
var ha = _t[ze], G = Zt[ha.type], E = y(ha), Br = ha.width || L, na = ha.height || B, ur = G.radius || Ga, Ct = ha.data || {};
|
|
962
|
+
if (de && G.shadow !== !1 && (r.save(), r.shadowColor = G.shadowColor || k.nodeShadow, r.shadowBlur = G.shadowBlur || 6, r.shadowOffsetY = G.shadowOffsetY || 2, r.fillStyle = G.fill || k.nodeBg, r.beginPath(), r.roundRect(E.x, E.y, Br, na, ur), r.fill(), r.restore()), r.fillStyle = G.fill || k.nodeBg, r.beginPath(), r.roundRect(E.x, E.y, Br, na, ur), r.fill(), r.strokeStyle = ha.selected ? k.nodeSelectedBorder : G.stroke || k.nodeBorder, r.lineWidth = ha.selected ? 2 : G.strokeWidth || 1, r.beginPath(), r.roundRect(E.x, E.y, Br, na, ur), r.stroke(), G.accent) {
|
|
963
|
+
var et = G.accent;
|
|
964
|
+
r.fillStyle = et.color || "#3b82f6";
|
|
965
|
+
var Pa = et.width || 5;
|
|
966
|
+
r.beginPath(), et.side === "right" ? r.roundRect(E.x + Br - Pa, E.y, Pa, na, [0, ur, ur, 0]) : et.side === "top" ? r.roundRect(E.x, E.y, Br, Pa, [ur, ur, 0, 0]) : et.side === "bottom" ? r.roundRect(E.x, E.y + na - Pa, Br, Pa, [0, 0, ur, ur]) : r.roundRect(E.x, E.y, Pa, na, [ur, 0, 0, ur]), r.fill();
|
|
963
967
|
}
|
|
964
|
-
if (
|
|
965
|
-
var
|
|
968
|
+
if (G.icon && fa) {
|
|
969
|
+
var Ar = G.icon, bo = Ar.dataField ? Ct[Ar.dataField] : Ar.text;
|
|
966
970
|
if (bo) {
|
|
967
|
-
r.font = (
|
|
968
|
-
var
|
|
969
|
-
r.fillText(bo,
|
|
971
|
+
r.font = (Ar.size || 18) + "px system-ui, sans-serif", r.textAlign = "center", r.textBaseline = "middle", r.fillStyle = Ar.color || k.nodeText;
|
|
972
|
+
var Gl = E.x + (Ar.x !== void 0 ? Ar.x : 20), Il = E.y + (Ar.y !== void 0 ? Ar.y : na / 2);
|
|
973
|
+
r.fillText(bo, Gl, Il);
|
|
970
974
|
}
|
|
971
975
|
}
|
|
972
|
-
if (
|
|
973
|
-
var
|
|
976
|
+
if (G.title && fa) {
|
|
977
|
+
var kr = G.title, Jo = kr.dataField ? Ct[kr.dataField] : kr.text;
|
|
974
978
|
if (Jo) {
|
|
975
|
-
r.font =
|
|
976
|
-
var Qo = E.x + (
|
|
977
|
-
r.fillText(Jo, Qo,
|
|
979
|
+
r.font = kr.font || "600 13px system-ui, sans-serif", r.textAlign = kr.align || "left", r.textBaseline = "top", r.fillStyle = kr.color || k.nodeText;
|
|
980
|
+
var Qo = E.x + (kr.x !== void 0 ? kr.x : 12), Zl = E.y + (kr.y !== void 0 ? kr.y : 12);
|
|
981
|
+
r.fillText(Jo, Qo, Zl, Br - Qo + E.x - 12);
|
|
978
982
|
}
|
|
979
983
|
}
|
|
980
|
-
if (
|
|
981
|
-
var
|
|
984
|
+
if (G.subtitle && fa) {
|
|
985
|
+
var mr = G.subtitle, $o = mr.dataField ? Ct[mr.dataField] : mr.text;
|
|
982
986
|
if ($o) {
|
|
983
|
-
r.font =
|
|
984
|
-
var Fo = E.x + (
|
|
985
|
-
r.fillText($o, Fo,
|
|
987
|
+
r.font = mr.font || "11px system-ui, sans-serif", r.textAlign = mr.align || "left", r.textBaseline = "top", r.fillStyle = mr.color || "#64748b";
|
|
988
|
+
var Fo = E.x + (mr.x !== void 0 ? mr.x : 12), Kl = E.y + (mr.y !== void 0 ? mr.y : 32);
|
|
989
|
+
r.fillText($o, Fo, Kl, Br - Fo + E.x - 12);
|
|
986
990
|
}
|
|
987
991
|
}
|
|
988
|
-
if (
|
|
989
|
-
var
|
|
990
|
-
if (
|
|
991
|
-
r.font =
|
|
992
|
-
var
|
|
993
|
-
r.fillStyle =
|
|
992
|
+
if (G.badge && fa) {
|
|
993
|
+
var _r = G.badge, we = _r.dataField ? Ct[_r.dataField] : _r.text;
|
|
994
|
+
if (we) {
|
|
995
|
+
r.font = _r.font || "700 9px system-ui, sans-serif";
|
|
996
|
+
var bl = r.measureText(we), Jl = _r.paddingX || 6, Ql = _r.paddingY || 3, Be = bl.width + Jl * 2, Ae = 14 + Ql, Uo = E.x + Br - Be / 2 - 4, co = E.y - Ae / 2;
|
|
997
|
+
r.fillStyle = _r.bg || "#3b82f6", r.beginPath(), r.roundRect(Uo, co, Be, Ae, _r.radius || 7), r.fill(), r.fillStyle = _r.color || "#fff", r.textAlign = "center", r.textBaseline = "middle", r.fillText(we, Uo + Be / 2, co + Ae / 2);
|
|
994
998
|
}
|
|
995
999
|
}
|
|
996
1000
|
}
|
|
997
|
-
if (
|
|
998
|
-
for (var
|
|
999
|
-
for (var Vo =
|
|
1000
|
-
|
|
1001
|
+
if (_t.length > 0 && (r.textAlign = "start", r.textBaseline = "alphabetic"), Wl) {
|
|
1002
|
+
for (var _e = [], Ee = 0; Ee < dr; Ee++)
|
|
1003
|
+
for (var Vo = el(nr[Ee]), Le = 0; Le < Vo.length; Le++)
|
|
1004
|
+
_e.push(Vo[Le]);
|
|
1001
1005
|
r.fillStyle = k.handleFill, r.beginPath();
|
|
1002
|
-
for (var
|
|
1003
|
-
var
|
|
1004
|
-
r.moveTo(
|
|
1006
|
+
for (var Se = 0; Se < _e.length; Se++) {
|
|
1007
|
+
var Wt = _e[Se];
|
|
1008
|
+
r.moveTo(Wt.x + Do, Wt.y), r.arc(Wt.x, Wt.y, Do, 0, 6.2832);
|
|
1005
1009
|
}
|
|
1006
1010
|
r.fill(), r.strokeStyle = k.handleBorder, r.lineWidth = 1.5, r.stroke();
|
|
1007
1011
|
}
|
|
1008
1012
|
}
|
|
1009
1013
|
r.restore();
|
|
1010
|
-
var $
|
|
1011
|
-
|
|
1012
|
-
var
|
|
1013
|
-
if (
|
|
1014
|
-
po =
|
|
1015
|
-
var
|
|
1014
|
+
var $l = (performance.now() - a).toFixed(1);
|
|
1015
|
+
qe++;
|
|
1016
|
+
var Pt = performance.now();
|
|
1017
|
+
if (Pt - Xo >= 1e3 && (Ho = qe, qe = 0, Xo = Pt), Pt - po >= 100) {
|
|
1018
|
+
po = Pt;
|
|
1019
|
+
var Fl = Math.round(-M.x / M.zoom), Ul = Math.round(-M.y / M.zoom);
|
|
1016
1020
|
self.postMessage({
|
|
1017
1021
|
type: "hud",
|
|
1018
1022
|
data: {
|
|
1019
|
-
wx:
|
|
1020
|
-
wy:
|
|
1023
|
+
wx: Fl,
|
|
1024
|
+
wy: Ul,
|
|
1021
1025
|
zoom: M.zoom.toFixed(2),
|
|
1022
|
-
renderMs: $
|
|
1026
|
+
renderMs: $l,
|
|
1023
1027
|
fps: Ho,
|
|
1024
|
-
visible:
|
|
1025
|
-
nodeCount:
|
|
1026
|
-
visibleNodes:
|
|
1027
|
-
edgeCount:
|
|
1028
|
+
visible: Y.length > 0 ? jo(X, Yr, xa, Xr).length : 0,
|
|
1029
|
+
nodeCount: W.length,
|
|
1030
|
+
visibleNodes: dr,
|
|
1031
|
+
edgeCount: C.length
|
|
1028
1032
|
}
|
|
1029
1033
|
});
|
|
1030
1034
|
}
|
|
@@ -1085,7 +1089,7 @@ function Zr({
|
|
|
1085
1089
|
onNodeMouseEnter: D,
|
|
1086
1090
|
onNodeMouseMove: Y,
|
|
1087
1091
|
onNodeMouseLeave: $,
|
|
1088
|
-
onNodeContextMenu:
|
|
1092
|
+
onNodeContextMenu: P,
|
|
1089
1093
|
onPaneClick: O,
|
|
1090
1094
|
onPaneContextMenu: q,
|
|
1091
1095
|
onPaneMouseEnter: H,
|
|
@@ -1093,7 +1097,7 @@ function Zr({
|
|
|
1093
1097
|
onPaneMouseLeave: h,
|
|
1094
1098
|
onSelectionChange: m,
|
|
1095
1099
|
onConnectStart: C,
|
|
1096
|
-
onConnectEnd:
|
|
1100
|
+
onConnectEnd: I,
|
|
1097
1101
|
onInit: L,
|
|
1098
1102
|
onMoveStart: K,
|
|
1099
1103
|
onMove: it,
|
|
@@ -1112,7 +1116,7 @@ function Zr({
|
|
|
1112
1116
|
nodesDraggable: gt = !0,
|
|
1113
1117
|
nodesConnectable: Dt = !0,
|
|
1114
1118
|
elementsSelectable: Xt = !0,
|
|
1115
|
-
multiSelectionKeyCode:
|
|
1119
|
+
multiSelectionKeyCode: It = "Shift",
|
|
1116
1120
|
selectionOnDrag: se = !1,
|
|
1117
1121
|
selectionMode: ae = "partial",
|
|
1118
1122
|
connectionMode: kt = "loose",
|
|
@@ -1166,7 +1170,7 @@ function Zr({
|
|
|
1166
1170
|
onNodeMouseEnter: D,
|
|
1167
1171
|
onNodeMouseMove: Y,
|
|
1168
1172
|
onNodeMouseLeave: $,
|
|
1169
|
-
onNodeContextMenu:
|
|
1173
|
+
onNodeContextMenu: P,
|
|
1170
1174
|
onPaneClick: O,
|
|
1171
1175
|
onPaneContextMenu: q,
|
|
1172
1176
|
onPaneMouseEnter: H,
|
|
@@ -1174,7 +1178,7 @@ function Zr({
|
|
|
1174
1178
|
onPaneMouseLeave: h,
|
|
1175
1179
|
onSelectionChange: m,
|
|
1176
1180
|
onConnectStart: C,
|
|
1177
|
-
onConnectEnd:
|
|
1181
|
+
onConnectEnd: I,
|
|
1178
1182
|
onInit: L,
|
|
1179
1183
|
onMoveStart: K,
|
|
1180
1184
|
onMove: it,
|
|
@@ -1210,14 +1214,14 @@ function Zr({
|
|
|
1210
1214
|
} };
|
|
1211
1215
|
mt(() => {
|
|
1212
1216
|
const l = (c) => {
|
|
1213
|
-
c.key ===
|
|
1217
|
+
c.key === It && (mn.current = !0), c.key === Ne && (re.current = !0);
|
|
1214
1218
|
}, g = (c) => {
|
|
1215
|
-
c.key ===
|
|
1219
|
+
c.key === It && (mn.current = !1), c.key === Ne && (re.current = !1);
|
|
1216
1220
|
};
|
|
1217
1221
|
return window.addEventListener("keydown", l), window.addEventListener("keyup", g), () => {
|
|
1218
1222
|
window.removeEventListener("keydown", l), window.removeEventListener("keyup", g);
|
|
1219
1223
|
};
|
|
1220
|
-
}, [
|
|
1224
|
+
}, [It, Ne]);
|
|
1221
1225
|
const Ct = { get current() {
|
|
1222
1226
|
return J.current.onNodesChange ? pe : null;
|
|
1223
1227
|
} }, pe = (l) => {
|
|
@@ -2028,7 +2032,7 @@ function Zr({
|
|
|
2028
2032
|
l.data || (l.data = { label: l.id }), Ct.current && Ct.current([{ type: "add", item: l }]);
|
|
2029
2033
|
}, []), On = U(() => ({ ...ht.current }), []), W = U((l) => {
|
|
2030
2034
|
ht.current = { ...ht.current, ...l }, zt();
|
|
2031
|
-
}, [zt]), bt = U((l) => At(l.x, l.y), [At]), rt = n,
|
|
2035
|
+
}, [zt]), bt = U((l) => At(l.x, l.y), [At]), rt = n, Pt = _t(() => ({
|
|
2032
2036
|
wrapRef: Rt,
|
|
2033
2037
|
canvasRef: Ae,
|
|
2034
2038
|
workerRef: Nt,
|
|
@@ -2082,7 +2086,7 @@ function Zr({
|
|
|
2082
2086
|
getCamera: On,
|
|
2083
2087
|
setCamera: W,
|
|
2084
2088
|
screenToFlowPosition: bt,
|
|
2085
|
-
store:
|
|
2089
|
+
store: Pt
|
|
2086
2090
|
};
|
|
2087
2091
|
}
|
|
2088
2092
|
function Gr(t, e, n, r, i, o) {
|
|
@@ -2110,7 +2114,7 @@ function Kr(t, e = Jr) {
|
|
|
2110
2114
|
);
|
|
2111
2115
|
return zn.useDebugValue(n), n;
|
|
2112
2116
|
}
|
|
2113
|
-
const
|
|
2117
|
+
const Ie = xr(null);
|
|
2114
2118
|
function Vr(t = {}) {
|
|
2115
2119
|
return Qr((e, n) => ({
|
|
2116
2120
|
nodes: [],
|
|
@@ -2146,7 +2150,7 @@ function Vr(t = {}) {
|
|
|
2146
2150
|
}));
|
|
2147
2151
|
}
|
|
2148
2152
|
function Lt(t, e) {
|
|
2149
|
-
const n = ve(
|
|
2153
|
+
const n = ve(Ie);
|
|
2150
2154
|
if (!n)
|
|
2151
2155
|
throw new Error("useCanvasStore must be used within <InfiniteCanvas> or <InfiniteCanvasProvider>");
|
|
2152
2156
|
const r = typeof n.getState == "function" && typeof n.subscribe == "function", i = tt(t), o = tt(e), a = tt(void 0);
|
|
@@ -2160,7 +2164,7 @@ function Lt(t, e) {
|
|
|
2160
2164
|
return r ? Kr(n, t ? u : void 0) : t ? u(n) : n;
|
|
2161
2165
|
}
|
|
2162
2166
|
function Rr() {
|
|
2163
|
-
const t = ve(
|
|
2167
|
+
const t = ve(Ie);
|
|
2164
2168
|
if (!t)
|
|
2165
2169
|
throw new Error("useCanvasStoreApi must be used within <InfiniteCanvas> or <InfiniteCanvasProvider>");
|
|
2166
2170
|
return typeof t.getState == "function" ? t : { getState: () => t, setState: () => {
|
|
@@ -2181,11 +2185,11 @@ function to({ node: t, nodeType: e }) {
|
|
|
2181
2185
|
if (!X) return;
|
|
2182
2186
|
const D = new ResizeObserver((Y) => {
|
|
2183
2187
|
var O, q, H, w;
|
|
2184
|
-
const { width: $, height:
|
|
2185
|
-
if ($ > 0 &&
|
|
2186
|
-
const h = r.current, m = h.nodesRef.current.find((L) => L.id === t.id), C = (m == null ? void 0 : m.width) || ((O = m == null ? void 0 : m.measured) == null ? void 0 : O.width),
|
|
2187
|
-
(Math.abs((C || 0) - $) > 1 || Math.abs((
|
|
2188
|
-
{ id: t.id, type: "dimensions", dimensions: { width: $, height:
|
|
2188
|
+
const { width: $, height: P } = Y[0].contentRect;
|
|
2189
|
+
if ($ > 0 && P > 0) {
|
|
2190
|
+
const h = r.current, m = h.nodesRef.current.find((L) => L.id === t.id), C = (m == null ? void 0 : m.width) || ((O = m == null ? void 0 : m.measured) == null ? void 0 : O.width), I = (m == null ? void 0 : m.height) || ((q = m == null ? void 0 : m.measured) == null ? void 0 : q.height);
|
|
2191
|
+
(Math.abs((C || 0) - $) > 1 || Math.abs((I || 0) - P) > 1) && ((w = (H = h.onNodesChangeRef).current) == null || w.call(H, [
|
|
2192
|
+
{ id: t.id, type: "dimensions", dimensions: { width: $, height: P }, setAttributes: !0 }
|
|
2189
2193
|
]));
|
|
2190
2194
|
}
|
|
2191
2195
|
});
|
|
@@ -2197,10 +2201,10 @@ function to({ node: t, nodeType: e }) {
|
|
|
2197
2201
|
const D = X.target.tagName;
|
|
2198
2202
|
if (D === "INPUT" || D === "TEXTAREA" || D === "SELECT" || D === "BUTTON" || D === "A" || D === "LABEL" || X.target.isContentEditable) return;
|
|
2199
2203
|
const Y = r.current.noDragClassName || "nodrag", $ = r.current.noPanClassName || "nopan";
|
|
2200
|
-
let
|
|
2201
|
-
for (;
|
|
2202
|
-
if ((lt =
|
|
2203
|
-
|
|
2204
|
+
let P = X.target;
|
|
2205
|
+
for (; P && P !== i.current; ) {
|
|
2206
|
+
if ((lt = P.classList) != null && lt.contains(Y) || (vt = P.classList) != null && vt.contains($)) return;
|
|
2207
|
+
P = P.parentElement;
|
|
2204
2208
|
}
|
|
2205
2209
|
if (r.current.onNodesChangeRef.current) {
|
|
2206
2210
|
const dt = [];
|
|
@@ -2219,15 +2223,15 @@ function to({ node: t, nodeType: e }) {
|
|
|
2219
2223
|
startMouse: { x: w, y: h },
|
|
2220
2224
|
selectedStarts: C
|
|
2221
2225
|
};
|
|
2222
|
-
const
|
|
2226
|
+
const I = [{ id: t.id, type: "position", dragging: !0 }];
|
|
2223
2227
|
for (const dt of C)
|
|
2224
|
-
|
|
2225
|
-
(pt = (wt = r.current.onNodesChangeRef).current) == null || pt.call(wt,
|
|
2228
|
+
I.push({ id: dt.id, type: "position", dragging: !0 });
|
|
2229
|
+
(pt = (wt = r.current.onNodesChangeRef).current) == null || pt.call(wt, I);
|
|
2226
2230
|
const L = i.current;
|
|
2227
2231
|
L && L.setPointerCapture(X.pointerId);
|
|
2228
2232
|
let K = null;
|
|
2229
2233
|
const it = (dt) => {
|
|
2230
|
-
var Xt,
|
|
2234
|
+
var Xt, It, se, ae;
|
|
2231
2235
|
if (!a.current) return;
|
|
2232
2236
|
const Et = r.current.cameraRef.current, ot = q.getBoundingClientRect(), ft = (dt.clientX - ot.left - Et.x) / Et.zoom, Bt = (dt.clientY - ot.top - Et.y) / Et.zoom, Zt = ft - a.current.startMouse.x, xt = Bt - a.current.startMouse.y;
|
|
2233
2237
|
let gt = { x: a.current.startPos.x + Zt, y: a.current.startPos.y + xt };
|
|
@@ -2237,7 +2241,7 @@ function to({ node: t, nodeType: e }) {
|
|
|
2237
2241
|
}), t.parentId && t.extent === "parent") {
|
|
2238
2242
|
const kt = r.current.nodesRef.current.find(($t) => $t.id === t.parentId);
|
|
2239
2243
|
if (kt) {
|
|
2240
|
-
const $t = kt.width || 160, Gt = kt.height || 60, Ht = t.width || ((Xt = t.measured) == null ? void 0 : Xt.width) || 160, Ut = t.height || ((
|
|
2244
|
+
const $t = kt.width || 160, Gt = kt.height || 60, Ht = t.width || ((Xt = t.measured) == null ? void 0 : Xt.width) || 160, Ut = t.height || ((It = t.measured) == null ? void 0 : It.height) || 60;
|
|
2241
2245
|
gt = {
|
|
2242
2246
|
x: Math.max(0, Math.min(gt.x, $t - Ht)),
|
|
2243
2247
|
y: Math.max(0, Math.min(gt.y, Gt - Ut))
|
|
@@ -2312,9 +2316,9 @@ function to({ node: t, nodeType: e }) {
|
|
|
2312
2316
|
return;
|
|
2313
2317
|
}
|
|
2314
2318
|
X.preventDefault();
|
|
2315
|
-
const
|
|
2316
|
-
for (const
|
|
2317
|
-
|
|
2319
|
+
const P = { x: t.position.x + Y, y: t.position.y + $ }, O = [{ id: t.id, type: "position", position: P }];
|
|
2320
|
+
for (const I of r.current.nodesRef.current)
|
|
2321
|
+
I.selected && I.id !== t.id && O.push({ id: I.id, type: "position", position: { x: I.position.x + Y, y: I.position.y + $ } });
|
|
2318
2322
|
(C = (m = r.current.onNodesChangeRef).current) == null || C.call(m, O);
|
|
2319
2323
|
}, [t]), d = t.width || ((E = t.measured) == null ? void 0 : E.width), f = t.height || ((B = t.measured) == null ? void 0 : B.height), v = !!(d && f), S = (T = n.pinnedNodeIds) == null ? void 0 : T.has(t.id), k = U((X) => {
|
|
2320
2324
|
var D, Y;
|
|
@@ -2455,20 +2459,20 @@ function fr({ x: t, y: e, position: n, type: r, onPointerDown: i }) {
|
|
|
2455
2459
|
);
|
|
2456
2460
|
}
|
|
2457
2461
|
function oo({ edge: t, edgeType: e, nodes: n, reconnectable: r }) {
|
|
2458
|
-
var
|
|
2459
|
-
const i = ve(
|
|
2462
|
+
var P, O, q;
|
|
2463
|
+
const i = ve(Ie), o = tt(typeof i.getState == "function" ? i.getState() : i);
|
|
2460
2464
|
o.current = typeof i.getState == "function" ? i.getState() : i;
|
|
2461
2465
|
const [a, u] = Ot(null), x = U((H, w, h, m) => {
|
|
2462
2466
|
var vt;
|
|
2463
2467
|
w.stopPropagation(), w.preventDefault();
|
|
2464
|
-
const C = o.current,
|
|
2465
|
-
if (!
|
|
2468
|
+
const C = o.current, I = C.wrapRef.current;
|
|
2469
|
+
if (!I) return;
|
|
2466
2470
|
const L = H === "source" ? m : h, K = H === "source" ? t.target : t.source;
|
|
2467
2471
|
(vt = C.workerRef.current) == null || vt.postMessage({
|
|
2468
2472
|
type: "connecting",
|
|
2469
2473
|
data: { from: { x: L.x, y: L.y }, to: { x: L.x, y: L.y } }
|
|
2470
2474
|
});
|
|
2471
|
-
const it =
|
|
2475
|
+
const it = I.getBoundingClientRect(), nt = (wt) => {
|
|
2472
2476
|
var ot;
|
|
2473
2477
|
const pt = C.cameraRef.current, dt = (wt.clientX - it.left - pt.x) / pt.zoom, Et = (wt.clientY - it.top - pt.y) / pt.zoom;
|
|
2474
2478
|
(ot = C.workerRef.current) == null || ot.postMessage({
|
|
@@ -2480,13 +2484,13 @@ function oo({ edge: t, edgeType: e, nodes: n, reconnectable: r }) {
|
|
|
2480
2484
|
const pt = C.cameraRef.current, dt = (wt.clientX - it.left - pt.x) / pt.zoom, Et = (wt.clientY - it.top - pt.y) / pt.zoom, ot = 20 / pt.zoom;
|
|
2481
2485
|
let ft = null, Bt = null;
|
|
2482
2486
|
const Zt = (xt = C.handleRegistryRef) == null ? void 0 : xt.current;
|
|
2483
|
-
for (const
|
|
2484
|
-
if (
|
|
2485
|
-
const se =
|
|
2487
|
+
for (const It of C.nodesRef.current) {
|
|
2488
|
+
if (It.hidden) continue;
|
|
2489
|
+
const se = It.width || kr, ae = It.height || zr, kt = It._absolutePosition || It.position, $t = [];
|
|
2486
2490
|
if (Zt)
|
|
2487
2491
|
for (const [, Ht] of Zt)
|
|
2488
|
-
Ht.nodeId ===
|
|
2489
|
-
const Gt = $t.length > 0 ? $t :
|
|
2492
|
+
Ht.nodeId === It.id && $t.push(Ht);
|
|
2493
|
+
const Gt = $t.length > 0 ? $t : It.handles || [
|
|
2490
2494
|
{ type: "target", position: "left" },
|
|
2491
2495
|
{ type: "source", position: "right" }
|
|
2492
2496
|
];
|
|
@@ -2510,23 +2514,23 @@ function oo({ edge: t, edgeType: e, nodes: n, reconnectable: r }) {
|
|
|
2510
2514
|
break;
|
|
2511
2515
|
}
|
|
2512
2516
|
if (Math.abs(dt - Ut) < ot && Math.abs(Et - Kt) < ot) {
|
|
2513
|
-
ft =
|
|
2517
|
+
ft = It, Bt = Ht.id || null;
|
|
2514
2518
|
break;
|
|
2515
2519
|
}
|
|
2516
2520
|
}
|
|
2517
2521
|
if (ft) break;
|
|
2518
2522
|
}
|
|
2519
2523
|
if (ft) {
|
|
2520
|
-
const
|
|
2524
|
+
const It = H === "source" ? { source: ft.id, target: K, sourceHandle: Bt, targetHandle: t.targetHandle } : { source: K, target: ft.id, sourceHandle: t.sourceHandle, targetHandle: Bt };
|
|
2521
2525
|
(Dt = (gt = C.onEdgesChangeRef).current) == null || Dt.call(gt, [
|
|
2522
2526
|
{ id: t.id, type: "remove" },
|
|
2523
|
-
{ type: "add", item: { id: t.id, ...
|
|
2527
|
+
{ type: "add", item: { id: t.id, ...It } }
|
|
2524
2528
|
]);
|
|
2525
2529
|
}
|
|
2526
|
-
(Xt = C.workerRef.current) == null || Xt.postMessage({ type: "connecting", data: null }),
|
|
2530
|
+
(Xt = C.workerRef.current) == null || Xt.postMessage({ type: "connecting", data: null }), I.removeEventListener("pointermove", nt), I.removeEventListener("pointerup", lt);
|
|
2527
2531
|
};
|
|
2528
|
-
|
|
2529
|
-
}, [t]), d = n.find((H) => H.id === t.source), f = n.find((H) => H.id === t.target), v = d && !!(d.width || (
|
|
2532
|
+
I.addEventListener("pointermove", nt), I.addEventListener("pointerup", lt);
|
|
2533
|
+
}, [t]), d = n.find((H) => H.id === t.source), f = n.find((H) => H.id === t.target), v = d && !!(d.width || (P = d.measured) != null && P.width), S = f && !!(f.width || (O = f.measured) != null && O.width), k = o.current, E = (q = k.handleRegistryRef) == null ? void 0 : q.current, B = v ? ur(d, "source", t.sourceHandle, E) : null, T = S ? ur(f, "target", t.targetHandle, E) : null, A = t.type === "bezier" || t.type === "simplebezier" || t.type === "default", X = k.routedEdges || k.edges, D = X == null ? void 0 : X.find((H) => H.id === t.id), Y = A ? null : (D == null ? void 0 : D._routedPoints) || t._routedPoints || null, $ = r !== !1 && t.reconnectable !== !1;
|
|
2530
2534
|
return !B || !T ? null : /* @__PURE__ */ Ft(
|
|
2531
2535
|
"g",
|
|
2532
2536
|
{
|
|
@@ -2598,13 +2602,13 @@ function Sr({ selectionKeyCode: t = "Shift", selectionMode: e = "partial" }) {
|
|
|
2598
2602
|
H.key === t && (D = !0);
|
|
2599
2603
|
}, $ = (H) => {
|
|
2600
2604
|
H.key === t && (D = !1);
|
|
2601
|
-
},
|
|
2605
|
+
}, P = (H) => {
|
|
2602
2606
|
if (!D) return;
|
|
2603
2607
|
const w = H.target;
|
|
2604
2608
|
if (w.closest(".ric-node-wrapper") || w.closest(".ric-handle")) return;
|
|
2605
2609
|
A = !0;
|
|
2606
|
-
const h = n.cameraRef.current, m = T.getBoundingClientRect(), C = (H.clientX - m.left - h.x) / h.zoom,
|
|
2607
|
-
X = { x: C, y:
|
|
2610
|
+
const h = n.cameraRef.current, m = T.getBoundingClientRect(), C = (H.clientX - m.left - h.x) / h.zoom, I = (H.clientY - m.top - h.y) / h.zoom;
|
|
2611
|
+
X = { x: C, y: I }, i({ startX: C, startY: I, endX: C, endY: I }), H.stopPropagation();
|
|
2608
2612
|
}, O = (H) => {
|
|
2609
2613
|
if (!A || !X) return;
|
|
2610
2614
|
const w = n.cameraRef.current, h = T.getBoundingClientRect(), m = (H.clientX - h.left - w.x) / w.zoom, C = (H.clientY - h.top - w.y) / w.zoom;
|
|
@@ -2613,7 +2617,7 @@ function Sr({ selectionKeyCode: t = "Shift", selectionMode: e = "partial" }) {
|
|
|
2613
2617
|
var K, it;
|
|
2614
2618
|
if (!A || !X) return;
|
|
2615
2619
|
A = !1;
|
|
2616
|
-
const w = n.cameraRef.current, h = T.getBoundingClientRect(), m = (H.clientX - h.left - w.x) / w.zoom, C = (H.clientY - h.top - w.y) / w.zoom,
|
|
2620
|
+
const w = n.cameraRef.current, h = T.getBoundingClientRect(), m = (H.clientX - h.left - w.x) / w.zoom, C = (H.clientY - h.top - w.y) / w.zoom, I = {
|
|
2617
2621
|
x: Math.min(X.x, m),
|
|
2618
2622
|
y: Math.min(X.y, C),
|
|
2619
2623
|
width: Math.abs(m - X.x),
|
|
@@ -2622,12 +2626,12 @@ function Sr({ selectionKeyCode: t = "Shift", selectionMode: e = "partial" }) {
|
|
|
2622
2626
|
for (const nt of n.nodesRef.current) {
|
|
2623
2627
|
const lt = nt._absolutePosition || nt.position, vt = nt.width || 160, wt = nt.height || 60;
|
|
2624
2628
|
let pt;
|
|
2625
|
-
e === "full" ? pt = lt.x >=
|
|
2629
|
+
e === "full" ? pt = lt.x >= I.x && lt.y >= I.y && lt.x + vt <= I.x + I.width && lt.y + wt <= I.y + I.height : pt = lt.x + vt > I.x && lt.x < I.x + I.width && lt.y + wt > I.y && lt.y < I.y + I.height, L.push({ id: nt.id, type: "select", selected: pt });
|
|
2626
2630
|
}
|
|
2627
2631
|
L.length && ((it = (K = n.onNodesChangeRef).current) == null || it.call(K, L)), X = null, i(null);
|
|
2628
2632
|
};
|
|
2629
|
-
return T.addEventListener("pointerdown",
|
|
2630
|
-
T.removeEventListener("pointerdown",
|
|
2633
|
+
return T.addEventListener("pointerdown", P, !0), T.addEventListener("pointermove", O), T.addEventListener("pointerup", q), window.addEventListener("keydown", Y), window.addEventListener("keyup", $), () => {
|
|
2634
|
+
T.removeEventListener("pointerdown", P, !0), T.removeEventListener("pointermove", O), T.removeEventListener("pointerup", q), window.removeEventListener("keydown", Y), window.removeEventListener("keyup", $);
|
|
2631
2635
|
};
|
|
2632
2636
|
}, [n, t, e]), !r) return null;
|
|
2633
2637
|
const a = ((B = n.cameraRef) == null ? void 0 : B.current) || { x: 0, y: 0, zoom: 1 }, u = Math.min(r.startX, r.endX), x = Math.min(r.startY, r.endY), d = Math.abs(r.endX - r.startX), f = Math.abs(r.endY - r.startY), v = u * a.zoom + a.x, S = x * a.zoom + a.y, k = d * a.zoom, E = f * a.zoom;
|
|
@@ -2675,11 +2679,11 @@ function ao(t, e) {
|
|
|
2675
2679
|
y: (i.top + i.height / 2 - r.top) / o
|
|
2676
2680
|
};
|
|
2677
2681
|
}
|
|
2678
|
-
let Qn = !1,
|
|
2682
|
+
let Qn = !1, Pe = null;
|
|
2679
2683
|
function Er(t) {
|
|
2680
|
-
|
|
2684
|
+
Pe = t, !Qn && (Qn = !0, requestAnimationFrame(() => {
|
|
2681
2685
|
var e;
|
|
2682
|
-
Qn = !1, (e =
|
|
2686
|
+
Qn = !1, (e = Pe == null ? void 0 : Pe.syncNodesToWorker) == null || e.call(Pe), Pe = null;
|
|
2683
2687
|
}));
|
|
2684
2688
|
}
|
|
2685
2689
|
const er = /* @__PURE__ */ new WeakMap();
|
|
@@ -2717,16 +2721,16 @@ function lo({
|
|
|
2717
2721
|
onConnect: d,
|
|
2718
2722
|
...f
|
|
2719
2723
|
}) {
|
|
2720
|
-
const v = ve(un), S = ve(
|
|
2724
|
+
const v = ve(un), S = ve(Ie), k = tt(null), E = U(
|
|
2721
2725
|
() => typeof S.getState == "function" ? S.getState() : S,
|
|
2722
2726
|
[S]
|
|
2723
2727
|
), B = tt(E);
|
|
2724
2728
|
B.current = E, Xr(() => {
|
|
2725
|
-
var w, h, m, C,
|
|
2729
|
+
var w, h, m, C, I, L, K;
|
|
2726
2730
|
if (!v) return;
|
|
2727
2731
|
const D = B.current(), Y = (w = D.handleRegistryRef) == null ? void 0 : w.current;
|
|
2728
2732
|
if (!Y) return;
|
|
2729
|
-
const $ = `${v}__${n || t}`,
|
|
2733
|
+
const $ = `${v}__${n || t}`, P = (m = (h = D.nodesRef) == null ? void 0 : h.current) == null ? void 0 : m.find((it) => it.id === v), O = (P == null ? void 0 : P.width) || ((C = P == null ? void 0 : P.measured) == null ? void 0 : C.width), q = (P == null ? void 0 : P.height) || ((I = P == null ? void 0 : P.measured) == null ? void 0 : I.height);
|
|
2730
2734
|
let H;
|
|
2731
2735
|
O && q ? H = tr(e, O, q) : k.current ? H = ao(k.current, (K = (L = D.cameraRef) == null ? void 0 : L.current) == null ? void 0 : K.zoom) : H = tr(e, 160, 60), Y.set($, { nodeId: v, id: n || null, type: t, position: e, x: H.x, y: H.y });
|
|
2732
2736
|
}, [v, n, t, e]), mt(() => {
|
|
@@ -2744,7 +2748,7 @@ function lo({
|
|
|
2744
2748
|
var h;
|
|
2745
2749
|
const D = B.current(), Y = D.nodesRef.current.find((m) => m.id === v);
|
|
2746
2750
|
if (!Y) return null;
|
|
2747
|
-
const $ = Y._absolutePosition || Y.position,
|
|
2751
|
+
const $ = Y._absolutePosition || Y.position, P = (h = D.handleRegistryRef) == null ? void 0 : h.current, O = `${v}__${n || t}`, q = P == null ? void 0 : P.get(O);
|
|
2748
2752
|
if (q && q.x !== void 0 && q.y !== void 0)
|
|
2749
2753
|
return { x: $.x + q.x, y: $.y + q.y };
|
|
2750
2754
|
const H = Y.width || 160, w = Y.height || 60;
|
|
@@ -2762,25 +2766,25 @@ function lo({
|
|
|
2762
2766
|
var C;
|
|
2763
2767
|
if (!r || !i) return;
|
|
2764
2768
|
D.stopPropagation(), D.preventDefault();
|
|
2765
|
-
const Y = B.current(), $ = Y.cameraRef.current,
|
|
2766
|
-
if (!
|
|
2767
|
-
const O =
|
|
2769
|
+
const Y = B.current(), $ = Y.cameraRef.current, P = Y.wrapRef.current;
|
|
2770
|
+
if (!P) return;
|
|
2771
|
+
const O = P.getBoundingClientRect(), q = T();
|
|
2768
2772
|
if (!q) return;
|
|
2769
2773
|
const H = q.x, w = q.y;
|
|
2770
2774
|
(C = Y.workerRef.current) == null || C.postMessage({
|
|
2771
2775
|
type: "connecting",
|
|
2772
2776
|
data: { from: { x: H, y: w }, to: { x: H, y: w } }
|
|
2773
|
-
}),
|
|
2774
|
-
const h = (
|
|
2777
|
+
}), P.setPointerCapture(D.pointerId);
|
|
2778
|
+
const h = (I) => {
|
|
2775
2779
|
var it;
|
|
2776
|
-
const L = (
|
|
2780
|
+
const L = (I.clientX - O.left - $.x) / $.zoom, K = (I.clientY - O.top - $.y) / $.zoom;
|
|
2777
2781
|
(it = Y.workerRef.current) == null || it.postMessage({
|
|
2778
2782
|
type: "connecting",
|
|
2779
2783
|
data: { from: { x: H, y: w }, to: { x: L, y: K } }
|
|
2780
2784
|
});
|
|
2781
|
-
}, m = (
|
|
2785
|
+
}, m = (I) => {
|
|
2782
2786
|
var wt, pt, dt, Et;
|
|
2783
|
-
const L = (
|
|
2787
|
+
const L = (I.clientX - O.left - $.x) / $.zoom, K = (I.clientY - O.top - $.y) / $.zoom, it = 20 / $.zoom;
|
|
2784
2788
|
let nt = null, lt = null;
|
|
2785
2789
|
const vt = (wt = Y.handleRegistryRef) == null ? void 0 : wt.current;
|
|
2786
2790
|
for (const ot of Y.nodesRef.current) {
|
|
@@ -2798,19 +2802,19 @@ function lo({
|
|
|
2798
2802
|
if (xt.x !== void 0 && xt.y !== void 0)
|
|
2799
2803
|
gt = ft.x + xt.x, Dt = ft.y + xt.y;
|
|
2800
2804
|
else {
|
|
2801
|
-
const Xt = ot.width || 160,
|
|
2805
|
+
const Xt = ot.width || 160, It = ot.height || 60;
|
|
2802
2806
|
switch (xt.position || (xt.type === "source" ? "right" : "left")) {
|
|
2803
2807
|
case "top":
|
|
2804
2808
|
gt = ft.x + Xt / 2, Dt = ft.y;
|
|
2805
2809
|
break;
|
|
2806
2810
|
case "bottom":
|
|
2807
|
-
gt = ft.x + Xt / 2, Dt = ft.y +
|
|
2811
|
+
gt = ft.x + Xt / 2, Dt = ft.y + It;
|
|
2808
2812
|
break;
|
|
2809
2813
|
case "left":
|
|
2810
|
-
gt = ft.x, Dt = ft.y +
|
|
2814
|
+
gt = ft.x, Dt = ft.y + It / 2;
|
|
2811
2815
|
break;
|
|
2812
2816
|
default:
|
|
2813
|
-
gt = ft.x + Xt, Dt = ft.y +
|
|
2817
|
+
gt = ft.x + Xt, Dt = ft.y + It / 2;
|
|
2814
2818
|
break;
|
|
2815
2819
|
}
|
|
2816
2820
|
}
|
|
@@ -2830,9 +2834,9 @@ function lo({
|
|
|
2830
2834
|
};
|
|
2831
2835
|
(dt = (pt = Y.onEdgesChangeRef) == null ? void 0 : pt.current) == null || dt.call(pt, [{ type: "add", item: { id: `e-${ot.source}-${ot.target}`, ...ot } }]);
|
|
2832
2836
|
}
|
|
2833
|
-
(Et = Y.workerRef.current) == null || Et.postMessage({ type: "connecting", data: null }),
|
|
2837
|
+
(Et = Y.workerRef.current) == null || Et.postMessage({ type: "connecting", data: null }), P.removeEventListener("pointermove", h), P.removeEventListener("pointerup", m);
|
|
2834
2838
|
};
|
|
2835
|
-
|
|
2839
|
+
P.addEventListener("pointermove", h), P.addEventListener("pointerup", m);
|
|
2836
2840
|
}, [v, n, t, e, r, i, T]), X = {
|
|
2837
2841
|
top: { top: 0, left: "50%", transform: "translate(-50%, -50%)" },
|
|
2838
2842
|
bottom: { bottom: 0, left: "50%", transform: "translate(-50%, 50%)" },
|
|
@@ -2867,7 +2871,7 @@ function lo({
|
|
|
2867
2871
|
}
|
|
2868
2872
|
);
|
|
2869
2873
|
}
|
|
2870
|
-
const
|
|
2874
|
+
const Pn = oe(lo);
|
|
2871
2875
|
function Vo({
|
|
2872
2876
|
data: t,
|
|
2873
2877
|
isConnectable: e,
|
|
@@ -2892,9 +2896,9 @@ function Vo({
|
|
|
2892
2896
|
boxShadow: n ? "0 0 0 0.5px #1a192b" : "none"
|
|
2893
2897
|
},
|
|
2894
2898
|
children: [
|
|
2895
|
-
!a && /* @__PURE__ */ F(
|
|
2899
|
+
!a && /* @__PURE__ */ F(Pn, { type: "target", position: r, isConnectable: e }),
|
|
2896
2900
|
/* @__PURE__ */ F("div", { className: "ric-node-content", children: t == null ? void 0 : t.label }),
|
|
2897
|
-
!o && /* @__PURE__ */ F(
|
|
2901
|
+
!o && /* @__PURE__ */ F(Pn, { type: "source", position: i, isConnectable: e })
|
|
2898
2902
|
]
|
|
2899
2903
|
}
|
|
2900
2904
|
);
|
|
@@ -2923,7 +2927,7 @@ function uo({
|
|
|
2923
2927
|
},
|
|
2924
2928
|
children: [
|
|
2925
2929
|
/* @__PURE__ */ F("div", { className: "ric-node-content", children: t == null ? void 0 : t.label }),
|
|
2926
|
-
!i && /* @__PURE__ */ F(
|
|
2930
|
+
!i && /* @__PURE__ */ F(Pn, { type: "source", position: r, isConnectable: e })
|
|
2927
2931
|
]
|
|
2928
2932
|
}
|
|
2929
2933
|
);
|
|
@@ -2951,7 +2955,7 @@ function fo({
|
|
|
2951
2955
|
boxShadow: n ? "0 0 0 0.5px #1a192b" : "none"
|
|
2952
2956
|
},
|
|
2953
2957
|
children: [
|
|
2954
|
-
!i && /* @__PURE__ */ F(
|
|
2958
|
+
!i && /* @__PURE__ */ F(Pn, { type: "target", position: r, isConnectable: e }),
|
|
2955
2959
|
/* @__PURE__ */ F("div", { className: "ric-node-content", children: t == null ? void 0 : t.label })
|
|
2956
2960
|
]
|
|
2957
2961
|
}
|
|
@@ -3127,7 +3131,7 @@ function gr(t, e, n) {
|
|
|
3127
3131
|
return { x: t + cn, y: e };
|
|
3128
3132
|
}
|
|
3129
3133
|
}
|
|
3130
|
-
const
|
|
3134
|
+
const Pr = oe(function({
|
|
3131
3135
|
id: e,
|
|
3132
3136
|
sourceX: n,
|
|
3133
3137
|
sourceY: r,
|
|
@@ -3147,7 +3151,7 @@ const Ir = oe(function({
|
|
|
3147
3151
|
interactionWidth: A
|
|
3148
3152
|
}) {
|
|
3149
3153
|
let X, D, Y;
|
|
3150
|
-
const $ = gr(n, r, a),
|
|
3154
|
+
const $ = gr(n, r, a), P = gr(i, o, u), O = Math.abs(P.x - $.x), q = Math.max(50, O * 0.5);
|
|
3151
3155
|
let H, w, h, m;
|
|
3152
3156
|
switch (a) {
|
|
3153
3157
|
case "left":
|
|
@@ -3165,21 +3169,21 @@ const Ir = oe(function({
|
|
|
3165
3169
|
}
|
|
3166
3170
|
switch (u) {
|
|
3167
3171
|
case "right":
|
|
3168
|
-
h =
|
|
3172
|
+
h = P.x + q, m = P.y;
|
|
3169
3173
|
break;
|
|
3170
3174
|
case "top":
|
|
3171
|
-
h =
|
|
3175
|
+
h = P.x, m = P.y - q;
|
|
3172
3176
|
break;
|
|
3173
3177
|
case "bottom":
|
|
3174
|
-
h =
|
|
3178
|
+
h = P.x, m = P.y + q;
|
|
3175
3179
|
break;
|
|
3176
3180
|
default:
|
|
3177
|
-
h =
|
|
3181
|
+
h = P.x - q, m = P.y;
|
|
3178
3182
|
break;
|
|
3179
3183
|
}
|
|
3180
|
-
X = `M ${n},${r} L ${$.x},${$.y} C ${H},${w} ${h},${m} ${
|
|
3181
|
-
const C = 0.5,
|
|
3182
|
-
return D =
|
|
3184
|
+
X = `M ${n},${r} L ${$.x},${$.y} C ${H},${w} ${h},${m} ${P.x},${P.y} L ${i},${o}`;
|
|
3185
|
+
const C = 0.5, I = 0.5;
|
|
3186
|
+
return D = I * I * I * $.x + 3 * I * I * C * H + 3 * I * C * C * h + C * C * C * P.x, Y = I * I * I * $.y + 3 * I * I * C * w + 3 * I * C * C * m + C * C * C * P.y, /* @__PURE__ */ F(
|
|
3183
3187
|
$n,
|
|
3184
3188
|
{
|
|
3185
3189
|
id: e,
|
|
@@ -3199,8 +3203,8 @@ const Ir = oe(function({
|
|
|
3199
3203
|
}
|
|
3200
3204
|
);
|
|
3201
3205
|
});
|
|
3202
|
-
|
|
3203
|
-
function
|
|
3206
|
+
Pr.displayName = "BezierEdge";
|
|
3207
|
+
function Ir({ sourceX: t, sourceY: e, targetX: n, targetY: r }) {
|
|
3204
3208
|
const i = `M ${t},${e}L ${n},${r}`, o = (t + n) / 2, a = (e + r) / 2;
|
|
3205
3209
|
return [i, o, a, 0, 0];
|
|
3206
3210
|
}
|
|
@@ -3288,10 +3292,10 @@ function ns(t, e, n) {
|
|
|
3288
3292
|
};
|
|
3289
3293
|
return r.push(i), r;
|
|
3290
3294
|
}
|
|
3291
|
-
const
|
|
3295
|
+
const In = 160, Nn = 60, ln = 20, En = 12, Tn = 20;
|
|
3292
3296
|
function yr(t, e, n) {
|
|
3293
3297
|
var a, u;
|
|
3294
|
-
const r = t.width || ((a = t.measured) == null ? void 0 : a.width) ||
|
|
3298
|
+
const r = t.width || ((a = t.measured) == null ? void 0 : a.width) || In, i = t.height || ((u = t.measured) == null ? void 0 : u.height) || Nn, o = t._absolutePosition || t.position;
|
|
3295
3299
|
if (t.handles && t.handles.length > 0) {
|
|
3296
3300
|
for (const x of t.handles)
|
|
3297
3301
|
if (x.type === e && (!n || x.id === n)) {
|
|
@@ -3361,7 +3365,7 @@ function Lr(t, e) {
|
|
|
3361
3365
|
for (let o = 0; o < t.length; o++) {
|
|
3362
3366
|
const a = t[o];
|
|
3363
3367
|
if (a.hidden || e && e.has(a.id) || a.type === "group") continue;
|
|
3364
|
-
const u = a._absolutePosition || a.position, x = a.width || ((r = a.measured) == null ? void 0 : r.width) ||
|
|
3368
|
+
const u = a._absolutePosition || a.position, x = a.width || ((r = a.measured) == null ? void 0 : r.width) || In, d = a.height || ((i = a.measured) == null ? void 0 : i.height) || Nn;
|
|
3365
3369
|
n.push({
|
|
3366
3370
|
id: a.id,
|
|
3367
3371
|
x: u.x - ln,
|
|
@@ -3388,7 +3392,7 @@ function $r(t, e, n) {
|
|
|
3388
3392
|
for (let h = 0; h < u.length; h++) d.set(u[h], h);
|
|
3389
3393
|
const f = a.length, v = u.length, S = (h, m) => m * f + h, k = x.get(t.x), E = d.get(t.y), B = x.get(e.x), T = d.get(e.y);
|
|
3390
3394
|
if (k === void 0 || E === void 0 || B === void 0 || T === void 0) return null;
|
|
3391
|
-
const A = S(k, E), X = S(B, T), D = new Float64Array(f * v).fill(1 / 0), Y = new Float64Array(f * v).fill(1 / 0), $ = new Int32Array(f * v).fill(-1),
|
|
3395
|
+
const A = S(k, E), X = S(B, T), D = new Float64Array(f * v).fill(1 / 0), Y = new Float64Array(f * v).fill(1 / 0), $ = new Int32Array(f * v).fill(-1), P = new Int8Array(f * v).fill(-1), O = new Uint8Array(f * v);
|
|
3392
3396
|
D[A] = 0, Y[A] = Math.abs(a[B] - t.x) + Math.abs(u[T] - t.y);
|
|
3393
3397
|
const q = [A], H = 15, w = [[1, 0], [-1, 0], [0, 1], [0, -1]];
|
|
3394
3398
|
for (; q.length > 0; ) {
|
|
@@ -3407,16 +3411,16 @@ function $r(t, e, n) {
|
|
|
3407
3411
|
}
|
|
3408
3412
|
if (O[m]) continue;
|
|
3409
3413
|
O[m] = 1;
|
|
3410
|
-
const C = m / f | 0,
|
|
3414
|
+
const C = m / f | 0, I = m % f, L = a[I], K = u[C], it = P[m];
|
|
3411
3415
|
for (let nt = 0; nt < 4; nt++) {
|
|
3412
|
-
const lt =
|
|
3416
|
+
const lt = I + w[nt][0], vt = C + w[nt][1];
|
|
3413
3417
|
if (lt < 0 || lt >= f || vt < 0 || vt >= v) continue;
|
|
3414
3418
|
const wt = S(lt, vt);
|
|
3415
3419
|
if (O[wt]) continue;
|
|
3416
3420
|
const pt = a[lt], dt = u[vt];
|
|
3417
3421
|
if (xo(pt, dt, n) || !rr(L, K, pt, dt, n)) continue;
|
|
3418
3422
|
const Et = Math.abs(pt - L) + Math.abs(dt - K), ot = it >= 0 && it !== nt ? H : 0, ft = D[m] + Et + ot;
|
|
3419
|
-
ft < D[wt] && ($[wt] = m,
|
|
3423
|
+
ft < D[wt] && ($[wt] = m, P[wt] = nt, D[wt] = ft, Y[wt] = ft + Math.abs(a[B] - pt) + Math.abs(u[T] - dt), q.push(wt));
|
|
3420
3424
|
}
|
|
3421
3425
|
}
|
|
3422
3426
|
return null;
|
|
@@ -3540,14 +3544,14 @@ function rs(t, e) {
|
|
|
3540
3544
|
const n = {};
|
|
3541
3545
|
for (const o of t) n[o.id] = o;
|
|
3542
3546
|
const r = Lr(t, null), i = e.map((o) => {
|
|
3543
|
-
var
|
|
3547
|
+
var P, O, q, H;
|
|
3544
3548
|
const a = o.type || "default";
|
|
3545
3549
|
if (a === "bezier" || a === "simplebezier" || a === "default") return o;
|
|
3546
3550
|
const u = n[o.source], x = n[o.target];
|
|
3547
3551
|
if (!u || !x || u.hidden || x.hidden) return o;
|
|
3548
|
-
const d = yr(u, "source", o.sourceHandle), f = yr(x, "target", o.targetHandle), v = Ln(d, Tn), S = Ln(f, Tn), k = 5, E = r.filter((w) => w.id !== o.source && w.id !== o.target), B = u._absolutePosition || u.position, T = u.width || ((
|
|
3552
|
+
const d = yr(u, "source", o.sourceHandle), f = yr(x, "target", o.targetHandle), v = Ln(d, Tn), S = Ln(f, Tn), k = 5, E = r.filter((w) => w.id !== o.source && w.id !== o.target), B = u._absolutePosition || u.position, T = u.width || ((P = u.measured) == null ? void 0 : P.width) || In, A = u.height || ((O = u.measured) == null ? void 0 : O.height) || Nn;
|
|
3549
3553
|
E.push({ id: o.source, x: B.x - k, y: B.y - k, w: T + 2 * k, h: A + 2 * k });
|
|
3550
|
-
const X = x._absolutePosition || x.position, D = x.width || ((q = x.measured) == null ? void 0 : q.width) ||
|
|
3554
|
+
const X = x._absolutePosition || x.position, D = x.width || ((q = x.measured) == null ? void 0 : q.width) || In, Y = x.height || ((H = x.measured) == null ? void 0 : H.height) || Nn;
|
|
3551
3555
|
if (E.push({ id: o.target, x: X.x - k, y: X.y - k, w: D + 2 * k, h: Y + 2 * k }), E.length === 0) return o;
|
|
3552
3556
|
const $ = $r(v, S, E);
|
|
3553
3557
|
return $ && $.length >= 2 ? ($.unshift({ x: d.x, y: d.y }), $.push({ x: f.x, y: f.y }), { ...o, _routedPoints: $ }) : o;
|
|
@@ -3584,7 +3588,7 @@ const Br = oe(function({
|
|
|
3584
3588
|
const Y = sr(T);
|
|
3585
3589
|
X = Y.x, D = Y.y;
|
|
3586
3590
|
} else
|
|
3587
|
-
[A, X, D] =
|
|
3591
|
+
[A, X, D] = Ir({ sourceX: n, sourceY: r, targetX: i, targetY: o });
|
|
3588
3592
|
return /* @__PURE__ */ F(
|
|
3589
3593
|
$n,
|
|
3590
3594
|
{
|
|
@@ -3627,13 +3631,13 @@ const Ar = oe(function({
|
|
|
3627
3631
|
interactionWidth: X,
|
|
3628
3632
|
routedPoints: D
|
|
3629
3633
|
}) {
|
|
3630
|
-
let Y, $,
|
|
3634
|
+
let Y, $, P;
|
|
3631
3635
|
if (D && D.length >= 2) {
|
|
3632
3636
|
Y = or(D);
|
|
3633
3637
|
const O = sr(D);
|
|
3634
|
-
$ = O.x,
|
|
3638
|
+
$ = O.x, P = O.y;
|
|
3635
3639
|
} else
|
|
3636
|
-
[Y, $,
|
|
3640
|
+
[Y, $, P] = nr({
|
|
3637
3641
|
sourceX: n,
|
|
3638
3642
|
sourceY: r,
|
|
3639
3643
|
sourcePosition: a,
|
|
@@ -3649,7 +3653,7 @@ const Ar = oe(function({
|
|
|
3649
3653
|
id: e,
|
|
3650
3654
|
path: Y,
|
|
3651
3655
|
labelX: $,
|
|
3652
|
-
labelY:
|
|
3656
|
+
labelY: P,
|
|
3653
3657
|
label: x,
|
|
3654
3658
|
labelStyle: d,
|
|
3655
3659
|
labelShowBg: f,
|
|
@@ -3699,8 +3703,8 @@ const Dr = oe(function({
|
|
|
3699
3703
|
let D, Y, $;
|
|
3700
3704
|
if (X && X.length >= 2) {
|
|
3701
3705
|
D = or(X);
|
|
3702
|
-
const
|
|
3703
|
-
Y =
|
|
3706
|
+
const P = sr(X);
|
|
3707
|
+
Y = P.x, $ = P.y;
|
|
3704
3708
|
} else
|
|
3705
3709
|
[D, Y, $] = Tr({
|
|
3706
3710
|
sourceX: n,
|
|
@@ -3735,7 +3739,7 @@ const Mo = {
|
|
|
3735
3739
|
group: ho
|
|
3736
3740
|
}, Ro = {
|
|
3737
3741
|
// smoothstep/step are handled by the canvas worker directly (not React SVG)
|
|
3738
|
-
bezier:
|
|
3742
|
+
bezier: Pr,
|
|
3739
3743
|
straight: Br,
|
|
3740
3744
|
simplebezier: Dr
|
|
3741
3745
|
}, ko = 160, zo = 60;
|
|
@@ -3784,7 +3788,7 @@ function ss({
|
|
|
3784
3788
|
onEdgesChange: D,
|
|
3785
3789
|
onConnect: Y,
|
|
3786
3790
|
onConnectStart: $,
|
|
3787
|
-
onConnectEnd:
|
|
3791
|
+
onConnectEnd: P,
|
|
3788
3792
|
onNodeClick: O,
|
|
3789
3793
|
onNodeDoubleClick: q,
|
|
3790
3794
|
onNodeMouseEnter: H,
|
|
@@ -3792,7 +3796,7 @@ function ss({
|
|
|
3792
3796
|
onNodeMouseLeave: h,
|
|
3793
3797
|
onNodeContextMenu: m,
|
|
3794
3798
|
onNodeDragStart: C,
|
|
3795
|
-
onNodeDrag:
|
|
3799
|
+
onNodeDrag: I,
|
|
3796
3800
|
onNodeDragStop: L,
|
|
3797
3801
|
onEdgeClick: K,
|
|
3798
3802
|
onEdgeDoubleClick: it,
|
|
@@ -3811,7 +3815,7 @@ function ss({
|
|
|
3811
3815
|
onMove: gt,
|
|
3812
3816
|
onMoveEnd: Dt,
|
|
3813
3817
|
onDelete: Xt,
|
|
3814
|
-
onBeforeDelete:
|
|
3818
|
+
onBeforeDelete: It,
|
|
3815
3819
|
onError: se,
|
|
3816
3820
|
// Drag and drop
|
|
3817
3821
|
onDragOver: ae,
|
|
@@ -3896,8 +3900,8 @@ function ss({
|
|
|
3896
3900
|
const bt = Oe.current;
|
|
3897
3901
|
if (bt.size === W.size) {
|
|
3898
3902
|
let rt = !0;
|
|
3899
|
-
for (const
|
|
3900
|
-
if (!bt.has(
|
|
3903
|
+
for (const Pt of W)
|
|
3904
|
+
if (!bt.has(Pt)) {
|
|
3901
3905
|
rt = !1;
|
|
3902
3906
|
break;
|
|
3903
3907
|
}
|
|
@@ -3908,8 +3912,8 @@ function ss({
|
|
|
3908
3912
|
if (a === 0) return [];
|
|
3909
3913
|
const W = re.filter((bt) => Ct.has(bt.id));
|
|
3910
3914
|
return W.sort((bt, rt) => {
|
|
3911
|
-
const
|
|
3912
|
-
return
|
|
3915
|
+
const Pt = bt.type === "group" || !bt.parentId && W.some((g) => g.parentId === bt.id), l = rt.type === "group" || !rt.parentId && W.some((g) => g.parentId === rt.id);
|
|
3916
|
+
return Pt && !l ? -1 : !Pt && l ? 1 : 0;
|
|
3913
3917
|
});
|
|
3914
3918
|
}, [re, Ct, a]), Yt = _t(() => e.map((W) => Ct.has(W.id) ? { ...W, _customRendered: !0 } : W), [e, Ct]), Xn = _t(() => n.map((W) => W.type && de[W.type] ? { ...W, _customRendered: !0 } : W), [n, de]), {
|
|
3915
3919
|
wrapRef: xe,
|
|
@@ -3936,7 +3940,7 @@ function ss({
|
|
|
3936
3940
|
onEdgesChange: D,
|
|
3937
3941
|
onConnect: Y,
|
|
3938
3942
|
onConnectStart: $,
|
|
3939
|
-
onConnectEnd:
|
|
3943
|
+
onConnectEnd: P,
|
|
3940
3944
|
onNodeClick: O,
|
|
3941
3945
|
onNodeDoubleClick: q,
|
|
3942
3946
|
onNodeMouseEnter: H,
|
|
@@ -3944,7 +3948,7 @@ function ss({
|
|
|
3944
3948
|
onNodeMouseLeave: h,
|
|
3945
3949
|
onNodeContextMenu: m,
|
|
3946
3950
|
onNodeDragStart: C,
|
|
3947
|
-
onNodeDrag:
|
|
3951
|
+
onNodeDrag: I,
|
|
3948
3952
|
onNodeDragStop: L,
|
|
3949
3953
|
onEdgeClick: K,
|
|
3950
3954
|
onEdgeDoubleClick: it,
|
|
@@ -3963,7 +3967,7 @@ function ss({
|
|
|
3963
3967
|
onMove: gt,
|
|
3964
3968
|
onMoveEnd: Dt,
|
|
3965
3969
|
onDelete: Xt,
|
|
3966
|
-
onBeforeDelete:
|
|
3970
|
+
onBeforeDelete: It,
|
|
3967
3971
|
onError: se,
|
|
3968
3972
|
nodesDraggable: Ht,
|
|
3969
3973
|
nodesConnectable: Ut,
|
|
@@ -4007,24 +4011,24 @@ function ss({
|
|
|
4007
4011
|
tn.current = a, mt(() => {
|
|
4008
4012
|
let W;
|
|
4009
4013
|
const bt = () => {
|
|
4010
|
-
const
|
|
4011
|
-
if (l === 0 || !
|
|
4014
|
+
const Pt = Ve.current, l = tn.current;
|
|
4015
|
+
if (l === 0 || !Pt.length) return;
|
|
4012
4016
|
const g = ut.cameraRef.current, c = ut.wrapRef.current;
|
|
4013
4017
|
if (!c) return;
|
|
4014
4018
|
const p = c.clientWidth, R = c.clientHeight, z = (-g.x + p / 2) / g.zoom, y = (-g.y + R / 2) / g.zoom, b = Ce.current;
|
|
4015
4019
|
let M = b.size;
|
|
4016
|
-
for (const N of
|
|
4020
|
+
for (const N of Pt)
|
|
4017
4021
|
(N.selected || N.dragging) && M++;
|
|
4018
4022
|
const _ = Math.max(0, l - M);
|
|
4019
4023
|
if (_ === 0)
|
|
4020
4024
|
je((N) => N.size === 0 ? N : /* @__PURE__ */ new Set());
|
|
4021
4025
|
else {
|
|
4022
4026
|
const N = new Set(b);
|
|
4023
|
-
for (const Z of
|
|
4027
|
+
for (const Z of Pt)
|
|
4024
4028
|
(Z.selected || Z.dragging) && N.add(Z.id);
|
|
4025
4029
|
const j = [];
|
|
4026
|
-
for (let Z = 0; Z <
|
|
4027
|
-
const at =
|
|
4030
|
+
for (let Z = 0; Z < Pt.length; Z++) {
|
|
4031
|
+
const at = Pt[Z];
|
|
4028
4032
|
if (N.has(at.id)) continue;
|
|
4029
4033
|
const V = at._absolutePosition || at.position, ct = V.x + (at.width || 160) / 2 - z, St = V.y + (at.height || 60) / 2 - y;
|
|
4030
4034
|
j.push({ id: at.id, dist: ct * ct + St * St });
|
|
@@ -4049,13 +4053,13 @@ function ss({
|
|
|
4049
4053
|
mt(() => {
|
|
4050
4054
|
if (!o || !ut.workerRef.current) return;
|
|
4051
4055
|
let W = !1;
|
|
4052
|
-
async function bt(
|
|
4053
|
-
const l = new Blob([
|
|
4056
|
+
async function bt(Pt) {
|
|
4057
|
+
const l = new Blob([Pt], { type: "image/svg+xml" }), g = URL.createObjectURL(l), c = new Image();
|
|
4054
4058
|
return c.src = g, await c.decode(), URL.revokeObjectURL(g), createImageBitmap(c);
|
|
4055
4059
|
}
|
|
4056
4060
|
async function rt() {
|
|
4057
4061
|
var p, R, z;
|
|
4058
|
-
const
|
|
4062
|
+
const Pt = {}, l = [], g = {}, c = {};
|
|
4059
4063
|
for (const [y, b] of Object.entries(o)) {
|
|
4060
4064
|
if (typeof b == "function") {
|
|
4061
4065
|
g[y] = b;
|
|
@@ -4067,13 +4071,13 @@ function ss({
|
|
|
4067
4071
|
}
|
|
4068
4072
|
try {
|
|
4069
4073
|
let M;
|
|
4070
|
-
b instanceof ImageBitmap ? M = b : typeof b == "string" ? M = await bt(b) : b instanceof HTMLImageElement ? M = await createImageBitmap(b) : b instanceof HTMLCanvasElement && (M = await createImageBitmap(b)), M && !W && (
|
|
4074
|
+
b instanceof ImageBitmap ? M = b : typeof b == "string" ? M = await bt(b) : b instanceof HTMLImageElement ? M = await createImageBitmap(b) : b instanceof HTMLCanvasElement && (M = await createImageBitmap(b)), M && !W && (Pt[y] = M, l.push(M));
|
|
4071
4075
|
} catch (M) {
|
|
4072
4076
|
console.warn(`[InfiniteCanvas] Failed to convert canvasNodeType "${y}":`, M);
|
|
4073
4077
|
}
|
|
4074
4078
|
}
|
|
4075
|
-
if (!W && Object.keys(
|
|
4076
|
-
{ type: "nodeTypeBitmaps", data: { bitmaps:
|
|
4079
|
+
if (!W && Object.keys(Pt).length > 0 && ((p = ut.workerRef.current) == null || p.postMessage(
|
|
4080
|
+
{ type: "nodeTypeBitmaps", data: { bitmaps: Pt } },
|
|
4077
4081
|
l
|
|
4078
4082
|
)), !W && Object.keys(c).length > 0 && ((R = ut.workerRef.current) == null || R.postMessage(
|
|
4079
4083
|
{ type: "nodeTypeConfigs", data: { configs: c } }
|
|
@@ -4107,7 +4111,7 @@ function ss({
|
|
|
4107
4111
|
W = !0;
|
|
4108
4112
|
};
|
|
4109
4113
|
}, [o, e, ut.workerRef]);
|
|
4110
|
-
const Vt = ve(
|
|
4114
|
+
const Vt = ve(Ie), en = Vt && typeof Vt.getState == "function";
|
|
4111
4115
|
mt(() => {
|
|
4112
4116
|
en && queueMicrotask(() => {
|
|
4113
4117
|
Vt.setState({
|
|
@@ -4163,8 +4167,8 @@ function ss({
|
|
|
4163
4167
|
mt(() => {
|
|
4164
4168
|
let W;
|
|
4165
4169
|
const bt = () => {
|
|
4166
|
-
const rt = ut.cameraRef.current,
|
|
4167
|
-
he.current && (he.current.style.transform =
|
|
4170
|
+
const rt = ut.cameraRef.current, Pt = `translate(${rt.x}px, ${rt.y}px) scale(${rt.zoom})`, l = `translate(${rt.x}, ${rt.y}) scale(${rt.zoom})`;
|
|
4171
|
+
he.current && (he.current.style.transform = Pt), ge.current && ge.current.setAttribute("transform", l), nn.current && (nn.current.style.transform = Pt), rn.current && (rn.current.style.transform = Pt);
|
|
4168
4172
|
const g = xe.current;
|
|
4169
4173
|
if (g) {
|
|
4170
4174
|
const c = rt.zoom < 0.15 ? "lod-minimal" : rt.zoom < 0.35 ? "lod-reduced" : null;
|
|
@@ -4180,12 +4184,12 @@ function ss({
|
|
|
4180
4184
|
let W;
|
|
4181
4185
|
const bt = () => {
|
|
4182
4186
|
var b, M;
|
|
4183
|
-
const rt = ut.cameraRef.current,
|
|
4184
|
-
if (!
|
|
4187
|
+
const rt = ut.cameraRef.current, Pt = ut.wrapRef.current;
|
|
4188
|
+
if (!Pt) {
|
|
4185
4189
|
W = requestAnimationFrame(bt);
|
|
4186
4190
|
return;
|
|
4187
4191
|
}
|
|
4188
|
-
const l =
|
|
4192
|
+
const l = Pt.getBoundingClientRect(), g = 200, c = -rt.x / rt.zoom - g, p = -rt.y / rt.zoom - g, R = (l.width - rt.x) / rt.zoom + g, z = (l.height - rt.y) / rt.zoom + g, y = /* @__PURE__ */ new Set();
|
|
4189
4193
|
for (const _ of pe) {
|
|
4190
4194
|
const N = _._absolutePosition || _.position, j = _.width || ((b = _.measured) == null ? void 0 : b.width) || 200, G = _.height || ((M = _.measured) == null ? void 0 : M.height) || 100;
|
|
4191
4195
|
N.x + j >= c && N.x <= R && N.y + G >= p && N.y <= z && y.add(_.id);
|
|
@@ -4200,7 +4204,7 @@ function ss({
|
|
|
4200
4204
|
return W = requestAnimationFrame(bt), () => cancelAnimationFrame(W);
|
|
4201
4205
|
}, [pe, ut]);
|
|
4202
4206
|
const qn = _t(() => Ge ? pe.filter((W) => Ge.has(W.id)) : pe, [pe, Ge]), jn = pe.length > 0, On = Ue.length > 0;
|
|
4203
|
-
return /* @__PURE__ */ F(
|
|
4207
|
+
return /* @__PURE__ */ F(Ie.Provider, { value: zt, children: /* @__PURE__ */ Ft(
|
|
4204
4208
|
"div",
|
|
4205
4209
|
{
|
|
4206
4210
|
ref: xe,
|
|
@@ -4337,7 +4341,7 @@ function ss({
|
|
|
4337
4341
|
}
|
|
4338
4342
|
function is({ children: t }) {
|
|
4339
4343
|
const e = tt(null);
|
|
4340
|
-
return e.current || (e.current = Vr()), /* @__PURE__ */ F(
|
|
4344
|
+
return e.current || (e.current = Vr()), /* @__PURE__ */ F(Ie.Provider, { value: e.current, children: t });
|
|
4341
4345
|
}
|
|
4342
4346
|
function Hr(t, e) {
|
|
4343
4347
|
const n = [], r = /* @__PURE__ */ new Map(), i = [];
|
|
@@ -4386,7 +4390,7 @@ function Eo(t, e) {
|
|
|
4386
4390
|
function Co(t, e) {
|
|
4387
4391
|
return Hr(t, e);
|
|
4388
4392
|
}
|
|
4389
|
-
function
|
|
4393
|
+
function Po(t, e) {
|
|
4390
4394
|
return Hr(t, e);
|
|
4391
4395
|
}
|
|
4392
4396
|
function as(t, e) {
|
|
@@ -4406,14 +4410,14 @@ function cs(t) {
|
|
|
4406
4410
|
}
|
|
4407
4411
|
function ls(t) {
|
|
4408
4412
|
const [e, n] = Ot(t), r = U(
|
|
4409
|
-
(i) => n((o) =>
|
|
4413
|
+
(i) => n((o) => Po(i, o)),
|
|
4410
4414
|
[]
|
|
4411
4415
|
);
|
|
4412
4416
|
return [e, n, r];
|
|
4413
4417
|
}
|
|
4414
|
-
function
|
|
4418
|
+
function Io() {
|
|
4415
4419
|
const t = Rr(), e = U(() => typeof t.getState == "function" ? t.getState() : t, [t]), n = U(() => [...e().nodesRef.current], [e]), r = U(() => [...e().edgesRef.current], [e]), i = U((w) => e().nodesRef.current.find((h) => h.id === w), [e]), o = U((w) => e().edgesRef.current.find((h) => h.id === w), [e]), a = U((w) => {
|
|
4416
|
-
var h, m, C,
|
|
4420
|
+
var h, m, C, I;
|
|
4417
4421
|
if (typeof w == "function") {
|
|
4418
4422
|
const L = w(e().nodesRef.current);
|
|
4419
4423
|
(m = (h = e().onNodesChangeRef).current) == null || m.call(h, [
|
|
@@ -4421,12 +4425,12 @@ function Po() {
|
|
|
4421
4425
|
...L.map((K) => ({ type: "add", item: K }))
|
|
4422
4426
|
]);
|
|
4423
4427
|
} else
|
|
4424
|
-
(
|
|
4428
|
+
(I = (C = e().onNodesChangeRef).current) == null || I.call(C, [
|
|
4425
4429
|
...e().nodesRef.current.map((L) => ({ id: L.id, type: "remove" })),
|
|
4426
4430
|
...w.map((L) => ({ type: "add", item: L }))
|
|
4427
4431
|
]);
|
|
4428
4432
|
}, [e]), u = U((w) => {
|
|
4429
|
-
var h, m, C,
|
|
4433
|
+
var h, m, C, I;
|
|
4430
4434
|
if (typeof w == "function") {
|
|
4431
4435
|
const L = w(e().edgesRef.current);
|
|
4432
4436
|
(m = (h = e().onEdgesChangeRef).current) == null || m.call(h, [
|
|
@@ -4434,18 +4438,18 @@ function Po() {
|
|
|
4434
4438
|
...L.map((K) => ({ type: "add", item: K }))
|
|
4435
4439
|
]);
|
|
4436
4440
|
} else
|
|
4437
|
-
(
|
|
4441
|
+
(I = (C = e().onEdgesChangeRef).current) == null || I.call(C, [
|
|
4438
4442
|
...e().edgesRef.current.map((L) => ({ id: L.id, type: "remove" })),
|
|
4439
4443
|
...w.map((L) => ({ type: "add", item: L }))
|
|
4440
4444
|
]);
|
|
4441
4445
|
}, [e]), x = U((w) => {
|
|
4442
4446
|
var m, C;
|
|
4443
4447
|
const h = Array.isArray(w) ? w : [w];
|
|
4444
|
-
(C = (m = e().onNodesChangeRef).current) == null || C.call(m, h.map((
|
|
4448
|
+
(C = (m = e().onNodesChangeRef).current) == null || C.call(m, h.map((I) => ({ type: "add", item: I })));
|
|
4445
4449
|
}, [e]), d = U((w) => {
|
|
4446
4450
|
var m, C;
|
|
4447
4451
|
const h = Array.isArray(w) ? w : [w];
|
|
4448
|
-
(C = (m = e().onEdgesChangeRef).current) == null || C.call(m, h.map((
|
|
4452
|
+
(C = (m = e().onEdgesChangeRef).current) == null || C.call(m, h.map((I) => ({ type: "add", item: I })));
|
|
4449
4453
|
}, [e]), f = U(({ nodes: w = [], edges: h = [] }) => {
|
|
4450
4454
|
if (w.length && e().onNodesChangeRef.current) {
|
|
4451
4455
|
e().onNodesChangeRef.current(w.map((C) => ({ id: C.id, type: "remove" })));
|
|
@@ -4461,15 +4465,15 @@ function Po() {
|
|
|
4461
4465
|
e().cameraRef.current = { ...w }, e().sendCamera();
|
|
4462
4466
|
return;
|
|
4463
4467
|
}
|
|
4464
|
-
const m = { ...e().cameraRef.current }, C = performance.now(),
|
|
4468
|
+
const m = { ...e().cameraRef.current }, C = performance.now(), I = (L) => {
|
|
4465
4469
|
const K = L - C, it = Math.min(K / h, 1), nt = 1 - Math.pow(1 - it, 3);
|
|
4466
4470
|
e().cameraRef.current = {
|
|
4467
4471
|
x: m.x + (w.x - m.x) * nt,
|
|
4468
4472
|
y: m.y + (w.y - m.y) * nt,
|
|
4469
4473
|
zoom: m.zoom + (w.zoom - m.zoom) * nt
|
|
4470
|
-
}, e().sendCamera(), it < 1 && (S.current = requestAnimationFrame(
|
|
4474
|
+
}, e().sendCamera(), it < 1 && (S.current = requestAnimationFrame(I));
|
|
4471
4475
|
};
|
|
4472
|
-
S.current = requestAnimationFrame(
|
|
4476
|
+
S.current = requestAnimationFrame(I);
|
|
4473
4477
|
}, [e]), E = U((w, h) => {
|
|
4474
4478
|
const m = {
|
|
4475
4479
|
x: w.x ?? e().cameraRef.current.x,
|
|
@@ -4480,8 +4484,8 @@ function Po() {
|
|
|
4480
4484
|
}, [e, k]), B = U(() => e().cameraRef.current.zoom, [e]), T = U((w) => {
|
|
4481
4485
|
const h = e().cameraRef.current, m = e().wrapRef.current;
|
|
4482
4486
|
if (!m) return;
|
|
4483
|
-
const C = m.getBoundingClientRect(),
|
|
4484
|
-
x:
|
|
4487
|
+
const C = m.getBoundingClientRect(), I = C.width / 2, L = C.height / 2, K = 1.2, it = {
|
|
4488
|
+
x: I - (I - h.x) * K,
|
|
4485
4489
|
y: L - (L - h.y) * K,
|
|
4486
4490
|
zoom: Math.min(e().zoomMax, h.zoom * K)
|
|
4487
4491
|
};
|
|
@@ -4489,8 +4493,8 @@ function Po() {
|
|
|
4489
4493
|
}, [e, k]), A = U((w) => {
|
|
4490
4494
|
const h = e().cameraRef.current, m = e().wrapRef.current;
|
|
4491
4495
|
if (!m) return;
|
|
4492
|
-
const C = m.getBoundingClientRect(),
|
|
4493
|
-
x:
|
|
4496
|
+
const C = m.getBoundingClientRect(), I = C.width / 2, L = C.height / 2, K = 1 / 1.2, it = {
|
|
4497
|
+
x: I - (I - h.x) * K,
|
|
4494
4498
|
y: L - (L - h.y) * K,
|
|
4495
4499
|
zoom: Math.max(e().zoomMin, h.zoom * K)
|
|
4496
4500
|
};
|
|
@@ -4498,7 +4502,7 @@ function Po() {
|
|
|
4498
4502
|
}, [e, k]), X = U((w, h) => {
|
|
4499
4503
|
const m = e().cameraRef.current, C = e().wrapRef.current;
|
|
4500
4504
|
if (!C) return;
|
|
4501
|
-
const
|
|
4505
|
+
const I = C.getBoundingClientRect(), L = I.width / 2, K = I.height / 2, it = Math.min(e().zoomMax, Math.max(e().zoomMin, w)), nt = it / m.zoom, lt = {
|
|
4502
4506
|
x: L - (L - m.x) * nt,
|
|
4503
4507
|
y: K - (K - m.y) * nt,
|
|
4504
4508
|
zoom: it
|
|
@@ -4509,25 +4513,25 @@ function Po() {
|
|
|
4509
4513
|
if (!h.length) return;
|
|
4510
4514
|
const m = e().wrapRef.current;
|
|
4511
4515
|
if (!m) return;
|
|
4512
|
-
const C = m.getBoundingClientRect(),
|
|
4516
|
+
const C = m.getBoundingClientRect(), I = w.padding ?? 0.1, L = w.nodes ? h.filter((nt) => w.nodes.some((lt) => lt.id === nt.id)) : h;
|
|
4513
4517
|
if (!L.length) return;
|
|
4514
|
-
const K = Vn(L), it = dn(K, C.width, C.height,
|
|
4518
|
+
const K = Vn(L), it = dn(K, C.width, C.height, I);
|
|
4515
4519
|
w.maxZoom && (it.zoom = Math.min(it.zoom, w.maxZoom)), w.minZoom && (it.zoom = Math.max(it.zoom, w.minZoom)), k(it, w.duration);
|
|
4516
4520
|
}, [e, k]), Y = U((w, h = {}) => {
|
|
4517
4521
|
const m = e().wrapRef.current;
|
|
4518
4522
|
if (!m) return;
|
|
4519
|
-
const C = m.getBoundingClientRect(),
|
|
4523
|
+
const C = m.getBoundingClientRect(), I = h.padding ?? 0.1, L = dn(w, C.width, C.height, I);
|
|
4520
4524
|
h.maxZoom && (L.zoom = Math.min(L.zoom, h.maxZoom)), h.minZoom && (L.zoom = Math.max(L.zoom, h.minZoom)), k(L, h.duration);
|
|
4521
4525
|
}, [e, k]), $ = U((w, h, m = {}) => {
|
|
4522
4526
|
const C = e().wrapRef.current;
|
|
4523
4527
|
if (!C) return;
|
|
4524
|
-
const
|
|
4525
|
-
x:
|
|
4526
|
-
y:
|
|
4528
|
+
const I = C.getBoundingClientRect(), L = m.zoom ?? e().cameraRef.current.zoom, K = {
|
|
4529
|
+
x: I.width / 2 - w * L,
|
|
4530
|
+
y: I.height / 2 - h * L,
|
|
4527
4531
|
zoom: L
|
|
4528
4532
|
};
|
|
4529
4533
|
k(K, m.duration);
|
|
4530
|
-
}, [e, k]),
|
|
4534
|
+
}, [e, k]), P = U(() => ({
|
|
4531
4535
|
nodes: [...e().nodesRef.current],
|
|
4532
4536
|
edges: [...e().edgesRef.current],
|
|
4533
4537
|
viewport: { ...e().cameraRef.current }
|
|
@@ -4540,11 +4544,11 @@ function Po() {
|
|
|
4540
4544
|
y: w.y * h.zoom + h.y + C.top
|
|
4541
4545
|
};
|
|
4542
4546
|
}, [e]), H = U((w, h) => {
|
|
4543
|
-
var
|
|
4547
|
+
var I, L;
|
|
4544
4548
|
const m = e().nodesRef.current.find((K) => K.id === w);
|
|
4545
4549
|
if (!m) return;
|
|
4546
4550
|
const C = typeof h == "function" ? h(m.data) : { ...m.data, ...h };
|
|
4547
|
-
(L = (
|
|
4551
|
+
(L = (I = e().onNodesChangeRef).current) == null || L.call(I, [{ id: w, type: "replace", item: { ...m, data: C } }]);
|
|
4548
4552
|
}, [e]);
|
|
4549
4553
|
return {
|
|
4550
4554
|
getNodes: n,
|
|
@@ -4568,7 +4572,7 @@ function Po() {
|
|
|
4568
4572
|
screenToFlowPosition: O,
|
|
4569
4573
|
flowToScreenPosition: q,
|
|
4570
4574
|
updateNodeData: H,
|
|
4571
|
-
toObject:
|
|
4575
|
+
toObject: P
|
|
4572
4576
|
};
|
|
4573
4577
|
}
|
|
4574
4578
|
function ds() {
|
|
@@ -4750,22 +4754,22 @@ function Cs({
|
|
|
4750
4754
|
}
|
|
4751
4755
|
const D = 40;
|
|
4752
4756
|
B -= D, T -= D, A += D, X += D;
|
|
4753
|
-
const Y = A - B, $ = X - T,
|
|
4757
|
+
const Y = A - B, $ = X - T, P = Math.min(t / Y, e / $), O = (t - Y * P) / 2, q = (e - $ * P) / 2;
|
|
4754
4758
|
for (const h of E) {
|
|
4755
4759
|
if (h.hidden) continue;
|
|
4756
|
-
const m = h.width || Jn, C = h.height || Kn,
|
|
4757
|
-
S.fillStyle = h.selected ? "#f59e0b" : typeof n == "function" ? n(h) : n, S.fillRect(
|
|
4760
|
+
const m = h.width || Jn, C = h.height || Kn, I = (h.position.x - B) * P + O, L = (h.position.y - T) * P + q, K = m * P, it = C * P;
|
|
4761
|
+
S.fillStyle = h.selected ? "#f59e0b" : typeof n == "function" ? n(h) : n, S.fillRect(I, L, Math.max(K, 2), Math.max(it, 2));
|
|
4758
4762
|
}
|
|
4759
4763
|
const H = u.cameraRef.current, w = u.wrapRef.current;
|
|
4760
4764
|
if (w) {
|
|
4761
|
-
const h = w.getBoundingClientRect(), m = -H.x / H.zoom, C = -H.y / H.zoom,
|
|
4765
|
+
const h = w.getBoundingClientRect(), m = -H.x / H.zoom, C = -H.y / H.zoom, I = h.width / H.zoom, L = h.height / H.zoom;
|
|
4762
4766
|
S.fillStyle = i, S.fillRect(0, 0, t, e);
|
|
4763
|
-
const K = (m - B) *
|
|
4767
|
+
const K = (m - B) * P + O, it = (C - T) * P + q, nt = I * P, lt = L * P;
|
|
4764
4768
|
S.clearRect(K, it, nt, lt);
|
|
4765
4769
|
for (const vt of E) {
|
|
4766
4770
|
if (vt.hidden) continue;
|
|
4767
|
-
const wt = vt.width || Jn, pt = vt.height || Kn, dt = (vt.position.x - B) *
|
|
4768
|
-
S.fillStyle = vt.selected ? "#f59e0b" : typeof n == "function" ? n(vt) : n, S.fillRect(dt, Et, Math.max(wt *
|
|
4771
|
+
const wt = vt.width || Jn, pt = vt.height || Kn, dt = (vt.position.x - B) * P + O, Et = (vt.position.y - T) * P + q;
|
|
4772
|
+
S.fillStyle = vt.selected ? "#f59e0b" : typeof n == "function" ? n(vt) : n, S.fillRect(dt, Et, Math.max(wt * P, 2), Math.max(pt * P, 2));
|
|
4769
4773
|
}
|
|
4770
4774
|
S.strokeStyle = "#3b82f6", S.lineWidth = 1.5, S.strokeRect(K, it, nt, lt);
|
|
4771
4775
|
}
|
|
@@ -4852,7 +4856,7 @@ function Do({
|
|
|
4852
4856
|
"aria-label": S = "Canvas controls",
|
|
4853
4857
|
children: k
|
|
4854
4858
|
}) {
|
|
4855
|
-
const E = Lt(), { zoomIn: B, zoomOut: T, fitView: A, getZoom: X } =
|
|
4859
|
+
const E = Lt(), { zoomIn: B, zoomOut: T, fitView: A, getZoom: X } = Io(), [D, Y] = Ot(!0), $ = X() <= E.zoomMin, P = X() >= E.zoomMax, O = U(() => {
|
|
4856
4860
|
B(), i == null || i();
|
|
4857
4861
|
}, [B, i]), q = U(() => {
|
|
4858
4862
|
T(), o == null || o();
|
|
@@ -4890,7 +4894,7 @@ function Do({
|
|
|
4890
4894
|
Cn,
|
|
4891
4895
|
{
|
|
4892
4896
|
onClick: O,
|
|
4893
|
-
disabled:
|
|
4897
|
+
disabled: P,
|
|
4894
4898
|
title: "Zoom in",
|
|
4895
4899
|
"aria-label": "Zoom in",
|
|
4896
4900
|
className: "ric-controls-zoomin",
|
|
@@ -4948,8 +4952,8 @@ const Ho = {
|
|
|
4948
4952
|
lineHeight: 1,
|
|
4949
4953
|
color: "#333",
|
|
4950
4954
|
padding: 0
|
|
4951
|
-
},
|
|
4952
|
-
function
|
|
4955
|
+
}, Ps = oe(Do);
|
|
4956
|
+
function Is({
|
|
4953
4957
|
variant: t = "lines",
|
|
4954
4958
|
gap: e = 40,
|
|
4955
4959
|
size: n = 1,
|
|
@@ -5008,7 +5012,7 @@ function Ts({
|
|
|
5008
5012
|
}) {
|
|
5009
5013
|
const v = ve(un), S = Lt(), k = tt(null), E = U((A, X) => {
|
|
5010
5014
|
A.stopPropagation(), A.preventDefault();
|
|
5011
|
-
const D = S.nodesRef.current.find((
|
|
5015
|
+
const D = S.nodesRef.current.find((P) => P.id === v);
|
|
5012
5016
|
if (!D) return;
|
|
5013
5017
|
k.current = {
|
|
5014
5018
|
direction: X,
|
|
@@ -5017,16 +5021,16 @@ function Ts({
|
|
|
5017
5021
|
width: D.width || 160,
|
|
5018
5022
|
height: D.height || 60
|
|
5019
5023
|
}, x == null || x(A, { width: k.current.width, height: k.current.height });
|
|
5020
|
-
const Y = (
|
|
5021
|
-
var C,
|
|
5024
|
+
const Y = (P) => {
|
|
5025
|
+
var C, I;
|
|
5022
5026
|
if (!k.current) return;
|
|
5023
|
-
const O = k.current, q = S.cameraRef.current, H = (
|
|
5027
|
+
const O = k.current, q = S.cameraRef.current, H = (P.clientX - O.startX) / q.zoom, w = (P.clientY - O.startY) / q.zoom;
|
|
5024
5028
|
let h = O.width, m = O.height;
|
|
5025
|
-
O.direction.includes("e") && (h = Math.min(n, Math.max(t, O.width + H))), O.direction.includes("w") && (h = Math.min(n, Math.max(t, O.width - H))), O.direction.includes("s") && (m = Math.min(r, Math.max(e, O.height + w))), O.direction.includes("n") && (m = Math.min(r, Math.max(e, O.height - w))), (
|
|
5029
|
+
O.direction.includes("e") && (h = Math.min(n, Math.max(t, O.width + H))), O.direction.includes("w") && (h = Math.min(n, Math.max(t, O.width - H))), O.direction.includes("s") && (m = Math.min(r, Math.max(e, O.height + w))), O.direction.includes("n") && (m = Math.min(r, Math.max(e, O.height - w))), (I = (C = S.onNodesChangeRef).current) == null || I.call(C, [
|
|
5026
5030
|
{ id: v, type: "dimensions", dimensions: { width: h, height: m }, setAttributes: !0 }
|
|
5027
|
-
]), d == null || d(
|
|
5028
|
-
}, $ = (
|
|
5029
|
-
k.current = null, f == null || f(
|
|
5031
|
+
]), d == null || d(P, { width: h, height: m });
|
|
5032
|
+
}, $ = (P) => {
|
|
5033
|
+
k.current = null, f == null || f(P, {}), window.removeEventListener("pointermove", Y), window.removeEventListener("pointerup", $);
|
|
5030
5034
|
};
|
|
5031
5035
|
window.addEventListener("pointermove", Y), window.addEventListener("pointerup", $);
|
|
5032
5036
|
}, [v, S, t, e, n, r, x, d, f]);
|
|
@@ -5198,7 +5202,7 @@ function _r({
|
|
|
5198
5202
|
let d;
|
|
5199
5203
|
switch (a) {
|
|
5200
5204
|
case "straight":
|
|
5201
|
-
[d] =
|
|
5205
|
+
[d] = Ir({ sourceX: t, sourceY: e, targetX: n, targetY: r });
|
|
5202
5206
|
break;
|
|
5203
5207
|
case "step":
|
|
5204
5208
|
[d] = nr({
|
|
@@ -5262,18 +5266,18 @@ function Ws(t) {
|
|
|
5262
5266
|
return { x: r.x, y: r.y, x2: r.x + e, y2: r.y + n };
|
|
5263
5267
|
}
|
|
5264
5268
|
export {
|
|
5265
|
-
|
|
5269
|
+
Is as Background,
|
|
5266
5270
|
$n as BaseEdge,
|
|
5267
|
-
|
|
5271
|
+
Pr as BezierEdge,
|
|
5268
5272
|
Ds as ConnectionLine,
|
|
5269
5273
|
Cn as ControlButton,
|
|
5270
|
-
|
|
5274
|
+
Ps as Controls,
|
|
5271
5275
|
Vo as DefaultNode,
|
|
5272
5276
|
Bs as EdgeLabelRenderer,
|
|
5273
5277
|
go as EdgeText,
|
|
5274
5278
|
$s as EdgeToolbar,
|
|
5275
5279
|
ho as GroupNode,
|
|
5276
|
-
|
|
5280
|
+
Pn as Handle,
|
|
5277
5281
|
ss as InfiniteCanvas,
|
|
5278
5282
|
is as InfiniteCanvasProvider,
|
|
5279
5283
|
uo as InputNode,
|
|
@@ -5291,7 +5295,7 @@ export {
|
|
|
5291
5295
|
Br as StraightEdge,
|
|
5292
5296
|
As as ViewportPortal,
|
|
5293
5297
|
as as addEdge,
|
|
5294
|
-
|
|
5298
|
+
Po as applyEdgeChanges,
|
|
5295
5299
|
Co as applyNodeChanges,
|
|
5296
5300
|
Zo as boxToRect,
|
|
5297
5301
|
Lr as buildObstacles,
|
|
@@ -5311,7 +5315,7 @@ export {
|
|
|
5311
5315
|
sr as getRoutedLabelPosition,
|
|
5312
5316
|
Tr as getSimpleBezierPath,
|
|
5313
5317
|
nr as getSmoothStepPath,
|
|
5314
|
-
|
|
5318
|
+
Ir as getStraightPath,
|
|
5315
5319
|
dn as getViewportForBounds,
|
|
5316
5320
|
Xo as isEdge,
|
|
5317
5321
|
Yo as isNode,
|
|
@@ -5339,7 +5343,7 @@ export {
|
|
|
5339
5343
|
Ss as useOnNodesChangeMiddleware,
|
|
5340
5344
|
ms as useOnSelectionChange,
|
|
5341
5345
|
xs as useOnViewportChange,
|
|
5342
|
-
|
|
5346
|
+
Io as useReactFlow,
|
|
5343
5347
|
Rs as useStore,
|
|
5344
5348
|
ks as useStoreApi,
|
|
5345
5349
|
zs as useUndoRedo,
|