@uipath/apollo-react 3.62.1 → 3.63.0-pr431.16bbfa4
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/CanvasPerformance.stories.cjs +361 -0
- package/dist/canvas/components/CanvasPerformance.stories.d.ts +6 -0
- package/dist/canvas/components/CanvasPerformance.stories.d.ts.map +1 -0
- package/dist/canvas/components/CanvasPerformance.stories.js +324 -0
- package/dist/canvas/components/NodePropertiesPanel/hooks/index.cjs +4 -1
- package/dist/canvas/components/NodePropertiesPanel/hooks/index.d.ts +1 -1
- package/dist/canvas/components/NodePropertiesPanel/hooks/index.d.ts.map +1 -1
- package/dist/canvas/components/NodePropertiesPanel/hooks/index.js +2 -2
- package/dist/canvas/components/NodePropertiesPanel/hooks/useNodeSelection.cjs +27 -6
- package/dist/canvas/components/NodePropertiesPanel/hooks/useNodeSelection.d.ts +3 -0
- package/dist/canvas/components/NodePropertiesPanel/hooks/useNodeSelection.d.ts.map +1 -1
- package/dist/canvas/components/NodePropertiesPanel/hooks/useNodeSelection.js +23 -5
- package/dist/canvas/components/StageNode/DraggableTask.cjs +14 -5
- package/dist/canvas/components/StageNode/DraggableTask.d.ts +1 -1
- package/dist/canvas/components/StageNode/DraggableTask.d.ts.map +1 -1
- package/dist/canvas/components/StageNode/DraggableTask.js +14 -5
- package/dist/canvas/components/StageNode/DraggableTask.types.d.ts +3 -3
- package/dist/canvas/components/StageNode/DraggableTask.types.d.ts.map +1 -1
- package/dist/canvas/components/StageNode/StageEdge.cjs +34 -11
- package/dist/canvas/components/StageNode/StageEdge.d.ts +2 -1
- package/dist/canvas/components/StageNode/StageEdge.d.ts.map +1 -1
- package/dist/canvas/components/StageNode/StageEdge.js +35 -12
- package/dist/canvas/components/StageNode/StageNode.cjs +76 -45
- package/dist/canvas/components/StageNode/StageNode.d.ts +1 -1
- package/dist/canvas/components/StageNode/StageNode.d.ts.map +1 -1
- package/dist/canvas/components/StageNode/StageNode.js +78 -47
- package/dist/canvas/components/StageNode/StageNode.stories.cjs +116 -157
- package/dist/canvas/components/StageNode/StageNode.stories.d.ts.map +1 -1
- package/dist/canvas/components/StageNode/StageNode.stories.js +112 -153
- package/dist/canvas/components/StageNode/StageNode.stories.utils.cjs +42 -0
- package/dist/canvas/components/StageNode/StageNode.stories.utils.d.ts +3 -0
- package/dist/canvas/components/StageNode/StageNode.stories.utils.d.ts.map +1 -0
- package/dist/canvas/components/StageNode/StageNode.stories.utils.js +8 -0
- package/dist/canvas/components/StageNode/StageNode.types.d.ts +9 -1
- package/dist/canvas/components/StageNode/StageNode.types.d.ts.map +1 -1
- package/dist/canvas/components/StageNode/TaskMenu.cjs +13 -17
- package/dist/canvas/components/StageNode/TaskMenu.d.ts +1 -2
- package/dist/canvas/components/StageNode/TaskMenu.d.ts.map +1 -1
- package/dist/canvas/components/StageNode/TaskMenu.js +14 -18
- package/dist/canvas/components/TaskIcon/TaskIcon.styles.cjs +1 -1
- package/dist/canvas/components/TaskIcon/TaskIcon.styles.js +1 -1
- package/dist/canvas/icons/CaseManagementProject.cjs +9 -18
- package/dist/canvas/icons/CaseManagementProject.d.ts.map +1 -1
- package/dist/canvas/icons/CaseManagementProject.js +9 -18
- package/package.json +1 -1
|
@@ -40,6 +40,7 @@ const jsx_runtime_namespaceObject = require("react/jsx-runtime");
|
|
|
40
40
|
const styled_namespaceObject = require("@emotion/styled");
|
|
41
41
|
var styled_default = /*#__PURE__*/ __webpack_require__.n(styled_namespaceObject);
|
|
42
42
|
const react_cjs_namespaceObject = require("../../xyflow/react.cjs");
|
|
43
|
+
const external_react_namespaceObject = require("react");
|
|
43
44
|
const StageEdgeLabel = styled_default().div`
|
|
44
45
|
position: absolute;
|
|
45
46
|
color: var(--uix-canvas-foreground);
|
|
@@ -57,6 +58,9 @@ const StageEdgeLabel = styled_default().div`
|
|
|
57
58
|
border-color: var(--uix-canvas-border-hover);
|
|
58
59
|
}
|
|
59
60
|
`;
|
|
61
|
+
function stageEdgeGeometryEquality(previous, next) {
|
|
62
|
+
return previous.sourceX === next.sourceX && previous.sourceY === next.sourceY && previous.targetX === next.targetX && previous.targetY === next.targetY;
|
|
63
|
+
}
|
|
60
64
|
function getArrowFromBezier(path, arrowSize) {
|
|
61
65
|
const pathEl = document.createElementNS('http://www.w3.org/2000/svg', 'path');
|
|
62
66
|
pathEl.setAttribute('d', path);
|
|
@@ -70,19 +74,13 @@ function getArrowFromBezier(path, arrowSize) {
|
|
|
70
74
|
angle
|
|
71
75
|
};
|
|
72
76
|
}
|
|
73
|
-
function
|
|
74
|
-
const sourceNode = (0, react_cjs_namespaceObject.useInternalNode)(rest.source);
|
|
75
|
-
const targetNode = (0, react_cjs_namespaceObject.useInternalNode)(rest.target);
|
|
76
|
-
const sourceNodeX = sourceNode ? sourceNode.position.x + (sourceNode.measured?.width ?? 0) : sourceX;
|
|
77
|
-
const sourceNodeY = sourceNode?.position.y ? sourceNode.position.y + 32 : sourceY;
|
|
78
|
-
const targetNodeX = targetNode?.position.x ?? targetX;
|
|
79
|
-
const targetNodeY = targetNode?.position.y ? targetNode.position.y + 32 : targetY;
|
|
77
|
+
function StageEdgeInner({ geometry, sourcePosition, targetPosition, selected, style, stroke = 'var(--uix-canvas-foreground-emp)', strokeWidth = 2, arrowSize = 8, ...rest }) {
|
|
80
78
|
const [pathData, labelX, labelY, _ex, _ey] = (0, react_cjs_namespaceObject.getSmoothStepPath)({
|
|
81
|
-
sourceX:
|
|
82
|
-
sourceY:
|
|
79
|
+
sourceX: geometry.sourceX,
|
|
80
|
+
sourceY: geometry.sourceY,
|
|
83
81
|
sourcePosition,
|
|
84
|
-
targetX:
|
|
85
|
-
targetY:
|
|
82
|
+
targetX: geometry.targetX - 1,
|
|
83
|
+
targetY: geometry.targetY,
|
|
86
84
|
targetPosition,
|
|
87
85
|
borderRadius: 40
|
|
88
86
|
});
|
|
@@ -141,6 +139,31 @@ function StageEdge({ sourceX, sourceY, targetX, targetY, sourcePosition, targetP
|
|
|
141
139
|
]
|
|
142
140
|
});
|
|
143
141
|
}
|
|
142
|
+
const StageEdgeInnerMemo = /*#__PURE__*/ (0, external_react_namespaceObject.memo)(StageEdgeInner);
|
|
143
|
+
function StageEdgeComponent({ sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, selected, style, stroke, strokeWidth, arrowSize, ...rest }) {
|
|
144
|
+
const geometry = (0, react_cjs_namespaceObject.useStore)((state)=>{
|
|
145
|
+
const sourceNode = state.nodeLookup.get(rest.source);
|
|
146
|
+
const targetNode = state.nodeLookup.get(rest.target);
|
|
147
|
+
return {
|
|
148
|
+
sourceX: sourceNode ? sourceNode.position.x + (sourceNode.measured?.width ?? 0) : sourceX,
|
|
149
|
+
sourceY: sourceNode ? sourceNode.position.y + 32 : sourceY,
|
|
150
|
+
targetX: targetNode?.position.x ?? targetX,
|
|
151
|
+
targetY: targetNode ? targetNode.position.y + 32 : targetY
|
|
152
|
+
};
|
|
153
|
+
}, stageEdgeGeometryEquality);
|
|
154
|
+
return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(StageEdgeInnerMemo, {
|
|
155
|
+
geometry: geometry,
|
|
156
|
+
sourcePosition: sourcePosition,
|
|
157
|
+
targetPosition: targetPosition,
|
|
158
|
+
selected: selected,
|
|
159
|
+
style: style,
|
|
160
|
+
stroke: stroke,
|
|
161
|
+
strokeWidth: strokeWidth,
|
|
162
|
+
arrowSize: arrowSize,
|
|
163
|
+
...rest
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
const StageEdge = /*#__PURE__*/ (0, external_react_namespaceObject.memo)(StageEdgeComponent);
|
|
144
167
|
exports.StageEdge = __webpack_exports__.StageEdge;
|
|
145
168
|
exports.StageEdgeLabel = __webpack_exports__.StageEdgeLabel;
|
|
146
169
|
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
@@ -8,6 +8,7 @@ type Props = EdgeProps & {
|
|
|
8
8
|
strokeWidth?: number;
|
|
9
9
|
arrowSize?: number;
|
|
10
10
|
};
|
|
11
|
-
|
|
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,
|
|
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,
|
|
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
|
|
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:
|
|
43
|
-
sourceY:
|
|
40
|
+
sourceX: geometry.sourceX,
|
|
41
|
+
sourceY: geometry.sourceY,
|
|
44
42
|
sourcePosition,
|
|
45
|
-
targetX:
|
|
46
|
-
targetY:
|
|
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 };
|
|
@@ -46,7 +46,33 @@ const external_DraggableTask_cjs_namespaceObject = require("./DraggableTask.cjs"
|
|
|
46
46
|
const external_StageNode_styles_cjs_namespaceObject = require("./StageNode.styles.cjs");
|
|
47
47
|
const external_StageNode_utils_cjs_namespaceObject = require("./StageNode.utils.cjs");
|
|
48
48
|
const external_StageNodeTaskUtilities_cjs_namespaceObject = require("./StageNodeTaskUtilities.cjs");
|
|
49
|
-
const
|
|
49
|
+
const StageNode_StageTaskDragOverlay = /*#__PURE__*/ (0, external_react_namespaceObject.memo)(function({ activeTask, isActiveTaskParallel, taskWidthStyle }) {
|
|
50
|
+
const { zoom } = (0, react_cjs_namespaceObject.useViewport)();
|
|
51
|
+
const dragOverlayStyle = (0, external_react_namespaceObject.useMemo)(()=>({
|
|
52
|
+
transform: `scale(${zoom})`,
|
|
53
|
+
transformOrigin: 'top left'
|
|
54
|
+
}), [
|
|
55
|
+
zoom
|
|
56
|
+
]);
|
|
57
|
+
return /*#__PURE__*/ (0, external_react_dom_namespaceObject.createPortal)(/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(core_namespaceObject.DragOverlay, {
|
|
58
|
+
children: activeTask ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
|
|
59
|
+
style: dragOverlayStyle,
|
|
60
|
+
children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_StageNode_styles_cjs_namespaceObject.StageTask, {
|
|
61
|
+
selected: true,
|
|
62
|
+
isParallel: isActiveTaskParallel,
|
|
63
|
+
style: {
|
|
64
|
+
cursor: 'grabbing',
|
|
65
|
+
...taskWidthStyle
|
|
66
|
+
},
|
|
67
|
+
children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_DraggableTask_cjs_namespaceObject.TaskContent, {
|
|
68
|
+
task: activeTask,
|
|
69
|
+
isDragging: true
|
|
70
|
+
})
|
|
71
|
+
})
|
|
72
|
+
}) : null
|
|
73
|
+
}), document.body);
|
|
74
|
+
});
|
|
75
|
+
const StageNodeInner = (props)=>{
|
|
50
76
|
const { dragging, selected, id, width, execution, stageDetails, addTaskLabel = 'Add task', addTaskLoading = false, replaceTaskLabel = 'Replace task', taskOptions = [], menuItems, pendingReplaceTask, onStageClick, onTaskAdd, onAddTaskFromToolbox, onTaskToolboxSearch, onTaskClick, onTaskGroupModification, onStageTitleChange, onTaskReorder, onReplaceTaskFromToolbox, onTaskPlay } = props;
|
|
51
77
|
const taskWidth = width ? width - external_StageNode_styles_cjs_namespaceObject.STAGE_CONTENT_INSET : void 0;
|
|
52
78
|
const tasks = (0, external_react_namespaceObject.useMemo)(()=>stageDetails?.tasks || [], [
|
|
@@ -66,9 +92,6 @@ const StageNodeComponent = (props)=>{
|
|
|
66
92
|
const status = execution?.stageStatus?.status;
|
|
67
93
|
const statusLabel = execution?.stageStatus?.label;
|
|
68
94
|
const stageDuration = execution?.stageStatus?.duration;
|
|
69
|
-
const reGroupTaskFunction = (0, external_react_namespaceObject.useMemo)(()=>onTaskGroupModification || (()=>{}), [
|
|
70
|
-
onTaskGroupModification
|
|
71
|
-
]);
|
|
72
95
|
const isStageTitleEditable = !!onStageTitleChange && !isReadOnly;
|
|
73
96
|
const [isHovered, setIsHovered] = (0, external_react_namespaceObject.useState)(false);
|
|
74
97
|
const [label, setLabel] = (0, external_react_namespaceObject.useState)(props.stageDetails.label);
|
|
@@ -85,6 +108,7 @@ const StageNodeComponent = (props)=>{
|
|
|
85
108
|
taskIndex: -1
|
|
86
109
|
});
|
|
87
110
|
const isConnecting = (0, react_cjs_namespaceObject.useStore)((state)=>!!state.connectionClickStartHandle);
|
|
111
|
+
const storeApi = (0, react_cjs_namespaceObject.useStoreApi)();
|
|
88
112
|
const connectedHandleIds = (0, ConnectedHandlesContext_cjs_namespaceObject.useConnectedHandles)(id);
|
|
89
113
|
const [isAddingTask, setIsAddingTask] = (0, external_react_namespaceObject.useState)(false);
|
|
90
114
|
const [isReplacingTask, setIsReplacingTask] = (0, external_react_namespaceObject.useState)(false);
|
|
@@ -124,7 +148,6 @@ const StageNodeComponent = (props)=>{
|
|
|
124
148
|
tasks,
|
|
125
149
|
activeDragId
|
|
126
150
|
]);
|
|
127
|
-
const { zoom } = (0, react_cjs_namespaceObject.useViewport)();
|
|
128
151
|
const projected = (0, external_react_namespaceObject.useMemo)(()=>{
|
|
129
152
|
if (!activeDragId || !overId) return null;
|
|
130
153
|
return (0, external_StageNode_utils_cjs_namespaceObject.getProjection)(tasks, activeDragId, overId, offsetLeft);
|
|
@@ -207,18 +230,26 @@ const StageNodeComponent = (props)=>{
|
|
|
207
230
|
handleStageTitleClickToSave,
|
|
208
231
|
isStageTitleEditing
|
|
209
232
|
]);
|
|
210
|
-
const
|
|
233
|
+
const hasContextMenu = !!(onReplaceTaskFromToolbox || onTaskGroupModification);
|
|
234
|
+
const buildContextMenuItems = (0, external_react_namespaceObject.useCallback)((groupIndex, taskIndex)=>{
|
|
235
|
+
const taskGroup = tasks[groupIndex] ?? [];
|
|
236
|
+
const isParallel = taskGroup.length > 1;
|
|
211
237
|
const items = [];
|
|
212
238
|
if (onReplaceTaskFromToolbox) {
|
|
213
239
|
items.push((0, external_StageNodeTaskUtilities_cjs_namespaceObject.getMenuItem)('replace-task', 'Replace task', ()=>{
|
|
214
|
-
|
|
240
|
+
taskStateReference.current = {
|
|
241
|
+
isParallel,
|
|
242
|
+
groupIndex,
|
|
243
|
+
taskIndex
|
|
244
|
+
};
|
|
245
|
+
const taskId = taskGroup[taskIndex]?.id;
|
|
215
246
|
if (taskId) onTaskClick?.(taskId);
|
|
216
247
|
setIsReplacingTask(true);
|
|
217
248
|
}));
|
|
218
249
|
items.push((0, external_StageNodeTaskUtilities_cjs_namespaceObject.getDivider)());
|
|
219
250
|
}
|
|
220
251
|
if (onTaskGroupModification) {
|
|
221
|
-
const reGroupOptions = (0, external_StageNodeTaskUtilities_cjs_namespaceObject.getContextMenuItems)(isParallel, groupIndex,
|
|
252
|
+
const reGroupOptions = (0, external_StageNodeTaskUtilities_cjs_namespaceObject.getContextMenuItems)(isParallel, groupIndex, tasks.length, taskIndex, taskGroup.length, (tasks[groupIndex - 1]?.length ?? 0) > 1, (tasks[groupIndex + 1]?.length ?? 0) > 1, onTaskGroupModification);
|
|
222
253
|
return [
|
|
223
254
|
...items,
|
|
224
255
|
...reGroupOptions
|
|
@@ -229,10 +260,9 @@ const StageNodeComponent = (props)=>{
|
|
|
229
260
|
onReplaceTaskFromToolbox,
|
|
230
261
|
onTaskClick,
|
|
231
262
|
onTaskGroupModification,
|
|
232
|
-
reGroupTaskFunction,
|
|
233
263
|
tasks
|
|
234
264
|
]);
|
|
235
|
-
const { setSelectedNodeId } = (0, hooks_index_cjs_namespaceObject.
|
|
265
|
+
const { setSelectedNodeId } = (0, hooks_index_cjs_namespaceObject.useSetNodeSelection)();
|
|
236
266
|
const handleStageClick = (0, external_react_namespaceObject.useCallback)(()=>{
|
|
237
267
|
onStageClick?.();
|
|
238
268
|
}, [
|
|
@@ -355,9 +385,9 @@ const StageNodeComponent = (props)=>{
|
|
|
355
385
|
setActiveDragId(event.active.id);
|
|
356
386
|
}, []);
|
|
357
387
|
const handleDragMove = (0, external_react_namespaceObject.useCallback)((event)=>{
|
|
358
|
-
setOffsetLeft(event.delta.x /
|
|
388
|
+
setOffsetLeft(event.delta.x / storeApi.getState().transform[2]);
|
|
359
389
|
}, [
|
|
360
|
-
|
|
390
|
+
storeApi
|
|
361
391
|
]);
|
|
362
392
|
const handleDragOver = (0, external_react_namespaceObject.useCallback)((event)=>{
|
|
363
393
|
setOverId(event.over?.id ?? null);
|
|
@@ -393,12 +423,6 @@ const StageNodeComponent = (props)=>{
|
|
|
393
423
|
} : void 0, [
|
|
394
424
|
taskWidth
|
|
395
425
|
]);
|
|
396
|
-
const dragOverlayStyle = (0, external_react_namespaceObject.useMemo)(()=>({
|
|
397
|
-
transform: `scale(${zoom})`,
|
|
398
|
-
transformOrigin: 'top left'
|
|
399
|
-
}), [
|
|
400
|
-
zoom
|
|
401
|
-
]);
|
|
402
426
|
return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("div", {
|
|
403
427
|
"data-testid": `stage-${id}`,
|
|
404
428
|
style: {
|
|
@@ -538,20 +562,14 @@ const StageNodeComponent = (props)=>{
|
|
|
538
562
|
taskExecution: taskExecution,
|
|
539
563
|
isSelected: selectedTaskId === task.id,
|
|
540
564
|
isParallel: isParallel,
|
|
541
|
-
|
|
565
|
+
groupIndex: groupIndex,
|
|
566
|
+
taskIndex: taskIndex,
|
|
542
567
|
onTaskClick: handleTaskClick,
|
|
543
568
|
projectedDepth: task.id === activeDragId && projected ? projected.depth : void 0,
|
|
544
569
|
onTaskPlay: onTaskPlay,
|
|
545
570
|
isDragDisabled: !onTaskReorder,
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
onMenuOpen: ()=>{
|
|
549
|
-
taskStateReference.current = {
|
|
550
|
-
isParallel,
|
|
551
|
-
groupIndex,
|
|
552
|
-
taskIndex
|
|
553
|
-
};
|
|
554
|
-
}
|
|
571
|
+
...hasContextMenu && {
|
|
572
|
+
getContextMenuItems: buildContextMenuItems
|
|
555
573
|
}
|
|
556
574
|
}, task.id);
|
|
557
575
|
})
|
|
@@ -562,23 +580,11 @@ const StageNodeComponent = (props)=>{
|
|
|
562
580
|
})
|
|
563
581
|
})
|
|
564
582
|
}),
|
|
565
|
-
/*#__PURE__*/ (0,
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
isParallel: isActiveTaskParallel,
|
|
571
|
-
style: {
|
|
572
|
-
cursor: 'grabbing',
|
|
573
|
-
...taskWidthStyle
|
|
574
|
-
},
|
|
575
|
-
children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_DraggableTask_cjs_namespaceObject.TaskContent, {
|
|
576
|
-
task: activeTask,
|
|
577
|
-
isDragging: true
|
|
578
|
-
})
|
|
579
|
-
})
|
|
580
|
-
}) : null
|
|
581
|
-
}), document.body)
|
|
583
|
+
/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(StageNode_StageTaskDragOverlay, {
|
|
584
|
+
activeTask: activeTask,
|
|
585
|
+
isActiveTaskParallel: isActiveTaskParallel,
|
|
586
|
+
taskWidthStyle: taskWidthStyle
|
|
587
|
+
})
|
|
582
588
|
]
|
|
583
589
|
}) : /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.Column, {
|
|
584
590
|
py: 2,
|
|
@@ -632,6 +638,31 @@ const StageNodeComponent = (props)=>{
|
|
|
632
638
|
]
|
|
633
639
|
});
|
|
634
640
|
};
|
|
641
|
+
const StageNodeInnerMemo = /*#__PURE__*/ (0, external_react_namespaceObject.memo)(StageNodeInner);
|
|
642
|
+
const StageNodeComponent = ({ dragging, selected, id, width, execution, stageDetails, addTaskLabel, addTaskLoading, replaceTaskLabel, taskOptions, menuItems, pendingReplaceTask, onStageClick, onTaskAdd, onAddTaskFromToolbox, onTaskToolboxSearch, onTaskClick, onTaskGroupModification, onStageTitleChange, onTaskReorder, onReplaceTaskFromToolbox, onTaskPlay })=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(StageNodeInnerMemo, {
|
|
643
|
+
dragging: dragging,
|
|
644
|
+
selected: selected,
|
|
645
|
+
id: id,
|
|
646
|
+
width: width,
|
|
647
|
+
execution: execution,
|
|
648
|
+
stageDetails: stageDetails,
|
|
649
|
+
addTaskLabel: addTaskLabel,
|
|
650
|
+
addTaskLoading: addTaskLoading,
|
|
651
|
+
replaceTaskLabel: replaceTaskLabel,
|
|
652
|
+
taskOptions: taskOptions,
|
|
653
|
+
menuItems: menuItems,
|
|
654
|
+
pendingReplaceTask: pendingReplaceTask,
|
|
655
|
+
onStageClick: onStageClick,
|
|
656
|
+
onTaskAdd: onTaskAdd,
|
|
657
|
+
onAddTaskFromToolbox: onAddTaskFromToolbox,
|
|
658
|
+
onTaskToolboxSearch: onTaskToolboxSearch,
|
|
659
|
+
onTaskClick: onTaskClick,
|
|
660
|
+
onTaskGroupModification: onTaskGroupModification,
|
|
661
|
+
onStageTitleChange: onStageTitleChange,
|
|
662
|
+
onTaskReorder: onTaskReorder,
|
|
663
|
+
onReplaceTaskFromToolbox: onReplaceTaskFromToolbox,
|
|
664
|
+
onTaskPlay: onTaskPlay
|
|
665
|
+
});
|
|
635
666
|
const StageNode = /*#__PURE__*/ (0, external_react_namespaceObject.memo)(StageNodeComponent);
|
|
636
667
|
exports.StageNode = __webpack_exports__.StageNode;
|
|
637
668
|
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { StageNodeProps } from './StageNode.types';
|
|
2
|
-
export declare const StageNode: import("react").MemoExoticComponent<(
|
|
2
|
+
export declare const StageNode: import("react").MemoExoticComponent<({ dragging, selected, id, width, execution, stageDetails, addTaskLabel, addTaskLoading, replaceTaskLabel, taskOptions, menuItems, pendingReplaceTask, onStageClick, onTaskAdd, onAddTaskFromToolbox, onTaskToolboxSearch, onTaskClick, onTaskGroupModification, onStageTitleChange, onTaskReorder, onReplaceTaskFromToolbox, onTaskPlay, }: StageNodeProps) => import("react/jsx-runtime").JSX.Element>;
|
|
3
3
|
//# sourceMappingURL=StageNode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StageNode.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/StageNode.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"StageNode.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/StageNode.tsx"],"names":[],"mappings":"AA0DA,OAAO,KAAK,EAEV,cAAc,EAEf,MAAM,mBAAmB,CAAC;AAmtB3B,eAAO,MAAM,SAAS,mXA7BnB,cAAc,6CA6BgC,CAAC"}
|
|
@@ -3,7 +3,7 @@ import { DndContext, DragOverlay, KeyboardSensor, PointerSensor, closestCenter,
|
|
|
3
3
|
import { SortableContext, sortableKeyboardCoordinates, verticalListSortingStrategy } from "@dnd-kit/sortable";
|
|
4
4
|
import { FontVariantToken, Padding, Spacing } from "@uipath/apollo-core";
|
|
5
5
|
import { Column, Row } from "../../layouts/index.js";
|
|
6
|
-
import { Position, useStore, useViewport } from "../../xyflow/react.js";
|
|
6
|
+
import { Position, useStore, useStoreApi, useViewport } from "../../xyflow/react.js";
|
|
7
7
|
import { ApIcon, ApIconButton, ApLink, ApTooltip, ApTypography } from "../../../material/index.js";
|
|
8
8
|
import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
9
9
|
import { createPortal } from "react-dom";
|
|
@@ -12,13 +12,39 @@ import { useButtonHandles } from "../ButtonHandle/useButtonHandles.js";
|
|
|
12
12
|
import { ExecutionStatusIcon } from "../ExecutionStatusIcon/index.js";
|
|
13
13
|
import { FloatingCanvasPanel } from "../FloatingCanvasPanel/index.js";
|
|
14
14
|
import { NodeContextMenu } from "../NodeContextMenu/index.js";
|
|
15
|
-
import {
|
|
15
|
+
import { useSetNodeSelection } from "../NodePropertiesPanel/hooks/index.js";
|
|
16
16
|
import { Toolbox } from "../Toolbox/index.js";
|
|
17
17
|
import { DraggableTask, TaskContent } from "./DraggableTask.js";
|
|
18
18
|
import { INDENTATION_WIDTH, STAGE_CONTENT_INSET, StageContainer, StageContent, StageHeader, StageParallelBracket, StageParallelLabel, StageTask, StageTaskGroup, StageTaskList, StageTitleContainer, StageTitleInput } from "./StageNode.styles.js";
|
|
19
19
|
import { flattenTasks, getProjection, reorderTasks } from "./StageNode.utils.js";
|
|
20
20
|
import { getContextMenuItems, getDivider, getMenuItem } from "./StageNodeTaskUtilities.js";
|
|
21
|
-
const
|
|
21
|
+
const StageNode_StageTaskDragOverlay = /*#__PURE__*/ memo(function({ activeTask, isActiveTaskParallel, taskWidthStyle }) {
|
|
22
|
+
const { zoom } = useViewport();
|
|
23
|
+
const dragOverlayStyle = useMemo(()=>({
|
|
24
|
+
transform: `scale(${zoom})`,
|
|
25
|
+
transformOrigin: 'top left'
|
|
26
|
+
}), [
|
|
27
|
+
zoom
|
|
28
|
+
]);
|
|
29
|
+
return /*#__PURE__*/ createPortal(/*#__PURE__*/ jsx(DragOverlay, {
|
|
30
|
+
children: activeTask ? /*#__PURE__*/ jsx("div", {
|
|
31
|
+
style: dragOverlayStyle,
|
|
32
|
+
children: /*#__PURE__*/ jsx(StageTask, {
|
|
33
|
+
selected: true,
|
|
34
|
+
isParallel: isActiveTaskParallel,
|
|
35
|
+
style: {
|
|
36
|
+
cursor: 'grabbing',
|
|
37
|
+
...taskWidthStyle
|
|
38
|
+
},
|
|
39
|
+
children: /*#__PURE__*/ jsx(TaskContent, {
|
|
40
|
+
task: activeTask,
|
|
41
|
+
isDragging: true
|
|
42
|
+
})
|
|
43
|
+
})
|
|
44
|
+
}) : null
|
|
45
|
+
}), document.body);
|
|
46
|
+
});
|
|
47
|
+
const StageNodeInner = (props)=>{
|
|
22
48
|
const { dragging, selected, id, width, execution, stageDetails, addTaskLabel = 'Add task', addTaskLoading = false, replaceTaskLabel = 'Replace task', taskOptions = [], menuItems, pendingReplaceTask, onStageClick, onTaskAdd, onAddTaskFromToolbox, onTaskToolboxSearch, onTaskClick, onTaskGroupModification, onStageTitleChange, onTaskReorder, onReplaceTaskFromToolbox, onTaskPlay } = props;
|
|
23
49
|
const taskWidth = width ? width - STAGE_CONTENT_INSET : void 0;
|
|
24
50
|
const tasks = useMemo(()=>stageDetails?.tasks || [], [
|
|
@@ -38,9 +64,6 @@ const StageNodeComponent = (props)=>{
|
|
|
38
64
|
const status = execution?.stageStatus?.status;
|
|
39
65
|
const statusLabel = execution?.stageStatus?.label;
|
|
40
66
|
const stageDuration = execution?.stageStatus?.duration;
|
|
41
|
-
const reGroupTaskFunction = useMemo(()=>onTaskGroupModification || (()=>{}), [
|
|
42
|
-
onTaskGroupModification
|
|
43
|
-
]);
|
|
44
67
|
const isStageTitleEditable = !!onStageTitleChange && !isReadOnly;
|
|
45
68
|
const [isHovered, setIsHovered] = useState(false);
|
|
46
69
|
const [label, setLabel] = useState(props.stageDetails.label);
|
|
@@ -57,6 +80,7 @@ const StageNodeComponent = (props)=>{
|
|
|
57
80
|
taskIndex: -1
|
|
58
81
|
});
|
|
59
82
|
const isConnecting = useStore((state)=>!!state.connectionClickStartHandle);
|
|
83
|
+
const storeApi = useStoreApi();
|
|
60
84
|
const connectedHandleIds = useConnectedHandles(id);
|
|
61
85
|
const [isAddingTask, setIsAddingTask] = useState(false);
|
|
62
86
|
const [isReplacingTask, setIsReplacingTask] = useState(false);
|
|
@@ -96,7 +120,6 @@ const StageNodeComponent = (props)=>{
|
|
|
96
120
|
tasks,
|
|
97
121
|
activeDragId
|
|
98
122
|
]);
|
|
99
|
-
const { zoom } = useViewport();
|
|
100
123
|
const projected = useMemo(()=>{
|
|
101
124
|
if (!activeDragId || !overId) return null;
|
|
102
125
|
return getProjection(tasks, activeDragId, overId, offsetLeft);
|
|
@@ -179,18 +202,26 @@ const StageNodeComponent = (props)=>{
|
|
|
179
202
|
handleStageTitleClickToSave,
|
|
180
203
|
isStageTitleEditing
|
|
181
204
|
]);
|
|
182
|
-
const
|
|
205
|
+
const hasContextMenu = !!(onReplaceTaskFromToolbox || onTaskGroupModification);
|
|
206
|
+
const buildContextMenuItems = useCallback((groupIndex, taskIndex)=>{
|
|
207
|
+
const taskGroup = tasks[groupIndex] ?? [];
|
|
208
|
+
const isParallel = taskGroup.length > 1;
|
|
183
209
|
const items = [];
|
|
184
210
|
if (onReplaceTaskFromToolbox) {
|
|
185
211
|
items.push(getMenuItem('replace-task', 'Replace task', ()=>{
|
|
186
|
-
|
|
212
|
+
taskStateReference.current = {
|
|
213
|
+
isParallel,
|
|
214
|
+
groupIndex,
|
|
215
|
+
taskIndex
|
|
216
|
+
};
|
|
217
|
+
const taskId = taskGroup[taskIndex]?.id;
|
|
187
218
|
if (taskId) onTaskClick?.(taskId);
|
|
188
219
|
setIsReplacingTask(true);
|
|
189
220
|
}));
|
|
190
221
|
items.push(getDivider());
|
|
191
222
|
}
|
|
192
223
|
if (onTaskGroupModification) {
|
|
193
|
-
const reGroupOptions = getContextMenuItems(isParallel, groupIndex,
|
|
224
|
+
const reGroupOptions = getContextMenuItems(isParallel, groupIndex, tasks.length, taskIndex, taskGroup.length, (tasks[groupIndex - 1]?.length ?? 0) > 1, (tasks[groupIndex + 1]?.length ?? 0) > 1, onTaskGroupModification);
|
|
194
225
|
return [
|
|
195
226
|
...items,
|
|
196
227
|
...reGroupOptions
|
|
@@ -201,10 +232,9 @@ const StageNodeComponent = (props)=>{
|
|
|
201
232
|
onReplaceTaskFromToolbox,
|
|
202
233
|
onTaskClick,
|
|
203
234
|
onTaskGroupModification,
|
|
204
|
-
reGroupTaskFunction,
|
|
205
235
|
tasks
|
|
206
236
|
]);
|
|
207
|
-
const { setSelectedNodeId } =
|
|
237
|
+
const { setSelectedNodeId } = useSetNodeSelection();
|
|
208
238
|
const handleStageClick = useCallback(()=>{
|
|
209
239
|
onStageClick?.();
|
|
210
240
|
}, [
|
|
@@ -327,9 +357,9 @@ const StageNodeComponent = (props)=>{
|
|
|
327
357
|
setActiveDragId(event.active.id);
|
|
328
358
|
}, []);
|
|
329
359
|
const handleDragMove = useCallback((event)=>{
|
|
330
|
-
setOffsetLeft(event.delta.x /
|
|
360
|
+
setOffsetLeft(event.delta.x / storeApi.getState().transform[2]);
|
|
331
361
|
}, [
|
|
332
|
-
|
|
362
|
+
storeApi
|
|
333
363
|
]);
|
|
334
364
|
const handleDragOver = useCallback((event)=>{
|
|
335
365
|
setOverId(event.over?.id ?? null);
|
|
@@ -365,12 +395,6 @@ const StageNodeComponent = (props)=>{
|
|
|
365
395
|
} : void 0, [
|
|
366
396
|
taskWidth
|
|
367
397
|
]);
|
|
368
|
-
const dragOverlayStyle = useMemo(()=>({
|
|
369
|
-
transform: `scale(${zoom})`,
|
|
370
|
-
transformOrigin: 'top left'
|
|
371
|
-
}), [
|
|
372
|
-
zoom
|
|
373
|
-
]);
|
|
374
398
|
return /*#__PURE__*/ jsxs("div", {
|
|
375
399
|
"data-testid": `stage-${id}`,
|
|
376
400
|
style: {
|
|
@@ -510,20 +534,14 @@ const StageNodeComponent = (props)=>{
|
|
|
510
534
|
taskExecution: taskExecution,
|
|
511
535
|
isSelected: selectedTaskId === task.id,
|
|
512
536
|
isParallel: isParallel,
|
|
513
|
-
|
|
537
|
+
groupIndex: groupIndex,
|
|
538
|
+
taskIndex: taskIndex,
|
|
514
539
|
onTaskClick: handleTaskClick,
|
|
515
540
|
projectedDepth: task.id === activeDragId && projected ? projected.depth : void 0,
|
|
516
541
|
onTaskPlay: onTaskPlay,
|
|
517
542
|
isDragDisabled: !onTaskReorder,
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
onMenuOpen: ()=>{
|
|
521
|
-
taskStateReference.current = {
|
|
522
|
-
isParallel,
|
|
523
|
-
groupIndex,
|
|
524
|
-
taskIndex
|
|
525
|
-
};
|
|
526
|
-
}
|
|
543
|
+
...hasContextMenu && {
|
|
544
|
+
getContextMenuItems: buildContextMenuItems
|
|
527
545
|
}
|
|
528
546
|
}, task.id);
|
|
529
547
|
})
|
|
@@ -534,23 +552,11 @@ const StageNodeComponent = (props)=>{
|
|
|
534
552
|
})
|
|
535
553
|
})
|
|
536
554
|
}),
|
|
537
|
-
/*#__PURE__*/
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
isParallel: isActiveTaskParallel,
|
|
543
|
-
style: {
|
|
544
|
-
cursor: 'grabbing',
|
|
545
|
-
...taskWidthStyle
|
|
546
|
-
},
|
|
547
|
-
children: /*#__PURE__*/ jsx(TaskContent, {
|
|
548
|
-
task: activeTask,
|
|
549
|
-
isDragging: true
|
|
550
|
-
})
|
|
551
|
-
})
|
|
552
|
-
}) : null
|
|
553
|
-
}), document.body)
|
|
555
|
+
/*#__PURE__*/ jsx(StageNode_StageTaskDragOverlay, {
|
|
556
|
+
activeTask: activeTask,
|
|
557
|
+
isActiveTaskParallel: isActiveTaskParallel,
|
|
558
|
+
taskWidthStyle: taskWidthStyle
|
|
559
|
+
})
|
|
554
560
|
]
|
|
555
561
|
}) : /*#__PURE__*/ jsx(Column, {
|
|
556
562
|
py: 2,
|
|
@@ -604,5 +610,30 @@ const StageNodeComponent = (props)=>{
|
|
|
604
610
|
]
|
|
605
611
|
});
|
|
606
612
|
};
|
|
613
|
+
const StageNodeInnerMemo = /*#__PURE__*/ memo(StageNodeInner);
|
|
614
|
+
const StageNodeComponent = ({ dragging, selected, id, width, execution, stageDetails, addTaskLabel, addTaskLoading, replaceTaskLabel, taskOptions, menuItems, pendingReplaceTask, onStageClick, onTaskAdd, onAddTaskFromToolbox, onTaskToolboxSearch, onTaskClick, onTaskGroupModification, onStageTitleChange, onTaskReorder, onReplaceTaskFromToolbox, onTaskPlay })=>/*#__PURE__*/ jsx(StageNodeInnerMemo, {
|
|
615
|
+
dragging: dragging,
|
|
616
|
+
selected: selected,
|
|
617
|
+
id: id,
|
|
618
|
+
width: width,
|
|
619
|
+
execution: execution,
|
|
620
|
+
stageDetails: stageDetails,
|
|
621
|
+
addTaskLabel: addTaskLabel,
|
|
622
|
+
addTaskLoading: addTaskLoading,
|
|
623
|
+
replaceTaskLabel: replaceTaskLabel,
|
|
624
|
+
taskOptions: taskOptions,
|
|
625
|
+
menuItems: menuItems,
|
|
626
|
+
pendingReplaceTask: pendingReplaceTask,
|
|
627
|
+
onStageClick: onStageClick,
|
|
628
|
+
onTaskAdd: onTaskAdd,
|
|
629
|
+
onAddTaskFromToolbox: onAddTaskFromToolbox,
|
|
630
|
+
onTaskToolboxSearch: onTaskToolboxSearch,
|
|
631
|
+
onTaskClick: onTaskClick,
|
|
632
|
+
onTaskGroupModification: onTaskGroupModification,
|
|
633
|
+
onStageTitleChange: onStageTitleChange,
|
|
634
|
+
onTaskReorder: onTaskReorder,
|
|
635
|
+
onReplaceTaskFromToolbox: onReplaceTaskFromToolbox,
|
|
636
|
+
onTaskPlay: onTaskPlay
|
|
637
|
+
});
|
|
607
638
|
const StageNode = /*#__PURE__*/ memo(StageNodeComponent);
|
|
608
639
|
export { StageNode };
|