@octaviaflow/core 3.0.18-beta.11 → 3.0.18-beta.13
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/chunk-3DWB2PUF.js +2991 -0
- package/dist/chunk-3DWB2PUF.js.map +1 -0
- package/dist/chunk-6QCJK7H7.js +2991 -0
- package/dist/chunk-6QCJK7H7.js.map +1 -0
- package/dist/chunk-76TP67ED.js +2984 -0
- package/dist/chunk-76TP67ED.js.map +1 -0
- package/dist/chunk-DBNSBJO7.js +2993 -0
- package/dist/chunk-DBNSBJO7.js.map +1 -0
- package/dist/chunk-ECIHUVU7.js +2986 -0
- package/dist/chunk-ECIHUVU7.js.map +1 -0
- package/dist/chunk-MXJL3EPE.js +2986 -0
- package/dist/chunk-MXJL3EPE.js.map +1 -0
- package/dist/chunk-MYZ25B2R.js +2995 -0
- package/dist/chunk-MYZ25B2R.js.map +1 -0
- package/dist/chunk-Q6ERDPQR.js +2981 -0
- package/dist/chunk-Q6ERDPQR.js.map +1 -0
- package/dist/chunk-UQBPYONV.js +2991 -0
- package/dist/chunk-UQBPYONV.js.map +1 -0
- package/dist/chunk-WEGED7TA.js +2991 -0
- package/dist/chunk-WEGED7TA.js.map +1 -0
- package/dist/chunk-ZAMJEU42.js +2992 -0
- package/dist/chunk-ZAMJEU42.js.map +1 -0
- package/dist/index.cjs +57 -43
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1 -1
- package/dist/workflow/components/FlowCanvas/FlowCanvas.d.ts.map +1 -1
- package/dist/workflow/components/FlowEdge/FlowEdge.d.ts.map +1 -1
- package/dist/workflow/components/Handle/Handle.d.ts +9 -1
- package/dist/workflow/components/Handle/Handle.d.ts.map +1 -1
- package/dist/workflow/components/Handle/handleRegistry.d.ts +19 -0
- package/dist/workflow/components/Handle/handleRegistry.d.ts.map +1 -1
- package/dist/workflow.cjs +57 -43
- package/dist/workflow.cjs.map +1 -1
- package/dist/workflow.js +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlowCanvas.d.ts","sourceRoot":"","sources":["../../../../src/workflow/components/FlowCanvas/FlowCanvas.tsx"],"names":[],"mappings":"AAeA,OAAO,EACL,KAAK,aAAa,EAElB,KAAK,YAAY,EACjB,KAAK,SAAS,EAOf,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EACV,eAAe,EACf,UAAU,EACV,kBAAkB,EAClB,UAAU,EACV,UAAU,EAEV,QAAQ,EACR,YAAY,EACZ,YAAY,EACb,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,KAAK,YAAY,EAAuB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"FlowCanvas.d.ts","sourceRoot":"","sources":["../../../../src/workflow/components/FlowCanvas/FlowCanvas.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlowEdge.d.ts","sourceRoot":"","sources":["../../../../src/workflow/components/FlowEdge/FlowEdge.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAY,YAAY,IAAI,gBAAgB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAK7F,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,kEAAkE;IAClE,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,oEAAoE;IACpE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,iBAAS,YAAY,CAAC,EACpB,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,UAAiB,EACjB,SAAgB,EAChB,YAAgB,GACjB,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"FlowEdge.d.ts","sourceRoot":"","sources":["../../../../src/workflow/components/FlowEdge/FlowEdge.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAY,YAAY,IAAI,gBAAgB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAK7F,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,kEAAkE;IAClE,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,oEAAoE;IACpE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,iBAAS,YAAY,CAAC,EACpB,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,UAAiB,EACjB,SAAgB,EAChB,YAAgB,GACjB,EAAE,aAAa,2CAmOf;AA6BD,eAAO,MAAM,QAAQ,0DAiBnB,CAAC"}
|
|
@@ -5,6 +5,14 @@ export interface HandleProps {
|
|
|
5
5
|
type: HandleType;
|
|
6
6
|
/** Which side of the node the handle sits on. */
|
|
7
7
|
position: HandlePosition;
|
|
8
|
+
/**
|
|
9
|
+
* Direction the edge should route from this handle. Defaults to
|
|
10
|
+
* `position`. Override it when the handle dot sits on one edge but the
|
|
11
|
+
* wire must leave/enter from another — e.g. a subflow's inner-facing
|
|
12
|
+
* port lives on the frame's `top` edge yet its wire curves `down` into
|
|
13
|
+
* the frame: `position="top" routeSide="bottom"`.
|
|
14
|
+
*/
|
|
15
|
+
routeSide?: HandlePosition;
|
|
8
16
|
/** Stable id within the node. Default `"default"`; required when >1 handle of same type. */
|
|
9
17
|
id?: string;
|
|
10
18
|
/** Defaults to true. Setting false disables both starting and ending here. */
|
|
@@ -22,5 +30,5 @@ export interface HandleProps {
|
|
|
22
30
|
className?: string;
|
|
23
31
|
style?: CSSProperties;
|
|
24
32
|
}
|
|
25
|
-
export declare function Handle({ type, position, id, isConnectable, isConnectableStart, isConnectableEnd, index, total, label, className, style, }: HandleProps): import("react/jsx-runtime").JSX.Element;
|
|
33
|
+
export declare function Handle({ type, position, routeSide, id, isConnectable, isConnectableStart, isConnectableEnd, index, total, label, className, style, }: HandleProps): import("react/jsx-runtime").JSX.Element;
|
|
26
34
|
//# sourceMappingURL=Handle.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Handle.d.ts","sourceRoot":"","sources":["../../../../src/workflow/components/Handle/Handle.tsx"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,aAAa,EAAwC,MAAM,OAAO,CAAC;AAEjF,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAK/D,MAAM,WAAW,WAAW;IAC1B,0EAA0E;IAC1E,IAAI,EAAE,UAAU,CAAC;IACjB,iDAAiD;IACjD,QAAQ,EAAE,cAAc,CAAC;IACzB,4FAA4F;IAC5F,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,8EAA8E;IAC9E,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,8EAA8E;IAC9E,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAID,wBAAgB,MAAM,CAAC,EACrB,IAAI,EACJ,QAAQ,EACR,EAAsB,EACtB,aAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,KAAS,EACT,KAAS,EACT,KAAK,EACL,SAAS,EACT,KAAK,GACN,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"Handle.d.ts","sourceRoot":"","sources":["../../../../src/workflow/components/Handle/Handle.tsx"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,aAAa,EAAwC,MAAM,OAAO,CAAC;AAEjF,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAK/D,MAAM,WAAW,WAAW;IAC1B,0EAA0E;IAC1E,IAAI,EAAE,UAAU,CAAC;IACjB,iDAAiD;IACjD,QAAQ,EAAE,cAAc,CAAC;IACzB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,4FAA4F;IAC5F,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,8EAA8E;IAC9E,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,8EAA8E;IAC9E,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAID,wBAAgB,MAAM,CAAC,EACrB,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,EAAsB,EACtB,aAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,KAAS,EACT,KAAS,EACT,KAAK,EACL,SAAS,EACT,KAAK,GACN,EAAE,WAAW,2CAqEb"}
|
|
@@ -3,15 +3,34 @@ export interface HandleDescriptor {
|
|
|
3
3
|
nodeId: string;
|
|
4
4
|
handleId: string;
|
|
5
5
|
type: HandleType;
|
|
6
|
+
/** Physical edge the handle dot sits on — drives placement + the
|
|
7
|
+
* handle's flow-space centre. */
|
|
6
8
|
side: HandlePosition;
|
|
9
|
+
/**
|
|
10
|
+
* Edge-routing direction. The bezier leaves/enters along THIS side,
|
|
11
|
+
* which is normally the same as `side`. A subflow's inner-facing port
|
|
12
|
+
* sits on the frame's outer edge (`side`) but must route INWARD — e.g.
|
|
13
|
+
* a port physically on `top` whose wire should curve `down` into the
|
|
14
|
+
* frame sets `routeSide: "bottom"`. Defaults to `side`.
|
|
15
|
+
*/
|
|
16
|
+
routeSide: HandlePosition;
|
|
7
17
|
/** 0-based position among same-(node, side, type) handles. */
|
|
8
18
|
index: number;
|
|
9
19
|
/** Total handles on the same (node, side, type). */
|
|
10
20
|
total: number;
|
|
21
|
+
/** May this handle START a connection? Defaults true. */
|
|
22
|
+
canStart: boolean;
|
|
23
|
+
/** May this handle END a connection? Defaults true. */
|
|
24
|
+
canEnd: boolean;
|
|
11
25
|
}
|
|
12
26
|
export interface HandleRegistry {
|
|
13
27
|
register(d: HandleDescriptor): () => void;
|
|
14
28
|
resolve(nodeId: string, type: HandleType, handleId: string): HandleDescriptor | undefined;
|
|
29
|
+
/** Every currently-registered handle. Used by the connection drag to
|
|
30
|
+
* resolve a drop target geometrically (nearest handle within snap
|
|
31
|
+
* radius) rather than relying on DOM hit-testing, which is fragile
|
|
32
|
+
* against z-index / pointer-events / overlapping subflow frames. */
|
|
33
|
+
all(): HandleDescriptor[];
|
|
15
34
|
/**
|
|
16
35
|
* Subscribe to registry mutations. Fires after every register /
|
|
17
36
|
* unregister so listeners (typically the EdgesLayer) can re-render
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleRegistry.d.ts","sourceRoot":"","sources":["../../../../src/workflow/components/Handle/handleRegistry.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/D,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,cAAc,CAAC;IACrB,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"handleRegistry.d.ts","sourceRoot":"","sources":["../../../../src/workflow/components/Handle/handleRegistry.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/D,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;IACjB;sCACkC;IAClC,IAAI,EAAE,cAAc,CAAC;IACrB;;;;;;OAMG;IACH,SAAS,EAAE,cAAc,CAAC;IAC1B,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,QAAQ,EAAE,OAAO,CAAC;IAClB,uDAAuD;IACvD,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,CAAC,EAAE,gBAAgB,GAAG,MAAM,IAAI,CAAC;IAC1C,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAAC;IAC1F;;;yEAGqE;IACrE,GAAG,IAAI,gBAAgB,EAAE,CAAC;IAC1B;;;;;;;;OAQG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;CAC7C;AAED,eAAO,MAAM,qBAAqB,yCAA6C,CAAC;AAEhF,wBAAgB,iBAAiB,IAAI,cAAc,CAMlD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,cAAc,CAmCrD"}
|
package/dist/workflow.cjs
CHANGED
|
@@ -1354,6 +1354,9 @@ function createHandleRegistry() {
|
|
|
1354
1354
|
resolve(nodeId, type, handleId) {
|
|
1355
1355
|
return map.get(key(nodeId, type, handleId));
|
|
1356
1356
|
},
|
|
1357
|
+
all() {
|
|
1358
|
+
return Array.from(map.values());
|
|
1359
|
+
},
|
|
1357
1360
|
subscribe(listener) {
|
|
1358
1361
|
listeners.add(listener);
|
|
1359
1362
|
return () => {
|
|
@@ -1394,6 +1397,8 @@ function FlowEdgeImpl({
|
|
|
1394
1397
|
const targetDesc = registry.resolve(targetNode.id, "target", targetHandleId);
|
|
1395
1398
|
const sourceSide = sourceDesc?.side ?? sourceNode.sourcePosition ?? "bottom";
|
|
1396
1399
|
const targetSide = targetDesc?.side ?? targetNode.targetPosition ?? "top";
|
|
1400
|
+
const sourceRoute = sourceDesc?.routeSide ?? sourceSide;
|
|
1401
|
+
const targetRoute = targetDesc?.routeSide ?? targetSide;
|
|
1397
1402
|
const sourceIndex = sourceDesc?.index ?? 0;
|
|
1398
1403
|
const sourceTotal = sourceDesc?.total ?? 1;
|
|
1399
1404
|
const targetIndex = targetDesc?.index ?? 0;
|
|
@@ -1401,14 +1406,14 @@ function FlowEdgeImpl({
|
|
|
1401
1406
|
const rawStart = handleCentre(sourceNode, sourceSide, sourceIndex, sourceTotal);
|
|
1402
1407
|
const rawEnd = handleCentre(targetNode, targetSide, targetIndex, targetTotal);
|
|
1403
1408
|
const HANDLE_GAP = 8;
|
|
1404
|
-
const start = offsetAlongSide2(rawStart,
|
|
1405
|
-
const end = offsetAlongSide2(rawEnd,
|
|
1409
|
+
const start = offsetAlongSide2(rawStart, sourceRoute, HANDLE_GAP);
|
|
1410
|
+
const end = offsetAlongSide2(rawEnd, targetRoute, HANDLE_GAP);
|
|
1406
1411
|
const routing = edge.routing ?? "bezier";
|
|
1407
|
-
const { d, midX, midY } = buildEdgePath(routing, start,
|
|
1412
|
+
const { d, midX, midY } = buildEdgePath(routing, start, sourceRoute, end, targetRoute, {
|
|
1408
1413
|
curvature,
|
|
1409
1414
|
borderRadius
|
|
1410
1415
|
});
|
|
1411
|
-
const { d: hitD } = buildEdgePath(routing, rawStart,
|
|
1416
|
+
const { d: hitD } = buildEdgePath(routing, rawStart, sourceRoute, rawEnd, targetRoute, {
|
|
1412
1417
|
curvature,
|
|
1413
1418
|
borderRadius
|
|
1414
1419
|
});
|
|
@@ -1726,6 +1731,7 @@ var DEFAULT_HANDLE_ID = "default";
|
|
|
1726
1731
|
function Handle({
|
|
1727
1732
|
type,
|
|
1728
1733
|
position,
|
|
1734
|
+
routeSide,
|
|
1729
1735
|
id = DEFAULT_HANDLE_ID,
|
|
1730
1736
|
isConnectable = true,
|
|
1731
1737
|
isConnectableStart,
|
|
@@ -1748,11 +1754,14 @@ function Handle({
|
|
|
1748
1754
|
handleId: id,
|
|
1749
1755
|
type,
|
|
1750
1756
|
side: position,
|
|
1757
|
+
routeSide: routeSide ?? position,
|
|
1751
1758
|
index,
|
|
1752
|
-
total
|
|
1759
|
+
total,
|
|
1760
|
+
canStart,
|
|
1761
|
+
canEnd
|
|
1753
1762
|
});
|
|
1754
1763
|
return dispose;
|
|
1755
|
-
}, [registry, node.id, id, type, position, index, total]);
|
|
1764
|
+
}, [registry, node.id, id, type, position, routeSide, index, total, canStart, canEnd]);
|
|
1756
1765
|
const handlePointerDown = (e) => {
|
|
1757
1766
|
if (!canStart) return;
|
|
1758
1767
|
e.stopPropagation();
|
|
@@ -2888,49 +2897,54 @@ function FlowCanvas(props) {
|
|
|
2888
2897
|
}
|
|
2889
2898
|
const c = connRef.current;
|
|
2890
2899
|
if (c && c.pointerId === e.pointerId) {
|
|
2891
|
-
|
|
2892
|
-
|
|
2893
|
-
|
|
2894
|
-
|
|
2895
|
-
|
|
2896
|
-
|
|
2897
|
-
|
|
2898
|
-
|
|
2899
|
-
|
|
2900
|
-
|
|
2901
|
-
|
|
2900
|
+
const rect = containerRef.current?.getBoundingClientRect();
|
|
2901
|
+
const flowPos = rect ? screenToFlow({ x: e.clientX - rect.left, y: e.clientY - rect.top }, vp) : { x: 0, y: 0 };
|
|
2902
|
+
const snapRadius = 26 / Math.max(0.1, vp.zoom);
|
|
2903
|
+
let bestDesc = null;
|
|
2904
|
+
let bestDist = snapRadius;
|
|
2905
|
+
for (const desc of handleRegistry.all()) {
|
|
2906
|
+
if (desc.nodeId === c.from.nodeId) continue;
|
|
2907
|
+
if (desc.type === c.from.handleType) continue;
|
|
2908
|
+
if (!desc.canEnd) continue;
|
|
2909
|
+
const targetNode = nodesRef.current.find((n) => n.id === desc.nodeId);
|
|
2910
|
+
if (!targetNode || targetNode.hidden) continue;
|
|
2911
|
+
const centre = handleCentre(targetNode, desc.side, desc.index, desc.total);
|
|
2912
|
+
const dist = Math.hypot(centre.x - flowPos.x, centre.y - flowPos.y);
|
|
2913
|
+
if (dist < bestDist) {
|
|
2914
|
+
bestDist = dist;
|
|
2915
|
+
bestDesc = desc;
|
|
2902
2916
|
}
|
|
2903
2917
|
}
|
|
2904
2918
|
let connection = null;
|
|
2905
2919
|
let connectedTo;
|
|
2906
|
-
if (
|
|
2907
|
-
const
|
|
2908
|
-
|
|
2909
|
-
|
|
2910
|
-
|
|
2911
|
-
|
|
2912
|
-
|
|
2913
|
-
|
|
2914
|
-
|
|
2915
|
-
|
|
2916
|
-
|
|
2917
|
-
|
|
2918
|
-
|
|
2919
|
-
|
|
2920
|
-
|
|
2921
|
-
|
|
2922
|
-
|
|
2923
|
-
|
|
2924
|
-
|
|
2925
|
-
|
|
2926
|
-
|
|
2927
|
-
|
|
2928
|
-
|
|
2929
|
-
|
|
2920
|
+
if (bestDesc) {
|
|
2921
|
+
const source = c.from.handleType === "source" ? c.from : {
|
|
2922
|
+
nodeId: bestDesc.nodeId,
|
|
2923
|
+
handleId: bestDesc.handleId,
|
|
2924
|
+
handleType: "source"
|
|
2925
|
+
};
|
|
2926
|
+
const target2 = c.from.handleType === "target" ? c.from : {
|
|
2927
|
+
nodeId: bestDesc.nodeId,
|
|
2928
|
+
handleId: bestDesc.handleId,
|
|
2929
|
+
handleType: "target"
|
|
2930
|
+
};
|
|
2931
|
+
connection = {
|
|
2932
|
+
source: source.nodeId,
|
|
2933
|
+
sourceHandle: source.handleId,
|
|
2934
|
+
target: target2.nodeId,
|
|
2935
|
+
targetHandle: target2.handleId
|
|
2936
|
+
};
|
|
2937
|
+
connectedTo = {
|
|
2938
|
+
nodeId: bestDesc.nodeId,
|
|
2939
|
+
handleId: bestDesc.handleId,
|
|
2940
|
+
handleType: bestDesc.type
|
|
2941
|
+
};
|
|
2942
|
+
const validator = isValidConnectionRef.current;
|
|
2943
|
+
if (validator && !validator(connection)) {
|
|
2944
|
+
connection = null;
|
|
2945
|
+
connectedTo = void 0;
|
|
2930
2946
|
}
|
|
2931
2947
|
}
|
|
2932
|
-
const rect = containerRef.current?.getBoundingClientRect();
|
|
2933
|
-
const flowPos = rect ? screenToFlow({ x: e.clientX - rect.left, y: e.clientY - rect.top }, vp) : { x: 0, y: 0 };
|
|
2934
2948
|
const endState = {
|
|
2935
2949
|
cancelled: !connection,
|
|
2936
2950
|
position: { x: e.clientX, y: e.clientY },
|