@uipath/apollo-react 4.12.1 → 4.12.2-pr572.e8b532c

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 (32) hide show
  1. package/dist/canvas/components/BaseNode/BaseNode.cjs +2 -0
  2. package/dist/canvas/components/BaseNode/BaseNode.d.ts.map +1 -1
  3. package/dist/canvas/components/BaseNode/BaseNode.js +2 -0
  4. package/dist/canvas/components/BaseNode/BaseNodeContainer.cjs +4 -2
  5. package/dist/canvas/components/BaseNode/BaseNodeContainer.d.ts +2 -1
  6. package/dist/canvas/components/BaseNode/BaseNodeContainer.d.ts.map +1 -1
  7. package/dist/canvas/components/BaseNode/BaseNodeContainer.js +4 -2
  8. package/dist/canvas/components/StageNode/DraggableTask.cjs +3 -2
  9. package/dist/canvas/components/StageNode/DraggableTask.js +3 -2
  10. package/dist/canvas/components/StageNode/DraggableTask.types.d.ts +1 -1
  11. package/dist/canvas/components/StageNode/DraggableTask.types.d.ts.map +1 -1
  12. package/dist/canvas/components/StageNode/StageNodeAdhocTaskGroups.cjs +11 -25
  13. package/dist/canvas/components/StageNode/StageNodeAdhocTaskGroups.d.ts +5 -5
  14. package/dist/canvas/components/StageNode/StageNodeAdhocTaskGroups.d.ts.map +1 -1
  15. package/dist/canvas/components/StageNode/StageNodeAdhocTaskGroups.js +11 -25
  16. package/dist/canvas/components/StageNode/StageNodeAllTaskGroups.cjs +50 -7
  17. package/dist/canvas/components/StageNode/StageNodeAllTaskGroups.d.ts.map +1 -1
  18. package/dist/canvas/components/StageNode/StageNodeAllTaskGroups.js +50 -7
  19. package/dist/canvas/components/StageNode/StageNodeEventDrivenTaskGroups.cjs +11 -25
  20. package/dist/canvas/components/StageNode/StageNodeEventDrivenTaskGroups.d.ts +5 -5
  21. package/dist/canvas/components/StageNode/StageNodeEventDrivenTaskGroups.d.ts.map +1 -1
  22. package/dist/canvas/components/StageNode/StageNodeEventDrivenTaskGroups.js +11 -25
  23. package/dist/canvas/components/StageNode/StageNodeSequentialTaskGroups.cjs +27 -20
  24. package/dist/canvas/components/StageNode/StageNodeSequentialTaskGroups.d.ts +6 -5
  25. package/dist/canvas/components/StageNode/StageNodeSequentialTaskGroups.d.ts.map +1 -1
  26. package/dist/canvas/components/StageNode/StageNodeSequentialTaskGroups.js +28 -21
  27. package/dist/canvas/components/StageNode/StageNodeTaskUtilities.cjs +11 -11
  28. package/dist/canvas/components/StageNode/StageNodeTaskUtilities.d.ts +11 -1
  29. package/dist/canvas/components/StageNode/StageNodeTaskUtilities.d.ts.map +1 -1
  30. package/dist/canvas/components/StageNode/StageNodeTaskUtilities.js +11 -11
  31. package/dist/canvas/styles/tailwind.canvas.css +1 -1
  32. package/package.json +1 -1
@@ -121,6 +121,7 @@ const BaseNodeComponent = (props)=>{
121
121
  data,
122
122
  id
123
123
  ]);
124
+ const isStacked = Boolean(manifest?.drillable || data?.isCollapsed);
124
125
  const Icon = (0, external_react_namespaceObject.useMemo)(()=>{
125
126
  if (void 0 !== iconComponent) return iconComponent;
126
127
  const IconComponent = (0, icon_registry_cjs_namespaceObject.getIcon)(display.icon);
@@ -403,6 +404,7 @@ const BaseNodeComponent = (props)=>{
403
404
  shape: displayShape,
404
405
  isSelected: selected,
405
406
  isHovered: isHovered,
407
+ isStacked: isStacked,
406
408
  interactionState: interactionState,
407
409
  executionStatus: executionStatus,
408
410
  validationStatus: validationState?.validationStatus,
@@ -1 +1 @@
1
- {"version":3,"file":"BaseNode.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/BaseNode/BaseNode.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAkB,MAAM,0CAA0C,CAAC;AAsChG,OAAO,KAAK,EACV,YAAY,EAIb,MAAM,kBAAkB,CAAC;AA6mB1B,eAAO,MAAM,QAAQ,8CAhkBa,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,6CAgkBhB,CAAC"}
1
+ {"version":3,"file":"BaseNode.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/BaseNode/BaseNode.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAkB,MAAM,0CAA0C,CAAC;AAsChG,OAAO,KAAK,EACV,YAAY,EAIb,MAAM,kBAAkB,CAAC;AAknB1B,eAAO,MAAM,QAAQ,8CArkBa,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,6CAqkBhB,CAAC"}
@@ -93,6 +93,7 @@ const BaseNodeComponent = (props)=>{
93
93
  data,
94
94
  id
95
95
  ]);
96
+ const isStacked = Boolean(manifest?.drillable || data?.isCollapsed);
96
97
  const Icon = useMemo(()=>{
97
98
  if (void 0 !== iconComponent) return iconComponent;
98
99
  const IconComponent = getIcon(display.icon);
@@ -375,6 +376,7 @@ const BaseNodeComponent = (props)=>{
375
376
  shape: displayShape,
376
377
  isSelected: selected,
377
378
  isHovered: isHovered,
379
+ isStacked: isStacked,
378
380
  interactionState: interactionState,
379
381
  executionStatus: executionStatus,
380
382
  validationStatus: validationState?.validationStatus,
@@ -53,14 +53,15 @@ const getStatusBorder = (status)=>{
53
53
  return '';
54
54
  }
55
55
  };
56
- const BaseContainer = ({ isSelected, isHovered, shape, interactionState, executionStatus, validationStatus, suggestionType, hasFooter, background, loading, children })=>{
56
+ const BaseContainer = ({ isSelected, isHovered, isStacked, shape, interactionState, executionStatus, validationStatus, suggestionType, hasFooter, background, loading, children })=>{
57
57
  const activeStatus = suggestionType ?? validationStatus ?? executionStatus;
58
- const className = (0, external_react_namespaceObject.useMemo)(()=>(0, apollo_wind_namespaceObject.cn)('relative flex items-center cursor-pointer bg-surface-overlay border border-border', 'w-(--node-w) h-(--node-h) rounded-(--node-radius)', 'shadow-(--canvas-node-shadow-rest) outline-offset-0 transition-[box-shadow,border-color] duration-150', 'rectangle' === shape ? 'flex-row justify-start gap-3 p-(--node-gap)' : 'flex-col justify-center', hasFooter && 'flex-wrap', getStatusBorder(activeStatus), isHovered && 'shadow-(--canvas-node-shadow-hover) border-border-hover', isSelected && 'outline outline-2 outline-foreground-accent-muted', 'disabled' === interactionState && 'opacity-50 cursor-not-allowed', 'drag' === interactionState && 'cursor-grabbing shadow-(--canvas-node-shadow-lifted)'), [
58
+ const className = (0, external_react_namespaceObject.useMemo)(()=>(0, apollo_wind_namespaceObject.cn)('relative flex items-center cursor-pointer bg-surface-overlay border border-border', 'w-(--node-w) h-(--node-h) rounded-(--node-radius)', 'shadow-(--canvas-node-shadow-rest) outline-offset-0 transition-[box-shadow,border-color] duration-150', 'rectangle' === shape ? 'flex-row justify-start gap-3 p-(--node-gap)' : 'flex-col justify-center', hasFooter && 'flex-wrap', getStatusBorder(activeStatus), isHovered && 'shadow-(--canvas-node-shadow-hover) border-border-hover', isSelected && 'outline outline-2 outline-foreground-accent-muted', 'disabled' === interactionState && 'opacity-50 cursor-not-allowed', 'drag' === interactionState && 'cursor-grabbing shadow-(--canvas-node-shadow-lifted)', isStacked && 'before:content-[""] before:absolute before:inset-x-0 before:top-0 before:h-full before:rounded-[inherit] before:bg-surface-overlay before:border before:border-brand before:translate-y-[6px] before:-z-10 before:pointer-events-none'), [
59
59
  shape,
60
60
  hasFooter,
61
61
  activeStatus,
62
62
  isSelected,
63
63
  isHovered,
64
+ isStacked,
64
65
  interactionState
65
66
  ]);
66
67
  return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
@@ -69,6 +70,7 @@ const BaseContainer = ({ isSelected, isHovered, shape, interactionState, executi
69
70
  "data-interaction-state": interactionState,
70
71
  "data-validation-status": validationStatus,
71
72
  "data-suggestion-type": suggestionType,
73
+ "data-stacked": isStacked || void 0,
72
74
  className: className,
73
75
  style: background ? {
74
76
  background
@@ -6,6 +6,7 @@ export declare const getStatusBorder: (status?: ElementStatusValues | Validation
6
6
  interface BaseContainerProps {
7
7
  isSelected?: boolean;
8
8
  isHovered?: boolean;
9
+ isStacked?: boolean;
9
10
  shape?: NodeShape;
10
11
  interactionState?: string;
11
12
  executionStatus?: ElementStatusValues;
@@ -16,6 +17,6 @@ interface BaseContainerProps {
16
17
  loading?: boolean;
17
18
  children: React.ReactNode;
18
19
  }
19
- export declare const BaseContainer: ({ isSelected, isHovered, shape, interactionState, executionStatus, validationStatus, suggestionType, hasFooter, background, loading, children, }: BaseContainerProps) => import("react/jsx-runtime").JSX.Element;
20
+ export declare const BaseContainer: ({ isSelected, isHovered, isStacked, shape, interactionState, executionStatus, validationStatus, suggestionType, hasFooter, background, loading, children, }: BaseContainerProps) => import("react/jsx-runtime").JSX.Element;
20
21
  export {};
21
22
  //# sourceMappingURL=BaseNodeContainer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseNodeContainer.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/BaseNode/BaseNodeContainer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,eAAO,MAAM,eAAe,GAC1B,SAAS,mBAAmB,GAAG,uBAAuB,GAAG,cAAc,KACtE,MAsBF,CAAC;AAEF,UAAU,kBAAkB;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,mBAAmB,CAAC;IACtC,gBAAgB,CAAC,EAAE,uBAAuB,CAAC;IAC3C,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,eAAO,MAAM,aAAa,GAAI,kJAY3B,kBAAkB,4CAsCpB,CAAC"}
1
+ {"version":3,"file":"BaseNodeContainer.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/BaseNode/BaseNodeContainer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,eAAO,MAAM,eAAe,GAC1B,SAAS,mBAAmB,GAAG,uBAAuB,GAAG,cAAc,KACtE,MAsBF,CAAC;AAEF,UAAU,kBAAkB;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,mBAAmB,CAAC;IACtC,gBAAgB,CAAC,EAAE,uBAAuB,CAAC;IAC3C,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,eAAO,MAAM,aAAa,GAAI,6JAa3B,kBAAkB,4CA4CpB,CAAC"}
@@ -24,14 +24,15 @@ const getStatusBorder = (status)=>{
24
24
  return '';
25
25
  }
26
26
  };
27
- const BaseContainer = ({ isSelected, isHovered, shape, interactionState, executionStatus, validationStatus, suggestionType, hasFooter, background, loading, children })=>{
27
+ const BaseContainer = ({ isSelected, isHovered, isStacked, shape, interactionState, executionStatus, validationStatus, suggestionType, hasFooter, background, loading, children })=>{
28
28
  const activeStatus = suggestionType ?? validationStatus ?? executionStatus;
29
- const className = useMemo(()=>cn('relative flex items-center cursor-pointer bg-surface-overlay border border-border', 'w-(--node-w) h-(--node-h) rounded-(--node-radius)', 'shadow-(--canvas-node-shadow-rest) outline-offset-0 transition-[box-shadow,border-color] duration-150', 'rectangle' === shape ? 'flex-row justify-start gap-3 p-(--node-gap)' : 'flex-col justify-center', hasFooter && 'flex-wrap', getStatusBorder(activeStatus), isHovered && 'shadow-(--canvas-node-shadow-hover) border-border-hover', isSelected && 'outline outline-2 outline-foreground-accent-muted', 'disabled' === interactionState && 'opacity-50 cursor-not-allowed', 'drag' === interactionState && 'cursor-grabbing shadow-(--canvas-node-shadow-lifted)'), [
29
+ const className = useMemo(()=>cn('relative flex items-center cursor-pointer bg-surface-overlay border border-border', 'w-(--node-w) h-(--node-h) rounded-(--node-radius)', 'shadow-(--canvas-node-shadow-rest) outline-offset-0 transition-[box-shadow,border-color] duration-150', 'rectangle' === shape ? 'flex-row justify-start gap-3 p-(--node-gap)' : 'flex-col justify-center', hasFooter && 'flex-wrap', getStatusBorder(activeStatus), isHovered && 'shadow-(--canvas-node-shadow-hover) border-border-hover', isSelected && 'outline outline-2 outline-foreground-accent-muted', 'disabled' === interactionState && 'opacity-50 cursor-not-allowed', 'drag' === interactionState && 'cursor-grabbing shadow-(--canvas-node-shadow-lifted)', isStacked && 'before:content-[""] before:absolute before:inset-x-0 before:top-0 before:h-full before:rounded-[inherit] before:bg-surface-overlay before:border before:border-brand before:translate-y-[6px] before:-z-10 before:pointer-events-none'), [
30
30
  shape,
31
31
  hasFooter,
32
32
  activeStatus,
33
33
  isSelected,
34
34
  isHovered,
35
+ isStacked,
35
36
  interactionState
36
37
  ]);
37
38
  return /*#__PURE__*/ jsx("div", {
@@ -40,6 +41,7 @@ const BaseContainer = ({ isSelected, isHovered, shape, interactionState, executi
40
41
  "data-interaction-state": interactionState,
41
42
  "data-validation-status": validationStatus,
42
43
  "data-suggestion-type": suggestionType,
44
+ "data-stacked": isStacked || void 0,
43
45
  className: className,
44
46
  style: background ? {
45
47
  background
@@ -50,11 +50,12 @@ const DraggableTaskComponent = ({ task, taskExecution, isSelected, isParallel, g
50
50
  }, []);
51
51
  const handleGetContextMenuItems = (0, external_react_namespaceObject.useCallback)(()=>{
52
52
  if (!getContextMenuItems) return [];
53
- return getContextMenuItems(groupIndex, taskIndex);
53
+ return getContextMenuItems(groupIndex, taskIndex, task.id);
54
54
  }, [
55
55
  getContextMenuItems,
56
56
  groupIndex,
57
- taskIndex
57
+ taskIndex,
58
+ task.id
58
59
  ]);
59
60
  const { attributes, listeners, setNodeRef, transition, transform, isDragging } = (0, sortable_namespaceObject.useSortable)({
60
61
  id: task.id,
@@ -22,11 +22,12 @@ const DraggableTaskComponent = ({ task, taskExecution, isSelected, isParallel, g
22
22
  }, []);
23
23
  const handleGetContextMenuItems = useCallback(()=>{
24
24
  if (!getContextMenuItems) return [];
25
- return getContextMenuItems(groupIndex, taskIndex);
25
+ return getContextMenuItems(groupIndex, taskIndex, task.id);
26
26
  }, [
27
27
  getContextMenuItems,
28
28
  groupIndex,
29
- taskIndex
29
+ taskIndex,
30
+ task.id
30
31
  ]);
31
32
  const { attributes, listeners, setNodeRef, transition, transform, isDragging } = useSortable({
32
33
  id: task.id,
@@ -7,7 +7,7 @@ export interface DraggableTaskProps {
7
7
  isParallel: boolean;
8
8
  groupIndex: number;
9
9
  taskIndex: number;
10
- getContextMenuItems?: (groupIndex: number, taskIndex: number) => NodeMenuItem[];
10
+ getContextMenuItems?: (groupIndex: number, taskIndex: number, taskId: string) => NodeMenuItem[];
11
11
  onTaskClick: (e: React.MouseEvent, taskId: string) => void;
12
12
  onTaskPlay?: (taskId: string) => Promise<void>;
13
13
  isDragDisabled?: boolean;
@@ -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,kBAAkB;IACjC,IAAI,EAAE,aAAa,CAAC;IACpB,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,YAAY,EAAE,CAAC;IAChF,WAAW,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3D,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,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB"}
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,kBAAkB;IACjC,IAAI,EAAE,aAAa,CAAC;IACpB,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,YAAY,EAAE,CAAC;IAChG,WAAW,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3D,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,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB"}
@@ -28,34 +28,20 @@ __webpack_require__.d(__webpack_exports__, {
28
28
  });
29
29
  const jsx_runtime_namespaceObject = require("react/jsx-runtime");
30
30
  const external_react_namespaceObject = require("react");
31
- const GroupModificationUtils_cjs_namespaceObject = require("../../utils/GroupModificationUtils.cjs");
32
31
  const external_AdhocTask_cjs_namespaceObject = require("./AdhocTask.cjs");
33
32
  const external_StageNode_styles_cjs_namespaceObject = require("./StageNode.styles.cjs");
34
- const external_StageNodeTaskUtilities_cjs_namespaceObject = require("./StageNodeTaskUtilities.cjs");
35
- const StageNodeAdhocTaskGroupsInner = ({ props, adhocTasks, isReadOnly, selectedTaskId, taskStateReference, marginTop, handleTaskClick, setIsReplacingTask })=>{
36
- const { execution, onTaskClick, onTaskGroupModification, onReplaceTaskFromToolbox, onTaskPlay, loadingTaskIds } = props;
37
- const getAdhocContextMenuItems = (0, external_react_namespaceObject.useCallback)((groupIndex, taskIndex, taskId)=>{
33
+ const StageNodeAdhocTaskGroupsInner = ({ props, adhocTasks, isReadOnly, selectedTaskId, marginTop, handleTaskClick, generateReplaceTaskMenuItemForTask, generateDeleteTaskMenuItemForTask })=>{
34
+ const { execution, onTaskGroupModification, onReplaceTaskFromToolbox, onTaskPlay, loadingTaskIds } = props;
35
+ const getAdhocContextMenuItems = (0, external_react_namespaceObject.useCallback)((taskId)=>{
38
36
  const items = [];
39
- if (onReplaceTaskFromToolbox) items.push((0, external_StageNodeTaskUtilities_cjs_namespaceObject.getMenuItem)('replace-task', 'Replace task', ()=>{
40
- taskStateReference.current = {
41
- isParallel: false,
42
- groupIndex,
43
- taskIndex
44
- };
45
- onTaskClick?.(taskId);
46
- setIsReplacingTask(true);
47
- }));
48
- if (onTaskGroupModification) {
49
- if (items.length > 0) items.push((0, external_StageNodeTaskUtilities_cjs_namespaceObject.getDivider)());
50
- items.push((0, external_StageNodeTaskUtilities_cjs_namespaceObject.getMenuItem)('remove-task', 'Delete task', ()=>onTaskGroupModification(GroupModificationUtils_cjs_namespaceObject.GroupModificationType.REMOVE_TASK, groupIndex, taskIndex)));
51
- }
37
+ const replaceTaskMenuItem = generateReplaceTaskMenuItemForTask(taskId, false);
38
+ if (replaceTaskMenuItem) items.push(replaceTaskMenuItem);
39
+ const deleteTaskMenuItem = generateDeleteTaskMenuItemForTask(taskId);
40
+ if (deleteTaskMenuItem) items.push(deleteTaskMenuItem);
52
41
  return items;
53
42
  }, [
54
- onReplaceTaskFromToolbox,
55
- onTaskClick,
56
- onTaskGroupModification,
57
- setIsReplacingTask,
58
- taskStateReference
43
+ generateReplaceTaskMenuItemForTask,
44
+ generateDeleteTaskMenuItemForTask
59
45
  ]);
60
46
  if (0 === adhocTasks.length) return null;
61
47
  return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(external_StageNode_styles_cjs_namespaceObject.StageAdditionalTasksSection, {
@@ -70,7 +56,7 @@ const StageNodeAdhocTaskGroupsInner = ({ props, adhocTasks, isReadOnly, selected
70
56
  })
71
57
  }),
72
58
  /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_StageNode_styles_cjs_namespaceObject.StageTaskList, {
73
- children: adhocTasks.map(({ task, groupIndex, taskIndex })=>{
59
+ children: adhocTasks.map(({ task })=>{
74
60
  const taskExecution = execution?.taskStatus?.[task.id];
75
61
  return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_AdhocTask_cjs_namespaceObject.AdhocTaskItem, {
76
62
  task: task,
@@ -80,7 +66,7 @@ const StageNodeAdhocTaskGroupsInner = ({ props, adhocTasks, isReadOnly, selected
80
66
  onTaskPlay: onTaskPlay,
81
67
  isTaskLoading: loadingTaskIds?.has(task.id),
82
68
  ...(onTaskGroupModification || onReplaceTaskFromToolbox) && !isReadOnly && {
83
- getContextMenuItems: ()=>getAdhocContextMenuItems(groupIndex, taskIndex, task.id)
69
+ getContextMenuItems: ()=>getAdhocContextMenuItems(task.id)
84
70
  }
85
71
  }, task.id);
86
72
  })
@@ -1,13 +1,13 @@
1
- import { RefObject } from 'react';
2
- import type { StageNodeProps, StageTaskGroup, TaskStateReference } from './StageNode.types';
3
- export declare const StageNodeAdhocTaskGroups: import("react").MemoExoticComponent<({ props, adhocTasks, isReadOnly, selectedTaskId, taskStateReference, marginTop, handleTaskClick, setIsReplacingTask, }: {
1
+ import type { NodeMenuItem } from '../NodeContextMenu';
2
+ import type { StageNodeProps, StageTaskGroup } from './StageNode.types';
3
+ export declare const StageNodeAdhocTaskGroups: import("react").MemoExoticComponent<({ props, adhocTasks, isReadOnly, selectedTaskId, marginTop, handleTaskClick, generateReplaceTaskMenuItemForTask, generateDeleteTaskMenuItemForTask, }: {
4
4
  props: StageNodeProps;
5
5
  adhocTasks: StageTaskGroup[];
6
6
  isReadOnly: boolean;
7
7
  selectedTaskId?: string;
8
- taskStateReference: RefObject<TaskStateReference>;
9
8
  marginTop: string;
10
9
  handleTaskClick: (e: React.MouseEvent, taskElementId: string) => void;
11
- setIsReplacingTask: (isReplacingTask: boolean) => void;
10
+ generateReplaceTaskMenuItemForTask: (taskId: string, isParallel: boolean) => NodeMenuItem | undefined;
11
+ generateDeleteTaskMenuItemForTask: (taskId: string) => NodeMenuItem | undefined;
12
12
  }) => import("react/jsx-runtime").JSX.Element | null>;
13
13
  //# sourceMappingURL=StageNodeAdhocTaskGroups.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StageNodeAdhocTaskGroups.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/StageNodeAdhocTaskGroups.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAQ,SAAS,EAAe,MAAM,OAAO,CAAC;AASrD,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAwG5F,eAAO,MAAM,wBAAwB,+JA5FlC;IACD,KAAK,EAAE,cAAc,CAAC;IACtB,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,SAAS,CAAC,kBAAkB,CAAC,CAAC;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,EAAE,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IACtE,kBAAkB,EAAE,CAAC,eAAe,EAAE,OAAO,KAAK,IAAI,CAAC;CACxD,oDAmF0E,CAAC"}
1
+ {"version":3,"file":"StageNodeAdhocTaskGroups.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/StageNodeAdhocTaskGroups.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAOvD,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAqFxE,eAAO,MAAM,wBAAwB,8LA1ElC;IACD,KAAK,EAAE,cAAc,CAAC;IACtB,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,EAAE,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IACtE,kCAAkC,EAAE,CAClC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,OAAO,KAChB,YAAY,GAAG,SAAS,CAAC;IAC9B,iCAAiC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,YAAY,GAAG,SAAS,CAAC;CACjF,oDA8D0E,CAAC"}
@@ -1,33 +1,19 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { memo, useCallback } from "react";
3
- import { GroupModificationType } from "../../utils/GroupModificationUtils.js";
4
3
  import { AdhocTaskItem } from "./AdhocTask.js";
5
4
  import { StageAdditionalTasksHeaderSection, StageAdditionalTasksSection, StageTaskList } from "./StageNode.styles.js";
6
- import { getDivider, getMenuItem } from "./StageNodeTaskUtilities.js";
7
- const StageNodeAdhocTaskGroupsInner = ({ props, adhocTasks, isReadOnly, selectedTaskId, taskStateReference, marginTop, handleTaskClick, setIsReplacingTask })=>{
8
- const { execution, onTaskClick, onTaskGroupModification, onReplaceTaskFromToolbox, onTaskPlay, loadingTaskIds } = props;
9
- const getAdhocContextMenuItems = useCallback((groupIndex, taskIndex, taskId)=>{
5
+ const StageNodeAdhocTaskGroupsInner = ({ props, adhocTasks, isReadOnly, selectedTaskId, marginTop, handleTaskClick, generateReplaceTaskMenuItemForTask, generateDeleteTaskMenuItemForTask })=>{
6
+ const { execution, onTaskGroupModification, onReplaceTaskFromToolbox, onTaskPlay, loadingTaskIds } = props;
7
+ const getAdhocContextMenuItems = useCallback((taskId)=>{
10
8
  const items = [];
11
- if (onReplaceTaskFromToolbox) items.push(getMenuItem('replace-task', 'Replace task', ()=>{
12
- taskStateReference.current = {
13
- isParallel: false,
14
- groupIndex,
15
- taskIndex
16
- };
17
- onTaskClick?.(taskId);
18
- setIsReplacingTask(true);
19
- }));
20
- if (onTaskGroupModification) {
21
- if (items.length > 0) items.push(getDivider());
22
- items.push(getMenuItem('remove-task', 'Delete task', ()=>onTaskGroupModification(GroupModificationType.REMOVE_TASK, groupIndex, taskIndex)));
23
- }
9
+ const replaceTaskMenuItem = generateReplaceTaskMenuItemForTask(taskId, false);
10
+ if (replaceTaskMenuItem) items.push(replaceTaskMenuItem);
11
+ const deleteTaskMenuItem = generateDeleteTaskMenuItemForTask(taskId);
12
+ if (deleteTaskMenuItem) items.push(deleteTaskMenuItem);
24
13
  return items;
25
14
  }, [
26
- onReplaceTaskFromToolbox,
27
- onTaskClick,
28
- onTaskGroupModification,
29
- setIsReplacingTask,
30
- taskStateReference
15
+ generateReplaceTaskMenuItemForTask,
16
+ generateDeleteTaskMenuItemForTask
31
17
  ]);
32
18
  if (0 === adhocTasks.length) return null;
33
19
  return /*#__PURE__*/ jsxs(StageAdditionalTasksSection, {
@@ -42,7 +28,7 @@ const StageNodeAdhocTaskGroupsInner = ({ props, adhocTasks, isReadOnly, selected
42
28
  })
43
29
  }),
44
30
  /*#__PURE__*/ jsx(StageTaskList, {
45
- children: adhocTasks.map(({ task, groupIndex, taskIndex })=>{
31
+ children: adhocTasks.map(({ task })=>{
46
32
  const taskExecution = execution?.taskStatus?.[task.id];
47
33
  return /*#__PURE__*/ jsx(AdhocTaskItem, {
48
34
  task: task,
@@ -52,7 +38,7 @@ const StageNodeAdhocTaskGroupsInner = ({ props, adhocTasks, isReadOnly, selected
52
38
  onTaskPlay: onTaskPlay,
53
39
  isTaskLoading: loadingTaskIds?.has(task.id),
54
40
  ...(onTaskGroupModification || onReplaceTaskFromToolbox) && !isReadOnly && {
55
- getContextMenuItems: ()=>getAdhocContextMenuItems(groupIndex, taskIndex, task.id)
41
+ getContextMenuItems: ()=>getAdhocContextMenuItems(task.id)
56
42
  }
57
43
  }, task.id);
58
44
  })
@@ -31,11 +31,13 @@ const apollo_core_namespaceObject = require("@uipath/apollo-core");
31
31
  const index_cjs_namespaceObject = require("../../layouts/index.cjs");
32
32
  const apollo_wind_namespaceObject = require("@uipath/apollo-wind");
33
33
  const external_react_namespaceObject = require("react");
34
+ const external_utils_index_cjs_namespaceObject = require("../../utils/index.cjs");
34
35
  const useStageTasksByGroups_cjs_namespaceObject = require("./hooks/useStageTasksByGroups.cjs");
35
36
  const external_StageNode_styles_cjs_namespaceObject = require("./StageNode.styles.cjs");
36
37
  const external_StageNodeAdhocTaskGroups_cjs_namespaceObject = require("./StageNodeAdhocTaskGroups.cjs");
37
38
  const external_StageNodeEventDrivenTaskGroups_cjs_namespaceObject = require("./StageNodeEventDrivenTaskGroups.cjs");
38
39
  const external_StageNodeSequentialTaskGroups_cjs_namespaceObject = require("./StageNodeSequentialTaskGroups.cjs");
40
+ const external_StageNodeTaskUtilities_cjs_namespaceObject = require("./StageNodeTaskUtilities.cjs");
39
41
  const StageNodeAllTaskGroupsInner = ({ props, isReadOnly, taskWidthStyle, taskStateReference, setSelectedNodeId, handleTaskAddClick, setIsReplacingTask })=>{
40
42
  const { id, stageDetails, onTaskAdd, onAddTaskFromToolbox, onTaskClick, onTaskGroupModification, onTaskReorder, onReplaceTaskFromToolbox } = props;
41
43
  const allTasks = (0, external_react_namespaceObject.useMemo)(()=>stageDetails?.tasks || [], [
@@ -66,6 +68,47 @@ const StageNodeAllTaskGroupsInner = ({ props, isReadOnly, taskWidthStyle, taskSt
66
68
  setSelectedNodeId,
67
69
  id
68
70
  ]);
71
+ const generateReplaceTaskMenuItemForTask = (0, external_react_namespaceObject.useCallback)((taskId, isParallel)=>{
72
+ if (!onReplaceTaskFromToolbox) return;
73
+ let groupIndex;
74
+ let taskIndex;
75
+ for (const [allTasksGroupIndex, group] of allTasks.entries())for (const [allTasksTaskIndex, task] of group.entries())if (task.id === taskId) {
76
+ groupIndex = allTasksGroupIndex;
77
+ taskIndex = allTasksTaskIndex;
78
+ break;
79
+ }
80
+ if (void 0 === groupIndex || void 0 === taskIndex) return;
81
+ return (0, external_StageNodeTaskUtilities_cjs_namespaceObject.getMenuItem)('replace-task', 'Replace task', ()=>{
82
+ taskStateReference.current = {
83
+ isParallel,
84
+ groupIndex,
85
+ taskIndex
86
+ };
87
+ onTaskClick?.(taskId);
88
+ setIsReplacingTask(true);
89
+ });
90
+ }, [
91
+ onReplaceTaskFromToolbox,
92
+ allTasks,
93
+ onTaskClick,
94
+ setIsReplacingTask,
95
+ taskStateReference
96
+ ]);
97
+ const generateDeleteTaskMenuItemForTask = (0, external_react_namespaceObject.useCallback)((taskId)=>{
98
+ if (!onTaskGroupModification) return;
99
+ let groupIndex;
100
+ let taskIndex;
101
+ for (const [allTasksGroupIndex, group] of allTasks.entries())for (const [allTasksTaskIndex, task] of group.entries())if (task.id === taskId) {
102
+ groupIndex = allTasksGroupIndex;
103
+ taskIndex = allTasksTaskIndex;
104
+ break;
105
+ }
106
+ if (void 0 === groupIndex || void 0 === taskIndex) return;
107
+ return (0, external_StageNodeTaskUtilities_cjs_namespaceObject.getMenuItem)('remove-task', 'Delete task', ()=>onTaskGroupModification(external_utils_index_cjs_namespaceObject.GroupModificationType.REMOVE_TASK, groupIndex, taskIndex));
108
+ }, [
109
+ allTasks,
110
+ onTaskGroupModification
111
+ ]);
69
112
  return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_StageNode_styles_cjs_namespaceObject.StageContent, {
70
113
  children: 0 === sequentialTaskGroups.length && 0 === adhocTaskGroups.length && 0 === eventDrivenTaskGroups.length ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.Column, {
71
114
  py: 2,
@@ -89,31 +132,31 @@ const StageNodeAllTaskGroupsInner = ({ props, isReadOnly, taskWidthStyle, taskSt
89
132
  isReadOnly: isReadOnly,
90
133
  selectedTaskId: selectedTaskId,
91
134
  taskWidthStyle: taskWidthStyle,
92
- taskStateReference: taskStateReference,
93
135
  hasContextMenu: hasContextMenu,
94
136
  handleTaskClick: handleTaskClick,
95
- setIsReplacingTask: setIsReplacingTask,
96
- handleReorderSequentialTasks: handleReorderSequentialTasks
137
+ handleReorderSequentialTasks: handleReorderSequentialTasks,
138
+ allTasks: allTasks,
139
+ generateReplaceTaskMenuItemForTask: generateReplaceTaskMenuItemForTask
97
140
  }),
98
141
  /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_StageNodeEventDrivenTaskGroups_cjs_namespaceObject.StageNodeEventDrivenTaskGroups, {
99
142
  props: props,
100
143
  eventDrivenTasks: eventDrivenTasks,
101
144
  isReadOnly: isReadOnly,
102
145
  selectedTaskId: selectedTaskId,
103
- taskStateReference: taskStateReference,
104
146
  marginTop: sequentialTaskGroups.length > 0 ? apollo_core_namespaceObject.Spacing.SpacingS : '0px',
105
147
  handleTaskClick: handleTaskClick,
106
- setIsReplacingTask: setIsReplacingTask
148
+ generateReplaceTaskMenuItemForTask: generateReplaceTaskMenuItemForTask,
149
+ generateDeleteTaskMenuItemForTask: generateDeleteTaskMenuItemForTask
107
150
  }),
108
151
  /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_StageNodeAdhocTaskGroups_cjs_namespaceObject.StageNodeAdhocTaskGroups, {
109
152
  props: props,
110
153
  adhocTasks: adhocTasks,
111
154
  isReadOnly: isReadOnly,
112
155
  selectedTaskId: selectedTaskId,
113
- taskStateReference: taskStateReference,
114
156
  marginTop: sequentialTaskGroups.length > 0 || eventDrivenTaskGroups.length > 0 ? apollo_core_namespaceObject.Spacing.SpacingS : '0px',
115
157
  handleTaskClick: handleTaskClick,
116
- setIsReplacingTask: setIsReplacingTask
158
+ generateReplaceTaskMenuItemForTask: generateReplaceTaskMenuItemForTask,
159
+ generateDeleteTaskMenuItemForTask: generateDeleteTaskMenuItemForTask
117
160
  })
118
161
  ]
119
162
  })
@@ -1 +1 @@
1
- {"version":3,"file":"StageNodeAllTaskGroups.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/StageNodeAllTaskGroups.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAQ,SAAS,EAAwB,MAAM,OAAO,CAAC;AAG7E,OAAO,KAAK,EAAE,cAAc,EAAiB,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAiI3F,eAAO,MAAM,sBAAsB,8JApHhC;IACD,KAAK,EAAE,cAAc,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,kBAAkB,EAAE,SAAS,CAAC,kBAAkB,CAAC,CAAC;IAClD,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,kBAAkB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IACtD,kBAAkB,EAAE,CAAC,eAAe,EAAE,OAAO,KAAK,IAAI,CAAC;CACxD,6CA4GsE,CAAC"}
1
+ {"version":3,"file":"StageNodeAllTaskGroups.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/StageNodeAllTaskGroups.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAQ,SAAS,EAAwB,MAAM,OAAO,CAAC;AAI7E,OAAO,KAAK,EAAE,cAAc,EAAiB,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAgM3F,eAAO,MAAM,sBAAsB,8JAlLhC;IACD,KAAK,EAAE,cAAc,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,kBAAkB,EAAE,SAAS,CAAC,kBAAkB,CAAC,CAAC;IAClD,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,kBAAkB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IACtD,kBAAkB,EAAE,CAAC,eAAe,EAAE,OAAO,KAAK,IAAI,CAAC;CACxD,6CA0KsE,CAAC"}
@@ -3,11 +3,13 @@ import { Spacing } from "@uipath/apollo-core";
3
3
  import { Column } from "../../layouts/index.js";
4
4
  import { Button } from "@uipath/apollo-wind";
5
5
  import { memo, useCallback, useMemo } from "react";
6
+ import { GroupModificationType } from "../../utils/index.js";
6
7
  import { useStageTasksByGroups } from "./hooks/useStageTasksByGroups.js";
7
8
  import { StageContent } from "./StageNode.styles.js";
8
9
  import { StageNodeAdhocTaskGroups } from "./StageNodeAdhocTaskGroups.js";
9
10
  import { StageNodeEventDrivenTaskGroups } from "./StageNodeEventDrivenTaskGroups.js";
10
11
  import { StageNodeSequentialTaskGroups } from "./StageNodeSequentialTaskGroups.js";
12
+ import { getMenuItem } from "./StageNodeTaskUtilities.js";
11
13
  const StageNodeAllTaskGroupsInner = ({ props, isReadOnly, taskWidthStyle, taskStateReference, setSelectedNodeId, handleTaskAddClick, setIsReplacingTask })=>{
12
14
  const { id, stageDetails, onTaskAdd, onAddTaskFromToolbox, onTaskClick, onTaskGroupModification, onTaskReorder, onReplaceTaskFromToolbox } = props;
13
15
  const allTasks = useMemo(()=>stageDetails?.tasks || [], [
@@ -38,6 +40,47 @@ const StageNodeAllTaskGroupsInner = ({ props, isReadOnly, taskWidthStyle, taskSt
38
40
  setSelectedNodeId,
39
41
  id
40
42
  ]);
43
+ const generateReplaceTaskMenuItemForTask = useCallback((taskId, isParallel)=>{
44
+ if (!onReplaceTaskFromToolbox) return;
45
+ let groupIndex;
46
+ let taskIndex;
47
+ for (const [allTasksGroupIndex, group] of allTasks.entries())for (const [allTasksTaskIndex, task] of group.entries())if (task.id === taskId) {
48
+ groupIndex = allTasksGroupIndex;
49
+ taskIndex = allTasksTaskIndex;
50
+ break;
51
+ }
52
+ if (void 0 === groupIndex || void 0 === taskIndex) return;
53
+ return getMenuItem('replace-task', 'Replace task', ()=>{
54
+ taskStateReference.current = {
55
+ isParallel,
56
+ groupIndex,
57
+ taskIndex
58
+ };
59
+ onTaskClick?.(taskId);
60
+ setIsReplacingTask(true);
61
+ });
62
+ }, [
63
+ onReplaceTaskFromToolbox,
64
+ allTasks,
65
+ onTaskClick,
66
+ setIsReplacingTask,
67
+ taskStateReference
68
+ ]);
69
+ const generateDeleteTaskMenuItemForTask = useCallback((taskId)=>{
70
+ if (!onTaskGroupModification) return;
71
+ let groupIndex;
72
+ let taskIndex;
73
+ for (const [allTasksGroupIndex, group] of allTasks.entries())for (const [allTasksTaskIndex, task] of group.entries())if (task.id === taskId) {
74
+ groupIndex = allTasksGroupIndex;
75
+ taskIndex = allTasksTaskIndex;
76
+ break;
77
+ }
78
+ if (void 0 === groupIndex || void 0 === taskIndex) return;
79
+ return getMenuItem('remove-task', 'Delete task', ()=>onTaskGroupModification(GroupModificationType.REMOVE_TASK, groupIndex, taskIndex));
80
+ }, [
81
+ allTasks,
82
+ onTaskGroupModification
83
+ ]);
41
84
  return /*#__PURE__*/ jsx(StageContent, {
42
85
  children: 0 === sequentialTaskGroups.length && 0 === adhocTaskGroups.length && 0 === eventDrivenTaskGroups.length ? /*#__PURE__*/ jsx(Column, {
43
86
  py: 2,
@@ -61,31 +104,31 @@ const StageNodeAllTaskGroupsInner = ({ props, isReadOnly, taskWidthStyle, taskSt
61
104
  isReadOnly: isReadOnly,
62
105
  selectedTaskId: selectedTaskId,
63
106
  taskWidthStyle: taskWidthStyle,
64
- taskStateReference: taskStateReference,
65
107
  hasContextMenu: hasContextMenu,
66
108
  handleTaskClick: handleTaskClick,
67
- setIsReplacingTask: setIsReplacingTask,
68
- handleReorderSequentialTasks: handleReorderSequentialTasks
109
+ handleReorderSequentialTasks: handleReorderSequentialTasks,
110
+ allTasks: allTasks,
111
+ generateReplaceTaskMenuItemForTask: generateReplaceTaskMenuItemForTask
69
112
  }),
70
113
  /*#__PURE__*/ jsx(StageNodeEventDrivenTaskGroups, {
71
114
  props: props,
72
115
  eventDrivenTasks: eventDrivenTasks,
73
116
  isReadOnly: isReadOnly,
74
117
  selectedTaskId: selectedTaskId,
75
- taskStateReference: taskStateReference,
76
118
  marginTop: sequentialTaskGroups.length > 0 ? Spacing.SpacingS : '0px',
77
119
  handleTaskClick: handleTaskClick,
78
- setIsReplacingTask: setIsReplacingTask
120
+ generateReplaceTaskMenuItemForTask: generateReplaceTaskMenuItemForTask,
121
+ generateDeleteTaskMenuItemForTask: generateDeleteTaskMenuItemForTask
79
122
  }),
80
123
  /*#__PURE__*/ jsx(StageNodeAdhocTaskGroups, {
81
124
  props: props,
82
125
  adhocTasks: adhocTasks,
83
126
  isReadOnly: isReadOnly,
84
127
  selectedTaskId: selectedTaskId,
85
- taskStateReference: taskStateReference,
86
128
  marginTop: sequentialTaskGroups.length > 0 || eventDrivenTaskGroups.length > 0 ? Spacing.SpacingS : '0px',
87
129
  handleTaskClick: handleTaskClick,
88
- setIsReplacingTask: setIsReplacingTask
130
+ generateReplaceTaskMenuItemForTask: generateReplaceTaskMenuItemForTask,
131
+ generateDeleteTaskMenuItemForTask: generateDeleteTaskMenuItemForTask
89
132
  })
90
133
  ]
91
134
  })
@@ -28,34 +28,20 @@ __webpack_require__.d(__webpack_exports__, {
28
28
  });
29
29
  const jsx_runtime_namespaceObject = require("react/jsx-runtime");
30
30
  const external_react_namespaceObject = require("react");
31
- const GroupModificationUtils_cjs_namespaceObject = require("../../utils/GroupModificationUtils.cjs");
32
31
  const external_EventDrivenTask_cjs_namespaceObject = require("./EventDrivenTask.cjs");
33
32
  const external_StageNode_styles_cjs_namespaceObject = require("./StageNode.styles.cjs");
34
- const external_StageNodeTaskUtilities_cjs_namespaceObject = require("./StageNodeTaskUtilities.cjs");
35
- const StageNodeEventDrivenTaskGroupsInner = ({ props, eventDrivenTasks, isReadOnly, selectedTaskId, taskStateReference, marginTop, handleTaskClick, setIsReplacingTask })=>{
36
- const { execution, onTaskClick, onTaskGroupModification, onReplaceTaskFromToolbox, loadingTaskIds } = props;
37
- const getEventDrivenContextMenuItems = (0, external_react_namespaceObject.useCallback)((groupIndex, taskIndex, taskId)=>{
33
+ const StageNodeEventDrivenTaskGroupsInner = ({ props, eventDrivenTasks, isReadOnly, selectedTaskId, marginTop, handleTaskClick, generateReplaceTaskMenuItemForTask, generateDeleteTaskMenuItemForTask })=>{
34
+ const { execution, onTaskGroupModification, onReplaceTaskFromToolbox, loadingTaskIds } = props;
35
+ const getEventDrivenContextMenuItems = (0, external_react_namespaceObject.useCallback)((taskId)=>{
38
36
  const items = [];
39
- if (onReplaceTaskFromToolbox) items.push((0, external_StageNodeTaskUtilities_cjs_namespaceObject.getMenuItem)('replace-task', 'Replace task', ()=>{
40
- taskStateReference.current = {
41
- isParallel: false,
42
- groupIndex,
43
- taskIndex
44
- };
45
- onTaskClick?.(taskId);
46
- setIsReplacingTask(true);
47
- }));
48
- if (onTaskGroupModification) {
49
- if (items.length > 0) items.push((0, external_StageNodeTaskUtilities_cjs_namespaceObject.getDivider)());
50
- items.push((0, external_StageNodeTaskUtilities_cjs_namespaceObject.getMenuItem)('remove-task', 'Delete task', ()=>onTaskGroupModification(GroupModificationUtils_cjs_namespaceObject.GroupModificationType.REMOVE_TASK, groupIndex, taskIndex)));
51
- }
37
+ const replaceTaskMenuItem = generateReplaceTaskMenuItemForTask(taskId, false);
38
+ if (replaceTaskMenuItem) items.push(replaceTaskMenuItem);
39
+ const deleteTaskMenuItem = generateDeleteTaskMenuItemForTask(taskId);
40
+ if (deleteTaskMenuItem) items.push(deleteTaskMenuItem);
52
41
  return items;
53
42
  }, [
54
- onReplaceTaskFromToolbox,
55
- onTaskClick,
56
- onTaskGroupModification,
57
- setIsReplacingTask,
58
- taskStateReference
43
+ generateReplaceTaskMenuItemForTask,
44
+ generateDeleteTaskMenuItemForTask
59
45
  ]);
60
46
  if (0 === eventDrivenTasks.length) return null;
61
47
  return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(external_StageNode_styles_cjs_namespaceObject.StageAdditionalTasksSection, {
@@ -70,7 +56,7 @@ const StageNodeEventDrivenTaskGroupsInner = ({ props, eventDrivenTasks, isReadOn
70
56
  })
71
57
  }),
72
58
  /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_StageNode_styles_cjs_namespaceObject.StageTaskList, {
73
- children: eventDrivenTasks.map(({ task, groupIndex, taskIndex })=>{
59
+ children: eventDrivenTasks.map(({ task })=>{
74
60
  const taskExecution = execution?.taskStatus?.[task.id];
75
61
  return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_EventDrivenTask_cjs_namespaceObject.EventDrivenTaskItem, {
76
62
  task: task,
@@ -79,7 +65,7 @@ const StageNodeEventDrivenTaskGroupsInner = ({ props, eventDrivenTasks, isReadOn
79
65
  onTaskClick: handleTaskClick,
80
66
  isTaskLoading: loadingTaskIds?.has(task.id),
81
67
  ...(onTaskGroupModification || onReplaceTaskFromToolbox) && !isReadOnly && {
82
- getContextMenuItems: ()=>getEventDrivenContextMenuItems(groupIndex, taskIndex, task.id)
68
+ getContextMenuItems: ()=>getEventDrivenContextMenuItems(task.id)
83
69
  }
84
70
  }, task.id);
85
71
  })
@@ -1,13 +1,13 @@
1
- import { RefObject } from 'react';
2
- import type { StageNodeProps, StageTaskGroup, TaskStateReference } from './StageNode.types';
3
- export declare const StageNodeEventDrivenTaskGroups: import("react").MemoExoticComponent<({ props, eventDrivenTasks, isReadOnly, selectedTaskId, taskStateReference, marginTop, handleTaskClick, setIsReplacingTask, }: {
1
+ import type { NodeMenuItem } from '../NodeContextMenu';
2
+ import type { StageNodeProps, StageTaskGroup } from './StageNode.types';
3
+ export declare const StageNodeEventDrivenTaskGroups: import("react").MemoExoticComponent<({ props, eventDrivenTasks, isReadOnly, selectedTaskId, marginTop, handleTaskClick, generateReplaceTaskMenuItemForTask, generateDeleteTaskMenuItemForTask, }: {
4
4
  props: StageNodeProps;
5
5
  eventDrivenTasks: StageTaskGroup[];
6
6
  isReadOnly: boolean;
7
7
  selectedTaskId?: string;
8
- taskStateReference: RefObject<TaskStateReference>;
9
8
  marginTop: string;
10
9
  handleTaskClick: (e: React.MouseEvent, taskElementId: string) => void;
11
- setIsReplacingTask: (isReplacingTask: boolean) => void;
10
+ generateReplaceTaskMenuItemForTask: (taskId: string, isParallel: boolean) => NodeMenuItem | undefined;
11
+ generateDeleteTaskMenuItemForTask: (taskId: string) => NodeMenuItem | undefined;
12
12
  }) => import("react/jsx-runtime").JSX.Element | null>;
13
13
  //# sourceMappingURL=StageNodeEventDrivenTaskGroups.d.ts.map