@uipath/apollo-react 3.44.0 → 3.44.2-pr255.af80ea0

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 (121) hide show
  1. package/dist/canvas/components/StageNode/CrossStageTaskDrag.stories.cjs +581 -0
  2. package/dist/canvas/components/StageNode/CrossStageTaskDrag.stories.d.ts +6 -0
  3. package/dist/canvas/components/StageNode/CrossStageTaskDrag.stories.d.ts.map +1 -0
  4. package/dist/canvas/components/StageNode/CrossStageTaskDrag.stories.js +544 -0
  5. package/dist/canvas/components/StageNode/DropPlaceholder.cjs +106 -0
  6. package/dist/canvas/components/StageNode/DropPlaceholder.d.ts +10 -0
  7. package/dist/canvas/components/StageNode/DropPlaceholder.d.ts.map +1 -0
  8. package/dist/canvas/components/StageNode/DropPlaceholder.js +72 -0
  9. package/dist/canvas/components/StageNode/StageNode.cjs +334 -389
  10. package/dist/canvas/components/StageNode/StageNode.d.ts.map +1 -1
  11. package/dist/canvas/components/StageNode/StageNode.js +336 -391
  12. package/dist/canvas/components/StageNode/StageNode.stories.cjs +1910 -1416
  13. package/dist/canvas/components/StageNode/StageNode.stories.d.ts +1 -1
  14. package/dist/canvas/components/StageNode/StageNode.stories.d.ts.map +1 -1
  15. package/dist/canvas/components/StageNode/StageNode.stories.js +1906 -1412
  16. package/dist/canvas/components/StageNode/StageNode.styles.cjs +1 -1
  17. package/dist/canvas/components/StageNode/StageNode.styles.js +1 -1
  18. package/dist/canvas/components/StageNode/StageNode.types.d.ts +26 -10
  19. package/dist/canvas/components/StageNode/StageNode.types.d.ts.map +1 -1
  20. package/dist/canvas/components/StageNode/StageNodeTaskUtilities.cjs +10 -5
  21. package/dist/canvas/components/StageNode/StageNodeTaskUtilities.d.ts +2 -1
  22. package/dist/canvas/components/StageNode/StageNodeTaskUtilities.d.ts.map +1 -1
  23. package/dist/canvas/components/StageNode/StageNodeTaskUtilities.js +6 -4
  24. package/dist/canvas/components/StageNode/TaskMenu.cjs +11 -43
  25. package/dist/canvas/components/StageNode/TaskMenu.d.ts +1 -6
  26. package/dist/canvas/components/StageNode/TaskMenu.d.ts.map +1 -1
  27. package/dist/canvas/components/StageNode/TaskMenu.js +13 -35
  28. package/dist/canvas/components/StageNode/index.cjs +17 -3
  29. package/dist/canvas/components/StageNode/index.d.ts +4 -1
  30. package/dist/canvas/components/StageNode/index.d.ts.map +1 -1
  31. package/dist/canvas/components/StageNode/index.js +3 -1
  32. package/dist/canvas/components/TaskNode/PlaceholderTaskNode.cjs +51 -0
  33. package/dist/canvas/components/TaskNode/PlaceholderTaskNode.d.ts +8 -0
  34. package/dist/canvas/components/TaskNode/PlaceholderTaskNode.d.ts.map +1 -0
  35. package/dist/canvas/components/TaskNode/PlaceholderTaskNode.js +17 -0
  36. package/dist/canvas/components/TaskNode/TaskNode.cjs +235 -0
  37. package/dist/canvas/components/TaskNode/TaskNode.d.ts +11 -0
  38. package/dist/canvas/components/TaskNode/TaskNode.d.ts.map +1 -0
  39. package/dist/canvas/components/TaskNode/TaskNode.js +198 -0
  40. package/dist/canvas/components/TaskNode/TaskNode.stories.cjs +558 -0
  41. package/dist/canvas/components/TaskNode/TaskNode.stories.d.ts +8 -0
  42. package/dist/canvas/components/TaskNode/TaskNode.stories.d.ts.map +1 -0
  43. package/dist/canvas/components/TaskNode/TaskNode.stories.js +515 -0
  44. package/dist/canvas/components/TaskNode/TaskNode.types.d.ts +40 -0
  45. package/dist/canvas/components/TaskNode/TaskNode.types.d.ts.map +1 -0
  46. package/dist/canvas/components/TaskNode/TaskNodeContext.cjs +86 -0
  47. package/dist/canvas/components/TaskNode/TaskNodeContext.d.ts +24 -0
  48. package/dist/canvas/components/TaskNode/TaskNodeContext.d.ts.map +1 -0
  49. package/dist/canvas/components/TaskNode/TaskNodeContext.js +40 -0
  50. package/dist/canvas/components/TaskNode/index.cjs +82 -0
  51. package/dist/canvas/components/TaskNode/index.d.ts +8 -0
  52. package/dist/canvas/components/TaskNode/index.d.ts.map +1 -0
  53. package/dist/canvas/components/TaskNode/index.js +6 -0
  54. package/dist/canvas/components/TaskNode/taskReorderUtils.cjs +206 -0
  55. package/dist/canvas/components/TaskNode/taskReorderUtils.d.ts +23 -0
  56. package/dist/canvas/components/TaskNode/taskReorderUtils.d.ts.map +1 -0
  57. package/dist/canvas/components/TaskNode/taskReorderUtils.js +154 -0
  58. package/dist/canvas/components/TaskNode/useTaskPositions.cjs +153 -0
  59. package/dist/canvas/components/TaskNode/useTaskPositions.d.ts +29 -0
  60. package/dist/canvas/components/TaskNode/useTaskPositions.d.ts.map +1 -0
  61. package/dist/canvas/components/TaskNode/useTaskPositions.js +110 -0
  62. package/dist/canvas/core/TaskTypeRegistry.cjs +132 -0
  63. package/dist/canvas/core/TaskTypeRegistry.d.ts +18 -0
  64. package/dist/canvas/core/TaskTypeRegistry.d.ts.map +1 -0
  65. package/dist/canvas/core/TaskTypeRegistry.js +98 -0
  66. package/dist/canvas/core/index.cjs +21 -3
  67. package/dist/canvas/core/index.d.ts +2 -0
  68. package/dist/canvas/core/index.d.ts.map +1 -1
  69. package/dist/canvas/core/index.js +2 -0
  70. package/dist/canvas/core/useTaskTypeRegistry.cjs +82 -0
  71. package/dist/canvas/core/useTaskTypeRegistry.d.ts +13 -0
  72. package/dist/canvas/core/useTaskTypeRegistry.d.ts.map +1 -0
  73. package/dist/canvas/core/useTaskTypeRegistry.js +33 -0
  74. package/dist/canvas/hooks/CrossStageDragContext.cjs +45 -0
  75. package/dist/canvas/hooks/CrossStageDragContext.d.ts +8 -0
  76. package/dist/canvas/hooks/CrossStageDragContext.d.ts.map +1 -0
  77. package/dist/canvas/hooks/CrossStageDragContext.js +8 -0
  78. package/dist/canvas/hooks/calculateTaskDropPosition.cjs +253 -0
  79. package/dist/canvas/hooks/calculateTaskDropPosition.d.ts +11 -0
  80. package/dist/canvas/hooks/calculateTaskDropPosition.d.ts.map +1 -0
  81. package/dist/canvas/hooks/calculateTaskDropPosition.js +216 -0
  82. package/dist/canvas/hooks/index.cjs +57 -30
  83. package/dist/canvas/hooks/index.d.ts +3 -0
  84. package/dist/canvas/hooks/index.d.ts.map +1 -1
  85. package/dist/canvas/hooks/index.js +3 -0
  86. package/dist/canvas/hooks/useCrossStageTaskDrag.cjs +346 -0
  87. package/dist/canvas/hooks/useCrossStageTaskDrag.d.ts +44 -0
  88. package/dist/canvas/hooks/useCrossStageTaskDrag.d.ts.map +1 -0
  89. package/dist/canvas/hooks/useCrossStageTaskDrag.js +312 -0
  90. package/dist/canvas/hooks/useTaskCopyPaste.cjs +155 -0
  91. package/dist/canvas/hooks/useTaskCopyPaste.d.ts +34 -0
  92. package/dist/canvas/hooks/useTaskCopyPaste.d.ts.map +1 -0
  93. package/dist/canvas/hooks/useTaskCopyPaste.js +121 -0
  94. package/dist/canvas/schema/index.cjs +12 -3
  95. package/dist/canvas/schema/index.d.ts +1 -0
  96. package/dist/canvas/schema/index.d.ts.map +1 -1
  97. package/dist/canvas/schema/index.js +1 -0
  98. package/dist/canvas/schema/task-definition/index.cjs +60 -0
  99. package/dist/canvas/schema/task-definition/index.d.ts +2 -0
  100. package/dist/canvas/schema/task-definition/index.d.ts.map +1 -0
  101. package/dist/canvas/schema/task-definition/index.js +1 -0
  102. package/dist/canvas/schema/task-definition/task-manifest.cjs +78 -0
  103. package/dist/canvas/schema/task-definition/task-manifest.d.ts +43 -0
  104. package/dist/canvas/schema/task-definition/task-manifest.d.ts.map +1 -0
  105. package/dist/canvas/schema/task-definition/task-manifest.js +29 -0
  106. package/dist/material/components/ap-sankey-diagram/ApSankeyDiagram.cjs +44 -21
  107. package/dist/material/components/ap-sankey-diagram/ApSankeyDiagram.d.ts.map +1 -1
  108. package/dist/material/components/ap-sankey-diagram/ApSankeyDiagram.js +44 -21
  109. package/package.json +3 -3
  110. package/dist/canvas/components/StageNode/DraggableTask.cjs +0 -271
  111. package/dist/canvas/components/StageNode/DraggableTask.d.ts +0 -4
  112. package/dist/canvas/components/StageNode/DraggableTask.d.ts.map +0 -1
  113. package/dist/canvas/components/StageNode/DraggableTask.js +0 -234
  114. package/dist/canvas/components/StageNode/DraggableTask.types.d.ts +0 -20
  115. package/dist/canvas/components/StageNode/DraggableTask.types.d.ts.map +0 -1
  116. package/dist/canvas/components/StageNode/StageNode.utils.cjs +0 -164
  117. package/dist/canvas/components/StageNode/StageNode.utils.d.ts +0 -19
  118. package/dist/canvas/components/StageNode/StageNode.utils.d.ts.map +0 -1
  119. package/dist/canvas/components/StageNode/StageNode.utils.js +0 -121
  120. /package/dist/canvas/components/{StageNode/DraggableTask.types.cjs → TaskNode/TaskNode.types.cjs} +0 -0
  121. /package/dist/canvas/components/{StageNode/DraggableTask.types.js → TaskNode/TaskNode.types.js} +0 -0
@@ -24,9 +24,9 @@ var __webpack_require__ = {};
24
24
  var __webpack_exports__ = {};
25
25
  __webpack_require__.r(__webpack_exports__);
26
26
  __webpack_require__.d(__webpack_exports__, {
27
- DraggableTaskReordering: ()=>DraggableTaskReordering,
28
27
  default: ()=>StageNode_stories,
29
28
  LoanProcessingWorkflow: ()=>LoanProcessingWorkflow,
29
+ WithTaskMenu: ()=>WithTaskMenu,
30
30
  InteractiveTaskManagement: ()=>InteractiveTaskManagement,
31
31
  AddTaskLoading: ()=>AddTaskLoading,
32
32
  WithTaskIcons: ()=>WithTaskIcons,
@@ -38,1113 +38,1353 @@ const jsx_runtime_namespaceObject = require("react/jsx-runtime");
38
38
  const react_cjs_namespaceObject = require("../../xyflow/react.cjs");
39
39
  const index_cjs_namespaceObject = require("../../../material/components/index.cjs");
40
40
  const external_react_namespaceObject = require("react");
41
+ const CrossStageDragContext_cjs_namespaceObject = require("../../hooks/CrossStageDragContext.cjs");
42
+ const useCrossStageTaskDrag_cjs_namespaceObject = require("../../hooks/useCrossStageTaskDrag.cjs");
43
+ const useTaskCopyPaste_cjs_namespaceObject = require("../../hooks/useTaskCopyPaste.cjs");
41
44
  const external_types_cjs_namespaceObject = require("../../types.cjs");
42
45
  const GroupModificationUtils_cjs_namespaceObject = require("../../utils/GroupModificationUtils.cjs");
43
46
  const external_BaseCanvas_index_cjs_namespaceObject = require("../BaseCanvas/index.cjs");
44
47
  const external_CanvasPositionControls_cjs_namespaceObject = require("../CanvasPositionControls.cjs");
45
48
  const external_TaskIcon_index_cjs_namespaceObject = require("../TaskIcon/index.cjs");
49
+ const PlaceholderTaskNode_cjs_namespaceObject = require("../TaskNode/PlaceholderTaskNode.cjs");
50
+ const TaskNode_cjs_namespaceObject = require("../TaskNode/TaskNode.cjs");
51
+ const taskReorderUtils_cjs_namespaceObject = require("../TaskNode/taskReorderUtils.cjs");
52
+ const useTaskPositions_cjs_namespaceObject = require("../TaskNode/useTaskPositions.cjs");
46
53
  const external_StageConnectionEdge_cjs_namespaceObject = require("./StageConnectionEdge.cjs");
47
54
  const external_StageEdge_cjs_namespaceObject = require("./StageEdge.cjs");
48
55
  const external_StageNode_cjs_namespaceObject = require("./StageNode.cjs");
56
+ const external_StageNodeTaskUtilities_cjs_namespaceObject = require("./StageNodeTaskUtilities.cjs");
49
57
  const meta = {
50
58
  title: 'Canvas/StageNode',
51
59
  component: external_StageNode_cjs_namespaceObject.StageNode,
52
60
  parameters: {
53
61
  layout: 'fullscreen'
54
- },
55
- decorators: [
56
- (Story, context)=>{
57
- if (context.parameters?.useCustomRender) return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(Story, {});
58
- const StageNodeWrapper = (props)=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_StageNode_cjs_namespaceObject.StageNode, {
59
- ...props,
60
- ...props.data
61
- });
62
- const initialNodes = context.parameters?.nodes || [
63
- {
64
- id: '1',
65
- type: 'stage',
66
- position: {
67
- x: 250,
68
- y: 100
69
- },
70
- data: {
71
- stageDetails: context.args.stageDetails,
72
- execution: context.args.execution,
73
- addTaskLabel: context.args.addTaskLabel,
74
- menuItems: context.args.menuItems,
75
- onTaskAdd: context.args.onTaskAdd,
76
- onTaskClick: context.args.onTaskClick
77
- }
78
- }
79
- ];
80
- const initialEdges = context.parameters?.edges || [];
81
- const [nodes, _setNodes, onNodesChange] = (0, react_cjs_namespaceObject.useNodesState)(initialNodes);
82
- const [edges, setEdges, onEdgesChange] = (0, react_cjs_namespaceObject.useEdgesState)(initialEdges);
83
- const onConnect = (0, external_react_namespaceObject.useCallback)((connection)=>{
84
- setEdges((eds)=>(0, react_cjs_namespaceObject.addEdge)(connection, eds));
85
- }, [
86
- setEdges
87
- ]);
88
- const nodeTypes = (0, external_react_namespaceObject.useMemo)(()=>({
89
- stage: StageNodeWrapper
90
- }), [
91
- StageNodeWrapper
92
- ]);
93
- const edgeTypes = (0, external_react_namespaceObject.useMemo)(()=>({
94
- stage: external_StageEdge_cjs_namespaceObject.StageEdge
95
- }), []);
96
- const defaultEdgeOptions = (0, external_react_namespaceObject.useMemo)(()=>({
97
- type: 'stage'
98
- }), []);
99
- return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
100
- style: {
101
- width: '100vw',
102
- height: '100vh'
103
- },
104
- children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(react_cjs_namespaceObject.ReactFlowProvider, {
105
- children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_BaseCanvas_index_cjs_namespaceObject.BaseCanvas, {
106
- nodes: nodes,
107
- edges: edges,
108
- onNodesChange: onNodesChange,
109
- onEdgesChange: onEdgesChange,
110
- onConnect: onConnect,
111
- nodeTypes: nodeTypes,
112
- edgeTypes: edgeTypes,
113
- mode: "design",
114
- connectionMode: react_cjs_namespaceObject.ConnectionMode.Strict,
115
- defaultEdgeOptions: defaultEdgeOptions,
116
- connectionLineComponent: external_StageConnectionEdge_cjs_namespaceObject.StageConnectionEdge,
117
- elevateEdgesOnSelect: true,
118
- children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(react_cjs_namespaceObject.Panel, {
119
- position: "bottom-right",
120
- children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_CanvasPositionControls_cjs_namespaceObject.CanvasPositionControls, {
121
- translations: external_types_cjs_namespaceObject.DefaultCanvasTranslations
122
- })
123
- })
124
- })
125
- })
126
- });
127
- }
128
- ],
129
- args: {
130
- stageDetails: {
131
- label: 'Default Stage',
132
- tasks: []
133
- }
134
- },
135
- argTypes: {
136
- addTaskLabel: {
137
- control: 'text',
138
- description: 'Label for the add process button',
139
- defaultValue: 'Add process'
140
- }
141
62
  }
142
63
  };
143
64
  const StageNode_stories = meta;
144
- const ProcessIcon = ()=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("svg", {
145
- viewBox: "0 0 24 24",
146
- fill: "none",
147
- stroke: "currentColor",
148
- strokeWidth: "1.5",
149
- children: [
150
- /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("rect", {
151
- x: "3",
152
- y: "3",
153
- width: "7",
154
- height: "7",
155
- rx: "1"
156
- }),
157
- /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("rect", {
158
- x: "14",
159
- y: "3",
160
- width: "7",
161
- height: "7",
162
- rx: "1"
163
- }),
164
- /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("rect", {
165
- x: "3",
166
- y: "14",
167
- width: "7",
168
- height: "7",
169
- rx: "1"
170
- }),
171
- /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("rect", {
172
- x: "14",
173
- y: "14",
174
- width: "7",
175
- height: "7",
176
- rx: "1"
177
- })
178
- ]
65
+ const StageNodeWrapper = (props)=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_StageNode_cjs_namespaceObject.StageNode, {
66
+ ...props,
67
+ ...props.data
179
68
  });
180
- const VerificationIcon = ()=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("svg", {
181
- viewBox: "0 0 24 24",
182
- fill: "none",
183
- stroke: "currentColor",
184
- strokeWidth: "1.5",
185
- children: [
186
- /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("path", {
187
- d: "M9 11L12 14L20 6"
188
- }),
189
- /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("path", {
190
- d: "M20 12V18C20 19.1046 19.1046 20 18 20H6C4.89543 20 4 19.1046 4 18V6C4 4.89543 4.89543 4 6 4H13"
191
- })
192
- ]
69
+ const TaskNodeWrapper = (props)=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(TaskNode_cjs_namespaceObject.TaskNode, {
70
+ ...props
193
71
  });
194
- const DocumentIcon = ()=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("svg", {
195
- viewBox: "0 0 24 24",
196
- fill: "none",
197
- stroke: "currentColor",
198
- strokeWidth: "1.5",
199
- children: [
200
- /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("path", {
201
- d: "M14 2H6C4.9 2 4 2.9 4 4V20C20 21.1 4.9 22 6 22H18C19.1 22 20 21.1 20 20V8L14 2Z"
202
- }),
203
- /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("path", {
204
- d: "M14 2V8H20"
205
- }),
206
- /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("path", {
207
- d: "M8 12H16"
208
- }),
209
- /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("path", {
210
- d: "M8 16H16"
211
- })
212
- ]
72
+ function mergeNodes(prevNodes, computedNodes) {
73
+ const computedMap = new Map(computedNodes.map((n)=>[
74
+ n.id,
75
+ n
76
+ ]));
77
+ const prevIds = new Set(prevNodes.map((n)=>n.id));
78
+ const computedIds = new Set(computedNodes.map((n)=>n.id));
79
+ const merged = prevNodes.filter((n)=>computedIds.has(n.id)).map((n)=>{
80
+ const source = computedMap.get(n.id);
81
+ if (!source) return n;
82
+ return {
83
+ ...n,
84
+ data: source.data,
85
+ style: source.style,
86
+ position: source.position
87
+ };
213
88
  });
214
- const sampleTasks = [
215
- [
216
- {
217
- id: 'liability_check',
218
- label: 'Liability Check',
219
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(VerificationIcon, {})
220
- }
221
- ],
222
- [
223
- {
224
- id: 'credit_review',
225
- label: 'Credit Review',
226
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(DocumentIcon, {})
227
- }
228
- ],
229
- [
230
- {
231
- id: 'address_verification',
232
- label: 'Address Verification and a really long label that might wrap',
233
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(VerificationIcon, {})
234
- },
235
- {
236
- id: 'property_verification',
237
- label: 'Property Verification',
238
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(VerificationIcon, {})
239
- }
240
- ],
241
- [
242
- {
243
- id: 'processing_review',
244
- label: 'Processing Review',
245
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(ProcessIcon, {})
246
- }
247
- ]
248
- ];
249
- const Default = {
250
- name: 'Default',
251
- parameters: {
252
- nodes: [
253
- {
254
- id: '0',
255
- type: 'stage',
89
+ for (const node of computedNodes)if (!prevIds.has(node.id)) merged.push(node);
90
+ return merged;
91
+ }
92
+ function createTaskNodes({ stageId, taskIds, tasks, stageWidth, onTaskClick, onTaskSelect, stageExecution, enableCrossStage, onGroupModification, onRequestReplaceTask }) {
93
+ const positions = (0, useTaskPositions_cjs_namespaceObject.calculateTaskPositions)(taskIds, stageWidth, tasks, stageExecution);
94
+ const nodes = [];
95
+ taskIds.forEach((group, groupIndex)=>{
96
+ group.forEach((taskId, taskIndex)=>{
97
+ const taskInfo = tasks[taskId];
98
+ if (!taskInfo) return;
99
+ const position = positions.get(taskId);
100
+ if (!position) return;
101
+ const prevGroup = groupIndex > 0 ? taskIds[groupIndex - 1] : void 0;
102
+ const nextGroup = groupIndex < taskIds.length - 1 ? taskIds[groupIndex + 1] : void 0;
103
+ const contextMenuItems = onGroupModification ? (0, external_StageNodeTaskUtilities_cjs_namespaceObject.getContextMenuItems)(group.length > 1, groupIndex, taskIds.length, taskIndex, group.length, void 0 !== prevGroup && prevGroup.length > 1, void 0 !== nextGroup && nextGroup.length > 1, onGroupModification, onRequestReplaceTask) : taskInfo.contextMenuItems;
104
+ const node = {
105
+ id: taskId,
106
+ type: 'task',
107
+ parentId: stageId,
256
108
  position: {
257
- x: 48,
258
- y: 96
109
+ x: position.x,
110
+ y: position.y
259
111
  },
260
- width: 304,
112
+ width: position.width,
261
113
  data: {
262
- stageDetails: {
263
- label: 'Application',
264
- tasks: []
265
- },
266
- execution: {
267
- stageStatus: {
268
- duration: 'SLA: None'
269
- }
270
- },
271
- onTaskAdd: ()=>{
272
- window.alert('Add task functionality - this would open a dialog to add a new task');
273
- }
114
+ taskType: taskInfo.taskType,
115
+ label: taskInfo.label,
116
+ iconElement: taskInfo.icon,
117
+ groupIndex,
118
+ taskIndex,
119
+ execution: taskInfo.execution,
120
+ onTaskClick,
121
+ onTaskSelect,
122
+ width: position.width,
123
+ contextMenuItems
274
124
  }
275
- },
276
- {
277
- id: '1',
125
+ };
126
+ if (!enableCrossStage) node.extent = 'parent';
127
+ nodes.push(node);
128
+ });
129
+ });
130
+ return nodes;
131
+ }
132
+ const InteractiveStageCanvas = ({ stages: initialStages, tasks: initialTasks, edges: initialEdges = [], showInstructions = true, onTaskAdd, onAddTaskFromToolbox, taskOptions, enableTaskMenu = true, enableReplaceTask = true })=>{
133
+ const [stageTaskIds, setStageTaskIds] = (0, external_react_namespaceObject.useState)(Object.fromEntries(initialStages.map((s)=>[
134
+ s.id,
135
+ s.taskIds
136
+ ])));
137
+ const [tasks, setTasks] = (0, external_react_namespaceObject.useState)(initialTasks);
138
+ const [selectedTaskId, setSelectedTaskId] = (0, external_react_namespaceObject.useState)(null);
139
+ const [actionLog, setActionLog] = (0, external_react_namespaceObject.useState)('');
140
+ const [replaceTargets, setReplaceTargets] = (0, external_react_namespaceObject.useState)({});
141
+ const handleTaskReplace = (0, external_react_namespaceObject.useCallback)((stageId)=>(newTask, groupIndex, taskIndex)=>{
142
+ setActionLog(`Replace task at stage ${stageId}, group ${groupIndex}, task ${taskIndex} with "${newTask.name}"`);
143
+ const newTaskId = `replaced-${Date.now()}`;
144
+ const IconComp = newTask.icon?.Component;
145
+ setTasks((prev)=>({
146
+ ...prev,
147
+ [newTaskId]: {
148
+ label: newTask.name,
149
+ taskType: newTask.data?.taskType || 'uipath.case-management.process',
150
+ icon: IconComp ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(IconComp, {}) : /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
151
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.AgenticProcess,
152
+ size: "sm"
153
+ })
154
+ }
155
+ }));
156
+ setStageTaskIds((prev)=>{
157
+ const currentTaskIds = [
158
+ ...prev[stageId] || []
159
+ ].map((group)=>[
160
+ ...group
161
+ ]);
162
+ const targetGroup = currentTaskIds[groupIndex];
163
+ if (targetGroup && void 0 !== targetGroup[taskIndex]) targetGroup[taskIndex] = newTaskId;
164
+ return {
165
+ ...prev,
166
+ [stageId]: currentTaskIds
167
+ };
168
+ });
169
+ }, []);
170
+ const stageNodes = (0, external_react_namespaceObject.useMemo)(()=>initialStages.map((stage)=>({
171
+ id: stage.id,
278
172
  type: 'stage',
279
- position: {
280
- x: 400,
281
- y: 96
173
+ position: stage.position,
174
+ style: {
175
+ width: stage.width || 304
282
176
  },
283
- width: 304,
284
177
  data: {
178
+ nodeType: 'case-management:Stage',
285
179
  stageDetails: {
286
- label: 'Processing with a really really really long label that might wrap',
287
- tasks: sampleTasks,
288
- sla: '1h',
289
- slaBreached: false,
290
- escalation: '1h',
291
- escalationsTriggered: false
292
- },
293
- execution: {
294
- stageStatus: {
295
- duration: 'SLA: None'
296
- }
180
+ label: stage.label,
181
+ taskIds: stageTaskIds[stage.id] || [],
182
+ isException: stage.isException,
183
+ isReadOnly: stage.isReadOnly
297
184
  },
298
- onAddTaskFromToolbox: (taskItem)=>{
299
- window.alert(`Add task (${taskItem.data.type}) - this would open a panel to configure the new task`);
185
+ execution: stage.execution,
186
+ onTaskClick: (taskId)=>{
187
+ setSelectedTaskId(taskId);
188
+ setActionLog(`Selected: ${taskId}`);
300
189
  },
301
- taskOptions: sampleTasks.flat().map((task)=>({
302
- id: task.id,
303
- name: task.label,
304
- icon: {
305
- Component: ()=>task.icon
306
- },
307
- data: {
308
- type: task.id
190
+ onTaskAdd,
191
+ onAddTaskFromToolbox,
192
+ taskOptions,
193
+ ...enableReplaceTask && !stage.isReadOnly ? {
194
+ onReplaceTaskFromToolbox: handleTaskReplace(stage.id),
195
+ replaceTaskTarget: replaceTargets[stage.id] ?? null,
196
+ onReplaceTaskTargetChange: (target)=>setReplaceTargets((prev)=>({
197
+ ...prev,
198
+ [stage.id]: target
199
+ }))
200
+ } : {}
201
+ }
202
+ })), [
203
+ initialStages,
204
+ stageTaskIds,
205
+ onTaskAdd,
206
+ onAddTaskFromToolbox,
207
+ taskOptions,
208
+ enableReplaceTask,
209
+ handleTaskReplace,
210
+ replaceTargets
211
+ ]);
212
+ const handleGroupModification = (0, external_react_namespaceObject.useCallback)((stageId)=>(type, groupIndex, taskIndex)=>{
213
+ setActionLog(`Group modification: ${type} at stage ${stageId}, group ${groupIndex}, task ${taskIndex}`);
214
+ setStageTaskIds((prev)=>{
215
+ const currentTaskIds = [
216
+ ...prev[stageId] || []
217
+ ].map((group)=>[
218
+ ...group
219
+ ]);
220
+ const currentGroup = currentTaskIds[groupIndex];
221
+ if (!currentGroup) return prev;
222
+ switch(type){
223
+ case GroupModificationUtils_cjs_namespaceObject.GroupModificationType.TASK_GROUP_UP:
224
+ if (groupIndex > 0) {
225
+ const taskId = currentGroup[taskIndex];
226
+ if (!taskId) break;
227
+ currentGroup.splice(taskIndex, 1);
228
+ if (0 === currentGroup.length) currentTaskIds.splice(groupIndex, 1);
229
+ currentTaskIds.splice(groupIndex - 1, 0, [
230
+ taskId
231
+ ]);
232
+ }
233
+ break;
234
+ case GroupModificationUtils_cjs_namespaceObject.GroupModificationType.TASK_GROUP_DOWN:
235
+ if (groupIndex < currentTaskIds.length - 1) {
236
+ const taskId = currentGroup[taskIndex];
237
+ if (!taskId) break;
238
+ currentGroup.splice(taskIndex, 1);
239
+ if (0 === currentGroup.length) {
240
+ currentTaskIds.splice(groupIndex, 1);
241
+ currentTaskIds.splice(groupIndex + 1, 0, [
242
+ taskId
243
+ ]);
244
+ } else currentTaskIds.splice(groupIndex + 2, 0, [
245
+ taskId
246
+ ]);
247
+ }
248
+ break;
249
+ case GroupModificationUtils_cjs_namespaceObject.GroupModificationType.MERGE_GROUP_UP:
250
+ if (groupIndex > 0) {
251
+ const taskId = currentGroup[taskIndex];
252
+ if (!taskId) break;
253
+ currentGroup.splice(taskIndex, 1);
254
+ if (0 === currentGroup.length) currentTaskIds.splice(groupIndex, 1);
255
+ currentTaskIds[groupIndex - 1]?.push(taskId);
256
+ }
257
+ break;
258
+ case GroupModificationUtils_cjs_namespaceObject.GroupModificationType.MERGE_GROUP_DOWN:
259
+ if (groupIndex < currentTaskIds.length - 1) {
260
+ const taskId = currentGroup[taskIndex];
261
+ if (!taskId) break;
262
+ currentGroup.splice(taskIndex, 1);
263
+ const wasEmpty = 0 === currentGroup.length;
264
+ if (wasEmpty) currentTaskIds.splice(groupIndex, 1);
265
+ const nextGroupIndex = wasEmpty ? groupIndex : groupIndex + 1;
266
+ currentTaskIds[nextGroupIndex]?.push(taskId);
267
+ }
268
+ break;
269
+ case GroupModificationUtils_cjs_namespaceObject.GroupModificationType.UNGROUP_ALL_TASKS:
270
+ currentTaskIds.splice(groupIndex, 1, ...currentGroup.map((id)=>[
271
+ id
272
+ ]));
273
+ break;
274
+ case GroupModificationUtils_cjs_namespaceObject.GroupModificationType.SPLIT_GROUP:
275
+ {
276
+ const taskId = currentGroup[taskIndex];
277
+ if (!taskId) break;
278
+ currentGroup.splice(taskIndex, 1);
279
+ currentTaskIds.splice(groupIndex + 1, 0, [
280
+ taskId
281
+ ]);
282
+ break;
283
+ }
284
+ case GroupModificationUtils_cjs_namespaceObject.GroupModificationType.REMOVE_GROUP:
285
+ currentTaskIds.splice(groupIndex, 1);
286
+ break;
287
+ case GroupModificationUtils_cjs_namespaceObject.GroupModificationType.REMOVE_TASK:
288
+ currentGroup.splice(taskIndex, 1);
289
+ if (0 === currentGroup.length) currentTaskIds.splice(groupIndex, 1);
290
+ break;
291
+ }
292
+ return {
293
+ ...prev,
294
+ [stageId]: currentTaskIds
295
+ };
296
+ });
297
+ }, []);
298
+ const taskNodes = (0, external_react_namespaceObject.useMemo)(()=>{
299
+ const allTaskNodes = [];
300
+ initialStages.forEach((stage)=>{
301
+ const stageTaskIdsArr = stageTaskIds[stage.id] || [];
302
+ const nodes = createTaskNodes({
303
+ stageId: stage.id,
304
+ taskIds: stageTaskIdsArr,
305
+ tasks,
306
+ stageWidth: stage.width || 304,
307
+ onTaskClick: (taskId)=>{
308
+ setSelectedTaskId(taskId);
309
+ setActionLog(`Selected: ${taskId}`);
310
+ },
311
+ onTaskSelect: setSelectedTaskId,
312
+ stageExecution: stage.execution?.stageStatus,
313
+ enableCrossStage: true,
314
+ onGroupModification: enableTaskMenu && !stage.isReadOnly ? handleGroupModification(stage.id) : void 0,
315
+ onRequestReplaceTask: enableReplaceTask && !stage.isReadOnly ? (groupIndex, taskIndex)=>setReplaceTargets((prev)=>({
316
+ ...prev,
317
+ [stage.id]: {
318
+ groupIndex,
319
+ taskIndex
309
320
  }
310
- }))
321
+ })) : ()=>{}
322
+ });
323
+ allTaskNodes.push(...nodes);
324
+ });
325
+ return allTaskNodes;
326
+ }, [
327
+ initialStages,
328
+ stageTaskIds,
329
+ tasks,
330
+ enableTaskMenu,
331
+ enableReplaceTask,
332
+ handleGroupModification
333
+ ]);
334
+ const allNodes = (0, external_react_namespaceObject.useMemo)(()=>[
335
+ ...stageNodes,
336
+ ...taskNodes
337
+ ], [
338
+ stageNodes,
339
+ taskNodes
340
+ ]);
341
+ const [nodes, setNodes, onNodesChange] = (0, react_cjs_namespaceObject.useNodesState)(allNodes);
342
+ const [edges, setEdges, onEdgesChange] = (0, react_cjs_namespaceObject.useEdgesState)(initialEdges);
343
+ (0, external_react_namespaceObject.useEffect)(()=>{
344
+ setNodes((prev)=>mergeNodes(prev, allNodes));
345
+ }, [
346
+ allNodes,
347
+ setNodes
348
+ ]);
349
+ const onConnect = (0, external_react_namespaceObject.useCallback)((connection)=>{
350
+ setEdges((eds)=>(0, react_cjs_namespaceObject.addEdge)({
351
+ ...connection,
352
+ type: 'stage'
353
+ }, eds));
354
+ }, [
355
+ setEdges
356
+ ]);
357
+ const nodeTypes = (0, external_react_namespaceObject.useMemo)(()=>({
358
+ stage: StageNodeWrapper,
359
+ task: TaskNodeWrapper,
360
+ placeholder: (props)=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(PlaceholderTaskNode_cjs_namespaceObject.PlaceholderTaskNode, {
361
+ ...props
362
+ })
363
+ }), []);
364
+ const edgeTypes = (0, external_react_namespaceObject.useMemo)(()=>({
365
+ stage: external_StageEdge_cjs_namespaceObject.StageEdge
366
+ }), []);
367
+ const handleTaskReorder = (0, external_react_namespaceObject.useCallback)((params)=>{
368
+ const { taskId, stageId, position } = params;
369
+ const depthLabel = position.isParallel ? 'parallel' : 'sequential';
370
+ setActionLog(`Reordered ${taskId} to group ${position.groupIndex} (${depthLabel})`);
371
+ setStageTaskIds((prev)=>{
372
+ const currentTaskIds = prev[stageId || ''] || [];
373
+ const newTaskIds = (0, taskReorderUtils_cjs_namespaceObject.moveTaskWithinStage)(currentTaskIds, taskId, position);
374
+ return {
375
+ ...prev,
376
+ [stageId || '']: newTaskIds
377
+ };
378
+ });
379
+ }, []);
380
+ const handleTaskMove = (0, external_react_namespaceObject.useCallback)((params)=>{
381
+ const { taskId, sourceStageId, targetStageId, position } = params;
382
+ setActionLog(`Moved ${taskId} from ${sourceStageId} to ${targetStageId} at group ${position.groupIndex}${position.isParallel ? ' (parallel)' : ''}`);
383
+ const taskInfo = tasks[taskId];
384
+ if (!taskInfo) return;
385
+ setStageTaskIds((prev)=>{
386
+ const sourceTaskIds = prev[sourceStageId] || [];
387
+ const targetTaskIds = prev[targetStageId] || [];
388
+ const { sourceTaskIds: newSourceTaskIds, targetTaskIds: newTargetTaskIds } = (0, taskReorderUtils_cjs_namespaceObject.moveTaskBetweenStages)(sourceTaskIds, targetTaskIds, taskId, position);
389
+ return {
390
+ ...prev,
391
+ [sourceStageId]: newSourceTaskIds,
392
+ [targetStageId]: newTargetTaskIds
393
+ };
394
+ });
395
+ }, [
396
+ tasks
397
+ ]);
398
+ const handleTaskCopy = (0, external_react_namespaceObject.useCallback)((params)=>{
399
+ const { taskId, newTaskId, targetStageId, position } = params;
400
+ setActionLog(`Copied ${taskId} to ${newTaskId} in ${targetStageId} at group ${position.groupIndex}${position.isParallel ? ' (parallel)' : ''}`);
401
+ const taskInfo = tasks[taskId];
402
+ if (!taskInfo) return;
403
+ setTasks((prev)=>({
404
+ ...prev,
405
+ [newTaskId]: {
406
+ ...taskInfo,
407
+ label: `${taskInfo.label} (Copy)`
311
408
  }
312
- }
313
- ]
314
- },
315
- args: {}
409
+ }));
410
+ setStageTaskIds((prev)=>{
411
+ const targetTaskIds = prev[targetStageId] || [];
412
+ const newTargetTaskIds = (0, taskReorderUtils_cjs_namespaceObject.insertTaskAtPosition)(targetTaskIds, newTaskId, position);
413
+ return {
414
+ ...prev,
415
+ [targetStageId]: newTargetTaskIds
416
+ };
417
+ });
418
+ }, [
419
+ tasks
420
+ ]);
421
+ const handleTaskPaste = (0, external_react_namespaceObject.useCallback)((params)=>{
422
+ const { newTaskId, originalData, targetStageId } = params;
423
+ setActionLog(`Pasted as ${newTaskId}`);
424
+ setTasks((prev)=>({
425
+ ...prev,
426
+ [newTaskId]: {
427
+ label: `${originalData.label} (Copy)`,
428
+ taskType: originalData.taskType,
429
+ icon: originalData.iconElement ?? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
430
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.AgenticProcess,
431
+ size: "sm"
432
+ }),
433
+ execution: originalData.execution
434
+ }
435
+ }));
436
+ setStageTaskIds((prev)=>({
437
+ ...prev,
438
+ [targetStageId]: [
439
+ ...prev[targetStageId] || [],
440
+ [
441
+ newTaskId
442
+ ]
443
+ ]
444
+ }));
445
+ }, []);
446
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(react_cjs_namespaceObject.ReactFlowProvider, {
447
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(InteractiveCanvasInner, {
448
+ nodes: nodes,
449
+ edges: edges,
450
+ onNodesChange: onNodesChange,
451
+ onEdgesChange: onEdgesChange,
452
+ onConnect: onConnect,
453
+ nodeTypes: nodeTypes,
454
+ edgeTypes: edgeTypes,
455
+ onTaskReorder: handleTaskReorder,
456
+ onTaskMove: handleTaskMove,
457
+ onTaskCopy: handleTaskCopy,
458
+ onTaskPaste: handleTaskPaste,
459
+ selectedTaskId: selectedTaskId,
460
+ stageTaskIds: stageTaskIds,
461
+ actionLog: actionLog,
462
+ showInstructions: showInstructions
463
+ })
464
+ });
316
465
  };
317
- const WithTaskIcons = {
318
- name: 'With Task Icons',
319
- parameters: {
320
- nodes: [
321
- {
322
- id: '1',
323
- type: 'stage',
324
- position: {
325
- x: 48,
326
- y: 96
327
- },
328
- width: 304,
329
- data: {
330
- stageDetails: {
331
- label: 'Task Icons Demo',
332
- tasks: [
333
- [
334
- {
335
- id: 'human-task',
336
- label: 'Human in the Loop',
337
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
338
- type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.User,
339
- size: "sm"
340
- })
341
- }
342
- ],
343
- [
344
- {
345
- id: 'agent-task',
346
- label: 'Agent Task',
347
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
348
- type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.Agent,
349
- size: "sm"
350
- })
351
- },
352
- {
353
- id: 'external-agent-task',
354
- label: 'External Agent',
355
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
356
- type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.ExternalAgent,
357
- size: "sm"
358
- })
359
- }
360
- ],
361
- [
362
- {
363
- id: 'rpa-task',
364
- label: 'RPA Automation',
365
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
366
- type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.Automation,
367
- size: "sm"
368
- })
369
- },
370
- {
371
- id: 'api-task',
372
- label: 'API Automation',
373
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
374
- type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.ApiAutomation,
375
- size: "sm"
376
- })
377
- }
378
- ],
379
- [
380
- {
381
- id: 'process-task',
382
- label: 'Agentic Process',
383
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
384
- type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.AgenticProcess,
385
- size: "sm"
386
- })
466
+ const InteractiveCanvasInner = ({ nodes, edges, onNodesChange, onEdgesChange, onConnect, nodeTypes, edgeTypes, onTaskReorder, onTaskMove, onTaskCopy, onTaskPaste, selectedTaskId, stageTaskIds, actionLog, showInstructions })=>{
467
+ const { dragState, handlers } = (0, useCrossStageTaskDrag_cjs_namespaceObject.useCrossStageTaskDrag)({
468
+ onTaskReorder,
469
+ onTaskMove,
470
+ onTaskCopy
471
+ });
472
+ const selectedTaskStageId = (0, external_react_namespaceObject.useMemo)(()=>{
473
+ if (!selectedTaskId) return null;
474
+ for (const [stageId, taskIds] of Object.entries(stageTaskIds))if (taskIds.flat().includes(selectedTaskId)) return stageId;
475
+ return null;
476
+ }, [
477
+ selectedTaskId,
478
+ stageTaskIds
479
+ ]);
480
+ (0, useTaskCopyPaste_cjs_namespaceObject.useTaskCopyPaste)({
481
+ onTaskPaste
482
+ }, {
483
+ selectedTaskId,
484
+ targetStageId: selectedTaskStageId || '',
485
+ targetTaskIds: stageTaskIds[selectedTaskStageId || ''] || [],
486
+ enabled: !!selectedTaskId
487
+ });
488
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(CrossStageDragContext_cjs_namespaceObject.CrossStageDragProvider, {
489
+ value: {
490
+ dragState
491
+ },
492
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(external_BaseCanvas_index_cjs_namespaceObject.BaseCanvas, {
493
+ nodes: nodes,
494
+ edges: edges,
495
+ onNodesChange: onNodesChange,
496
+ onEdgesChange: onEdgesChange,
497
+ onConnect: onConnect,
498
+ nodeTypes: nodeTypes,
499
+ edgeTypes: edgeTypes,
500
+ mode: "design",
501
+ connectionMode: react_cjs_namespaceObject.ConnectionMode.Strict,
502
+ defaultEdgeOptions: {
503
+ type: 'stage'
504
+ },
505
+ connectionLineComponent: external_StageConnectionEdge_cjs_namespaceObject.StageConnectionEdge,
506
+ elevateEdgesOnSelect: true,
507
+ onNodeDragStart: handlers.onNodeDragStart,
508
+ onNodeDrag: handlers.onNodeDrag,
509
+ onNodeDragStop: handlers.onNodeDragStop,
510
+ fitView: true,
511
+ children: [
512
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(react_cjs_namespaceObject.Panel, {
513
+ position: "bottom-right",
514
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_CanvasPositionControls_cjs_namespaceObject.CanvasPositionControls, {
515
+ translations: external_types_cjs_namespaceObject.DefaultCanvasTranslations
516
+ })
517
+ }),
518
+ showInstructions && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(react_cjs_namespaceObject.Panel, {
519
+ position: "bottom-left",
520
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("div", {
521
+ style: {
522
+ background: 'var(--uix-palette-surface-paper)',
523
+ padding: '8px 16px',
524
+ borderRadius: '4px',
525
+ boxShadow: '0 2px 4px rgba(0,0,0,0.1)',
526
+ maxWidth: '300px'
527
+ },
528
+ children: [
529
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("strong", {
530
+ children: "Instructions:"
531
+ }),
532
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("ul", {
533
+ style: {
534
+ margin: '8px 0',
535
+ paddingLeft: '16px',
536
+ fontSize: '12px'
387
537
  },
388
- {
389
- id: 'connector-task',
390
- label: 'Connector',
391
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
392
- type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.Connector,
393
- size: "sm"
394
- })
395
- }
396
- ],
397
- [
398
- {
399
- id: 'timer-task',
400
- label: 'Timer',
401
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
402
- type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.Timer,
403
- size: "sm"
538
+ children: [
539
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("li", {
540
+ children: "Click a task to select it"
541
+ }),
542
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("li", {
543
+ children: "Drag tasks to reorder"
544
+ }),
545
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("li", {
546
+ children: "Ctrl/Cmd+C to copy selected task"
547
+ }),
548
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("li", {
549
+ children: "Ctrl/Cmd+V to paste task"
404
550
  })
405
- }
406
- ]
551
+ ]
552
+ })
407
553
  ]
408
- }
409
- }
410
- }
411
- ]
412
- },
413
- args: {}
554
+ })
555
+ }),
556
+ actionLog && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(react_cjs_namespaceObject.Panel, {
557
+ position: "top-left",
558
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
559
+ style: {
560
+ background: 'var(--uix-palette-surface-paper)',
561
+ padding: '8px 16px',
562
+ borderRadius: '4px',
563
+ boxShadow: '0 2px 4px rgba(0,0,0,0.1)'
564
+ },
565
+ children: actionLog
566
+ })
567
+ })
568
+ ]
569
+ })
570
+ });
414
571
  };
415
- const ExecutionStatus = {
416
- name: 'Execution Status',
417
- parameters: {
418
- nodes: [
419
- {
420
- id: '0',
421
- type: 'stage',
422
- position: {
423
- x: 48,
424
- y: 96
425
- },
426
- width: 304,
427
- data: {
428
- stageDetails: {
429
- sla: '1h',
430
- slaBreached: false,
431
- escalation: '1h',
432
- escalationsTriggered: false,
572
+ const Default = {
573
+ render: ()=>{
574
+ const tasks = {};
575
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
576
+ style: {
577
+ width: '100vw',
578
+ height: '100vh'
579
+ },
580
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(InteractiveStageCanvas, {
581
+ stages: [
582
+ {
583
+ id: 'stage-1',
433
584
  label: 'Application',
434
- isReadOnly: true,
435
- tasks: [
436
- [
437
- {
438
- id: '1',
439
- label: 'KYC and AML Checks',
440
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(VerificationIcon, {})
441
- }
442
- ],
443
- [
444
- {
445
- id: '2',
446
- label: 'Document Verification is going to be very very really long',
447
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(DocumentIcon, {})
448
- }
449
- ]
450
- ]
585
+ taskIds: [],
586
+ position: {
587
+ x: 48,
588
+ y: 96
589
+ },
590
+ width: 304
451
591
  },
452
- execution: {
453
- stageStatus: {
454
- status: 'Completed',
455
- duration: 'SLA: 4h'
592
+ {
593
+ id: 'stage-2',
594
+ label: 'Processing with a really really really long label that might wrap',
595
+ taskIds: [],
596
+ position: {
597
+ x: 400,
598
+ y: 96
456
599
  },
457
- taskStatus: {
458
- 1: {
459
- status: 'Completed',
460
- label: 'KYC and AML Checks',
461
- duration: '2h 15m'
462
- },
463
- 2: {
464
- status: 'Completed',
465
- label: 'Document Verification',
466
- duration: '1h 45m'
467
- }
468
- }
600
+ width: 304
469
601
  }
470
- }
602
+ ],
603
+ tasks: tasks,
604
+ showInstructions: false,
605
+ onTaskAdd: ()=>window.alert('Add task functionality')
606
+ })
607
+ });
608
+ }
609
+ };
610
+ const WithTaskIcons = {
611
+ render: ()=>{
612
+ const tasks = {
613
+ 'agent-task': {
614
+ label: 'Agent Task',
615
+ taskType: 'uipath.case-management.agent',
616
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
617
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.Agent,
618
+ size: "sm"
619
+ })
471
620
  },
472
- {
473
- id: '1',
474
- type: 'stage',
475
- position: {
476
- x: 400,
477
- y: 96
478
- },
479
- width: 304,
480
- data: {
481
- stageDetails: {
482
- sla: '1h',
483
- slaBreached: true,
484
- escalation: '1h',
485
- escalationsTriggered: true,
486
- label: 'Processing',
487
- isReadOnly: true,
488
- tasks: [
621
+ 'rpa-task': {
622
+ label: 'RPA Automation',
623
+ taskType: 'uipath.case-management.rpa',
624
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
625
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.Automation,
626
+ size: "sm"
627
+ })
628
+ },
629
+ 'api-task': {
630
+ label: 'API Automation',
631
+ taskType: 'uipath.case-management.api-workflow',
632
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
633
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.ApiAutomation,
634
+ size: "sm"
635
+ })
636
+ },
637
+ 'human-task': {
638
+ label: 'Human in the Loop',
639
+ taskType: 'uipath.case-management.run-human-action',
640
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
641
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.User,
642
+ size: "sm"
643
+ })
644
+ },
645
+ 'process-task': {
646
+ label: 'Agentic Process',
647
+ taskType: 'uipath.case-management.process',
648
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
649
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.AgenticProcess,
650
+ size: "sm"
651
+ })
652
+ }
653
+ };
654
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
655
+ style: {
656
+ width: '100vw',
657
+ height: '100vh'
658
+ },
659
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(InteractiveStageCanvas, {
660
+ stages: [
661
+ {
662
+ id: 'stage-1',
663
+ label: 'Task Icons Demo',
664
+ taskIds: [
489
665
  [
490
- {
491
- id: '1',
492
- label: 'Liability Check',
493
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(VerificationIcon, {})
494
- }
666
+ 'agent-task'
495
667
  ],
496
668
  [
497
- {
498
- id: '2',
499
- label: 'Credit Review',
500
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(DocumentIcon, {})
501
- }
669
+ 'rpa-task'
502
670
  ],
503
671
  [
504
- {
505
- id: '3',
506
- label: 'Address Verification',
507
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(VerificationIcon, {})
508
- },
509
- {
510
- id: '4',
511
- label: 'Property Verification',
512
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(VerificationIcon, {})
513
- }
672
+ 'api-task'
673
+ ],
674
+ [
675
+ 'human-task'
514
676
  ],
515
677
  [
516
- {
517
- id: '5',
518
- label: 'Processing Review',
519
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(ProcessIcon, {})
520
- }
678
+ 'process-task'
521
679
  ]
522
680
  ],
523
- selectedTasks: [
524
- '2'
525
- ]
526
- },
527
- execution: {
528
- stageStatus: {
529
- status: 'Completed',
530
- duration: 'SLA: 6h 15m'
681
+ position: {
682
+ x: 48,
683
+ y: 96
531
684
  },
532
- taskStatus: {
533
- 1: {
534
- status: 'Completed',
535
- label: 'Liability Check',
536
- duration: '1h 30m',
537
- retryDuration: '25m',
538
- badge: 'Reworked',
539
- badgeStatus: 'error',
540
- retryCount: 2
541
- },
542
- 2: {
543
- status: 'Completed',
544
- label: 'Credit Review',
545
- duration: '1h 30m',
546
- retryDuration: '32m',
547
- badge: 'Reworked',
548
- retryCount: 1
549
- },
550
- 3: {
551
- status: 'Completed',
552
- label: 'Address Verification',
553
- duration: '30m'
554
- },
555
- 4: {
556
- status: 'Completed',
557
- label: 'Property Verification',
558
- duration: '1h 30m',
559
- retryDuration: '1h 5m',
560
- badge: 'Reworked',
561
- retryCount: 3
562
- },
563
- 5: {
564
- status: 'Completed',
565
- label: 'Processing Review',
566
- duration: '1h 15m'
567
- }
568
- }
685
+ width: 304
569
686
  }
687
+ ],
688
+ tasks: tasks
689
+ })
690
+ });
691
+ }
692
+ };
693
+ const ExecutionStatus = {
694
+ render: ()=>{
695
+ const tasks = {
696
+ 's1-task-1': {
697
+ label: 'KYC and AML Checks',
698
+ taskType: 'uipath.case-management.rpa',
699
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
700
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.Automation,
701
+ size: "sm"
702
+ }),
703
+ execution: {
704
+ status: 'Completed',
705
+ duration: '2h 15m'
570
706
  }
571
707
  },
572
- {
573
- id: '2',
574
- type: 'stage',
575
- position: {
576
- x: 752,
577
- y: 96
578
- },
579
- width: 304,
580
- data: {
581
- stageDetails: {
582
- label: 'Underwriting',
583
- isReadOnly: true,
584
- tasks: [
585
- [
586
- {
587
- id: '1',
588
- label: 'Report Ordering',
589
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(DocumentIcon, {})
590
- }
591
- ],
592
- [
593
- {
594
- id: '2',
595
- label: 'Underwriting Verification',
596
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(VerificationIcon, {})
597
- }
598
- ]
599
- ]
600
- },
601
- onTaskClick: (id)=>window.alert(`Task clicked: ${id}`),
602
- execution: {
603
- stageStatus: {
604
- status: 'InProgress',
605
- label: 'In progress',
606
- duration: 'SLA: 2h 15m'
607
- },
608
- taskStatus: {
609
- 1: {
610
- status: 'Completed',
611
- label: 'Report Ordering',
612
- duration: '2h 15m'
613
- },
614
- 2: {
615
- status: 'InProgress',
616
- label: 'Underwriting Verification'
617
- }
618
- }
619
- }
708
+ 's1-task-2': {
709
+ label: 'Document Verification is going to be very very really long',
710
+ taskType: 'uipath.case-management.process',
711
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
712
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.AgenticProcess,
713
+ size: "sm"
714
+ }),
715
+ execution: {
716
+ status: 'Completed',
717
+ duration: '1h 45m'
620
718
  }
621
719
  },
622
- {
623
- id: '3',
624
- type: 'stage',
625
- position: {
626
- x: 1104,
627
- y: 96
628
- },
629
- width: 304,
630
- data: {
631
- stageDetails: {
632
- label: 'Closing',
633
- isReadOnly: true,
634
- tasks: [
635
- [
636
- {
637
- id: '1',
638
- label: 'Loan Packet Creation',
639
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(DocumentIcon, {})
640
- }
641
- ],
642
- [
643
- {
644
- id: '2',
645
- label: 'Customer Signing',
646
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(DocumentIcon, {})
647
- }
648
- ],
649
- [
650
- {
651
- id: '3',
652
- label: 'Generate Audit Report',
653
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(DocumentIcon, {})
654
- }
655
- ]
656
- ]
657
- },
658
- execution: {
659
- stageStatus: {
660
- status: 'NotExecuted',
661
- label: 'Not started'
662
- },
663
- taskStatus: {}
664
- }
720
+ 's2-task-1': {
721
+ label: 'Liability Check',
722
+ taskType: 'uipath.case-management.rpa',
723
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
724
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.Automation,
725
+ size: "sm"
726
+ }),
727
+ execution: {
728
+ status: 'Completed',
729
+ duration: '1h 30m',
730
+ retryDuration: '25m',
731
+ badge: 'Reworked',
732
+ badgeStatus: 'error',
733
+ retryCount: 2
665
734
  }
666
735
  },
667
- {
668
- id: '4',
669
- type: 'stage',
670
- position: {
671
- x: 1104,
672
- y: 400
673
- },
674
- width: 304,
675
- data: {
676
- stageDetails: {
677
- label: 'Rejected',
678
- isException: true,
679
- isReadOnly: true,
680
- tasks: [
681
- [
682
- {
683
- id: '1',
684
- label: 'Customer Notification',
685
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(ProcessIcon, {})
686
- }
687
- ],
688
- [
689
- {
690
- id: '2',
691
- label: 'Generate Audit Report',
692
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(DocumentIcon, {})
693
- }
694
- ]
695
- ]
696
- },
697
- execution: {
698
- stageStatus: {
699
- status: 'NotExecuted',
700
- label: 'Not started'
701
- },
702
- taskStatus: {}
703
- }
736
+ 's2-task-2': {
737
+ label: 'Credit Review',
738
+ taskType: 'uipath.case-management.process',
739
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
740
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.AgenticProcess,
741
+ size: "sm"
742
+ }),
743
+ execution: {
744
+ status: 'Completed',
745
+ duration: '1h 30m',
746
+ retryDuration: '32m',
747
+ badge: 'Reworked',
748
+ retryCount: 1
749
+ }
750
+ },
751
+ 's2-task-3': {
752
+ label: 'Address Verification',
753
+ taskType: 'uipath.case-management.rpa',
754
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
755
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.Automation,
756
+ size: "sm"
757
+ }),
758
+ execution: {
759
+ status: 'Completed',
760
+ duration: '30m'
761
+ }
762
+ },
763
+ 's2-task-4': {
764
+ label: 'Property Verification',
765
+ taskType: 'uipath.case-management.rpa',
766
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
767
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.Automation,
768
+ size: "sm"
769
+ }),
770
+ execution: {
771
+ status: 'Completed',
772
+ duration: '1h 30m',
773
+ retryDuration: '1h 5m',
774
+ badge: 'Reworked',
775
+ retryCount: 3
776
+ }
777
+ },
778
+ 's2-task-5': {
779
+ label: 'Processing Review',
780
+ taskType: 'uipath.case-management.agent',
781
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
782
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.Agent,
783
+ size: "sm"
784
+ }),
785
+ execution: {
786
+ status: 'Completed',
787
+ duration: '1h 15m'
788
+ }
789
+ },
790
+ 's3-task-1': {
791
+ label: 'Report Ordering',
792
+ taskType: 'uipath.case-management.process',
793
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
794
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.AgenticProcess,
795
+ size: "sm"
796
+ }),
797
+ execution: {
798
+ status: 'Completed',
799
+ duration: '2h 15m'
800
+ }
801
+ },
802
+ 's3-task-2': {
803
+ label: 'Underwriting Verification',
804
+ taskType: 'uipath.case-management.rpa',
805
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
806
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.Automation,
807
+ size: "sm"
808
+ }),
809
+ execution: {
810
+ status: 'InProgress'
811
+ }
812
+ },
813
+ 's4-task-1': {
814
+ label: 'Loan Packet Creation',
815
+ taskType: 'uipath.case-management.process',
816
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
817
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.AgenticProcess,
818
+ size: "sm"
819
+ }),
820
+ execution: {
821
+ status: 'NotExecuted'
822
+ }
823
+ },
824
+ 's4-task-2': {
825
+ label: 'Customer Signing',
826
+ taskType: 'uipath.case-management.run-human-action',
827
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
828
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.User,
829
+ size: "sm"
830
+ }),
831
+ execution: {
832
+ status: 'NotExecuted'
833
+ }
834
+ },
835
+ 's4-task-3': {
836
+ label: 'Generate Audit Report',
837
+ taskType: 'uipath.case-management.process',
838
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
839
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.AgenticProcess,
840
+ size: "sm"
841
+ }),
842
+ execution: {
843
+ status: 'NotExecuted'
844
+ }
845
+ },
846
+ 'rejected-task-1': {
847
+ label: 'Customer Notification',
848
+ taskType: 'uipath.case-management.agent',
849
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
850
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.Agent,
851
+ size: "sm"
852
+ }),
853
+ execution: {
854
+ status: 'NotExecuted'
855
+ }
856
+ },
857
+ 'rejected-task-2': {
858
+ label: 'Generate Audit Report',
859
+ taskType: 'uipath.case-management.process',
860
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
861
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.AgenticProcess,
862
+ size: "sm"
863
+ }),
864
+ execution: {
865
+ status: 'NotExecuted'
704
866
  }
705
867
  }
706
- ],
707
- edges: [
868
+ };
869
+ const edges = [
708
870
  {
709
871
  id: 'e1',
710
872
  type: 'stage',
711
- source: '0',
712
- sourceHandle: '0____source____right',
713
- target: '1',
714
- targetHandle: '1____target____left'
873
+ source: 'stage-1',
874
+ sourceHandle: 'stage-1____source____right',
875
+ target: 'stage-2',
876
+ targetHandle: 'stage-2____target____left'
715
877
  },
716
878
  {
717
879
  id: 'e2',
718
880
  type: 'stage',
719
- source: '1',
720
- sourceHandle: '1____source____right',
721
- target: '2',
722
- targetHandle: '2____target____left'
881
+ source: 'stage-2',
882
+ sourceHandle: 'stage-2____source____right',
883
+ target: 'stage-3',
884
+ targetHandle: 'stage-3____target____left'
723
885
  },
724
886
  {
725
887
  id: 'e3',
726
888
  type: 'stage',
727
- source: '2',
728
- sourceHandle: '2____source____right',
729
- target: '3',
730
- targetHandle: '3____target____left'
889
+ source: 'stage-3',
890
+ sourceHandle: 'stage-3____source____right',
891
+ target: 'stage-4',
892
+ targetHandle: 'stage-4____target____left'
731
893
  }
732
- ]
733
- },
734
- args: {}
735
- };
736
- const InteractiveTaskManagement = {
737
- name: 'Interactive Task Management',
738
- parameters: {
739
- nodes: [
740
- {
741
- id: 'design-stage',
742
- type: 'stage',
743
- position: {
744
- x: 48,
745
- y: 96
746
- },
747
- width: 352,
748
- data: {
749
- stageDetails: {
750
- label: 'Design Mode - Editable',
751
- tasks: [
752
- [
753
- {
754
- id: '1',
755
- label: 'Initial Task',
756
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(VerificationIcon, {})
757
- }
758
- ],
759
- [
760
- {
761
- id: '2',
762
- label: 'Credit Review with a very long label that will be truncated and show tooltip',
763
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(DocumentIcon, {})
764
- }
765
- ],
766
- [
767
- {
768
- id: '3',
769
- label: 'Address Verification',
770
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(VerificationIcon, {})
771
- },
772
- {
773
- id: '4',
774
- label: 'Property Verification with Long Name',
775
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(VerificationIcon, {})
776
- },
777
- {
778
- id: '5',
779
- label: 'Background Check',
780
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(ProcessIcon, {})
781
- }
782
- ],
783
- [
784
- {
785
- id: '6',
786
- label: "Final Review Task with Extended Description",
787
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(ProcessIcon, {})
788
- }
789
- ]
790
- ]
791
- },
792
- onTaskClick: (taskId)=>{
793
- window.alert(`Task clicked: ${taskId}`);
794
- },
795
- onTaskRemove: (groupIndex, taskIndex)=>{
796
- window.alert(`Task removal requested!\nGroup: ${groupIndex}\nTask: ${taskIndex}\n\nIn a real app, this would remove the task from the data.`);
797
- },
798
- onTaskAdd: ()=>{
799
- window.alert('Add task functionality - this would open a dialog to add a new task');
800
- }
801
- }
894
+ ];
895
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
896
+ style: {
897
+ width: '100vw',
898
+ height: '100vh'
802
899
  },
803
- {
804
- id: 'execution-stage',
805
- type: 'stage',
806
- position: {
807
- x: 448,
808
- y: 96
809
- },
810
- width: 352,
811
- data: {
812
- stageDetails: {
813
- label: 'Execution Mode - Read Only',
814
- isReadOnly: true,
815
- tasks: [
816
- [
817
- {
818
- id: '1',
819
- label: 'Task with execution status and very long name that will be truncated',
820
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(VerificationIcon, {})
821
- }
822
- ],
823
- [
824
- {
825
- id: '2',
826
- label: 'Credit Review Processing',
827
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(DocumentIcon, {})
828
- }
829
- ],
900
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(InteractiveStageCanvas, {
901
+ stages: [
902
+ {
903
+ id: 'stage-1',
904
+ label: 'Application',
905
+ taskIds: [
830
906
  [
831
- {
832
- id: '3',
833
- label: 'Parallel Address Verification Task',
834
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(VerificationIcon, {})
835
- },
836
- {
837
- id: '4',
838
- label: 'Parallel Property Verification with Extended Name',
839
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(VerificationIcon, {})
840
- }
907
+ 's1-task-1'
841
908
  ],
842
909
  [
843
- {
844
- id: '5',
845
- label: 'Final Review and Approval Process',
846
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(ProcessIcon, {})
847
- }
910
+ 's1-task-2'
848
911
  ]
849
- ]
850
- },
851
- execution: {
852
- stageStatus: {
853
- status: 'InProgress',
854
- label: 'In progress',
855
- duration: '2h 15m'
912
+ ],
913
+ position: {
914
+ x: 48,
915
+ y: 96
856
916
  },
857
- taskStatus: {
858
- 1: {
859
- status: 'Completed',
860
- duration: '30m',
861
- badge: 'Completed',
862
- badgeStatus: 'info'
863
- },
864
- 2: {
865
- status: 'InProgress',
866
- duration: '1h 15m',
867
- retryDuration: '15m',
868
- badge: 'Retry',
869
- badgeStatus: 'warning',
870
- retryCount: 2
871
- },
872
- 3: {
917
+ width: 304,
918
+ isReadOnly: true,
919
+ execution: {
920
+ stageStatus: {
873
921
  status: 'Completed',
874
- duration: '45m'
875
- },
876
- 4: {
877
- status: 'Failed',
878
- duration: '20m',
879
- retryDuration: '10m',
880
- badge: 'Error',
881
- badgeStatus: 'error',
882
- retryCount: 1
922
+ duration: 'SLA: 4h'
883
923
  },
884
- 5: {
885
- status: 'NotExecuted'
886
- }
924
+ taskStatus: {}
887
925
  }
888
926
  },
889
- onTaskClick: (taskId)=>{
890
- window.alert(`Task clicked: ${taskId} (execution mode - read only)`);
891
- }
892
- }
893
- }
894
- ]
895
- },
896
- args: {}
897
- };
898
- const LoanProcessingWorkflow = {
899
- name: 'Loan Processing Workflow',
900
- parameters: {
901
- nodes: [
902
- {
903
- id: 'application',
904
- type: 'stage',
905
- position: {
906
- x: 48,
907
- y: 96
908
- },
909
- width: 304,
910
- data: {
911
- stageDetails: {
912
- label: 'Application',
913
- tasks: [
914
- [
915
- {
916
- id: '1',
917
- label: 'KYC and AML Checks',
918
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(VerificationIcon, {})
919
- }
920
- ],
921
- [
922
- {
923
- id: '2',
924
- label: 'Document Verification',
925
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(DocumentIcon, {})
926
- }
927
- ]
928
- ],
929
- selectedTasks: [
930
- '1'
931
- ]
932
- }
933
- }
934
- },
935
- {
936
- id: 'processing',
937
- type: 'stage',
938
- position: {
939
- x: 448,
940
- y: 96
941
- },
942
- width: 304,
943
- data: {
944
- stageDetails: {
927
+ {
928
+ id: 'stage-2',
945
929
  label: 'Processing',
946
- tasks: [
930
+ taskIds: [
947
931
  [
948
- {
949
- id: '1',
950
- label: 'Liability Check',
951
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(VerificationIcon, {})
952
- }
932
+ 's2-task-1'
953
933
  ],
954
934
  [
955
- {
956
- id: '2',
957
- label: 'Credit Review',
958
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(DocumentIcon, {})
959
- }
935
+ 's2-task-2'
960
936
  ],
961
937
  [
962
- {
963
- id: '3',
964
- label: 'Address Verification',
965
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(VerificationIcon, {})
966
- },
967
- {
968
- id: '4',
969
- label: 'Property Verification',
970
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(VerificationIcon, {})
971
- }
938
+ 's2-task-3',
939
+ 's2-task-4'
972
940
  ],
973
941
  [
974
- {
975
- id: '5',
976
- label: 'Processing Review',
977
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(ProcessIcon, {})
978
- }
942
+ 's2-task-5'
979
943
  ]
980
944
  ],
981
- selectedTasks: [
982
- '4'
983
- ]
984
- }
985
- }
986
- },
987
- {
988
- id: 'underwriting',
989
- type: 'stage',
990
- position: {
991
- x: 848,
992
- y: 96
993
- },
994
- width: 304,
995
- data: {
996
- stageDetails: {
945
+ position: {
946
+ x: 400,
947
+ y: 96
948
+ },
949
+ width: 304,
950
+ isReadOnly: true,
951
+ execution: {
952
+ stageStatus: {
953
+ status: 'Completed',
954
+ duration: 'SLA: 6h 15m'
955
+ },
956
+ taskStatus: {}
957
+ }
958
+ },
959
+ {
960
+ id: 'stage-3',
997
961
  label: 'Underwriting',
998
- tasks: [
962
+ taskIds: [
999
963
  [
1000
- {
1001
- id: '1',
1002
- label: 'Report Ordering',
1003
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(DocumentIcon, {})
1004
- }
964
+ 's3-task-1'
1005
965
  ],
1006
966
  [
1007
- {
1008
- id: '2',
1009
- label: 'Underwriting Verification',
1010
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(VerificationIcon, {})
1011
- }
967
+ 's3-task-2'
1012
968
  ]
1013
- ]
1014
- }
1015
- }
1016
- },
1017
- {
1018
- id: 'closing',
1019
- type: 'stage',
1020
- position: {
1021
- x: 1248,
1022
- y: 96
1023
- },
1024
- width: 304,
1025
- data: {
1026
- stageDetails: {
969
+ ],
970
+ position: {
971
+ x: 752,
972
+ y: 96
973
+ },
974
+ width: 304,
975
+ isReadOnly: true,
976
+ execution: {
977
+ stageStatus: {
978
+ status: 'InProgress',
979
+ label: 'In progress',
980
+ duration: 'SLA: 2h 15m'
981
+ },
982
+ taskStatus: {}
983
+ }
984
+ },
985
+ {
986
+ id: 'stage-4',
1027
987
  label: 'Closing',
1028
- tasks: [
988
+ taskIds: [
1029
989
  [
1030
- {
1031
- id: '1',
1032
- label: 'Loan Packet Creation',
1033
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(DocumentIcon, {})
1034
- }
990
+ 's4-task-1'
1035
991
  ],
1036
992
  [
1037
- {
1038
- id: '2',
1039
- label: 'Customer Signing',
1040
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(DocumentIcon, {})
1041
- }
993
+ 's4-task-2'
1042
994
  ],
1043
995
  [
1044
- {
1045
- id: '3',
1046
- label: 'Generate Audit Report',
1047
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(DocumentIcon, {})
1048
- }
996
+ 's4-task-3'
1049
997
  ]
1050
- ]
1051
- }
1052
- }
1053
- },
1054
- {
1055
- id: 'funding',
1056
- type: 'stage',
1057
- position: {
1058
- x: 1648,
1059
- y: 96
1060
- },
1061
- width: 304,
1062
- data: {
1063
- stageDetails: {
1064
- label: 'Funding',
1065
- tasks: [
998
+ ],
999
+ position: {
1000
+ x: 1104,
1001
+ y: 96
1002
+ },
1003
+ width: 304,
1004
+ isReadOnly: true,
1005
+ execution: {
1006
+ stageStatus: {
1007
+ status: 'NotExecuted',
1008
+ label: 'Not started'
1009
+ },
1010
+ taskStatus: {}
1011
+ }
1012
+ },
1013
+ {
1014
+ id: 'rejected',
1015
+ label: 'Rejected',
1016
+ taskIds: [
1066
1017
  [
1067
- {
1068
- id: '1',
1069
- label: 'Disperse Loan',
1070
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(ProcessIcon, {})
1071
- }
1018
+ 'rejected-task-1'
1072
1019
  ],
1073
1020
  [
1074
- {
1075
- id: '2',
1076
- label: 'Generate Audit Report',
1077
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(DocumentIcon, {})
1078
- }
1021
+ 'rejected-task-2'
1079
1022
  ]
1080
- ]
1023
+ ],
1024
+ position: {
1025
+ x: 1104,
1026
+ y: 400
1027
+ },
1028
+ width: 304,
1029
+ isException: true,
1030
+ isReadOnly: true,
1031
+ execution: {
1032
+ stageStatus: {
1033
+ status: 'NotExecuted',
1034
+ label: 'Not started'
1035
+ },
1036
+ taskStatus: {}
1037
+ }
1081
1038
  }
1039
+ ],
1040
+ tasks: tasks,
1041
+ edges: edges,
1042
+ showInstructions: false
1043
+ })
1044
+ });
1045
+ }
1046
+ };
1047
+ const InteractiveTaskManagement = {
1048
+ render: ()=>{
1049
+ const tasks = {
1050
+ 'task-1': {
1051
+ label: 'Initial Task',
1052
+ taskType: 'uipath.case-management.rpa',
1053
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1054
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.Automation,
1055
+ size: "sm"
1056
+ })
1057
+ },
1058
+ 'task-2': {
1059
+ label: 'Credit Review with a very long label that will be truncated and show tooltip',
1060
+ taskType: 'uipath.case-management.process',
1061
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1062
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.AgenticProcess,
1063
+ size: "sm"
1064
+ })
1065
+ },
1066
+ 'task-3': {
1067
+ label: 'Address Verification',
1068
+ taskType: 'uipath.case-management.rpa',
1069
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1070
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.Automation,
1071
+ size: "sm"
1072
+ })
1073
+ },
1074
+ 'task-4': {
1075
+ label: 'Property Verification with Long Name',
1076
+ taskType: 'uipath.case-management.rpa',
1077
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1078
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.Automation,
1079
+ size: "sm"
1080
+ })
1081
+ },
1082
+ 'task-5': {
1083
+ label: 'Background Check',
1084
+ taskType: 'uipath.case-management.agent',
1085
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1086
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.Agent,
1087
+ size: "sm"
1088
+ })
1089
+ },
1090
+ 'task-6': {
1091
+ label: "Final Review Task with Extended Description",
1092
+ taskType: 'uipath.case-management.agent',
1093
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1094
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.Agent,
1095
+ size: "sm"
1096
+ })
1097
+ },
1098
+ 'exec-task-1': {
1099
+ label: 'Task with execution status and very long name that will be truncated',
1100
+ taskType: 'uipath.case-management.rpa',
1101
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1102
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.Automation,
1103
+ size: "sm"
1104
+ }),
1105
+ execution: {
1106
+ status: 'Completed',
1107
+ duration: '30m',
1108
+ badge: 'Completed',
1109
+ badgeStatus: 'info'
1082
1110
  }
1083
1111
  },
1084
- {
1085
- id: 'rejected',
1086
- type: 'stage',
1087
- position: {
1088
- x: 1248,
1089
- y: 400
1090
- },
1091
- width: 304,
1092
- data: {
1093
- stageDetails: {
1094
- label: 'Rejected',
1095
- isException: true,
1096
- tasks: [
1112
+ 'exec-task-2': {
1113
+ label: 'Credit Review Processing',
1114
+ taskType: 'uipath.case-management.process',
1115
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1116
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.AgenticProcess,
1117
+ size: "sm"
1118
+ }),
1119
+ execution: {
1120
+ status: 'InProgress',
1121
+ duration: '1h 15m',
1122
+ retryDuration: '15m',
1123
+ badge: 'Retry',
1124
+ badgeStatus: 'warning',
1125
+ retryCount: 2
1126
+ }
1127
+ },
1128
+ 'exec-task-3': {
1129
+ label: 'Parallel Address Verification Task',
1130
+ taskType: 'uipath.case-management.rpa',
1131
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1132
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.Automation,
1133
+ size: "sm"
1134
+ }),
1135
+ execution: {
1136
+ status: 'Completed',
1137
+ duration: '45m'
1138
+ }
1139
+ },
1140
+ 'exec-task-4': {
1141
+ label: 'Parallel Property Verification with Extended Name',
1142
+ taskType: 'uipath.case-management.rpa',
1143
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1144
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.Automation,
1145
+ size: "sm"
1146
+ }),
1147
+ execution: {
1148
+ status: 'Failed',
1149
+ duration: '20m',
1150
+ retryDuration: '10m',
1151
+ badge: 'Error',
1152
+ badgeStatus: 'error',
1153
+ retryCount: 1
1154
+ }
1155
+ },
1156
+ 'exec-task-5': {
1157
+ label: 'Final Review and Approval Process',
1158
+ taskType: 'uipath.case-management.agent',
1159
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1160
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.Agent,
1161
+ size: "sm"
1162
+ }),
1163
+ execution: {
1164
+ status: 'NotExecuted'
1165
+ }
1166
+ }
1167
+ };
1168
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
1169
+ style: {
1170
+ width: '100vw',
1171
+ height: '100vh'
1172
+ },
1173
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(InteractiveStageCanvas, {
1174
+ stages: [
1175
+ {
1176
+ id: 'design-stage',
1177
+ label: 'Design Mode - Editable',
1178
+ taskIds: [
1179
+ [
1180
+ 'task-1'
1181
+ ],
1182
+ [
1183
+ 'task-2'
1184
+ ],
1097
1185
  [
1098
- {
1099
- id: '1',
1100
- label: 'Customer Notification',
1101
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(ProcessIcon, {})
1102
- }
1186
+ 'task-3',
1187
+ 'task-4',
1188
+ 'task-5'
1103
1189
  ],
1104
1190
  [
1105
- {
1106
- id: '2',
1107
- label: 'Generate Audit Report',
1108
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(DocumentIcon, {})
1109
- }
1191
+ 'task-6'
1110
1192
  ]
1111
- ]
1112
- }
1113
- }
1114
- },
1115
- {
1116
- id: 'withdrawn',
1117
- type: 'stage',
1118
- position: {
1119
- x: 448,
1120
- y: 608
1121
- },
1122
- width: 304,
1123
- data: {
1124
- stageDetails: {
1125
- label: 'Withdrawn',
1126
- isException: true,
1127
- tasks: [
1193
+ ],
1194
+ position: {
1195
+ x: 48,
1196
+ y: 96
1197
+ },
1198
+ width: 352
1199
+ },
1200
+ {
1201
+ id: 'execution-stage',
1202
+ label: 'Execution Mode - Read Only',
1203
+ taskIds: [
1204
+ [
1205
+ 'exec-task-1'
1206
+ ],
1207
+ [
1208
+ 'exec-task-2'
1209
+ ],
1128
1210
  [
1129
- {
1130
- id: '1',
1131
- label: 'Customer Notification',
1132
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(ProcessIcon, {})
1133
- }
1211
+ 'exec-task-3',
1212
+ 'exec-task-4'
1134
1213
  ],
1135
1214
  [
1136
- {
1137
- id: '2',
1138
- label: 'Generate Audit Report',
1139
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(DocumentIcon, {})
1140
- }
1215
+ 'exec-task-5'
1141
1216
  ]
1142
- ]
1217
+ ],
1218
+ position: {
1219
+ x: 448,
1220
+ y: 96
1221
+ },
1222
+ width: 352,
1223
+ isReadOnly: true,
1224
+ execution: {
1225
+ stageStatus: {
1226
+ status: 'InProgress',
1227
+ label: 'In progress',
1228
+ duration: '2h 15m'
1229
+ },
1230
+ taskStatus: {}
1231
+ }
1143
1232
  }
1144
- }
1233
+ ],
1234
+ tasks: tasks
1235
+ })
1236
+ });
1237
+ }
1238
+ };
1239
+ const LoanProcessingWorkflow = {
1240
+ render: ()=>{
1241
+ const tasks = {
1242
+ 'app-task-1': {
1243
+ label: 'KYC and AML Checks',
1244
+ taskType: 'uipath.case-management.rpa',
1245
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1246
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.Automation,
1247
+ size: "sm"
1248
+ })
1249
+ },
1250
+ 'app-task-2': {
1251
+ label: 'Document Verification',
1252
+ taskType: 'uipath.case-management.process',
1253
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1254
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.AgenticProcess,
1255
+ size: "sm"
1256
+ })
1257
+ },
1258
+ 'proc-task-1': {
1259
+ label: 'Liability Check',
1260
+ taskType: 'uipath.case-management.rpa',
1261
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1262
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.Automation,
1263
+ size: "sm"
1264
+ })
1265
+ },
1266
+ 'proc-task-2': {
1267
+ label: 'Credit Review',
1268
+ taskType: 'uipath.case-management.process',
1269
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1270
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.AgenticProcess,
1271
+ size: "sm"
1272
+ })
1273
+ },
1274
+ 'proc-task-3': {
1275
+ label: 'Address Verification',
1276
+ taskType: 'uipath.case-management.rpa',
1277
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1278
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.Automation,
1279
+ size: "sm"
1280
+ })
1281
+ },
1282
+ 'proc-task-4': {
1283
+ label: 'Property Verification',
1284
+ taskType: 'uipath.case-management.rpa',
1285
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1286
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.Automation,
1287
+ size: "sm"
1288
+ })
1289
+ },
1290
+ 'proc-task-5': {
1291
+ label: 'Processing Review',
1292
+ taskType: 'uipath.case-management.agent',
1293
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1294
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.Agent,
1295
+ size: "sm"
1296
+ })
1297
+ },
1298
+ 'uw-task-1': {
1299
+ label: 'Report Ordering',
1300
+ taskType: 'uipath.case-management.process',
1301
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1302
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.AgenticProcess,
1303
+ size: "sm"
1304
+ })
1305
+ },
1306
+ 'uw-task-2': {
1307
+ label: 'Underwriting Verification',
1308
+ taskType: 'uipath.case-management.rpa',
1309
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1310
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.Automation,
1311
+ size: "sm"
1312
+ })
1313
+ },
1314
+ 'close-task-1': {
1315
+ label: 'Loan Packet Creation',
1316
+ taskType: 'uipath.case-management.process',
1317
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1318
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.AgenticProcess,
1319
+ size: "sm"
1320
+ })
1321
+ },
1322
+ 'close-task-2': {
1323
+ label: 'Customer Signing',
1324
+ taskType: 'uipath.case-management.run-human-action',
1325
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1326
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.User,
1327
+ size: "sm"
1328
+ })
1329
+ },
1330
+ 'close-task-3': {
1331
+ label: 'Generate Audit Report',
1332
+ taskType: 'uipath.case-management.process',
1333
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1334
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.AgenticProcess,
1335
+ size: "sm"
1336
+ })
1337
+ },
1338
+ 'fund-task-1': {
1339
+ label: 'Disperse Loan',
1340
+ taskType: 'uipath.case-management.agent',
1341
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1342
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.Agent,
1343
+ size: "sm"
1344
+ })
1345
+ },
1346
+ 'fund-task-2': {
1347
+ label: 'Generate Audit Report',
1348
+ taskType: 'uipath.case-management.process',
1349
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1350
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.AgenticProcess,
1351
+ size: "sm"
1352
+ })
1353
+ },
1354
+ 'reject-task-1': {
1355
+ label: 'Customer Notification',
1356
+ taskType: 'uipath.case-management.agent',
1357
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1358
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.Agent,
1359
+ size: "sm"
1360
+ })
1361
+ },
1362
+ 'reject-task-2': {
1363
+ label: 'Generate Audit Report',
1364
+ taskType: 'uipath.case-management.process',
1365
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1366
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.AgenticProcess,
1367
+ size: "sm"
1368
+ })
1369
+ },
1370
+ 'withdraw-task-1': {
1371
+ label: 'Customer Notification',
1372
+ taskType: 'uipath.case-management.agent',
1373
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1374
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.Agent,
1375
+ size: "sm"
1376
+ })
1377
+ },
1378
+ 'withdraw-task-2': {
1379
+ label: 'Generate Audit Report',
1380
+ taskType: 'uipath.case-management.process',
1381
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1382
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.AgenticProcess,
1383
+ size: "sm"
1384
+ })
1145
1385
  }
1146
- ],
1147
- edges: [
1386
+ };
1387
+ const edges = [
1148
1388
  {
1149
1389
  id: 'e1',
1150
1390
  type: 'stage',
@@ -1177,394 +1417,580 @@ const LoanProcessingWorkflow = {
1177
1417
  target: 'funding',
1178
1418
  targetHandle: 'funding____target____left'
1179
1419
  }
1180
- ]
1181
- },
1182
- args: {}
1183
- };
1184
- const initialTasks = [
1185
- [
1186
- {
1187
- id: 'task-1',
1188
- label: 'KYC Verification',
1189
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(VerificationIcon, {})
1190
- }
1191
- ],
1192
- [
1193
- {
1194
- id: 'task-2',
1195
- label: 'Document Review',
1196
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(DocumentIcon, {})
1197
- },
1198
- {
1199
- id: 'task-6',
1200
- label: 'Credit Check',
1201
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(VerificationIcon, {})
1202
- }
1203
- ],
1204
- [
1205
- {
1206
- id: 'task-3',
1207
- label: 'Address Check',
1208
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(VerificationIcon, {})
1209
- },
1210
- {
1211
- id: 'task-4',
1212
- label: 'Property Check',
1213
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(VerificationIcon, {})
1214
- }
1215
- ],
1216
- [
1217
- {
1218
- id: 'task-5',
1219
- label: 'Final Approval',
1220
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(ProcessIcon, {})
1221
- }
1222
- ]
1223
- ];
1224
- const DraggableTaskReorderingStory = ()=>{
1225
- const StageNodeWrapper = (0, external_react_namespaceObject.useMemo)(()=>function(props) {
1226
- return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_StageNode_cjs_namespaceObject.StageNode, {
1227
- ...props,
1228
- ...props.data
1229
- });
1230
- }, []);
1231
- const nodeTypes = (0, external_react_namespaceObject.useMemo)(()=>({
1232
- stage: StageNodeWrapper
1233
- }), [
1234
- StageNodeWrapper
1235
- ]);
1236
- const edgeTypes = (0, external_react_namespaceObject.useMemo)(()=>({
1237
- stage: external_StageEdge_cjs_namespaceObject.StageEdge
1238
- }), []);
1239
- const [nodes, setNodes, onNodesChange] = (0, react_cjs_namespaceObject.useNodesState)([
1240
- {
1241
- id: 'reorder-stage',
1242
- type: 'stage',
1243
- position: {
1244
- x: 320,
1245
- y: 96
1420
+ ];
1421
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
1422
+ style: {
1423
+ width: '100vw',
1424
+ height: '100vh'
1246
1425
  },
1247
- data: {
1248
- stageDetails: {
1249
- label: 'Drag to Reorder Tasks',
1250
- tasks: initialTasks
1251
- },
1252
- onTaskClick: (taskId)=>console.log('Task clicked:', taskId)
1253
- }
1254
- }
1255
- ]);
1256
- const [edges, setEdges, onEdgesChange] = (0, react_cjs_namespaceObject.useEdgesState)([]);
1257
- const handleTaskReorder = (0, external_react_namespaceObject.useCallback)((reorderedTasks)=>{
1258
- setNodes((nds)=>nds.map((node)=>'reorder-stage' === node.id ? {
1259
- ...node,
1260
- data: {
1261
- ...node.data,
1262
- stageDetails: {
1263
- ...node.data.stageDetails,
1264
- tasks: reorderedTasks
1265
- }
1266
- }
1267
- } : node));
1268
- }, [
1269
- setNodes
1270
- ]);
1271
- const nodesWithHandler = (0, external_react_namespaceObject.useMemo)(()=>nodes.map((node)=>({
1272
- ...node,
1273
- data: {
1274
- ...node.data,
1275
- onTaskReorder: handleTaskReorder
1276
- }
1277
- })), [
1278
- nodes,
1279
- handleTaskReorder
1280
- ]);
1281
- const onConnect = (0, external_react_namespaceObject.useCallback)((connection)=>setEdges((eds)=>(0, react_cjs_namespaceObject.addEdge)(connection, eds)), [
1282
- setEdges
1283
- ]);
1284
- return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
1285
- style: {
1286
- width: '100vw',
1287
- height: '100vh'
1288
- },
1289
- children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(react_cjs_namespaceObject.ReactFlowProvider, {
1290
- children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_BaseCanvas_index_cjs_namespaceObject.BaseCanvas, {
1291
- nodes: nodesWithHandler,
1292
- edges: edges,
1293
- onNodesChange: onNodesChange,
1294
- onEdgesChange: onEdgesChange,
1295
- onConnect: onConnect,
1296
- nodeTypes: nodeTypes,
1297
- edgeTypes: edgeTypes,
1298
- mode: "design",
1299
- connectionMode: react_cjs_namespaceObject.ConnectionMode.Strict,
1300
- defaultEdgeOptions: {
1301
- type: 'stage'
1302
- },
1303
- connectionLineComponent: external_StageConnectionEdge_cjs_namespaceObject.StageConnectionEdge,
1304
- elevateEdgesOnSelect: true,
1305
- defaultViewport: {
1306
- x: 0,
1307
- y: 0,
1308
- zoom: 1.5
1309
- },
1310
- children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(react_cjs_namespaceObject.Panel, {
1311
- position: "bottom-right",
1312
- children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_CanvasPositionControls_cjs_namespaceObject.CanvasPositionControls, {
1313
- translations: external_types_cjs_namespaceObject.DefaultCanvasTranslations
1314
- })
1426
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(InteractiveStageCanvas, {
1427
+ stages: [
1428
+ {
1429
+ id: 'application',
1430
+ label: 'Application',
1431
+ taskIds: [
1432
+ [
1433
+ 'app-task-1'
1434
+ ],
1435
+ [
1436
+ 'app-task-2'
1437
+ ]
1438
+ ],
1439
+ position: {
1440
+ x: 48,
1441
+ y: 96
1442
+ },
1443
+ width: 304
1444
+ },
1445
+ {
1446
+ id: 'processing',
1447
+ label: 'Processing',
1448
+ taskIds: [
1449
+ [
1450
+ 'proc-task-1'
1451
+ ],
1452
+ [
1453
+ 'proc-task-2'
1454
+ ],
1455
+ [
1456
+ 'proc-task-3',
1457
+ 'proc-task-4'
1458
+ ],
1459
+ [
1460
+ 'proc-task-5'
1461
+ ]
1462
+ ],
1463
+ position: {
1464
+ x: 448,
1465
+ y: 96
1466
+ },
1467
+ width: 304
1468
+ },
1469
+ {
1470
+ id: 'underwriting',
1471
+ label: 'Underwriting',
1472
+ taskIds: [
1473
+ [
1474
+ 'uw-task-1'
1475
+ ],
1476
+ [
1477
+ 'uw-task-2'
1478
+ ]
1479
+ ],
1480
+ position: {
1481
+ x: 848,
1482
+ y: 96
1483
+ },
1484
+ width: 304
1485
+ },
1486
+ {
1487
+ id: 'closing',
1488
+ label: 'Closing',
1489
+ taskIds: [
1490
+ [
1491
+ 'close-task-1'
1492
+ ],
1493
+ [
1494
+ 'close-task-2'
1495
+ ],
1496
+ [
1497
+ 'close-task-3'
1498
+ ]
1499
+ ],
1500
+ position: {
1501
+ x: 1248,
1502
+ y: 96
1503
+ },
1504
+ width: 304
1505
+ },
1506
+ {
1507
+ id: 'funding',
1508
+ label: 'Funding',
1509
+ taskIds: [
1510
+ [
1511
+ 'fund-task-1'
1512
+ ],
1513
+ [
1514
+ 'fund-task-2'
1515
+ ]
1516
+ ],
1517
+ position: {
1518
+ x: 1648,
1519
+ y: 96
1520
+ },
1521
+ width: 304
1522
+ },
1523
+ {
1524
+ id: 'rejected',
1525
+ label: 'Rejected',
1526
+ taskIds: [
1527
+ [
1528
+ 'reject-task-1'
1529
+ ],
1530
+ [
1531
+ 'reject-task-2'
1532
+ ]
1533
+ ],
1534
+ position: {
1535
+ x: 1248,
1536
+ y: 400
1537
+ },
1538
+ width: 304,
1539
+ isException: true
1540
+ },
1541
+ {
1542
+ id: 'withdrawn',
1543
+ label: 'Withdrawn',
1544
+ taskIds: [
1545
+ [
1546
+ 'withdraw-task-1'
1547
+ ],
1548
+ [
1549
+ 'withdraw-task-2'
1550
+ ]
1551
+ ],
1552
+ position: {
1553
+ x: 448,
1554
+ y: 608
1555
+ },
1556
+ width: 304,
1557
+ isException: true
1558
+ }
1559
+ ],
1560
+ tasks: tasks,
1561
+ edges: edges
1562
+ })
1563
+ });
1564
+ }
1565
+ };
1566
+ const WithTaskMenu = {
1567
+ render: ()=>{
1568
+ const tasks = {
1569
+ 'task-1': {
1570
+ label: 'Initial Review',
1571
+ taskType: 'uipath.case-management.process',
1572
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1573
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.AgenticProcess,
1574
+ size: "sm"
1575
+ })
1576
+ },
1577
+ 'task-2': {
1578
+ label: 'Document Verification',
1579
+ taskType: 'uipath.case-management.rpa',
1580
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1581
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.Automation,
1582
+ size: "sm"
1583
+ })
1584
+ },
1585
+ 'task-3': {
1586
+ label: 'Address Check',
1587
+ taskType: 'uipath.case-management.rpa',
1588
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1589
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.Automation,
1590
+ size: "sm"
1591
+ })
1592
+ },
1593
+ 'task-4': {
1594
+ label: 'Background Check',
1595
+ taskType: 'uipath.case-management.agent',
1596
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1597
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.Agent,
1598
+ size: "sm"
1599
+ })
1600
+ },
1601
+ 'task-5': {
1602
+ label: 'Credit Check',
1603
+ taskType: 'uipath.case-management.rpa',
1604
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1605
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.Automation,
1606
+ size: "sm"
1607
+ })
1608
+ },
1609
+ 'task-6': {
1610
+ label: 'Final Approval',
1611
+ taskType: 'uipath.case-management.run-human-action',
1612
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1613
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.User,
1614
+ size: "sm"
1315
1615
  })
1616
+ }
1617
+ };
1618
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
1619
+ style: {
1620
+ width: '100vw',
1621
+ height: '100vh'
1622
+ },
1623
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(InteractiveStageCanvas, {
1624
+ stages: [
1625
+ {
1626
+ id: 'stage-1',
1627
+ label: 'Task Menu Demo',
1628
+ taskIds: [
1629
+ [
1630
+ 'task-1'
1631
+ ],
1632
+ [
1633
+ 'task-2'
1634
+ ],
1635
+ [
1636
+ 'task-3',
1637
+ 'task-4',
1638
+ 'task-5'
1639
+ ],
1640
+ [
1641
+ 'task-6'
1642
+ ]
1643
+ ],
1644
+ position: {
1645
+ x: 48,
1646
+ y: 96
1647
+ },
1648
+ width: 304
1649
+ }
1650
+ ],
1651
+ tasks: tasks
1316
1652
  })
1317
- })
1318
- });
1653
+ });
1654
+ }
1319
1655
  };
1320
- const DraggableTaskReordering = {
1321
- name: 'Draggable Task Reordering',
1322
- parameters: {
1323
- useCustomRender: true
1656
+ const addReplaceInitialTasks = {
1657
+ 'task-1': {
1658
+ label: 'Initial Review',
1659
+ taskType: 'uipath.case-management.process',
1660
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1661
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.AgenticProcess,
1662
+ size: "sm"
1663
+ })
1664
+ },
1665
+ 'task-2': {
1666
+ label: 'Document Verification',
1667
+ taskType: 'uipath.case-management.rpa',
1668
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1669
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.Automation,
1670
+ size: "sm"
1671
+ })
1672
+ },
1673
+ 'task-3': {
1674
+ label: 'Address Check',
1675
+ taskType: 'uipath.case-management.rpa',
1676
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1677
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.Automation,
1678
+ size: "sm"
1679
+ })
1680
+ },
1681
+ 'task-4': {
1682
+ label: 'Background Check',
1683
+ taskType: 'uipath.case-management.agent',
1684
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1685
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.Agent,
1686
+ size: "sm"
1687
+ })
1324
1688
  },
1325
- render: ()=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(DraggableTaskReorderingStory, {}),
1326
- args: {}
1689
+ 'task-5': {
1690
+ label: 'Final Approval',
1691
+ taskType: 'uipath.case-management.run-human-action',
1692
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1693
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.User,
1694
+ size: "sm"
1695
+ })
1696
+ }
1327
1697
  };
1328
- const initialTasksForAddReplace = [
1329
- [
1330
- {
1331
- id: 'task-1',
1332
- label: 'Initial Verification',
1333
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(VerificationIcon, {})
1334
- }
1335
- ],
1336
- [
1337
- {
1338
- id: 'task-2',
1339
- label: 'Document Review',
1340
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(DocumentIcon, {})
1341
- }
1342
- ]
1343
- ];
1344
- const availableTaskOptions = [
1698
+ const addReplaceTaskOptions = [
1345
1699
  {
1346
- id: 'verification-task',
1347
- name: 'Verification task',
1348
- icon: {
1349
- Component: ()=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(VerificationIcon, {})
1350
- },
1700
+ id: 'opt-agent',
1701
+ name: 'Agent Task',
1351
1702
  data: {
1352
- type: 'verification'
1703
+ taskType: 'uipath.case-management.agent'
1704
+ },
1705
+ icon: {
1706
+ Component: ()=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1707
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.Agent,
1708
+ size: "sm"
1709
+ })
1353
1710
  }
1354
1711
  },
1355
1712
  {
1356
- id: 'document-task',
1357
- name: 'Document task',
1358
- icon: {
1359
- Component: ()=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(DocumentIcon, {})
1360
- },
1713
+ id: 'opt-automation',
1714
+ name: 'RPA Automation',
1361
1715
  data: {
1362
- type: 'document'
1716
+ taskType: 'uipath.case-management.rpa'
1717
+ },
1718
+ icon: {
1719
+ Component: ()=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1720
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.Automation,
1721
+ size: "sm"
1722
+ })
1363
1723
  }
1364
1724
  },
1365
1725
  {
1366
- id: 'process-task',
1367
- name: 'Process task',
1368
- icon: {
1369
- Component: ()=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(ProcessIcon, {})
1370
- },
1726
+ id: 'opt-api',
1727
+ name: 'API Automation',
1371
1728
  data: {
1372
- type: 'process'
1729
+ taskType: 'uipath.case-management.api-workflow'
1730
+ },
1731
+ icon: {
1732
+ Component: ()=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1733
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.ApiAutomation,
1734
+ size: "sm"
1735
+ })
1373
1736
  }
1374
1737
  },
1375
1738
  {
1376
- id: 'credit-check',
1377
- name: 'Credit check',
1378
- icon: {
1379
- Component: ()=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(VerificationIcon, {})
1380
- },
1739
+ id: 'opt-human',
1740
+ name: 'Human in the Loop',
1381
1741
  data: {
1382
- type: 'credit'
1742
+ taskType: 'uipath.case-management.run-human-action'
1743
+ },
1744
+ icon: {
1745
+ Component: ()=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1746
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.User,
1747
+ size: "sm"
1748
+ })
1383
1749
  }
1384
1750
  },
1385
1751
  {
1386
- id: 'address-verification',
1387
- name: 'Address verification',
1388
- icon: {
1389
- Component: ()=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(VerificationIcon, {})
1390
- },
1752
+ id: 'opt-process',
1753
+ name: 'Agentic Process',
1391
1754
  data: {
1392
- type: 'address'
1755
+ taskType: 'uipath.case-management.process'
1756
+ },
1757
+ icon: {
1758
+ Component: ()=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1759
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.AgenticProcess,
1760
+ size: "sm"
1761
+ })
1393
1762
  }
1394
1763
  }
1395
1764
  ];
1396
1765
  const AddAndReplaceTasksStory = ()=>{
1397
- const StageNodeWrapper = (0, external_react_namespaceObject.useMemo)(()=>function(props) {
1398
- return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_StageNode_cjs_namespaceObject.StageNode, {
1399
- ...props,
1400
- ...props.data
1401
- });
1402
- }, []);
1403
- const nodeTypes = (0, external_react_namespaceObject.useMemo)(()=>({
1404
- stage: StageNodeWrapper
1405
- }), [
1406
- StageNodeWrapper
1407
- ]);
1408
- const edgeTypes = (0, external_react_namespaceObject.useMemo)(()=>({
1409
- stage: external_StageEdge_cjs_namespaceObject.StageEdge
1410
- }), []);
1766
+ const stageId = 'stage-1';
1767
+ const [stageTaskIds, setStageTaskIds] = (0, external_react_namespaceObject.useState)({
1768
+ [stageId]: [
1769
+ [
1770
+ 'task-1'
1771
+ ],
1772
+ [
1773
+ 'task-2'
1774
+ ],
1775
+ [
1776
+ 'task-3',
1777
+ 'task-4'
1778
+ ],
1779
+ [
1780
+ 'task-5'
1781
+ ]
1782
+ ]
1783
+ });
1784
+ const [allTasks, setAllTasks] = (0, external_react_namespaceObject.useState)(addReplaceInitialTasks);
1785
+ const [selectedTaskId, setSelectedTaskId] = (0, external_react_namespaceObject.useState)(null);
1786
+ const [actionLog, setActionLog] = (0, external_react_namespaceObject.useState)('');
1411
1787
  const [pendingReplaceTask, setPendingReplaceTask] = (0, external_react_namespaceObject.useState)();
1412
- const [selectedTaskId, setSelectedTaskId] = (0, external_react_namespaceObject.useState)();
1413
1788
  const [menuAnchorEl, setMenuAnchorEl] = (0, external_react_namespaceObject.useState)(null);
1414
- const [nodesState, setNodes, onNodesChange] = (0, react_cjs_namespaceObject.useNodesState)([
1415
- {
1416
- id: 'add-replace-stage',
1417
- type: 'stage',
1418
- position: {
1419
- x: 320,
1420
- y: 96
1421
- },
1422
- data: {
1423
- stageDetails: {
1424
- label: 'Add, Replace, and Group Tasks',
1425
- tasks: initialTasksForAddReplace
1426
- },
1427
- taskOptions: availableTaskOptions
1428
- }
1429
- }
1430
- ]);
1431
- const [edges, setEdges, onEdgesChange] = (0, react_cjs_namespaceObject.useEdgesState)([]);
1432
- const handleAddTask = (0, external_react_namespaceObject.useCallback)((taskItem)=>{
1433
- const newTask = {
1434
- id: `${taskItem.id}-${Date.now()}`,
1435
- label: taskItem.name,
1436
- icon: taskItem.icon?.Component ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(taskItem.icon.Component, {}) : void 0
1437
- };
1438
- setNodes((prevNodes)=>prevNodes.map((node)=>'add-replace-stage' === node.id ? {
1439
- ...node,
1440
- data: {
1441
- ...node.data,
1442
- stageDetails: {
1443
- ...node.data.stageDetails,
1444
- tasks: [
1445
- ...node.data.stageDetails.tasks,
1446
- [
1447
- newTask
1448
- ]
1449
- ]
1450
- }
1451
- }
1452
- } : node));
1789
+ const handleAddTaskFromToolbox = (0, external_react_namespaceObject.useCallback)((taskItem)=>{
1790
+ const newTaskId = `added-${Date.now()}`;
1791
+ const IconComp = taskItem.icon?.Component;
1792
+ setAllTasks((prev)=>({
1793
+ ...prev,
1794
+ [newTaskId]: {
1795
+ label: taskItem.name,
1796
+ taskType: taskItem.data?.taskType || 'uipath.case-management.process',
1797
+ icon: IconComp ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(IconComp, {}) : /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1798
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.AgenticProcess,
1799
+ size: "sm"
1800
+ })
1801
+ }
1802
+ }));
1803
+ setStageTaskIds((prev)=>({
1804
+ ...prev,
1805
+ [stageId]: [
1806
+ ...prev[stageId] || [],
1807
+ [
1808
+ newTaskId
1809
+ ]
1810
+ ]
1811
+ }));
1812
+ setActionLog(`Added task: ${taskItem.name}`);
1453
1813
  }, [
1454
- setNodes
1814
+ stageId
1455
1815
  ]);
1456
- const handleReplaceTask = (0, external_react_namespaceObject.useCallback)((taskItem, groupIndex, taskIndex)=>{
1457
- if (groupIndex < 0 || taskIndex < 0) return;
1458
- const listItem = taskItem;
1459
- const replacedTask = {
1460
- id: `${listItem.id}-replaced-${Date.now()}`,
1461
- label: listItem.name,
1462
- icon: listItem.icon?.Component ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(listItem.icon.Component, {}) : void 0
1463
- };
1464
- setNodes((prevNodes)=>prevNodes.map((node)=>{
1465
- if ('add-replace-stage' !== node.id) return node;
1466
- const prevTasks = node.data.stageDetails.tasks;
1467
- if (groupIndex >= prevTasks.length) return node;
1468
- const currentGroup = prevTasks[groupIndex];
1469
- if (!currentGroup || taskIndex >= currentGroup.length) return node;
1470
- const updatedTasks = prevTasks.map((group, gIdx)=>{
1471
- if (gIdx === groupIndex) return group.map((task, tIdx)=>tIdx === taskIndex ? replacedTask : task);
1472
- return group;
1473
- });
1474
- return {
1475
- ...node,
1476
- data: {
1477
- ...node.data,
1478
- stageDetails: {
1479
- ...node.data.stageDetails,
1480
- tasks: updatedTasks
1481
- }
1482
- }
1483
- };
1816
+ const handleReplaceTask = (0, external_react_namespaceObject.useCallback)((newTask, groupIndex, taskIndex)=>{
1817
+ const newTaskId = `replaced-${Date.now()}`;
1818
+ const IconComp = newTask.icon?.Component;
1819
+ setAllTasks((prev)=>({
1820
+ ...prev,
1821
+ [newTaskId]: {
1822
+ label: newTask.name,
1823
+ taskType: newTask.data?.taskType || 'uipath.case-management.process',
1824
+ icon: IconComp ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(IconComp, {}) : /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
1825
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.AgenticProcess,
1826
+ size: "sm"
1827
+ })
1828
+ }
1484
1829
  }));
1830
+ setStageTaskIds((prev)=>{
1831
+ const currentTaskIds = [
1832
+ ...prev[stageId] || []
1833
+ ].map((group)=>[
1834
+ ...group
1835
+ ]);
1836
+ const targetGroup = currentTaskIds[groupIndex];
1837
+ if (targetGroup && void 0 !== targetGroup[taskIndex]) targetGroup[taskIndex] = newTaskId;
1838
+ return {
1839
+ ...prev,
1840
+ [stageId]: currentTaskIds
1841
+ };
1842
+ });
1485
1843
  setPendingReplaceTask(void 0);
1844
+ setActionLog(`Replaced task at group ${groupIndex}, task ${taskIndex} with "${newTask.name}"`);
1486
1845
  }, [
1487
- setNodes
1846
+ stageId
1488
1847
  ]);
1489
- const groupModificationHandlers = (0, external_react_namespaceObject.useMemo)(()=>(0, GroupModificationUtils_cjs_namespaceObject.createGroupModificationHandlers)(), []);
1490
- const handleTaskGroupModification = (0, external_react_namespaceObject.useCallback)((groupModificationType, groupIndex, taskIndex)=>{
1491
- const handler = (0, GroupModificationUtils_cjs_namespaceObject.getHandlerForModificationType)(groupModificationHandlers, groupModificationType);
1492
- setNodes((prevNodes)=>prevNodes.map((node)=>{
1493
- if ('add-replace-stage' !== node.id) return node;
1494
- const prevTasks = node.data.stageDetails.tasks;
1495
- const updatedTasks = handler(prevTasks, groupIndex, taskIndex);
1496
- return {
1497
- ...node,
1498
- data: {
1499
- ...node.data,
1500
- stageDetails: {
1501
- ...node.data.stageDetails,
1502
- tasks: updatedTasks
1503
- }
1504
- }
1505
- };
1506
- }));
1848
+ const handleGroupModification = (0, external_react_namespaceObject.useCallback)((type, groupIndex, taskIndex)=>{
1849
+ setActionLog(`Group modification: ${type} at group ${groupIndex}, task ${taskIndex}`);
1850
+ setStageTaskIds((prev)=>{
1851
+ const handler = (0, GroupModificationUtils_cjs_namespaceObject.getHandlerForModificationType)((0, GroupModificationUtils_cjs_namespaceObject.createGroupModificationHandlers)(), type);
1852
+ const currentTaskIds = (prev[stageId] || []).map((group)=>[
1853
+ ...group
1854
+ ]);
1855
+ const updatedTaskIds = handler(currentTaskIds, groupIndex, taskIndex);
1856
+ return {
1857
+ ...prev,
1858
+ [stageId]: updatedTaskIds
1859
+ };
1860
+ });
1507
1861
  }, [
1508
- groupModificationHandlers,
1509
- setNodes
1862
+ stageId
1510
1863
  ]);
1511
- const handleTaskClick = (0, external_react_namespaceObject.useCallback)((taskId)=>{
1512
- setSelectedTaskId(taskId);
1513
- }, []);
1514
- const currentTasks = nodesState.find((n)=>'add-replace-stage' === n.id)?.data.stageDetails.tasks || [];
1515
- const taskMenuItems = (0, external_react_namespaceObject.useMemo)(()=>currentTasks.flatMap((group, groupIndex)=>group.map((task, taskIndex)=>({
1516
- title: task.label,
1864
+ const currentTaskIds = stageTaskIds[stageId] || [];
1865
+ const taskMenuItems = (0, external_react_namespaceObject.useMemo)(()=>currentTaskIds.flatMap((group, groupIndex)=>group.map((taskId, taskIndex)=>{
1866
+ const taskInfo = allTasks[taskId];
1867
+ return {
1868
+ title: taskInfo?.label || taskId,
1517
1869
  variant: 'item',
1518
- startIcon: task.icon,
1870
+ startIcon: taskInfo?.icon,
1519
1871
  onClick: ()=>{
1520
- setSelectedTaskId(task.id);
1872
+ setSelectedTaskId(taskId);
1521
1873
  setPendingReplaceTask({
1522
1874
  groupIndex,
1523
1875
  taskIndex
1524
1876
  });
1525
1877
  setMenuAnchorEl(null);
1526
1878
  }
1527
- }))), [
1528
- currentTasks
1879
+ };
1880
+ })), [
1881
+ currentTaskIds,
1882
+ allTasks
1883
+ ]);
1884
+ const replaceButtonLabel = (0, external_react_namespaceObject.useMemo)(()=>{
1885
+ if (pendingReplaceTask) {
1886
+ const taskId = currentTaskIds[pendingReplaceTask.groupIndex]?.[pendingReplaceTask.taskIndex];
1887
+ const taskInfo = taskId ? allTasks[taskId] : void 0;
1888
+ if (taskInfo) return `Replacing: ${taskInfo.label}`;
1889
+ }
1890
+ return 'Replace Task';
1891
+ }, [
1892
+ pendingReplaceTask,
1893
+ currentTaskIds,
1894
+ allTasks
1529
1895
  ]);
1530
- const nodesWithMetadata = (0, external_react_namespaceObject.useMemo)(()=>nodesState.map((node)=>'add-replace-stage' === node.id ? {
1531
- ...node,
1896
+ const stageNodes = (0, external_react_namespaceObject.useMemo)(()=>[
1897
+ {
1898
+ id: stageId,
1899
+ type: 'stage',
1900
+ position: {
1901
+ x: 48,
1902
+ y: 96
1903
+ },
1904
+ style: {
1905
+ width: 304
1906
+ },
1532
1907
  data: {
1533
- ...node.data,
1534
- pendingReplaceTask: pendingReplaceTask,
1908
+ nodeType: 'case-management:Stage',
1535
1909
  stageDetails: {
1536
- ...node.data.stageDetails,
1910
+ label: 'Add, Replace & Group Tasks',
1911
+ taskIds: stageTaskIds[stageId] || [],
1537
1912
  selectedTasks: selectedTaskId ? [
1538
1913
  selectedTaskId
1539
1914
  ] : void 0
1540
1915
  },
1541
- onAddTaskFromToolbox: handleAddTask,
1916
+ pendingReplaceTask,
1917
+ taskOptions: addReplaceTaskOptions,
1918
+ onAddTaskFromToolbox: handleAddTaskFromToolbox,
1542
1919
  onReplaceTaskFromToolbox: handleReplaceTask,
1543
- onTaskGroupModification: handleTaskGroupModification,
1544
- onTaskClick: handleTaskClick
1920
+ onTaskClick: (taskId)=>{
1921
+ setSelectedTaskId(taskId);
1922
+ setActionLog(`Selected: ${taskId}`);
1923
+ }
1545
1924
  }
1546
- } : node), [
1547
- nodesState,
1548
- pendingReplaceTask,
1925
+ }
1926
+ ], [
1927
+ stageTaskIds,
1549
1928
  selectedTaskId,
1550
- handleAddTask,
1551
- handleReplaceTask,
1552
- handleTaskGroupModification,
1553
- handleTaskClick
1929
+ pendingReplaceTask,
1930
+ handleAddTaskFromToolbox,
1931
+ handleReplaceTask
1554
1932
  ]);
1555
- const onConnect = (0, external_react_namespaceObject.useCallback)((connection)=>setEdges((eds)=>(0, react_cjs_namespaceObject.addEdge)(connection, eds)), [
1556
- setEdges
1933
+ const taskNodes = (0, external_react_namespaceObject.useMemo)(()=>createTaskNodes({
1934
+ stageId,
1935
+ taskIds: stageTaskIds[stageId] || [],
1936
+ tasks: allTasks,
1937
+ stageWidth: 304,
1938
+ onTaskClick: (taskId)=>{
1939
+ setSelectedTaskId(taskId);
1940
+ setActionLog(`Selected: ${taskId}`);
1941
+ },
1942
+ onTaskSelect: setSelectedTaskId,
1943
+ enableCrossStage: false,
1944
+ onGroupModification: handleGroupModification,
1945
+ onRequestReplaceTask: (groupIndex, taskIndex)=>{
1946
+ setPendingReplaceTask({
1947
+ groupIndex,
1948
+ taskIndex
1949
+ });
1950
+ }
1951
+ }), [
1952
+ stageTaskIds,
1953
+ allTasks,
1954
+ handleGroupModification
1557
1955
  ]);
1558
- const replaceButtonLabel = (0, external_react_namespaceObject.useMemo)(()=>{
1559
- if (pendingReplaceTask) {
1560
- const taskBeingReplaced = currentTasks[pendingReplaceTask.groupIndex]?.[pendingReplaceTask.taskIndex];
1561
- if (taskBeingReplaced) return `Replacing Task: ${taskBeingReplaced.label}`;
1562
- }
1563
- return 'Replace Task';
1956
+ const allNodes = (0, external_react_namespaceObject.useMemo)(()=>[
1957
+ ...stageNodes,
1958
+ ...taskNodes
1959
+ ], [
1960
+ stageNodes,
1961
+ taskNodes
1962
+ ]);
1963
+ const allNodesRef = (0, external_react_namespaceObject.useRef)(allNodes);
1964
+ allNodesRef.current = allNodes;
1965
+ const [nodes, setNodes] = (0, external_react_namespaceObject.useState)(allNodes);
1966
+ const [edges, setEdges, onEdgesChange] = (0, react_cjs_namespaceObject.useEdgesState)([]);
1967
+ (0, external_react_namespaceObject.useEffect)(()=>{
1968
+ setNodes((prev)=>mergeNodes(prev, allNodes));
1564
1969
  }, [
1565
- pendingReplaceTask,
1566
- currentTasks
1970
+ allNodes
1971
+ ]);
1972
+ const onNodesChange = (0, external_react_namespaceObject.useCallback)((changes)=>{
1973
+ setNodes((nds)=>{
1974
+ const updated = (0, react_cjs_namespaceObject.applyNodeChanges)(changes, nds);
1975
+ return mergeNodes(updated, allNodesRef.current);
1976
+ });
1977
+ }, []);
1978
+ const onConnect = (0, external_react_namespaceObject.useCallback)((connection)=>setEdges((eds)=>(0, react_cjs_namespaceObject.addEdge)({
1979
+ ...connection,
1980
+ type: 'stage'
1981
+ }, eds)), [
1982
+ setEdges
1567
1983
  ]);
1984
+ const nodeTypes = (0, external_react_namespaceObject.useMemo)(()=>({
1985
+ stage: StageNodeWrapper,
1986
+ task: TaskNodeWrapper,
1987
+ placeholder: (props)=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(PlaceholderTaskNode_cjs_namespaceObject.PlaceholderTaskNode, {
1988
+ ...props
1989
+ })
1990
+ }), []);
1991
+ const edgeTypes = (0, external_react_namespaceObject.useMemo)(()=>({
1992
+ stage: external_StageEdge_cjs_namespaceObject.StageEdge
1993
+ }), []);
1568
1994
  return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
1569
1995
  style: {
1570
1996
  width: '100vw',
@@ -1572,7 +1998,7 @@ const AddAndReplaceTasksStory = ()=>{
1572
1998
  },
1573
1999
  children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(react_cjs_namespaceObject.ReactFlowProvider, {
1574
2000
  children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(external_BaseCanvas_index_cjs_namespaceObject.BaseCanvas, {
1575
- nodes: nodesWithMetadata,
2001
+ nodes: nodes,
1576
2002
  edges: edges,
1577
2003
  onNodesChange: onNodesChange,
1578
2004
  onEdgesChange: onEdgesChange,
@@ -1598,9 +2024,7 @@ const AddAndReplaceTasksStory = ()=>{
1598
2024
  /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.ApButton, {
1599
2025
  variant: "primary",
1600
2026
  label: replaceButtonLabel,
1601
- onClick: (e)=>{
1602
- setMenuAnchorEl(e.currentTarget);
1603
- }
2027
+ onClick: (e)=>setMenuAnchorEl(e.currentTarget)
1604
2028
  }),
1605
2029
  /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.ApMenu, {
1606
2030
  isOpen: Boolean(menuAnchorEl),
@@ -1616,6 +2040,18 @@ const AddAndReplaceTasksStory = ()=>{
1616
2040
  children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_CanvasPositionControls_cjs_namespaceObject.CanvasPositionControls, {
1617
2041
  translations: external_types_cjs_namespaceObject.DefaultCanvasTranslations
1618
2042
  })
2043
+ }),
2044
+ actionLog && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(react_cjs_namespaceObject.Panel, {
2045
+ position: "top-left",
2046
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
2047
+ style: {
2048
+ background: 'var(--uix-palette-surface-paper)',
2049
+ padding: '8px 16px',
2050
+ borderRadius: '4px',
2051
+ boxShadow: '0 2px 4px rgba(0,0,0,0.1)'
2052
+ },
2053
+ children: actionLog
2054
+ })
1619
2055
  })
1620
2056
  ]
1621
2057
  })
@@ -1624,110 +2060,172 @@ const AddAndReplaceTasksStory = ()=>{
1624
2060
  };
1625
2061
  const AddAndReplaceTasks = {
1626
2062
  name: 'Add, Replace, and Group Tasks',
1627
- parameters: {
1628
- useCustomRender: true
2063
+ render: ()=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(AddAndReplaceTasksStory, {})
2064
+ };
2065
+ const loadingStoryStages = [
2066
+ {
2067
+ id: 'empty-stage',
2068
+ label: 'Empty Stage (click +)',
2069
+ position: {
2070
+ x: 48,
2071
+ y: 96
2072
+ },
2073
+ width: 304
2074
+ },
2075
+ {
2076
+ id: 'tasks-stage',
2077
+ label: 'With Tasks (click +)',
2078
+ position: {
2079
+ x: 400,
2080
+ y: 96
2081
+ },
2082
+ width: 304
2083
+ }
2084
+ ];
2085
+ const loadingStoryInitialTaskIds = {
2086
+ 'empty-stage': [],
2087
+ 'tasks-stage': [
2088
+ [
2089
+ 'task-1'
2090
+ ],
2091
+ [
2092
+ 'task-2'
2093
+ ]
2094
+ ]
2095
+ };
2096
+ const loadingStoryInitialTasks = {
2097
+ 'task-1': {
2098
+ label: 'Existing Task',
2099
+ taskType: 'uipath.case-management.rpa',
2100
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
2101
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.Automation,
2102
+ size: "sm"
2103
+ })
1629
2104
  },
1630
- render: ()=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(AddAndReplaceTasksStory, {}),
1631
- args: {}
2105
+ 'task-2': {
2106
+ label: 'Another Task',
2107
+ taskType: 'uipath.case-management.process',
2108
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
2109
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.AgenticProcess,
2110
+ size: "sm"
2111
+ })
2112
+ }
1632
2113
  };
1633
2114
  const AddTaskLoadingStory = ()=>{
1634
- const StageNodeWrapper = (0, external_react_namespaceObject.useMemo)(()=>function(props) {
1635
- return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_StageNode_cjs_namespaceObject.StageNode, {
1636
- ...props,
1637
- ...props.data
1638
- });
1639
- }, []);
1640
- const nodeTypes = (0, external_react_namespaceObject.useMemo)(()=>({
1641
- stage: StageNodeWrapper
1642
- }), [
1643
- StageNodeWrapper
1644
- ]);
1645
- const edgeTypes = (0, external_react_namespaceObject.useMemo)(()=>({
1646
- stage: external_StageEdge_cjs_namespaceObject.StageEdge
1647
- }), []);
1648
- const initialNodes = (0, external_react_namespaceObject.useMemo)(()=>[
1649
- {
1650
- id: 'loading-stage-empty',
1651
- type: 'stage',
1652
- position: {
1653
- x: 48,
1654
- y: 96
1655
- },
1656
- width: 304,
1657
- data: {
1658
- stageDetails: {
1659
- label: 'Empty Stage (click +)',
1660
- tasks: []
1661
- },
1662
- addTaskLoading: false
1663
- }
1664
- },
1665
- {
1666
- id: 'loading-stage-with-tasks',
2115
+ const [loadingStages, setLoadingStages] = (0, external_react_namespaceObject.useState)({});
2116
+ const [stageTaskIds, setStageTaskIds] = (0, external_react_namespaceObject.useState)(loadingStoryInitialTaskIds);
2117
+ const [allTasks, setAllTasks] = (0, external_react_namespaceObject.useState)(loadingStoryInitialTasks);
2118
+ const handleTaskAdd = (0, external_react_namespaceObject.useCallback)((stageIdToLoad)=>{
2119
+ setLoadingStages((prev)=>({
2120
+ ...prev,
2121
+ [stageIdToLoad]: true
2122
+ }));
2123
+ setTimeout(()=>{
2124
+ const newTaskId = `new-task-${Date.now()}`;
2125
+ setAllTasks((prev)=>({
2126
+ ...prev,
2127
+ [newTaskId]: {
2128
+ label: 'New Task',
2129
+ taskType: 'uipath.case-management.agent',
2130
+ icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_TaskIcon_index_cjs_namespaceObject.TaskIcon, {
2131
+ type: external_TaskIcon_index_cjs_namespaceObject.TaskItemTypeValues.Agent,
2132
+ size: "sm"
2133
+ })
2134
+ }
2135
+ }));
2136
+ setStageTaskIds((prev)=>({
2137
+ ...prev,
2138
+ [stageIdToLoad]: [
2139
+ ...prev[stageIdToLoad] || [],
2140
+ [
2141
+ newTaskId
2142
+ ]
2143
+ ]
2144
+ }));
2145
+ setLoadingStages((prev)=>({
2146
+ ...prev,
2147
+ [stageIdToLoad]: false
2148
+ }));
2149
+ }, 3000);
2150
+ }, []);
2151
+ const stageNodes = (0, external_react_namespaceObject.useMemo)(()=>loadingStoryStages.map((stage)=>({
2152
+ id: stage.id,
1667
2153
  type: 'stage',
1668
- position: {
1669
- x: 400,
1670
- y: 96
2154
+ position: stage.position,
2155
+ style: {
2156
+ width: stage.width
1671
2157
  },
1672
- width: 304,
1673
2158
  data: {
2159
+ nodeType: 'case-management:Stage',
1674
2160
  stageDetails: {
1675
- label: 'With Tasks (click +)',
1676
- tasks: [
1677
- [
1678
- {
1679
- id: 'task-1',
1680
- label: 'Existing Task',
1681
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(VerificationIcon, {})
1682
- }
1683
- ],
1684
- [
1685
- {
1686
- id: 'task-2',
1687
- label: 'Another Task',
1688
- icon: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(DocumentIcon, {})
1689
- }
1690
- ]
1691
- ]
2161
+ label: stage.label,
2162
+ taskIds: stageTaskIds[stage.id] || []
1692
2163
  },
1693
- addTaskLoading: false
2164
+ addTaskLoading: loadingStages[stage.id] || false,
2165
+ onTaskAdd: ()=>handleTaskAdd(stage.id)
1694
2166
  }
1695
- }
1696
- ], []);
1697
- const [nodesState, setNodes, onNodesChange] = (0, react_cjs_namespaceObject.useNodesState)(initialNodes);
1698
- const [edges, setEdges, onEdgesChange] = (0, react_cjs_namespaceObject.useEdgesState)([]);
1699
- const setNodeLoading = (0, external_react_namespaceObject.useCallback)((nodeId, loading)=>{
1700
- setNodes((nds)=>nds.map((node)=>node.id === nodeId ? {
1701
- ...node,
1702
- data: {
1703
- ...node.data,
1704
- addTaskLoading: loading
1705
- }
1706
- } : node));
1707
- }, [
1708
- setNodes
2167
+ })), [
2168
+ stageTaskIds,
2169
+ loadingStages,
2170
+ handleTaskAdd
1709
2171
  ]);
1710
- const handleTaskAddForNode = (0, external_react_namespaceObject.useCallback)((nodeId)=>{
1711
- setNodeLoading(nodeId, true);
1712
- setTimeout(()=>{
1713
- setNodeLoading(nodeId, false);
1714
- }, 3000);
2172
+ const taskNodes = (0, external_react_namespaceObject.useMemo)(()=>{
2173
+ const allTaskNodes = [];
2174
+ for (const stage of loadingStoryStages){
2175
+ const ids = stageTaskIds[stage.id] || [];
2176
+ const nodes = createTaskNodes({
2177
+ stageId: stage.id,
2178
+ taskIds: ids,
2179
+ tasks: allTasks,
2180
+ stageWidth: stage.width,
2181
+ enableCrossStage: false,
2182
+ onRequestReplaceTask: ()=>{}
2183
+ });
2184
+ allTaskNodes.push(...nodes);
2185
+ }
2186
+ return allTaskNodes;
1715
2187
  }, [
1716
- setNodeLoading
2188
+ stageTaskIds,
2189
+ allTasks
1717
2190
  ]);
1718
- const nodesWithHandler = (0, external_react_namespaceObject.useMemo)(()=>nodesState.map((node)=>({
1719
- ...node,
1720
- data: {
1721
- ...node.data,
1722
- onTaskAdd: ()=>handleTaskAddForNode(node.id)
1723
- }
1724
- })), [
1725
- nodesState,
1726
- handleTaskAddForNode
2191
+ const allNodes = (0, external_react_namespaceObject.useMemo)(()=>[
2192
+ ...stageNodes,
2193
+ ...taskNodes
2194
+ ], [
2195
+ stageNodes,
2196
+ taskNodes
2197
+ ]);
2198
+ const allNodesRef = (0, external_react_namespaceObject.useRef)(allNodes);
2199
+ allNodesRef.current = allNodes;
2200
+ const [nodes, setNodes] = (0, external_react_namespaceObject.useState)(allNodes);
2201
+ const [edges, setEdges, onEdgesChange] = (0, react_cjs_namespaceObject.useEdgesState)([]);
2202
+ (0, external_react_namespaceObject.useEffect)(()=>{
2203
+ setNodes((prev)=>mergeNodes(prev, allNodes));
2204
+ }, [
2205
+ allNodes
1727
2206
  ]);
1728
- const onConnect = (0, external_react_namespaceObject.useCallback)((connection)=>setEdges((eds)=>(0, react_cjs_namespaceObject.addEdge)(connection, eds)), [
2207
+ const onNodesChange = (0, external_react_namespaceObject.useCallback)((changes)=>{
2208
+ setNodes((nds)=>{
2209
+ const updated = (0, react_cjs_namespaceObject.applyNodeChanges)(changes, nds);
2210
+ return mergeNodes(updated, allNodesRef.current);
2211
+ });
2212
+ }, []);
2213
+ const onConnect = (0, external_react_namespaceObject.useCallback)((connection)=>setEdges((eds)=>(0, react_cjs_namespaceObject.addEdge)({
2214
+ ...connection,
2215
+ type: 'stage'
2216
+ }, eds)), [
1729
2217
  setEdges
1730
2218
  ]);
2219
+ const nodeTypes = (0, external_react_namespaceObject.useMemo)(()=>({
2220
+ stage: StageNodeWrapper,
2221
+ task: TaskNodeWrapper,
2222
+ placeholder: (props)=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(PlaceholderTaskNode_cjs_namespaceObject.PlaceholderTaskNode, {
2223
+ ...props
2224
+ })
2225
+ }), []);
2226
+ const edgeTypes = (0, external_react_namespaceObject.useMemo)(()=>({
2227
+ stage: external_StageEdge_cjs_namespaceObject.StageEdge
2228
+ }), []);
1731
2229
  return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
1732
2230
  style: {
1733
2231
  width: '100vw',
@@ -1735,7 +2233,7 @@ const AddTaskLoadingStory = ()=>{
1735
2233
  },
1736
2234
  children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(react_cjs_namespaceObject.ReactFlowProvider, {
1737
2235
  children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_BaseCanvas_index_cjs_namespaceObject.BaseCanvas, {
1738
- nodes: nodesWithHandler,
2236
+ nodes: nodes,
1739
2237
  edges: edges,
1740
2238
  onNodesChange: onNodesChange,
1741
2239
  onEdgesChange: onEdgesChange,
@@ -1766,30 +2264,26 @@ const AddTaskLoadingStory = ()=>{
1766
2264
  };
1767
2265
  const AddTaskLoading = {
1768
2266
  name: 'Add Task Loading State',
1769
- parameters: {
1770
- useCustomRender: true
1771
- },
1772
- render: ()=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(AddTaskLoadingStory, {}),
1773
- args: {}
2267
+ render: ()=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(AddTaskLoadingStory, {})
1774
2268
  };
1775
2269
  exports.AddAndReplaceTasks = __webpack_exports__.AddAndReplaceTasks;
1776
2270
  exports.AddTaskLoading = __webpack_exports__.AddTaskLoading;
1777
2271
  exports.Default = __webpack_exports__.Default;
1778
- exports.DraggableTaskReordering = __webpack_exports__.DraggableTaskReordering;
1779
2272
  exports.ExecutionStatus = __webpack_exports__.ExecutionStatus;
1780
2273
  exports.InteractiveTaskManagement = __webpack_exports__.InteractiveTaskManagement;
1781
2274
  exports.LoanProcessingWorkflow = __webpack_exports__.LoanProcessingWorkflow;
1782
2275
  exports.WithTaskIcons = __webpack_exports__.WithTaskIcons;
2276
+ exports.WithTaskMenu = __webpack_exports__.WithTaskMenu;
1783
2277
  exports["default"] = __webpack_exports__["default"];
1784
2278
  for(var __webpack_i__ in __webpack_exports__)if (-1 === [
1785
2279
  "AddAndReplaceTasks",
1786
2280
  "AddTaskLoading",
1787
2281
  "Default",
1788
- "DraggableTaskReordering",
1789
2282
  "ExecutionStatus",
1790
2283
  "InteractiveTaskManagement",
1791
2284
  "LoanProcessingWorkflow",
1792
2285
  "WithTaskIcons",
2286
+ "WithTaskMenu",
1793
2287
  "default"
1794
2288
  ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
1795
2289
  Object.defineProperty(exports, '__esModule', {