@uipath/apollo-react 4.12.0 → 4.12.1-pr556.9394355

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 (118) hide show
  1. package/dist/canvas/components/AddNodePanel/AddNodeManager.cjs +26 -7
  2. package/dist/canvas/components/AddNodePanel/AddNodeManager.d.ts.map +1 -1
  3. package/dist/canvas/components/AddNodePanel/AddNodeManager.js +26 -7
  4. package/dist/canvas/components/AddNodePanel/createAddNodePreview.cjs +2 -2
  5. package/dist/canvas/components/AddNodePanel/createAddNodePreview.d.ts +8 -1
  6. package/dist/canvas/components/AddNodePanel/createAddNodePreview.d.ts.map +1 -1
  7. package/dist/canvas/components/AddNodePanel/createAddNodePreview.js +2 -2
  8. package/dist/canvas/components/AgentCanvas/agent-flow.manifest.d.ts +1 -0
  9. package/dist/canvas/components/AgentCanvas/agent-flow.manifest.d.ts.map +1 -1
  10. package/dist/canvas/components/BaseNode/BaseNode.cjs +8 -3
  11. package/dist/canvas/components/BaseNode/BaseNode.d.ts +2 -1
  12. package/dist/canvas/components/BaseNode/BaseNode.d.ts.map +1 -1
  13. package/dist/canvas/components/BaseNode/BaseNode.js +5 -3
  14. package/dist/canvas/components/ButtonHandle/ButtonHandle.cjs +115 -34
  15. package/dist/canvas/components/ButtonHandle/ButtonHandle.d.ts +4 -2
  16. package/dist/canvas/components/ButtonHandle/ButtonHandle.d.ts.map +1 -1
  17. package/dist/canvas/components/ButtonHandle/ButtonHandle.js +117 -36
  18. package/dist/canvas/components/ButtonHandle/ButtonHandleStyleUtils.cjs +48 -1
  19. package/dist/canvas/components/ButtonHandle/ButtonHandleStyleUtils.d.ts +4 -0
  20. package/dist/canvas/components/ButtonHandle/ButtonHandleStyleUtils.d.ts.map +1 -1
  21. package/dist/canvas/components/ButtonHandle/ButtonHandleStyleUtils.js +36 -1
  22. package/dist/canvas/components/ButtonHandle/SmartHandle.cjs +1 -1
  23. package/dist/canvas/components/ButtonHandle/SmartHandle.js +1 -1
  24. package/dist/canvas/components/Edges/SequenceEdge.cjs +3 -2
  25. package/dist/canvas/components/Edges/SequenceEdge.d.ts +11 -2
  26. package/dist/canvas/components/Edges/SequenceEdge.d.ts.map +1 -1
  27. package/dist/canvas/components/Edges/SequenceEdge.js +4 -3
  28. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvas.cjs +20 -10
  29. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvas.d.ts +2 -0
  30. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvas.d.ts.map +1 -1
  31. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvas.js +21 -11
  32. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvasWithControls.cjs +5 -8
  33. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvasWithControls.d.ts.map +1 -1
  34. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvasWithControls.js +5 -8
  35. package/dist/canvas/components/LoopNode/LoopCanvasNode.cjs +80 -0
  36. package/dist/canvas/components/LoopNode/LoopCanvasNode.d.ts +6 -0
  37. package/dist/canvas/components/LoopNode/LoopCanvasNode.d.ts.map +1 -0
  38. package/dist/canvas/components/LoopNode/LoopCanvasNode.js +46 -0
  39. package/dist/canvas/components/LoopNode/LoopNode.cjs +440 -0
  40. package/dist/canvas/components/LoopNode/LoopNode.constants.cjs +77 -0
  41. package/dist/canvas/components/LoopNode/LoopNode.constants.d.ts +12 -0
  42. package/dist/canvas/components/LoopNode/LoopNode.constants.d.ts.map +1 -0
  43. package/dist/canvas/components/LoopNode/LoopNode.constants.js +13 -0
  44. package/dist/canvas/components/LoopNode/LoopNode.d.ts +5 -0
  45. package/dist/canvas/components/LoopNode/LoopNode.d.ts.map +1 -0
  46. package/dist/canvas/components/LoopNode/LoopNode.helpers.cjs +110 -0
  47. package/dist/canvas/components/LoopNode/LoopNode.helpers.d.ts +19 -0
  48. package/dist/canvas/components/LoopNode/LoopNode.helpers.d.ts.map +1 -0
  49. package/dist/canvas/components/LoopNode/LoopNode.helpers.js +70 -0
  50. package/dist/canvas/components/LoopNode/LoopNode.js +406 -0
  51. package/dist/canvas/components/LoopNode/LoopNode.types.cjs +18 -0
  52. package/dist/canvas/components/LoopNode/LoopNode.types.d.ts +16 -0
  53. package/dist/canvas/components/LoopNode/LoopNode.types.d.ts.map +1 -0
  54. package/dist/canvas/components/LoopNode/LoopNode.types.js +0 -0
  55. package/dist/canvas/components/LoopNode/LoopNodePreview.cjs +81 -0
  56. package/dist/canvas/components/LoopNode/LoopNodePreview.d.ts +8 -0
  57. package/dist/canvas/components/LoopNode/LoopNodePreview.d.ts.map +1 -0
  58. package/dist/canvas/components/LoopNode/LoopNodePreview.js +44 -0
  59. package/dist/canvas/components/LoopNode/index.cjs +72 -0
  60. package/dist/canvas/components/LoopNode/index.d.ts +4 -0
  61. package/dist/canvas/components/LoopNode/index.d.ts.map +1 -0
  62. package/dist/canvas/components/LoopNode/index.js +3 -0
  63. package/dist/canvas/components/Toolbar/EdgeToolbar/useEdgeToolbarState.cjs +20 -18
  64. package/dist/canvas/components/Toolbar/EdgeToolbar/useEdgeToolbarState.d.ts +2 -1
  65. package/dist/canvas/components/Toolbar/EdgeToolbar/useEdgeToolbarState.d.ts.map +1 -1
  66. package/dist/canvas/components/Toolbar/EdgeToolbar/useEdgeToolbarState.js +21 -19
  67. package/dist/canvas/components/Toolbox/ListView.cjs +3 -2
  68. package/dist/canvas/components/Toolbox/ListView.d.ts +1 -0
  69. package/dist/canvas/components/Toolbox/ListView.d.ts.map +1 -1
  70. package/dist/canvas/components/Toolbox/ListView.js +3 -2
  71. package/dist/canvas/components/Toolbox/Toolbox.cjs +38 -9
  72. package/dist/canvas/components/Toolbox/Toolbox.d.ts.map +1 -1
  73. package/dist/canvas/components/Toolbox/Toolbox.js +38 -9
  74. package/dist/canvas/components/index.cjs +27 -20
  75. package/dist/canvas/components/index.d.ts +1 -0
  76. package/dist/canvas/components/index.d.ts.map +1 -1
  77. package/dist/canvas/components/index.js +1 -0
  78. package/dist/canvas/core/NodeTypeRegistry.cjs +41 -23
  79. package/dist/canvas/core/NodeTypeRegistry.d.ts +8 -4
  80. package/dist/canvas/core/NodeTypeRegistry.d.ts.map +1 -1
  81. package/dist/canvas/core/NodeTypeRegistry.js +41 -23
  82. package/dist/canvas/core/useNodeTypeRegistry.cjs +4 -3
  83. package/dist/canvas/core/useNodeTypeRegistry.d.ts +1 -1
  84. package/dist/canvas/core/useNodeTypeRegistry.d.ts.map +1 -1
  85. package/dist/canvas/core/useNodeTypeRegistry.js +4 -3
  86. package/dist/canvas/hooks/useAddNodeOnConnectEnd.cjs +4 -3
  87. package/dist/canvas/hooks/useAddNodeOnConnectEnd.d.ts.map +1 -1
  88. package/dist/canvas/hooks/useAddNodeOnConnectEnd.js +4 -3
  89. package/dist/canvas/hooks/usePreviewNode.cjs +4 -2
  90. package/dist/canvas/hooks/usePreviewNode.d.ts.map +1 -1
  91. package/dist/canvas/hooks/usePreviewNode.js +4 -2
  92. package/dist/canvas/schema/node-definition/handle.cjs +10 -2
  93. package/dist/canvas/schema/node-definition/handle.d.ts +9 -0
  94. package/dist/canvas/schema/node-definition/handle.d.ts.map +1 -1
  95. package/dist/canvas/schema/node-definition/handle.js +6 -1
  96. package/dist/canvas/schema/node-definition/index.cjs +4 -1
  97. package/dist/canvas/schema/node-definition/index.d.ts +3 -3
  98. package/dist/canvas/schema/node-definition/index.d.ts.map +1 -1
  99. package/dist/canvas/schema/node-definition/index.js +2 -2
  100. package/dist/canvas/schema/node-definition/node-manifest.d.ts +4 -0
  101. package/dist/canvas/schema/node-definition/node-manifest.d.ts.map +1 -1
  102. package/dist/canvas/storybook-utils/manifests/index.d.ts +1 -0
  103. package/dist/canvas/storybook-utils/manifests/index.d.ts.map +1 -1
  104. package/dist/canvas/storybook-utils/manifests/node-definitions.d.ts.map +1 -1
  105. package/dist/canvas/styles/tailwind.canvas.css +1 -1
  106. package/dist/canvas/utils/createPreviewGraph.cjs +94 -0
  107. package/dist/canvas/utils/createPreviewGraph.d.ts +24 -0
  108. package/dist/canvas/utils/createPreviewGraph.d.ts.map +1 -0
  109. package/dist/canvas/utils/createPreviewGraph.js +51 -0
  110. package/dist/canvas/utils/createPreviewNode.cjs +29 -13
  111. package/dist/canvas/utils/createPreviewNode.d.ts +5 -1
  112. package/dist/canvas/utils/createPreviewNode.d.ts.map +1 -1
  113. package/dist/canvas/utils/createPreviewNode.js +23 -13
  114. package/dist/canvas/utils/index.cjs +33 -26
  115. package/dist/canvas/utils/index.d.ts +2 -1
  116. package/dist/canvas/utils/index.d.ts.map +1 -1
  117. package/dist/canvas/utils/index.js +2 -1
  118. package/package.json +1 -1
@@ -34,7 +34,7 @@ const index_cjs_namespaceObject = require("../../core/index.cjs");
34
34
  const canvasStore_cjs_namespaceObject = require("../../stores/canvasStore.cjs");
35
35
  const CanvasEventBus_cjs_namespaceObject = require("../../utils/CanvasEventBus.cjs");
36
36
  const icon_registry_cjs_namespaceObject = require("../../utils/icon-registry.cjs");
37
- const createAddNodePreview_cjs_namespaceObject = require("../AddNodePanel/createAddNodePreview.cjs");
37
+ const LoopNodePreview_cjs_namespaceObject = require("../LoopNode/LoopNodePreview.cjs");
38
38
  const external_HierarchicalCanvas_cjs_namespaceObject = require("./HierarchicalCanvas.cjs");
39
39
  const createDemoCanvases = ()=>{
40
40
  const rootCanvas = {
@@ -332,13 +332,10 @@ const CanvasWithControlsContent = ({ initialCanvases, initialPath, onCanvasesCha
332
332
  const removeEdge = (0, canvasStore_cjs_namespaceObject.useCanvasStore)(canvasStore_cjs_namespaceObject.selectRemoveEdge);
333
333
  const updateNodes = (0, canvasStore_cjs_namespaceObject.useCanvasStore)(canvasStore_cjs_namespaceObject.selectUpdateNodes);
334
334
  (0, external_react_namespaceObject.useEffect)(()=>{
335
- const handleAction = (event)=>{
336
- if (reactFlowInstance) (0, createAddNodePreview_cjs_namespaceObject.createAddNodePreview)(event.nodeId, event.handleId, reactFlowInstance);
337
- };
338
- CanvasEventBus_cjs_namespaceObject.canvasEventBus.on('handle:action', handleAction);
339
- return ()=>{
340
- CanvasEventBus_cjs_namespaceObject.canvasEventBus.off('handle:action', handleAction);
341
- };
335
+ const unsubscribe = CanvasEventBus_cjs_namespaceObject.canvasEventBus.on('handle:action', (event)=>{
336
+ (0, LoopNodePreview_cjs_namespaceObject.applyHandleActionAddPreview)(event, reactFlowInstance);
337
+ });
338
+ return unsubscribe;
342
339
  }, [
343
340
  reactFlowInstance
344
341
  ]);
@@ -1 +1 @@
1
- {"version":3,"file":"HierarchicalCanvasWithControls.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/HierarchicalCanvas/HierarchicalCanvasWithControls.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA6d/B,eAAO,MAAM,8BAA8B,EAAE,KAAK,CAAC,EA8BlD,CAAC"}
1
+ {"version":3,"file":"HierarchicalCanvasWithControls.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/HierarchicalCanvas/HierarchicalCanvasWithControls.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAwd/B,eAAO,MAAM,8BAA8B,EAAE,KAAK,CAAC,EA8BlD,CAAC"}
@@ -6,7 +6,7 @@ import { NodeRegistryProvider } from "../../core/index.js";
6
6
  import { selectAddNode, selectCurrentCanvas, selectCurrentPathLength, selectRemoveEdge, selectRemoveNode, selectUpdateNodes, useCanvasStore } from "../../stores/canvasStore.js";
7
7
  import { canvasEventBus } from "../../utils/CanvasEventBus.js";
8
8
  import { CanvasIcon } from "../../utils/icon-registry.js";
9
- import { createAddNodePreview } from "../AddNodePanel/createAddNodePreview.js";
9
+ import { applyHandleActionAddPreview } from "../LoopNode/LoopNodePreview.js";
10
10
  import { HierarchicalCanvas } from "./HierarchicalCanvas.js";
11
11
  const createDemoCanvases = ()=>{
12
12
  const rootCanvas = {
@@ -304,13 +304,10 @@ const CanvasWithControlsContent = ({ initialCanvases, initialPath, onCanvasesCha
304
304
  const removeEdge = useCanvasStore(selectRemoveEdge);
305
305
  const updateNodes = useCanvasStore(selectUpdateNodes);
306
306
  useEffect(()=>{
307
- const handleAction = (event)=>{
308
- if (reactFlowInstance) createAddNodePreview(event.nodeId, event.handleId, reactFlowInstance);
309
- };
310
- canvasEventBus.on('handle:action', handleAction);
311
- return ()=>{
312
- canvasEventBus.off('handle:action', handleAction);
313
- };
307
+ const unsubscribe = canvasEventBus.on('handle:action', (event)=>{
308
+ applyHandleActionAddPreview(event, reactFlowInstance);
309
+ });
310
+ return unsubscribe;
314
311
  }, [
315
312
  reactFlowInstance
316
313
  ]);
@@ -0,0 +1,80 @@
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
+ LoopCanvasNode: ()=>LoopCanvasNode
28
+ });
29
+ const jsx_runtime_namespaceObject = require("react/jsx-runtime");
30
+ const react_cjs_namespaceObject = require("../../xyflow/react.cjs");
31
+ const external_react_namespaceObject = require("react");
32
+ const canvasStore_cjs_namespaceObject = require("../../stores/canvasStore.cjs");
33
+ const createPreviewNode_cjs_namespaceObject = require("../../utils/createPreviewNode.cjs");
34
+ const NodeUtils_cjs_namespaceObject = require("../../utils/NodeUtils.cjs");
35
+ const external_LoopNode_cjs_namespaceObject = require("./LoopNode.cjs");
36
+ const external_LoopNodePreview_cjs_namespaceObject = require("./LoopNodePreview.cjs");
37
+ function LoopCanvasNodeComponent(props) {
38
+ const reactFlow = (0, react_cjs_namespaceObject.useReactFlow)();
39
+ const currentCanvas = (0, canvasStore_cjs_namespaceObject.useCanvasStore)(canvasStore_cjs_namespaceObject.selectCurrentCanvas);
40
+ const updateNodes = (0, canvasStore_cjs_namespaceObject.useCanvasStore)(canvasStore_cjs_namespaceObject.selectUpdateNodes);
41
+ const handleAddChild = (0, external_react_namespaceObject.useCallback)(({ position })=>{
42
+ const preview = (0, external_LoopNodePreview_cjs_namespaceObject.createCenteredLoopPreview)(props.id, reactFlow, position);
43
+ if (preview) (0, createPreviewNode_cjs_namespaceObject.applyPreviewGraphToReactFlow)(preview, reactFlow);
44
+ }, [
45
+ props.id,
46
+ reactFlow
47
+ ]);
48
+ const handleResize = (0, external_react_namespaceObject.useCallback)(({ width, height })=>{
49
+ if (!currentCanvas) return;
50
+ const nextWidth = (0, NodeUtils_cjs_namespaceObject.snapToGrid)(width);
51
+ const nextHeight = (0, NodeUtils_cjs_namespaceObject.snapToGrid)(height);
52
+ updateNodes(currentCanvas.nodes.map((node)=>node.id !== props.id ? node : {
53
+ ...node,
54
+ width: nextWidth,
55
+ height: nextHeight,
56
+ style: {
57
+ ...node.style ?? {},
58
+ width: nextWidth,
59
+ height: nextHeight
60
+ }
61
+ }));
62
+ }, [
63
+ currentCanvas,
64
+ props.id,
65
+ updateNodes
66
+ ]);
67
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_LoopNode_cjs_namespaceObject.LoopNode, {
68
+ ...props,
69
+ onAddChild: handleAddChild,
70
+ onResize: handleResize
71
+ });
72
+ }
73
+ const LoopCanvasNode = /*#__PURE__*/ (0, external_react_namespaceObject.memo)(LoopCanvasNodeComponent);
74
+ exports.LoopCanvasNode = __webpack_exports__.LoopCanvasNode;
75
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
76
+ "LoopCanvasNode"
77
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
78
+ Object.defineProperty(exports, '__esModule', {
79
+ value: true
80
+ });
@@ -0,0 +1,6 @@
1
+ import type { Node, NodeProps } from '../../xyflow/react.ts';
2
+ import type { LoopNodeData } from './LoopNode.types';
3
+ declare function LoopCanvasNodeComponent(props: NodeProps<Node<LoopNodeData>>): import("react/jsx-runtime").JSX.Element;
4
+ export declare const LoopCanvasNode: import("react").MemoExoticComponent<typeof LoopCanvasNodeComponent>;
5
+ export {};
6
+ //# sourceMappingURL=LoopCanvasNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoopCanvasNode.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/LoopNode/LoopCanvasNode.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAC;AAOhF,OAAO,KAAK,EAAE,YAAY,EAAiB,MAAM,kBAAkB,CAAC;AAGpE,iBAAS,uBAAuB,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,2CA2CpE;AAED,eAAO,MAAM,cAAc,qEAAgC,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { useReactFlow } from "../../xyflow/react.js";
3
+ import { memo, useCallback } from "react";
4
+ import { selectCurrentCanvas, selectUpdateNodes, useCanvasStore } from "../../stores/canvasStore.js";
5
+ import { applyPreviewGraphToReactFlow } from "../../utils/createPreviewNode.js";
6
+ import { snapToGrid } from "../../utils/NodeUtils.js";
7
+ import { LoopNode } from "./LoopNode.js";
8
+ import { createCenteredLoopPreview } from "./LoopNodePreview.js";
9
+ function LoopCanvasNodeComponent(props) {
10
+ const reactFlow = useReactFlow();
11
+ const currentCanvas = useCanvasStore(selectCurrentCanvas);
12
+ const updateNodes = useCanvasStore(selectUpdateNodes);
13
+ const handleAddChild = useCallback(({ position })=>{
14
+ const preview = createCenteredLoopPreview(props.id, reactFlow, position);
15
+ if (preview) applyPreviewGraphToReactFlow(preview, reactFlow);
16
+ }, [
17
+ props.id,
18
+ reactFlow
19
+ ]);
20
+ const handleResize = useCallback(({ width, height })=>{
21
+ if (!currentCanvas) return;
22
+ const nextWidth = snapToGrid(width);
23
+ const nextHeight = snapToGrid(height);
24
+ updateNodes(currentCanvas.nodes.map((node)=>node.id !== props.id ? node : {
25
+ ...node,
26
+ width: nextWidth,
27
+ height: nextHeight,
28
+ style: {
29
+ ...node.style ?? {},
30
+ width: nextWidth,
31
+ height: nextHeight
32
+ }
33
+ }));
34
+ }, [
35
+ currentCanvas,
36
+ props.id,
37
+ updateNodes
38
+ ]);
39
+ return /*#__PURE__*/ jsx(LoopNode, {
40
+ ...props,
41
+ onAddChild: handleAddChild,
42
+ onResize: handleResize
43
+ });
44
+ }
45
+ const LoopCanvasNode = /*#__PURE__*/ memo(LoopCanvasNodeComponent);
46
+ export { LoopCanvasNode };
@@ -0,0 +1,440 @@
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
+ LoopNode: ()=>LoopNode
28
+ });
29
+ const jsx_runtime_namespaceObject = require("react/jsx-runtime");
30
+ const react_cjs_namespaceObject = require("../../xyflow/react.cjs");
31
+ const apollo_wind_namespaceObject = require("@uipath/apollo-wind");
32
+ const external_react_namespaceObject = require("react");
33
+ const index_cjs_namespaceObject = require("../../core/index.cjs");
34
+ const external_hooks_index_cjs_namespaceObject = require("../../hooks/index.cjs");
35
+ const adornment_resolver_cjs_namespaceObject = require("../../utils/adornment-resolver.cjs");
36
+ const createPreviewNode_cjs_namespaceObject = require("../../utils/createPreviewNode.cjs");
37
+ const icon_registry_cjs_namespaceObject = require("../../utils/icon-registry.cjs");
38
+ const manifest_resolver_cjs_namespaceObject = require("../../utils/manifest-resolver.cjs");
39
+ const toolbar_resolver_cjs_namespaceObject = require("../../utils/toolbar-resolver.cjs");
40
+ const BaseCanvasModeProvider_cjs_namespaceObject = require("../BaseCanvas/BaseCanvasModeProvider.cjs");
41
+ const ConnectedHandlesContext_cjs_namespaceObject = require("../BaseCanvas/ConnectedHandlesContext.cjs");
42
+ const SelectionStateContext_cjs_namespaceObject = require("../BaseCanvas/SelectionStateContext.cjs");
43
+ const BaseNode_cjs_namespaceObject = require("../BaseNode/BaseNode.cjs");
44
+ const BaseNodeBadgeSlot_cjs_namespaceObject = require("../BaseNode/BaseNodeBadgeSlot.cjs");
45
+ const BaseNodeContainer_cjs_namespaceObject = require("../BaseNode/BaseNodeContainer.cjs");
46
+ const BaseNodeMissingManifest_cjs_namespaceObject = require("../BaseNode/BaseNodeMissingManifest.cjs");
47
+ const external_ButtonHandle_index_cjs_namespaceObject = require("../ButtonHandle/index.cjs");
48
+ const external_Toolbar_index_cjs_namespaceObject = require("../Toolbar/index.cjs");
49
+ const external_LoopNode_constants_cjs_namespaceObject = require("./LoopNode.constants.cjs");
50
+ const external_LoopNode_helpers_cjs_namespaceObject = require("./LoopNode.helpers.cjs");
51
+ const EMPTY_DATA = {};
52
+ const ENABLE_LOOP_HANDLE_ACTION_BUTTON = (_event)=>{};
53
+ const RESIZE_CONTROLS = [
54
+ {
55
+ position: 'top-left',
56
+ cursor: 'nwse-resize',
57
+ indicatorClassName: 'top-[-5px] left-[-5px]'
58
+ },
59
+ {
60
+ position: 'top-right',
61
+ cursor: 'nesw-resize',
62
+ indicatorClassName: 'top-[-5px] right-[-5px]'
63
+ },
64
+ {
65
+ position: 'bottom-left',
66
+ cursor: 'nesw-resize',
67
+ indicatorClassName: 'bottom-[-5px] left-[-5px]'
68
+ },
69
+ {
70
+ position: 'bottom-right',
71
+ cursor: 'nwse-resize',
72
+ indicatorClassName: 'bottom-[-5px] right-[-5px]'
73
+ }
74
+ ];
75
+ const RESIZE_CONTROL_STYLE = {
76
+ background: 'transparent',
77
+ border: 'none',
78
+ zIndex: 100
79
+ };
80
+ const ADORNMENT_SLOT_POSITIONS = [
81
+ 'topLeft',
82
+ 'topRight',
83
+ 'bottomLeft',
84
+ 'bottomRight'
85
+ ];
86
+ const ADORNMENT_SLOT_SHAPES = {
87
+ topLeft: 'top-left',
88
+ topRight: 'top-right',
89
+ bottomLeft: 'bottom-left',
90
+ bottomRight: 'bottom-right'
91
+ };
92
+ function resolveInteractionState(dragging, selected, isHovered) {
93
+ if (dragging) return 'drag';
94
+ if (selected) return 'selected';
95
+ if (isHovered) return 'hover';
96
+ return 'default';
97
+ }
98
+ function LoopNodeComponent(props) {
99
+ const { id, type = external_LoopNode_constants_cjs_namespaceObject.DEFAULT_LOOP_NODE_TYPE, data, selected = false, dragging = false, width = 0, height = 0, onAddChild, onResize: onResizeCallback } = props;
100
+ const updateNodeInternals = (0, react_cjs_namespaceObject.useUpdateNodeInternals)();
101
+ const nodeTypeRegistry = (0, index_cjs_namespaceObject.useOptionalNodeTypeRegistry)();
102
+ const headerRef = (0, external_react_namespaceObject.useRef)(null);
103
+ const [isHovered, setIsHovered] = (0, external_react_namespaceObject.useState)(false);
104
+ const resolvedData = data ?? EMPTY_DATA;
105
+ const nodeVersion = 'string' == typeof resolvedData.version ? resolvedData.version : void 0;
106
+ const suggestionType = resolvedData.suggestionType;
107
+ const manifest = (0, external_react_namespaceObject.useMemo)(()=>nodeTypeRegistry?.getManifest(type, nodeVersion), [
108
+ nodeTypeRegistry,
109
+ type,
110
+ nodeVersion
111
+ ]);
112
+ const { mode } = (0, BaseCanvasModeProvider_cjs_namespaceObject.useBaseCanvasMode)();
113
+ const connectedHandleIds = (0, ConnectedHandlesContext_cjs_namespaceObject.useConnectedHandles)(id);
114
+ const { multipleNodesSelected } = (0, SelectionStateContext_cjs_namespaceObject.useSelectionState)();
115
+ const isConnecting = (0, react_cjs_namespaceObject.useStore)(BaseNode_cjs_namespaceObject.selectIsConnecting);
116
+ const needsChildCheck = 'design' === mode && !!onAddChild;
117
+ const hasChildNodes = (0, react_cjs_namespaceObject.useStore)((0, external_react_namespaceObject.useCallback)((state)=>!needsChildCheck || state.nodes.some((node)=>node.parentId === id), [
118
+ id,
119
+ needsChildCheck
120
+ ]));
121
+ const executionState = (0, external_hooks_index_cjs_namespaceObject.useNodeExecutionState)(id);
122
+ const validationState = (0, external_hooks_index_cjs_namespaceObject.useElementValidationStatus)(id);
123
+ const statusContext = (0, external_react_namespaceObject.useMemo)(()=>({
124
+ nodeId: id,
125
+ executionState,
126
+ validationState,
127
+ isConnecting,
128
+ isSelected: selected,
129
+ isDragging: dragging,
130
+ mode
131
+ }), [
132
+ dragging,
133
+ executionState,
134
+ id,
135
+ isConnecting,
136
+ mode,
137
+ selected,
138
+ validationState
139
+ ]);
140
+ const executionStatus = 'string' == typeof executionState ? executionState : executionState?.status;
141
+ const display = (0, external_react_namespaceObject.useMemo)(()=>(0, manifest_resolver_cjs_namespaceObject.resolveDisplay)(manifest?.display, {
142
+ ...resolvedData,
143
+ nodeId: id
144
+ }), [
145
+ manifest?.display,
146
+ id,
147
+ resolvedData
148
+ ]);
149
+ const displayTitle = display.label ?? external_LoopNode_constants_cjs_namespaceObject.DEFAULT_LOOP_TITLE;
150
+ const minWidth = external_LoopNode_constants_cjs_namespaceObject.DEFAULT_LOOP_MIN_WIDTH;
151
+ const minHeight = external_LoopNode_constants_cjs_namespaceObject.DEFAULT_LOOP_MIN_HEIGHT;
152
+ const headerIcon = (0, external_react_namespaceObject.useMemo)(()=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(icon_registry_cjs_namespaceObject.CanvasIcon, {
153
+ icon: display.icon ?? external_LoopNode_constants_cjs_namespaceObject.DEFAULT_LOOP_ICON,
154
+ size: 16
155
+ }), [
156
+ display.icon
157
+ ]);
158
+ const toolbarConfig = (0, external_react_namespaceObject.useMemo)(()=>manifest ? (0, toolbar_resolver_cjs_namespaceObject.resolveToolbar)(manifest, statusContext, data) : void 0, [
159
+ data,
160
+ manifest,
161
+ statusContext
162
+ ]);
163
+ const adornments = (0, external_react_namespaceObject.useMemo)(()=>(0, adornment_resolver_cjs_namespaceObject.resolveAdornments)(statusContext), [
164
+ statusContext
165
+ ]);
166
+ const resolvedHandleGroups = (0, external_react_namespaceObject.useMemo)(()=>manifest ? (0, manifest_resolver_cjs_namespaceObject.resolveHandles)(manifest.handleConfiguration, resolvedData) : [], [
167
+ manifest,
168
+ resolvedData
169
+ ]);
170
+ const { outer: outerHandleGroups, inner: innerHandleGroups } = (0, external_react_namespaceObject.useMemo)(()=>(0, external_LoopNode_helpers_cjs_namespaceObject.partitionLoopHandleGroups)(resolvedHandleGroups), [
171
+ resolvedHandleGroups
172
+ ]);
173
+ (0, external_react_namespaceObject.useEffect)(()=>{
174
+ const frameId = requestAnimationFrame(()=>{
175
+ updateNodeInternals(id);
176
+ });
177
+ return ()=>{
178
+ cancelAnimationFrame(frameId);
179
+ };
180
+ }, [
181
+ id,
182
+ innerHandleGroups,
183
+ outerHandleGroups,
184
+ updateNodeInternals,
185
+ width,
186
+ height
187
+ ]);
188
+ const handleResize = (0, external_react_namespaceObject.useCallback)((_event, params)=>{
189
+ onResizeCallback?.({
190
+ width: params.width,
191
+ height: params.height
192
+ });
193
+ }, [
194
+ onResizeCallback
195
+ ]);
196
+ const handleEmptyClick = (0, external_react_namespaceObject.useCallback)(()=>{
197
+ const measuredHeaderHeight = headerRef.current?.getBoundingClientRect().height ?? 0;
198
+ const headerHeight = Math.max(measuredHeaderHeight, external_LoopNode_constants_cjs_namespaceObject.DEFAULT_LOOP_HEADER_HEIGHT_PX);
199
+ onAddChild?.({
200
+ position: (0, external_LoopNode_helpers_cjs_namespaceObject.getLoopBodyCenter)({
201
+ width,
202
+ height,
203
+ headerHeight
204
+ }),
205
+ near: 'mid'
206
+ });
207
+ }, [
208
+ height,
209
+ onAddChild,
210
+ width
211
+ ]);
212
+ const handleMouseEnter = (0, external_react_namespaceObject.useCallback)(()=>setIsHovered(true), []);
213
+ const handleMouseLeave = (0, external_react_namespaceObject.useCallback)(()=>setIsHovered(false), []);
214
+ const shouldShowHandles = isConnecting || selected || isHovered;
215
+ const showHandleAddButtons = 'design' === mode && !multipleNodesSelected && !isConnecting;
216
+ const showResizeControls = selected && !dragging && 'design' === mode;
217
+ const showEmptyStateButton = 'design' === mode && !hasChildNodes && !!onAddChild;
218
+ const interactionState = resolveInteractionState(dragging, selected, isHovered);
219
+ if (!manifest) return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
220
+ className: "relative",
221
+ style: {
222
+ width,
223
+ height,
224
+ minWidth,
225
+ minHeight
226
+ },
227
+ onMouseEnter: handleMouseEnter,
228
+ onMouseLeave: handleMouseLeave,
229
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(BaseNodeMissingManifest_cjs_namespaceObject.MissingManifestNode, {
230
+ type: type,
231
+ isSelected: selected,
232
+ isHovered: isHovered,
233
+ interactionState: interactionState
234
+ })
235
+ });
236
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("div", {
237
+ "data-loop-container": true,
238
+ "data-selected": selected ? 'true' : 'false',
239
+ "data-execution-status": executionStatus,
240
+ "data-interaction-state": interactionState,
241
+ "data-suggestion-type": suggestionType,
242
+ "data-validation-status": validationState?.validationStatus,
243
+ "aria-busy": resolvedData.loading || void 0,
244
+ className: (0, apollo_wind_namespaceObject.cn)('group/loop-shell relative flex h-full w-full flex-col overflow-visible border bg-surface-overlay', 'transition-[border-color,box-shadow,opacity] shadow-(--canvas-node-shadow-rest)', 'border-border-subtle', (0, BaseNodeContainer_cjs_namespaceObject.getStatusBorder)(suggestionType ?? validationState?.validationStatus ?? executionStatus), isHovered && 'shadow-(--canvas-node-shadow-hover) border-border-hover', selected && 'outline outline-foreground-accent-muted', 'drag' === interactionState && 'cursor-grabbing shadow-(--canvas-node-shadow-lifted)'),
245
+ style: {
246
+ width,
247
+ height,
248
+ minWidth,
249
+ minHeight,
250
+ borderRadius: external_LoopNode_constants_cjs_namespaceObject.LOOP_SHELL_RADIUS_PX,
251
+ background: display.background ?? external_LoopNode_constants_cjs_namespaceObject.DEFAULT_LOOP_SHELL_BACKGROUND
252
+ },
253
+ onMouseEnter: handleMouseEnter,
254
+ onMouseLeave: handleMouseLeave,
255
+ children: [
256
+ ADORNMENT_SLOT_POSITIONS.map((slot)=>adornments?.[slot] ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(BaseNodeBadgeSlot_cjs_namespaceObject.BaseBadgeSlot, {
257
+ position: ADORNMENT_SLOT_SHAPES[slot],
258
+ shape: "rectangle",
259
+ children: adornments[slot]
260
+ }, slot) : null),
261
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(ResizeCornerIndicators, {
262
+ selected: showResizeControls
263
+ }),
264
+ showResizeControls ? RESIZE_CONTROLS.map(({ position, cursor })=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(react_cjs_namespaceObject.NodeResizeControl, {
265
+ style: RESIZE_CONTROL_STYLE,
266
+ position: position,
267
+ minWidth: minWidth,
268
+ minHeight: minHeight,
269
+ onResize: handleResize,
270
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
271
+ className: "absolute bottom-0 right-0 h-5 w-5 pointer-events-auto",
272
+ style: {
273
+ cursor
274
+ }
275
+ })
276
+ }, position)) : null,
277
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(Header, {
278
+ headerRef: headerRef,
279
+ title: displayTitle,
280
+ icon: headerIcon,
281
+ loading: !!resolvedData.loading
282
+ }),
283
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(BodyFrame, {
284
+ isEmpty: showEmptyStateButton,
285
+ isLoading: !!resolvedData.loading,
286
+ onAddChild: handleEmptyClick
287
+ }),
288
+ toolbarConfig && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_Toolbar_index_cjs_namespaceObject.NodeToolbar, {
289
+ nodeId: id,
290
+ config: toolbarConfig,
291
+ expanded: selected,
292
+ hidden: dragging || multipleNodesSelected
293
+ }),
294
+ [
295
+ [
296
+ 'outer',
297
+ outerHandleGroups
298
+ ],
299
+ [
300
+ 'inner',
301
+ innerHandleGroups
302
+ ]
303
+ ].map(([variant, groups])=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(HandleGroups, {
304
+ nodeId: id,
305
+ groups: groups,
306
+ variant: variant,
307
+ selected: selected,
308
+ hovered: isHovered,
309
+ shouldShowHandles: shouldShowHandles,
310
+ showAddButton: showHandleAddButtons,
311
+ showNotches: shouldShowHandles,
312
+ nodeWidth: width,
313
+ nodeHeight: height,
314
+ connectedHandleIds: connectedHandleIds
315
+ }, variant))
316
+ ]
317
+ });
318
+ }
319
+ const LoopNode = /*#__PURE__*/ (0, external_react_namespaceObject.memo)(LoopNodeComponent);
320
+ function Header({ headerRef, title, icon, loading }) {
321
+ const titleContent = loading ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
322
+ className: "h-5 w-28 animate-pulse rounded bg-(--canvas-background-overlay)"
323
+ }) : /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("span", {
324
+ className: "truncate text-[14px] font-semibold tracking-[-0.15px]",
325
+ children: title
326
+ });
327
+ let iconContent = null;
328
+ if (loading) iconContent = /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
329
+ className: "h-4 w-4 shrink-0 animate-pulse rounded bg-(--canvas-background-overlay)"
330
+ });
331
+ else if (icon) iconContent = /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("span", {
332
+ className: "shrink-0 text-foreground",
333
+ "aria-hidden": true,
334
+ children: icon
335
+ });
336
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
337
+ ref: headerRef,
338
+ className: "flex shrink-0 items-center justify-between gap-2.5 pl-4.5 pr-5 pt-3.5 text-foreground cursor-grab active:cursor-grabbing",
339
+ "data-testid": "loop-node-header",
340
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("div", {
341
+ className: "flex min-w-0 items-center gap-2",
342
+ children: [
343
+ iconContent,
344
+ titleContent
345
+ ]
346
+ })
347
+ });
348
+ }
349
+ function EmptyState({ onAddChild }) {
350
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("button", {
351
+ type: "button",
352
+ onClick: onAddChild,
353
+ "aria-label": "Add node to loop",
354
+ className: (0, apollo_wind_namespaceObject.cn)('nodrag nopan', 'pointer-events-auto flex h-8 w-8 items-center justify-center rounded-xl', 'border border-border bg-surface-overlay text-foreground', 'shadow-[0_4px_24px_rgba(0,0,0,0.25)]', 'transition-colors', 'hover:bg-surface-hover hover:border-brand'),
355
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(icon_registry_cjs_namespaceObject.CanvasIcon, {
356
+ icon: "plus",
357
+ size: 14
358
+ })
359
+ });
360
+ }
361
+ function BodyFrame({ isEmpty, isLoading, onAddChild }) {
362
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("div", {
363
+ "data-testid": "loop-body-frame",
364
+ "data-empty": isEmpty ? 'true' : 'false',
365
+ className: (0, apollo_wind_namespaceObject.cn)('relative flex flex-1 rounded-[26px] border border-dashed', 'pointer-events-none', isEmpty && 'items-center justify-center'),
366
+ style: {
367
+ margin: external_LoopNode_constants_cjs_namespaceObject.LOOP_FRAME_INSET_PX,
368
+ background: external_LoopNode_constants_cjs_namespaceObject.DEFAULT_LOOP_FRAME_BACKGROUND,
369
+ borderColor: external_LoopNode_constants_cjs_namespaceObject.DEFAULT_LOOP_FRAME_BORDER
370
+ },
371
+ children: [
372
+ isLoading ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
373
+ className: "m-6 h-14 w-full animate-pulse rounded-[18px] bg-(--canvas-background-overlay)"
374
+ }) : null,
375
+ isEmpty ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(EmptyState, {
376
+ onAddChild: onAddChild
377
+ }) : null
378
+ ]
379
+ });
380
+ }
381
+ function ResizeCornerIndicators({ selected }) {
382
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(jsx_runtime_namespaceObject.Fragment, {
383
+ children: RESIZE_CONTROLS.map(({ position, indicatorClassName })=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
384
+ "aria-hidden": true,
385
+ className: (0, apollo_wind_namespaceObject.cn)('pointer-events-none absolute h-1.5 w-1.5 rounded-[1px] border border-brand bg-background transition-opacity', indicatorClassName, selected ? 'opacity-100' : 'opacity-0')
386
+ }, position))
387
+ });
388
+ }
389
+ function HandleGroups({ nodeId, variant, groups, selected, hovered, shouldShowHandles, showAddButton, showNotches, nodeWidth, nodeHeight, connectedHandleIds }) {
390
+ if (0 === groups.length) return null;
391
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(jsx_runtime_namespaceObject.Fragment, {
392
+ children: groups.map((group, groupIndex)=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(HandleGroup, {
393
+ nodeId: nodeId,
394
+ variant: variant,
395
+ group: group,
396
+ selected: selected,
397
+ hovered: hovered,
398
+ shouldShowHandles: shouldShowHandles,
399
+ showAddButton: showAddButton,
400
+ showNotches: showNotches,
401
+ nodeWidth: nodeWidth,
402
+ nodeHeight: nodeHeight,
403
+ connectedHandleIds: connectedHandleIds
404
+ }, `${variant}:${group.position}:${groupIndex}`))
405
+ });
406
+ }
407
+ function HandleGroup({ nodeId, variant, group, selected, hovered, shouldShowHandles, showAddButton, showNotches, nodeWidth, nodeHeight, connectedHandleIds }) {
408
+ const groupVisible = shouldShowHandles && (group.visible ?? true);
409
+ const enhancedHandles = (0, external_react_namespaceObject.useMemo)(()=>group.handles.map((handle)=>({
410
+ ...handle,
411
+ showHandle: connectedHandleIds.has(handle.id) || groupVisible,
412
+ showButton: 'inner' === variant && 'source' === handle.type ? false : handle.showButton,
413
+ onAction: handle.onAction ?? ('inner' !== variant && 'source' === handle.type && handle.showButton ? ENABLE_LOOP_HANDLE_ACTION_BUTTON : void 0)
414
+ })), [
415
+ group.handles,
416
+ connectedHandleIds,
417
+ groupVisible,
418
+ variant
419
+ ]);
420
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_ButtonHandle_index_cjs_namespaceObject.ButtonHandles, {
421
+ nodeId: nodeId,
422
+ handles: enhancedHandles,
423
+ position: group.position,
424
+ connectionPosition: 'inner' === variant ? (0, createPreviewNode_cjs_namespaceObject.getOppositePosition)(group.position) : group.position,
425
+ selected: selected,
426
+ hovered: hovered,
427
+ showAddButton: showAddButton,
428
+ showNotches: showNotches,
429
+ customPositionAndOffsets: group.customPositionAndOffsets,
430
+ nodeWidth: nodeWidth,
431
+ nodeHeight: nodeHeight
432
+ });
433
+ }
434
+ exports.LoopNode = __webpack_exports__.LoopNode;
435
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
436
+ "LoopNode"
437
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
438
+ Object.defineProperty(exports, '__esModule', {
439
+ value: true
440
+ });