@ankhzet/graph 0.4.1 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/dist/index.d.ts +8 -8
- package/dist/index.js +94 -100
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
- package/src/GraphCanvas.tsx +8 -1
- package/src/graph/nodes/index.ts +1 -1
- package/src/graph/nodes/layout/LayeredLayout.ts +32 -61
- package/src/graph/nodes/layout/Layout.ts +1 -1
- package/src/graph/nodes/layout/Layouter.ts +10 -10
package/CHANGELOG.md
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -135,7 +135,7 @@ export declare class GraphAdapter<Node extends GraphNodeInterface> extends Batch
|
|
|
135
135
|
|
|
136
136
|
export declare type GraphBarrier<N extends GraphNodeInterface> = (node: N) => boolean;
|
|
137
137
|
|
|
138
|
-
export declare function GraphCanvas<Node extends GraphNodeInterface<ID, Data, Render>, ID = any, Data = any, Render = any>({ innerRef, nodes, subset, coordinator, menu, onSelectNode, onContextMenu, ...rest }: GraphNodeProps<Node>): JSX.Element;
|
|
138
|
+
export declare function GraphCanvas<Node extends GraphNodeInterface<ID, Data, Render>, ID = any, Data = any, Render = any>({ innerRef, nodes, subset, coordinator, layouter, menu, onSelectNode, onContextMenu, ...rest }: GraphNodeProps<Node>): JSX.Element;
|
|
139
139
|
|
|
140
140
|
declare interface GraphDTO {
|
|
141
141
|
title: string;
|
|
@@ -231,6 +231,7 @@ export declare class GraphNodeJoints<ID> implements NodeJoints<ID> {
|
|
|
231
231
|
export declare interface GraphNodeProps<Node extends GraphNodeInterface> {
|
|
232
232
|
innerRef?: Ref<GraphRef<Node>>;
|
|
233
233
|
coordinator: Coordinator;
|
|
234
|
+
layouter?: Layouter<Node>;
|
|
234
235
|
nodes: Node[];
|
|
235
236
|
subset?: Node['id'][];
|
|
236
237
|
menu: IMenuProvider<any>;
|
|
@@ -317,8 +318,8 @@ export declare interface Layer<Node extends GraphNodeInterface> {
|
|
|
317
318
|
}
|
|
318
319
|
|
|
319
320
|
export declare class LayeredLayout<Node extends GraphNodeInterface> extends NodesGraph<Node> implements Layout<Node> {
|
|
321
|
+
#private;
|
|
320
322
|
layers: Layers<Node>;
|
|
321
|
-
private hash;
|
|
322
323
|
get center(): Position;
|
|
323
324
|
spread(layer: number, nodes: Node['id'][]): number;
|
|
324
325
|
findMax(node: Node): number;
|
|
@@ -327,28 +328,27 @@ export declare class LayeredLayout<Node extends GraphNodeInterface> extends Node
|
|
|
327
328
|
remove(node: Node, layer: number): boolean;
|
|
328
329
|
put(node: Node, layer: number): void;
|
|
329
330
|
findLayer(node: Node): number;
|
|
330
|
-
findLayers(nodes: Node[]):
|
|
331
|
+
findLayers(nodes: Node[]): Record<string, number>;
|
|
331
332
|
shift(node: Node, fromLayer: number, offset: number, chain?: Node[]): number;
|
|
332
333
|
private all;
|
|
333
334
|
private walk;
|
|
334
335
|
}
|
|
335
336
|
|
|
336
|
-
export declare interface Layers<Node extends GraphNodeInterface> extends
|
|
337
|
-
[idx: number]: Layer<Node>;
|
|
337
|
+
export declare interface Layers<Node extends GraphNodeInterface> extends Array<Layer<Node>> {
|
|
338
338
|
}
|
|
339
339
|
|
|
340
|
-
declare interface Layout<Node extends GraphNodeInterface
|
|
340
|
+
declare interface Layout<Node extends GraphNodeInterface> {
|
|
341
341
|
readonly center: Position;
|
|
342
342
|
getSubGraphs(subset?: Node['id'][]): Node['id'][][];
|
|
343
343
|
spread(layer: number, nodes: Node['id'][]): number;
|
|
344
344
|
}
|
|
345
345
|
|
|
346
|
-
export declare class Layouter<Node extends GraphNodeInterface
|
|
346
|
+
export declare class Layouter<Node extends GraphNodeInterface> {
|
|
347
347
|
private readonly isBarrier;
|
|
348
348
|
private readonly klass;
|
|
349
349
|
constructor(klass: Constructor<Layout<Node>, [nodes: Node[], isBarrier: GraphBarrier<Node>]>, isBarrier: GraphBarrier<Node>);
|
|
350
350
|
layout(nodes: Node[], subset?: Node['id'][]): Layout<Node>;
|
|
351
|
-
getSubGraphs(nodes: Node[]): Node["id"][][];
|
|
351
|
+
getSubGraphs(nodes: Node[], subset?: Node['id'][]): Node["id"][][];
|
|
352
352
|
}
|
|
353
353
|
|
|
354
354
|
export declare type Line = {
|
package/dist/index.js
CHANGED
|
@@ -13,22 +13,22 @@ var S = Object.defineProperty, C = Object.getOwnPropertyDescriptor, w = Object.g
|
|
|
13
13
|
enumerable: !0
|
|
14
14
|
});
|
|
15
15
|
return t || S(n, Symbol.toStringTag, { value: "Module" }), n;
|
|
16
|
-
},
|
|
16
|
+
}, D = (e, t, n, r) => {
|
|
17
17
|
if (t && typeof t == "object" || typeof t == "function") for (var i = w(t), a = 0, o = i.length, s; a < o; a++) s = i[a], !T.call(e, s) && s !== n && S(e, s, {
|
|
18
18
|
get: ((e) => t[e]).bind(null, s),
|
|
19
19
|
enumerable: !(r = C(t, s)) || r.enumerable
|
|
20
20
|
});
|
|
21
21
|
return e;
|
|
22
|
-
},
|
|
22
|
+
}, O = (e, t, n) => (D(e, t, "default"), n && D(n, t, "default")), k = (e, t, n = 1) => ({
|
|
23
23
|
x: ~~(e.x + t.x * n),
|
|
24
24
|
y: ~~(e.y + t.y * n)
|
|
25
|
-
}),
|
|
25
|
+
}), A = (e, t) => (n) => n.node === e && n.port === t, ee = (e) => (t) => t.node === e, j = (e, t, n) => {
|
|
26
26
|
if (n) for (let r of n) {
|
|
27
|
-
let n = t.nodes.findIndex(
|
|
27
|
+
let n = t.nodes.findIndex(A(r.node, r.port));
|
|
28
28
|
n >= 0 !== e && (e ? t.nodes.push(r) : t.nodes.splice(n, 1));
|
|
29
29
|
}
|
|
30
30
|
else e || (t.nodes = []);
|
|
31
|
-
},
|
|
31
|
+
}, te = (e, t, n, r, i, a, o, s) => {
|
|
32
32
|
if (e === n && t === r || i === o && a === s) return !1;
|
|
33
33
|
let c = (s - a) * (n - e) - (o - i) * (r - t);
|
|
34
34
|
if (c === 0) return !1;
|
|
@@ -37,7 +37,7 @@ var S = Object.defineProperty, C = Object.getOwnPropertyDescriptor, w = Object.g
|
|
|
37
37
|
x: e + l * (n - e),
|
|
38
38
|
y: t + l * (r - t)
|
|
39
39
|
};
|
|
40
|
-
},
|
|
40
|
+
}, M = class {
|
|
41
41
|
joints = /* @__PURE__ */ new Map();
|
|
42
42
|
parentId;
|
|
43
43
|
constructor(e, t) {
|
|
@@ -64,16 +64,16 @@ var S = Object.defineProperty, C = Object.getOwnPropertyDescriptor, w = Object.g
|
|
|
64
64
|
return !!this.getPort(e, t);
|
|
65
65
|
}
|
|
66
66
|
hasAtPort(e, t, n) {
|
|
67
|
-
return !!this.joints.get(e)?.nodes.some(
|
|
67
|
+
return !!this.joints.get(e)?.nodes.some(A(t, n));
|
|
68
68
|
}
|
|
69
69
|
getPort(e, t) {
|
|
70
|
-
let n = this.find(t === void 0 ? (t) => t.nodes.some(
|
|
70
|
+
let n = this.find(t === void 0 ? (t) => t.nodes.some(ee(e)) : (n) => n.nodes.some(A(e, t)));
|
|
71
71
|
if (n) return n.port;
|
|
72
72
|
}
|
|
73
73
|
connect({ port: e, target: t, connect: n }) {
|
|
74
74
|
let r = this.joints.get(e);
|
|
75
75
|
if (!r) throw Error(`Node ${this.parentId} does not have joint "${e}"`);
|
|
76
|
-
return
|
|
76
|
+
return j(n, r, t), r;
|
|
77
77
|
}
|
|
78
78
|
getNodes(e) {
|
|
79
79
|
return this.joints.get(e)?.nodes;
|
|
@@ -86,7 +86,7 @@ var S = Object.defineProperty, C = Object.getOwnPropertyDescriptor, w = Object.g
|
|
|
86
86
|
get count() {
|
|
87
87
|
return this.joints.size;
|
|
88
88
|
}
|
|
89
|
-
},
|
|
89
|
+
}, ne = Symbol("E_CONNECT"), re = Symbol("E_MOVE"), ie = class extends e {
|
|
90
90
|
id;
|
|
91
91
|
description;
|
|
92
92
|
inputs;
|
|
@@ -97,7 +97,7 @@ var S = Object.defineProperty, C = Object.getOwnPropertyDescriptor, w = Object.g
|
|
|
97
97
|
y: 0
|
|
98
98
|
};
|
|
99
99
|
constructor({ id: e, coordinator: t, inputs: n = [], outputs: r = [], ...i }) {
|
|
100
|
-
super(), this.id = e, this.coordinator = t, this.description = i, this.inputs = new
|
|
100
|
+
super(), this.id = e, this.coordinator = t, this.description = i, this.inputs = new M(e, n), this.outputs = new M(e, r);
|
|
101
101
|
}
|
|
102
102
|
get title() {
|
|
103
103
|
return this.description.title;
|
|
@@ -112,7 +112,7 @@ var S = Object.defineProperty, C = Object.getOwnPropertyDescriptor, w = Object.g
|
|
|
112
112
|
return this.#e;
|
|
113
113
|
}
|
|
114
114
|
set position({ x: e, y: t }) {
|
|
115
|
-
e = this.coordinator.snap(e), t = this.coordinator.snap(t), !(this.#e.x === e && this.#e.y === t) && (this.#e.x = e, this.#e.y = t, this.dispatchEvent(
|
|
115
|
+
e = this.coordinator.snap(e), t = this.coordinator.snap(t), !(this.#e.x === e && this.#e.y === t) && (this.#e.x = e, this.#e.y = t, this.dispatchEvent(re, this.#e));
|
|
116
116
|
}
|
|
117
117
|
isInput(e, t, n) {
|
|
118
118
|
return this.inputs.hasAtPort(e, t, n);
|
|
@@ -154,7 +154,7 @@ var S = Object.defineProperty, C = Object.getOwnPropertyDescriptor, w = Object.g
|
|
|
154
154
|
nodes: a
|
|
155
155
|
});
|
|
156
156
|
}
|
|
157
|
-
this.dispatchEvent(
|
|
157
|
+
this.dispatchEvent(ne, {
|
|
158
158
|
connect: t,
|
|
159
159
|
input: e,
|
|
160
160
|
source: i,
|
|
@@ -165,10 +165,10 @@ var S = Object.defineProperty, C = Object.getOwnPropertyDescriptor, w = Object.g
|
|
|
165
165
|
return this.position = e;
|
|
166
166
|
}
|
|
167
167
|
onConnect(e) {
|
|
168
|
-
return this.handleEvent(
|
|
168
|
+
return this.handleEvent(ne, e);
|
|
169
169
|
}
|
|
170
170
|
onMove(e) {
|
|
171
|
-
return this.handleEvent(
|
|
171
|
+
return this.handleEvent(re, e);
|
|
172
172
|
}
|
|
173
173
|
}, N = class {
|
|
174
174
|
_barriers = {};
|
|
@@ -233,30 +233,20 @@ var S = Object.defineProperty, C = Object.getOwnPropertyDescriptor, w = Object.g
|
|
|
233
233
|
}
|
|
234
234
|
}, ae = class extends N {
|
|
235
235
|
layers = [];
|
|
236
|
-
|
|
236
|
+
#e = null;
|
|
237
237
|
get center() {
|
|
238
|
-
return this
|
|
238
|
+
return this.#e ??= this.getCenter((e) => e.position);
|
|
239
239
|
}
|
|
240
240
|
spread(e, t) {
|
|
241
|
-
let n = [], r =
|
|
242
|
-
|
|
243
|
-
let t = this.map[i], a = this.shift(t, this.findLayer(t), e, n);
|
|
244
|
-
r = Math.max(r, a);
|
|
245
|
-
}
|
|
246
|
-
return r;
|
|
241
|
+
let n = [], r = this.get(t).map((t) => this.shift(t, this.findLayer(t), e, n));
|
|
242
|
+
return Math.max(...r);
|
|
247
243
|
}
|
|
248
244
|
findMax(e) {
|
|
249
|
-
let t = this.findLayers(this.get(e.inputs.ids))
|
|
250
|
-
|
|
251
|
-
let t = +e;
|
|
252
|
-
t > n && (n = t);
|
|
253
|
-
}
|
|
254
|
-
return n || 0;
|
|
245
|
+
let t = this.findLayers(this.get(e.inputs.ids));
|
|
246
|
+
return Math.max(0, ...Object.values(t));
|
|
255
247
|
}
|
|
256
248
|
dependants({ id: e }) {
|
|
257
|
-
|
|
258
|
-
for (let n of this.nodes) n.id !== e && n.inputs.has(e) && t.push(n);
|
|
259
|
-
return t;
|
|
249
|
+
return this.nodes.filter((t) => t.id !== e && t.inputs.has(e));
|
|
260
250
|
}
|
|
261
251
|
get(e) {
|
|
262
252
|
return e.map((e) => this.map[e]).filter(n);
|
|
@@ -265,19 +255,17 @@ var S = Object.defineProperty, C = Object.getOwnPropertyDescriptor, w = Object.g
|
|
|
265
255
|
return this.layers[t] ? delete this.layers[t][e.id] : !1;
|
|
266
256
|
}
|
|
267
257
|
put(e, t) {
|
|
268
|
-
|
|
269
|
-
n[e.id] = e;
|
|
258
|
+
(this.layers[t] ??= {})[e.id] = e;
|
|
270
259
|
}
|
|
271
260
|
findLayer(e) {
|
|
272
|
-
|
|
273
|
-
return 0;
|
|
261
|
+
return Math.max(0, this.layers.findIndex((t) => t[e.id]));
|
|
274
262
|
}
|
|
275
263
|
findLayers(e) {
|
|
276
264
|
let t = {};
|
|
277
|
-
for (let n
|
|
278
|
-
let
|
|
279
|
-
for (let
|
|
280
|
-
e = e.filter((e) => i.
|
|
265
|
+
for (let [n, r] of this.layers.entries()) {
|
|
266
|
+
let i = e.filter((e) => r[e.id]).map((e) => e.id);
|
|
267
|
+
for (let e of i) t[e] = n;
|
|
268
|
+
e = e.filter((e) => !i.includes(e.id));
|
|
281
269
|
}
|
|
282
270
|
return t;
|
|
283
271
|
}
|
|
@@ -409,10 +397,12 @@ var S = Object.defineProperty, C = Object.getOwnPropertyDescriptor, w = Object.g
|
|
|
409
397
|
this.klass = e, this.isBarrier = t;
|
|
410
398
|
}
|
|
411
399
|
layout(e, t) {
|
|
412
|
-
|
|
400
|
+
let n = new this.klass(e, this.isBarrier), r = n.getSubGraphs(t), i = 0;
|
|
401
|
+
for (let e of r) i += n.spread(i, e);
|
|
402
|
+
return n;
|
|
413
403
|
}
|
|
414
|
-
getSubGraphs(e) {
|
|
415
|
-
return new this.klass(e, this.isBarrier).getSubGraphs();
|
|
404
|
+
getSubGraphs(e, t) {
|
|
405
|
+
return new this.klass(e, this.isBarrier).getSubGraphs(t);
|
|
416
406
|
}
|
|
417
407
|
}, P = Symbol("changed"), F = class extends e {
|
|
418
408
|
all;
|
|
@@ -507,19 +497,19 @@ var R = (e) => {
|
|
|
507
497
|
};
|
|
508
498
|
}, z = /* @__PURE__ */ E({});
|
|
509
499
|
import * as ue from "@pixi/core";
|
|
510
|
-
|
|
500
|
+
O(z, ue);
|
|
511
501
|
import * as de from "@pixi/display";
|
|
512
|
-
|
|
502
|
+
O(z, de);
|
|
513
503
|
import * as fe from "@pixi/sprite";
|
|
514
|
-
|
|
504
|
+
O(z, fe);
|
|
515
505
|
import * as pe from "@pixi/graphics";
|
|
516
|
-
|
|
506
|
+
O(z, pe);
|
|
517
507
|
import * as me from "@pixi/text";
|
|
518
|
-
|
|
508
|
+
O(z, me);
|
|
519
509
|
import * as he from "@pixi/text-bitmap";
|
|
520
|
-
|
|
510
|
+
O(z, he);
|
|
521
511
|
import * as ge from "@pixi/events";
|
|
522
|
-
|
|
512
|
+
O(z, ge);
|
|
523
513
|
//#endregion
|
|
524
514
|
//#region src/graph/render/Batch.ts
|
|
525
515
|
var _e = class extends e {
|
|
@@ -617,7 +607,7 @@ var _e = class extends e {
|
|
|
617
607
|
this.progress = e;
|
|
618
608
|
let t = e * ye % ye, n = Math.cos(t - be) * this.sizeX * 2, r = Math.sin(t - be) * this.sizeY * 2, i, a = null, o = 0;
|
|
619
609
|
for (let e = 0; e < this.#r.segments.length; e++) {
|
|
620
|
-
let t = this.#r.segments[e], s =
|
|
610
|
+
let t = this.#r.segments[e], s = te(0, 0, n, r, t[0], t[1], t[2], t[3]);
|
|
621
611
|
if (s) {
|
|
622
612
|
a = s, o = e === 0 ? s.x > 0 ? 0 : 4 : 4 - e, i = ve[e];
|
|
623
613
|
break;
|
|
@@ -696,7 +686,7 @@ var _e = class extends e {
|
|
|
696
686
|
if (t.hover) {
|
|
697
687
|
let a = r === t.point.parent || i === t.point.input ? 2 : 1;
|
|
698
688
|
if (a && n) {
|
|
699
|
-
let n = e.point.nodes.some(
|
|
689
|
+
let n = e.point.nodes.some(A(t.point.parent, t.point.port)), r = t.point.nodes.some(A(e.point.parent, e.point.port));
|
|
700
690
|
return n && r ? 1 : 0;
|
|
701
691
|
}
|
|
702
692
|
return a;
|
|
@@ -934,12 +924,12 @@ var Me = (e) => (t) => {
|
|
|
934
924
|
#i({ connect: e, input: t, source: { port: n }, target: r }) {
|
|
935
925
|
let i = this.connectors.find((e) => e.port === n && e.input === t);
|
|
936
926
|
if (!i) return;
|
|
937
|
-
|
|
927
|
+
j(e, i, r);
|
|
938
928
|
let a = this.ports.get(n);
|
|
939
929
|
a && a.setActive(!!i.nodes.length);
|
|
940
930
|
}
|
|
941
931
|
connectedAt(e, t, n) {
|
|
942
|
-
return this.connectors.find(({ nodes: r, connector: i }) => n !== !i && r.length && r.some(
|
|
932
|
+
return this.connectors.find(({ nodes: r, connector: i }) => n !== !i && r.length && r.some(A(e, t)));
|
|
943
933
|
}
|
|
944
934
|
get connectors() {
|
|
945
935
|
if (this.#n) return this.#n;
|
|
@@ -950,7 +940,7 @@ var Me = (e) => (t) => {
|
|
|
950
940
|
let n = {
|
|
951
941
|
x: 16 / 2,
|
|
952
942
|
y: t * 16 + 16 / 2
|
|
953
|
-
}, r =
|
|
943
|
+
}, r = k(this.data.position, n);
|
|
954
944
|
this.#n.push({
|
|
955
945
|
parent: this.data.id,
|
|
956
946
|
port: e.port,
|
|
@@ -977,11 +967,11 @@ var Me = (e) => (t) => {
|
|
|
977
967
|
let t = /* @__PURE__ */ new Map(), n = [];
|
|
978
968
|
for (let r of this.connectors) {
|
|
979
969
|
let { connector: i, nodes: a, port: o } = r, s = `${this.id}-${o}`;
|
|
980
|
-
if (i) if (i.move(
|
|
970
|
+
if (i) if (i.move(k(this.renderable, r)), a.length) {
|
|
981
971
|
let e = 0;
|
|
982
972
|
for (let { node: t, port: n } of a) {
|
|
983
973
|
let r = this.find(t), a = r?.connectedAt(this.id, o);
|
|
984
|
-
r && a ? (i.moveTargetTo(t, n,
|
|
974
|
+
r && a ? (i.moveTargetTo(t, n, k(r.renderable, a)), e++) : i.removeTarget(t, n);
|
|
985
975
|
}
|
|
986
976
|
e && t.set(s, i);
|
|
987
977
|
} else n.push(s);
|
|
@@ -1379,13 +1369,13 @@ var Me = (e) => (t) => {
|
|
|
1379
1369
|
};
|
|
1380
1370
|
}
|
|
1381
1371
|
fromGlobal(e) {
|
|
1382
|
-
return
|
|
1372
|
+
return k(e, this.world.transform.position, -1);
|
|
1383
1373
|
}
|
|
1384
1374
|
fromLocal(e) {
|
|
1385
|
-
return
|
|
1375
|
+
return k(k(e, this.world.transform.position, -2), this.center);
|
|
1386
1376
|
}
|
|
1387
1377
|
offsetPos(e, t = 1) {
|
|
1388
|
-
return
|
|
1378
|
+
return k(e, this.center, t);
|
|
1389
1379
|
}
|
|
1390
1380
|
translate(e) {
|
|
1391
1381
|
this.world.transform.position.copyFrom(this.offsetPos(e)), this.overlay.transform.position.copyFrom(this.offsetPos(e)), this.updateViewport();
|
|
@@ -1608,7 +1598,7 @@ var Me = (e) => (t) => {
|
|
|
1608
1598
|
}
|
|
1609
1599
|
}
|
|
1610
1600
|
};
|
|
1611
|
-
|
|
1601
|
+
O(/* @__PURE__ */ E({
|
|
1612
1602
|
Batch: () => _e,
|
|
1613
1603
|
E_CONNECTORS_UPDATE: () => J,
|
|
1614
1604
|
E_NODE_CONTEXT: () => q,
|
|
@@ -1812,8 +1802,8 @@ var Ze = (e, t) => {
|
|
|
1812
1802
|
}), st = {
|
|
1813
1803
|
x: 0,
|
|
1814
1804
|
y: 0
|
|
1815
|
-
}, ct = v(function({ innerRef: e, nodes: t, subset: n, coordinator: r,
|
|
1816
|
-
let
|
|
1805
|
+
}, ct = v(function({ innerRef: e, nodes: t, subset: n, coordinator: r, layouter: l, menu: u, onSelectNode: d, onContextMenu: f, ...p }) {
|
|
1806
|
+
let h = c(st), g = c(null), _ = s(() => new Q(u), [u]), v = s(() => new Ye({
|
|
1817
1807
|
maxFPS: 120,
|
|
1818
1808
|
grid: {
|
|
1819
1809
|
cellSize: r.gridSize,
|
|
@@ -1824,49 +1814,53 @@ var Ze = (e, t) => {
|
|
|
1824
1814
|
10066329
|
|
1825
1815
|
]
|
|
1826
1816
|
},
|
|
1827
|
-
gui: [
|
|
1817
|
+
gui: [_]
|
|
1828
1818
|
}), [r]);
|
|
1829
1819
|
a(e, () => ({
|
|
1830
|
-
graph:
|
|
1820
|
+
graph: v,
|
|
1831
1821
|
get element() {
|
|
1832
|
-
return
|
|
1822
|
+
return g.current?.element;
|
|
1833
1823
|
}
|
|
1834
1824
|
}));
|
|
1835
|
-
let
|
|
1836
|
-
let { x: e, y: t } = r.toData(
|
|
1837
|
-
|
|
1838
|
-
}), x = m((e) => {
|
|
1839
|
-
p.current = _.fromLocal(e), b();
|
|
1825
|
+
let b = m(({ width: e, height: t }) => v.resize(e, t)), x = m(() => {
|
|
1826
|
+
let { x: e, y: t } = r.toData(v.translation), { x: n, y: i } = r.toData(h.current);
|
|
1827
|
+
_.text = `Pos: ${-(e - 1)} x ${-(t - 1)}\nCursor: ${~~(n - 1)} x ${~~(i - 1)}`;
|
|
1840
1828
|
}), S = m((e) => {
|
|
1841
|
-
|
|
1842
|
-
}), C = m((e
|
|
1843
|
-
|
|
1844
|
-
}), w = m((e) => {
|
|
1845
|
-
|
|
1829
|
+
h.current = v.fromLocal(e), x();
|
|
1830
|
+
}), C = m((e) => {
|
|
1831
|
+
h.current = v.fromLocal(e), v.releaseNode(), x();
|
|
1832
|
+
}), w = m((e, t) => {
|
|
1833
|
+
if (S(e), v.capturing && !t?.shiftKey && d(null, r.toData(h.current)), !1 === d(v.capturing || null, r.toData(h.current))) return v.releaseNode(), !1;
|
|
1846
1834
|
}), T = m((e) => {
|
|
1847
|
-
|
|
1848
|
-
|
|
1849
|
-
|
|
1835
|
+
v.capturing || (v.translate(e), x());
|
|
1836
|
+
}), E = m((e) => {
|
|
1837
|
+
if (!1 === w(e)) return !1;
|
|
1838
|
+
if (!1 === f(v.capturing || null, r.toData(h.current))) return v.releaseNode(), !1;
|
|
1839
|
+
}), D = s(() => ({
|
|
1850
1840
|
get position() {
|
|
1851
|
-
return
|
|
1841
|
+
return v.translation;
|
|
1852
1842
|
},
|
|
1853
|
-
onDrag:
|
|
1854
|
-
onPointer:
|
|
1855
|
-
onClick:
|
|
1856
|
-
onUp:
|
|
1857
|
-
onContext:
|
|
1858
|
-
}), [
|
|
1843
|
+
onDrag: T,
|
|
1844
|
+
onPointer: S,
|
|
1845
|
+
onClick: w,
|
|
1846
|
+
onUp: C,
|
|
1847
|
+
onContext: E
|
|
1848
|
+
}), [v]);
|
|
1859
1849
|
return i(() => {
|
|
1860
|
-
if (!
|
|
1850
|
+
if (!g.current) return;
|
|
1861
1851
|
let e = n || t.map(({ id: e }) => e);
|
|
1862
|
-
|
|
1863
|
-
for (let t of
|
|
1864
|
-
for (let n of t) e.includes(n.id) && (
|
|
1865
|
-
|
|
1852
|
+
v.batch(() => {
|
|
1853
|
+
for (let t of v) e.includes(t.id) || v.removeNode(t);
|
|
1854
|
+
for (let n of t) e.includes(n.id) && (v.addNode(n), v.moveNodeTo(n, n.position));
|
|
1855
|
+
l && l.layout(t, n), v.layout();
|
|
1866
1856
|
});
|
|
1867
|
-
}, [
|
|
1868
|
-
|
|
1869
|
-
|
|
1857
|
+
}, [
|
|
1858
|
+
n,
|
|
1859
|
+
t,
|
|
1860
|
+
l
|
|
1861
|
+
]), o(() => {
|
|
1862
|
+
let e = g.current?.element;
|
|
1863
|
+
if (e) return v.mount(e, { viewport: {
|
|
1870
1864
|
width: e.clientWidth,
|
|
1871
1865
|
height: e.clientHeight,
|
|
1872
1866
|
resolution: window.devicePixelRatio,
|
|
@@ -1874,11 +1868,11 @@ var Ze = (e, t) => {
|
|
|
1874
1868
|
antialias: !0,
|
|
1875
1869
|
transparent: !1
|
|
1876
1870
|
} });
|
|
1877
|
-
}, [
|
|
1878
|
-
ref:
|
|
1879
|
-
handlers:
|
|
1880
|
-
onResize:
|
|
1881
|
-
...
|
|
1871
|
+
}, [v]), /* @__PURE__ */ y(nt, {
|
|
1872
|
+
ref: g,
|
|
1873
|
+
handlers: D,
|
|
1874
|
+
onResize: b,
|
|
1875
|
+
...p
|
|
1882
1876
|
});
|
|
1883
1877
|
}), lt = (e, { onEdit: t, onMove: n, onConnect: r, onDelete: i, onAddPort: a, onDisconnectPort: o, onDeletePort: s }) => {
|
|
1884
1878
|
e.onConnect(r), e.onMove((t) => n(e, t)), e.onEditAction(() => t(e)), e.onDeleteAction(() => i(e)), e.onAddPortAction((t) => a(e, t)), e.onDisconnectPortAction(({ port: t }) => o(e, t)), e.onDeletePortAction(({ port: t }) => s(e, t));
|
|
@@ -2287,6 +2281,6 @@ var Ze = (e, t) => {
|
|
|
2287
2281
|
}
|
|
2288
2282
|
});
|
|
2289
2283
|
//#endregion
|
|
2290
|
-
export { oe as ClusteredLayout, ce as EdgesSort, Ye as GraphAdapter, ct as GraphCanvas, ie as GraphNode,
|
|
2284
|
+
export { oe as ClusteredLayout, ce as EdgesSort, Ye as GraphAdapter, ct as GraphCanvas, ie as GraphNode, M as GraphNodeJoints, ae as LayeredLayout, le as Layouter, St as ManagedGraph, yt as ManagedGraphNode, vt as MenuActions, $ as NodeGroups, _t as NodeStatus, N as NodesGraph, se as NodesSort, Q as PIXIGUI, F as Store, nt as Viewport, ht as getChannelName, mt as isChannelName, I as isEqualIdentifiables, R as useDraggable, L as useStore };
|
|
2291
2285
|
|
|
2292
2286
|
//# sourceMappingURL=index.js.map
|