@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,343 @@
1
+ import { DEFAULT_NODE_SIZE, DEFAULT_SOURCE_HANDLE_ID, GRID_SPACING } from "../../constants.js";
2
+ import { getNodeDimensions } from "../../utils/container-sizing.js";
3
+ import { isPreviewEdge } from "../../utils/createPreviewNode.js";
4
+ import { clamp, getAbsolutePosition, snapToGrid, snapUpToGrid } from "../../utils/NodeUtils.js";
5
+ import { getLoopChildSafeArea, getVisibleInnerHandleGroups, pickPreferredInnerHandle } from "./LoopNode.helpers.js";
6
+ const LOOP_SEQUENCE_GAP_PX = 3 * GRID_SPACING;
7
+ function LoopNode_sequence_getNodeSize(node, fallback) {
8
+ return node ? getNodeDimensions(node, fallback) : fallback;
9
+ }
10
+ function getNodeCenterY(node, nodeSize) {
11
+ return node.position.y + nodeSize.height / 2;
12
+ }
13
+ function getContainerNode({ sourceNode, targetNode }) {
14
+ if (targetNode && sourceNode.id === targetNode.id) return {
15
+ containerId: sourceNode.id,
16
+ mode: 'first-child'
17
+ };
18
+ const sourceParentId = sourceNode.parentId;
19
+ const targetParentId = targetNode?.parentId;
20
+ if (sourceParentId && (!targetNode || targetNode.id === sourceParentId || targetParentId === sourceParentId)) return {
21
+ containerId: sourceParentId,
22
+ mode: 'sequence'
23
+ };
24
+ if (targetParentId === sourceNode.id) return {
25
+ containerId: sourceNode.id,
26
+ mode: 'sequence'
27
+ };
28
+ return null;
29
+ }
30
+ function matchesSourceHandle(edge, sourceNodeId, sourceHandleId) {
31
+ return edge.source === sourceNodeId && (edge.sourceHandle ?? DEFAULT_SOURCE_HANDLE_ID) === sourceHandleId;
32
+ }
33
+ function isLoopLocalTarget(sourceNode, targetNode) {
34
+ if (!targetNode) return false;
35
+ if (sourceNode.parentId) return targetNode.parentId === sourceNode.parentId || targetNode.id === sourceNode.parentId;
36
+ return targetNode.parentId === sourceNode.id;
37
+ }
38
+ function resolvePreferredLoopContinuationTargetHandle(containerId, reactFlowInstance) {
39
+ const nodesById = new Map(reactFlowInstance.getNodes().map((node)=>[
40
+ node.id,
41
+ node
42
+ ]));
43
+ const containerNode = nodesById.get(containerId);
44
+ if (!containerNode) return null;
45
+ const handleConfiguration = containerNode.data?.handleConfigurations;
46
+ const configuredHandleId = Array.isArray(handleConfiguration) ? pickPreferredInnerHandle(getVisibleInnerHandleGroups(handleConfiguration, {
47
+ ...containerNode.data ?? {},
48
+ nodeId: containerNode.id
49
+ }), 'target')?.handle.id : null;
50
+ const returningEdges = reactFlowInstance.getEdges().filter((edge)=>!isPreviewEdge(edge) && edge.target === containerId).filter((edge)=>nodesById.get(edge.source)?.parentId === containerId);
51
+ if (configuredHandleId && (0 === returningEdges.length || returningEdges.some((edge)=>edge.targetHandle === configuredHandleId))) return {
52
+ targetHandleId: configuredHandleId
53
+ };
54
+ if (0 === returningEdges.length) return null;
55
+ const [firstReturningEdge] = returningEdges;
56
+ const targetHandleId = firstReturningEdge?.targetHandle ?? null;
57
+ return returningEdges.every((edge)=>(edge.targetHandle ?? null) === targetHandleId) ? {
58
+ targetHandleId
59
+ } : null;
60
+ }
61
+ function resolveLoopContinuationTarget({ sourceNodeId, sourceHandleId, reactFlowInstance }) {
62
+ const sourceNode = reactFlowInstance.getNode(sourceNodeId);
63
+ if (!sourceNode) return null;
64
+ const outgoingEdges = reactFlowInstance.getEdges().filter((edge)=>!isPreviewEdge(edge) && matchesSourceHandle(edge, sourceNodeId, sourceHandleId));
65
+ const loopLocalOutgoingEdges = outgoingEdges.filter((edge)=>isLoopLocalTarget(sourceNode, reactFlowInstance.getNode(edge.target)));
66
+ if (1 === outgoingEdges.length && 1 === loopLocalOutgoingEdges.length) {
67
+ const edge = loopLocalOutgoingEdges[0];
68
+ return {
69
+ type: 'target',
70
+ targetNodeId: edge.target,
71
+ targetHandleId: edge.targetHandle,
72
+ removedEdge: edge
73
+ };
74
+ }
75
+ if (loopLocalOutgoingEdges.length > 1) return {
76
+ type: 'ambiguous'
77
+ };
78
+ if (!sourceNode.parentId || outgoingEdges.length > 0) return null;
79
+ const targetHandle = resolvePreferredLoopContinuationTargetHandle(sourceNode.parentId, reactFlowInstance);
80
+ if (!targetHandle) return {
81
+ type: 'ambiguous'
82
+ };
83
+ return {
84
+ type: 'target',
85
+ targetNodeId: sourceNode.parentId,
86
+ targetHandleId: targetHandle.targetHandleId
87
+ };
88
+ }
89
+ function clampTopToSafeArea(top, nodeHeight, safeArea) {
90
+ if (safeArea.height <= nodeHeight) return safeArea.y;
91
+ return clamp(top, safeArea.y, safeArea.y + safeArea.height - nodeHeight);
92
+ }
93
+ function centerInSafeArea(safeArea, nodeSize) {
94
+ return {
95
+ x: Math.max(safeArea.x, snapToGrid(safeArea.x + (safeArea.width - nodeSize.width) / 2)),
96
+ y: Math.max(safeArea.y, snapToGrid(safeArea.y + (safeArea.height - nodeSize.height) / 2))
97
+ };
98
+ }
99
+ function overlaps(position, nodeSize, node, nodeFallbackSize) {
100
+ const existingSize = LoopNode_sequence_getNodeSize(node, nodeFallbackSize);
101
+ 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;
102
+ }
103
+ function avoidSiblingOverlap({ position, nodeSize, containerId, nodes, ignoredNodeIds, safeArea }) {
104
+ const siblings = nodes.filter((node)=>node.parentId === containerId && !ignoredNodeIds.has(node.id));
105
+ if (0 === siblings.length) return position;
106
+ const step = nodeSize.height + LOOP_SEQUENCE_GAP_PX;
107
+ const minY = safeArea.y;
108
+ const maxY = Math.max(safeArea.y, safeArea.y + safeArea.height - nodeSize.height);
109
+ const collides = (candidate)=>siblings.some((sibling)=>overlaps(candidate, nodeSize, sibling, nodeSize));
110
+ if (!collides(position)) return position;
111
+ for(let index = 1; index <= siblings.length + 1; index++){
112
+ const down = {
113
+ ...position,
114
+ y: Math.min(maxY, position.y + step * index)
115
+ };
116
+ if (!collides(down)) return down;
117
+ const up = {
118
+ ...position,
119
+ y: Math.max(minY, position.y - step * index)
120
+ };
121
+ if (!collides(up)) return up;
122
+ }
123
+ return position;
124
+ }
125
+ function getSequencePreviewTopLeft({ containerNode, sourceNode, targetNode, nodes, previewNodeSize, mode, avoidSiblings }) {
126
+ const safeArea = getLoopChildSafeArea(containerNode);
127
+ if ('first-child' === mode) return centerInSafeArea(safeArea, previewNodeSize);
128
+ const sourceSize = LoopNode_sequence_getNodeSize(sourceNode, previewNodeSize);
129
+ const targetSize = LoopNode_sequence_getNodeSize(targetNode, previewNodeSize);
130
+ const sourceIsContainer = sourceNode.id === containerNode.id;
131
+ const targetIsContainer = targetNode?.id === containerNode.id;
132
+ const sourceRight = sourceNode.position.x + sourceSize.width;
133
+ const targetLeft = targetNode?.position.x;
134
+ let x;
135
+ let centerY;
136
+ if (sourceIsContainer && targetNode && !targetIsContainer) {
137
+ x = Math.max(safeArea.x, targetNode.position.x - previewNodeSize.width - LOOP_SEQUENCE_GAP_PX);
138
+ centerY = getNodeCenterY(targetNode, targetSize);
139
+ } else {
140
+ const preferredAfterSourceX = sourceRight + LOOP_SEQUENCE_GAP_PX;
141
+ const canFitBetween = targetNode && !targetIsContainer && void 0 !== targetLeft && targetLeft - sourceRight >= previewNodeSize.width + 2 * LOOP_SEQUENCE_GAP_PX;
142
+ x = canFitBetween ? sourceRight + (targetLeft - sourceRight - previewNodeSize.width) / 2 : preferredAfterSourceX;
143
+ centerY = getNodeCenterY(sourceNode, sourceSize);
144
+ }
145
+ const position = {
146
+ x: Math.max(safeArea.x, snapToGrid(x)),
147
+ y: clampTopToSafeArea(snapToGrid(centerY - previewNodeSize.height / 2), previewNodeSize.height, safeArea)
148
+ };
149
+ if (!avoidSiblings) return position;
150
+ return avoidSiblingOverlap({
151
+ position,
152
+ nodeSize: previewNodeSize,
153
+ containerId: containerNode.id,
154
+ nodes,
155
+ ignoredNodeIds: new Set([
156
+ sourceNode.id,
157
+ ...targetNode ? [
158
+ targetNode.id
159
+ ] : []
160
+ ]),
161
+ safeArea
162
+ });
163
+ }
164
+ function createLoopSequencePreviewPlacement({ sourceNodeId, targetNodeId, reactFlowInstance, previewNodeSize = {
165
+ width: DEFAULT_NODE_SIZE,
166
+ height: DEFAULT_NODE_SIZE
167
+ }, avoidSiblings = false }) {
168
+ const sourceNode = reactFlowInstance.getNode(sourceNodeId);
169
+ const targetNode = targetNodeId ? reactFlowInstance.getNode(targetNodeId) : void 0;
170
+ if (!sourceNode) return null;
171
+ const container = getContainerNode({
172
+ sourceNode,
173
+ targetNode
174
+ });
175
+ if (!container) return null;
176
+ const containerNode = reactFlowInstance.getNode(container.containerId);
177
+ if (!containerNode) return null;
178
+ const containerAbsolutePosition = getAbsolutePosition(containerNode, reactFlowInstance.getNodes());
179
+ const nodes = reactFlowInstance.getNodes();
180
+ const topLeft = getSequencePreviewTopLeft({
181
+ containerNode,
182
+ sourceNode,
183
+ targetNode,
184
+ nodes,
185
+ previewNodeSize,
186
+ mode: container.mode,
187
+ avoidSiblings
188
+ });
189
+ return {
190
+ containerId: container.containerId,
191
+ centerPosition: {
192
+ x: containerAbsolutePosition.x + topLeft.x + previewNodeSize.width / 2,
193
+ y: containerAbsolutePosition.y + topLeft.y + previewNodeSize.height / 2
194
+ }
195
+ };
196
+ }
197
+ function getLoopSequencePlacementFromPreviewGraph(previewNode, connections) {
198
+ const containerId = previewNode.parentId;
199
+ if (!containerId) return null;
200
+ const sourceConnections = connections.filter((connection)=>!connection.addNewNodeAsSource);
201
+ const targetConnections = connections.filter((connection)=>connection.addNewNodeAsSource);
202
+ if (1 !== sourceConnections.length || 1 !== targetConnections.length) return null;
203
+ const sourceNodeId = sourceConnections[0].existingNodeId;
204
+ const targetNodeId = targetConnections[0].existingNodeId;
205
+ return {
206
+ containerId,
207
+ sourceNodeId,
208
+ targetNodeId,
209
+ mode: sourceNodeId === containerId && targetNodeId === containerId ? 'first-child' : 'sequence'
210
+ };
211
+ }
212
+ function resolveLoopAddNodePreview({ sourceNodeId, sourceHandleId, reactFlowInstance }) {
213
+ const loopContinuation = resolveLoopContinuationTarget({
214
+ sourceNodeId,
215
+ sourceHandleId,
216
+ reactFlowInstance
217
+ });
218
+ if (loopContinuation?.type === 'ambiguous') return {
219
+ action: 'skip'
220
+ };
221
+ if (loopContinuation?.type !== 'target') return {
222
+ action: 'continue'
223
+ };
224
+ const loopSequencePlacement = createLoopSequencePreviewPlacement({
225
+ sourceNodeId,
226
+ targetNodeId: loopContinuation.targetNodeId,
227
+ reactFlowInstance,
228
+ avoidSiblings: !loopContinuation.removedEdge
229
+ });
230
+ return {
231
+ action: 'create-preview',
232
+ previewGraphOptions: {
233
+ ...loopSequencePlacement ? {
234
+ position: loopSequencePlacement.centerPosition,
235
+ positionMode: 'center',
236
+ containerId: loopSequencePlacement.containerId,
237
+ ...loopContinuation.removedEdge ? {
238
+ data: {
239
+ originalEdge: loopContinuation.removedEdge
240
+ }
241
+ } : {}
242
+ } : {},
243
+ targetNodeId: loopContinuation.targetNodeId,
244
+ targetHandleId: loopContinuation.targetHandleId,
245
+ ...loopContinuation.removedEdge ? {
246
+ removedEdgeIds: [
247
+ loopContinuation.removedEdge.id
248
+ ]
249
+ } : {}
250
+ }
251
+ };
252
+ }
253
+ function collectDownstreamNodeIds({ targetNodeId, containerId, nodesById, edges }) {
254
+ if (!targetNodeId || targetNodeId === containerId) return [];
255
+ const collectedIds = [];
256
+ const visitedIds = new Set();
257
+ let currentNodeId = targetNodeId;
258
+ while(currentNodeId && !visitedIds.has(currentNodeId)){
259
+ const currentNode = nodesById.get(currentNodeId);
260
+ if (!currentNode || currentNode.parentId !== containerId) break;
261
+ collectedIds.push(currentNodeId);
262
+ visitedIds.add(currentNodeId);
263
+ const nextEdge = edges.find((edge)=>{
264
+ if (isPreviewEdge(edge) || edge.source !== currentNodeId) return false;
265
+ const targetNode = nodesById.get(edge.target);
266
+ return targetNode?.parentId === containerId || edge.target === containerId;
267
+ });
268
+ if (!nextEdge || nextEdge.target === containerId) break;
269
+ currentNodeId = nextEdge.target;
270
+ }
271
+ return collectedIds;
272
+ }
273
+ function getCenteredMaterializedPosition({ containerNode, insertedNodeSize }) {
274
+ const currentContainerSize = getNodeDimensions(containerNode, {
275
+ width: 0,
276
+ height: 0
277
+ });
278
+ const currentSafeArea = getLoopChildSafeArea(containerNode);
279
+ const requiredContainerSize = {
280
+ width: snapUpToGrid(Math.max(currentContainerSize.width, currentSafeArea.padding.left + insertedNodeSize.width + currentSafeArea.padding.right)),
281
+ height: snapUpToGrid(Math.max(currentContainerSize.height, currentSafeArea.padding.top + insertedNodeSize.height + currentSafeArea.padding.bottom))
282
+ };
283
+ const grownSafeArea = getLoopChildSafeArea(containerNode, requiredContainerSize);
284
+ return centerInSafeArea(grownSafeArea, insertedNodeSize);
285
+ }
286
+ function resolveLoopSequenceMaterializedNodes({ nodes, edges, insertedNode, placement, getNodeSize = getNodeDimensions }) {
287
+ if (insertedNode.parentId !== placement.containerId) return null;
288
+ const nodesById = new Map(nodes.map((node)=>[
289
+ node.id,
290
+ node
291
+ ]));
292
+ const containerNode = nodesById.get(placement.containerId);
293
+ if (!containerNode) return null;
294
+ const insertedNodeSize = getNodeSize(insertedNode);
295
+ const safeArea = getLoopChildSafeArea(containerNode);
296
+ let positionedNode = insertedNode;
297
+ if ('first-child' === placement.mode) positionedNode = {
298
+ ...positionedNode,
299
+ position: getCenteredMaterializedPosition({
300
+ containerNode,
301
+ insertedNodeSize
302
+ })
303
+ };
304
+ else {
305
+ const sourceNode = nodesById.get(placement.sourceNodeId);
306
+ const targetNode = placement.targetNodeId ? nodesById.get(placement.targetNodeId) : void 0;
307
+ const sourceSize = getNodeSize(sourceNode ?? insertedNode);
308
+ const targetSize = getNodeSize(targetNode ?? insertedNode);
309
+ const sourceIsContainer = sourceNode?.id === placement.containerId;
310
+ const targetIsContainer = targetNode?.id === placement.containerId;
311
+ const sourceRight = sourceNode ? sourceNode.position.x + sourceSize.width : positionedNode.position.x;
312
+ const baseX = sourceNode && !sourceIsContainer ? sourceRight + LOOP_SEQUENCE_GAP_PX : targetNode && !targetIsContainer ? targetNode.position.x - insertedNodeSize.width - LOOP_SEQUENCE_GAP_PX : positionedNode.position.x;
313
+ const centerY = sourceNode && !sourceIsContainer ? getNodeCenterY(sourceNode, sourceSize) : targetNode && !targetIsContainer ? getNodeCenterY(targetNode, targetSize) : positionedNode.position.y + insertedNodeSize.height / 2;
314
+ positionedNode = {
315
+ ...positionedNode,
316
+ position: {
317
+ x: Math.max(safeArea.x, snapToGrid(baseX)),
318
+ y: clampTopToSafeArea(snapToGrid(centerY - insertedNodeSize.height / 2), insertedNodeSize.height, safeArea)
319
+ }
320
+ };
321
+ }
322
+ const downstreamNodeIds = new Set(collectDownstreamNodeIds({
323
+ targetNodeId: placement.targetNodeId,
324
+ containerId: placement.containerId,
325
+ nodesById,
326
+ edges
327
+ }));
328
+ const targetNode = placement.targetNodeId && placement.targetNodeId !== placement.containerId ? nodesById.get(placement.targetNodeId) : void 0;
329
+ const requiredTargetLeft = positionedNode.position.x + insertedNodeSize.width + LOOP_SEQUENCE_GAP_PX;
330
+ const downstreamShift = targetNode && targetNode.position.x < requiredTargetLeft ? snapUpToGrid(requiredTargetLeft - targetNode.position.x) : 0;
331
+ return nodes.map((node)=>{
332
+ if (node.id === positionedNode.id) return positionedNode;
333
+ if (downstreamShift > 0 && downstreamNodeIds.has(node.id)) return {
334
+ ...node,
335
+ position: {
336
+ ...node.position,
337
+ x: node.position.x + downstreamShift
338
+ }
339
+ };
340
+ return node;
341
+ });
342
+ }
343
+ export { createLoopSequencePreviewPlacement, getLoopSequencePlacementFromPreviewGraph, resolveLoopAddNodePreview, resolveLoopSequenceMaterializedNodes };
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.r = (exports1)=>{
5
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
6
+ value: 'Module'
7
+ });
8
+ Object.defineProperty(exports1, '__esModule', {
9
+ value: true
10
+ });
11
+ };
12
+ })();
13
+ var __webpack_exports__ = {};
14
+ __webpack_require__.r(__webpack_exports__);
15
+ for(var __rspack_i in __webpack_exports__)exports[__rspack_i] = __webpack_exports__[__rspack_i];
16
+ Object.defineProperty(exports, '__esModule', {
17
+ value: true
18
+ });
@@ -0,0 +1,22 @@
1
+ import type { Node, NodeProps } from '../../xyflow/react.ts';
2
+ import type { SuggestionType } from '../../types';
3
+ import type { ElementStatusValues } from '../../types/execution';
4
+ import type { BaseNodeData } from '../BaseNode';
5
+ import type { NodeAdornments } from '../BaseNode/BaseNode.types';
6
+ import type { NodeToolbarConfig } from '../Toolbar';
7
+ export type LoopNodeData = BaseNodeData;
8
+ export interface LoopNodeResizeSize {
9
+ width: number;
10
+ height: number;
11
+ }
12
+ export interface LoopNodeConfig {
13
+ toolbarConfig?: NodeToolbarConfig | null;
14
+ adornments?: NodeAdornments;
15
+ executionStatusOverride?: ElementStatusValues;
16
+ suggestionType?: SuggestionType;
17
+ }
18
+ export interface LoopNodeProps extends NodeProps<Node<LoopNodeData>>, LoopNodeConfig {
19
+ onAddFirstChild?: () => void;
20
+ onResize?: (size: LoopNodeResizeSize) => void;
21
+ }
22
+ //# sourceMappingURL=LoopNode.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoopNode.types.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/LoopNode/LoopNode.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,MAAM,MAAM,YAAY,GAAG,YAAY,CAAC;AAExC,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,aAAa,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACzC,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,uBAAuB,CAAC,EAAE,mBAAmB,CAAC;IAC9C,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED,MAAM,WAAW,aAAc,SAAQ,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,cAAc;IAClF,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;CAC/C"}
@@ -0,0 +1,57 @@
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
+ showCenteredContainerPreview: ()=>showCenteredContainerPreview
28
+ });
29
+ const createPreviewGraph_cjs_namespaceObject = require("../../utils/createPreviewGraph.cjs");
30
+ const external_LoopNode_sequence_cjs_namespaceObject = require("./LoopNode.sequence.cjs");
31
+ function showCenteredContainerPreview({ containerId, reactFlowInstance, previewHandles, trailingEdgeId }) {
32
+ const placement = (0, external_LoopNode_sequence_cjs_namespaceObject.createLoopSequencePreviewPlacement)({
33
+ sourceNodeId: containerId,
34
+ targetNodeId: containerId,
35
+ reactFlowInstance
36
+ });
37
+ if (!placement) return;
38
+ (0, createPreviewGraph_cjs_namespaceObject.showPreviewGraph)({
39
+ sourceNodeId: containerId,
40
+ sourceHandleId: previewHandles.sourceHandleId,
41
+ reactFlowInstance,
42
+ position: placement.centerPosition,
43
+ positionMode: 'center',
44
+ handlePosition: previewHandles.sourceHandlePosition,
45
+ targetNodeId: containerId,
46
+ targetHandleId: previewHandles.targetHandleId,
47
+ containerId: placement.containerId,
48
+ trailingEdgeId
49
+ });
50
+ }
51
+ exports.showCenteredContainerPreview = __webpack_exports__.showCenteredContainerPreview;
52
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
53
+ "showCenteredContainerPreview"
54
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
55
+ Object.defineProperty(exports, '__esModule', {
56
+ value: true
57
+ });
@@ -0,0 +1,9 @@
1
+ import type { ReactFlowInstance } from '../../xyflow/react.ts';
2
+ import type { LoopPreviewConnectionHandles } from './LoopNode.helpers';
3
+ export declare function showCenteredContainerPreview({ containerId, reactFlowInstance, previewHandles, trailingEdgeId, }: {
4
+ containerId: string;
5
+ reactFlowInstance: ReactFlowInstance;
6
+ previewHandles: LoopPreviewConnectionHandles;
7
+ trailingEdgeId?: string;
8
+ }): void;
9
+ //# sourceMappingURL=LoopNodePreview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoopNodePreview.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/LoopNode/LoopNodePreview.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAElF,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAGvE,wBAAgB,4BAA4B,CAAC,EAC3C,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,cAAc,GACf,EAAE;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,cAAc,EAAE,4BAA4B,CAAC;IAC7C,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,QAoBA"}
@@ -0,0 +1,23 @@
1
+ import { showPreviewGraph } from "../../utils/createPreviewGraph.js";
2
+ import { createLoopSequencePreviewPlacement } from "./LoopNode.sequence.js";
3
+ function showCenteredContainerPreview({ containerId, reactFlowInstance, previewHandles, trailingEdgeId }) {
4
+ const placement = createLoopSequencePreviewPlacement({
5
+ sourceNodeId: containerId,
6
+ targetNodeId: containerId,
7
+ reactFlowInstance
8
+ });
9
+ if (!placement) return;
10
+ showPreviewGraph({
11
+ sourceNodeId: containerId,
12
+ sourceHandleId: previewHandles.sourceHandleId,
13
+ reactFlowInstance,
14
+ position: placement.centerPosition,
15
+ positionMode: 'center',
16
+ handlePosition: previewHandles.sourceHandlePosition,
17
+ targetNodeId: containerId,
18
+ targetHandleId: previewHandles.targetHandleId,
19
+ containerId: placement.containerId,
20
+ trailingEdgeId
21
+ });
22
+ }
23
+ export { showCenteredContainerPreview };
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ var __webpack_modules__ = {
3
+ "./LoopCanvasNode" (module) {
4
+ module.exports = require("./LoopCanvasNode.cjs");
5
+ },
6
+ "./LoopNode?d3ac" (module) {
7
+ module.exports = require("./LoopNode.cjs");
8
+ },
9
+ "./LoopNode.helpers" (module) {
10
+ module.exports = require("./LoopNode.helpers.cjs");
11
+ },
12
+ "./LoopNode.types" (module) {
13
+ module.exports = require("./LoopNode.types.cjs");
14
+ }
15
+ };
16
+ var __webpack_module_cache__ = {};
17
+ function __webpack_require__(moduleId) {
18
+ var cachedModule = __webpack_module_cache__[moduleId];
19
+ if (void 0 !== cachedModule) return cachedModule.exports;
20
+ var module = __webpack_module_cache__[moduleId] = {
21
+ exports: {}
22
+ };
23
+ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
24
+ return module.exports;
25
+ }
26
+ (()=>{
27
+ __webpack_require__.n = (module)=>{
28
+ var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
29
+ __webpack_require__.d(getter, {
30
+ a: getter
31
+ });
32
+ return getter;
33
+ };
34
+ })();
35
+ (()=>{
36
+ __webpack_require__.d = (exports1, definition)=>{
37
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
38
+ enumerable: true,
39
+ get: definition[key]
40
+ });
41
+ };
42
+ })();
43
+ (()=>{
44
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
45
+ })();
46
+ (()=>{
47
+ __webpack_require__.r = (exports1)=>{
48
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
49
+ value: 'Module'
50
+ });
51
+ Object.defineProperty(exports1, '__esModule', {
52
+ value: true
53
+ });
54
+ };
55
+ })();
56
+ var __webpack_exports__ = {};
57
+ (()=>{
58
+ __webpack_require__.r(__webpack_exports__);
59
+ var _LoopCanvasNode__rspack_import_0 = __webpack_require__("./LoopCanvasNode");
60
+ var __rspack_reexport = {};
61
+ for(const __rspack_import_key in _LoopCanvasNode__rspack_import_0)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_LoopCanvasNode__rspack_import_0[__rspack_import_key];
62
+ __webpack_require__.d(__webpack_exports__, __rspack_reexport);
63
+ var _LoopNode__rspack_import_1 = __webpack_require__("./LoopNode?d3ac");
64
+ var __rspack_reexport = {};
65
+ for(const __rspack_import_key in _LoopNode__rspack_import_1)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_LoopNode__rspack_import_1[__rspack_import_key];
66
+ __webpack_require__.d(__webpack_exports__, __rspack_reexport);
67
+ var _LoopNode_helpers__rspack_import_2 = __webpack_require__("./LoopNode.helpers");
68
+ var __rspack_reexport = {};
69
+ for(const __rspack_import_key in _LoopNode_helpers__rspack_import_2)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_LoopNode_helpers__rspack_import_2[__rspack_import_key];
70
+ __webpack_require__.d(__webpack_exports__, __rspack_reexport);
71
+ var _LoopNode_types__rspack_import_3 = __webpack_require__("./LoopNode.types");
72
+ var __rspack_reexport = {};
73
+ for(const __rspack_import_key in _LoopNode_types__rspack_import_3)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_LoopNode_types__rspack_import_3[__rspack_import_key];
74
+ __webpack_require__.d(__webpack_exports__, __rspack_reexport);
75
+ })();
76
+ for(var __rspack_i in __webpack_exports__)exports[__rspack_i] = __webpack_exports__[__rspack_i];
77
+ Object.defineProperty(exports, '__esModule', {
78
+ value: true
79
+ });
@@ -0,0 +1,5 @@
1
+ export * from './LoopCanvasNode';
2
+ export * from './LoopNode';
3
+ export * from './LoopNode.helpers';
4
+ export * from './LoopNode.types';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/LoopNode/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from "./LoopCanvasNode.js";
2
+ export * from "./LoopNode.js";
3
+ export * from "./LoopNode.helpers.js";
4
+ export * from "./LoopNode.types.js";
@@ -0,0 +1,63 @@
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
+ NodeViewportOverlay: ()=>NodeViewportOverlay
28
+ });
29
+ const jsx_runtime_namespaceObject = require("react/jsx-runtime");
30
+ const react_cjs_namespaceObject = require("../xyflow/react.cjs");
31
+ const NODE_VIEWPORT_OVERLAY_Z_INDEX = {
32
+ nodeHandleAffordance: 1002,
33
+ nodeToolbar: 1003
34
+ };
35
+ function NodeViewportOverlay({ nodeId, anchor, layer, children }) {
36
+ const internalNode = (0, react_cjs_namespaceObject.useInternalNode)(nodeId);
37
+ const positionAbsolute = internalNode?.internals.positionAbsolute;
38
+ const width = anchor?.width ?? internalNode?.measured?.width ?? internalNode?.width;
39
+ const height = anchor?.height ?? internalNode?.measured?.height ?? internalNode?.height;
40
+ if (!positionAbsolute || null == width || null == height) return children;
41
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(react_cjs_namespaceObject.ViewportPortal, {
42
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
43
+ className: "absolute pointer-events-none",
44
+ style: {
45
+ position: 'absolute',
46
+ left: positionAbsolute.x + (anchor?.left ?? 0),
47
+ top: positionAbsolute.y + (anchor?.top ?? 0),
48
+ width,
49
+ height,
50
+ transform: anchor?.transform,
51
+ zIndex: layer ? NODE_VIEWPORT_OVERLAY_Z_INDEX[layer] : void 0
52
+ },
53
+ children: children
54
+ })
55
+ });
56
+ }
57
+ exports.NodeViewportOverlay = __webpack_exports__.NodeViewportOverlay;
58
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
59
+ "NodeViewportOverlay"
60
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
61
+ Object.defineProperty(exports, '__esModule', {
62
+ value: true
63
+ });
@@ -0,0 +1,22 @@
1
+ import type { CSSProperties, ReactNode } from 'react';
2
+ declare const NODE_VIEWPORT_OVERLAY_Z_INDEX: {
3
+ readonly nodeHandleAffordance: 1002;
4
+ readonly nodeToolbar: 1003;
5
+ };
6
+ type NodeViewportOverlayLayer = keyof typeof NODE_VIEWPORT_OVERLAY_Z_INDEX;
7
+ export type NodeViewportOverlayAnchor = {
8
+ left?: number;
9
+ top?: number;
10
+ width?: number;
11
+ height?: number;
12
+ transform?: CSSProperties['transform'];
13
+ };
14
+ export type NodeViewportOverlayProps = {
15
+ nodeId: string;
16
+ anchor?: NodeViewportOverlayAnchor;
17
+ layer?: NodeViewportOverlayLayer;
18
+ children: ReactNode;
19
+ };
20
+ export declare function NodeViewportOverlay({ nodeId, anchor, layer, children }: NodeViewportOverlayProps): string | number | bigint | boolean | import("react/jsx-runtime").JSX.Element | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | null | undefined;
21
+ export {};
22
+ //# sourceMappingURL=NodeViewportOverlay.d.ts.map