@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
@@ -0,0 +1,386 @@
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
+ resolveLoopAddNodePreview: ()=>resolveLoopAddNodePreview,
28
+ getLoopSequencePlacementFromPreviewGraph: ()=>getLoopSequencePlacementFromPreviewGraph,
29
+ createLoopSequencePreviewPlacement: ()=>createLoopSequencePreviewPlacement,
30
+ resolveLoopSequenceMaterializedNodes: ()=>resolveLoopSequenceMaterializedNodes
31
+ });
32
+ const external_constants_cjs_namespaceObject = require("../../constants.cjs");
33
+ const container_sizing_cjs_namespaceObject = require("../../utils/container-sizing.cjs");
34
+ const createPreviewNode_cjs_namespaceObject = require("../../utils/createPreviewNode.cjs");
35
+ const NodeUtils_cjs_namespaceObject = require("../../utils/NodeUtils.cjs");
36
+ const external_LoopNode_helpers_cjs_namespaceObject = require("./LoopNode.helpers.cjs");
37
+ const LOOP_SEQUENCE_GAP_PX = 3 * external_constants_cjs_namespaceObject.GRID_SPACING;
38
+ function LoopNode_sequence_getNodeSize(node, fallback) {
39
+ return node ? (0, container_sizing_cjs_namespaceObject.getNodeDimensions)(node, fallback) : fallback;
40
+ }
41
+ function getNodeCenterY(node, nodeSize) {
42
+ return node.position.y + nodeSize.height / 2;
43
+ }
44
+ function getContainerNode({ sourceNode, targetNode }) {
45
+ if (targetNode && sourceNode.id === targetNode.id) return {
46
+ containerId: sourceNode.id,
47
+ mode: 'first-child'
48
+ };
49
+ const sourceParentId = sourceNode.parentId;
50
+ const targetParentId = targetNode?.parentId;
51
+ if (sourceParentId && (!targetNode || targetNode.id === sourceParentId || targetParentId === sourceParentId)) return {
52
+ containerId: sourceParentId,
53
+ mode: 'sequence'
54
+ };
55
+ if (targetParentId === sourceNode.id) return {
56
+ containerId: sourceNode.id,
57
+ mode: 'sequence'
58
+ };
59
+ return null;
60
+ }
61
+ function matchesSourceHandle(edge, sourceNodeId, sourceHandleId) {
62
+ return edge.source === sourceNodeId && (edge.sourceHandle ?? external_constants_cjs_namespaceObject.DEFAULT_SOURCE_HANDLE_ID) === sourceHandleId;
63
+ }
64
+ function isLoopLocalTarget(sourceNode, targetNode) {
65
+ if (!targetNode) return false;
66
+ if (sourceNode.parentId) return targetNode.parentId === sourceNode.parentId || targetNode.id === sourceNode.parentId;
67
+ return targetNode.parentId === sourceNode.id;
68
+ }
69
+ function resolvePreferredLoopContinuationTargetHandle(containerId, reactFlowInstance) {
70
+ const nodesById = new Map(reactFlowInstance.getNodes().map((node)=>[
71
+ node.id,
72
+ node
73
+ ]));
74
+ const containerNode = nodesById.get(containerId);
75
+ if (!containerNode) return null;
76
+ const handleConfiguration = containerNode.data?.handleConfigurations;
77
+ const configuredHandleId = Array.isArray(handleConfiguration) ? (0, external_LoopNode_helpers_cjs_namespaceObject.pickPreferredInnerHandle)((0, external_LoopNode_helpers_cjs_namespaceObject.getVisibleInnerHandleGroups)(handleConfiguration, {
78
+ ...containerNode.data ?? {},
79
+ nodeId: containerNode.id
80
+ }), 'target')?.handle.id : null;
81
+ const returningEdges = reactFlowInstance.getEdges().filter((edge)=>!(0, createPreviewNode_cjs_namespaceObject.isPreviewEdge)(edge) && edge.target === containerId).filter((edge)=>nodesById.get(edge.source)?.parentId === containerId);
82
+ if (configuredHandleId && (0 === returningEdges.length || returningEdges.some((edge)=>edge.targetHandle === configuredHandleId))) return {
83
+ targetHandleId: configuredHandleId
84
+ };
85
+ if (0 === returningEdges.length) return null;
86
+ const [firstReturningEdge] = returningEdges;
87
+ const targetHandleId = firstReturningEdge?.targetHandle ?? null;
88
+ return returningEdges.every((edge)=>(edge.targetHandle ?? null) === targetHandleId) ? {
89
+ targetHandleId
90
+ } : null;
91
+ }
92
+ function resolveLoopContinuationTarget({ sourceNodeId, sourceHandleId, reactFlowInstance }) {
93
+ const sourceNode = reactFlowInstance.getNode(sourceNodeId);
94
+ if (!sourceNode) return null;
95
+ const outgoingEdges = reactFlowInstance.getEdges().filter((edge)=>!(0, createPreviewNode_cjs_namespaceObject.isPreviewEdge)(edge) && matchesSourceHandle(edge, sourceNodeId, sourceHandleId));
96
+ const loopLocalOutgoingEdges = outgoingEdges.filter((edge)=>isLoopLocalTarget(sourceNode, reactFlowInstance.getNode(edge.target)));
97
+ if (1 === outgoingEdges.length && 1 === loopLocalOutgoingEdges.length) {
98
+ const edge = loopLocalOutgoingEdges[0];
99
+ return {
100
+ type: 'target',
101
+ targetNodeId: edge.target,
102
+ targetHandleId: edge.targetHandle,
103
+ removedEdge: edge
104
+ };
105
+ }
106
+ if (loopLocalOutgoingEdges.length > 1) return {
107
+ type: 'ambiguous'
108
+ };
109
+ if (!sourceNode.parentId || outgoingEdges.length > 0) return null;
110
+ const targetHandle = resolvePreferredLoopContinuationTargetHandle(sourceNode.parentId, reactFlowInstance);
111
+ if (!targetHandle) return {
112
+ type: 'ambiguous'
113
+ };
114
+ return {
115
+ type: 'target',
116
+ targetNodeId: sourceNode.parentId,
117
+ targetHandleId: targetHandle.targetHandleId
118
+ };
119
+ }
120
+ function clampTopToSafeArea(top, nodeHeight, safeArea) {
121
+ if (safeArea.height <= nodeHeight) return safeArea.y;
122
+ return (0, NodeUtils_cjs_namespaceObject.clamp)(top, safeArea.y, safeArea.y + safeArea.height - nodeHeight);
123
+ }
124
+ function centerInSafeArea(safeArea, nodeSize) {
125
+ return {
126
+ x: Math.max(safeArea.x, (0, NodeUtils_cjs_namespaceObject.snapToGrid)(safeArea.x + (safeArea.width - nodeSize.width) / 2)),
127
+ y: Math.max(safeArea.y, (0, NodeUtils_cjs_namespaceObject.snapToGrid)(safeArea.y + (safeArea.height - nodeSize.height) / 2))
128
+ };
129
+ }
130
+ function overlaps(position, nodeSize, node, nodeFallbackSize) {
131
+ const existingSize = LoopNode_sequence_getNodeSize(node, nodeFallbackSize);
132
+ return node.position.x < position.x + nodeSize.width && node.position.x + existingSize.width > position.x && node.position.y < position.y + nodeSize.height && node.position.y + existingSize.height > position.y;
133
+ }
134
+ function avoidSiblingOverlap({ position, nodeSize, containerId, nodes, ignoredNodeIds, safeArea }) {
135
+ const siblings = nodes.filter((node)=>node.parentId === containerId && !ignoredNodeIds.has(node.id));
136
+ if (0 === siblings.length) return position;
137
+ const step = nodeSize.height + LOOP_SEQUENCE_GAP_PX;
138
+ const minY = safeArea.y;
139
+ const maxY = Math.max(safeArea.y, safeArea.y + safeArea.height - nodeSize.height);
140
+ const collides = (candidate)=>siblings.some((sibling)=>overlaps(candidate, nodeSize, sibling, nodeSize));
141
+ if (!collides(position)) return position;
142
+ for(let index = 1; index <= siblings.length + 1; index++){
143
+ const down = {
144
+ ...position,
145
+ y: Math.min(maxY, position.y + step * index)
146
+ };
147
+ if (!collides(down)) return down;
148
+ const up = {
149
+ ...position,
150
+ y: Math.max(minY, position.y - step * index)
151
+ };
152
+ if (!collides(up)) return up;
153
+ }
154
+ return position;
155
+ }
156
+ function getSequencePreviewTopLeft({ containerNode, sourceNode, targetNode, nodes, previewNodeSize, mode, avoidSiblings }) {
157
+ const safeArea = (0, external_LoopNode_helpers_cjs_namespaceObject.getLoopChildSafeArea)(containerNode);
158
+ if ('first-child' === mode) return centerInSafeArea(safeArea, previewNodeSize);
159
+ const sourceSize = LoopNode_sequence_getNodeSize(sourceNode, previewNodeSize);
160
+ const targetSize = LoopNode_sequence_getNodeSize(targetNode, previewNodeSize);
161
+ const sourceIsContainer = sourceNode.id === containerNode.id;
162
+ const targetIsContainer = targetNode?.id === containerNode.id;
163
+ const sourceRight = sourceNode.position.x + sourceSize.width;
164
+ const targetLeft = targetNode?.position.x;
165
+ let x;
166
+ let centerY;
167
+ if (sourceIsContainer && targetNode && !targetIsContainer) {
168
+ x = Math.max(safeArea.x, targetNode.position.x - previewNodeSize.width - LOOP_SEQUENCE_GAP_PX);
169
+ centerY = getNodeCenterY(targetNode, targetSize);
170
+ } else {
171
+ const preferredAfterSourceX = sourceRight + LOOP_SEQUENCE_GAP_PX;
172
+ const canFitBetween = targetNode && !targetIsContainer && void 0 !== targetLeft && targetLeft - sourceRight >= previewNodeSize.width + 2 * LOOP_SEQUENCE_GAP_PX;
173
+ x = canFitBetween ? sourceRight + (targetLeft - sourceRight - previewNodeSize.width) / 2 : preferredAfterSourceX;
174
+ centerY = getNodeCenterY(sourceNode, sourceSize);
175
+ }
176
+ const position = {
177
+ x: Math.max(safeArea.x, (0, NodeUtils_cjs_namespaceObject.snapToGrid)(x)),
178
+ y: clampTopToSafeArea((0, NodeUtils_cjs_namespaceObject.snapToGrid)(centerY - previewNodeSize.height / 2), previewNodeSize.height, safeArea)
179
+ };
180
+ if (!avoidSiblings) return position;
181
+ return avoidSiblingOverlap({
182
+ position,
183
+ nodeSize: previewNodeSize,
184
+ containerId: containerNode.id,
185
+ nodes,
186
+ ignoredNodeIds: new Set([
187
+ sourceNode.id,
188
+ ...targetNode ? [
189
+ targetNode.id
190
+ ] : []
191
+ ]),
192
+ safeArea
193
+ });
194
+ }
195
+ function createLoopSequencePreviewPlacement({ sourceNodeId, targetNodeId, reactFlowInstance, previewNodeSize = {
196
+ width: external_constants_cjs_namespaceObject.DEFAULT_NODE_SIZE,
197
+ height: external_constants_cjs_namespaceObject.DEFAULT_NODE_SIZE
198
+ }, avoidSiblings = false }) {
199
+ const sourceNode = reactFlowInstance.getNode(sourceNodeId);
200
+ const targetNode = targetNodeId ? reactFlowInstance.getNode(targetNodeId) : void 0;
201
+ if (!sourceNode) return null;
202
+ const container = getContainerNode({
203
+ sourceNode,
204
+ targetNode
205
+ });
206
+ if (!container) return null;
207
+ const containerNode = reactFlowInstance.getNode(container.containerId);
208
+ if (!containerNode) return null;
209
+ const containerAbsolutePosition = (0, NodeUtils_cjs_namespaceObject.getAbsolutePosition)(containerNode, reactFlowInstance.getNodes());
210
+ const nodes = reactFlowInstance.getNodes();
211
+ const topLeft = getSequencePreviewTopLeft({
212
+ containerNode,
213
+ sourceNode,
214
+ targetNode,
215
+ nodes,
216
+ previewNodeSize,
217
+ mode: container.mode,
218
+ avoidSiblings
219
+ });
220
+ return {
221
+ containerId: container.containerId,
222
+ centerPosition: {
223
+ x: containerAbsolutePosition.x + topLeft.x + previewNodeSize.width / 2,
224
+ y: containerAbsolutePosition.y + topLeft.y + previewNodeSize.height / 2
225
+ }
226
+ };
227
+ }
228
+ function getLoopSequencePlacementFromPreviewGraph(previewNode, connections) {
229
+ const containerId = previewNode.parentId;
230
+ if (!containerId) return null;
231
+ const sourceConnections = connections.filter((connection)=>!connection.addNewNodeAsSource);
232
+ const targetConnections = connections.filter((connection)=>connection.addNewNodeAsSource);
233
+ if (1 !== sourceConnections.length || 1 !== targetConnections.length) return null;
234
+ const sourceNodeId = sourceConnections[0].existingNodeId;
235
+ const targetNodeId = targetConnections[0].existingNodeId;
236
+ return {
237
+ containerId,
238
+ sourceNodeId,
239
+ targetNodeId,
240
+ mode: sourceNodeId === containerId && targetNodeId === containerId ? 'first-child' : 'sequence'
241
+ };
242
+ }
243
+ function resolveLoopAddNodePreview({ sourceNodeId, sourceHandleId, reactFlowInstance }) {
244
+ const loopContinuation = resolveLoopContinuationTarget({
245
+ sourceNodeId,
246
+ sourceHandleId,
247
+ reactFlowInstance
248
+ });
249
+ if (loopContinuation?.type === 'ambiguous') return {
250
+ action: 'skip'
251
+ };
252
+ if (loopContinuation?.type !== 'target') return {
253
+ action: 'continue'
254
+ };
255
+ const loopSequencePlacement = createLoopSequencePreviewPlacement({
256
+ sourceNodeId,
257
+ targetNodeId: loopContinuation.targetNodeId,
258
+ reactFlowInstance,
259
+ avoidSiblings: !loopContinuation.removedEdge
260
+ });
261
+ return {
262
+ action: 'create-preview',
263
+ previewGraphOptions: {
264
+ ...loopSequencePlacement ? {
265
+ position: loopSequencePlacement.centerPosition,
266
+ positionMode: 'center',
267
+ containerId: loopSequencePlacement.containerId,
268
+ ...loopContinuation.removedEdge ? {
269
+ data: {
270
+ originalEdge: loopContinuation.removedEdge
271
+ }
272
+ } : {}
273
+ } : {},
274
+ targetNodeId: loopContinuation.targetNodeId,
275
+ targetHandleId: loopContinuation.targetHandleId,
276
+ ...loopContinuation.removedEdge ? {
277
+ removedEdgeIds: [
278
+ loopContinuation.removedEdge.id
279
+ ]
280
+ } : {}
281
+ }
282
+ };
283
+ }
284
+ function collectDownstreamNodeIds({ targetNodeId, containerId, nodesById, edges }) {
285
+ if (!targetNodeId || targetNodeId === containerId) return [];
286
+ const collectedIds = [];
287
+ const visitedIds = new Set();
288
+ let currentNodeId = targetNodeId;
289
+ while(currentNodeId && !visitedIds.has(currentNodeId)){
290
+ const currentNode = nodesById.get(currentNodeId);
291
+ if (!currentNode || currentNode.parentId !== containerId) break;
292
+ collectedIds.push(currentNodeId);
293
+ visitedIds.add(currentNodeId);
294
+ const nextEdge = edges.find((edge)=>{
295
+ if ((0, createPreviewNode_cjs_namespaceObject.isPreviewEdge)(edge) || edge.source !== currentNodeId) return false;
296
+ const targetNode = nodesById.get(edge.target);
297
+ return targetNode?.parentId === containerId || edge.target === containerId;
298
+ });
299
+ if (!nextEdge || nextEdge.target === containerId) break;
300
+ currentNodeId = nextEdge.target;
301
+ }
302
+ return collectedIds;
303
+ }
304
+ function getCenteredMaterializedPosition({ containerNode, insertedNodeSize }) {
305
+ const currentContainerSize = (0, container_sizing_cjs_namespaceObject.getNodeDimensions)(containerNode, {
306
+ width: 0,
307
+ height: 0
308
+ });
309
+ const currentSafeArea = (0, external_LoopNode_helpers_cjs_namespaceObject.getLoopChildSafeArea)(containerNode);
310
+ const requiredContainerSize = {
311
+ width: (0, NodeUtils_cjs_namespaceObject.snapUpToGrid)(Math.max(currentContainerSize.width, currentSafeArea.padding.left + insertedNodeSize.width + currentSafeArea.padding.right)),
312
+ height: (0, NodeUtils_cjs_namespaceObject.snapUpToGrid)(Math.max(currentContainerSize.height, currentSafeArea.padding.top + insertedNodeSize.height + currentSafeArea.padding.bottom))
313
+ };
314
+ const grownSafeArea = (0, external_LoopNode_helpers_cjs_namespaceObject.getLoopChildSafeArea)(containerNode, requiredContainerSize);
315
+ return centerInSafeArea(grownSafeArea, insertedNodeSize);
316
+ }
317
+ function resolveLoopSequenceMaterializedNodes({ nodes, edges, insertedNode, placement, getNodeSize = container_sizing_cjs_namespaceObject.getNodeDimensions }) {
318
+ if (insertedNode.parentId !== placement.containerId) return null;
319
+ const nodesById = new Map(nodes.map((node)=>[
320
+ node.id,
321
+ node
322
+ ]));
323
+ const containerNode = nodesById.get(placement.containerId);
324
+ if (!containerNode) return null;
325
+ const insertedNodeSize = getNodeSize(insertedNode);
326
+ const safeArea = (0, external_LoopNode_helpers_cjs_namespaceObject.getLoopChildSafeArea)(containerNode);
327
+ let positionedNode = insertedNode;
328
+ if ('first-child' === placement.mode) positionedNode = {
329
+ ...positionedNode,
330
+ position: getCenteredMaterializedPosition({
331
+ containerNode,
332
+ insertedNodeSize
333
+ })
334
+ };
335
+ else {
336
+ const sourceNode = nodesById.get(placement.sourceNodeId);
337
+ const targetNode = placement.targetNodeId ? nodesById.get(placement.targetNodeId) : void 0;
338
+ const sourceSize = getNodeSize(sourceNode ?? insertedNode);
339
+ const targetSize = getNodeSize(targetNode ?? insertedNode);
340
+ const sourceIsContainer = sourceNode?.id === placement.containerId;
341
+ const targetIsContainer = targetNode?.id === placement.containerId;
342
+ const sourceRight = sourceNode ? sourceNode.position.x + sourceSize.width : positionedNode.position.x;
343
+ const baseX = sourceNode && !sourceIsContainer ? sourceRight + LOOP_SEQUENCE_GAP_PX : targetNode && !targetIsContainer ? targetNode.position.x - insertedNodeSize.width - LOOP_SEQUENCE_GAP_PX : positionedNode.position.x;
344
+ const centerY = sourceNode && !sourceIsContainer ? getNodeCenterY(sourceNode, sourceSize) : targetNode && !targetIsContainer ? getNodeCenterY(targetNode, targetSize) : positionedNode.position.y + insertedNodeSize.height / 2;
345
+ positionedNode = {
346
+ ...positionedNode,
347
+ position: {
348
+ x: Math.max(safeArea.x, (0, NodeUtils_cjs_namespaceObject.snapToGrid)(baseX)),
349
+ y: clampTopToSafeArea((0, NodeUtils_cjs_namespaceObject.snapToGrid)(centerY - insertedNodeSize.height / 2), insertedNodeSize.height, safeArea)
350
+ }
351
+ };
352
+ }
353
+ const downstreamNodeIds = new Set(collectDownstreamNodeIds({
354
+ targetNodeId: placement.targetNodeId,
355
+ containerId: placement.containerId,
356
+ nodesById,
357
+ edges
358
+ }));
359
+ const targetNode = placement.targetNodeId && placement.targetNodeId !== placement.containerId ? nodesById.get(placement.targetNodeId) : void 0;
360
+ const requiredTargetLeft = positionedNode.position.x + insertedNodeSize.width + LOOP_SEQUENCE_GAP_PX;
361
+ const downstreamShift = targetNode && targetNode.position.x < requiredTargetLeft ? (0, NodeUtils_cjs_namespaceObject.snapUpToGrid)(requiredTargetLeft - targetNode.position.x) : 0;
362
+ return nodes.map((node)=>{
363
+ if (node.id === positionedNode.id) return positionedNode;
364
+ if (downstreamShift > 0 && downstreamNodeIds.has(node.id)) return {
365
+ ...node,
366
+ position: {
367
+ ...node.position,
368
+ x: node.position.x + downstreamShift
369
+ }
370
+ };
371
+ return node;
372
+ });
373
+ }
374
+ exports.createLoopSequencePreviewPlacement = __webpack_exports__.createLoopSequencePreviewPlacement;
375
+ exports.getLoopSequencePlacementFromPreviewGraph = __webpack_exports__.getLoopSequencePlacementFromPreviewGraph;
376
+ exports.resolveLoopAddNodePreview = __webpack_exports__.resolveLoopAddNodePreview;
377
+ exports.resolveLoopSequenceMaterializedNodes = __webpack_exports__.resolveLoopSequenceMaterializedNodes;
378
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
379
+ "createLoopSequencePreviewPlacement",
380
+ "getLoopSequencePlacementFromPreviewGraph",
381
+ "resolveLoopAddNodePreview",
382
+ "resolveLoopSequenceMaterializedNodes"
383
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
384
+ Object.defineProperty(exports, '__esModule', {
385
+ value: true
386
+ });
@@ -0,0 +1,47 @@
1
+ import type { Edge, Node, ReactFlowInstance } from '../../xyflow/react.ts';
2
+ import type { PreviewNodeConnectionInfo } from '../../hooks';
3
+ import type { NodeDimensions } from '../../utils/container-sizing';
4
+ import type { PreviewGraphOverrides } from '../../utils/createPreviewGraph';
5
+ export interface LoopSequencePlacementData {
6
+ containerId: string;
7
+ sourceNodeId: string;
8
+ targetNodeId?: string;
9
+ mode: 'first-child' | 'sequence';
10
+ }
11
+ export interface LoopSequencePreviewPlacement {
12
+ containerId: string;
13
+ centerPosition: {
14
+ x: number;
15
+ y: number;
16
+ };
17
+ }
18
+ export type LoopAddNodePreviewOptions = PreviewGraphOverrides;
19
+ export type LoopAddNodePreviewDecision = {
20
+ action: 'continue';
21
+ } | {
22
+ action: 'create-preview';
23
+ previewGraphOptions: LoopAddNodePreviewOptions;
24
+ } | {
25
+ action: 'skip';
26
+ };
27
+ export declare function createLoopSequencePreviewPlacement({ sourceNodeId, targetNodeId, reactFlowInstance, previewNodeSize, avoidSiblings, }: {
28
+ sourceNodeId: string;
29
+ targetNodeId?: string;
30
+ reactFlowInstance: ReactFlowInstance;
31
+ previewNodeSize?: NodeDimensions;
32
+ avoidSiblings?: boolean;
33
+ }): LoopSequencePreviewPlacement | null;
34
+ export declare function getLoopSequencePlacementFromPreviewGraph(previewNode: Pick<Node, 'parentId'>, connections: PreviewNodeConnectionInfo[]): LoopSequencePlacementData | null;
35
+ export declare function resolveLoopAddNodePreview({ sourceNodeId, sourceHandleId, reactFlowInstance, }: {
36
+ sourceNodeId: string;
37
+ sourceHandleId: string;
38
+ reactFlowInstance: ReactFlowInstance;
39
+ }): LoopAddNodePreviewDecision;
40
+ export declare function resolveLoopSequenceMaterializedNodes({ nodes, edges, insertedNode, placement, getNodeSize, }: {
41
+ nodes: Node[];
42
+ edges: Edge[];
43
+ insertedNode: Node;
44
+ placement: LoopSequencePlacementData;
45
+ getNodeSize?: (node: Node) => NodeDimensions;
46
+ }): Node[] | null;
47
+ //# sourceMappingURL=LoopNode.sequence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoopNode.sequence.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/LoopNode/LoopNode.sequence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAE9F,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEnE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAgB5E,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,aAAa,GAAG,UAAU,CAAC;CAClC;AAED,MAAM,WAAW,4BAA4B;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1C;AAED,MAAM,MAAM,yBAAyB,GAAG,qBAAqB,CAAC;AAS9D,MAAM,MAAM,0BAA0B,GAClC;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,GACtB;IAAE,MAAM,EAAE,gBAAgB,CAAC;IAAC,mBAAmB,EAAE,yBAAyB,CAAA;CAAE,GAC5E;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAmTvB,wBAAgB,kCAAkC,CAAC,EACjD,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,eAAyE,EACzE,aAAqB,GACtB,EAAE;IACD,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,eAAe,CAAC,EAAE,cAAc,CAAC;IACjC,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,GAAG,4BAA4B,GAAG,IAAI,CAiCtC;AAMD,wBAAgB,wCAAwC,CACtD,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,EACnC,WAAW,EAAE,yBAAyB,EAAE,GACvC,yBAAyB,GAAG,IAAI,CAoBlC;AASD,wBAAgB,yBAAyB,CAAC,EACxC,YAAY,EACZ,cAAc,EACd,iBAAiB,GAClB,EAAE;IACD,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,iBAAiB,CAAC;CACtC,GAAG,0BAA0B,CA4C7B;AA2ED,wBAAgB,oCAAoC,CAAC,EACnD,KAAK,EACL,KAAK,EACL,YAAY,EACZ,SAAS,EACT,WAA+B,GAChC,EAAE;IACD,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,YAAY,EAAE,IAAI,CAAC;IACnB,SAAS,EAAE,yBAAyB,CAAC;IACrC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,cAAc,CAAC;CAC9C,GAAG,IAAI,EAAE,GAAG,IAAI,CAqFhB"}