@uipath/apollo-react 4.14.1 → 4.15.0-pr605.635fb17
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 +106 -10
- package/dist/canvas/components/AddNodePanel/AddNodeManager.d.ts.map +1 -1
- package/dist/canvas/components/AddNodePanel/AddNodeManager.js +106 -10
- package/dist/canvas/components/AddNodePanel/createAddNodePreview.cjs +28 -4
- package/dist/canvas/components/AddNodePanel/createAddNodePreview.d.ts +2 -1
- package/dist/canvas/components/AddNodePanel/createAddNodePreview.d.ts.map +1 -1
- package/dist/canvas/components/AddNodePanel/createAddNodePreview.js +28 -4
- package/dist/canvas/components/AgentCanvas/agent-flow.manifest.d.ts +1 -0
- package/dist/canvas/components/AgentCanvas/agent-flow.manifest.d.ts.map +1 -1
- package/dist/canvas/components/BaseNode/BaseNode.cjs +11 -5
- package/dist/canvas/components/BaseNode/BaseNode.d.ts +2 -1
- package/dist/canvas/components/BaseNode/BaseNode.d.ts.map +1 -1
- package/dist/canvas/components/BaseNode/BaseNode.js +9 -6
- package/dist/canvas/components/BaseNode/BaseNode.types.d.ts +3 -0
- package/dist/canvas/components/BaseNode/BaseNode.types.d.ts.map +1 -1
- package/dist/canvas/components/ButtonHandle/ButtonHandle.cjs +222 -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 +223 -14
- 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 +17 -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 +17 -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 +18 -12
- package/dist/canvas/components/Edges/SequenceEdge.d.ts.map +1 -1
- package/dist/canvas/components/Edges/SequenceEdge.js +18 -12
- package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvas.cjs +34 -25
- package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvas.d.ts +8 -2
- package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvas.d.ts.map +1 -1
- package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvas.js +36 -27
- package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvasWithControls.cjs +9 -2
- package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvasWithControls.d.ts.map +1 -1
- package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvasWithControls.js +10 -3
- package/dist/canvas/components/HierarchicalCanvas/index.d.ts +1 -1
- package/dist/canvas/components/HierarchicalCanvas/index.d.ts.map +1 -1
- package/dist/canvas/components/LoopNode/LoopCanvasNode.cjs +86 -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 +52 -0
- package/dist/canvas/components/LoopNode/LoopNode.cjs +434 -0
- package/dist/canvas/components/LoopNode/LoopNode.constants.cjs +93 -0
- package/dist/canvas/components/LoopNode/LoopNode.constants.d.ts +16 -0
- package/dist/canvas/components/LoopNode/LoopNode.constants.d.ts.map +1 -0
- package/dist/canvas/components/LoopNode/LoopNode.constants.js +17 -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 +185 -0
- package/dist/canvas/components/LoopNode/LoopNode.helpers.d.ts +58 -0
- package/dist/canvas/components/LoopNode/LoopNode.helpers.d.ts.map +1 -0
- package/dist/canvas/components/LoopNode/LoopNode.helpers.js +124 -0
- package/dist/canvas/components/LoopNode/LoopNode.js +400 -0
- package/dist/canvas/components/LoopNode/LoopNode.sequence.cjs +433 -0
- package/dist/canvas/components/LoopNode/LoopNode.sequence.d.ts +57 -0
- package/dist/canvas/components/LoopNode/LoopNode.sequence.d.ts.map +1 -0
- package/dist/canvas/components/LoopNode/LoopNode.sequence.js +387 -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 +60 -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 +26 -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 +41 -24
- package/dist/canvas/components/Toolbar/EdgeToolbar/useEdgeToolbarState.d.ts.map +1 -1
- package/dist/canvas/components/Toolbar/EdgeToolbar/useEdgeToolbarState.js +43 -26
- 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 +4 -0
- package/dist/canvas/constants.d.ts +1 -0
- package/dist/canvas/constants.d.ts.map +1 -1
- package/dist/canvas/constants.js +2 -1
- package/dist/canvas/core/NodeTypeRegistry.cjs +50 -26
- package/dist/canvas/core/NodeTypeRegistry.d.ts +10 -5
- package/dist/canvas/core/NodeTypeRegistry.d.ts.map +1 -1
- package/dist/canvas/core/NodeTypeRegistry.js +50 -26
- package/dist/canvas/core/useNodeTypeRegistry.cjs +13 -3
- package/dist/canvas/core/useNodeTypeRegistry.d.ts +2 -1
- package/dist/canvas/core/useNodeTypeRegistry.d.ts.map +1 -1
- package/dist/canvas/core/useNodeTypeRegistry.js +11 -4
- 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 +7 -3
- package/dist/canvas/hooks/usePreviewNode.d.ts.map +1 -1
- package/dist/canvas/hooks/usePreviewNode.js +7 -3
- package/dist/canvas/locales/de.cjs +1 -1
- package/dist/canvas/locales/de.d.ts.map +1 -1
- package/dist/canvas/locales/de.js +1 -1
- package/dist/canvas/locales/es-MX.cjs +1 -1
- package/dist/canvas/locales/es-MX.d.ts.map +1 -1
- package/dist/canvas/locales/es-MX.js +1 -1
- package/dist/canvas/locales/es.cjs +1 -1
- package/dist/canvas/locales/es.d.ts.map +1 -1
- package/dist/canvas/locales/es.js +1 -1
- package/dist/canvas/locales/fr.cjs +1 -1
- package/dist/canvas/locales/fr.d.ts.map +1 -1
- package/dist/canvas/locales/fr.js +1 -1
- package/dist/canvas/locales/ja.cjs +1 -1
- package/dist/canvas/locales/ja.d.ts.map +1 -1
- package/dist/canvas/locales/ja.js +1 -1
- package/dist/canvas/locales/ko.cjs +1 -1
- package/dist/canvas/locales/ko.d.ts.map +1 -1
- package/dist/canvas/locales/ko.js +1 -1
- package/dist/canvas/locales/pt-BR.cjs +1 -1
- package/dist/canvas/locales/pt-BR.d.ts.map +1 -1
- package/dist/canvas/locales/pt-BR.js +1 -1
- package/dist/canvas/locales/pt.cjs +1 -1
- package/dist/canvas/locales/pt.d.ts.map +1 -1
- package/dist/canvas/locales/pt.js +1 -1
- package/dist/canvas/locales/tr.cjs +1 -1
- package/dist/canvas/locales/tr.d.ts.map +1 -1
- package/dist/canvas/locales/tr.js +1 -1
- package/dist/canvas/locales/zh-CN.cjs +1 -1
- package/dist/canvas/locales/zh-CN.d.ts.map +1 -1
- package/dist/canvas/locales/zh-CN.js +1 -1
- package/dist/canvas/locales/zh-TW.cjs +1 -1
- package/dist/canvas/locales/zh-TW.d.ts.map +1 -1
- package/dist/canvas/locales/zh-TW.js +1 -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.d.ts +4 -0
- package/dist/canvas/schema/node-definition/node-manifest.d.ts.map +1 -1
- package/dist/canvas/storybook-utils/hooks/useCanvasStory.d.ts +6 -0
- package/dist/canvas/storybook-utils/hooks/useCanvasStory.d.ts.map +1 -1
- package/dist/canvas/storybook-utils/manifests/index.d.ts +1 -0
- 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/storybook-utils/mocks/nodes.d.ts +1 -1
- package/dist/canvas/storybook-utils/mocks/nodes.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 +25 -9
- package/dist/canvas/utils/NodeUtils.d.ts +7 -0
- package/dist/canvas/utils/NodeUtils.d.ts.map +1 -1
- package/dist/canvas/utils/NodeUtils.js +13 -6
- package/dist/canvas/utils/collapse.cjs +13 -6
- package/dist/canvas/utils/collapse.d.ts +2 -2
- package/dist/canvas/utils/collapse.d.ts.map +1 -1
- package/dist/canvas/utils/collapse.js +9 -2
- package/dist/canvas/utils/container-sizing.cjs +169 -0
- package/dist/canvas/utils/container-sizing.d.ts +23 -0
- package/dist/canvas/utils/container-sizing.d.ts.map +1 -0
- package/dist/canvas/utils/container-sizing.js +132 -0
- package/dist/canvas/utils/createPreviewGraph.cjs +126 -0
- package/dist/canvas/utils/createPreviewGraph.d.ts +37 -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 +59 -12
- 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 +50 -12
- package/dist/canvas/utils/index.cjs +40 -26
- package/dist/canvas/utils/index.d.ts +3 -1
- package/dist/canvas/utils/index.d.ts.map +1 -1
- package/dist/canvas/utils/index.js +3 -1
- package/dist/canvas/utils/manifest-resolver.cjs +8 -0
- package/dist/canvas/utils/manifest-resolver.d.ts +1 -0
- package/dist/canvas/utils/manifest-resolver.d.ts.map +1 -1
- package/dist/canvas/utils/manifest-resolver.js +6 -1
- package/dist/material/components/ap-tool-call/locales/de.cjs +1 -1
- package/dist/material/components/ap-tool-call/locales/de.d.ts.map +1 -1
- package/dist/material/components/ap-tool-call/locales/de.js +1 -1
- package/dist/material/components/ap-tool-call/locales/es-MX.cjs +1 -1
- package/dist/material/components/ap-tool-call/locales/es-MX.js +1 -1
- package/dist/material/components/ap-tool-call/locales/es.cjs +1 -1
- package/dist/material/components/ap-tool-call/locales/es.js +1 -1
- package/dist/material/components/ap-tool-call/locales/fr.cjs +1 -1
- package/dist/material/components/ap-tool-call/locales/fr.d.ts.map +1 -1
- package/dist/material/components/ap-tool-call/locales/fr.js +1 -1
- package/dist/material/components/ap-tool-call/locales/ja.cjs +1 -1
- package/dist/material/components/ap-tool-call/locales/ja.d.ts.map +1 -1
- package/dist/material/components/ap-tool-call/locales/ja.js +1 -1
- package/dist/material/components/ap-tool-call/locales/ko.cjs +1 -1
- package/dist/material/components/ap-tool-call/locales/ko.d.ts.map +1 -1
- package/dist/material/components/ap-tool-call/locales/ko.js +1 -1
- package/dist/material/components/ap-tool-call/locales/pt-BR.cjs +1 -1
- package/dist/material/components/ap-tool-call/locales/pt-BR.d.ts.map +1 -1
- package/dist/material/components/ap-tool-call/locales/pt-BR.js +1 -1
- package/dist/material/components/ap-tool-call/locales/pt.cjs +1 -1
- package/dist/material/components/ap-tool-call/locales/pt.d.ts.map +1 -1
- package/dist/material/components/ap-tool-call/locales/pt.js +1 -1
- package/dist/material/components/ap-tool-call/locales/tr.cjs +1 -1
- package/dist/material/components/ap-tool-call/locales/tr.d.ts.map +1 -1
- package/dist/material/components/ap-tool-call/locales/tr.js +1 -1
- package/dist/material/components/ap-tool-call/locales/zh-CN.cjs +1 -1
- package/dist/material/components/ap-tool-call/locales/zh-CN.d.ts.map +1 -1
- package/dist/material/components/ap-tool-call/locales/zh-CN.js +1 -1
- package/dist/material/components/ap-tool-call/locales/zh-TW.cjs +1 -1
- package/dist/material/components/ap-tool-call/locales/zh-TW.d.ts.map +1 -1
- package/dist/material/components/ap-tool-call/locales/zh-TW.js +1 -1
- package/package.json +3 -3
|
@@ -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,37 @@
|
|
|
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 type PreviewGraphOverrides = Partial<Pick<CreatePreviewGraphOptions, 'containerId' | 'data' | 'position' | 'positionMode' | 'removedEdgeIds' | 'targetHandleId' | 'targetNodeId'>>;
|
|
33
|
+
export declare function reparentPreviewNodeToContainer(previewNode: Node, containerId: string, reactFlowInstance: ReactFlowInstance): Node | null;
|
|
34
|
+
export declare function createPreviewGraph(options: CreatePreviewGraphOptions): PreviewGraph | null;
|
|
35
|
+
export declare function showPreviewGraph(options: CreatePreviewGraphOptions): PreviewGraph | null;
|
|
36
|
+
export declare function applyPreviewGraphToReactFlow(preview: PreviewGraph, reactFlowInstance: ReactFlowInstance): void;
|
|
37
|
+
//# 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;AAMD,MAAM,MAAM,qBAAqB,GAAG,OAAO,CACzC,IAAI,CACF,yBAAyB,EACvB,aAAa,GACb,MAAM,GACN,UAAU,GACV,cAAc,GACd,gBAAgB,GAChB,gBAAgB,GAChB,cAAc,CACjB,CACF,CAAC;AAsBF,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;
|
|
@@ -82,6 +100,25 @@ function computeSpreadOffset(handle, size) {
|
|
|
82
100
|
if (index >= Math.ceil(count / 2)) return size;
|
|
83
101
|
return 0;
|
|
84
102
|
}
|
|
103
|
+
function getOppositeOverflowDirection(overflowDirection) {
|
|
104
|
+
return {
|
|
105
|
+
x: 'right' === overflowDirection.x ? 'left' : 'right',
|
|
106
|
+
y: 'down' === overflowDirection.y ? 'up' : 'down'
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
function getPerpendicularDistance(initialPosition, resolvedPosition, direction) {
|
|
110
|
+
return 'left' === direction || 'right' === direction ? Math.abs(resolvedPosition.y - initialPosition.y) : Math.abs(resolvedPosition.x - initialPosition.x);
|
|
111
|
+
}
|
|
112
|
+
function getNonOverlappingPreviewPosition({ nodes, initialPosition, previewNodeSize, direction, offset, ignoredNodeTypes, overflowDirection, handle }) {
|
|
113
|
+
const preferredPosition = (0, external_NodeUtils_cjs_namespaceObject.getNonOverlappingPositionForDirection)(nodes, {
|
|
114
|
+
...initialPosition
|
|
115
|
+
}, previewNodeSize, direction, offset, ignoredNodeTypes, overflowDirection);
|
|
116
|
+
if ((handle?.count ?? 1) <= 1) return preferredPosition;
|
|
117
|
+
const alternatePosition = (0, external_NodeUtils_cjs_namespaceObject.getNonOverlappingPositionForDirection)(nodes, {
|
|
118
|
+
...initialPosition
|
|
119
|
+
}, previewNodeSize, direction, offset, ignoredNodeTypes, getOppositeOverflowDirection(overflowDirection));
|
|
120
|
+
return getPerpendicularDistance(initialPosition, alternatePosition, direction) < getPerpendicularDistance(initialPosition, preferredPosition, direction) ? alternatePosition : preferredPosition;
|
|
121
|
+
}
|
|
85
122
|
function calculateAutoPosition(sourceNode, handlePosition, previewNodeSize, existingNodes, offset = 5 * external_constants_cjs_namespaceObject.GRID_SPACING, ignoredNodeTypes = [], handle) {
|
|
86
123
|
const sourceAbsolutePosition = sourceNode.parentId ? (0, external_NodeUtils_cjs_namespaceObject.getAbsolutePosition)(sourceNode, existingNodes) : sourceNode.position;
|
|
87
124
|
const sourceWidth = sourceNode.measured?.width ?? 0;
|
|
@@ -134,12 +171,21 @@ function calculateAutoPosition(sourceNode, handlePosition, previewNodeSize, exis
|
|
|
134
171
|
x: anchorX >= sourceAbsolutePosition.x + sourceWidth / 2 ? 'right' : 'left',
|
|
135
172
|
y: anchorY >= sourceAbsolutePosition.y + sourceHeight / 2 ? 'down' : 'up'
|
|
136
173
|
};
|
|
137
|
-
return (
|
|
174
|
+
return getNonOverlappingPreviewPosition({
|
|
175
|
+
nodes: nodesWithAbsolutePositions,
|
|
176
|
+
initialPosition,
|
|
177
|
+
previewNodeSize,
|
|
178
|
+
direction,
|
|
179
|
+
offset,
|
|
180
|
+
ignoredNodeTypes,
|
|
181
|
+
overflowDirection,
|
|
182
|
+
handle
|
|
183
|
+
});
|
|
138
184
|
}
|
|
139
185
|
function createPreviewNode(sourceNodeId, sourceHandleId, reactFlowInstance, position, data, sourceHandleType = 'source', previewNodeSize = {
|
|
140
186
|
width: external_constants_cjs_namespaceObject.DEFAULT_NODE_SIZE,
|
|
141
187
|
height: external_constants_cjs_namespaceObject.DEFAULT_NODE_SIZE
|
|
142
|
-
}, handlePosition = react_cjs_namespaceObject.Position.Right, ignoredNodeTypes = []) {
|
|
188
|
+
}, handlePosition = react_cjs_namespaceObject.Position.Right, ignoredNodeTypes = [], positionMode = 'drop') {
|
|
143
189
|
const sourceNode = reactFlowInstance.getNode(sourceNodeId);
|
|
144
190
|
if (!sourceNode) {
|
|
145
191
|
console.warn(`Source node ${sourceNodeId} not found`);
|
|
@@ -149,7 +195,7 @@ function createPreviewNode(sourceNodeId, sourceHandleId, reactFlowInstance, posi
|
|
|
149
195
|
const existingNodes = reactFlowInstance.getNodes().filter((n)=>n.id !== external_constants_cjs_namespaceObject.PREVIEW_NODE_ID);
|
|
150
196
|
const internalNode = void 0 === position ? reactFlowInstance.getInternalNode(sourceNodeId) : void 0;
|
|
151
197
|
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);
|
|
198
|
+
const nodePosition = position ? 'center' === positionMode ? calculateCenteredPosition(position, previewNodeSize) : calculatePositionFromDrop(position, handlePosition, previewNodeSize) : calculateAutoPosition(sourceNode, handlePosition, previewNodeSize, existingNodes, void 0, ignoredNodeTypes, handle);
|
|
153
199
|
const handleFacingSource = getOppositePosition(handlePosition);
|
|
154
200
|
const finalData = {
|
|
155
201
|
...data ?? {}
|
|
@@ -179,12 +225,7 @@ function createPreviewNode(sourceNodeId, sourceHandleId, reactFlowInstance, posi
|
|
|
179
225
|
id: external_constants_cjs_namespaceObject.PREVIEW_EDGE_ID,
|
|
180
226
|
...previewSourceAndTargetData,
|
|
181
227
|
type: 'default',
|
|
182
|
-
style:
|
|
183
|
-
strokeDasharray: '5,5',
|
|
184
|
-
opacity: 0.8,
|
|
185
|
-
stroke: 'var(--canvas-selection-indicator)',
|
|
186
|
-
strokeWidth: 2
|
|
187
|
-
}
|
|
228
|
+
style: PREVIEW_EDGE_STYLE
|
|
188
229
|
};
|
|
189
230
|
return {
|
|
190
231
|
node: previewNode,
|
|
@@ -201,21 +242,27 @@ function applyPreviewToReactFlow(preview, reactFlowInstance) {
|
|
|
201
242
|
preview.node
|
|
202
243
|
]);
|
|
203
244
|
reactFlowInstance.setEdges((edges)=>[
|
|
204
|
-
...edges.filter((e)=>e.
|
|
245
|
+
...edges.filter((e)=>e.source !== external_constants_cjs_namespaceObject.PREVIEW_NODE_ID && e.target !== external_constants_cjs_namespaceObject.PREVIEW_NODE_ID),
|
|
205
246
|
preview.edge
|
|
206
247
|
]);
|
|
207
248
|
}, 0);
|
|
208
249
|
}
|
|
209
250
|
function removePreviewFromReactFlow(reactFlowInstance) {
|
|
210
251
|
reactFlowInstance.setNodes((nodes)=>nodes.filter((n)=>n.id !== external_constants_cjs_namespaceObject.PREVIEW_NODE_ID));
|
|
211
|
-
reactFlowInstance.setEdges((edges)=>edges.filter((e)=>e.
|
|
252
|
+
reactFlowInstance.setEdges((edges)=>edges.filter((e)=>e.source !== external_constants_cjs_namespaceObject.PREVIEW_NODE_ID && e.target !== external_constants_cjs_namespaceObject.PREVIEW_NODE_ID));
|
|
212
253
|
}
|
|
254
|
+
exports.PREVIEW_EDGE_STYLE = __webpack_exports__.PREVIEW_EDGE_STYLE;
|
|
213
255
|
exports.applyPreviewToReactFlow = __webpack_exports__.applyPreviewToReactFlow;
|
|
214
256
|
exports.createPreviewNode = __webpack_exports__.createPreviewNode;
|
|
257
|
+
exports.getOppositePosition = __webpack_exports__.getOppositePosition;
|
|
258
|
+
exports.isPreviewEdge = __webpack_exports__.isPreviewEdge;
|
|
215
259
|
exports.removePreviewFromReactFlow = __webpack_exports__.removePreviewFromReactFlow;
|
|
216
260
|
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
261
|
+
"PREVIEW_EDGE_STYLE",
|
|
217
262
|
"applyPreviewToReactFlow",
|
|
218
263
|
"createPreviewNode",
|
|
264
|
+
"getOppositePosition",
|
|
265
|
+
"isPreviewEdge",
|
|
219
266
|
"removePreviewFromReactFlow"
|
|
220
267
|
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
221
268
|
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;AA2PD,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,CAKrF"}
|
|
@@ -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;
|
|
@@ -52,6 +67,25 @@ function computeSpreadOffset(handle, size) {
|
|
|
52
67
|
if (index >= Math.ceil(count / 2)) return size;
|
|
53
68
|
return 0;
|
|
54
69
|
}
|
|
70
|
+
function getOppositeOverflowDirection(overflowDirection) {
|
|
71
|
+
return {
|
|
72
|
+
x: 'right' === overflowDirection.x ? 'left' : 'right',
|
|
73
|
+
y: 'down' === overflowDirection.y ? 'up' : 'down'
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
function getPerpendicularDistance(initialPosition, resolvedPosition, direction) {
|
|
77
|
+
return 'left' === direction || 'right' === direction ? Math.abs(resolvedPosition.y - initialPosition.y) : Math.abs(resolvedPosition.x - initialPosition.x);
|
|
78
|
+
}
|
|
79
|
+
function getNonOverlappingPreviewPosition({ nodes, initialPosition, previewNodeSize, direction, offset, ignoredNodeTypes, overflowDirection, handle }) {
|
|
80
|
+
const preferredPosition = getNonOverlappingPositionForDirection(nodes, {
|
|
81
|
+
...initialPosition
|
|
82
|
+
}, previewNodeSize, direction, offset, ignoredNodeTypes, overflowDirection);
|
|
83
|
+
if ((handle?.count ?? 1) <= 1) return preferredPosition;
|
|
84
|
+
const alternatePosition = getNonOverlappingPositionForDirection(nodes, {
|
|
85
|
+
...initialPosition
|
|
86
|
+
}, previewNodeSize, direction, offset, ignoredNodeTypes, getOppositeOverflowDirection(overflowDirection));
|
|
87
|
+
return getPerpendicularDistance(initialPosition, alternatePosition, direction) < getPerpendicularDistance(initialPosition, preferredPosition, direction) ? alternatePosition : preferredPosition;
|
|
88
|
+
}
|
|
55
89
|
function calculateAutoPosition(sourceNode, handlePosition, previewNodeSize, existingNodes, offset = 5 * GRID_SPACING, ignoredNodeTypes = [], handle) {
|
|
56
90
|
const sourceAbsolutePosition = sourceNode.parentId ? getAbsolutePosition(sourceNode, existingNodes) : sourceNode.position;
|
|
57
91
|
const sourceWidth = sourceNode.measured?.width ?? 0;
|
|
@@ -104,12 +138,21 @@ function calculateAutoPosition(sourceNode, handlePosition, previewNodeSize, exis
|
|
|
104
138
|
x: anchorX >= sourceAbsolutePosition.x + sourceWidth / 2 ? 'right' : 'left',
|
|
105
139
|
y: anchorY >= sourceAbsolutePosition.y + sourceHeight / 2 ? 'down' : 'up'
|
|
106
140
|
};
|
|
107
|
-
return
|
|
141
|
+
return getNonOverlappingPreviewPosition({
|
|
142
|
+
nodes: nodesWithAbsolutePositions,
|
|
143
|
+
initialPosition,
|
|
144
|
+
previewNodeSize,
|
|
145
|
+
direction,
|
|
146
|
+
offset,
|
|
147
|
+
ignoredNodeTypes,
|
|
148
|
+
overflowDirection,
|
|
149
|
+
handle
|
|
150
|
+
});
|
|
108
151
|
}
|
|
109
152
|
function createPreviewNode(sourceNodeId, sourceHandleId, reactFlowInstance, position, data, sourceHandleType = 'source', previewNodeSize = {
|
|
110
153
|
width: DEFAULT_NODE_SIZE,
|
|
111
154
|
height: DEFAULT_NODE_SIZE
|
|
112
|
-
}, handlePosition = Position.Right, ignoredNodeTypes = []) {
|
|
155
|
+
}, handlePosition = Position.Right, ignoredNodeTypes = [], positionMode = 'drop') {
|
|
113
156
|
const sourceNode = reactFlowInstance.getNode(sourceNodeId);
|
|
114
157
|
if (!sourceNode) {
|
|
115
158
|
console.warn(`Source node ${sourceNodeId} not found`);
|
|
@@ -119,7 +162,7 @@ function createPreviewNode(sourceNodeId, sourceHandleId, reactFlowInstance, posi
|
|
|
119
162
|
const existingNodes = reactFlowInstance.getNodes().filter((n)=>n.id !== PREVIEW_NODE_ID);
|
|
120
163
|
const internalNode = void 0 === position ? reactFlowInstance.getInternalNode(sourceNodeId) : void 0;
|
|
121
164
|
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);
|
|
165
|
+
const nodePosition = position ? 'center' === positionMode ? calculateCenteredPosition(position, previewNodeSize) : calculatePositionFromDrop(position, handlePosition, previewNodeSize) : calculateAutoPosition(sourceNode, handlePosition, previewNodeSize, existingNodes, void 0, ignoredNodeTypes, handle);
|
|
123
166
|
const handleFacingSource = getOppositePosition(handlePosition);
|
|
124
167
|
const finalData = {
|
|
125
168
|
...data ?? {}
|
|
@@ -149,12 +192,7 @@ function createPreviewNode(sourceNodeId, sourceHandleId, reactFlowInstance, posi
|
|
|
149
192
|
id: PREVIEW_EDGE_ID,
|
|
150
193
|
...previewSourceAndTargetData,
|
|
151
194
|
type: 'default',
|
|
152
|
-
style:
|
|
153
|
-
strokeDasharray: '5,5',
|
|
154
|
-
opacity: 0.8,
|
|
155
|
-
stroke: 'var(--canvas-selection-indicator)',
|
|
156
|
-
strokeWidth: 2
|
|
157
|
-
}
|
|
195
|
+
style: PREVIEW_EDGE_STYLE
|
|
158
196
|
};
|
|
159
197
|
return {
|
|
160
198
|
node: previewNode,
|
|
@@ -171,13 +209,13 @@ function applyPreviewToReactFlow(preview, reactFlowInstance) {
|
|
|
171
209
|
preview.node
|
|
172
210
|
]);
|
|
173
211
|
reactFlowInstance.setEdges((edges)=>[
|
|
174
|
-
...edges.filter((e)=>e.
|
|
212
|
+
...edges.filter((e)=>e.source !== PREVIEW_NODE_ID && e.target !== PREVIEW_NODE_ID),
|
|
175
213
|
preview.edge
|
|
176
214
|
]);
|
|
177
215
|
}, 0);
|
|
178
216
|
}
|
|
179
217
|
function removePreviewFromReactFlow(reactFlowInstance) {
|
|
180
218
|
reactFlowInstance.setNodes((nodes)=>nodes.filter((n)=>n.id !== PREVIEW_NODE_ID));
|
|
181
|
-
reactFlowInstance.setEdges((edges)=>edges.filter((e)=>e.
|
|
219
|
+
reactFlowInstance.setEdges((edges)=>edges.filter((e)=>e.source !== PREVIEW_NODE_ID && e.target !== PREVIEW_NODE_ID));
|
|
182
220
|
}
|
|
183
|
-
export { applyPreviewToReactFlow, createPreviewNode, removePreviewFromReactFlow };
|
|
221
|
+
export { PREVIEW_EDGE_STYLE, applyPreviewToReactFlow, createPreviewNode, getOppositePosition, isPreviewEdge, removePreviewFromReactFlow };
|