@uipath/apollo-react 4.14.1 → 4.15.0-pr605.6ea14a7

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 (223) hide show
  1. package/dist/canvas/components/AddNodePanel/AddNodeManager.cjs +101 -10
  2. package/dist/canvas/components/AddNodePanel/AddNodeManager.d.ts.map +1 -1
  3. package/dist/canvas/components/AddNodePanel/AddNodeManager.js +101 -10
  4. package/dist/canvas/components/AddNodePanel/createAddNodePreview.cjs +27 -3
  5. package/dist/canvas/components/AddNodePanel/createAddNodePreview.d.ts.map +1 -1
  6. package/dist/canvas/components/AddNodePanel/createAddNodePreview.js +27 -3
  7. package/dist/canvas/components/AgentCanvas/agent-flow.manifest.d.ts +1 -0
  8. package/dist/canvas/components/AgentCanvas/agent-flow.manifest.d.ts.map +1 -1
  9. package/dist/canvas/components/BaseNode/BaseNode.cjs +11 -5
  10. package/dist/canvas/components/BaseNode/BaseNode.d.ts +2 -1
  11. package/dist/canvas/components/BaseNode/BaseNode.d.ts.map +1 -1
  12. package/dist/canvas/components/BaseNode/BaseNode.js +9 -6
  13. package/dist/canvas/components/BaseNode/BaseNode.types.d.ts +3 -0
  14. package/dist/canvas/components/BaseNode/BaseNode.types.d.ts.map +1 -1
  15. package/dist/canvas/components/ButtonHandle/ButtonHandle.cjs +222 -13
  16. package/dist/canvas/components/ButtonHandle/ButtonHandle.d.ts +10 -5
  17. package/dist/canvas/components/ButtonHandle/ButtonHandle.d.ts.map +1 -1
  18. package/dist/canvas/components/ButtonHandle/ButtonHandle.js +223 -14
  19. package/dist/canvas/components/ButtonHandle/ButtonHandleStyleUtils.cjs +10 -2
  20. package/dist/canvas/components/ButtonHandle/ButtonHandleStyleUtils.d.ts +2 -0
  21. package/dist/canvas/components/ButtonHandle/ButtonHandleStyleUtils.d.ts.map +1 -1
  22. package/dist/canvas/components/ButtonHandle/ButtonHandleStyleUtils.js +5 -3
  23. package/dist/canvas/components/ButtonHandle/HandleButton.cjs +17 -2
  24. package/dist/canvas/components/ButtonHandle/HandleButton.d.ts +10 -1
  25. package/dist/canvas/components/ButtonHandle/HandleButton.d.ts.map +1 -1
  26. package/dist/canvas/components/ButtonHandle/HandleButton.js +17 -2
  27. package/dist/canvas/components/ButtonHandle/useButtonHandles.cjs +4 -2
  28. package/dist/canvas/components/ButtonHandle/useButtonHandles.d.ts +2 -1
  29. package/dist/canvas/components/ButtonHandle/useButtonHandles.d.ts.map +1 -1
  30. package/dist/canvas/components/ButtonHandle/useButtonHandles.js +4 -2
  31. package/dist/canvas/components/Edges/SequenceEdge.cjs +18 -12
  32. package/dist/canvas/components/Edges/SequenceEdge.d.ts.map +1 -1
  33. package/dist/canvas/components/Edges/SequenceEdge.js +18 -12
  34. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvas.cjs +34 -25
  35. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvas.d.ts +8 -2
  36. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvas.d.ts.map +1 -1
  37. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvas.js +36 -27
  38. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvasWithControls.cjs +4 -1
  39. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvasWithControls.d.ts.map +1 -1
  40. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvasWithControls.js +4 -1
  41. package/dist/canvas/components/HierarchicalCanvas/index.d.ts +1 -1
  42. package/dist/canvas/components/HierarchicalCanvas/index.d.ts.map +1 -1
  43. package/dist/canvas/components/LoopNode/LoopCanvasNode.cjs +86 -0
  44. package/dist/canvas/components/LoopNode/LoopCanvasNode.d.ts +6 -0
  45. package/dist/canvas/components/LoopNode/LoopCanvasNode.d.ts.map +1 -0
  46. package/dist/canvas/components/LoopNode/LoopCanvasNode.js +52 -0
  47. package/dist/canvas/components/LoopNode/LoopNode.cjs +434 -0
  48. package/dist/canvas/components/LoopNode/LoopNode.constants.cjs +93 -0
  49. package/dist/canvas/components/LoopNode/LoopNode.constants.d.ts +16 -0
  50. package/dist/canvas/components/LoopNode/LoopNode.constants.d.ts.map +1 -0
  51. package/dist/canvas/components/LoopNode/LoopNode.constants.js +17 -0
  52. package/dist/canvas/components/LoopNode/LoopNode.d.ts +5 -0
  53. package/dist/canvas/components/LoopNode/LoopNode.d.ts.map +1 -0
  54. package/dist/canvas/components/LoopNode/LoopNode.helpers.cjs +185 -0
  55. package/dist/canvas/components/LoopNode/LoopNode.helpers.d.ts +58 -0
  56. package/dist/canvas/components/LoopNode/LoopNode.helpers.d.ts.map +1 -0
  57. package/dist/canvas/components/LoopNode/LoopNode.helpers.js +124 -0
  58. package/dist/canvas/components/LoopNode/LoopNode.js +400 -0
  59. package/dist/canvas/components/LoopNode/LoopNode.sequence.cjs +386 -0
  60. package/dist/canvas/components/LoopNode/LoopNode.sequence.d.ts +47 -0
  61. package/dist/canvas/components/LoopNode/LoopNode.sequence.d.ts.map +1 -0
  62. package/dist/canvas/components/LoopNode/LoopNode.sequence.js +343 -0
  63. package/dist/canvas/components/LoopNode/LoopNode.types.cjs +18 -0
  64. package/dist/canvas/components/LoopNode/LoopNode.types.d.ts +22 -0
  65. package/dist/canvas/components/LoopNode/LoopNode.types.d.ts.map +1 -0
  66. package/dist/canvas/components/LoopNode/LoopNode.types.js +0 -0
  67. package/dist/canvas/components/LoopNode/LoopNodePreview.cjs +57 -0
  68. package/dist/canvas/components/LoopNode/LoopNodePreview.d.ts +9 -0
  69. package/dist/canvas/components/LoopNode/LoopNodePreview.d.ts.map +1 -0
  70. package/dist/canvas/components/LoopNode/LoopNodePreview.js +23 -0
  71. package/dist/canvas/components/LoopNode/index.cjs +79 -0
  72. package/dist/canvas/components/LoopNode/index.d.ts +5 -0
  73. package/dist/canvas/components/LoopNode/index.d.ts.map +1 -0
  74. package/dist/canvas/components/LoopNode/index.js +4 -0
  75. package/dist/canvas/components/NodeViewportOverlay.cjs +63 -0
  76. package/dist/canvas/components/NodeViewportOverlay.d.ts +22 -0
  77. package/dist/canvas/components/NodeViewportOverlay.d.ts.map +1 -0
  78. package/dist/canvas/components/NodeViewportOverlay.js +29 -0
  79. package/dist/canvas/components/Toolbar/EdgeToolbar/EdgeToolbar.cjs +1 -1
  80. package/dist/canvas/components/Toolbar/EdgeToolbar/EdgeToolbar.js +1 -1
  81. package/dist/canvas/components/Toolbar/EdgeToolbar/useEdgeToolbarState.cjs +33 -23
  82. package/dist/canvas/components/Toolbar/EdgeToolbar/useEdgeToolbarState.d.ts.map +1 -1
  83. package/dist/canvas/components/Toolbar/EdgeToolbar/useEdgeToolbarState.js +35 -25
  84. package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.cjs +10 -3
  85. package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.d.ts +1 -1
  86. package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.d.ts.map +1 -1
  87. package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.js +10 -3
  88. package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.types.d.ts +1 -0
  89. package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.types.d.ts.map +1 -1
  90. package/dist/canvas/components/index.cjs +27 -20
  91. package/dist/canvas/components/index.d.ts +1 -0
  92. package/dist/canvas/components/index.d.ts.map +1 -1
  93. package/dist/canvas/components/index.js +1 -0
  94. package/dist/canvas/constants.cjs +4 -0
  95. package/dist/canvas/constants.d.ts +1 -0
  96. package/dist/canvas/constants.d.ts.map +1 -1
  97. package/dist/canvas/constants.js +2 -1
  98. package/dist/canvas/core/NodeTypeRegistry.cjs +50 -26
  99. package/dist/canvas/core/NodeTypeRegistry.d.ts +10 -5
  100. package/dist/canvas/core/NodeTypeRegistry.d.ts.map +1 -1
  101. package/dist/canvas/core/NodeTypeRegistry.js +50 -26
  102. package/dist/canvas/core/useNodeTypeRegistry.cjs +13 -3
  103. package/dist/canvas/core/useNodeTypeRegistry.d.ts +2 -1
  104. package/dist/canvas/core/useNodeTypeRegistry.d.ts.map +1 -1
  105. package/dist/canvas/core/useNodeTypeRegistry.js +11 -4
  106. package/dist/canvas/hooks/useAddNodeOnConnectEnd.cjs +22 -23
  107. package/dist/canvas/hooks/useAddNodeOnConnectEnd.d.ts.map +1 -1
  108. package/dist/canvas/hooks/useAddNodeOnConnectEnd.js +23 -24
  109. package/dist/canvas/hooks/usePreviewNode.cjs +7 -3
  110. package/dist/canvas/hooks/usePreviewNode.d.ts.map +1 -1
  111. package/dist/canvas/hooks/usePreviewNode.js +7 -3
  112. package/dist/canvas/locales/de.cjs +1 -1
  113. package/dist/canvas/locales/de.d.ts.map +1 -1
  114. package/dist/canvas/locales/de.js +1 -1
  115. package/dist/canvas/locales/es-MX.cjs +1 -1
  116. package/dist/canvas/locales/es-MX.d.ts.map +1 -1
  117. package/dist/canvas/locales/es-MX.js +1 -1
  118. package/dist/canvas/locales/es.cjs +1 -1
  119. package/dist/canvas/locales/es.d.ts.map +1 -1
  120. package/dist/canvas/locales/es.js +1 -1
  121. package/dist/canvas/locales/fr.cjs +1 -1
  122. package/dist/canvas/locales/fr.d.ts.map +1 -1
  123. package/dist/canvas/locales/fr.js +1 -1
  124. package/dist/canvas/locales/ja.cjs +1 -1
  125. package/dist/canvas/locales/ja.d.ts.map +1 -1
  126. package/dist/canvas/locales/ja.js +1 -1
  127. package/dist/canvas/locales/ko.cjs +1 -1
  128. package/dist/canvas/locales/ko.d.ts.map +1 -1
  129. package/dist/canvas/locales/ko.js +1 -1
  130. package/dist/canvas/locales/pt-BR.cjs +1 -1
  131. package/dist/canvas/locales/pt-BR.d.ts.map +1 -1
  132. package/dist/canvas/locales/pt-BR.js +1 -1
  133. package/dist/canvas/locales/pt.cjs +1 -1
  134. package/dist/canvas/locales/pt.d.ts.map +1 -1
  135. package/dist/canvas/locales/pt.js +1 -1
  136. package/dist/canvas/locales/tr.cjs +1 -1
  137. package/dist/canvas/locales/tr.d.ts.map +1 -1
  138. package/dist/canvas/locales/tr.js +1 -1
  139. package/dist/canvas/locales/zh-CN.cjs +1 -1
  140. package/dist/canvas/locales/zh-CN.d.ts.map +1 -1
  141. package/dist/canvas/locales/zh-CN.js +1 -1
  142. package/dist/canvas/locales/zh-TW.cjs +1 -1
  143. package/dist/canvas/locales/zh-TW.d.ts.map +1 -1
  144. package/dist/canvas/locales/zh-TW.js +1 -1
  145. package/dist/canvas/schema/node-definition/handle.cjs +10 -2
  146. package/dist/canvas/schema/node-definition/handle.d.ts +9 -0
  147. package/dist/canvas/schema/node-definition/handle.d.ts.map +1 -1
  148. package/dist/canvas/schema/node-definition/handle.js +6 -1
  149. package/dist/canvas/schema/node-definition/index.cjs +4 -1
  150. package/dist/canvas/schema/node-definition/index.d.ts +3 -3
  151. package/dist/canvas/schema/node-definition/index.d.ts.map +1 -1
  152. package/dist/canvas/schema/node-definition/index.js +2 -2
  153. package/dist/canvas/schema/node-definition/node-manifest.d.ts +4 -0
  154. package/dist/canvas/schema/node-definition/node-manifest.d.ts.map +1 -1
  155. package/dist/canvas/storybook-utils/hooks/useCanvasStory.d.ts +6 -0
  156. package/dist/canvas/storybook-utils/hooks/useCanvasStory.d.ts.map +1 -1
  157. package/dist/canvas/storybook-utils/manifests/index.d.ts +1 -0
  158. package/dist/canvas/storybook-utils/manifests/index.d.ts.map +1 -1
  159. package/dist/canvas/storybook-utils/manifests/node-definitions.d.ts.map +1 -1
  160. package/dist/canvas/storybook-utils/mocks/nodes.d.ts +1 -1
  161. package/dist/canvas/storybook-utils/mocks/nodes.d.ts.map +1 -1
  162. package/dist/canvas/styles/reactflow-reset.css +2 -2
  163. package/dist/canvas/styles/tailwind.canvas.css +1 -1
  164. package/dist/canvas/utils/NodeUtils.cjs +25 -9
  165. package/dist/canvas/utils/NodeUtils.d.ts +7 -0
  166. package/dist/canvas/utils/NodeUtils.d.ts.map +1 -1
  167. package/dist/canvas/utils/NodeUtils.js +13 -6
  168. package/dist/canvas/utils/collapse.cjs +13 -6
  169. package/dist/canvas/utils/collapse.d.ts +2 -2
  170. package/dist/canvas/utils/collapse.d.ts.map +1 -1
  171. package/dist/canvas/utils/collapse.js +9 -2
  172. package/dist/canvas/utils/container-sizing.cjs +168 -0
  173. package/dist/canvas/utils/container-sizing.d.ts +23 -0
  174. package/dist/canvas/utils/container-sizing.d.ts.map +1 -0
  175. package/dist/canvas/utils/container-sizing.js +131 -0
  176. package/dist/canvas/utils/createPreviewGraph.cjs +126 -0
  177. package/dist/canvas/utils/createPreviewGraph.d.ts +37 -0
  178. package/dist/canvas/utils/createPreviewGraph.d.ts.map +1 -0
  179. package/dist/canvas/utils/createPreviewGraph.js +83 -0
  180. package/dist/canvas/utils/createPreviewNode.cjs +59 -12
  181. package/dist/canvas/utils/createPreviewNode.d.ts +10 -2
  182. package/dist/canvas/utils/createPreviewNode.d.ts.map +1 -1
  183. package/dist/canvas/utils/createPreviewNode.js +50 -12
  184. package/dist/canvas/utils/index.cjs +40 -26
  185. package/dist/canvas/utils/index.d.ts +3 -1
  186. package/dist/canvas/utils/index.d.ts.map +1 -1
  187. package/dist/canvas/utils/index.js +3 -1
  188. package/dist/canvas/utils/manifest-resolver.cjs +8 -0
  189. package/dist/canvas/utils/manifest-resolver.d.ts +1 -0
  190. package/dist/canvas/utils/manifest-resolver.d.ts.map +1 -1
  191. package/dist/canvas/utils/manifest-resolver.js +6 -1
  192. package/dist/material/components/ap-tool-call/locales/de.cjs +1 -1
  193. package/dist/material/components/ap-tool-call/locales/de.d.ts.map +1 -1
  194. package/dist/material/components/ap-tool-call/locales/de.js +1 -1
  195. package/dist/material/components/ap-tool-call/locales/es-MX.cjs +1 -1
  196. package/dist/material/components/ap-tool-call/locales/es-MX.js +1 -1
  197. package/dist/material/components/ap-tool-call/locales/es.cjs +1 -1
  198. package/dist/material/components/ap-tool-call/locales/es.js +1 -1
  199. package/dist/material/components/ap-tool-call/locales/fr.cjs +1 -1
  200. package/dist/material/components/ap-tool-call/locales/fr.d.ts.map +1 -1
  201. package/dist/material/components/ap-tool-call/locales/fr.js +1 -1
  202. package/dist/material/components/ap-tool-call/locales/ja.cjs +1 -1
  203. package/dist/material/components/ap-tool-call/locales/ja.d.ts.map +1 -1
  204. package/dist/material/components/ap-tool-call/locales/ja.js +1 -1
  205. package/dist/material/components/ap-tool-call/locales/ko.cjs +1 -1
  206. package/dist/material/components/ap-tool-call/locales/ko.d.ts.map +1 -1
  207. package/dist/material/components/ap-tool-call/locales/ko.js +1 -1
  208. package/dist/material/components/ap-tool-call/locales/pt-BR.cjs +1 -1
  209. package/dist/material/components/ap-tool-call/locales/pt-BR.d.ts.map +1 -1
  210. package/dist/material/components/ap-tool-call/locales/pt-BR.js +1 -1
  211. package/dist/material/components/ap-tool-call/locales/pt.cjs +1 -1
  212. package/dist/material/components/ap-tool-call/locales/pt.d.ts.map +1 -1
  213. package/dist/material/components/ap-tool-call/locales/pt.js +1 -1
  214. package/dist/material/components/ap-tool-call/locales/tr.cjs +1 -1
  215. package/dist/material/components/ap-tool-call/locales/tr.d.ts.map +1 -1
  216. package/dist/material/components/ap-tool-call/locales/tr.js +1 -1
  217. package/dist/material/components/ap-tool-call/locales/zh-CN.cjs +1 -1
  218. package/dist/material/components/ap-tool-call/locales/zh-CN.d.ts.map +1 -1
  219. package/dist/material/components/ap-tool-call/locales/zh-CN.js +1 -1
  220. package/dist/material/components/ap-tool-call/locales/zh-TW.cjs +1 -1
  221. package/dist/material/components/ap-tool-call/locales/zh-TW.d.ts.map +1 -1
  222. package/dist/material/components/ap-tool-call/locales/zh-TW.js +1 -1
  223. package/package.json +3 -3
@@ -33,8 +33,87 @@ 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
35
  const external_utils_index_cjs_namespaceObject = require("../../utils/index.cjs");
36
+ const collapse_cjs_namespaceObject = require("../../utils/collapse.cjs");
37
+ const container_sizing_cjs_namespaceObject = require("../../utils/container-sizing.cjs");
38
+ const manifest_resolver_cjs_namespaceObject = require("../../utils/manifest-resolver.cjs");
36
39
  const external_FloatingCanvasPanel_index_cjs_namespaceObject = require("../FloatingCanvasPanel/index.cjs");
40
+ const LoopNode_helpers_cjs_namespaceObject = require("../LoopNode/LoopNode.helpers.cjs");
41
+ const LoopNode_sequence_cjs_namespaceObject = require("../LoopNode/LoopNode.sequence.cjs");
37
42
  const external_AddNodePanel_cjs_namespaceObject = require("./AddNodePanel.cjs");
43
+ function getManifestForNode(registry, node) {
44
+ return node.type ? registry?.getManifest(node.type, (0, manifest_resolver_cjs_namespaceObject.getNodeTypeVersion)(node.data)) : void 0;
45
+ }
46
+ function getManifestAwareNodeDimensions(registry, node) {
47
+ const manifest = getManifestForNode(registry, node);
48
+ const expandedShape = (0, collapse_cjs_namespaceObject.getExpandedShape)(manifest?.display.shape);
49
+ const fallbackDimensions = (0, collapse_cjs_namespaceObject.getExpandedSize)(expandedShape, manifest);
50
+ return (0, container_sizing_cjs_namespaceObject.getNodeDimensions)(node, fallbackDimensions);
51
+ }
52
+ function getContainerFitGeometry(registry, node) {
53
+ const manifest = getManifestForNode(registry, node);
54
+ return (0, LoopNode_helpers_cjs_namespaceObject.isLoopContainerManifest)(manifest) ? (0, LoopNode_helpers_cjs_namespaceObject.getLoopContainerFitGeometry)() : null;
55
+ }
56
+ function centerNodeOnPreview(previewNode, nodeDimensions) {
57
+ const previewDimensions = (0, container_sizing_cjs_namespaceObject.getNodeDimensions)(previewNode);
58
+ return {
59
+ x: previewNode.position.x + (previewDimensions.width - nodeDimensions.width) / 2,
60
+ y: previewNode.position.y + (previewDimensions.height - nodeDimensions.height) / 2
61
+ };
62
+ }
63
+ function centerNodeVerticallyOnPreview(previewNode, nodeDimensions) {
64
+ const previewDimensions = (0, container_sizing_cjs_namespaceObject.getNodeDimensions)(previewNode);
65
+ return {
66
+ x: previewNode.position.x,
67
+ y: previewNode.position.y + (previewDimensions.height - nodeDimensions.height) / 2
68
+ };
69
+ }
70
+ function resolveSiblingCollisions(nodes, insertedNode, options) {
71
+ const siblingNodes = nodes.filter((node)=>node.parentId === insertedNode.parentId);
72
+ const resolvedSiblings = (0, external_utils_index_cjs_namespaceObject.resolveCollisions)(siblingNodes, options);
73
+ const resolvedSiblingsById = new Map(resolvedSiblings.map((node)=>[
74
+ node.id,
75
+ node
76
+ ]));
77
+ return nodes.map((node)=>resolvedSiblingsById.get(node.id) ?? node);
78
+ }
79
+ function resolveNodePlacement(nodes, insertedNode, registry, ignoredNodeTypes, edges, loopSequencePlacement) {
80
+ const getNodeSize = (node)=>getManifestAwareNodeDimensions(registry, node);
81
+ if (!insertedNode.parentId) {
82
+ const resolvedNodes = (0, external_utils_index_cjs_namespaceObject.resolveCollisions)(nodes, {
83
+ ignoredNodeTypes,
84
+ getNodeSize
85
+ });
86
+ return {
87
+ nodes: resolvedNodes,
88
+ insertedNode: resolvedNodes.find((node)=>node.id === insertedNode.id) ?? insertedNode
89
+ };
90
+ }
91
+ const loopSequenceNodes = loopSequencePlacement ? (0, LoopNode_sequence_cjs_namespaceObject.resolveLoopSequenceMaterializedNodes)({
92
+ nodes,
93
+ edges,
94
+ insertedNode,
95
+ placement: loopSequencePlacement,
96
+ getNodeSize
97
+ }) : null;
98
+ let resolvedNodes = loopSequenceNodes;
99
+ if (!resolvedNodes) resolvedNodes = resolveSiblingCollisions(nodes, insertedNode, {
100
+ ignoredNodeTypes,
101
+ getNodeSize
102
+ });
103
+ const fittedNodes = (0, container_sizing_cjs_namespaceObject.ensureContainersFitChildren)(resolvedNodes, {
104
+ containerIds: [
105
+ insertedNode.parentId
106
+ ],
107
+ getContainerFitGeometry: (node)=>getContainerFitGeometry(registry, node),
108
+ getNodeDimensions: getNodeSize,
109
+ ignoredNodeTypes,
110
+ includeAncestors: true
111
+ });
112
+ return {
113
+ nodes: fittedNodes,
114
+ insertedNode: fittedNodes.find((node)=>node.id === insertedNode.id) ?? insertedNode
115
+ };
116
+ }
38
117
  const AddNodeManager = ({ initializing, customPanel: CustomPanel, createNodeData, onBeforeNodeAdded, onNodeAdded, ignoredNodeTypes })=>{
39
118
  const reactFlowInstance = (0, react_cjs_namespaceObject.useReactFlow)();
40
119
  const registry = (0, index_cjs_namespaceObject.useOptionalNodeTypeRegistry)();
@@ -70,28 +149,39 @@ const AddNodeManager = ({ initializing, customPanel: CustomPanel, createNodeData
70
149
  const handleNodeSelect = (0, external_react_namespaceObject.useCallback)((nodeItem)=>{
71
150
  const currentPreviewNode = reactFlowInstance.getNode(external_constants_cjs_namespaceObject.PREVIEW_NODE_ID);
72
151
  if (!currentPreviewNode || !previewNodeConnectionInfo || 0 === previewNodeConnectionInfo.length) return;
152
+ const loopSequencePlacement = (0, LoopNode_sequence_cjs_namespaceObject.getLoopSequencePlacementFromPreviewGraph)(currentPreviewNode, previewNodeConnectionInfo);
73
153
  const newNodeId = `${nodeItem.data.type}-${Date.now()}`;
74
154
  const baseNodeData = createNodeData ? createNodeData(nodeItem) : {
75
155
  label: nodeItem.name,
76
156
  subLabel: nodeItem.description
77
157
  };
78
- const nodeData = currentPreviewNode.data?.useSmartHandles ? {
158
+ const nodeData = {
79
159
  ...baseNodeData,
80
- useSmartHandles: true
81
- } : baseNodeData;
160
+ ...nodeItem.data.version ? {
161
+ typeVersion: nodeItem.data.version
162
+ } : {},
163
+ ...currentPreviewNode.data?.useSmartHandles ? {
164
+ useSmartHandles: true
165
+ } : {}
166
+ };
82
167
  const newNode = {
83
168
  id: newNodeId,
84
169
  type: nodeItem.data.type,
85
170
  position: currentPreviewNode.position,
171
+ parentId: currentPreviewNode.parentId,
172
+ extent: currentPreviewNode.extent,
86
173
  selected: true,
87
174
  data: nodeData
88
175
  };
89
- const newNodeManifest = registry?.getManifest(nodeItem.data.type);
176
+ const newNodeManifest = registry?.getManifest(nodeItem.data.type, nodeItem.data.version);
177
+ const newNodeDimensions = getManifestAwareNodeDimensions(registry, newNode);
178
+ if (currentPreviewNode.parentId) newNode.position = centerNodeOnPreview(currentPreviewNode, newNodeDimensions);
179
+ else if ((0, LoopNode_helpers_cjs_namespaceObject.isLoopContainerManifest)(newNodeManifest)) newNode.position = centerNodeVerticallyOnPreview(currentPreviewNode, newNodeDimensions);
90
180
  const newEdges = [];
91
181
  const previewEdgeIds = [];
92
182
  for (const connectionInfoItem of previewNodeConnectionInfo){
93
183
  const newNodeHandleType = connectionInfoItem.addNewNodeAsSource ? 'source' : 'target';
94
- const newNodeDefaultHandle = newNodeManifest ? registry?.getDefaultHandle(newNodeManifest.nodeType, newNodeHandleType) : void 0;
184
+ const newNodeDefaultHandle = newNodeManifest ? registry?.getDefaultHandle(newNodeManifest.nodeType, newNodeHandleType, nodeItem.data.version) : void 0;
95
185
  const newNodeHandleId = newNodeDefaultHandle?.id;
96
186
  const edgeSourceTargetData = connectionInfoItem.addNewNodeAsSource ? {
97
187
  source: newNode.id,
@@ -116,6 +206,7 @@ const AddNodeManager = ({ initializing, customPanel: CustomPanel, createNodeData
116
206
  newNode,
117
207
  newEdges
118
208
  };
209
+ let resolvedFinalNode = finalNode;
119
210
  reactFlowInstance.setNodes((nodes)=>{
120
211
  const newNodes = [
121
212
  ...nodes.filter((n)=>n.id !== external_constants_cjs_namespaceObject.PREVIEW_NODE_ID).map((n)=>({
@@ -124,9 +215,9 @@ const AddNodeManager = ({ initializing, customPanel: CustomPanel, createNodeData
124
215
  })),
125
216
  finalNode
126
217
  ];
127
- return (0, external_utils_index_cjs_namespaceObject.resolveCollisions)(newNodes, {
128
- ignoredNodeTypes
129
- });
218
+ const placement = resolveNodePlacement(newNodes, finalNode, registry, ignoredNodeTypes, reactFlowInstance.getEdges(), loopSequencePlacement);
219
+ resolvedFinalNode = placement.insertedNode;
220
+ return placement.nodes;
130
221
  });
131
222
  reactFlowInstance.setEdges((edges)=>[
132
223
  ...edges.filter((e)=>!previewEdgeIds.includes(e.id)),
@@ -134,7 +225,7 @@ const AddNodeManager = ({ initializing, customPanel: CustomPanel, createNodeData
134
225
  ]);
135
226
  const [firstConnection] = previewNodeConnectionInfo;
136
227
  if (firstConnection) {
137
- const firstEdgeSourceHandle = firstConnection.addNewNodeAsSource ? newNodeManifest && registry?.getDefaultHandle(newNodeManifest.nodeType, 'source')?.id : firstConnection.existingHandleId;
228
+ const firstEdgeSourceHandle = firstConnection.addNewNodeAsSource ? newNodeManifest && registry?.getDefaultHandle(newNodeManifest.nodeType, 'source', nodeItem.data.version)?.id : firstConnection.existingHandleId;
138
229
  const firstEdgeData = firstConnection.addNewNodeAsSource ? {
139
230
  source: finalNode.id,
140
231
  sourceHandle: firstEdgeSourceHandle ?? 'output'
@@ -142,7 +233,7 @@ const AddNodeManager = ({ initializing, customPanel: CustomPanel, createNodeData
142
233
  source: firstConnection.existingNodeId,
143
234
  sourceHandle: firstConnection.existingHandleId
144
235
  };
145
- onNodeAdded?.(firstEdgeData.source, firstEdgeData.sourceHandle, finalNode);
236
+ onNodeAdded?.(firstEdgeData.source, firstEdgeData.sourceHandle, resolvedFinalNode);
146
237
  }
147
238
  restoreEdgesRef.current = null;
148
239
  handleClose();
@@ -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,CAqMxD,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;AAS/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAQhD,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;AAuHD,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAiOxD,CAAC"}
@@ -5,8 +5,87 @@ import { FLOATING_CANVAS_PANEL_OFFSET, PREVIEW_NODE_ID } from "../../constants.j
5
5
  import { useOptionalNodeTypeRegistry } from "../../core/index.js";
6
6
  import { usePreviewNode } from "../../hooks/usePreviewNode.js";
7
7
  import { resolveCollisions } from "../../utils/index.js";
8
+ import { getExpandedShape, getExpandedSize } from "../../utils/collapse.js";
9
+ import { ensureContainersFitChildren, getNodeDimensions } from "../../utils/container-sizing.js";
10
+ import { getNodeTypeVersion } from "../../utils/manifest-resolver.js";
8
11
  import { FloatingCanvasPanel } from "../FloatingCanvasPanel/index.js";
12
+ import { getLoopContainerFitGeometry, isLoopContainerManifest } from "../LoopNode/LoopNode.helpers.js";
13
+ import { getLoopSequencePlacementFromPreviewGraph, resolveLoopSequenceMaterializedNodes } from "../LoopNode/LoopNode.sequence.js";
9
14
  import { AddNodePanel } from "./AddNodePanel.js";
15
+ function getManifestForNode(registry, node) {
16
+ return node.type ? registry?.getManifest(node.type, getNodeTypeVersion(node.data)) : void 0;
17
+ }
18
+ function getManifestAwareNodeDimensions(registry, node) {
19
+ const manifest = getManifestForNode(registry, node);
20
+ const expandedShape = getExpandedShape(manifest?.display.shape);
21
+ const fallbackDimensions = getExpandedSize(expandedShape, manifest);
22
+ return getNodeDimensions(node, fallbackDimensions);
23
+ }
24
+ function getContainerFitGeometry(registry, node) {
25
+ const manifest = getManifestForNode(registry, node);
26
+ return isLoopContainerManifest(manifest) ? getLoopContainerFitGeometry() : null;
27
+ }
28
+ function centerNodeOnPreview(previewNode, nodeDimensions) {
29
+ const previewDimensions = getNodeDimensions(previewNode);
30
+ return {
31
+ x: previewNode.position.x + (previewDimensions.width - nodeDimensions.width) / 2,
32
+ y: previewNode.position.y + (previewDimensions.height - nodeDimensions.height) / 2
33
+ };
34
+ }
35
+ function centerNodeVerticallyOnPreview(previewNode, nodeDimensions) {
36
+ const previewDimensions = getNodeDimensions(previewNode);
37
+ return {
38
+ x: previewNode.position.x,
39
+ y: previewNode.position.y + (previewDimensions.height - nodeDimensions.height) / 2
40
+ };
41
+ }
42
+ function resolveSiblingCollisions(nodes, insertedNode, options) {
43
+ const siblingNodes = nodes.filter((node)=>node.parentId === insertedNode.parentId);
44
+ const resolvedSiblings = resolveCollisions(siblingNodes, options);
45
+ const resolvedSiblingsById = new Map(resolvedSiblings.map((node)=>[
46
+ node.id,
47
+ node
48
+ ]));
49
+ return nodes.map((node)=>resolvedSiblingsById.get(node.id) ?? node);
50
+ }
51
+ function resolveNodePlacement(nodes, insertedNode, registry, ignoredNodeTypes, edges, loopSequencePlacement) {
52
+ const getNodeSize = (node)=>getManifestAwareNodeDimensions(registry, node);
53
+ if (!insertedNode.parentId) {
54
+ const resolvedNodes = resolveCollisions(nodes, {
55
+ ignoredNodeTypes,
56
+ getNodeSize
57
+ });
58
+ return {
59
+ nodes: resolvedNodes,
60
+ insertedNode: resolvedNodes.find((node)=>node.id === insertedNode.id) ?? insertedNode
61
+ };
62
+ }
63
+ const loopSequenceNodes = loopSequencePlacement ? resolveLoopSequenceMaterializedNodes({
64
+ nodes,
65
+ edges,
66
+ insertedNode,
67
+ placement: loopSequencePlacement,
68
+ getNodeSize
69
+ }) : null;
70
+ let resolvedNodes = loopSequenceNodes;
71
+ if (!resolvedNodes) resolvedNodes = resolveSiblingCollisions(nodes, insertedNode, {
72
+ ignoredNodeTypes,
73
+ getNodeSize
74
+ });
75
+ const fittedNodes = ensureContainersFitChildren(resolvedNodes, {
76
+ containerIds: [
77
+ insertedNode.parentId
78
+ ],
79
+ getContainerFitGeometry: (node)=>getContainerFitGeometry(registry, node),
80
+ getNodeDimensions: getNodeSize,
81
+ ignoredNodeTypes,
82
+ includeAncestors: true
83
+ });
84
+ return {
85
+ nodes: fittedNodes,
86
+ insertedNode: fittedNodes.find((node)=>node.id === insertedNode.id) ?? insertedNode
87
+ };
88
+ }
10
89
  const AddNodeManager = ({ initializing, customPanel: CustomPanel, createNodeData, onBeforeNodeAdded, onNodeAdded, ignoredNodeTypes })=>{
11
90
  const reactFlowInstance = useReactFlow();
12
91
  const registry = useOptionalNodeTypeRegistry();
@@ -42,28 +121,39 @@ const AddNodeManager = ({ initializing, customPanel: CustomPanel, createNodeData
42
121
  const handleNodeSelect = useCallback((nodeItem)=>{
43
122
  const currentPreviewNode = reactFlowInstance.getNode(PREVIEW_NODE_ID);
44
123
  if (!currentPreviewNode || !previewNodeConnectionInfo || 0 === previewNodeConnectionInfo.length) return;
124
+ const loopSequencePlacement = getLoopSequencePlacementFromPreviewGraph(currentPreviewNode, previewNodeConnectionInfo);
45
125
  const newNodeId = `${nodeItem.data.type}-${Date.now()}`;
46
126
  const baseNodeData = createNodeData ? createNodeData(nodeItem) : {
47
127
  label: nodeItem.name,
48
128
  subLabel: nodeItem.description
49
129
  };
50
- const nodeData = currentPreviewNode.data?.useSmartHandles ? {
130
+ const nodeData = {
51
131
  ...baseNodeData,
52
- useSmartHandles: true
53
- } : baseNodeData;
132
+ ...nodeItem.data.version ? {
133
+ typeVersion: nodeItem.data.version
134
+ } : {},
135
+ ...currentPreviewNode.data?.useSmartHandles ? {
136
+ useSmartHandles: true
137
+ } : {}
138
+ };
54
139
  const newNode = {
55
140
  id: newNodeId,
56
141
  type: nodeItem.data.type,
57
142
  position: currentPreviewNode.position,
143
+ parentId: currentPreviewNode.parentId,
144
+ extent: currentPreviewNode.extent,
58
145
  selected: true,
59
146
  data: nodeData
60
147
  };
61
- const newNodeManifest = registry?.getManifest(nodeItem.data.type);
148
+ const newNodeManifest = registry?.getManifest(nodeItem.data.type, nodeItem.data.version);
149
+ const newNodeDimensions = getManifestAwareNodeDimensions(registry, newNode);
150
+ if (currentPreviewNode.parentId) newNode.position = centerNodeOnPreview(currentPreviewNode, newNodeDimensions);
151
+ else if (isLoopContainerManifest(newNodeManifest)) newNode.position = centerNodeVerticallyOnPreview(currentPreviewNode, newNodeDimensions);
62
152
  const newEdges = [];
63
153
  const previewEdgeIds = [];
64
154
  for (const connectionInfoItem of previewNodeConnectionInfo){
65
155
  const newNodeHandleType = connectionInfoItem.addNewNodeAsSource ? 'source' : 'target';
66
- const newNodeDefaultHandle = newNodeManifest ? registry?.getDefaultHandle(newNodeManifest.nodeType, newNodeHandleType) : void 0;
156
+ const newNodeDefaultHandle = newNodeManifest ? registry?.getDefaultHandle(newNodeManifest.nodeType, newNodeHandleType, nodeItem.data.version) : void 0;
67
157
  const newNodeHandleId = newNodeDefaultHandle?.id;
68
158
  const edgeSourceTargetData = connectionInfoItem.addNewNodeAsSource ? {
69
159
  source: newNode.id,
@@ -88,6 +178,7 @@ const AddNodeManager = ({ initializing, customPanel: CustomPanel, createNodeData
88
178
  newNode,
89
179
  newEdges
90
180
  };
181
+ let resolvedFinalNode = finalNode;
91
182
  reactFlowInstance.setNodes((nodes)=>{
92
183
  const newNodes = [
93
184
  ...nodes.filter((n)=>n.id !== PREVIEW_NODE_ID).map((n)=>({
@@ -96,9 +187,9 @@ const AddNodeManager = ({ initializing, customPanel: CustomPanel, createNodeData
96
187
  })),
97
188
  finalNode
98
189
  ];
99
- return resolveCollisions(newNodes, {
100
- ignoredNodeTypes
101
- });
190
+ const placement = resolveNodePlacement(newNodes, finalNode, registry, ignoredNodeTypes, reactFlowInstance.getEdges(), loopSequencePlacement);
191
+ resolvedFinalNode = placement.insertedNode;
192
+ return placement.nodes;
102
193
  });
103
194
  reactFlowInstance.setEdges((edges)=>[
104
195
  ...edges.filter((e)=>!previewEdgeIds.includes(e.id)),
@@ -106,7 +197,7 @@ const AddNodeManager = ({ initializing, customPanel: CustomPanel, createNodeData
106
197
  ]);
107
198
  const [firstConnection] = previewNodeConnectionInfo;
108
199
  if (firstConnection) {
109
- const firstEdgeSourceHandle = firstConnection.addNewNodeAsSource ? newNodeManifest && registry?.getDefaultHandle(newNodeManifest.nodeType, 'source')?.id : firstConnection.existingHandleId;
200
+ const firstEdgeSourceHandle = firstConnection.addNewNodeAsSource ? newNodeManifest && registry?.getDefaultHandle(newNodeManifest.nodeType, 'source', nodeItem.data.version)?.id : firstConnection.existingHandleId;
110
201
  const firstEdgeData = firstConnection.addNewNodeAsSource ? {
111
202
  source: finalNode.id,
112
203
  sourceHandle: firstEdgeSourceHandle ?? 'output'
@@ -114,7 +205,7 @@ const AddNodeManager = ({ initializing, customPanel: CustomPanel, createNodeData
114
205
  source: firstConnection.existingNodeId,
115
206
  sourceHandle: firstConnection.existingHandleId
116
207
  };
117
- onNodeAdded?.(firstEdgeData.source, firstEdgeData.sourceHandle, finalNode);
208
+ onNodeAdded?.(firstEdgeData.source, firstEdgeData.sourceHandle, resolvedFinalNode);
118
209
  }
119
210
  restoreEdgesRef.current = null;
120
211
  handleClose();
@@ -27,10 +27,34 @@ __webpack_require__.d(__webpack_exports__, {
27
27
  createAddNodePreview: ()=>createAddNodePreview
28
28
  });
29
29
  const react_cjs_namespaceObject = require("../../xyflow/react.cjs");
30
- const createPreviewNode_cjs_namespaceObject = require("../../utils/createPreviewNode.cjs");
30
+ const createPreviewGraph_cjs_namespaceObject = require("../../utils/createPreviewGraph.cjs");
31
+ const LoopNode_sequence_cjs_namespaceObject = require("../LoopNode/LoopNode.sequence.cjs");
31
32
  function createAddNodePreview(sourceNodeId, sourceHandleId, reactFlowInstance, handlePosition = react_cjs_namespaceObject.Position.Right, sourceHandleType = 'source', ignoredNodeTypes = []) {
32
- const preview = (0, createPreviewNode_cjs_namespaceObject.createPreviewNode)(sourceNodeId, sourceHandleId, reactFlowInstance, void 0, void 0, sourceHandleType, void 0, handlePosition, ignoredNodeTypes);
33
- if (preview) (0, createPreviewNode_cjs_namespaceObject.applyPreviewToReactFlow)(preview, reactFlowInstance);
33
+ if ('source' === sourceHandleType) {
34
+ const loopPreview = (0, LoopNode_sequence_cjs_namespaceObject.resolveLoopAddNodePreview)({
35
+ sourceNodeId,
36
+ sourceHandleId,
37
+ reactFlowInstance
38
+ });
39
+ if ('skip' === loopPreview.action) return;
40
+ if ('create-preview' === loopPreview.action) return void (0, createPreviewGraph_cjs_namespaceObject.showPreviewGraph)({
41
+ sourceNodeId,
42
+ sourceHandleId,
43
+ reactFlowInstance,
44
+ sourceHandleType,
45
+ handlePosition,
46
+ ignoredNodeTypes,
47
+ ...loopPreview.previewGraphOptions
48
+ });
49
+ }
50
+ (0, createPreviewGraph_cjs_namespaceObject.showPreviewGraph)({
51
+ sourceNodeId,
52
+ sourceHandleId,
53
+ reactFlowInstance,
54
+ sourceHandleType,
55
+ handlePosition,
56
+ ignoredNodeTypes
57
+ });
34
58
  }
35
59
  exports.createAddNodePreview = __webpack_exports__.createAddNodePreview;
36
60
  for(var __rspack_i in __webpack_exports__)if (-1 === [
@@ -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,CAiBN"}
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;AAc5F,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,CAkCN"}
@@ -1,7 +1,31 @@
1
1
  import { Position } from "../../xyflow/react.js";
2
- import { applyPreviewToReactFlow, createPreviewNode } from "../../utils/createPreviewNode.js";
2
+ import { showPreviewGraph } from "../../utils/createPreviewGraph.js";
3
+ import { resolveLoopAddNodePreview } from "../LoopNode/LoopNode.sequence.js";
3
4
  function createAddNodePreview(sourceNodeId, sourceHandleId, reactFlowInstance, handlePosition = Position.Right, sourceHandleType = 'source', ignoredNodeTypes = []) {
4
- const preview = createPreviewNode(sourceNodeId, sourceHandleId, reactFlowInstance, void 0, void 0, sourceHandleType, void 0, handlePosition, ignoredNodeTypes);
5
- if (preview) applyPreviewToReactFlow(preview, reactFlowInstance);
5
+ if ('source' === sourceHandleType) {
6
+ const loopPreview = resolveLoopAddNodePreview({
7
+ sourceNodeId,
8
+ sourceHandleId,
9
+ reactFlowInstance
10
+ });
11
+ if ('skip' === loopPreview.action) return;
12
+ if ('create-preview' === loopPreview.action) return void showPreviewGraph({
13
+ sourceNodeId,
14
+ sourceHandleId,
15
+ reactFlowInstance,
16
+ sourceHandleType,
17
+ handlePosition,
18
+ ignoredNodeTypes,
19
+ ...loopPreview.previewGraphOptions
20
+ });
21
+ }
22
+ showPreviewGraph({
23
+ sourceNodeId,
24
+ sourceHandleId,
25
+ reactFlowInstance,
26
+ sourceHandleType,
27
+ handlePosition,
28
+ ignoredNodeTypes
29
+ });
6
30
  }
7
31
  export { createAddNodePreview };
@@ -77,6 +77,7 @@ export declare const agentFlowManifest: {
77
77
  } | undefined;
78
78
  isDefaultForType?: boolean | undefined;
79
79
  }[];
80
+ boundary?: "outer" | "inner" | undefined;
80
81
  customPositionAndOffsets?: {
81
82
  height?: number | undefined;
82
83
  width?: number | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"agent-flow.manifest.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/AgentCanvas/agent-flow.manifest.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAMnF,eAAO,MAAM,mBAAmB,EAAE,gBAAgB,EAmBjD,CAAC;AAMF,eAAO,MAAM,2BAA2B,EAAE,YAsDzC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,YAqDrC,CAAC;AAMF,eAAO,MAAM,uBAAuB,EAAE,YAwBrC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,YAwBlC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,YAwBjC,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,YAwBxC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,YAwBpC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,YAwBjC,CAAC;AAMF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAa7B,CAAC"}
1
+ {"version":3,"file":"agent-flow.manifest.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/AgentCanvas/agent-flow.manifest.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAMnF,eAAO,MAAM,mBAAmB,EAAE,gBAAgB,EAmBjD,CAAC;AAMF,eAAO,MAAM,2BAA2B,EAAE,YAsDzC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,YAqDrC,CAAC;AAMF,eAAO,MAAM,uBAAuB,EAAE,YAwBrC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,YAwBlC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,YAwBjC,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,YAwBxC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,YAwBpC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,YAwBjC,CAAC;AAMF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAa7B,CAAC"}
@@ -24,6 +24,7 @@ var __webpack_require__ = {};
24
24
  var __webpack_exports__ = {};
25
25
  __webpack_require__.r(__webpack_exports__);
26
26
  __webpack_require__.d(__webpack_exports__, {
27
+ selectIsConnecting: ()=>selectIsConnecting,
27
28
  BaseNode: ()=>BaseNode
28
29
  });
29
30
  const jsx_runtime_namespaceObject = require("react/jsx-runtime");
@@ -69,7 +70,8 @@ const getContainerHeight = (height, hasFooter, footerVariant)=>{
69
70
  return height || external_constants_cjs_namespaceObject.NODE_HEIGHT_DEFAULT;
70
71
  };
71
72
  const BaseNodeComponent = (props)=>{
72
- const { type, data, selected, id, dragging, width, height } = props;
73
+ const { type, data, selected, id, dragging, width, height, parentId } = props;
74
+ const nodeVersion = (0, manifest_resolver_cjs_namespaceObject.getNodeTypeVersion)(data);
73
75
  const { onHandleAction: onHandleActionProp, shouldShowAddButtonFn: shouldShowAddButtonFnProp, shouldShowButtonHandleNotchesFn: shouldShowButtonHandleNotchesFnProp, toolbarConfig: toolbarConfigProp, handleConfigurations: handleConfigurationsProp, adornments: adornmentsProp, suggestionType, disabled, executionStatusOverride, labelTooltip, labelBackgroundColor, footerVariant, footerComponent, subLabelComponent, iconComponent } = (0, external_BaseNodeConfigContext_cjs_namespaceObject.useBaseNodeOverrideConfig)();
74
76
  const updateNodeInternals = (0, react_cjs_namespaceObject.useUpdateNodeInternals)();
75
77
  const { updateNodeData, updateNode } = (0, react_cjs_namespaceObject.useReactFlow)();
@@ -87,9 +89,10 @@ const BaseNodeComponent = (props)=>{
87
89
  const isConnecting = (0, react_cjs_namespaceObject.useStore)(selectIsConnecting);
88
90
  const { multipleNodesSelected } = (0, SelectionStateContext_cjs_namespaceObject.useSelectionState)();
89
91
  const { isDarkMode } = (0, CanvasThemeContext_cjs_namespaceObject.useCanvasTheme)();
90
- const manifest = (0, external_react_namespaceObject.useMemo)(()=>nodeTypeRegistry.getManifest(type), [
92
+ const manifest = (0, external_react_namespaceObject.useMemo)(()=>nodeTypeRegistry.getManifest(type, nodeVersion), [
91
93
  type,
92
- nodeTypeRegistry
94
+ nodeTypeRegistry,
95
+ nodeVersion
93
96
  ]);
94
97
  const statusContext = (0, external_react_namespaceObject.useMemo)(()=>({
95
98
  nodeId: id,
@@ -340,7 +343,8 @@ const BaseNodeComponent = (props)=>{
340
343
  showNotches,
341
344
  nodeWidth: width,
342
345
  nodeHeight: height,
343
- shouldShowAddButtonFn
346
+ shouldShowAddButtonFn,
347
+ portalActions: !!parentId
344
348
  });
345
349
  const smartHandleElements = (0, external_react_namespaceObject.useMemo)(()=>{
346
350
  if (!useSmartHandles) return null;
@@ -485,8 +489,10 @@ const BaseNodeComponent = (props)=>{
485
489
  };
486
490
  const BaseNode = /*#__PURE__*/ (0, external_react_namespaceObject.memo)(BaseNodeComponent);
487
491
  exports.BaseNode = __webpack_exports__.BaseNode;
492
+ exports.selectIsConnecting = __webpack_exports__.selectIsConnecting;
488
493
  for(var __rspack_i in __webpack_exports__)if (-1 === [
489
- "BaseNode"
494
+ "BaseNode",
495
+ "selectIsConnecting"
490
496
  ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
491
497
  Object.defineProperty(exports, '__esModule', {
492
498
  value: true
@@ -1,4 +1,5 @@
1
- import type { Node, NodeProps } from '../../xyflow/react.ts';
1
+ import type { Node, NodeProps, ReactFlowState } from '../../xyflow/react.ts';
2
2
  import type { BaseNodeData } from './BaseNode.types';
3
+ export declare const selectIsConnecting: (state: ReactFlowState) => boolean;
3
4
  export declare const BaseNode: import("react").MemoExoticComponent<(props: NodeProps<Node<BaseNodeData>>) => import("react/jsx-runtime").JSX.Element>;
4
5
  //# sourceMappingURL=BaseNode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseNode.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/BaseNode/BaseNode.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAkB,MAAM,0CAA0C,CAAC;AAsChG,OAAO,KAAK,EACV,YAAY,EAIb,MAAM,kBAAkB,CAAC;AA+nB1B,eAAO,MAAM,QAAQ,8CAllBa,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,6CAklBhB,CAAC"}
1
+ {"version":3,"file":"BaseNode.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/BaseNode/BaseNode.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAsChG,OAAO,KAAK,EACV,YAAY,EAIb,MAAM,kBAAkB,CAAC;AAa1B,eAAO,MAAM,kBAAkB,GAAI,OAAO,cAAc,YAAkC,CAAC;AAunB3F,eAAO,MAAM,QAAQ,8CAvlBa,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,6CAulBhB,CAAC"}
@@ -6,7 +6,7 @@ import { useNodeTypeRegistry } from "../../core/index.js";
6
6
  import { useElementValidationStatus, useNodeExecutionState } from "../../hooks/index.js";
7
7
  import { resolveAdornments } from "../../utils/adornment-resolver.js";
8
8
  import { getIcon } from "../../utils/icon-registry.js";
9
- import { resolveDisplay, resolveHandles } from "../../utils/manifest-resolver.js";
9
+ import { getNodeTypeVersion, resolveDisplay, resolveHandles } from "../../utils/manifest-resolver.js";
10
10
  import { resolveToolbar } from "../../utils/toolbar-resolver.js";
11
11
  import { useBaseCanvasMode } from "../BaseCanvas/BaseCanvasModeProvider.js";
12
12
  import { useCanvasTheme } from "../BaseCanvas/CanvasThemeContext.js";
@@ -41,7 +41,8 @@ const getContainerHeight = (height, hasFooter, footerVariant)=>{
41
41
  return height || NODE_HEIGHT_DEFAULT;
42
42
  };
43
43
  const BaseNodeComponent = (props)=>{
44
- const { type, data, selected, id, dragging, width, height } = props;
44
+ const { type, data, selected, id, dragging, width, height, parentId } = props;
45
+ const nodeVersion = getNodeTypeVersion(data);
45
46
  const { onHandleAction: onHandleActionProp, shouldShowAddButtonFn: shouldShowAddButtonFnProp, shouldShowButtonHandleNotchesFn: shouldShowButtonHandleNotchesFnProp, toolbarConfig: toolbarConfigProp, handleConfigurations: handleConfigurationsProp, adornments: adornmentsProp, suggestionType, disabled, executionStatusOverride, labelTooltip, labelBackgroundColor, footerVariant, footerComponent, subLabelComponent, iconComponent } = useBaseNodeOverrideConfig();
46
47
  const updateNodeInternals = useUpdateNodeInternals();
47
48
  const { updateNodeData, updateNode } = useReactFlow();
@@ -59,9 +60,10 @@ const BaseNodeComponent = (props)=>{
59
60
  const isConnecting = useStore(selectIsConnecting);
60
61
  const { multipleNodesSelected } = useSelectionState();
61
62
  const { isDarkMode } = useCanvasTheme();
62
- const manifest = useMemo(()=>nodeTypeRegistry.getManifest(type), [
63
+ const manifest = useMemo(()=>nodeTypeRegistry.getManifest(type, nodeVersion), [
63
64
  type,
64
- nodeTypeRegistry
65
+ nodeTypeRegistry,
66
+ nodeVersion
65
67
  ]);
66
68
  const statusContext = useMemo(()=>({
67
69
  nodeId: id,
@@ -312,7 +314,8 @@ const BaseNodeComponent = (props)=>{
312
314
  showNotches,
313
315
  nodeWidth: width,
314
316
  nodeHeight: height,
315
- shouldShowAddButtonFn
317
+ shouldShowAddButtonFn,
318
+ portalActions: !!parentId
316
319
  });
317
320
  const smartHandleElements = useMemo(()=>{
318
321
  if (!useSmartHandles) return null;
@@ -456,4 +459,4 @@ const BaseNodeComponent = (props)=>{
456
459
  return nodeContent;
457
460
  };
458
461
  const BaseNode = /*#__PURE__*/ memo(BaseNodeComponent);
459
- export { BaseNode };
462
+ export { BaseNode, selectIsConnecting };
@@ -3,6 +3,9 @@ import type { ExecutionState } from '../../types/execution';
3
3
  import type { ValidationState } from '../../types/validation';
4
4
  export type FooterVariant = 'none' | 'button' | 'single' | 'double';
5
5
  export interface BaseNodeData extends Record<string, unknown> {
6
+ nodeType?: string;
7
+ typeVersion?: string;
8
+ parameters?: Record<string, unknown>;
6
9
  display?: {
7
10
  label?: string;
8
11
  subLabel?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"BaseNode.types.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/BaseNode/BaseNode.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEpE,MAAM,WAAW,YAAa,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC3D,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,SAAS,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IAOF,eAAe,CAAC,EAAE,OAAO,CAAC;IAM1B,WAAW,CAAC,EAAE,OAAO,CAAC;IAOtB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB"}
1
+ {"version":3,"file":"BaseNode.types.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/BaseNode/BaseNode.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEpE,MAAM,WAAW,YAAa,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAErC,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,SAAS,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IAOF,eAAe,CAAC,EAAE,OAAO,CAAC;IAM1B,WAAW,CAAC,EAAE,OAAO,CAAC;IAOtB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB"}