@uipath/apollo-react 6.22.3 → 6.23.0
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.
- package/dist/canvas/components/StageNode/StageNode.styles.cjs +7 -0
- package/dist/canvas/components/StageNode/StageNode.styles.d.ts.map +1 -1
- package/dist/canvas/components/StageNode/StageNode.styles.js +7 -0
- package/dist/canvas/components/StageNode/StageNode.types.d.ts +0 -5
- package/dist/canvas/components/StageNode/StageNode.types.d.ts.map +1 -1
- package/dist/canvas/components/StageNode/hooks/useStageTaskDragHandler.cjs +28 -53
- package/dist/canvas/components/StageNode/hooks/useStageTaskDragHandler.d.ts +7 -10
- package/dist/canvas/components/StageNode/hooks/useStageTaskDragHandler.d.ts.map +1 -1
- package/dist/canvas/components/StageNode/hooks/useStageTaskDragHandler.js +29 -54
- package/dist/canvas/components/StageNode/hooks/useStageTasksByGroups.cjs +12 -39
- package/dist/canvas/components/StageNode/hooks/useStageTasksByGroups.d.ts +0 -15
- package/dist/canvas/components/StageNode/hooks/useStageTasksByGroups.d.ts.map +1 -1
- package/dist/canvas/components/StageNode/hooks/useStageTasksByGroups.js +12 -39
- package/dist/canvas/components/StageNode/tasks/DraggableTask.cjs +4 -47
- package/dist/canvas/components/StageNode/tasks/DraggableTask.d.ts +1 -1
- package/dist/canvas/components/StageNode/tasks/DraggableTask.d.ts.map +1 -1
- package/dist/canvas/components/StageNode/tasks/DraggableTask.js +6 -49
- package/dist/canvas/components/StageNode/tasks/DraggableTask.types.d.ts +0 -1
- package/dist/canvas/components/StageNode/tasks/DraggableTask.types.d.ts.map +1 -1
- package/dist/canvas/components/StageNode/tasks/SortableTaskRow.cjs +75 -0
- package/dist/canvas/components/StageNode/tasks/SortableTaskRow.d.ts +7 -0
- package/dist/canvas/components/StageNode/tasks/SortableTaskRow.d.ts.map +1 -0
- package/dist/canvas/components/StageNode/tasks/SortableTaskRow.js +41 -0
- package/dist/canvas/components/StageNode/tasks/StageNodeAdhocTaskGroups.cjs +77 -25
- package/dist/canvas/components/StageNode/tasks/StageNodeAdhocTaskGroups.d.ts +6 -3
- package/dist/canvas/components/StageNode/tasks/StageNodeAdhocTaskGroups.d.ts.map +1 -1
- package/dist/canvas/components/StageNode/tasks/StageNodeAdhocTaskGroups.js +78 -26
- package/dist/canvas/components/StageNode/tasks/StageNodeAllTaskGroups.cjs +29 -4
- package/dist/canvas/components/StageNode/tasks/StageNodeAllTaskGroups.d.ts.map +1 -1
- package/dist/canvas/components/StageNode/tasks/StageNodeAllTaskGroups.js +29 -4
- package/dist/canvas/components/StageNode/tasks/StageNodeEventDrivenTaskGroups.cjs +76 -24
- package/dist/canvas/components/StageNode/tasks/StageNodeEventDrivenTaskGroups.d.ts +6 -3
- package/dist/canvas/components/StageNode/tasks/StageNodeEventDrivenTaskGroups.d.ts.map +1 -1
- package/dist/canvas/components/StageNode/tasks/StageNodeEventDrivenTaskGroups.js +77 -25
- package/dist/canvas/components/StageNode/tasks/StageNodeSequentialTaskGroups.cjs +53 -54
- package/dist/canvas/components/StageNode/tasks/StageNodeSequentialTaskGroups.d.ts +2 -3
- package/dist/canvas/components/StageNode/tasks/StageNodeSequentialTaskGroups.d.ts.map +1 -1
- package/dist/canvas/components/StageNode/tasks/StageNodeSequentialTaskGroups.js +53 -54
- package/dist/canvas/components/StageNode/tasks/TaskContent.cjs +1 -0
- package/dist/canvas/components/StageNode/tasks/TaskContent.d.ts.map +1 -1
- package/dist/canvas/components/StageNode/tasks/TaskContent.js +1 -0
- package/package.json +1 -1
|
@@ -15,7 +15,7 @@ const StageNodeAllTaskGroupsInner = ({ props, isReadOnly, taskWidthStyle, taskSt
|
|
|
15
15
|
const allTasks = useMemo(()=>stageDetails?.tasks || [], [
|
|
16
16
|
stageDetails?.tasks
|
|
17
17
|
]);
|
|
18
|
-
const { sequentialTaskGroups,
|
|
18
|
+
const { sequentialTaskGroups, adhocTaskGroups, eventDrivenTaskGroups } = useStageTasksByGroups(allTasks);
|
|
19
19
|
const selectedTaskId = stageDetails?.selectedTaskId;
|
|
20
20
|
const defaultContent = stageDetails?.defaultContent || (isReadOnly ? labels.noTasks : labels.addFirstTask);
|
|
21
21
|
const handleReorderSequentialTasks = useCallback((newTasks)=>{
|
|
@@ -30,6 +30,28 @@ const StageNodeAllTaskGroupsInner = ({ props, isReadOnly, taskWidthStyle, taskSt
|
|
|
30
30
|
eventDrivenTaskGroups,
|
|
31
31
|
adhocTaskGroups
|
|
32
32
|
]);
|
|
33
|
+
const handleReorderEventDrivenTasks = useCallback((newTasks)=>{
|
|
34
|
+
onTaskReorder?.([
|
|
35
|
+
...sequentialTaskGroups,
|
|
36
|
+
...newTasks,
|
|
37
|
+
...adhocTaskGroups
|
|
38
|
+
]);
|
|
39
|
+
}, [
|
|
40
|
+
onTaskReorder,
|
|
41
|
+
sequentialTaskGroups,
|
|
42
|
+
adhocTaskGroups
|
|
43
|
+
]);
|
|
44
|
+
const handleReorderAdhocTasks = useCallback((newTasks)=>{
|
|
45
|
+
onTaskReorder?.([
|
|
46
|
+
...sequentialTaskGroups,
|
|
47
|
+
...eventDrivenTaskGroups,
|
|
48
|
+
...newTasks
|
|
49
|
+
]);
|
|
50
|
+
}, [
|
|
51
|
+
onTaskReorder,
|
|
52
|
+
sequentialTaskGroups,
|
|
53
|
+
eventDrivenTaskGroups
|
|
54
|
+
]);
|
|
33
55
|
const handleTaskClick = useCallback((e, taskElementId)=>{
|
|
34
56
|
e.stopPropagation();
|
|
35
57
|
onTaskClick?.(taskElementId);
|
|
@@ -104,7 +126,6 @@ const StageNodeAllTaskGroupsInner = ({ props, isReadOnly, taskWidthStyle, taskSt
|
|
|
104
126
|
/*#__PURE__*/ jsx(StageNodeSequentialTaskGroups, {
|
|
105
127
|
props: props,
|
|
106
128
|
sequentialTaskGroups: sequentialTaskGroups,
|
|
107
|
-
sequentialTasks: sequentialTasks,
|
|
108
129
|
isReadOnly: isReadOnly,
|
|
109
130
|
selectedTaskId: selectedTaskId,
|
|
110
131
|
taskWidthStyle: taskWidthStyle,
|
|
@@ -115,19 +136,23 @@ const StageNodeAllTaskGroupsInner = ({ props, isReadOnly, taskWidthStyle, taskSt
|
|
|
115
136
|
}),
|
|
116
137
|
/*#__PURE__*/ jsx(StageNodeEventDrivenTaskGroups, {
|
|
117
138
|
props: props,
|
|
118
|
-
|
|
139
|
+
eventDrivenTaskGroups: eventDrivenTaskGroups,
|
|
119
140
|
isReadOnly: isReadOnly,
|
|
120
141
|
selectedTaskId: selectedTaskId,
|
|
142
|
+
taskWidthStyle: taskWidthStyle,
|
|
121
143
|
handleTaskClick: handleTaskClick,
|
|
144
|
+
handleReorderEventDrivenTasks: handleReorderEventDrivenTasks,
|
|
122
145
|
generateReplaceTaskMenuItemForTask: generateReplaceTaskMenuItemForTask,
|
|
123
146
|
generateDeleteTaskMenuItemForTask: generateDeleteTaskMenuItemForTask
|
|
124
147
|
}),
|
|
125
148
|
/*#__PURE__*/ jsx(StageNodeAdhocTaskGroups, {
|
|
126
149
|
props: props,
|
|
127
|
-
|
|
150
|
+
adhocTaskGroups: adhocTaskGroups,
|
|
128
151
|
isReadOnly: isReadOnly,
|
|
129
152
|
selectedTaskId: selectedTaskId,
|
|
153
|
+
taskWidthStyle: taskWidthStyle,
|
|
130
154
|
handleTaskClick: handleTaskClick,
|
|
155
|
+
handleReorderAdhocTasks: handleReorderAdhocTasks,
|
|
131
156
|
generateReplaceTaskMenuItemForTask: generateReplaceTaskMenuItemForTask,
|
|
132
157
|
generateDeleteTaskMenuItemForTask: generateDeleteTaskMenuItemForTask
|
|
133
158
|
})
|
|
@@ -27,15 +27,40 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
27
27
|
StageNodeEventDrivenTaskGroups: ()=>StageNodeEventDrivenTaskGroups
|
|
28
28
|
});
|
|
29
29
|
const jsx_runtime_namespaceObject = require("react/jsx-runtime");
|
|
30
|
+
const core_namespaceObject = require("@dnd-kit/core");
|
|
31
|
+
const sortable_namespaceObject = require("@dnd-kit/sortable");
|
|
30
32
|
const external_react_namespaceObject = require("react");
|
|
33
|
+
const useStageTaskDragHandler_cjs_namespaceObject = require("../hooks/useStageTaskDragHandler.cjs");
|
|
31
34
|
const external_StageNode_styles_cjs_namespaceObject = require("../StageNode.styles.cjs");
|
|
32
35
|
const StageItemsHeaderTitle_cjs_namespaceObject = require("../shared/StageItemsHeaderTitle.cjs");
|
|
33
36
|
const external_useStageNodeLabels_cjs_namespaceObject = require("../useStageNodeLabels.cjs");
|
|
34
37
|
const external_EventDrivenTask_cjs_namespaceObject = require("./EventDrivenTask.cjs");
|
|
35
|
-
const
|
|
36
|
-
|
|
38
|
+
const external_SortableTaskRow_cjs_namespaceObject = require("./SortableTaskRow.cjs");
|
|
39
|
+
const external_StageNodeTaskUtilities_cjs_namespaceObject = require("./StageNodeTaskUtilities.cjs");
|
|
40
|
+
const external_StageTaskDragOverlay_cjs_namespaceObject = require("./StageTaskDragOverlay.cjs");
|
|
41
|
+
const StageNodeEventDrivenTaskGroupsInner = ({ props, eventDrivenTaskGroups, isReadOnly, selectedTaskId, taskWidthStyle, handleTaskClick, handleReorderEventDrivenTasks, generateReplaceTaskMenuItemForTask, generateDeleteTaskMenuItemForTask })=>{
|
|
42
|
+
const { id, execution, onTaskGroupModification, onReplaceTaskFromToolbox, onTaskReorder, loadingTaskIds, onTaskBreakpointToggle, getTaskContextMenuItems } = props;
|
|
37
43
|
const hasBuiltInTaskActions = !!(onReplaceTaskFromToolbox || onTaskGroupModification);
|
|
38
44
|
const labels = (0, external_useStageNodeLabels_cjs_namespaceObject.useStageNodeLabels)();
|
|
45
|
+
const isDragDisabled = !onTaskReorder || isReadOnly;
|
|
46
|
+
const rows = (0, external_react_namespaceObject.useMemo)(()=>eventDrivenTaskGroups.flat(), [
|
|
47
|
+
eventDrivenTaskGroups
|
|
48
|
+
]);
|
|
49
|
+
const rowIds = (0, external_react_namespaceObject.useMemo)(()=>rows.map((task)=>task.id), [
|
|
50
|
+
rows
|
|
51
|
+
]);
|
|
52
|
+
const { activeTask, handleDragStart, handleDragEnd, handleDragCancel } = (0, useStageTaskDragHandler_cjs_namespaceObject.useStageTaskDragHandler)({
|
|
53
|
+
taskGroups: eventDrivenTaskGroups,
|
|
54
|
+
onTaskReorder: handleReorderEventDrivenTasks,
|
|
55
|
+
allowRegrouping: false
|
|
56
|
+
});
|
|
57
|
+
const sensors = (0, core_namespaceObject.useSensors)((0, core_namespaceObject.useSensor)(core_namespaceObject.PointerSensor, {
|
|
58
|
+
activationConstraint: {
|
|
59
|
+
distance: 3
|
|
60
|
+
}
|
|
61
|
+
}), (0, core_namespaceObject.useSensor)(core_namespaceObject.KeyboardSensor, {
|
|
62
|
+
coordinateGetter: sortable_namespaceObject.sortableKeyboardCoordinates
|
|
63
|
+
}));
|
|
39
64
|
const getEventDrivenContextMenuItems = (0, external_react_namespaceObject.useCallback)((task)=>{
|
|
40
65
|
const items = [];
|
|
41
66
|
const replaceTaskMenuItem = generateReplaceTaskMenuItemForTask(task.id, false);
|
|
@@ -47,40 +72,67 @@ const StageNodeEventDrivenTaskGroupsInner = ({ props, eventDrivenTasks, isReadOn
|
|
|
47
72
|
}) ?? [];
|
|
48
73
|
items.push(...additionalMenuItems);
|
|
49
74
|
const deleteTaskMenuItem = generateDeleteTaskMenuItemForTask(task.id);
|
|
50
|
-
if (deleteTaskMenuItem)
|
|
75
|
+
if (deleteTaskMenuItem) {
|
|
76
|
+
if (items.length) items.push((0, external_StageNodeTaskUtilities_cjs_namespaceObject.getDivider)());
|
|
77
|
+
items.push(deleteTaskMenuItem);
|
|
78
|
+
}
|
|
51
79
|
return items;
|
|
52
80
|
}, [
|
|
53
81
|
generateReplaceTaskMenuItemForTask,
|
|
54
82
|
getTaskContextMenuItems,
|
|
55
83
|
generateDeleteTaskMenuItemForTask
|
|
56
84
|
]);
|
|
57
|
-
|
|
85
|
+
const taskList = /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_StageNode_styles_cjs_namespaceObject.StageItemsList, {
|
|
86
|
+
"data-testid": `event-driven-tasks-list-${id}`,
|
|
87
|
+
className: isDragDisabled ? void 0 : 'nodrag nopan',
|
|
88
|
+
children: rows.map((task)=>{
|
|
89
|
+
const taskExecution = execution?.taskStatus?.[task.id];
|
|
90
|
+
const hasMenu = !isReadOnly && hasBuiltInTaskActions || (getTaskContextMenuItems?.({
|
|
91
|
+
task,
|
|
92
|
+
taskGroupType: 'event-driven',
|
|
93
|
+
isParallel: false
|
|
94
|
+
})?.length ?? 0) > 0;
|
|
95
|
+
const row = /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_EventDrivenTask_cjs_namespaceObject.EventDrivenTaskItem, {
|
|
96
|
+
task: task,
|
|
97
|
+
taskExecution: taskExecution,
|
|
98
|
+
isSelected: selectedTaskId === task.id,
|
|
99
|
+
onTaskClick: handleTaskClick,
|
|
100
|
+
isTaskLoading: loadingTaskIds?.has(task.id),
|
|
101
|
+
isReadOnly: isReadOnly,
|
|
102
|
+
onToggleBreakpoint: isReadOnly ? onTaskBreakpointToggle : void 0,
|
|
103
|
+
getContextMenuItems: hasMenu ? getEventDrivenContextMenuItems : void 0
|
|
104
|
+
}, task.id);
|
|
105
|
+
return isDragDisabled ? row : /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_SortableTaskRow_cjs_namespaceObject.SortableTaskRow, {
|
|
106
|
+
taskId: task.id,
|
|
107
|
+
children: row
|
|
108
|
+
}, task.id);
|
|
109
|
+
})
|
|
110
|
+
});
|
|
111
|
+
if (0 === rows.length) return null;
|
|
58
112
|
return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(external_StageNode_styles_cjs_namespaceObject.StageItemsSection, {
|
|
59
113
|
children: [
|
|
60
114
|
/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(StageItemsHeaderTitle_cjs_namespaceObject.StageItemsHeaderTitle, {
|
|
61
115
|
title: labels.eventDrivenTasks,
|
|
62
116
|
testId: `event-driven-tasks-header-${id}`
|
|
63
117
|
}),
|
|
64
|
-
/*#__PURE__*/ (0, jsx_runtime_namespaceObject.
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
}, task.id);
|
|
83
|
-
})
|
|
118
|
+
isDragDisabled ? taskList : /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(core_namespaceObject.DndContext, {
|
|
119
|
+
collisionDetection: core_namespaceObject.closestCenter,
|
|
120
|
+
sensors: sensors,
|
|
121
|
+
onDragStart: handleDragStart,
|
|
122
|
+
onDragEnd: handleDragEnd,
|
|
123
|
+
onDragCancel: handleDragCancel,
|
|
124
|
+
children: [
|
|
125
|
+
/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(sortable_namespaceObject.SortableContext, {
|
|
126
|
+
items: rowIds,
|
|
127
|
+
strategy: sortable_namespaceObject.verticalListSortingStrategy,
|
|
128
|
+
children: taskList
|
|
129
|
+
}),
|
|
130
|
+
/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_StageTaskDragOverlay_cjs_namespaceObject.StageTaskDragOverlay, {
|
|
131
|
+
activeTask: activeTask,
|
|
132
|
+
isActiveTaskParallel: false,
|
|
133
|
+
taskWidthStyle: taskWidthStyle
|
|
134
|
+
})
|
|
135
|
+
]
|
|
84
136
|
})
|
|
85
137
|
]
|
|
86
138
|
});
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
+
import { type CSSProperties } from 'react';
|
|
1
2
|
import type { NodeMenuItem } from '../../NodeContextMenu';
|
|
2
|
-
import type { StageNodeProps,
|
|
3
|
-
export declare const StageNodeEventDrivenTaskGroups: import("react").MemoExoticComponent<({ props,
|
|
3
|
+
import type { StageNodeProps, StageTaskItem } from '../StageNode.types';
|
|
4
|
+
export declare const StageNodeEventDrivenTaskGroups: import("react").MemoExoticComponent<({ props, eventDrivenTaskGroups, isReadOnly, selectedTaskId, taskWidthStyle, handleTaskClick, handleReorderEventDrivenTasks, generateReplaceTaskMenuItemForTask, generateDeleteTaskMenuItemForTask, }: {
|
|
4
5
|
props: StageNodeProps;
|
|
5
|
-
|
|
6
|
+
eventDrivenTaskGroups: StageTaskItem[][];
|
|
6
7
|
isReadOnly: boolean;
|
|
7
8
|
selectedTaskId?: string;
|
|
9
|
+
taskWidthStyle?: CSSProperties;
|
|
8
10
|
handleTaskClick: (e: React.MouseEvent, taskElementId: string) => void;
|
|
11
|
+
handleReorderEventDrivenTasks: (newTasks: StageTaskItem[][]) => void;
|
|
9
12
|
generateReplaceTaskMenuItemForTask: (taskId: string, isParallel: boolean) => NodeMenuItem | undefined;
|
|
10
13
|
generateDeleteTaskMenuItemForTask: (taskId: string) => NodeMenuItem | undefined;
|
|
11
14
|
}) => import("react/jsx-runtime").JSX.Element | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StageNodeEventDrivenTaskGroups.d.ts","sourceRoot":"","sources":["../../../../../src/canvas/components/StageNode/tasks/StageNodeEventDrivenTaskGroups.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"StageNodeEventDrivenTaskGroups.d.ts","sourceRoot":"","sources":["../../../../../src/canvas/components/StageNode/tasks/StageNodeEventDrivenTaskGroups.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,KAAK,aAAa,EAA8B,MAAM,OAAO,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAG1D,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAwKxE,eAAO,MAAM,8BAA8B,6OAtJxC;IACD,KAAK,EAAE,cAAc,CAAC;IACtB,qBAAqB,EAAE,aAAa,EAAE,EAAE,CAAC;IACzC,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,eAAe,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,EAAE,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IACtE,6BAA6B,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,KAAK,IAAI,CAAC;IACrE,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,oDAyIsF,CAAC"}
|
|
@@ -1,13 +1,38 @@
|
|
|
1
1
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
2
|
+
import { DndContext, KeyboardSensor, PointerSensor, closestCenter, useSensor, useSensors } from "@dnd-kit/core";
|
|
3
|
+
import { SortableContext, sortableKeyboardCoordinates, verticalListSortingStrategy } from "@dnd-kit/sortable";
|
|
4
|
+
import { memo, useCallback, useMemo } from "react";
|
|
5
|
+
import { useStageTaskDragHandler } from "../hooks/useStageTaskDragHandler.js";
|
|
3
6
|
import { StageItemsList, StageItemsSection } from "../StageNode.styles.js";
|
|
4
7
|
import { StageItemsHeaderTitle } from "../shared/StageItemsHeaderTitle.js";
|
|
5
8
|
import { useStageNodeLabels } from "../useStageNodeLabels.js";
|
|
6
9
|
import { EventDrivenTaskItem } from "./EventDrivenTask.js";
|
|
7
|
-
|
|
8
|
-
|
|
10
|
+
import { SortableTaskRow } from "./SortableTaskRow.js";
|
|
11
|
+
import { getDivider } from "./StageNodeTaskUtilities.js";
|
|
12
|
+
import { StageTaskDragOverlay } from "./StageTaskDragOverlay.js";
|
|
13
|
+
const StageNodeEventDrivenTaskGroupsInner = ({ props, eventDrivenTaskGroups, isReadOnly, selectedTaskId, taskWidthStyle, handleTaskClick, handleReorderEventDrivenTasks, generateReplaceTaskMenuItemForTask, generateDeleteTaskMenuItemForTask })=>{
|
|
14
|
+
const { id, execution, onTaskGroupModification, onReplaceTaskFromToolbox, onTaskReorder, loadingTaskIds, onTaskBreakpointToggle, getTaskContextMenuItems } = props;
|
|
9
15
|
const hasBuiltInTaskActions = !!(onReplaceTaskFromToolbox || onTaskGroupModification);
|
|
10
16
|
const labels = useStageNodeLabels();
|
|
17
|
+
const isDragDisabled = !onTaskReorder || isReadOnly;
|
|
18
|
+
const rows = useMemo(()=>eventDrivenTaskGroups.flat(), [
|
|
19
|
+
eventDrivenTaskGroups
|
|
20
|
+
]);
|
|
21
|
+
const rowIds = useMemo(()=>rows.map((task)=>task.id), [
|
|
22
|
+
rows
|
|
23
|
+
]);
|
|
24
|
+
const { activeTask, handleDragStart, handleDragEnd, handleDragCancel } = useStageTaskDragHandler({
|
|
25
|
+
taskGroups: eventDrivenTaskGroups,
|
|
26
|
+
onTaskReorder: handleReorderEventDrivenTasks,
|
|
27
|
+
allowRegrouping: false
|
|
28
|
+
});
|
|
29
|
+
const sensors = useSensors(useSensor(PointerSensor, {
|
|
30
|
+
activationConstraint: {
|
|
31
|
+
distance: 3
|
|
32
|
+
}
|
|
33
|
+
}), useSensor(KeyboardSensor, {
|
|
34
|
+
coordinateGetter: sortableKeyboardCoordinates
|
|
35
|
+
}));
|
|
11
36
|
const getEventDrivenContextMenuItems = useCallback((task)=>{
|
|
12
37
|
const items = [];
|
|
13
38
|
const replaceTaskMenuItem = generateReplaceTaskMenuItemForTask(task.id, false);
|
|
@@ -19,40 +44,67 @@ const StageNodeEventDrivenTaskGroupsInner = ({ props, eventDrivenTasks, isReadOn
|
|
|
19
44
|
}) ?? [];
|
|
20
45
|
items.push(...additionalMenuItems);
|
|
21
46
|
const deleteTaskMenuItem = generateDeleteTaskMenuItemForTask(task.id);
|
|
22
|
-
if (deleteTaskMenuItem)
|
|
47
|
+
if (deleteTaskMenuItem) {
|
|
48
|
+
if (items.length) items.push(getDivider());
|
|
49
|
+
items.push(deleteTaskMenuItem);
|
|
50
|
+
}
|
|
23
51
|
return items;
|
|
24
52
|
}, [
|
|
25
53
|
generateReplaceTaskMenuItemForTask,
|
|
26
54
|
getTaskContextMenuItems,
|
|
27
55
|
generateDeleteTaskMenuItemForTask
|
|
28
56
|
]);
|
|
29
|
-
|
|
57
|
+
const taskList = /*#__PURE__*/ jsx(StageItemsList, {
|
|
58
|
+
"data-testid": `event-driven-tasks-list-${id}`,
|
|
59
|
+
className: isDragDisabled ? void 0 : 'nodrag nopan',
|
|
60
|
+
children: rows.map((task)=>{
|
|
61
|
+
const taskExecution = execution?.taskStatus?.[task.id];
|
|
62
|
+
const hasMenu = !isReadOnly && hasBuiltInTaskActions || (getTaskContextMenuItems?.({
|
|
63
|
+
task,
|
|
64
|
+
taskGroupType: 'event-driven',
|
|
65
|
+
isParallel: false
|
|
66
|
+
})?.length ?? 0) > 0;
|
|
67
|
+
const row = /*#__PURE__*/ jsx(EventDrivenTaskItem, {
|
|
68
|
+
task: task,
|
|
69
|
+
taskExecution: taskExecution,
|
|
70
|
+
isSelected: selectedTaskId === task.id,
|
|
71
|
+
onTaskClick: handleTaskClick,
|
|
72
|
+
isTaskLoading: loadingTaskIds?.has(task.id),
|
|
73
|
+
isReadOnly: isReadOnly,
|
|
74
|
+
onToggleBreakpoint: isReadOnly ? onTaskBreakpointToggle : void 0,
|
|
75
|
+
getContextMenuItems: hasMenu ? getEventDrivenContextMenuItems : void 0
|
|
76
|
+
}, task.id);
|
|
77
|
+
return isDragDisabled ? row : /*#__PURE__*/ jsx(SortableTaskRow, {
|
|
78
|
+
taskId: task.id,
|
|
79
|
+
children: row
|
|
80
|
+
}, task.id);
|
|
81
|
+
})
|
|
82
|
+
});
|
|
83
|
+
if (0 === rows.length) return null;
|
|
30
84
|
return /*#__PURE__*/ jsxs(StageItemsSection, {
|
|
31
85
|
children: [
|
|
32
86
|
/*#__PURE__*/ jsx(StageItemsHeaderTitle, {
|
|
33
87
|
title: labels.eventDrivenTasks,
|
|
34
88
|
testId: `event-driven-tasks-header-${id}`
|
|
35
89
|
}),
|
|
36
|
-
/*#__PURE__*/
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
}, task.id);
|
|
55
|
-
})
|
|
90
|
+
isDragDisabled ? taskList : /*#__PURE__*/ jsxs(DndContext, {
|
|
91
|
+
collisionDetection: closestCenter,
|
|
92
|
+
sensors: sensors,
|
|
93
|
+
onDragStart: handleDragStart,
|
|
94
|
+
onDragEnd: handleDragEnd,
|
|
95
|
+
onDragCancel: handleDragCancel,
|
|
96
|
+
children: [
|
|
97
|
+
/*#__PURE__*/ jsx(SortableContext, {
|
|
98
|
+
items: rowIds,
|
|
99
|
+
strategy: verticalListSortingStrategy,
|
|
100
|
+
children: taskList
|
|
101
|
+
}),
|
|
102
|
+
/*#__PURE__*/ jsx(StageTaskDragOverlay, {
|
|
103
|
+
activeTask: activeTask,
|
|
104
|
+
isActiveTaskParallel: false,
|
|
105
|
+
taskWidthStyle: taskWidthStyle
|
|
106
|
+
})
|
|
107
|
+
]
|
|
56
108
|
})
|
|
57
109
|
]
|
|
58
110
|
});
|
|
@@ -40,16 +40,16 @@ const external_useStageNodeLabels_cjs_namespaceObject = require("../useStageNode
|
|
|
40
40
|
const external_DraggableTask_cjs_namespaceObject = require("./DraggableTask.cjs");
|
|
41
41
|
const external_StageNodeTaskUtilities_cjs_namespaceObject = require("./StageNodeTaskUtilities.cjs");
|
|
42
42
|
const external_StageTaskDragOverlay_cjs_namespaceObject = require("./StageTaskDragOverlay.cjs");
|
|
43
|
-
const StageNodeSequentialTaskGroups = ({ props, sequentialTaskGroups,
|
|
43
|
+
const StageNodeSequentialTaskGroups = ({ props, sequentialTaskGroups, allTasks, isReadOnly, selectedTaskId, taskWidthStyle, handleTaskClick, handleReorderSequentialTasks, generateReplaceTaskMenuItemForTask })=>{
|
|
44
44
|
const { id, execution, onTaskGroupModification, onReplaceTaskFromToolbox, onTaskReorder, hideParallelOptions, loadingTaskIds, onTaskBreakpointToggle, getTaskContextMenuItems } = props;
|
|
45
45
|
const hasBuiltInTaskActions = !!(onReplaceTaskFromToolbox || onTaskGroupModification);
|
|
46
|
+
const isDragDisabled = !onTaskReorder || isReadOnly;
|
|
46
47
|
const labels = (0, external_useStageNodeLabels_cjs_namespaceObject.useStageNodeLabels)();
|
|
47
|
-
const sequentialTaskIds = (0, external_react_namespaceObject.useMemo)(()=>
|
|
48
|
-
|
|
48
|
+
const sequentialTaskIds = (0, external_react_namespaceObject.useMemo)(()=>sequentialTaskGroups.flat().map((task)=>task.id), [
|
|
49
|
+
sequentialTaskGroups
|
|
49
50
|
]);
|
|
50
|
-
const {
|
|
51
|
-
sequentialTaskGroups,
|
|
52
|
-
sequentialTasks,
|
|
51
|
+
const { activeTask, isActiveTaskParallel, handleDragStart, handleDragMove, handleDragEnd, handleDragCancel } = (0, useStageTaskDragHandler_cjs_namespaceObject.useStageTaskDragHandler)({
|
|
52
|
+
taskGroups: sequentialTaskGroups,
|
|
53
53
|
onTaskReorder: handleReorderSequentialTasks
|
|
54
54
|
});
|
|
55
55
|
const handleTaskRegroup = (0, external_react_namespaceObject.useCallback)((groupModificationType, groupIndex, taskIndex)=>{
|
|
@@ -124,6 +124,50 @@ const StageNodeSequentialTaskGroups = ({ props, sequentialTaskGroups, sequential
|
|
|
124
124
|
}), (0, core_namespaceObject.useSensor)(core_namespaceObject.KeyboardSensor, {
|
|
125
125
|
coordinateGetter: sortable_namespaceObject.sortableKeyboardCoordinates
|
|
126
126
|
}));
|
|
127
|
+
const taskList = /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_StageNode_styles_cjs_namespaceObject.StageItemsList, {
|
|
128
|
+
"data-testid": `sequential-tasks-list-${id}`,
|
|
129
|
+
className: "nodrag nopan",
|
|
130
|
+
children: sequentialTaskGroups.map((taskGroup, groupIndex)=>{
|
|
131
|
+
const isParallel = taskGroup.length > 1;
|
|
132
|
+
return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(index_cjs_namespaceObject.Row, {
|
|
133
|
+
gap: apollo_core_namespaceObject.Spacing.SpacingS,
|
|
134
|
+
children: [
|
|
135
|
+
isParallel && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_StageNode_styles_cjs_namespaceObject.StageParallelBracket, {}),
|
|
136
|
+
/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(external_StageNode_styles_cjs_namespaceObject.StageTaskGroupContainer, {
|
|
137
|
+
isParallel: isParallel,
|
|
138
|
+
children: [
|
|
139
|
+
isParallel && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_StageNode_styles_cjs_namespaceObject.StageParallelLabel, {
|
|
140
|
+
children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("span", {
|
|
141
|
+
className: "text-xs",
|
|
142
|
+
children: labels.parallel
|
|
143
|
+
})
|
|
144
|
+
}),
|
|
145
|
+
taskGroup.map((task)=>{
|
|
146
|
+
const taskExecution = execution?.taskStatus?.[task.id];
|
|
147
|
+
const hasMenu = !isReadOnly && hasBuiltInTaskActions || (getTaskContextMenuItems?.({
|
|
148
|
+
task,
|
|
149
|
+
taskGroupType: 'sequential',
|
|
150
|
+
isParallel
|
|
151
|
+
})?.length ?? 0) > 0;
|
|
152
|
+
return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_DraggableTask_cjs_namespaceObject.DraggableTask, {
|
|
153
|
+
task: task,
|
|
154
|
+
taskExecution: taskExecution,
|
|
155
|
+
isSelected: selectedTaskId === task.id,
|
|
156
|
+
isParallel: isParallel,
|
|
157
|
+
onTaskClick: handleTaskClick,
|
|
158
|
+
isDragDisabled: isDragDisabled,
|
|
159
|
+
isTaskLoading: loadingTaskIds?.has(task.id),
|
|
160
|
+
isReadOnly: isReadOnly,
|
|
161
|
+
onToggleBreakpoint: isReadOnly ? onTaskBreakpointToggle : void 0,
|
|
162
|
+
getContextMenuItems: hasMenu ? buildContextMenuItems : void 0
|
|
163
|
+
}, task.id);
|
|
164
|
+
})
|
|
165
|
+
]
|
|
166
|
+
})
|
|
167
|
+
]
|
|
168
|
+
}, `group-${groupIndex}`);
|
|
169
|
+
})
|
|
170
|
+
});
|
|
127
171
|
if (0 === sequentialTaskGroups.length) return null;
|
|
128
172
|
return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(external_StageNode_styles_cjs_namespaceObject.StageItemsSection, {
|
|
129
173
|
children: [
|
|
@@ -131,66 +175,21 @@ const StageNodeSequentialTaskGroups = ({ props, sequentialTaskGroups, sequential
|
|
|
131
175
|
title: labels.sequentialTasks,
|
|
132
176
|
testId: `sequential-tasks-header-${id}`
|
|
133
177
|
}),
|
|
134
|
-
/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(core_namespaceObject.DndContext, {
|
|
178
|
+
isDragDisabled ? taskList : /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(core_namespaceObject.DndContext, {
|
|
135
179
|
collisionDetection: core_namespaceObject.closestCenter,
|
|
136
180
|
sensors: sensors,
|
|
137
181
|
onDragStart: handleDragStart,
|
|
138
182
|
onDragMove: handleDragMove,
|
|
139
|
-
onDragOver: handleDragOver,
|
|
140
183
|
onDragEnd: handleDragEnd,
|
|
141
184
|
onDragCancel: handleDragCancel,
|
|
142
185
|
children: [
|
|
143
186
|
/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(sortable_namespaceObject.SortableContext, {
|
|
144
187
|
items: sequentialTaskIds,
|
|
145
188
|
strategy: sortable_namespaceObject.verticalListSortingStrategy,
|
|
146
|
-
children:
|
|
147
|
-
"data-testid": `sequential-tasks-list-${id}`,
|
|
148
|
-
className: "nodrag nopan",
|
|
149
|
-
children: sequentialTaskGroups.map((taskGroup, groupIndex)=>{
|
|
150
|
-
const isParallel = taskGroup.length > 1;
|
|
151
|
-
return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(index_cjs_namespaceObject.Row, {
|
|
152
|
-
gap: apollo_core_namespaceObject.Spacing.SpacingS,
|
|
153
|
-
children: [
|
|
154
|
-
isParallel && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_StageNode_styles_cjs_namespaceObject.StageParallelBracket, {}),
|
|
155
|
-
/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(external_StageNode_styles_cjs_namespaceObject.StageTaskGroupContainer, {
|
|
156
|
-
isParallel: isParallel,
|
|
157
|
-
children: [
|
|
158
|
-
isParallel && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_StageNode_styles_cjs_namespaceObject.StageParallelLabel, {
|
|
159
|
-
children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("span", {
|
|
160
|
-
className: "text-xs",
|
|
161
|
-
children: labels.parallel
|
|
162
|
-
})
|
|
163
|
-
}),
|
|
164
|
-
taskGroup.map((task)=>{
|
|
165
|
-
const taskExecution = execution?.taskStatus?.[task.id];
|
|
166
|
-
const hasMenu = !isReadOnly && hasBuiltInTaskActions || (getTaskContextMenuItems?.({
|
|
167
|
-
task,
|
|
168
|
-
taskGroupType: 'sequential',
|
|
169
|
-
isParallel
|
|
170
|
-
})?.length ?? 0) > 0;
|
|
171
|
-
return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_DraggableTask_cjs_namespaceObject.DraggableTask, {
|
|
172
|
-
task: task,
|
|
173
|
-
taskExecution: taskExecution,
|
|
174
|
-
isSelected: selectedTaskId === task.id,
|
|
175
|
-
isParallel: isParallel,
|
|
176
|
-
onTaskClick: handleTaskClick,
|
|
177
|
-
projectedDepth: task.id === activeDragId && projected ? projected.depth : void 0,
|
|
178
|
-
isDragDisabled: !onTaskReorder || isReadOnly,
|
|
179
|
-
isTaskLoading: loadingTaskIds?.has(task.id),
|
|
180
|
-
isReadOnly: isReadOnly,
|
|
181
|
-
onToggleBreakpoint: isReadOnly ? onTaskBreakpointToggle : void 0,
|
|
182
|
-
getContextMenuItems: hasMenu ? buildContextMenuItems : void 0
|
|
183
|
-
}, task.id);
|
|
184
|
-
})
|
|
185
|
-
]
|
|
186
|
-
})
|
|
187
|
-
]
|
|
188
|
-
}, `group-${groupIndex}`);
|
|
189
|
-
})
|
|
190
|
-
})
|
|
189
|
+
children: taskList
|
|
191
190
|
}),
|
|
192
191
|
/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_StageTaskDragOverlay_cjs_namespaceObject.StageTaskDragOverlay, {
|
|
193
|
-
activeTask:
|
|
192
|
+
activeTask: activeTask,
|
|
194
193
|
isActiveTaskParallel: isActiveTaskParallel,
|
|
195
194
|
taskWidthStyle: taskWidthStyle
|
|
196
195
|
})
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { type CSSProperties } from 'react';
|
|
2
2
|
import type { NodeMenuItem } from '../../NodeContextMenu';
|
|
3
|
-
import type { StageNodeProps,
|
|
4
|
-
export declare const StageNodeSequentialTaskGroups: ({ props, sequentialTaskGroups,
|
|
3
|
+
import type { StageNodeProps, StageTaskItem } from '../StageNode.types';
|
|
4
|
+
export declare const StageNodeSequentialTaskGroups: ({ props, sequentialTaskGroups, allTasks, isReadOnly, selectedTaskId, taskWidthStyle, handleTaskClick, handleReorderSequentialTasks, generateReplaceTaskMenuItemForTask, }: {
|
|
5
5
|
props: StageNodeProps;
|
|
6
6
|
sequentialTaskGroups: StageTaskItem[][];
|
|
7
|
-
sequentialTasks: StageTaskGroup[];
|
|
8
7
|
allTasks: StageTaskItem[][];
|
|
9
8
|
isReadOnly: boolean;
|
|
10
9
|
selectedTaskId?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StageNodeSequentialTaskGroups.d.ts","sourceRoot":"","sources":["../../../../../src/canvas/components/StageNode/tasks/StageNodeSequentialTaskGroups.tsx"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,aAAa,EAAwB,MAAM,OAAO,CAAC;AAMjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAS1D,OAAO,KAAK,EAAE,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"StageNodeSequentialTaskGroups.d.ts","sourceRoot":"","sources":["../../../../../src/canvas/components/StageNode/tasks/StageNodeSequentialTaskGroups.tsx"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,aAAa,EAAwB,MAAM,OAAO,CAAC;AAMjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAS1D,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAOxE,eAAO,MAAM,6BAA6B,GAAI,2KAU3C;IACD,KAAK,EAAE,cAAc,CAAC;IACtB,oBAAoB,EAAE,aAAa,EAAE,EAAE,CAAC;IACxC,QAAQ,EAAE,aAAa,EAAE,EAAE,CAAC;IAC5B,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,eAAe,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,EAAE,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IACtE,4BAA4B,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,KAAK,IAAI,CAAC;IACpE,kCAAkC,EAAE,CAClC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,OAAO,KAChB,YAAY,GAAG,SAAS,CAAC;CAC/B,mDAyNA,CAAC"}
|