@uipath/apollo-react 3.62.1 → 3.63.0-pr431.329c320

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 (45) hide show
  1. package/dist/canvas/components/CanvasPerformance.stories.cjs +360 -0
  2. package/dist/canvas/components/CanvasPerformance.stories.d.ts +6 -0
  3. package/dist/canvas/components/CanvasPerformance.stories.d.ts.map +1 -0
  4. package/dist/canvas/components/CanvasPerformance.stories.js +323 -0
  5. package/dist/canvas/components/NodePropertiesPanel/hooks/index.cjs +4 -1
  6. package/dist/canvas/components/NodePropertiesPanel/hooks/index.d.ts +1 -1
  7. package/dist/canvas/components/NodePropertiesPanel/hooks/index.d.ts.map +1 -1
  8. package/dist/canvas/components/NodePropertiesPanel/hooks/index.js +2 -2
  9. package/dist/canvas/components/NodePropertiesPanel/hooks/useNodeSelection.cjs +27 -6
  10. package/dist/canvas/components/NodePropertiesPanel/hooks/useNodeSelection.d.ts +3 -0
  11. package/dist/canvas/components/NodePropertiesPanel/hooks/useNodeSelection.d.ts.map +1 -1
  12. package/dist/canvas/components/NodePropertiesPanel/hooks/useNodeSelection.js +23 -5
  13. package/dist/canvas/components/StageNode/DraggableTask.cjs +6 -4
  14. package/dist/canvas/components/StageNode/DraggableTask.d.ts +1 -1
  15. package/dist/canvas/components/StageNode/DraggableTask.d.ts.map +1 -1
  16. package/dist/canvas/components/StageNode/DraggableTask.js +6 -4
  17. package/dist/canvas/components/StageNode/DraggableTask.types.d.ts +1 -2
  18. package/dist/canvas/components/StageNode/DraggableTask.types.d.ts.map +1 -1
  19. package/dist/canvas/components/StageNode/StageEdge.cjs +34 -11
  20. package/dist/canvas/components/StageNode/StageEdge.d.ts +2 -1
  21. package/dist/canvas/components/StageNode/StageEdge.d.ts.map +1 -1
  22. package/dist/canvas/components/StageNode/StageEdge.js +35 -12
  23. package/dist/canvas/components/StageNode/StageNode.cjs +69 -38
  24. package/dist/canvas/components/StageNode/StageNode.d.ts +1 -1
  25. package/dist/canvas/components/StageNode/StageNode.d.ts.map +1 -1
  26. package/dist/canvas/components/StageNode/StageNode.js +71 -40
  27. package/dist/canvas/components/StageNode/StageNode.stories.cjs +116 -157
  28. package/dist/canvas/components/StageNode/StageNode.stories.d.ts.map +1 -1
  29. package/dist/canvas/components/StageNode/StageNode.stories.js +112 -153
  30. package/dist/canvas/components/StageNode/StageNode.stories.utils.cjs +42 -0
  31. package/dist/canvas/components/StageNode/StageNode.stories.utils.d.ts +3 -0
  32. package/dist/canvas/components/StageNode/StageNode.stories.utils.d.ts.map +1 -0
  33. package/dist/canvas/components/StageNode/StageNode.stories.utils.js +8 -0
  34. package/dist/canvas/components/StageNode/StageNode.types.d.ts +9 -1
  35. package/dist/canvas/components/StageNode/StageNode.types.d.ts.map +1 -1
  36. package/dist/canvas/components/StageNode/TaskMenu.cjs +13 -15
  37. package/dist/canvas/components/StageNode/TaskMenu.d.ts +1 -1
  38. package/dist/canvas/components/StageNode/TaskMenu.d.ts.map +1 -1
  39. package/dist/canvas/components/StageNode/TaskMenu.js +14 -16
  40. package/dist/canvas/components/TaskIcon/TaskIcon.styles.cjs +1 -1
  41. package/dist/canvas/components/TaskIcon/TaskIcon.styles.js +1 -1
  42. package/dist/canvas/icons/CaseManagementProject.cjs +9 -18
  43. package/dist/canvas/icons/CaseManagementProject.d.ts.map +1 -1
  44. package/dist/canvas/icons/CaseManagementProject.js +9 -18
  45. package/package.json +3 -3
@@ -24,6 +24,7 @@ var __webpack_require__ = {};
24
24
  var __webpack_exports__ = {};
25
25
  __webpack_require__.r(__webpack_exports__);
26
26
  __webpack_require__.d(__webpack_exports__, {
27
+ useSetNodeSelection: ()=>external_useNodeSelection_cjs_namespaceObject.useSetNodeSelection,
27
28
  useNodeSelection: ()=>external_useNodeSelection_cjs_namespaceObject.useNodeSelection,
28
29
  useNodeConfiguration: ()=>external_useNodeConfiguration_cjs_namespaceObject.useNodeConfiguration
29
30
  });
@@ -31,9 +32,11 @@ const external_useNodeConfiguration_cjs_namespaceObject = require("./useNodeConf
31
32
  const external_useNodeSelection_cjs_namespaceObject = require("./useNodeSelection.cjs");
32
33
  exports.useNodeConfiguration = __webpack_exports__.useNodeConfiguration;
33
34
  exports.useNodeSelection = __webpack_exports__.useNodeSelection;
35
+ exports.useSetNodeSelection = __webpack_exports__.useSetNodeSelection;
34
36
  for(var __rspack_i in __webpack_exports__)if (-1 === [
35
37
  "useNodeConfiguration",
36
- "useNodeSelection"
38
+ "useNodeSelection",
39
+ "useSetNodeSelection"
37
40
  ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
38
41
  Object.defineProperty(exports, '__esModule', {
39
42
  value: true
@@ -1,3 +1,3 @@
1
1
  export { useNodeConfiguration } from './useNodeConfiguration';
2
- export { useNodeSelection } from './useNodeSelection';
2
+ export { useNodeSelection, useSetNodeSelection } from './useNodeSelection';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/canvas/components/NodePropertiesPanel/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/canvas/components/NodePropertiesPanel/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1,3 +1,3 @@
1
1
  import { useNodeConfiguration } from "./useNodeConfiguration.js";
2
- import { useNodeSelection } from "./useNodeSelection.js";
3
- export { useNodeConfiguration, useNodeSelection };
2
+ import { useNodeSelection, useSetNodeSelection } from "./useNodeSelection.js";
3
+ export { useNodeConfiguration, useNodeSelection, useSetNodeSelection };
@@ -24,10 +24,21 @@ var __webpack_require__ = {};
24
24
  var __webpack_exports__ = {};
25
25
  __webpack_require__.r(__webpack_exports__);
26
26
  __webpack_require__.d(__webpack_exports__, {
27
- useNodeSelection: ()=>useNodeSelection
27
+ useNodeSelection: ()=>useNodeSelection,
28
+ useSetNodeSelection: ()=>useSetNodeSelection
28
29
  });
29
30
  const react_cjs_namespaceObject = require("../../../xyflow/react.cjs");
30
31
  const external_react_namespaceObject = require("react");
32
+ function applySelection(nodes, nodeId) {
33
+ return nodes.map((node)=>{
34
+ const shouldBeSelected = node.id === nodeId;
35
+ if (node.selected === shouldBeSelected) return node;
36
+ return {
37
+ ...node,
38
+ selected: shouldBeSelected
39
+ };
40
+ });
41
+ }
31
42
  function useNodeSelection(nodeId, maintainSelection = true) {
32
43
  const nodes = (0, react_cjs_namespaceObject.useNodes)();
33
44
  const { setNodes } = (0, react_cjs_namespaceObject.useReactFlow)();
@@ -40,10 +51,7 @@ function useNodeSelection(nodeId, maintainSelection = true) {
40
51
  ])
41
52
  });
42
53
  (0, external_react_namespaceObject.useEffect)(()=>{
43
- if (maintainSelection && selectedNodeId) setNodes((nds)=>nds.map((node)=>({
44
- ...node,
45
- selected: node.id === selectedNodeId
46
- })));
54
+ if (maintainSelection && selectedNodeId) setNodes((nds)=>applySelection(nds, selectedNodeId));
47
55
  }, [
48
56
  selectedNodeId,
49
57
  maintainSelection,
@@ -56,9 +64,22 @@ function useNodeSelection(nodeId, maintainSelection = true) {
56
64
  selectedNode
57
65
  };
58
66
  }
67
+ function useSetNodeSelection() {
68
+ const { setNodes } = (0, react_cjs_namespaceObject.useReactFlow)();
69
+ const setSelectedNodeId = (0, external_react_namespaceObject.useCallback)((nodeId)=>{
70
+ setNodes((nds)=>applySelection(nds, nodeId));
71
+ }, [
72
+ setNodes
73
+ ]);
74
+ return {
75
+ setSelectedNodeId
76
+ };
77
+ }
59
78
  exports.useNodeSelection = __webpack_exports__.useNodeSelection;
79
+ exports.useSetNodeSelection = __webpack_exports__.useSetNodeSelection;
60
80
  for(var __rspack_i in __webpack_exports__)if (-1 === [
61
- "useNodeSelection"
81
+ "useNodeSelection",
82
+ "useSetNodeSelection"
62
83
  ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
63
84
  Object.defineProperty(exports, '__esModule', {
64
85
  value: true
@@ -4,4 +4,7 @@ export declare function useNodeSelection(nodeId?: string, maintainSelection?: bo
4
4
  setSelectedNodeId: import("react").Dispatch<import("react").SetStateAction<string | null>>;
5
5
  selectedNode: ConfigurableNode | undefined;
6
6
  };
7
+ export declare function useSetNodeSelection(): {
8
+ setSelectedNodeId: (nodeId: string) => void;
9
+ };
7
10
  //# sourceMappingURL=useNodeSelection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useNodeSelection.d.ts","sourceRoot":"","sources":["../../../../../src/canvas/components/NodePropertiesPanel/hooks/useNodeSelection.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAErE,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,iBAAiB,UAAO;;;;EAwCzE"}
1
+ {"version":3,"file":"useNodeSelection.d.ts","sourceRoot":"","sources":["../../../../../src/canvas/components/NodePropertiesPanel/hooks/useNodeSelection.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAUrE,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,iBAAiB,UAAO;;;;EAmCzE;AAOD,wBAAgB,mBAAmB;gCAItB,MAAM;EAOlB"}
@@ -1,5 +1,15 @@
1
1
  import { useNodes, useOnSelectionChange, useReactFlow } from "../../../xyflow/react.js";
2
2
  import { useCallback, useEffect, useState } from "react";
3
+ function applySelection(nodes, nodeId) {
4
+ return nodes.map((node)=>{
5
+ const shouldBeSelected = node.id === nodeId;
6
+ if (node.selected === shouldBeSelected) return node;
7
+ return {
8
+ ...node,
9
+ selected: shouldBeSelected
10
+ };
11
+ });
12
+ }
3
13
  function useNodeSelection(nodeId, maintainSelection = true) {
4
14
  const nodes = useNodes();
5
15
  const { setNodes } = useReactFlow();
@@ -12,10 +22,7 @@ function useNodeSelection(nodeId, maintainSelection = true) {
12
22
  ])
13
23
  });
14
24
  useEffect(()=>{
15
- if (maintainSelection && selectedNodeId) setNodes((nds)=>nds.map((node)=>({
16
- ...node,
17
- selected: node.id === selectedNodeId
18
- })));
25
+ if (maintainSelection && selectedNodeId) setNodes((nds)=>applySelection(nds, selectedNodeId));
19
26
  }, [
20
27
  selectedNodeId,
21
28
  maintainSelection,
@@ -28,4 +35,15 @@ function useNodeSelection(nodeId, maintainSelection = true) {
28
35
  selectedNode
29
36
  };
30
37
  }
31
- export { useNodeSelection };
38
+ function useSetNodeSelection() {
39
+ const { setNodes } = useReactFlow();
40
+ const setSelectedNodeId = useCallback((nodeId)=>{
41
+ setNodes((nds)=>applySelection(nds, nodeId));
42
+ }, [
43
+ setNodes
44
+ ]);
45
+ return {
46
+ setSelectedNodeId
47
+ };
48
+ }
49
+ export { useNodeSelection, useSetNodeSelection };
@@ -41,6 +41,7 @@ const sortable_namespaceObject = require("@dnd-kit/sortable");
41
41
  const utilities_namespaceObject = require("@dnd-kit/utilities");
42
42
  const apollo_core_namespaceObject = require("@uipath/apollo-core");
43
43
  const index_cjs_namespaceObject = require("../../layouts/index.cjs");
44
+ const react_cjs_namespaceObject = require("../../xyflow/react.cjs");
44
45
  const external_material_index_cjs_namespaceObject = require("../../../material/index.cjs");
45
46
  const external_debounce_namespaceObject = require("debounce");
46
47
  var external_debounce_default = /*#__PURE__*/ __webpack_require__.n(external_debounce_namespaceObject);
@@ -182,8 +183,9 @@ const TaskContent = /*#__PURE__*/ (0, external_react_namespaceObject.memo)(({ ta
182
183
  ]
183
184
  })
184
185
  }));
185
- const DraggableTaskComponent = ({ task, taskExecution, isSelected, isParallel, contextMenuItems, onTaskClick, onMenuOpen, onTaskPlay, isDragDisabled, projectedDepth, zoom = 1 })=>{
186
+ const DraggableTaskComponent = ({ task, taskExecution, isSelected, isParallel, getContextMenuItems, onTaskClick, onMenuOpen, onTaskPlay, isDragDisabled, projectedDepth })=>{
186
187
  const [isMenuOpen, setIsMenuOpen] = (0, external_react_namespaceObject.useState)(false);
188
+ const zoom = (0, react_cjs_namespaceObject.useStore)((s)=>s.transform[2]);
187
189
  const taskRef = (0, external_react_namespaceObject.useRef)(null);
188
190
  const menuRef = (0, external_react_namespaceObject.useRef)(null);
189
191
  const [playLoading, setPlayLoading] = (0, external_react_namespaceObject.useState)(false);
@@ -266,7 +268,7 @@ const DraggableTaskComponent = ({ task, taskExecution, isSelected, isParallel, c
266
268
  isParallel: isParallel,
267
269
  isDragEnabled: !isDragDisabled,
268
270
  onClick: handleClick,
269
- ...contextMenuItems.length > 0 && {
271
+ ...getContextMenuItems && {
270
272
  onContextMenu: handleContextMenu
271
273
  },
272
274
  children: [
@@ -313,10 +315,10 @@ const DraggableTaskComponent = ({ task, taskExecution, isSelected, isParallel, c
313
315
  })
314
316
  })
315
317
  }),
316
- contextMenuItems.length > 0 && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskMenu_cjs_namespaceObject.TaskMenu, {
318
+ getContextMenuItems && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskMenu_cjs_namespaceObject.TaskMenu, {
317
319
  ref: menuRef,
318
320
  taskId: task.id,
319
- contextMenuItems: contextMenuItems,
321
+ getContextMenuItems: getContextMenuItems,
320
322
  onMenuOpenChange: handleMenuOpenChange,
321
323
  onMenuOpen: onMenuOpen,
322
324
  taskRef: taskRef
@@ -1,4 +1,4 @@
1
1
  import type { DraggableTaskProps, TaskContentProps } from './DraggableTask.types';
2
2
  export declare const TaskContent: import("react").MemoExoticComponent<({ task, taskExecution, isDragging }: TaskContentProps) => import("react/jsx-runtime").JSX.Element>;
3
- export declare const DraggableTask: import("react").MemoExoticComponent<({ task, taskExecution, isSelected, isParallel, contextMenuItems, onTaskClick, onMenuOpen, onTaskPlay, isDragDisabled, projectedDepth, zoom, }: DraggableTaskProps) => import("react/jsx-runtime").JSX.Element>;
3
+ export declare const DraggableTask: import("react").MemoExoticComponent<({ task, taskExecution, isSelected, isParallel, getContextMenuItems, onTaskClick, onMenuOpen, onTaskPlay, isDragDisabled, projectedDepth, }: DraggableTaskProps) => import("react/jsx-runtime").JSX.Element>;
4
4
  //# sourceMappingURL=DraggableTask.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DraggableTask.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/DraggableTask.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAgClF,eAAO,MAAM,WAAW,4EAA8C,gBAAgB,6CAwEpF,CAAC;AAqLH,eAAO,MAAM,aAAa,sLAvKvB,kBAAkB,6CAuKoC,CAAC"}
1
+ {"version":3,"file":"DraggableTask.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/DraggableTask.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAgClF,eAAO,MAAM,WAAW,4EAA8C,gBAAgB,6CAwEpF,CAAC;AAqLH,eAAO,MAAM,aAAa,mLAxKvB,kBAAkB,6CAwKoC,CAAC"}
@@ -3,6 +3,7 @@ import { useSortable } from "@dnd-kit/sortable";
3
3
  import { CSS } from "@dnd-kit/utilities";
4
4
  import { FontVariantToken, Padding, Spacing } from "@uipath/apollo-core";
5
5
  import { Column, Row } from "../../layouts/index.js";
6
+ import { useStore } from "../../xyflow/react.js";
6
7
  import { ApBadge, ApCircularProgress, ApIconButton, ApTooltip, ApTypography, BadgeSize } from "../../../material/index.js";
7
8
  import debounce from "debounce";
8
9
  import { memo, useCallback, useMemo, useRef, useState } from "react";
@@ -143,8 +144,9 @@ const TaskContent = /*#__PURE__*/ memo(({ task, taskExecution, isDragging })=>/*
143
144
  ]
144
145
  })
145
146
  }));
146
- const DraggableTaskComponent = ({ task, taskExecution, isSelected, isParallel, contextMenuItems, onTaskClick, onMenuOpen, onTaskPlay, isDragDisabled, projectedDepth, zoom = 1 })=>{
147
+ const DraggableTaskComponent = ({ task, taskExecution, isSelected, isParallel, getContextMenuItems, onTaskClick, onMenuOpen, onTaskPlay, isDragDisabled, projectedDepth })=>{
147
148
  const [isMenuOpen, setIsMenuOpen] = useState(false);
149
+ const zoom = useStore((s)=>s.transform[2]);
148
150
  const taskRef = useRef(null);
149
151
  const menuRef = useRef(null);
150
152
  const [playLoading, setPlayLoading] = useState(false);
@@ -227,7 +229,7 @@ const DraggableTaskComponent = ({ task, taskExecution, isSelected, isParallel, c
227
229
  isParallel: isParallel,
228
230
  isDragEnabled: !isDragDisabled,
229
231
  onClick: handleClick,
230
- ...contextMenuItems.length > 0 && {
232
+ ...getContextMenuItems && {
231
233
  onContextMenu: handleContextMenu
232
234
  },
233
235
  children: [
@@ -274,10 +276,10 @@ const DraggableTaskComponent = ({ task, taskExecution, isSelected, isParallel, c
274
276
  })
275
277
  })
276
278
  }),
277
- contextMenuItems.length > 0 && /*#__PURE__*/ jsx(TaskMenu, {
279
+ getContextMenuItems && /*#__PURE__*/ jsx(TaskMenu, {
278
280
  ref: menuRef,
279
281
  taskId: task.id,
280
- contextMenuItems: contextMenuItems,
282
+ getContextMenuItems: getContextMenuItems,
281
283
  onMenuOpenChange: handleMenuOpenChange,
282
284
  onMenuOpen: onMenuOpen,
283
285
  taskRef: taskRef
@@ -10,12 +10,11 @@ export interface DraggableTaskProps {
10
10
  taskExecution?: StageTaskExecution;
11
11
  isSelected: boolean;
12
12
  isParallel: boolean;
13
- contextMenuItems: NodeMenuItem[];
13
+ getContextMenuItems?: () => NodeMenuItem[];
14
14
  onTaskClick: (e: React.MouseEvent, taskId: string) => void;
15
15
  onMenuOpen?: () => void;
16
16
  onTaskPlay?: (taskId: string) => Promise<void>;
17
17
  isDragDisabled?: boolean;
18
18
  projectedDepth?: number;
19
- zoom?: number;
20
19
  }
21
20
  //# sourceMappingURL=DraggableTask.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DraggableTask.types.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/DraggableTask.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE3E,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,aAAa,CAAC;IACpB,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,aAAa,CAAC;IACpB,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,EAAE,YAAY,EAAE,CAAC;IACjC,WAAW,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3D,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}
1
+ {"version":3,"file":"DraggableTask.types.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/DraggableTask.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE3E,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,aAAa,CAAC;IACpB,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,aAAa,CAAC;IACpB,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,mBAAmB,CAAC,EAAE,MAAM,YAAY,EAAE,CAAC;IAC3C,WAAW,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3D,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB"}
@@ -40,6 +40,7 @@ const jsx_runtime_namespaceObject = require("react/jsx-runtime");
40
40
  const styled_namespaceObject = require("@emotion/styled");
41
41
  var styled_default = /*#__PURE__*/ __webpack_require__.n(styled_namespaceObject);
42
42
  const react_cjs_namespaceObject = require("../../xyflow/react.cjs");
43
+ const external_react_namespaceObject = require("react");
43
44
  const StageEdgeLabel = styled_default().div`
44
45
  position: absolute;
45
46
  color: var(--uix-canvas-foreground);
@@ -57,6 +58,9 @@ const StageEdgeLabel = styled_default().div`
57
58
  border-color: var(--uix-canvas-border-hover);
58
59
  }
59
60
  `;
61
+ function stageEdgeGeometryEquality(previous, next) {
62
+ return previous.sourceX === next.sourceX && previous.sourceY === next.sourceY && previous.targetX === next.targetX && previous.targetY === next.targetY;
63
+ }
60
64
  function getArrowFromBezier(path, arrowSize) {
61
65
  const pathEl = document.createElementNS('http://www.w3.org/2000/svg', 'path');
62
66
  pathEl.setAttribute('d', path);
@@ -70,19 +74,13 @@ function getArrowFromBezier(path, arrowSize) {
70
74
  angle
71
75
  };
72
76
  }
73
- function StageEdge({ sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, selected, style, stroke = 'var(--uix-canvas-foreground-emp)', strokeWidth = 2, arrowSize = 8, ...rest }) {
74
- const sourceNode = (0, react_cjs_namespaceObject.useInternalNode)(rest.source);
75
- const targetNode = (0, react_cjs_namespaceObject.useInternalNode)(rest.target);
76
- const sourceNodeX = sourceNode ? sourceNode.position.x + (sourceNode.measured?.width ?? 0) : sourceX;
77
- const sourceNodeY = sourceNode?.position.y ? sourceNode.position.y + 32 : sourceY;
78
- const targetNodeX = targetNode?.position.x ?? targetX;
79
- const targetNodeY = targetNode?.position.y ? targetNode.position.y + 32 : targetY;
77
+ function StageEdgeInner({ geometry, sourcePosition, targetPosition, selected, style, stroke = 'var(--uix-canvas-foreground-emp)', strokeWidth = 2, arrowSize = 8, ...rest }) {
80
78
  const [pathData, labelX, labelY, _ex, _ey] = (0, react_cjs_namespaceObject.getSmoothStepPath)({
81
- sourceX: sourceNodeX,
82
- sourceY: sourceNodeY,
79
+ sourceX: geometry.sourceX,
80
+ sourceY: geometry.sourceY,
83
81
  sourcePosition,
84
- targetX: targetNodeX - 1,
85
- targetY: targetNodeY,
82
+ targetX: geometry.targetX - 1,
83
+ targetY: geometry.targetY,
86
84
  targetPosition,
87
85
  borderRadius: 40
88
86
  });
@@ -141,6 +139,31 @@ function StageEdge({ sourceX, sourceY, targetX, targetY, sourcePosition, targetP
141
139
  ]
142
140
  });
143
141
  }
142
+ const StageEdgeInnerMemo = /*#__PURE__*/ (0, external_react_namespaceObject.memo)(StageEdgeInner);
143
+ function StageEdgeComponent({ sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, selected, style, stroke, strokeWidth, arrowSize, ...rest }) {
144
+ const geometry = (0, react_cjs_namespaceObject.useStore)((state)=>{
145
+ const sourceNode = state.nodeLookup.get(rest.source);
146
+ const targetNode = state.nodeLookup.get(rest.target);
147
+ return {
148
+ sourceX: sourceNode ? sourceNode.position.x + (sourceNode.measured?.width ?? 0) : sourceX,
149
+ sourceY: sourceNode?.position.y ? sourceNode.position.y + 32 : sourceY,
150
+ targetX: targetNode?.position.x ?? targetX,
151
+ targetY: targetNode?.position.y ? targetNode.position.y + 32 : targetY
152
+ };
153
+ }, stageEdgeGeometryEquality);
154
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(StageEdgeInnerMemo, {
155
+ geometry: geometry,
156
+ sourcePosition: sourcePosition,
157
+ targetPosition: targetPosition,
158
+ selected: selected,
159
+ style: style,
160
+ stroke: stroke,
161
+ strokeWidth: strokeWidth,
162
+ arrowSize: arrowSize,
163
+ ...rest
164
+ });
165
+ }
166
+ const StageEdge = /*#__PURE__*/ (0, external_react_namespaceObject.memo)(StageEdgeComponent);
144
167
  exports.StageEdge = __webpack_exports__.StageEdge;
145
168
  exports.StageEdgeLabel = __webpack_exports__.StageEdgeLabel;
146
169
  for(var __rspack_i in __webpack_exports__)if (-1 === [
@@ -8,6 +8,7 @@ type Props = EdgeProps & {
8
8
  strokeWidth?: number;
9
9
  arrowSize?: number;
10
10
  };
11
- export declare function StageEdge({ sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, selected, style, stroke, strokeWidth, arrowSize, ...rest }: Props): import("react/jsx-runtime").JSX.Element;
11
+ declare function StageEdgeComponent({ sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, selected, style, stroke, strokeWidth, arrowSize, ...rest }: Props): import("react/jsx-runtime").JSX.Element;
12
+ export declare const StageEdge: import("react").MemoExoticComponent<typeof StageEdgeComponent>;
12
13
  export {};
13
14
  //# sourceMappingURL=StageEdge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StageEdge.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/StageEdge.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAC;AAO1E,eAAO,MAAM,cAAc;;;yGAgB1B,CAAC;AAEF,KAAK,KAAK,GAAG,SAAS,GAAG;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAkBF,wBAAgB,SAAS,CAAC,EACxB,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,cAAc,EACd,cAAc,EACd,QAAQ,EACR,KAAK,EACL,MAA2C,EAC3C,WAAe,EACf,SAAa,EACb,GAAG,IAAI,EACR,EAAE,KAAK,2CAiFP"}
1
+ {"version":3,"file":"StageEdge.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/StageEdge.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAkB,MAAM,0CAA0C,CAAC;AAQ1F,eAAO,MAAM,cAAc;;;yGAgB1B,CAAC;AAEF,KAAK,KAAK,GAAG,SAAS,GAAG;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AA4HF,iBAAS,kBAAkB,CAAC,EAC1B,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,cAAc,EACd,cAAc,EACd,QAAQ,EACR,KAAK,EACL,MAAM,EACN,WAAW,EACX,SAAS,EACT,GAAG,IAAI,EACR,EAAE,KAAK,2CA0BP;AAED,eAAO,MAAM,SAAS,gEAA2B,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
2
  import styled from "@emotion/styled";
3
- import { EdgeLabelRenderer, getSmoothStepPath, useInternalNode } from "../../xyflow/react.js";
3
+ import { EdgeLabelRenderer, getSmoothStepPath, useStore } from "../../xyflow/react.js";
4
+ import { memo } from "react";
4
5
  const StageEdgeLabel = styled.div`
5
6
  position: absolute;
6
7
  color: var(--uix-canvas-foreground);
@@ -18,6 +19,9 @@ const StageEdgeLabel = styled.div`
18
19
  border-color: var(--uix-canvas-border-hover);
19
20
  }
20
21
  `;
22
+ function stageEdgeGeometryEquality(previous, next) {
23
+ return previous.sourceX === next.sourceX && previous.sourceY === next.sourceY && previous.targetX === next.targetX && previous.targetY === next.targetY;
24
+ }
21
25
  function getArrowFromBezier(path, arrowSize) {
22
26
  const pathEl = document.createElementNS('http://www.w3.org/2000/svg', 'path');
23
27
  pathEl.setAttribute('d', path);
@@ -31,19 +35,13 @@ function getArrowFromBezier(path, arrowSize) {
31
35
  angle
32
36
  };
33
37
  }
34
- function StageEdge({ sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, selected, style, stroke = 'var(--uix-canvas-foreground-emp)', strokeWidth = 2, arrowSize = 8, ...rest }) {
35
- const sourceNode = useInternalNode(rest.source);
36
- const targetNode = useInternalNode(rest.target);
37
- const sourceNodeX = sourceNode ? sourceNode.position.x + (sourceNode.measured?.width ?? 0) : sourceX;
38
- const sourceNodeY = sourceNode?.position.y ? sourceNode.position.y + 32 : sourceY;
39
- const targetNodeX = targetNode?.position.x ?? targetX;
40
- const targetNodeY = targetNode?.position.y ? targetNode.position.y + 32 : targetY;
38
+ function StageEdgeInner({ geometry, sourcePosition, targetPosition, selected, style, stroke = 'var(--uix-canvas-foreground-emp)', strokeWidth = 2, arrowSize = 8, ...rest }) {
41
39
  const [pathData, labelX, labelY, _ex, _ey] = getSmoothStepPath({
42
- sourceX: sourceNodeX,
43
- sourceY: sourceNodeY,
40
+ sourceX: geometry.sourceX,
41
+ sourceY: geometry.sourceY,
44
42
  sourcePosition,
45
- targetX: targetNodeX - 1,
46
- targetY: targetNodeY,
43
+ targetX: geometry.targetX - 1,
44
+ targetY: geometry.targetY,
47
45
  targetPosition,
48
46
  borderRadius: 40
49
47
  });
@@ -102,4 +100,29 @@ function StageEdge({ sourceX, sourceY, targetX, targetY, sourcePosition, targetP
102
100
  ]
103
101
  });
104
102
  }
103
+ const StageEdgeInnerMemo = /*#__PURE__*/ memo(StageEdgeInner);
104
+ function StageEdgeComponent({ sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, selected, style, stroke, strokeWidth, arrowSize, ...rest }) {
105
+ const geometry = useStore((state)=>{
106
+ const sourceNode = state.nodeLookup.get(rest.source);
107
+ const targetNode = state.nodeLookup.get(rest.target);
108
+ return {
109
+ sourceX: sourceNode ? sourceNode.position.x + (sourceNode.measured?.width ?? 0) : sourceX,
110
+ sourceY: sourceNode?.position.y ? sourceNode.position.y + 32 : sourceY,
111
+ targetX: targetNode?.position.x ?? targetX,
112
+ targetY: targetNode?.position.y ? targetNode.position.y + 32 : targetY
113
+ };
114
+ }, stageEdgeGeometryEquality);
115
+ return /*#__PURE__*/ jsx(StageEdgeInnerMemo, {
116
+ geometry: geometry,
117
+ sourcePosition: sourcePosition,
118
+ targetPosition: targetPosition,
119
+ selected: selected,
120
+ style: style,
121
+ stroke: stroke,
122
+ strokeWidth: strokeWidth,
123
+ arrowSize: arrowSize,
124
+ ...rest
125
+ });
126
+ }
127
+ const StageEdge = /*#__PURE__*/ memo(StageEdgeComponent);
105
128
  export { StageEdge, StageEdgeLabel };
@@ -46,7 +46,33 @@ const external_DraggableTask_cjs_namespaceObject = require("./DraggableTask.cjs"
46
46
  const external_StageNode_styles_cjs_namespaceObject = require("./StageNode.styles.cjs");
47
47
  const external_StageNode_utils_cjs_namespaceObject = require("./StageNode.utils.cjs");
48
48
  const external_StageNodeTaskUtilities_cjs_namespaceObject = require("./StageNodeTaskUtilities.cjs");
49
- const StageNodeComponent = (props)=>{
49
+ const StageNode_StageTaskDragOverlay = /*#__PURE__*/ (0, external_react_namespaceObject.memo)(function({ activeTask, isActiveTaskParallel, taskWidthStyle }) {
50
+ const { zoom } = (0, react_cjs_namespaceObject.useViewport)();
51
+ const dragOverlayStyle = (0, external_react_namespaceObject.useMemo)(()=>({
52
+ transform: `scale(${zoom})`,
53
+ transformOrigin: 'top left'
54
+ }), [
55
+ zoom
56
+ ]);
57
+ return /*#__PURE__*/ (0, external_react_dom_namespaceObject.createPortal)(/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(core_namespaceObject.DragOverlay, {
58
+ children: activeTask ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
59
+ style: dragOverlayStyle,
60
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_StageNode_styles_cjs_namespaceObject.StageTask, {
61
+ selected: true,
62
+ isParallel: isActiveTaskParallel,
63
+ style: {
64
+ cursor: 'grabbing',
65
+ ...taskWidthStyle
66
+ },
67
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_DraggableTask_cjs_namespaceObject.TaskContent, {
68
+ task: activeTask,
69
+ isDragging: true
70
+ })
71
+ })
72
+ }) : null
73
+ }), document.body);
74
+ });
75
+ const StageNodeInner = (props)=>{
50
76
  const { dragging, selected, id, width, execution, stageDetails, addTaskLabel = 'Add task', addTaskLoading = false, replaceTaskLabel = 'Replace task', taskOptions = [], menuItems, pendingReplaceTask, onStageClick, onTaskAdd, onAddTaskFromToolbox, onTaskToolboxSearch, onTaskClick, onTaskGroupModification, onStageTitleChange, onTaskReorder, onReplaceTaskFromToolbox, onTaskPlay } = props;
51
77
  const taskWidth = width ? width - external_StageNode_styles_cjs_namespaceObject.STAGE_CONTENT_INSET : void 0;
52
78
  const tasks = (0, external_react_namespaceObject.useMemo)(()=>stageDetails?.tasks || [], [
@@ -66,9 +92,6 @@ const StageNodeComponent = (props)=>{
66
92
  const status = execution?.stageStatus?.status;
67
93
  const statusLabel = execution?.stageStatus?.label;
68
94
  const stageDuration = execution?.stageStatus?.duration;
69
- const reGroupTaskFunction = (0, external_react_namespaceObject.useMemo)(()=>onTaskGroupModification || (()=>{}), [
70
- onTaskGroupModification
71
- ]);
72
95
  const isStageTitleEditable = !!onStageTitleChange && !isReadOnly;
73
96
  const [isHovered, setIsHovered] = (0, external_react_namespaceObject.useState)(false);
74
97
  const [label, setLabel] = (0, external_react_namespaceObject.useState)(props.stageDetails.label);
@@ -85,6 +108,7 @@ const StageNodeComponent = (props)=>{
85
108
  taskIndex: -1
86
109
  });
87
110
  const isConnecting = (0, react_cjs_namespaceObject.useStore)((state)=>!!state.connectionClickStartHandle);
111
+ const storeApi = (0, react_cjs_namespaceObject.useStoreApi)();
88
112
  const connectedHandleIds = (0, ConnectedHandlesContext_cjs_namespaceObject.useConnectedHandles)(id);
89
113
  const [isAddingTask, setIsAddingTask] = (0, external_react_namespaceObject.useState)(false);
90
114
  const [isReplacingTask, setIsReplacingTask] = (0, external_react_namespaceObject.useState)(false);
@@ -124,7 +148,6 @@ const StageNodeComponent = (props)=>{
124
148
  tasks,
125
149
  activeDragId
126
150
  ]);
127
- const { zoom } = (0, react_cjs_namespaceObject.useViewport)();
128
151
  const projected = (0, external_react_namespaceObject.useMemo)(()=>{
129
152
  if (!activeDragId || !overId) return null;
130
153
  return (0, external_StageNode_utils_cjs_namespaceObject.getProjection)(tasks, activeDragId, overId, offsetLeft);
@@ -207,18 +230,21 @@ const StageNodeComponent = (props)=>{
207
230
  handleStageTitleClickToSave,
208
231
  isStageTitleEditing
209
232
  ]);
210
- const contextMenuItems = (0, external_react_namespaceObject.useCallback)((isParallel, groupIndex, taskIndex, tasksLength, taskGroupLength, isAboveParallel, isBelowParallel)=>{
233
+ const hasContextMenu = !!(onReplaceTaskFromToolbox || onTaskGroupModification);
234
+ const buildContextMenuItems = (0, external_react_namespaceObject.useCallback)((groupIndex, taskIndex)=>{
235
+ const taskGroup = tasks[groupIndex] ?? [];
236
+ const isParallel = taskGroup.length > 1;
211
237
  const items = [];
212
238
  if (onReplaceTaskFromToolbox) {
213
239
  items.push((0, external_StageNodeTaskUtilities_cjs_namespaceObject.getMenuItem)('replace-task', 'Replace task', ()=>{
214
- const taskId = tasks[groupIndex]?.[taskIndex]?.id;
240
+ const taskId = taskGroup[taskIndex]?.id;
215
241
  if (taskId) onTaskClick?.(taskId);
216
242
  setIsReplacingTask(true);
217
243
  }));
218
244
  items.push((0, external_StageNodeTaskUtilities_cjs_namespaceObject.getDivider)());
219
245
  }
220
246
  if (onTaskGroupModification) {
221
- const reGroupOptions = (0, external_StageNodeTaskUtilities_cjs_namespaceObject.getContextMenuItems)(isParallel, groupIndex, tasksLength, taskIndex, taskGroupLength, isAboveParallel, isBelowParallel, reGroupTaskFunction);
247
+ const reGroupOptions = (0, external_StageNodeTaskUtilities_cjs_namespaceObject.getContextMenuItems)(isParallel, groupIndex, tasks.length, taskIndex, taskGroup.length, (tasks[groupIndex - 1]?.length ?? 0) > 1, (tasks[groupIndex + 1]?.length ?? 0) > 1, onTaskGroupModification);
222
248
  return [
223
249
  ...items,
224
250
  ...reGroupOptions
@@ -229,10 +255,9 @@ const StageNodeComponent = (props)=>{
229
255
  onReplaceTaskFromToolbox,
230
256
  onTaskClick,
231
257
  onTaskGroupModification,
232
- reGroupTaskFunction,
233
258
  tasks
234
259
  ]);
235
- const { setSelectedNodeId } = (0, hooks_index_cjs_namespaceObject.useNodeSelection)();
260
+ const { setSelectedNodeId } = (0, hooks_index_cjs_namespaceObject.useSetNodeSelection)();
236
261
  const handleStageClick = (0, external_react_namespaceObject.useCallback)(()=>{
237
262
  onStageClick?.();
238
263
  }, [
@@ -355,9 +380,9 @@ const StageNodeComponent = (props)=>{
355
380
  setActiveDragId(event.active.id);
356
381
  }, []);
357
382
  const handleDragMove = (0, external_react_namespaceObject.useCallback)((event)=>{
358
- setOffsetLeft(event.delta.x / zoom);
383
+ setOffsetLeft(event.delta.x / storeApi.getState().transform[2]);
359
384
  }, [
360
- zoom
385
+ storeApi
361
386
  ]);
362
387
  const handleDragOver = (0, external_react_namespaceObject.useCallback)((event)=>{
363
388
  setOverId(event.over?.id ?? null);
@@ -393,12 +418,6 @@ const StageNodeComponent = (props)=>{
393
418
  } : void 0, [
394
419
  taskWidth
395
420
  ]);
396
- const dragOverlayStyle = (0, external_react_namespaceObject.useMemo)(()=>({
397
- transform: `scale(${zoom})`,
398
- transformOrigin: 'top left'
399
- }), [
400
- zoom
401
- ]);
402
421
  return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("div", {
403
422
  "data-testid": `stage-${id}`,
404
423
  style: {
@@ -538,13 +557,12 @@ const StageNodeComponent = (props)=>{
538
557
  taskExecution: taskExecution,
539
558
  isSelected: selectedTaskId === task.id,
540
559
  isParallel: isParallel,
541
- contextMenuItems: contextMenuItems(isParallel, groupIndex, taskIndex, tasks.length, taskGroup.length, (tasks[groupIndex - 1]?.length ?? 0) > 1, (tasks[groupIndex + 1]?.length ?? 0) > 1),
542
560
  onTaskClick: handleTaskClick,
543
561
  projectedDepth: task.id === activeDragId && projected ? projected.depth : void 0,
544
562
  onTaskPlay: onTaskPlay,
545
563
  isDragDisabled: !onTaskReorder,
546
- zoom: zoom,
547
- ...(onTaskGroupModification || onReplaceTaskFromToolbox) && {
564
+ ...hasContextMenu && {
565
+ getContextMenuItems: ()=>buildContextMenuItems(groupIndex, taskIndex),
548
566
  onMenuOpen: ()=>{
549
567
  taskStateReference.current = {
550
568
  isParallel,
@@ -562,23 +580,11 @@ const StageNodeComponent = (props)=>{
562
580
  })
563
581
  })
564
582
  }),
565
- /*#__PURE__*/ (0, external_react_dom_namespaceObject.createPortal)(/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(core_namespaceObject.DragOverlay, {
566
- children: activeTask ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
567
- style: dragOverlayStyle,
568
- children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_StageNode_styles_cjs_namespaceObject.StageTask, {
569
- selected: true,
570
- isParallel: isActiveTaskParallel,
571
- style: {
572
- cursor: 'grabbing',
573
- ...taskWidthStyle
574
- },
575
- children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_DraggableTask_cjs_namespaceObject.TaskContent, {
576
- task: activeTask,
577
- isDragging: true
578
- })
579
- })
580
- }) : null
581
- }), document.body)
583
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(StageNode_StageTaskDragOverlay, {
584
+ activeTask: activeTask,
585
+ isActiveTaskParallel: isActiveTaskParallel,
586
+ taskWidthStyle: taskWidthStyle
587
+ })
582
588
  ]
583
589
  }) : /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.Column, {
584
590
  py: 2,
@@ -632,6 +638,31 @@ const StageNodeComponent = (props)=>{
632
638
  ]
633
639
  });
634
640
  };
641
+ const StageNodeInnerMemo = /*#__PURE__*/ (0, external_react_namespaceObject.memo)(StageNodeInner);
642
+ const StageNodeComponent = ({ dragging, selected, id, width, execution, stageDetails, addTaskLabel, addTaskLoading, replaceTaskLabel, taskOptions, menuItems, pendingReplaceTask, onStageClick, onTaskAdd, onAddTaskFromToolbox, onTaskToolboxSearch, onTaskClick, onTaskGroupModification, onStageTitleChange, onTaskReorder, onReplaceTaskFromToolbox, onTaskPlay })=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(StageNodeInnerMemo, {
643
+ dragging: dragging,
644
+ selected: selected,
645
+ id: id,
646
+ width: width,
647
+ execution: execution,
648
+ stageDetails: stageDetails,
649
+ addTaskLabel: addTaskLabel,
650
+ addTaskLoading: addTaskLoading,
651
+ replaceTaskLabel: replaceTaskLabel,
652
+ taskOptions: taskOptions,
653
+ menuItems: menuItems,
654
+ pendingReplaceTask: pendingReplaceTask,
655
+ onStageClick: onStageClick,
656
+ onTaskAdd: onTaskAdd,
657
+ onAddTaskFromToolbox: onAddTaskFromToolbox,
658
+ onTaskToolboxSearch: onTaskToolboxSearch,
659
+ onTaskClick: onTaskClick,
660
+ onTaskGroupModification: onTaskGroupModification,
661
+ onStageTitleChange: onStageTitleChange,
662
+ onTaskReorder: onTaskReorder,
663
+ onReplaceTaskFromToolbox: onReplaceTaskFromToolbox,
664
+ onTaskPlay: onTaskPlay
665
+ });
635
666
  const StageNode = /*#__PURE__*/ (0, external_react_namespaceObject.memo)(StageNodeComponent);
636
667
  exports.StageNode = __webpack_exports__.StageNode;
637
668
  for(var __rspack_i in __webpack_exports__)if (-1 === [