@uipath/apollo-react 3.68.2 → 3.68.3-pr431.42f9a1c

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 (52) hide show
  1. package/dist/canvas/components/CanvasPerformance.stories.cjs +349 -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 +312 -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/AdhocTask.cjs +148 -0
  14. package/dist/canvas/components/StageNode/AdhocTask.d.ts +13 -0
  15. package/dist/canvas/components/StageNode/AdhocTask.d.ts.map +1 -0
  16. package/dist/canvas/components/StageNode/AdhocTask.js +104 -0
  17. package/dist/canvas/components/StageNode/DraggableTask.cjs +14 -5
  18. package/dist/canvas/components/StageNode/DraggableTask.d.ts +1 -1
  19. package/dist/canvas/components/StageNode/DraggableTask.d.ts.map +1 -1
  20. package/dist/canvas/components/StageNode/DraggableTask.js +14 -5
  21. package/dist/canvas/components/StageNode/DraggableTask.types.d.ts +3 -3
  22. package/dist/canvas/components/StageNode/DraggableTask.types.d.ts.map +1 -1
  23. package/dist/canvas/components/StageNode/StageEdge.cjs +34 -11
  24. package/dist/canvas/components/StageNode/StageEdge.d.ts +2 -1
  25. package/dist/canvas/components/StageNode/StageEdge.d.ts.map +1 -1
  26. package/dist/canvas/components/StageNode/StageEdge.js +35 -12
  27. package/dist/canvas/components/StageNode/StageNode.cjs +65 -122
  28. package/dist/canvas/components/StageNode/StageNode.d.ts.map +1 -1
  29. package/dist/canvas/components/StageNode/StageNode.js +72 -119
  30. package/dist/canvas/components/StageNode/StageNode.stories.cjs +134 -180
  31. package/dist/canvas/components/StageNode/StageNode.stories.d.ts +2 -2
  32. package/dist/canvas/components/StageNode/StageNode.stories.d.ts.map +1 -1
  33. package/dist/canvas/components/StageNode/StageNode.stories.js +130 -176
  34. package/dist/canvas/components/StageNode/StageNode.stories.utils.cjs +45 -0
  35. package/dist/canvas/components/StageNode/StageNode.stories.utils.d.ts +8 -0
  36. package/dist/canvas/components/StageNode/StageNode.stories.utils.d.ts.map +1 -0
  37. package/dist/canvas/components/StageNode/StageNode.stories.utils.js +11 -0
  38. package/dist/canvas/components/StageNode/StageNode.styles.cjs +1 -1
  39. package/dist/canvas/components/StageNode/StageNode.styles.js +1 -1
  40. package/dist/canvas/components/StageNode/StageNode.types.d.ts +9 -4
  41. package/dist/canvas/components/StageNode/StageNode.types.d.ts.map +1 -1
  42. package/dist/canvas/components/StageNode/StageTaskDragOverlay.cjs +69 -0
  43. package/dist/canvas/components/StageNode/StageTaskDragOverlay.d.ts +3 -0
  44. package/dist/canvas/components/StageNode/StageTaskDragOverlay.d.ts.map +1 -0
  45. package/dist/canvas/components/StageNode/StageTaskDragOverlay.js +35 -0
  46. package/dist/canvas/components/StageNode/TaskMenu.cjs +13 -17
  47. package/dist/canvas/components/StageNode/TaskMenu.d.ts +1 -2
  48. package/dist/canvas/components/StageNode/TaskMenu.d.ts.map +1 -1
  49. package/dist/canvas/components/StageNode/TaskMenu.js +14 -18
  50. package/dist/canvas/components/StageNode/index.d.ts +1 -1
  51. package/dist/canvas/components/StageNode/index.d.ts.map +1 -1
  52. package/package.json +1 -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 ? sourceNode.position.y + 32 : sourceY,
111
+ targetX: targetNode?.position.x ?? targetX,
112
+ targetY: targetNode ? 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 };
@@ -1,14 +1,5 @@
1
1
  "use strict";
2
2
  var __webpack_require__ = {};
3
- (()=>{
4
- __webpack_require__.n = (module)=>{
5
- var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
6
- __webpack_require__.d(getter, {
7
- a: getter
8
- });
9
- return getter;
10
- };
11
- })();
12
3
  (()=>{
13
4
  __webpack_require__.d = (exports1, definition)=>{
14
5
  for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
@@ -42,11 +33,9 @@ const apollo_core_namespaceObject = require("@uipath/apollo-core");
42
33
  const index_cjs_namespaceObject = require("../../layouts/index.cjs");
43
34
  const react_cjs_namespaceObject = require("../../xyflow/react.cjs");
44
35
  const external_material_index_cjs_namespaceObject = require("../../../material/index.cjs");
45
- const external_debounce_namespaceObject = require("debounce");
46
- var external_debounce_default = /*#__PURE__*/ __webpack_require__.n(external_debounce_namespaceObject);
47
36
  const external_react_namespaceObject = require("react");
48
- const external_react_dom_namespaceObject = require("react-dom");
49
37
  const external_icons_index_cjs_namespaceObject = require("../../icons/index.cjs");
38
+ const GroupModificationUtils_cjs_namespaceObject = require("../../utils/GroupModificationUtils.cjs");
50
39
  const ConnectedHandlesContext_cjs_namespaceObject = require("../BaseCanvas/ConnectedHandlesContext.cjs");
51
40
  const useButtonHandles_cjs_namespaceObject = require("../ButtonHandle/useButtonHandles.cjs");
52
41
  const external_ExecutionStatusIcon_index_cjs_namespaceObject = require("../ExecutionStatusIcon/index.cjs");
@@ -54,11 +43,13 @@ const external_FloatingCanvasPanel_index_cjs_namespaceObject = require("../Float
54
43
  const external_NodeContextMenu_index_cjs_namespaceObject = require("../NodeContextMenu/index.cjs");
55
44
  const hooks_index_cjs_namespaceObject = require("../NodePropertiesPanel/hooks/index.cjs");
56
45
  const external_Toolbox_index_cjs_namespaceObject = require("../Toolbox/index.cjs");
46
+ const external_AdhocTask_cjs_namespaceObject = require("./AdhocTask.cjs");
57
47
  const external_DraggableTask_cjs_namespaceObject = require("./DraggableTask.cjs");
58
48
  const external_StageNode_styles_cjs_namespaceObject = require("./StageNode.styles.cjs");
59
49
  const external_StageNode_types_cjs_namespaceObject = require("./StageNode.types.cjs");
60
50
  const external_StageNode_utils_cjs_namespaceObject = require("./StageNode.utils.cjs");
61
51
  const external_StageNodeTaskUtilities_cjs_namespaceObject = require("./StageNodeTaskUtilities.cjs");
52
+ const external_StageTaskDragOverlay_cjs_namespaceObject = require("./StageTaskDragOverlay.cjs");
62
53
  const CHIP_ICONS = {
63
54
  [external_StageNode_types_cjs_namespaceObject.StageHeaderChipType.Entry]: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_icons_index_cjs_namespaceObject.EntryConditionIcon, {
64
55
  w: apollo_core_namespaceObject.Icon.IconXs,
@@ -81,54 +72,7 @@ const CHIP_ICONS = {
81
72
  size: apollo_core_namespaceObject.Icon.IconXs
82
73
  })
83
74
  };
84
- const AdhocTaskPlayButton = /*#__PURE__*/ (0, external_react_namespaceObject.memo)(({ taskId, onTaskPlay })=>{
85
- const [playLoading, setPlayLoading] = (0, external_react_namespaceObject.useState)(false);
86
- const debouncedTaskPlay = (0, external_react_namespaceObject.useMemo)(()=>external_debounce_default()(async (id)=>{
87
- setPlayLoading(true);
88
- try {
89
- await onTaskPlay(id);
90
- } catch {} finally{
91
- setPlayLoading(false);
92
- }
93
- }, 500, {
94
- immediate: true
95
- }), [
96
- onTaskPlay
97
- ]);
98
- const handlePlayClick = (0, external_react_namespaceObject.useCallback)((e)=>{
99
- e.stopPropagation();
100
- e.preventDefault();
101
- debouncedTaskPlay(taskId);
102
- }, [
103
- debouncedTaskPlay,
104
- taskId
105
- ]);
106
- return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_material_index_cjs_namespaceObject.ApTooltip, {
107
- content: "Trigger task",
108
- placement: "top",
109
- children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_material_index_cjs_namespaceObject.ApIconButton, {
110
- "data-testid": `stage-task-play-${taskId}`,
111
- onClick: handlePlayClick,
112
- onMouseDown: (e)=>e.stopPropagation(),
113
- onKeyDown: (e)=>e.stopPropagation(),
114
- className: "task-menu-icon-button",
115
- sx: {
116
- color: 'var(--uix-canvas-primary) !important',
117
- minWidth: 'unset !important',
118
- width: `${apollo_core_namespaceObject.Spacing.SpacingL} !important`,
119
- height: `${apollo_core_namespaceObject.Spacing.SpacingL} !important`,
120
- padding: '0 !important'
121
- },
122
- children: playLoading ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_material_index_cjs_namespaceObject.ApCircularProgress, {
123
- size: 20
124
- }) : /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_icons_index_cjs_namespaceObject.PlayIcon, {
125
- w: 20,
126
- h: 20
127
- })
128
- })
129
- });
130
- });
131
- const StageNodeComponent = (props)=>{
75
+ const StageNodeInner = (props)=>{
132
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, hideParallelOptions } = props;
133
77
  const taskWidth = width ? width - external_StageNode_styles_cjs_namespaceObject.STAGE_CONTENT_INSET : void 0;
134
78
  const allTasks = (0, external_react_namespaceObject.useMemo)(()=>stageDetails?.tasks || [], [
@@ -137,7 +81,11 @@ const StageNodeComponent = (props)=>{
137
81
  const tasks = (0, external_react_namespaceObject.useMemo)(()=>allTasks.filter((group)=>group.some((t)=>!t.isAdhoc)), [
138
82
  allTasks
139
83
  ]);
140
- const adhocTasks = (0, external_react_namespaceObject.useMemo)(()=>allTasks.flat().filter((t)=>t.isAdhoc), [
84
+ const adhocTasks = (0, external_react_namespaceObject.useMemo)(()=>allTasks.flatMap((group, groupIndex)=>group.map((task, taskIndex)=>({
85
+ task,
86
+ groupIndex,
87
+ taskIndex
88
+ })).filter(({ task })=>task.isAdhoc)), [
141
89
  allTasks
142
90
  ]);
143
91
  const flatTasks = (0, external_react_namespaceObject.useMemo)(()=>tasks.flat(), [
@@ -154,9 +102,6 @@ const StageNodeComponent = (props)=>{
154
102
  const status = execution?.stageStatus?.status;
155
103
  const statusLabel = execution?.stageStatus?.label;
156
104
  const stageDuration = execution?.stageStatus?.duration;
157
- const reGroupTaskFunction = (0, external_react_namespaceObject.useMemo)(()=>onTaskGroupModification || (()=>{}), [
158
- onTaskGroupModification
159
- ]);
160
105
  const isStageTitleEditable = !!onStageTitleChange && !isReadOnly;
161
106
  const [isHovered, setIsHovered] = (0, external_react_namespaceObject.useState)(false);
162
107
  const [label, setLabel] = (0, external_react_namespaceObject.useState)(props.stageDetails.label);
@@ -173,6 +118,7 @@ const StageNodeComponent = (props)=>{
173
118
  taskIndex: -1
174
119
  });
175
120
  const isConnecting = (0, react_cjs_namespaceObject.useStore)((state)=>!!state.connectionClickStartHandle);
121
+ const storeApi = (0, react_cjs_namespaceObject.useStoreApi)();
176
122
  const connectedHandleIds = (0, ConnectedHandlesContext_cjs_namespaceObject.useConnectedHandles)(id);
177
123
  const [isAddingTask, setIsAddingTask] = (0, external_react_namespaceObject.useState)(false);
178
124
  const [isReplacingTask, setIsReplacingTask] = (0, external_react_namespaceObject.useState)(false);
@@ -212,7 +158,6 @@ const StageNodeComponent = (props)=>{
212
158
  tasks,
213
159
  activeDragId
214
160
  ]);
215
- const { zoom } = (0, react_cjs_namespaceObject.useViewport)();
216
161
  const projected = (0, external_react_namespaceObject.useMemo)(()=>{
217
162
  if (!activeDragId || !overId) return null;
218
163
  return (0, external_StageNode_utils_cjs_namespaceObject.getProjection)(tasks, activeDragId, overId, offsetLeft);
@@ -295,18 +240,26 @@ const StageNodeComponent = (props)=>{
295
240
  handleStageTitleClickToSave,
296
241
  isStageTitleEditing
297
242
  ]);
298
- const contextMenuItems = (0, external_react_namespaceObject.useCallback)((isParallel, groupIndex, taskIndex, tasksLength, taskGroupLength, isAboveParallel, isBelowParallel)=>{
243
+ const hasContextMenu = !!(onReplaceTaskFromToolbox || onTaskGroupModification);
244
+ const buildContextMenuItems = (0, external_react_namespaceObject.useCallback)((groupIndex, taskIndex)=>{
245
+ const taskGroup = tasks[groupIndex] ?? [];
246
+ const isParallel = taskGroup.length > 1;
299
247
  const items = [];
300
248
  if (onReplaceTaskFromToolbox) {
301
249
  items.push((0, external_StageNodeTaskUtilities_cjs_namespaceObject.getMenuItem)('replace-task', 'Replace task', ()=>{
302
- const taskId = tasks[groupIndex]?.[taskIndex]?.id;
250
+ taskStateReference.current = {
251
+ isParallel,
252
+ groupIndex,
253
+ taskIndex
254
+ };
255
+ const taskId = taskGroup[taskIndex]?.id;
303
256
  if (taskId) onTaskClick?.(taskId);
304
257
  setIsReplacingTask(true);
305
258
  }));
306
259
  items.push((0, external_StageNodeTaskUtilities_cjs_namespaceObject.getDivider)());
307
260
  }
308
261
  if (onTaskGroupModification) {
309
- const reGroupOptions = (0, external_StageNodeTaskUtilities_cjs_namespaceObject.getContextMenuItems)(isParallel, groupIndex, tasksLength, taskIndex, taskGroupLength, isAboveParallel, isBelowParallel, reGroupTaskFunction, hideParallelOptions);
262
+ 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, hideParallelOptions);
310
263
  return [
311
264
  ...items,
312
265
  ...reGroupOptions
@@ -317,11 +270,31 @@ const StageNodeComponent = (props)=>{
317
270
  onReplaceTaskFromToolbox,
318
271
  onTaskClick,
319
272
  onTaskGroupModification,
320
- reGroupTaskFunction,
321
273
  tasks,
322
274
  hideParallelOptions
323
275
  ]);
324
- const { setSelectedNodeId } = (0, hooks_index_cjs_namespaceObject.useNodeSelection)();
276
+ const getAdhocContextMenuItems = (0, external_react_namespaceObject.useCallback)((groupIndex, taskIndex, taskId)=>{
277
+ const items = [];
278
+ if (onReplaceTaskFromToolbox) items.push((0, external_StageNodeTaskUtilities_cjs_namespaceObject.getMenuItem)('replace-task', 'Replace task', ()=>{
279
+ taskStateReference.current = {
280
+ isParallel: false,
281
+ groupIndex,
282
+ taskIndex
283
+ };
284
+ onTaskClick?.(taskId);
285
+ setIsReplacingTask(true);
286
+ }));
287
+ if (onTaskGroupModification) {
288
+ if (items.length > 0) items.push((0, external_StageNodeTaskUtilities_cjs_namespaceObject.getDivider)());
289
+ items.push((0, external_StageNodeTaskUtilities_cjs_namespaceObject.getMenuItem)('remove-task', 'Delete task', ()=>onTaskGroupModification(GroupModificationUtils_cjs_namespaceObject.GroupModificationType.REMOVE_TASK, groupIndex, taskIndex)));
290
+ }
291
+ return items;
292
+ }, [
293
+ onReplaceTaskFromToolbox,
294
+ onTaskClick,
295
+ onTaskGroupModification
296
+ ]);
297
+ const { setSelectedNodeId } = (0, hooks_index_cjs_namespaceObject.useSetNodeSelection)();
325
298
  const handleStageClick = (0, external_react_namespaceObject.useCallback)(()=>{
326
299
  onStageClick?.();
327
300
  }, [
@@ -444,9 +417,9 @@ const StageNodeComponent = (props)=>{
444
417
  setActiveDragId(event.active.id);
445
418
  }, []);
446
419
  const handleDragMove = (0, external_react_namespaceObject.useCallback)((event)=>{
447
- setOffsetLeft(event.delta.x / zoom);
420
+ setOffsetLeft(event.delta.x / storeApi.getState().transform[2]);
448
421
  }, [
449
- zoom
422
+ storeApi
450
423
  ]);
451
424
  const handleDragOver = (0, external_react_namespaceObject.useCallback)((event)=>{
452
425
  setOverId(event.over?.id ?? null);
@@ -482,12 +455,6 @@ const StageNodeComponent = (props)=>{
482
455
  } : void 0, [
483
456
  taskWidth
484
457
  ]);
485
- const dragOverlayStyle = (0, external_react_namespaceObject.useMemo)(()=>({
486
- transform: `scale(${zoom})`,
487
- transformOrigin: 'top left'
488
- }), [
489
- zoom
490
- ]);
491
458
  return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("div", {
492
459
  "data-testid": `stage-${id}`,
493
460
  style: {
@@ -670,19 +637,13 @@ const StageNodeComponent = (props)=>{
670
637
  taskExecution: taskExecution,
671
638
  isSelected: selectedTaskId === task.id,
672
639
  isParallel: isParallel,
673
- contextMenuItems: contextMenuItems(isParallel, groupIndex, taskIndex, tasks.length, taskGroup.length, (tasks[groupIndex - 1]?.length ?? 0) > 1, (tasks[groupIndex + 1]?.length ?? 0) > 1),
640
+ groupIndex: groupIndex,
641
+ taskIndex: taskIndex,
674
642
  onTaskClick: handleTaskClick,
675
643
  projectedDepth: task.id === activeDragId && projected ? projected.depth : void 0,
676
644
  isDragDisabled: !onTaskReorder,
677
- zoom: zoom,
678
- ...(onTaskGroupModification || onReplaceTaskFromToolbox) && {
679
- onMenuOpen: ()=>{
680
- taskStateReference.current = {
681
- isParallel,
682
- groupIndex,
683
- taskIndex
684
- };
685
- }
645
+ ...hasContextMenu && {
646
+ getContextMenuItems: buildContextMenuItems
686
647
  }
687
648
  }, task.id);
688
649
  })
@@ -693,23 +654,11 @@ const StageNodeComponent = (props)=>{
693
654
  })
694
655
  })
695
656
  }),
696
- /*#__PURE__*/ (0, external_react_dom_namespaceObject.createPortal)(/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(core_namespaceObject.DragOverlay, {
697
- children: activeTask ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
698
- style: dragOverlayStyle,
699
- children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_StageNode_styles_cjs_namespaceObject.StageTask, {
700
- selected: true,
701
- isParallel: isActiveTaskParallel,
702
- style: {
703
- cursor: 'grabbing',
704
- ...taskWidthStyle
705
- },
706
- children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_DraggableTask_cjs_namespaceObject.TaskContent, {
707
- task: activeTask,
708
- isDragging: true
709
- })
710
- })
711
- }) : null
712
- }), document.body)
657
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_StageTaskDragOverlay_cjs_namespaceObject.StageTaskDragOverlay, {
658
+ activeTask: activeTask,
659
+ isActiveTaskParallel: isActiveTaskParallel,
660
+ taskWidthStyle: taskWidthStyle
661
+ })
713
662
  ]
714
663
  }),
715
664
  adhocTasks.length > 0 && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(external_StageNode_styles_cjs_namespaceObject.StageAdhocSection, {
@@ -725,23 +674,17 @@ const StageNodeComponent = (props)=>{
725
674
  })
726
675
  }),
727
676
  /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_StageNode_styles_cjs_namespaceObject.StageTaskList, {
728
- children: adhocTasks.map((task)=>{
677
+ children: adhocTasks.map(({ task, groupIndex, taskIndex })=>{
729
678
  const taskExecution = execution?.taskStatus?.[task.id];
730
- return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(external_StageNode_styles_cjs_namespaceObject.StageTask, {
731
- "data-testid": `stage-task-${task.id}`,
732
- selected: selectedTaskId === task.id,
733
- status: taskExecution?.status,
734
- onClick: (e)=>handleTaskClick(e, task.id),
735
- children: [
736
- /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_DraggableTask_cjs_namespaceObject.TaskContent, {
737
- task: task,
738
- taskExecution: taskExecution
739
- }),
740
- onTaskPlay && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(AdhocTaskPlayButton, {
741
- taskId: task.id,
742
- onTaskPlay: onTaskPlay
743
- })
744
- ]
679
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_AdhocTask_cjs_namespaceObject.AdhocTaskItem, {
680
+ task: task,
681
+ taskExecution: taskExecution,
682
+ isSelected: selectedTaskId === task.id,
683
+ onTaskClick: handleTaskClick,
684
+ onTaskPlay: onTaskPlay,
685
+ ...(onTaskGroupModification || onReplaceTaskFromToolbox) && {
686
+ getContextMenuItems: ()=>getAdhocContextMenuItems(groupIndex, taskIndex, task.id)
687
+ }
745
688
  }, task.id);
746
689
  })
747
690
  })
@@ -785,7 +728,7 @@ const StageNodeComponent = (props)=>{
785
728
  ]
786
729
  });
787
730
  };
788
- const StageNode = /*#__PURE__*/ (0, external_react_namespaceObject.memo)(StageNodeComponent);
731
+ const StageNode = /*#__PURE__*/ (0, external_react_namespaceObject.memo)(StageNodeInner);
789
732
  exports.StageNode = __webpack_exports__.StageNode;
790
733
  for(var __rspack_i in __webpack_exports__)if (-1 === [
791
734
  "StageNode"
@@ -1 +1 @@
1
- {"version":3,"file":"StageNode.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/StageNode.tsx"],"names":[],"mappings":"AA4DA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAgzBxD,eAAO,MAAM,SAAS,8CAtuBa,cAAc,6CAsuBA,CAAC"}
1
+ {"version":3,"file":"StageNode.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/StageNode.tsx"],"names":[],"mappings":"AAyDA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAsvBxD,eAAO,MAAM,SAAS,8CAluBS,cAAc,6CAkuBA,CAAC"}