@uipath/apollo-react 4.15.1 → 4.16.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/dist/canvas/components/AddNodePanel/AddNodeManager.cjs +6 -1
- package/dist/canvas/components/AddNodePanel/AddNodeManager.d.ts.map +1 -1
- package/dist/canvas/components/AddNodePanel/AddNodeManager.js +6 -1
- package/dist/canvas/components/AddNodePanel/createAddNodePreview.cjs +9 -3
- package/dist/canvas/components/AddNodePanel/createAddNodePreview.d.ts.map +1 -1
- package/dist/canvas/components/AddNodePanel/createAddNodePreview.js +9 -3
- package/dist/canvas/components/AgentCanvas/agent-flow.manifest.d.ts +2 -1
- package/dist/canvas/components/AgentCanvas/agent-flow.manifest.d.ts.map +1 -1
- package/dist/canvas/components/BaseNode/BaseNode.cjs +5 -4
- package/dist/canvas/components/BaseNode/BaseNode.d.ts.map +1 -1
- package/dist/canvas/components/BaseNode/BaseNode.js +4 -3
- package/dist/canvas/components/ButtonHandle/ButtonHandle.cjs +108 -13
- package/dist/canvas/components/ButtonHandle/ButtonHandle.d.ts +10 -5
- package/dist/canvas/components/ButtonHandle/ButtonHandle.d.ts.map +1 -1
- package/dist/canvas/components/ButtonHandle/ButtonHandle.js +108 -13
- package/dist/canvas/components/ButtonHandle/ButtonHandleLayoutUtils.cjs +159 -0
- package/dist/canvas/components/ButtonHandle/ButtonHandleLayoutUtils.d.ts +21 -0
- package/dist/canvas/components/ButtonHandle/ButtonHandleLayoutUtils.d.ts.map +1 -0
- package/dist/canvas/components/ButtonHandle/ButtonHandleLayoutUtils.js +122 -0
- package/dist/canvas/components/ButtonHandle/ButtonHandleStyleUtils.cjs +10 -2
- package/dist/canvas/components/ButtonHandle/ButtonHandleStyleUtils.d.ts +2 -0
- package/dist/canvas/components/ButtonHandle/ButtonHandleStyleUtils.d.ts.map +1 -1
- package/dist/canvas/components/ButtonHandle/ButtonHandleStyleUtils.js +5 -3
- package/dist/canvas/components/ButtonHandle/HandleButton.cjs +13 -2
- package/dist/canvas/components/ButtonHandle/HandleButton.d.ts +10 -1
- package/dist/canvas/components/ButtonHandle/HandleButton.d.ts.map +1 -1
- package/dist/canvas/components/ButtonHandle/HandleButton.js +13 -2
- package/dist/canvas/components/ButtonHandle/useButtonHandles.cjs +4 -2
- package/dist/canvas/components/ButtonHandle/useButtonHandles.d.ts +2 -1
- package/dist/canvas/components/ButtonHandle/useButtonHandles.d.ts.map +1 -1
- package/dist/canvas/components/ButtonHandle/useButtonHandles.js +4 -2
- package/dist/canvas/components/Edges/SequenceEdge.cjs +8 -4
- package/dist/canvas/components/Edges/SequenceEdge.js +8 -4
- package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvas.cjs +24 -22
- package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvas.d.ts.map +1 -1
- package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvas.js +25 -23
- package/dist/canvas/components/LoopNode/LoopCanvasNode.cjs +75 -0
- package/dist/canvas/components/LoopNode/LoopCanvasNode.d.ts +6 -0
- package/dist/canvas/components/LoopNode/LoopCanvasNode.d.ts.map +1 -0
- package/dist/canvas/components/LoopNode/LoopCanvasNode.js +41 -0
- package/dist/canvas/components/LoopNode/LoopNode.cjs +447 -0
- package/dist/canvas/components/LoopNode/LoopNode.constants.cjs +56 -0
- package/dist/canvas/components/LoopNode/LoopNode.constants.d.ts +7 -0
- package/dist/canvas/components/LoopNode/LoopNode.constants.d.ts.map +1 -0
- package/dist/canvas/components/LoopNode/LoopNode.constants.js +7 -0
- package/dist/canvas/components/LoopNode/LoopNode.d.ts +5 -0
- package/dist/canvas/components/LoopNode/LoopNode.d.ts.map +1 -0
- package/dist/canvas/components/LoopNode/LoopNode.helpers.cjs +145 -0
- package/dist/canvas/components/LoopNode/LoopNode.helpers.d.ts +29 -0
- package/dist/canvas/components/LoopNode/LoopNode.helpers.d.ts.map +1 -0
- package/dist/canvas/components/LoopNode/LoopNode.helpers.js +99 -0
- package/dist/canvas/components/LoopNode/LoopNode.js +413 -0
- package/dist/canvas/components/LoopNode/LoopNode.types.cjs +18 -0
- package/dist/canvas/components/LoopNode/LoopNode.types.d.ts +22 -0
- package/dist/canvas/components/LoopNode/LoopNode.types.d.ts.map +1 -0
- package/dist/canvas/components/LoopNode/LoopNode.types.js +0 -0
- package/dist/canvas/components/LoopNode/LoopNodePreview.cjs +61 -0
- package/dist/canvas/components/LoopNode/LoopNodePreview.d.ts +9 -0
- package/dist/canvas/components/LoopNode/LoopNodePreview.d.ts.map +1 -0
- package/dist/canvas/components/LoopNode/LoopNodePreview.js +27 -0
- package/dist/canvas/components/LoopNode/index.cjs +79 -0
- package/dist/canvas/components/LoopNode/index.d.ts +5 -0
- package/dist/canvas/components/LoopNode/index.d.ts.map +1 -0
- package/dist/canvas/components/LoopNode/index.js +4 -0
- package/dist/canvas/components/NodeViewportOverlay.cjs +63 -0
- package/dist/canvas/components/NodeViewportOverlay.d.ts +22 -0
- package/dist/canvas/components/NodeViewportOverlay.d.ts.map +1 -0
- package/dist/canvas/components/NodeViewportOverlay.js +29 -0
- package/dist/canvas/components/Toolbar/EdgeToolbar/EdgeToolbar.cjs +1 -1
- package/dist/canvas/components/Toolbar/EdgeToolbar/EdgeToolbar.js +1 -1
- package/dist/canvas/components/Toolbar/EdgeToolbar/useEdgeToolbarState.cjs +25 -23
- package/dist/canvas/components/Toolbar/EdgeToolbar/useEdgeToolbarState.d.ts.map +1 -1
- package/dist/canvas/components/Toolbar/EdgeToolbar/useEdgeToolbarState.js +27 -25
- package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.cjs +10 -3
- package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.d.ts +1 -1
- package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.d.ts.map +1 -1
- package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.js +10 -3
- package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.types.d.ts +1 -0
- package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.types.d.ts.map +1 -1
- package/dist/canvas/components/index.cjs +27 -20
- package/dist/canvas/components/index.d.ts +1 -0
- package/dist/canvas/components/index.d.ts.map +1 -1
- package/dist/canvas/components/index.js +1 -0
- package/dist/canvas/constants.cjs +12 -0
- package/dist/canvas/constants.d.ts +3 -0
- package/dist/canvas/constants.d.ts.map +1 -1
- package/dist/canvas/constants.js +4 -1
- package/dist/canvas/hooks/useAddNodeOnConnectEnd.cjs +22 -23
- package/dist/canvas/hooks/useAddNodeOnConnectEnd.d.ts.map +1 -1
- package/dist/canvas/hooks/useAddNodeOnConnectEnd.js +23 -24
- package/dist/canvas/hooks/usePreviewNode.cjs +2 -1
- package/dist/canvas/hooks/usePreviewNode.d.ts.map +1 -1
- package/dist/canvas/hooks/usePreviewNode.js +2 -1
- package/dist/canvas/schema/node-definition/handle.cjs +10 -2
- package/dist/canvas/schema/node-definition/handle.d.ts +9 -0
- package/dist/canvas/schema/node-definition/handle.d.ts.map +1 -1
- package/dist/canvas/schema/node-definition/handle.js +6 -1
- package/dist/canvas/schema/node-definition/index.cjs +4 -1
- package/dist/canvas/schema/node-definition/index.d.ts +3 -3
- package/dist/canvas/schema/node-definition/index.d.ts.map +1 -1
- package/dist/canvas/schema/node-definition/index.js +2 -2
- package/dist/canvas/schema/node-definition/node-manifest.cjs +2 -1
- package/dist/canvas/schema/node-definition/node-manifest.d.ts +7 -0
- package/dist/canvas/schema/node-definition/node-manifest.d.ts.map +1 -1
- package/dist/canvas/schema/node-definition/node-manifest.js +2 -1
- package/dist/canvas/schema/node-instance/base.d.ts +1 -0
- package/dist/canvas/schema/node-instance/base.d.ts.map +1 -1
- package/dist/canvas/schema/node-instance/node.d.ts +1 -0
- package/dist/canvas/schema/node-instance/node.d.ts.map +1 -1
- package/dist/canvas/storybook-utils/hooks/useCanvasStory.d.ts.map +1 -1
- package/dist/canvas/storybook-utils/manifests/index.d.ts +2 -1
- package/dist/canvas/storybook-utils/manifests/index.d.ts.map +1 -1
- package/dist/canvas/storybook-utils/manifests/node-definitions.d.ts.map +1 -1
- package/dist/canvas/styles/reactflow-reset.css +2 -2
- package/dist/canvas/styles/tailwind.canvas.css +1 -1
- package/dist/canvas/utils/NodeUtils.cjs +4 -0
- package/dist/canvas/utils/NodeUtils.d.ts +2 -1
- package/dist/canvas/utils/NodeUtils.d.ts.map +1 -1
- package/dist/canvas/utils/NodeUtils.js +2 -1
- package/dist/canvas/utils/collapse.cjs +13 -6
- package/dist/canvas/utils/collapse.d.ts.map +1 -1
- package/dist/canvas/utils/collapse.js +9 -2
- package/dist/canvas/utils/createPreviewGraph.cjs +126 -0
- package/dist/canvas/utils/createPreviewGraph.d.ts +36 -0
- package/dist/canvas/utils/createPreviewGraph.d.ts.map +1 -0
- package/dist/canvas/utils/createPreviewGraph.js +83 -0
- package/dist/canvas/utils/createPreviewNode.cjs +30 -11
- package/dist/canvas/utils/createPreviewNode.d.ts +10 -2
- package/dist/canvas/utils/createPreviewNode.d.ts.map +1 -1
- package/dist/canvas/utils/createPreviewNode.js +21 -11
- package/dist/canvas/utils/index.cjs +33 -26
- package/dist/canvas/utils/index.d.ts +2 -1
- package/dist/canvas/utils/index.d.ts.map +1 -1
- package/dist/canvas/utils/index.js +2 -1
- package/package.json +2 -2
|
@@ -29,10 +29,12 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
29
29
|
resolveCollisions: ()=>resolveCollisions,
|
|
30
30
|
resolveHandleContext: ()=>resolveHandleContext,
|
|
31
31
|
getHandleIndex: ()=>getHandleIndex,
|
|
32
|
+
selectIsConnecting: ()=>selectIsConnecting,
|
|
32
33
|
snapToGrid: ()=>snapToGrid
|
|
33
34
|
});
|
|
34
35
|
const react_cjs_namespaceObject = require("../xyflow/react.cjs");
|
|
35
36
|
const external_constants_cjs_namespaceObject = require("../constants.cjs");
|
|
37
|
+
const selectIsConnecting = (state)=>!!state.connection.inProgress;
|
|
36
38
|
const getAbsolutePosition = (node, nodes)=>{
|
|
37
39
|
let x = node.position.x;
|
|
38
40
|
let y = node.position.y;
|
|
@@ -146,6 +148,7 @@ exports.getHandleIndex = __webpack_exports__.getHandleIndex;
|
|
|
146
148
|
exports.getNonOverlappingPositionForDirection = __webpack_exports__.getNonOverlappingPositionForDirection;
|
|
147
149
|
exports.resolveCollisions = __webpack_exports__.resolveCollisions;
|
|
148
150
|
exports.resolveHandleContext = __webpack_exports__.resolveHandleContext;
|
|
151
|
+
exports.selectIsConnecting = __webpack_exports__.selectIsConnecting;
|
|
149
152
|
exports.snapToGrid = __webpack_exports__.snapToGrid;
|
|
150
153
|
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
151
154
|
"getAbsolutePosition",
|
|
@@ -153,6 +156,7 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
|
153
156
|
"getNonOverlappingPositionForDirection",
|
|
154
157
|
"resolveCollisions",
|
|
155
158
|
"resolveHandleContext",
|
|
159
|
+
"selectIsConnecting",
|
|
156
160
|
"snapToGrid"
|
|
157
161
|
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
158
162
|
Object.defineProperty(exports, '__esModule', {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { type Handle, type InternalNode, type Node, Position, type XYPosition } from '../xyflow/react.ts';
|
|
1
|
+
import { type Handle, type InternalNode, type Node, Position, type ReactFlowState, type XYPosition } from '../xyflow/react.ts';
|
|
2
|
+
export declare const selectIsConnecting: (state: ReactFlowState) => boolean;
|
|
2
3
|
export declare const getAbsolutePosition: (node: Node, nodes: Node[]) => {
|
|
3
4
|
x: number;
|
|
4
5
|
y: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeUtils.d.ts","sourceRoot":"","sources":["../../../src/canvas/utils/NodeUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,KAAK,IAAI,EACT,QAAQ,EACR,KAAK,UAAU,EAChB,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"NodeUtils.d.ts","sourceRoot":"","sources":["../../../src/canvas/utils/NodeUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,KAAK,IAAI,EACT,QAAQ,EACR,KAAK,cAAc,EACnB,KAAK,UAAU,EAChB,MAAM,0CAA0C,CAAC;AAQlD,eAAO,MAAM,kBAAkB,GAAI,OAAO,cAAc,YAAkC,CAAC;AAS3F,eAAO,MAAM,mBAAmB,GAAI,MAAM,IAAI,EAAE,OAAO,IAAI,EAAE,KAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAWrF,CAAC;AAeF,wBAAgB,qCAAqC,CACnD,KAAK,EAAE,IAAI,EAAE,EACb,eAAe,EAAE,UAAU,EAC3B,YAAY,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAC/C,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,EAC9C,MAAM,SAAmB,EACzB,gBAAgB,GAAE,MAAM,EAAO,EAC/B,iBAAiB,GAAE;IAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAAC,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;CAA8B,GACvF,UAAU,CAgCZ;AAED,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,KAAG,MAE1C,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,EAAE,yBAAyB,KAAK,IAAI,EAAE,CAAC;AA6BhG,eAAO,MAAM,iBAAiB,EAAE,kBAwE/B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAMF,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,QAAQ,GACvB,aAAa,GAAG,SAAS,CAgB3B;AAWD,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,MAAM,EAAE,GACnB,MAAM,GAAG,IAAI,CAQf"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Position } from "../xyflow/react.js";
|
|
2
2
|
import { DEFAULT_NODE_SIZE, GRID_SPACING, PREVIEW_NODE_ID } from "../constants.js";
|
|
3
|
+
const selectIsConnecting = (state)=>!!state.connection.inProgress;
|
|
3
4
|
const getAbsolutePosition = (node, nodes)=>{
|
|
4
5
|
let x = node.position.x;
|
|
5
6
|
let y = node.position.y;
|
|
@@ -108,4 +109,4 @@ function getHandleIndex(handleId, position, allHandles) {
|
|
|
108
109
|
const index = peers.findIndex((h)=>h.id === handleId);
|
|
109
110
|
return -1 === index ? null : index;
|
|
110
111
|
}
|
|
111
|
-
export { getAbsolutePosition, getHandleIndex, getNonOverlappingPositionForDirection, resolveCollisions, resolveHandleContext, snapToGrid };
|
|
112
|
+
export { getAbsolutePosition, getHandleIndex, getNonOverlappingPositionForDirection, resolveCollisions, resolveHandleContext, selectIsConnecting, snapToGrid };
|
|
@@ -24,13 +24,14 @@ var __webpack_require__ = {};
|
|
|
24
24
|
var __webpack_exports__ = {};
|
|
25
25
|
__webpack_require__.r(__webpack_exports__);
|
|
26
26
|
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
-
|
|
27
|
+
getExpandedShape: ()=>getExpandedShape,
|
|
28
|
+
getExpandedSize: ()=>getExpandedSize,
|
|
28
29
|
EXPANDED_RECTANGLE_WIDTH: ()=>EXPANDED_RECTANGLE_WIDTH,
|
|
29
30
|
getCollapsedShape: ()=>getCollapsedShape,
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
getExpandedSize: ()=>getExpandedSize
|
|
31
|
+
COLLAPSED_NODE_SIZE: ()=>COLLAPSED_NODE_SIZE,
|
|
32
|
+
getCollapsedSize: ()=>getCollapsedSize
|
|
33
33
|
});
|
|
34
|
+
const external_constants_cjs_namespaceObject = require("../constants.cjs");
|
|
34
35
|
const COLLAPSED_NODE_SIZE = 96;
|
|
35
36
|
const EXPANDED_RECTANGLE_WIDTH = 288;
|
|
36
37
|
const getCollapsedShape = (originalShape)=>'rectangle' === originalShape ? 'square' : originalShape;
|
|
@@ -39,10 +40,16 @@ const getCollapsedSize = ()=>({
|
|
|
39
40
|
width: COLLAPSED_NODE_SIZE,
|
|
40
41
|
height: COLLAPSED_NODE_SIZE
|
|
41
42
|
});
|
|
42
|
-
const getExpandedSize = (shape)=>
|
|
43
|
+
const getExpandedSize = (shape)=>{
|
|
44
|
+
if ('container' === shape) return {
|
|
45
|
+
width: external_constants_cjs_namespaceObject.DEFAULT_CONTAINER_WIDTH,
|
|
46
|
+
height: external_constants_cjs_namespaceObject.DEFAULT_CONTAINER_HEIGHT
|
|
47
|
+
};
|
|
48
|
+
return {
|
|
43
49
|
width: 'rectangle' === shape ? EXPANDED_RECTANGLE_WIDTH : COLLAPSED_NODE_SIZE,
|
|
44
50
|
height: COLLAPSED_NODE_SIZE
|
|
45
|
-
}
|
|
51
|
+
};
|
|
52
|
+
};
|
|
46
53
|
exports.COLLAPSED_NODE_SIZE = __webpack_exports__.COLLAPSED_NODE_SIZE;
|
|
47
54
|
exports.EXPANDED_RECTANGLE_WIDTH = __webpack_exports__.EXPANDED_RECTANGLE_WIDTH;
|
|
48
55
|
exports.getCollapsedShape = __webpack_exports__.getCollapsedShape;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collapse.d.ts","sourceRoot":"","sources":["../../../src/canvas/utils/collapse.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"collapse.d.ts","sourceRoot":"","sources":["../../../src/canvas/utils/collapse.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAK3D,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAKtC,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAM5C,eAAO,MAAM,iBAAiB,GAAI,gBAAgB,SAAS,KAAG,SAAS,GAAG,SAEzE,CAAC;AAOF,eAAO,MAAM,gBAAgB,GAAI,iBAAiB,SAAS,KAAG,SAAS,GAAG,SAEzE,CAAC;AAMF,eAAO,MAAM,gBAAgB,QAAO;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAKlE,CAAC;AAOF,eAAO,MAAM,eAAe,GAAI,QAAQ,SAAS,KAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAYlF,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { DEFAULT_CONTAINER_HEIGHT, DEFAULT_CONTAINER_WIDTH } from "../constants.js";
|
|
1
2
|
const COLLAPSED_NODE_SIZE = 96;
|
|
2
3
|
const EXPANDED_RECTANGLE_WIDTH = 288;
|
|
3
4
|
const getCollapsedShape = (originalShape)=>'rectangle' === originalShape ? 'square' : originalShape;
|
|
@@ -6,8 +7,14 @@ const getCollapsedSize = ()=>({
|
|
|
6
7
|
width: COLLAPSED_NODE_SIZE,
|
|
7
8
|
height: COLLAPSED_NODE_SIZE
|
|
8
9
|
});
|
|
9
|
-
const getExpandedSize = (shape)=>
|
|
10
|
+
const getExpandedSize = (shape)=>{
|
|
11
|
+
if ('container' === shape) return {
|
|
12
|
+
width: DEFAULT_CONTAINER_WIDTH,
|
|
13
|
+
height: DEFAULT_CONTAINER_HEIGHT
|
|
14
|
+
};
|
|
15
|
+
return {
|
|
10
16
|
width: 'rectangle' === shape ? EXPANDED_RECTANGLE_WIDTH : COLLAPSED_NODE_SIZE,
|
|
11
17
|
height: COLLAPSED_NODE_SIZE
|
|
12
|
-
}
|
|
18
|
+
};
|
|
19
|
+
};
|
|
13
20
|
export { COLLAPSED_NODE_SIZE, EXPANDED_RECTANGLE_WIDTH, getCollapsedShape, getCollapsedSize, getExpandedShape, getExpandedSize };
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.d = (exports1, definition)=>{
|
|
5
|
+
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: definition[key]
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
})();
|
|
11
|
+
(()=>{
|
|
12
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
13
|
+
})();
|
|
14
|
+
(()=>{
|
|
15
|
+
__webpack_require__.r = (exports1)=>{
|
|
16
|
+
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
17
|
+
value: 'Module'
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
20
|
+
value: true
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
})();
|
|
24
|
+
var __webpack_exports__ = {};
|
|
25
|
+
__webpack_require__.r(__webpack_exports__);
|
|
26
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
+
createPreviewGraph: ()=>createPreviewGraph,
|
|
28
|
+
reparentPreviewNodeToContainer: ()=>reparentPreviewNodeToContainer,
|
|
29
|
+
showPreviewGraph: ()=>showPreviewGraph,
|
|
30
|
+
applyPreviewGraphToReactFlow: ()=>applyPreviewGraphToReactFlow
|
|
31
|
+
});
|
|
32
|
+
const external_constants_cjs_namespaceObject = require("../constants.cjs");
|
|
33
|
+
const external_createPreviewNode_cjs_namespaceObject = require("./createPreviewNode.cjs");
|
|
34
|
+
const external_NodeUtils_cjs_namespaceObject = require("./NodeUtils.cjs");
|
|
35
|
+
function inferPreviewContainerId(sourceNode, targetNode) {
|
|
36
|
+
if (!targetNode) return sourceNode.parentId;
|
|
37
|
+
if (sourceNode.parentId === targetNode.parentId) return sourceNode.parentId;
|
|
38
|
+
if (targetNode.parentId === sourceNode.id) return sourceNode.id;
|
|
39
|
+
if (sourceNode.parentId === targetNode.id) return targetNode.id;
|
|
40
|
+
}
|
|
41
|
+
function reparentPreviewNodeToContainer(previewNode, containerId, reactFlowInstance) {
|
|
42
|
+
const containerNode = reactFlowInstance.getNode(containerId);
|
|
43
|
+
if (!containerNode) return null;
|
|
44
|
+
const containerAbsolutePosition = (0, external_NodeUtils_cjs_namespaceObject.getAbsolutePosition)(containerNode, reactFlowInstance.getNodes());
|
|
45
|
+
return {
|
|
46
|
+
...previewNode,
|
|
47
|
+
position: {
|
|
48
|
+
x: previewNode.position.x - containerAbsolutePosition.x,
|
|
49
|
+
y: previewNode.position.y - containerAbsolutePosition.y
|
|
50
|
+
},
|
|
51
|
+
parentId: containerId,
|
|
52
|
+
extent: 'parent'
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
function createPreviewNodeForGraph({ sourceNodeId, sourceHandleId, reactFlowInstance, position, data, sourceHandleType, previewNodeSize, handlePosition, ignoredNodeTypes, positionMode }) {
|
|
56
|
+
return (0, external_createPreviewNode_cjs_namespaceObject.createPreviewNode)(sourceNodeId, sourceHandleId, reactFlowInstance, position, data, sourceHandleType, previewNodeSize, handlePosition, ignoredNodeTypes, positionMode);
|
|
57
|
+
}
|
|
58
|
+
function createTrailingPreviewEdge({ targetNodeId, targetHandleId, trailingEdgeId, trailingEdgeStyle = external_createPreviewNode_cjs_namespaceObject.PREVIEW_EDGE_STYLE }) {
|
|
59
|
+
if (!targetNodeId) return null;
|
|
60
|
+
return {
|
|
61
|
+
id: trailingEdgeId ?? `${external_constants_cjs_namespaceObject.PREVIEW_NODE_ID}-${targetNodeId}`,
|
|
62
|
+
source: external_constants_cjs_namespaceObject.PREVIEW_NODE_ID,
|
|
63
|
+
sourceHandle: external_constants_cjs_namespaceObject.DEFAULT_SOURCE_HANDLE_ID,
|
|
64
|
+
target: targetNodeId,
|
|
65
|
+
targetHandle: targetHandleId,
|
|
66
|
+
type: 'default',
|
|
67
|
+
style: trailingEdgeStyle
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
function createPreviewGraph(options) {
|
|
71
|
+
const { reactFlowInstance, targetNodeId, containerId, removedEdgeIds, sourceNodeId } = options;
|
|
72
|
+
const preview = createPreviewNodeForGraph(options);
|
|
73
|
+
if (!preview) return null;
|
|
74
|
+
const sourceNode = reactFlowInstance.getNode(sourceNodeId);
|
|
75
|
+
if (!sourceNode) return null;
|
|
76
|
+
const targetNode = targetNodeId ? reactFlowInstance.getNode(targetNodeId) : void 0;
|
|
77
|
+
const resolvedContainerId = containerId ?? inferPreviewContainerId(sourceNode, targetNode);
|
|
78
|
+
const finalPreviewNode = resolvedContainerId ? reparentPreviewNodeToContainer(preview.node, resolvedContainerId, reactFlowInstance) : preview.node;
|
|
79
|
+
if (!finalPreviewNode) return null;
|
|
80
|
+
const trailingEdge = createTrailingPreviewEdge(options);
|
|
81
|
+
const edges = trailingEdge ? [
|
|
82
|
+
preview.edge,
|
|
83
|
+
trailingEdge
|
|
84
|
+
] : [
|
|
85
|
+
preview.edge
|
|
86
|
+
];
|
|
87
|
+
return {
|
|
88
|
+
node: finalPreviewNode,
|
|
89
|
+
edges,
|
|
90
|
+
removedEdgeIds
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
function showPreviewGraph(options) {
|
|
94
|
+
const preview = createPreviewGraph(options);
|
|
95
|
+
if (preview) applyPreviewGraphToReactFlow(preview, options.reactFlowInstance);
|
|
96
|
+
return preview;
|
|
97
|
+
}
|
|
98
|
+
function applyPreviewGraphToReactFlow(preview, reactFlowInstance) {
|
|
99
|
+
const removedEdgeIds = new Set(preview.removedEdgeIds ?? []);
|
|
100
|
+
setTimeout(()=>{
|
|
101
|
+
reactFlowInstance.setNodes((nodes)=>[
|
|
102
|
+
...nodes.filter((node)=>node.id !== external_constants_cjs_namespaceObject.PREVIEW_NODE_ID).map((node)=>({
|
|
103
|
+
...node,
|
|
104
|
+
selected: false
|
|
105
|
+
})),
|
|
106
|
+
preview.node
|
|
107
|
+
]);
|
|
108
|
+
reactFlowInstance.setEdges((edges)=>[
|
|
109
|
+
...edges.filter((edge)=>!(0, external_createPreviewNode_cjs_namespaceObject.isPreviewEdge)(edge) && !removedEdgeIds.has(edge.id)),
|
|
110
|
+
...preview.edges
|
|
111
|
+
]);
|
|
112
|
+
}, 0);
|
|
113
|
+
}
|
|
114
|
+
exports.applyPreviewGraphToReactFlow = __webpack_exports__.applyPreviewGraphToReactFlow;
|
|
115
|
+
exports.createPreviewGraph = __webpack_exports__.createPreviewGraph;
|
|
116
|
+
exports.reparentPreviewNodeToContainer = __webpack_exports__.reparentPreviewNodeToContainer;
|
|
117
|
+
exports.showPreviewGraph = __webpack_exports__.showPreviewGraph;
|
|
118
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
119
|
+
"applyPreviewGraphToReactFlow",
|
|
120
|
+
"createPreviewGraph",
|
|
121
|
+
"reparentPreviewNodeToContainer",
|
|
122
|
+
"showPreviewGraph"
|
|
123
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
124
|
+
Object.defineProperty(exports, '__esModule', {
|
|
125
|
+
value: true
|
|
126
|
+
});
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { Edge, Node, Position, ReactFlowInstance } from '../xyflow/react.ts';
|
|
2
|
+
import { type PreviewNodePositionMode } from './createPreviewNode';
|
|
3
|
+
export interface PreviewGraph {
|
|
4
|
+
node: Node;
|
|
5
|
+
edges: Edge[];
|
|
6
|
+
removedEdgeIds?: string[];
|
|
7
|
+
}
|
|
8
|
+
export interface CreatePreviewGraphOptions {
|
|
9
|
+
sourceNodeId: string;
|
|
10
|
+
sourceHandleId: string;
|
|
11
|
+
reactFlowInstance: ReactFlowInstance;
|
|
12
|
+
position?: {
|
|
13
|
+
x: number;
|
|
14
|
+
y: number;
|
|
15
|
+
};
|
|
16
|
+
data?: Record<string, unknown>;
|
|
17
|
+
sourceHandleType?: 'source' | 'target';
|
|
18
|
+
previewNodeSize?: {
|
|
19
|
+
width: number;
|
|
20
|
+
height: number;
|
|
21
|
+
};
|
|
22
|
+
handlePosition?: Position;
|
|
23
|
+
ignoredNodeTypes?: string[];
|
|
24
|
+
positionMode?: PreviewNodePositionMode;
|
|
25
|
+
targetNodeId?: string;
|
|
26
|
+
targetHandleId?: string | null;
|
|
27
|
+
containerId?: string;
|
|
28
|
+
removedEdgeIds?: string[];
|
|
29
|
+
trailingEdgeId?: string;
|
|
30
|
+
trailingEdgeStyle?: Edge['style'];
|
|
31
|
+
}
|
|
32
|
+
export declare function reparentPreviewNodeToContainer(previewNode: Node, containerId: string, reactFlowInstance: ReactFlowInstance): Node | null;
|
|
33
|
+
export declare function createPreviewGraph(options: CreatePreviewGraphOptions): PreviewGraph | null;
|
|
34
|
+
export declare function showPreviewGraph(options: CreatePreviewGraphOptions): PreviewGraph | null;
|
|
35
|
+
export declare function applyPreviewGraphToReactFlow(preview: PreviewGraph, reactFlowInstance: ReactFlowInstance): void;
|
|
36
|
+
//# sourceMappingURL=createPreviewGraph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createPreviewGraph.d.ts","sourceRoot":"","sources":["../../../src/canvas/utils/createPreviewGraph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,iBAAiB,EAClB,MAAM,0CAA0C,CAAC;AAElD,OAAO,EAIL,KAAK,uBAAuB,EAC7B,MAAM,qBAAqB,CAAC;AAG7B,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,yBAAyB;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,gBAAgB,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACvC,eAAe,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACpD,cAAc,CAAC,EAAE,QAAQ,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,YAAY,CAAC,EAAE,uBAAuB,CAAC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;CACnC;AAsBD,wBAAgB,8BAA8B,CAC5C,WAAW,EAAE,IAAI,EACjB,WAAW,EAAE,MAAM,EACnB,iBAAiB,EAAE,iBAAiB,GACnC,IAAI,GAAG,IAAI,CAoBb;AAkDD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,YAAY,GAAG,IAAI,CAyB1F;AAOD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,yBAAyB,GAAG,YAAY,GAAG,IAAI,CAMxF;AAOD,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,YAAY,EACrB,iBAAiB,EAAE,iBAAiB,GACnC,IAAI,CAgBN"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { DEFAULT_SOURCE_HANDLE_ID, PREVIEW_NODE_ID } from "../constants.js";
|
|
2
|
+
import { PREVIEW_EDGE_STYLE, createPreviewNode, isPreviewEdge } from "./createPreviewNode.js";
|
|
3
|
+
import { getAbsolutePosition } from "./NodeUtils.js";
|
|
4
|
+
function inferPreviewContainerId(sourceNode, targetNode) {
|
|
5
|
+
if (!targetNode) return sourceNode.parentId;
|
|
6
|
+
if (sourceNode.parentId === targetNode.parentId) return sourceNode.parentId;
|
|
7
|
+
if (targetNode.parentId === sourceNode.id) return sourceNode.id;
|
|
8
|
+
if (sourceNode.parentId === targetNode.id) return targetNode.id;
|
|
9
|
+
}
|
|
10
|
+
function reparentPreviewNodeToContainer(previewNode, containerId, reactFlowInstance) {
|
|
11
|
+
const containerNode = reactFlowInstance.getNode(containerId);
|
|
12
|
+
if (!containerNode) return null;
|
|
13
|
+
const containerAbsolutePosition = getAbsolutePosition(containerNode, reactFlowInstance.getNodes());
|
|
14
|
+
return {
|
|
15
|
+
...previewNode,
|
|
16
|
+
position: {
|
|
17
|
+
x: previewNode.position.x - containerAbsolutePosition.x,
|
|
18
|
+
y: previewNode.position.y - containerAbsolutePosition.y
|
|
19
|
+
},
|
|
20
|
+
parentId: containerId,
|
|
21
|
+
extent: 'parent'
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
function createPreviewNodeForGraph({ sourceNodeId, sourceHandleId, reactFlowInstance, position, data, sourceHandleType, previewNodeSize, handlePosition, ignoredNodeTypes, positionMode }) {
|
|
25
|
+
return createPreviewNode(sourceNodeId, sourceHandleId, reactFlowInstance, position, data, sourceHandleType, previewNodeSize, handlePosition, ignoredNodeTypes, positionMode);
|
|
26
|
+
}
|
|
27
|
+
function createTrailingPreviewEdge({ targetNodeId, targetHandleId, trailingEdgeId, trailingEdgeStyle = PREVIEW_EDGE_STYLE }) {
|
|
28
|
+
if (!targetNodeId) return null;
|
|
29
|
+
return {
|
|
30
|
+
id: trailingEdgeId ?? `${PREVIEW_NODE_ID}-${targetNodeId}`,
|
|
31
|
+
source: PREVIEW_NODE_ID,
|
|
32
|
+
sourceHandle: DEFAULT_SOURCE_HANDLE_ID,
|
|
33
|
+
target: targetNodeId,
|
|
34
|
+
targetHandle: targetHandleId,
|
|
35
|
+
type: 'default',
|
|
36
|
+
style: trailingEdgeStyle
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
function createPreviewGraph(options) {
|
|
40
|
+
const { reactFlowInstance, targetNodeId, containerId, removedEdgeIds, sourceNodeId } = options;
|
|
41
|
+
const preview = createPreviewNodeForGraph(options);
|
|
42
|
+
if (!preview) return null;
|
|
43
|
+
const sourceNode = reactFlowInstance.getNode(sourceNodeId);
|
|
44
|
+
if (!sourceNode) return null;
|
|
45
|
+
const targetNode = targetNodeId ? reactFlowInstance.getNode(targetNodeId) : void 0;
|
|
46
|
+
const resolvedContainerId = containerId ?? inferPreviewContainerId(sourceNode, targetNode);
|
|
47
|
+
const finalPreviewNode = resolvedContainerId ? reparentPreviewNodeToContainer(preview.node, resolvedContainerId, reactFlowInstance) : preview.node;
|
|
48
|
+
if (!finalPreviewNode) return null;
|
|
49
|
+
const trailingEdge = createTrailingPreviewEdge(options);
|
|
50
|
+
const edges = trailingEdge ? [
|
|
51
|
+
preview.edge,
|
|
52
|
+
trailingEdge
|
|
53
|
+
] : [
|
|
54
|
+
preview.edge
|
|
55
|
+
];
|
|
56
|
+
return {
|
|
57
|
+
node: finalPreviewNode,
|
|
58
|
+
edges,
|
|
59
|
+
removedEdgeIds
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
function showPreviewGraph(options) {
|
|
63
|
+
const preview = createPreviewGraph(options);
|
|
64
|
+
if (preview) applyPreviewGraphToReactFlow(preview, options.reactFlowInstance);
|
|
65
|
+
return preview;
|
|
66
|
+
}
|
|
67
|
+
function applyPreviewGraphToReactFlow(preview, reactFlowInstance) {
|
|
68
|
+
const removedEdgeIds = new Set(preview.removedEdgeIds ?? []);
|
|
69
|
+
setTimeout(()=>{
|
|
70
|
+
reactFlowInstance.setNodes((nodes)=>[
|
|
71
|
+
...nodes.filter((node)=>node.id !== PREVIEW_NODE_ID).map((node)=>({
|
|
72
|
+
...node,
|
|
73
|
+
selected: false
|
|
74
|
+
})),
|
|
75
|
+
preview.node
|
|
76
|
+
]);
|
|
77
|
+
reactFlowInstance.setEdges((edges)=>[
|
|
78
|
+
...edges.filter((edge)=>!isPreviewEdge(edge) && !removedEdgeIds.has(edge.id)),
|
|
79
|
+
...preview.edges
|
|
80
|
+
]);
|
|
81
|
+
}, 0);
|
|
82
|
+
}
|
|
83
|
+
export { applyPreviewGraphToReactFlow, createPreviewGraph, reparentPreviewNodeToContainer, showPreviewGraph };
|
|
@@ -24,13 +24,25 @@ var __webpack_require__ = {};
|
|
|
24
24
|
var __webpack_exports__ = {};
|
|
25
25
|
__webpack_require__.r(__webpack_exports__);
|
|
26
26
|
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
-
|
|
27
|
+
PREVIEW_EDGE_STYLE: ()=>PREVIEW_EDGE_STYLE,
|
|
28
|
+
isPreviewEdge: ()=>isPreviewEdge,
|
|
28
29
|
removePreviewFromReactFlow: ()=>removePreviewFromReactFlow,
|
|
30
|
+
applyPreviewToReactFlow: ()=>applyPreviewToReactFlow,
|
|
31
|
+
getOppositePosition: ()=>getOppositePosition,
|
|
29
32
|
createPreviewNode: ()=>createPreviewNode
|
|
30
33
|
});
|
|
31
34
|
const react_cjs_namespaceObject = require("../xyflow/react.cjs");
|
|
32
35
|
const external_constants_cjs_namespaceObject = require("../constants.cjs");
|
|
33
36
|
const external_NodeUtils_cjs_namespaceObject = require("./NodeUtils.cjs");
|
|
37
|
+
const PREVIEW_EDGE_STYLE = {
|
|
38
|
+
strokeDasharray: '5,5',
|
|
39
|
+
opacity: 0.8,
|
|
40
|
+
stroke: 'var(--canvas-selection-indicator)',
|
|
41
|
+
strokeWidth: 2
|
|
42
|
+
};
|
|
43
|
+
function isPreviewEdge(edge) {
|
|
44
|
+
return edge.id === external_constants_cjs_namespaceObject.PREVIEW_EDGE_ID || edge.source === external_constants_cjs_namespaceObject.PREVIEW_NODE_ID || edge.target === external_constants_cjs_namespaceObject.PREVIEW_NODE_ID;
|
|
45
|
+
}
|
|
34
46
|
function getOppositePosition(position) {
|
|
35
47
|
switch(position){
|
|
36
48
|
case react_cjs_namespaceObject.Position.Left:
|
|
@@ -74,6 +86,12 @@ function calculatePositionFromDrop(dropPosition, handlePosition, previewNodeSize
|
|
|
74
86
|
};
|
|
75
87
|
}
|
|
76
88
|
}
|
|
89
|
+
function calculateCenteredPosition(centerPosition, previewNodeSize) {
|
|
90
|
+
return {
|
|
91
|
+
x: centerPosition.x - previewNodeSize.width / 2,
|
|
92
|
+
y: centerPosition.y - previewNodeSize.height / 2
|
|
93
|
+
};
|
|
94
|
+
}
|
|
77
95
|
function computeSpreadOffset(handle, size) {
|
|
78
96
|
const index = handle?.index ?? null;
|
|
79
97
|
const count = handle?.count ?? 1;
|
|
@@ -139,7 +157,7 @@ function calculateAutoPosition(sourceNode, handlePosition, previewNodeSize, exis
|
|
|
139
157
|
function createPreviewNode(sourceNodeId, sourceHandleId, reactFlowInstance, position, data, sourceHandleType = 'source', previewNodeSize = {
|
|
140
158
|
width: external_constants_cjs_namespaceObject.DEFAULT_NODE_SIZE,
|
|
141
159
|
height: external_constants_cjs_namespaceObject.DEFAULT_NODE_SIZE
|
|
142
|
-
}, handlePosition = react_cjs_namespaceObject.Position.Right, ignoredNodeTypes = []) {
|
|
160
|
+
}, handlePosition = react_cjs_namespaceObject.Position.Right, ignoredNodeTypes = [], positionMode = 'drop') {
|
|
143
161
|
const sourceNode = reactFlowInstance.getNode(sourceNodeId);
|
|
144
162
|
if (!sourceNode) {
|
|
145
163
|
console.warn(`Source node ${sourceNodeId} not found`);
|
|
@@ -149,7 +167,7 @@ function createPreviewNode(sourceNodeId, sourceHandleId, reactFlowInstance, posi
|
|
|
149
167
|
const existingNodes = reactFlowInstance.getNodes().filter((n)=>n.id !== external_constants_cjs_namespaceObject.PREVIEW_NODE_ID);
|
|
150
168
|
const internalNode = void 0 === position ? reactFlowInstance.getInternalNode(sourceNodeId) : void 0;
|
|
151
169
|
const handle = internalNode ? (0, external_NodeUtils_cjs_namespaceObject.resolveHandleContext)(internalNode, sourceHandleId, handlePosition) : void 0;
|
|
152
|
-
const nodePosition = position ? calculatePositionFromDrop(position, handlePosition, previewNodeSize) : calculateAutoPosition(sourceNode, handlePosition, previewNodeSize, existingNodes, void 0, ignoredNodeTypes, handle);
|
|
170
|
+
const nodePosition = position ? 'center' === positionMode ? calculateCenteredPosition(position, previewNodeSize) : calculatePositionFromDrop(position, handlePosition, previewNodeSize) : calculateAutoPosition(sourceNode, handlePosition, previewNodeSize, existingNodes, void 0, ignoredNodeTypes, handle);
|
|
153
171
|
const handleFacingSource = getOppositePosition(handlePosition);
|
|
154
172
|
const finalData = {
|
|
155
173
|
...data ?? {}
|
|
@@ -179,12 +197,7 @@ function createPreviewNode(sourceNodeId, sourceHandleId, reactFlowInstance, posi
|
|
|
179
197
|
id: external_constants_cjs_namespaceObject.PREVIEW_EDGE_ID,
|
|
180
198
|
...previewSourceAndTargetData,
|
|
181
199
|
type: 'default',
|
|
182
|
-
style:
|
|
183
|
-
strokeDasharray: '5,5',
|
|
184
|
-
opacity: 0.8,
|
|
185
|
-
stroke: 'var(--canvas-selection-indicator)',
|
|
186
|
-
strokeWidth: 2
|
|
187
|
-
}
|
|
200
|
+
style: PREVIEW_EDGE_STYLE
|
|
188
201
|
};
|
|
189
202
|
return {
|
|
190
203
|
node: previewNode,
|
|
@@ -201,21 +214,27 @@ function applyPreviewToReactFlow(preview, reactFlowInstance) {
|
|
|
201
214
|
preview.node
|
|
202
215
|
]);
|
|
203
216
|
reactFlowInstance.setEdges((edges)=>[
|
|
204
|
-
...edges.filter((
|
|
217
|
+
...edges.filter((edge)=>!isPreviewEdge(edge)),
|
|
205
218
|
preview.edge
|
|
206
219
|
]);
|
|
207
220
|
}, 0);
|
|
208
221
|
}
|
|
209
222
|
function removePreviewFromReactFlow(reactFlowInstance) {
|
|
210
223
|
reactFlowInstance.setNodes((nodes)=>nodes.filter((n)=>n.id !== external_constants_cjs_namespaceObject.PREVIEW_NODE_ID));
|
|
211
|
-
reactFlowInstance.setEdges((edges)=>edges.filter((
|
|
224
|
+
reactFlowInstance.setEdges((edges)=>edges.filter((edge)=>!isPreviewEdge(edge)));
|
|
212
225
|
}
|
|
226
|
+
exports.PREVIEW_EDGE_STYLE = __webpack_exports__.PREVIEW_EDGE_STYLE;
|
|
213
227
|
exports.applyPreviewToReactFlow = __webpack_exports__.applyPreviewToReactFlow;
|
|
214
228
|
exports.createPreviewNode = __webpack_exports__.createPreviewNode;
|
|
229
|
+
exports.getOppositePosition = __webpack_exports__.getOppositePosition;
|
|
230
|
+
exports.isPreviewEdge = __webpack_exports__.isPreviewEdge;
|
|
215
231
|
exports.removePreviewFromReactFlow = __webpack_exports__.removePreviewFromReactFlow;
|
|
216
232
|
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
233
|
+
"PREVIEW_EDGE_STYLE",
|
|
217
234
|
"applyPreviewToReactFlow",
|
|
218
235
|
"createPreviewNode",
|
|
236
|
+
"getOppositePosition",
|
|
237
|
+
"isPreviewEdge",
|
|
219
238
|
"removePreviewFromReactFlow"
|
|
220
239
|
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
221
240
|
Object.defineProperty(exports, '__esModule', {
|
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
import { type Edge, type Node, Position, type ReactFlowInstance } from '../xyflow/react.ts';
|
|
2
|
+
export type PreviewNodePositionMode = 'drop' | 'center';
|
|
3
|
+
export declare const PREVIEW_EDGE_STYLE: Edge['style'];
|
|
4
|
+
export declare function isPreviewEdge(edge: {
|
|
5
|
+
id?: string;
|
|
6
|
+
source?: string;
|
|
7
|
+
target?: string;
|
|
8
|
+
}): boolean;
|
|
9
|
+
export declare function getOppositePosition(position: Position): Position;
|
|
2
10
|
export declare function createPreviewNode(sourceNodeId: string, sourceHandleId: string, reactFlowInstance: ReactFlowInstance, position?: {
|
|
3
11
|
x: number;
|
|
4
12
|
y: number;
|
|
5
|
-
}, data?: Record<string,
|
|
13
|
+
}, data?: Record<string, unknown>, sourceHandleType?: 'source' | 'target', previewNodeSize?: {
|
|
6
14
|
width: number;
|
|
7
15
|
height: number;
|
|
8
|
-
}, handlePosition?: Position, ignoredNodeTypes?: string[]): {
|
|
16
|
+
}, handlePosition?: Position, ignoredNodeTypes?: string[], positionMode?: PreviewNodePositionMode): {
|
|
9
17
|
node: Node;
|
|
10
18
|
edge: Edge;
|
|
11
19
|
} | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createPreviewNode.d.ts","sourceRoot":"","sources":["../../../src/canvas/utils/createPreviewNode.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,IAAI,EACT,KAAK,IAAI,EACT,QAAQ,EACR,KAAK,iBAAiB,EACvB,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"createPreviewNode.d.ts","sourceRoot":"","sources":["../../../src/canvas/utils/createPreviewNode.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,IAAI,EACT,KAAK,IAAI,EACT,QAAQ,EACR,KAAK,iBAAiB,EACvB,MAAM,0CAA0C,CAAC;AASlD,MAAM,MAAM,uBAAuB,GAAG,MAAM,GAAG,QAAQ,CAAC;AAExD,eAAO,MAAM,kBAAkB,EAAE,IAAI,CAAC,OAAO,CAK5C,CAAC;AAEF,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAM9F;AAMD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAahE;AAiLD,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,EACtB,iBAAiB,EAAE,iBAAiB,EACpC,QAAQ,CAAC,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EACnC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,gBAAgB,GAAE,QAAQ,GAAG,QAAmB,EAChD,eAAe,GAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAG/C,EACD,cAAc,GAAE,QAAyB,EACzC,gBAAgB,GAAE,MAAM,EAAO,EAC/B,YAAY,GAAE,uBAAgC,GAC7C;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,GAAG,IAAI,CAwFnC;AAMD,wBAAgB,uBAAuB,CACrC,OAAO,EAAE;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,EACnC,iBAAiB,EAAE,iBAAiB,GACnC,IAAI,CAcN;AAKD,wBAAgB,0BAA0B,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,IAAI,CAGrF"}
|
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
import { Position } from "../xyflow/react.js";
|
|
2
2
|
import { DEFAULT_NODE_SIZE, GRID_SPACING, PREVIEW_EDGE_ID, PREVIEW_NODE_ID } from "../constants.js";
|
|
3
3
|
import { getAbsolutePosition, getNonOverlappingPositionForDirection, resolveHandleContext } from "./NodeUtils.js";
|
|
4
|
+
const PREVIEW_EDGE_STYLE = {
|
|
5
|
+
strokeDasharray: '5,5',
|
|
6
|
+
opacity: 0.8,
|
|
7
|
+
stroke: 'var(--canvas-selection-indicator)',
|
|
8
|
+
strokeWidth: 2
|
|
9
|
+
};
|
|
10
|
+
function isPreviewEdge(edge) {
|
|
11
|
+
return edge.id === PREVIEW_EDGE_ID || edge.source === PREVIEW_NODE_ID || edge.target === PREVIEW_NODE_ID;
|
|
12
|
+
}
|
|
4
13
|
function getOppositePosition(position) {
|
|
5
14
|
switch(position){
|
|
6
15
|
case Position.Left:
|
|
@@ -44,6 +53,12 @@ function calculatePositionFromDrop(dropPosition, handlePosition, previewNodeSize
|
|
|
44
53
|
};
|
|
45
54
|
}
|
|
46
55
|
}
|
|
56
|
+
function calculateCenteredPosition(centerPosition, previewNodeSize) {
|
|
57
|
+
return {
|
|
58
|
+
x: centerPosition.x - previewNodeSize.width / 2,
|
|
59
|
+
y: centerPosition.y - previewNodeSize.height / 2
|
|
60
|
+
};
|
|
61
|
+
}
|
|
47
62
|
function computeSpreadOffset(handle, size) {
|
|
48
63
|
const index = handle?.index ?? null;
|
|
49
64
|
const count = handle?.count ?? 1;
|
|
@@ -109,7 +124,7 @@ function calculateAutoPosition(sourceNode, handlePosition, previewNodeSize, exis
|
|
|
109
124
|
function createPreviewNode(sourceNodeId, sourceHandleId, reactFlowInstance, position, data, sourceHandleType = 'source', previewNodeSize = {
|
|
110
125
|
width: DEFAULT_NODE_SIZE,
|
|
111
126
|
height: DEFAULT_NODE_SIZE
|
|
112
|
-
}, handlePosition = Position.Right, ignoredNodeTypes = []) {
|
|
127
|
+
}, handlePosition = Position.Right, ignoredNodeTypes = [], positionMode = 'drop') {
|
|
113
128
|
const sourceNode = reactFlowInstance.getNode(sourceNodeId);
|
|
114
129
|
if (!sourceNode) {
|
|
115
130
|
console.warn(`Source node ${sourceNodeId} not found`);
|
|
@@ -119,7 +134,7 @@ function createPreviewNode(sourceNodeId, sourceHandleId, reactFlowInstance, posi
|
|
|
119
134
|
const existingNodes = reactFlowInstance.getNodes().filter((n)=>n.id !== PREVIEW_NODE_ID);
|
|
120
135
|
const internalNode = void 0 === position ? reactFlowInstance.getInternalNode(sourceNodeId) : void 0;
|
|
121
136
|
const handle = internalNode ? resolveHandleContext(internalNode, sourceHandleId, handlePosition) : void 0;
|
|
122
|
-
const nodePosition = position ? calculatePositionFromDrop(position, handlePosition, previewNodeSize) : calculateAutoPosition(sourceNode, handlePosition, previewNodeSize, existingNodes, void 0, ignoredNodeTypes, handle);
|
|
137
|
+
const nodePosition = position ? 'center' === positionMode ? calculateCenteredPosition(position, previewNodeSize) : calculatePositionFromDrop(position, handlePosition, previewNodeSize) : calculateAutoPosition(sourceNode, handlePosition, previewNodeSize, existingNodes, void 0, ignoredNodeTypes, handle);
|
|
123
138
|
const handleFacingSource = getOppositePosition(handlePosition);
|
|
124
139
|
const finalData = {
|
|
125
140
|
...data ?? {}
|
|
@@ -149,12 +164,7 @@ function createPreviewNode(sourceNodeId, sourceHandleId, reactFlowInstance, posi
|
|
|
149
164
|
id: PREVIEW_EDGE_ID,
|
|
150
165
|
...previewSourceAndTargetData,
|
|
151
166
|
type: 'default',
|
|
152
|
-
style:
|
|
153
|
-
strokeDasharray: '5,5',
|
|
154
|
-
opacity: 0.8,
|
|
155
|
-
stroke: 'var(--canvas-selection-indicator)',
|
|
156
|
-
strokeWidth: 2
|
|
157
|
-
}
|
|
167
|
+
style: PREVIEW_EDGE_STYLE
|
|
158
168
|
};
|
|
159
169
|
return {
|
|
160
170
|
node: previewNode,
|
|
@@ -171,13 +181,13 @@ function applyPreviewToReactFlow(preview, reactFlowInstance) {
|
|
|
171
181
|
preview.node
|
|
172
182
|
]);
|
|
173
183
|
reactFlowInstance.setEdges((edges)=>[
|
|
174
|
-
...edges.filter((
|
|
184
|
+
...edges.filter((edge)=>!isPreviewEdge(edge)),
|
|
175
185
|
preview.edge
|
|
176
186
|
]);
|
|
177
187
|
}, 0);
|
|
178
188
|
}
|
|
179
189
|
function removePreviewFromReactFlow(reactFlowInstance) {
|
|
180
190
|
reactFlowInstance.setNodes((nodes)=>nodes.filter((n)=>n.id !== PREVIEW_NODE_ID));
|
|
181
|
-
reactFlowInstance.setEdges((edges)=>edges.filter((
|
|
191
|
+
reactFlowInstance.setEdges((edges)=>edges.filter((edge)=>!isPreviewEdge(edge)));
|
|
182
192
|
}
|
|
183
|
-
export { applyPreviewToReactFlow, createPreviewNode, removePreviewFromReactFlow };
|
|
193
|
+
export { PREVIEW_EDGE_STYLE, applyPreviewToReactFlow, createPreviewNode, getOppositePosition, isPreviewEdge, removePreviewFromReactFlow };
|