@uipath/apollo-react 4.16.1 → 4.17.0-pr605.8e85d9c

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.
Files changed (75) hide show
  1. package/dist/canvas/components/AddNodePanel/AddNodeManager.cjs +35 -21
  2. package/dist/canvas/components/AddNodePanel/AddNodeManager.d.ts.map +1 -1
  3. package/dist/canvas/components/AddNodePanel/AddNodeManager.helpers.cjs +150 -0
  4. package/dist/canvas/components/AddNodePanel/AddNodeManager.helpers.d.ts +20 -0
  5. package/dist/canvas/components/AddNodePanel/AddNodeManager.helpers.d.ts.map +1 -0
  6. package/dist/canvas/components/AddNodePanel/AddNodeManager.helpers.js +110 -0
  7. package/dist/canvas/components/AddNodePanel/AddNodeManager.js +35 -21
  8. package/dist/canvas/components/AddNodePanel/createAddNodePreview.cjs +15 -4
  9. package/dist/canvas/components/AddNodePanel/createAddNodePreview.d.ts +5 -1
  10. package/dist/canvas/components/AddNodePanel/createAddNodePreview.d.ts.map +1 -1
  11. package/dist/canvas/components/AddNodePanel/createAddNodePreview.js +15 -4
  12. package/dist/canvas/components/AddNodePanel/index.d.ts +1 -1
  13. package/dist/canvas/components/AddNodePanel/index.d.ts.map +1 -1
  14. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvas.cjs +23 -1
  15. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvas.d.ts.map +1 -1
  16. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvas.js +23 -1
  17. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvasWithControls.cjs +0 -14
  18. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvasWithControls.d.ts.map +1 -1
  19. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvasWithControls.js +2 -16
  20. package/dist/canvas/components/LoopNode/LoopNode.cjs +25 -19
  21. package/dist/canvas/components/LoopNode/LoopNode.d.ts.map +1 -1
  22. package/dist/canvas/components/LoopNode/LoopNode.helpers.cjs +33 -42
  23. package/dist/canvas/components/LoopNode/LoopNode.helpers.d.ts +9 -10
  24. package/dist/canvas/components/LoopNode/LoopNode.helpers.d.ts.map +1 -1
  25. package/dist/canvas/components/LoopNode/LoopNode.helpers.js +25 -31
  26. package/dist/canvas/components/LoopNode/LoopNode.js +17 -11
  27. package/dist/canvas/components/LoopNode/LoopNodePreview.cjs +17 -4
  28. package/dist/canvas/components/LoopNode/LoopNodePreview.d.ts.map +1 -1
  29. package/dist/canvas/components/LoopNode/LoopNodePreview.js +17 -4
  30. package/dist/canvas/components/Toolbar/EdgeToolbar/useEdgeToolbarState.cjs +25 -14
  31. package/dist/canvas/components/Toolbar/EdgeToolbar/useEdgeToolbarState.d.ts.map +1 -1
  32. package/dist/canvas/components/Toolbar/EdgeToolbar/useEdgeToolbarState.js +25 -14
  33. package/dist/canvas/components/Toolbox/ListView.cjs +66 -19
  34. package/dist/canvas/components/Toolbox/ListView.d.ts +12 -1
  35. package/dist/canvas/components/Toolbox/ListView.d.ts.map +1 -1
  36. package/dist/canvas/components/Toolbox/ListView.js +66 -19
  37. package/dist/canvas/components/Toolbox/Toolbox.cjs +6 -5
  38. package/dist/canvas/components/Toolbox/Toolbox.d.ts.map +1 -1
  39. package/dist/canvas/components/Toolbox/Toolbox.js +6 -5
  40. package/dist/canvas/constants.cjs +0 -8
  41. package/dist/canvas/constants.d.ts +0 -2
  42. package/dist/canvas/constants.d.ts.map +1 -1
  43. package/dist/canvas/constants.js +1 -3
  44. package/dist/canvas/hooks/useAddNodeOnConnectEnd.cjs +4 -2
  45. package/dist/canvas/hooks/useAddNodeOnConnectEnd.d.ts.map +1 -1
  46. package/dist/canvas/hooks/useAddNodeOnConnectEnd.js +4 -2
  47. package/dist/canvas/storybook-utils/hooks/useCanvasStory.d.ts.map +1 -1
  48. package/dist/canvas/styles/tailwind.canvas.css +1 -1
  49. package/dist/canvas/utils/NodeUtils.cjs +26 -10
  50. package/dist/canvas/utils/NodeUtils.d.ts +7 -0
  51. package/dist/canvas/utils/NodeUtils.d.ts.map +1 -1
  52. package/dist/canvas/utils/NodeUtils.js +13 -6
  53. package/dist/canvas/utils/collapse.cjs +3 -3
  54. package/dist/canvas/utils/collapse.d.ts.map +1 -1
  55. package/dist/canvas/utils/collapse.js +1 -1
  56. package/dist/canvas/utils/container.cjs +642 -0
  57. package/dist/canvas/utils/container.d.ts +97 -0
  58. package/dist/canvas/utils/container.d.ts.map +1 -0
  59. package/dist/canvas/utils/container.js +566 -0
  60. package/dist/canvas/utils/createPreviewGraph.cjs +13 -17
  61. package/dist/canvas/utils/createPreviewGraph.d.ts +10 -8
  62. package/dist/canvas/utils/createPreviewGraph.d.ts.map +1 -1
  63. package/dist/canvas/utils/createPreviewGraph.js +13 -17
  64. package/dist/canvas/utils/createPreviewNode.cjs +16 -10
  65. package/dist/canvas/utils/createPreviewNode.d.ts.map +1 -1
  66. package/dist/canvas/utils/createPreviewNode.js +16 -10
  67. package/dist/canvas/utils/index.cjs +29 -22
  68. package/dist/canvas/utils/index.d.ts +1 -0
  69. package/dist/canvas/utils/index.d.ts.map +1 -1
  70. package/dist/canvas/utils/index.js +1 -0
  71. package/package.json +3 -3
  72. package/dist/canvas/components/LoopNode/LoopNode.constants.cjs +0 -56
  73. package/dist/canvas/components/LoopNode/LoopNode.constants.d.ts +0 -7
  74. package/dist/canvas/components/LoopNode/LoopNode.constants.d.ts.map +0 -1
  75. package/dist/canvas/components/LoopNode/LoopNode.constants.js +0 -7
@@ -32,8 +32,9 @@ const external_react_namespaceObject = require("react");
32
32
  const external_constants_cjs_namespaceObject = require("../../constants.cjs");
33
33
  const index_cjs_namespaceObject = require("../../core/index.cjs");
34
34
  const usePreviewNode_cjs_namespaceObject = require("../../hooks/usePreviewNode.cjs");
35
- const external_utils_index_cjs_namespaceObject = require("../../utils/index.cjs");
35
+ const createPreviewNode_cjs_namespaceObject = require("../../utils/createPreviewNode.cjs");
36
36
  const external_FloatingCanvasPanel_index_cjs_namespaceObject = require("../FloatingCanvasPanel/index.cjs");
37
+ const external_AddNodeManager_helpers_cjs_namespaceObject = require("./AddNodeManager.helpers.cjs");
37
38
  const external_AddNodePanel_cjs_namespaceObject = require("./AddNodePanel.cjs");
38
39
  const AddNodeManager = ({ initializing, customPanel: CustomPanel, createNodeData, onBeforeNodeAdded, onNodeAdded, ignoredNodeTypes })=>{
39
40
  const reactFlowInstance = (0, react_cjs_namespaceObject.useReactFlow)();
@@ -45,15 +46,20 @@ const AddNodeManager = ({ initializing, customPanel: CustomPanel, createNodeData
45
46
  if (!previewNode && lastPreviewNodeRef.current) {
46
47
  reactFlowInstance.setNodes((nodes)=>nodes.filter((n)=>n.id !== external_constants_cjs_namespaceObject.PREVIEW_NODE_ID));
47
48
  reactFlowInstance.setEdges((edges)=>{
48
- const filteredEdges = edges.filter((e)=>e.source !== external_constants_cjs_namespaceObject.PREVIEW_NODE_ID && e.target !== external_constants_cjs_namespaceObject.PREVIEW_NODE_ID);
49
- return restoreEdgesRef.current ? [
49
+ const filteredEdges = edges.filter((edge)=>!(0, createPreviewNode_cjs_namespaceObject.isPreviewEdge)(edge));
50
+ const restoredEdges = restoreEdgesRef.current ? [
50
51
  ...filteredEdges,
51
52
  ...restoreEdgesRef.current
52
53
  ] : filteredEdges;
54
+ restoreEdgesRef.current = null;
55
+ return restoredEdges;
53
56
  });
54
- } else if (previewNode && !restoreEdgesRef.current) restoreEdgesRef.current = previewNode.data.originalEdge ? [
55
- previewNode.data.originalEdge
56
- ] : null;
57
+ } else if (previewNode && !restoreEdgesRef.current) {
58
+ const originalEdge = (0, external_AddNodeManager_helpers_cjs_namespaceObject.getOriginalEdge)(previewNode);
59
+ restoreEdgesRef.current = originalEdge ? [
60
+ originalEdge
61
+ ] : null;
62
+ }
57
63
  lastPreviewNodeRef.current = previewNode || null;
58
64
  }, [
59
65
  previewNode,
@@ -83,17 +89,17 @@ const AddNodeManager = ({ initializing, customPanel: CustomPanel, createNodeData
83
89
  parentId: currentPreviewNode.parentId,
84
90
  extent: currentPreviewNode.extent
85
91
  } : {};
86
- const newNode = {
92
+ const newNodeManifest = registry?.getManifest(nodeItem.data.type);
93
+ const newNode = (0, external_AddNodeManager_helpers_cjs_namespaceObject.alignNodeToPreview)({
87
94
  id: newNodeId,
88
95
  type: nodeItem.data.type,
89
96
  position: currentPreviewNode.position,
90
97
  selected: true,
91
98
  data: nodeData,
92
99
  ...previewNodeScope
93
- };
94
- const newNodeManifest = registry?.getManifest(nodeItem.data.type);
100
+ }, currentPreviewNode, previewNodeConnectionInfo, newNodeManifest);
95
101
  const newEdges = [];
96
- const previewEdgeIds = [];
102
+ const previewEdgeIds = new Set();
97
103
  for (const connectionInfoItem of previewNodeConnectionInfo){
98
104
  const newNodeHandleType = connectionInfoItem.addNewNodeAsSource ? 'source' : 'target';
99
105
  const newNodeDefaultHandle = newNodeManifest ? registry?.getDefaultHandle(newNodeManifest.nodeType, newNodeHandleType) : void 0;
@@ -115,12 +121,14 @@ const AddNodeManager = ({ initializing, customPanel: CustomPanel, createNodeData
115
121
  ...edgeSourceTargetData,
116
122
  type: 'default'
117
123
  });
118
- previewEdgeIds.push(connectionInfoItem.previewEdgeId);
124
+ previewEdgeIds.add(connectionInfoItem.previewEdgeId);
119
125
  }
120
126
  const { newNode: finalNode, newEdges: finalEdges } = onBeforeNodeAdded?.(newNode, newEdges) ?? {
121
127
  newNode,
122
128
  newEdges
123
129
  };
130
+ const placementEdges = reactFlowInstance.getEdges();
131
+ let placedNode = finalNode;
124
132
  reactFlowInstance.setNodes((nodes)=>{
125
133
  const newNodes = [
126
134
  ...nodes.filter((n)=>n.id !== external_constants_cjs_namespaceObject.PREVIEW_NODE_ID).map((n)=>({
@@ -129,28 +137,35 @@ const AddNodeManager = ({ initializing, customPanel: CustomPanel, createNodeData
129
137
  })),
130
138
  finalNode
131
139
  ];
132
- return (0, external_utils_index_cjs_namespaceObject.resolveCollisions)(newNodes, {
140
+ const placement = (0, external_AddNodeManager_helpers_cjs_namespaceObject.placeAddedNode)({
141
+ nodes: newNodes,
142
+ edges: placementEdges,
143
+ previewNode: currentPreviewNode,
144
+ insertedNode: finalNode,
145
+ registry,
133
146
  ignoredNodeTypes
134
147
  });
148
+ placedNode = placement.insertedNode;
149
+ return placement.nodes;
135
150
  });
136
151
  reactFlowInstance.setEdges((edges)=>[
137
- ...edges.filter((e)=>!previewEdgeIds.includes(e.id)),
152
+ ...edges.filter((edge)=>!previewEdgeIds.has(edge.id) && !(0, createPreviewNode_cjs_namespaceObject.isPreviewEdge)(edge)),
138
153
  ...finalEdges
139
154
  ]);
155
+ restoreEdgesRef.current = null;
140
156
  const [firstConnection] = previewNodeConnectionInfo;
141
157
  if (firstConnection) {
142
- const firstEdgeSourceHandle = firstConnection.addNewNodeAsSource ? newNodeManifest && registry?.getDefaultHandle(newNodeManifest.nodeType, 'source')?.id : firstConnection.existingHandleId;
158
+ const firstMaterializedEdge = finalEdges.find((edge)=>edge.source === placedNode.id || edge.target === placedNode.id);
143
159
  const firstEdgeData = firstConnection.addNewNodeAsSource ? {
144
- source: finalNode.id,
145
- sourceHandle: firstEdgeSourceHandle ?? 'output'
160
+ source: placedNode.id,
161
+ sourceHandle: firstMaterializedEdge?.sourceHandle ?? 'output'
146
162
  } : {
147
163
  source: firstConnection.existingNodeId,
148
164
  sourceHandle: firstConnection.existingHandleId
149
165
  };
150
- onNodeAdded?.(firstEdgeData.source, firstEdgeData.sourceHandle, finalNode);
166
+ onNodeAdded?.(firstEdgeData.source, firstEdgeData.sourceHandle, placedNode);
151
167
  }
152
- restoreEdgesRef.current = null;
153
- handleClose();
168
+ lastPreviewNodeRef.current = null;
154
169
  }, [
155
170
  previewNodeConnectionInfo,
156
171
  reactFlowInstance,
@@ -158,8 +173,7 @@ const AddNodeManager = ({ initializing, customPanel: CustomPanel, createNodeData
158
173
  createNodeData,
159
174
  onBeforeNodeAdded,
160
175
  onNodeAdded,
161
- ignoredNodeTypes,
162
- handleClose
176
+ ignoredNodeTypes
163
177
  ]);
164
178
  if (!previewNode || !previewNodeConnectionInfo || 0 === previewNodeConnectionInfo.length) return null;
165
179
  return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_FloatingCanvasPanel_index_cjs_namespaceObject.FloatingCanvasPanel, {
@@ -1 +1 @@
1
- {"version":3,"file":"AddNodeManager.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/AddNodePanel/AddNodeManager.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,0CAA0C,CAAC;AAE3E,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,WAAW,mBAAmB;IAKlC,WAAW,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC;IAI7E,YAAY,CAAC,EAAE,OAAO,CAAC;IAIvB,gBAAgB,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAK7F,cAAc,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,YAAY,CAAC,KAAK,YAAY,CAAC;IAOtE,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK;QAAE,OAAO,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,IAAI,EAAE,CAAA;KAAE,CAAC;IAK7F,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,KAAK,IAAI,CAAC;IAMpF,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AASD,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAyMxD,CAAC"}
1
+ {"version":3,"file":"AddNodeManager.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/AddNodePanel/AddNodeManager.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,0CAA0C,CAAC;AAE3E,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,WAAW,mBAAmB;IAKlC,WAAW,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC;IAI7E,YAAY,CAAC,EAAE,OAAO,CAAC;IAIvB,gBAAgB,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAK7F,cAAc,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,YAAY,CAAC,KAAK,YAAY,CAAC;IAOtE,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK;QAAE,OAAO,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,IAAI,EAAE,CAAA;KAAE,CAAC;IAK7F,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,KAAK,IAAI,CAAC;IAMpF,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AASD,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAyNxD,CAAC"}
@@ -0,0 +1,150 @@
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
+ getOriginalEdge: ()=>getOriginalEdge,
28
+ placeAddedNode: ()=>placeAddedNode,
29
+ alignNodeToPreview: ()=>alignNodeToPreview
30
+ });
31
+ const react_cjs_namespaceObject = require("../../xyflow/react.cjs");
32
+ const index_cjs_namespaceObject = require("../../utils/index.cjs");
33
+ const collapse_cjs_namespaceObject = require("../../utils/collapse.cjs");
34
+ const container_cjs_namespaceObject = require("../../utils/container.cjs");
35
+ function getOriginalEdge(previewNode) {
36
+ return previewNode?.data?.originalEdge ?? null;
37
+ }
38
+ function getManifestForNode(registry, node) {
39
+ return node.type ? registry?.getManifest(node.type) : void 0;
40
+ }
41
+ function getManifestAwareNodeDimensions(registry, node) {
42
+ const manifest = getManifestForNode(registry, node);
43
+ return (0, container_cjs_namespaceObject.getNodeDimensions)(node, (0, collapse_cjs_namespaceObject.getExpandedSize)(manifest?.display.shape));
44
+ }
45
+ function getPrimaryPreviewHandlePosition(previewNode, previewConnections) {
46
+ const primaryConnection = previewConnections.find((connection)=>!connection.addNewNodeAsSource) ?? previewConnections[0];
47
+ const handlePosition = primaryConnection?.addNewNodeAsSource ? previewNode.data?.outputHandlePosition : previewNode.data?.inputHandlePosition;
48
+ return handlePosition;
49
+ }
50
+ function alignNodeToPreview(node, previewNode, previewConnections, nodeManifest) {
51
+ const previewSize = (0, container_cjs_namespaceObject.getNodeDimensions)(previewNode);
52
+ const nodeSize = (0, container_cjs_namespaceObject.getNodeDimensions)(node, (0, collapse_cjs_namespaceObject.getExpandedSize)(nodeManifest?.display.shape));
53
+ if (previewSize.width === nodeSize.width && previewSize.height === nodeSize.height) return node;
54
+ const previewHandlePosition = getPrimaryPreviewHandlePosition(previewNode, previewConnections);
55
+ const previewCenterX = previewNode.position.x + previewSize.width / 2;
56
+ const previewCenterY = previewNode.position.y + previewSize.height / 2;
57
+ if (previewHandlePosition === react_cjs_namespaceObject.Position.Left) return {
58
+ ...node,
59
+ position: {
60
+ x: previewNode.position.x,
61
+ y: previewCenterY - nodeSize.height / 2
62
+ }
63
+ };
64
+ if (previewHandlePosition === react_cjs_namespaceObject.Position.Right) return {
65
+ ...node,
66
+ position: {
67
+ x: previewNode.position.x + previewSize.width - nodeSize.width,
68
+ y: previewCenterY - nodeSize.height / 2
69
+ }
70
+ };
71
+ if (previewHandlePosition === react_cjs_namespaceObject.Position.Top) return {
72
+ ...node,
73
+ position: {
74
+ x: previewCenterX - nodeSize.width / 2,
75
+ y: previewNode.position.y
76
+ }
77
+ };
78
+ if (previewHandlePosition === react_cjs_namespaceObject.Position.Bottom) return {
79
+ ...node,
80
+ position: {
81
+ x: previewCenterX - nodeSize.width / 2,
82
+ y: previewNode.position.y + previewSize.height - nodeSize.height
83
+ }
84
+ };
85
+ return {
86
+ ...node,
87
+ position: {
88
+ x: previewCenterX - nodeSize.width / 2,
89
+ y: previewCenterY - nodeSize.height / 2
90
+ }
91
+ };
92
+ }
93
+ function resolveScopedCollisions(nodes, insertedNode, options) {
94
+ const siblingNodes = nodes.filter((node)=>node.parentId === insertedNode.parentId);
95
+ const resolvedSiblings = (0, index_cjs_namespaceObject.resolveCollisions)(siblingNodes, {
96
+ ignoredNodeTypes: options.ignoredNodeTypes,
97
+ getNodeSize: options.getNodeSize
98
+ });
99
+ const resolvedSiblingById = new Map(resolvedSiblings.map((node)=>[
100
+ node.id,
101
+ node
102
+ ]));
103
+ const resolvedNodes = nodes.map((node)=>resolvedSiblingById.get(node.id) ?? node);
104
+ return {
105
+ nodes: resolvedNodes,
106
+ insertedNode: resolvedSiblingById.get(insertedNode.id)
107
+ };
108
+ }
109
+ function placeAddedNode({ nodes, edges, previewNode, insertedNode, registry, ignoredNodeTypes }) {
110
+ const getDimensions = (node)=>getManifestAwareNodeDimensions(registry, node);
111
+ const placement = (0, container_cjs_namespaceObject.getContainerPlacement)({
112
+ previewNode
113
+ });
114
+ if (placement) {
115
+ const containerNode = nodes.find((node)=>node.id === placement.containerId);
116
+ const containerManifest = getManifestForNode(registry, containerNode);
117
+ if (!(0, container_cjs_namespaceObject.isContainerNodeManifest)(containerManifest)) return resolveScopedCollisions(nodes, insertedNode, {
118
+ ignoredNodeTypes,
119
+ getNodeSize: getDimensions
120
+ });
121
+ const resolvedNodes = (0, container_cjs_namespaceObject.placeContainerNode)({
122
+ nodes,
123
+ insertedNode,
124
+ placement,
125
+ edges,
126
+ getNodeDimensions: getDimensions,
127
+ safeArea: (0, container_cjs_namespaceObject.getContainerSafeArea)(containerNode),
128
+ getContainerFitGeometry: (node)=>(0, container_cjs_namespaceObject.isContainerNodeManifest)(getManifestForNode(registry, node)) ? (0, container_cjs_namespaceObject.getContainerFitGeometry)() : null
129
+ });
130
+ return {
131
+ nodes: resolvedNodes,
132
+ insertedNode: resolvedNodes.find((node)=>node.id === insertedNode.id)
133
+ };
134
+ }
135
+ return resolveScopedCollisions(nodes, insertedNode, {
136
+ ignoredNodeTypes,
137
+ getNodeSize: getDimensions
138
+ });
139
+ }
140
+ exports.alignNodeToPreview = __webpack_exports__.alignNodeToPreview;
141
+ exports.getOriginalEdge = __webpack_exports__.getOriginalEdge;
142
+ exports.placeAddedNode = __webpack_exports__.placeAddedNode;
143
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
144
+ "alignNodeToPreview",
145
+ "getOriginalEdge",
146
+ "placeAddedNode"
147
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
148
+ Object.defineProperty(exports, '__esModule', {
149
+ value: true
150
+ });
@@ -0,0 +1,20 @@
1
+ import type { Edge, Node } from '../../xyflow/react.ts';
2
+ import type { NodeTypeRegistry } from '../../core';
3
+ import type { PreviewNodeConnectionInfo } from '../../hooks/usePreviewNode';
4
+ import type { NodeManifest } from '../../schema';
5
+ interface AddNodePlacementResult {
6
+ nodes: Node[];
7
+ insertedNode: Node;
8
+ }
9
+ export declare function getOriginalEdge(previewNode: Node | null | undefined): Edge | null;
10
+ export declare function alignNodeToPreview(node: Node, previewNode: Node, previewConnections: PreviewNodeConnectionInfo[], nodeManifest: NodeManifest | undefined): Node;
11
+ export declare function placeAddedNode({ nodes, edges, previewNode, insertedNode, registry, ignoredNodeTypes, }: {
12
+ nodes: Node[];
13
+ edges: Edge[];
14
+ previewNode: Node;
15
+ insertedNode: Node;
16
+ registry: NodeTypeRegistry | null;
17
+ ignoredNodeTypes?: string[];
18
+ }): AddNodePlacementResult;
19
+ export {};
20
+ //# sourceMappingURL=AddNodeManager.helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AddNodeManager.helpers.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/AddNodePanel/AddNodeManager.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,0CAA0C,CAAC;AAE3E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAajD,UAAU,sBAAsB;IAC9B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,YAAY,EAAE,IAAI,CAAC;CACpB;AAMD,wBAAgB,eAAe,CAAC,WAAW,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,CAEjF;AAmCD,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,IAAI,EACjB,kBAAkB,EAAE,yBAAyB,EAAE,EAC/C,YAAY,EAAE,YAAY,GAAG,SAAS,GACrC,IAAI,CA2DN;AA6BD,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,KAAK,EACL,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,gBAAgB,GACjB,EAAE;IACD,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,WAAW,EAAE,IAAI,CAAC;IAClB,YAAY,EAAE,IAAI,CAAC;IACnB,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B,GAAG,sBAAsB,CAsCzB"}
@@ -0,0 +1,110 @@
1
+ import { Position } from "../../xyflow/react.js";
2
+ import { resolveCollisions } from "../../utils/index.js";
3
+ import { getExpandedSize } from "../../utils/collapse.js";
4
+ import { getContainerFitGeometry, getContainerPlacement, getContainerSafeArea, getNodeDimensions, isContainerNodeManifest, placeContainerNode } from "../../utils/container.js";
5
+ function getOriginalEdge(previewNode) {
6
+ return previewNode?.data?.originalEdge ?? null;
7
+ }
8
+ function getManifestForNode(registry, node) {
9
+ return node.type ? registry?.getManifest(node.type) : void 0;
10
+ }
11
+ function getManifestAwareNodeDimensions(registry, node) {
12
+ const manifest = getManifestForNode(registry, node);
13
+ return getNodeDimensions(node, getExpandedSize(manifest?.display.shape));
14
+ }
15
+ function getPrimaryPreviewHandlePosition(previewNode, previewConnections) {
16
+ const primaryConnection = previewConnections.find((connection)=>!connection.addNewNodeAsSource) ?? previewConnections[0];
17
+ const handlePosition = primaryConnection?.addNewNodeAsSource ? previewNode.data?.outputHandlePosition : previewNode.data?.inputHandlePosition;
18
+ return handlePosition;
19
+ }
20
+ function alignNodeToPreview(node, previewNode, previewConnections, nodeManifest) {
21
+ const previewSize = getNodeDimensions(previewNode);
22
+ const nodeSize = getNodeDimensions(node, getExpandedSize(nodeManifest?.display.shape));
23
+ if (previewSize.width === nodeSize.width && previewSize.height === nodeSize.height) return node;
24
+ const previewHandlePosition = getPrimaryPreviewHandlePosition(previewNode, previewConnections);
25
+ const previewCenterX = previewNode.position.x + previewSize.width / 2;
26
+ const previewCenterY = previewNode.position.y + previewSize.height / 2;
27
+ if (previewHandlePosition === Position.Left) return {
28
+ ...node,
29
+ position: {
30
+ x: previewNode.position.x,
31
+ y: previewCenterY - nodeSize.height / 2
32
+ }
33
+ };
34
+ if (previewHandlePosition === Position.Right) return {
35
+ ...node,
36
+ position: {
37
+ x: previewNode.position.x + previewSize.width - nodeSize.width,
38
+ y: previewCenterY - nodeSize.height / 2
39
+ }
40
+ };
41
+ if (previewHandlePosition === Position.Top) return {
42
+ ...node,
43
+ position: {
44
+ x: previewCenterX - nodeSize.width / 2,
45
+ y: previewNode.position.y
46
+ }
47
+ };
48
+ if (previewHandlePosition === Position.Bottom) return {
49
+ ...node,
50
+ position: {
51
+ x: previewCenterX - nodeSize.width / 2,
52
+ y: previewNode.position.y + previewSize.height - nodeSize.height
53
+ }
54
+ };
55
+ return {
56
+ ...node,
57
+ position: {
58
+ x: previewCenterX - nodeSize.width / 2,
59
+ y: previewCenterY - nodeSize.height / 2
60
+ }
61
+ };
62
+ }
63
+ function resolveScopedCollisions(nodes, insertedNode, options) {
64
+ const siblingNodes = nodes.filter((node)=>node.parentId === insertedNode.parentId);
65
+ const resolvedSiblings = resolveCollisions(siblingNodes, {
66
+ ignoredNodeTypes: options.ignoredNodeTypes,
67
+ getNodeSize: options.getNodeSize
68
+ });
69
+ const resolvedSiblingById = new Map(resolvedSiblings.map((node)=>[
70
+ node.id,
71
+ node
72
+ ]));
73
+ const resolvedNodes = nodes.map((node)=>resolvedSiblingById.get(node.id) ?? node);
74
+ return {
75
+ nodes: resolvedNodes,
76
+ insertedNode: resolvedSiblingById.get(insertedNode.id)
77
+ };
78
+ }
79
+ function placeAddedNode({ nodes, edges, previewNode, insertedNode, registry, ignoredNodeTypes }) {
80
+ const getDimensions = (node)=>getManifestAwareNodeDimensions(registry, node);
81
+ const placement = getContainerPlacement({
82
+ previewNode
83
+ });
84
+ if (placement) {
85
+ const containerNode = nodes.find((node)=>node.id === placement.containerId);
86
+ const containerManifest = getManifestForNode(registry, containerNode);
87
+ if (!isContainerNodeManifest(containerManifest)) return resolveScopedCollisions(nodes, insertedNode, {
88
+ ignoredNodeTypes,
89
+ getNodeSize: getDimensions
90
+ });
91
+ const resolvedNodes = placeContainerNode({
92
+ nodes,
93
+ insertedNode,
94
+ placement,
95
+ edges,
96
+ getNodeDimensions: getDimensions,
97
+ safeArea: getContainerSafeArea(containerNode),
98
+ getContainerFitGeometry: (node)=>isContainerNodeManifest(getManifestForNode(registry, node)) ? getContainerFitGeometry() : null
99
+ });
100
+ return {
101
+ nodes: resolvedNodes,
102
+ insertedNode: resolvedNodes.find((node)=>node.id === insertedNode.id)
103
+ };
104
+ }
105
+ return resolveScopedCollisions(nodes, insertedNode, {
106
+ ignoredNodeTypes,
107
+ getNodeSize: getDimensions
108
+ });
109
+ }
110
+ export { alignNodeToPreview, getOriginalEdge, placeAddedNode };
@@ -4,8 +4,9 @@ import { useCallback, useEffect, useRef } from "react";
4
4
  import { FLOATING_CANVAS_PANEL_OFFSET, PREVIEW_NODE_ID } from "../../constants.js";
5
5
  import { useOptionalNodeTypeRegistry } from "../../core/index.js";
6
6
  import { usePreviewNode } from "../../hooks/usePreviewNode.js";
7
- import { resolveCollisions } from "../../utils/index.js";
7
+ import { isPreviewEdge } from "../../utils/createPreviewNode.js";
8
8
  import { FloatingCanvasPanel } from "../FloatingCanvasPanel/index.js";
9
+ import { alignNodeToPreview, getOriginalEdge, placeAddedNode } from "./AddNodeManager.helpers.js";
9
10
  import { AddNodePanel } from "./AddNodePanel.js";
10
11
  const AddNodeManager = ({ initializing, customPanel: CustomPanel, createNodeData, onBeforeNodeAdded, onNodeAdded, ignoredNodeTypes })=>{
11
12
  const reactFlowInstance = useReactFlow();
@@ -17,15 +18,20 @@ const AddNodeManager = ({ initializing, customPanel: CustomPanel, createNodeData
17
18
  if (!previewNode && lastPreviewNodeRef.current) {
18
19
  reactFlowInstance.setNodes((nodes)=>nodes.filter((n)=>n.id !== PREVIEW_NODE_ID));
19
20
  reactFlowInstance.setEdges((edges)=>{
20
- const filteredEdges = edges.filter((e)=>e.source !== PREVIEW_NODE_ID && e.target !== PREVIEW_NODE_ID);
21
- return restoreEdgesRef.current ? [
21
+ const filteredEdges = edges.filter((edge)=>!isPreviewEdge(edge));
22
+ const restoredEdges = restoreEdgesRef.current ? [
22
23
  ...filteredEdges,
23
24
  ...restoreEdgesRef.current
24
25
  ] : filteredEdges;
26
+ restoreEdgesRef.current = null;
27
+ return restoredEdges;
25
28
  });
26
- } else if (previewNode && !restoreEdgesRef.current) restoreEdgesRef.current = previewNode.data.originalEdge ? [
27
- previewNode.data.originalEdge
28
- ] : null;
29
+ } else if (previewNode && !restoreEdgesRef.current) {
30
+ const originalEdge = getOriginalEdge(previewNode);
31
+ restoreEdgesRef.current = originalEdge ? [
32
+ originalEdge
33
+ ] : null;
34
+ }
29
35
  lastPreviewNodeRef.current = previewNode || null;
30
36
  }, [
31
37
  previewNode,
@@ -55,17 +61,17 @@ const AddNodeManager = ({ initializing, customPanel: CustomPanel, createNodeData
55
61
  parentId: currentPreviewNode.parentId,
56
62
  extent: currentPreviewNode.extent
57
63
  } : {};
58
- const newNode = {
64
+ const newNodeManifest = registry?.getManifest(nodeItem.data.type);
65
+ const newNode = alignNodeToPreview({
59
66
  id: newNodeId,
60
67
  type: nodeItem.data.type,
61
68
  position: currentPreviewNode.position,
62
69
  selected: true,
63
70
  data: nodeData,
64
71
  ...previewNodeScope
65
- };
66
- const newNodeManifest = registry?.getManifest(nodeItem.data.type);
72
+ }, currentPreviewNode, previewNodeConnectionInfo, newNodeManifest);
67
73
  const newEdges = [];
68
- const previewEdgeIds = [];
74
+ const previewEdgeIds = new Set();
69
75
  for (const connectionInfoItem of previewNodeConnectionInfo){
70
76
  const newNodeHandleType = connectionInfoItem.addNewNodeAsSource ? 'source' : 'target';
71
77
  const newNodeDefaultHandle = newNodeManifest ? registry?.getDefaultHandle(newNodeManifest.nodeType, newNodeHandleType) : void 0;
@@ -87,12 +93,14 @@ const AddNodeManager = ({ initializing, customPanel: CustomPanel, createNodeData
87
93
  ...edgeSourceTargetData,
88
94
  type: 'default'
89
95
  });
90
- previewEdgeIds.push(connectionInfoItem.previewEdgeId);
96
+ previewEdgeIds.add(connectionInfoItem.previewEdgeId);
91
97
  }
92
98
  const { newNode: finalNode, newEdges: finalEdges } = onBeforeNodeAdded?.(newNode, newEdges) ?? {
93
99
  newNode,
94
100
  newEdges
95
101
  };
102
+ const placementEdges = reactFlowInstance.getEdges();
103
+ let placedNode = finalNode;
96
104
  reactFlowInstance.setNodes((nodes)=>{
97
105
  const newNodes = [
98
106
  ...nodes.filter((n)=>n.id !== PREVIEW_NODE_ID).map((n)=>({
@@ -101,28 +109,35 @@ const AddNodeManager = ({ initializing, customPanel: CustomPanel, createNodeData
101
109
  })),
102
110
  finalNode
103
111
  ];
104
- return resolveCollisions(newNodes, {
112
+ const placement = placeAddedNode({
113
+ nodes: newNodes,
114
+ edges: placementEdges,
115
+ previewNode: currentPreviewNode,
116
+ insertedNode: finalNode,
117
+ registry,
105
118
  ignoredNodeTypes
106
119
  });
120
+ placedNode = placement.insertedNode;
121
+ return placement.nodes;
107
122
  });
108
123
  reactFlowInstance.setEdges((edges)=>[
109
- ...edges.filter((e)=>!previewEdgeIds.includes(e.id)),
124
+ ...edges.filter((edge)=>!previewEdgeIds.has(edge.id) && !isPreviewEdge(edge)),
110
125
  ...finalEdges
111
126
  ]);
127
+ restoreEdgesRef.current = null;
112
128
  const [firstConnection] = previewNodeConnectionInfo;
113
129
  if (firstConnection) {
114
- const firstEdgeSourceHandle = firstConnection.addNewNodeAsSource ? newNodeManifest && registry?.getDefaultHandle(newNodeManifest.nodeType, 'source')?.id : firstConnection.existingHandleId;
130
+ const firstMaterializedEdge = finalEdges.find((edge)=>edge.source === placedNode.id || edge.target === placedNode.id);
115
131
  const firstEdgeData = firstConnection.addNewNodeAsSource ? {
116
- source: finalNode.id,
117
- sourceHandle: firstEdgeSourceHandle ?? 'output'
132
+ source: placedNode.id,
133
+ sourceHandle: firstMaterializedEdge?.sourceHandle ?? 'output'
118
134
  } : {
119
135
  source: firstConnection.existingNodeId,
120
136
  sourceHandle: firstConnection.existingHandleId
121
137
  };
122
- onNodeAdded?.(firstEdgeData.source, firstEdgeData.sourceHandle, finalNode);
138
+ onNodeAdded?.(firstEdgeData.source, firstEdgeData.sourceHandle, placedNode);
123
139
  }
124
- restoreEdgesRef.current = null;
125
- handleClose();
140
+ lastPreviewNodeRef.current = null;
126
141
  }, [
127
142
  previewNodeConnectionInfo,
128
143
  reactFlowInstance,
@@ -130,8 +145,7 @@ const AddNodeManager = ({ initializing, customPanel: CustomPanel, createNodeData
130
145
  createNodeData,
131
146
  onBeforeNodeAdded,
132
147
  onNodeAdded,
133
- ignoredNodeTypes,
134
- handleClose
148
+ ignoredNodeTypes
135
149
  ]);
136
150
  if (!previewNode || !previewNodeConnectionInfo || 0 === previewNodeConnectionInfo.length) return null;
137
151
  return /*#__PURE__*/ jsx(FloatingCanvasPanel, {
@@ -28,14 +28,25 @@ __webpack_require__.d(__webpack_exports__, {
28
28
  });
29
29
  const react_cjs_namespaceObject = require("../../xyflow/react.cjs");
30
30
  const createPreviewGraph_cjs_namespaceObject = require("../../utils/createPreviewGraph.cjs");
31
- function createAddNodePreview(sourceNodeId, sourceHandleId, reactFlowInstance, handlePosition = react_cjs_namespaceObject.Position.Right, sourceHandleType = 'source', ignoredNodeTypes = []) {
31
+ const LoopNode_helpers_cjs_namespaceObject = require("../LoopNode/LoopNode.helpers.cjs");
32
+ function createAddNodePreview(sourceNodeId, sourceHandleId, reactFlowInstance, handlePosition = react_cjs_namespaceObject.Position.Right, sourceHandleType = 'source', ignoredNodeTypes = [], options = {}) {
33
+ const source = {
34
+ nodeId: sourceNodeId,
35
+ handleId: sourceHandleId
36
+ };
37
+ const overrides = options.getManifestForNode ? (0, LoopNode_helpers_cjs_namespaceObject.resolveContainerAddNodePreview)({
38
+ source,
39
+ sourceHandleType,
40
+ reactFlowInstance,
41
+ getManifestForNode: options.getManifestForNode
42
+ }) : null;
32
43
  (0, createPreviewGraph_cjs_namespaceObject.showPreviewGraph)({
33
- sourceNodeId,
34
- sourceHandleId,
44
+ source,
35
45
  reactFlowInstance,
36
46
  sourceHandleType,
37
47
  handlePosition,
38
- ignoredNodeTypes
48
+ ignoredNodeTypes,
49
+ ...overrides ?? {}
39
50
  });
40
51
  }
41
52
  exports.createAddNodePreview = __webpack_exports__.createAddNodePreview;
@@ -1,3 +1,7 @@
1
1
  import { Position, type ReactFlowInstance } from '../../xyflow/react.ts';
2
- export declare function createAddNodePreview(sourceNodeId: string, sourceHandleId: string, reactFlowInstance: ReactFlowInstance, handlePosition?: Position, sourceHandleType?: 'source' | 'target', ignoredNodeTypes?: string[]): void;
2
+ import { type ContainerPreviewManifestResolver } from '../LoopNode/LoopNode.helpers';
3
+ export interface AddNodePreviewOptions {
4
+ getManifestForNode?: ContainerPreviewManifestResolver;
5
+ }
6
+ export declare function createAddNodePreview(sourceNodeId: string, sourceHandleId: string, reactFlowInstance: ReactFlowInstance, handlePosition?: Position, sourceHandleType?: 'source' | 'target', ignoredNodeTypes?: string[], options?: AddNodePreviewOptions): void;
3
7
  //# sourceMappingURL=createAddNodePreview.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createAddNodePreview.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/AddNodePanel/createAddNodePreview.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAa5F,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,EACtB,iBAAiB,EAAE,iBAAiB,EACpC,cAAc,GAAE,QAAyB,EACzC,gBAAgB,GAAE,QAAQ,GAAG,QAAmB,EAChD,gBAAgB,GAAE,MAAM,EAAO,GAC9B,IAAI,CASN"}
1
+ {"version":3,"file":"createAddNodePreview.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/AddNodePanel/createAddNodePreview.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAE5F,OAAO,EACL,KAAK,gCAAgC,EAEtC,MAAM,8BAA8B,CAAC;AAEtC,MAAM,WAAW,qBAAqB;IACpC,kBAAkB,CAAC,EAAE,gCAAgC,CAAC;CACvD;AAcD,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,EACtB,iBAAiB,EAAE,iBAAiB,EACpC,cAAc,GAAE,QAAyB,EACzC,gBAAgB,GAAE,QAAQ,GAAG,QAAmB,EAChD,gBAAgB,GAAE,MAAM,EAAO,EAC/B,OAAO,GAAE,qBAA0B,GAClC,IAAI,CAsBN"}
@@ -1,13 +1,24 @@
1
1
  import { Position } from "../../xyflow/react.js";
2
2
  import { showPreviewGraph } from "../../utils/createPreviewGraph.js";
3
- function createAddNodePreview(sourceNodeId, sourceHandleId, reactFlowInstance, handlePosition = Position.Right, sourceHandleType = 'source', ignoredNodeTypes = []) {
3
+ import { resolveContainerAddNodePreview } from "../LoopNode/LoopNode.helpers.js";
4
+ function createAddNodePreview(sourceNodeId, sourceHandleId, reactFlowInstance, handlePosition = Position.Right, sourceHandleType = 'source', ignoredNodeTypes = [], options = {}) {
5
+ const source = {
6
+ nodeId: sourceNodeId,
7
+ handleId: sourceHandleId
8
+ };
9
+ const overrides = options.getManifestForNode ? resolveContainerAddNodePreview({
10
+ source,
11
+ sourceHandleType,
12
+ reactFlowInstance,
13
+ getManifestForNode: options.getManifestForNode
14
+ }) : null;
4
15
  showPreviewGraph({
5
- sourceNodeId,
6
- sourceHandleId,
16
+ source,
7
17
  reactFlowInstance,
8
18
  sourceHandleType,
9
19
  handlePosition,
10
- ignoredNodeTypes
20
+ ignoredNodeTypes,
21
+ ...overrides ?? {}
11
22
  });
12
23
  }
13
24
  export { createAddNodePreview };
@@ -3,5 +3,5 @@ export { AddNodeManager } from './AddNodeManager';
3
3
  export { AddNodePanel } from './AddNodePanel';
4
4
  export type { AddNodePanelProps, NodeItemData } from './AddNodePanel.types';
5
5
  export { AddNodePreview, type AddNodePreviewData } from './AddNodePreview';
6
- export { createAddNodePreview } from './createAddNodePreview';
6
+ export { type AddNodePreviewOptions, createAddNodePreview } from './createAddNodePreview';
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/AddNodePanel/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/AddNodePanel/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,KAAK,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC"}