@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
@@ -0,0 +1,235 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ TaskNodeContent: ()=>TaskNodeContent,
28
+ TaskNode: ()=>TaskNode
29
+ });
30
+ const jsx_runtime_namespaceObject = require("react/jsx-runtime");
31
+ const apollo_core_namespaceObject = require("@uipath/apollo-core");
32
+ const index_cjs_namespaceObject = require("../../layouts/index.cjs");
33
+ const external_material_index_cjs_namespaceObject = require("../../../material/index.cjs");
34
+ const external_react_namespaceObject = require("react");
35
+ const external_ExecutionStatusIcon_index_cjs_namespaceObject = require("../ExecutionStatusIcon/index.cjs");
36
+ const StageNode_styles_cjs_namespaceObject = require("../StageNode/StageNode.styles.cjs");
37
+ const TaskMenu_cjs_namespaceObject = require("../StageNode/TaskMenu.cjs");
38
+ const external_TaskNodeContext_cjs_namespaceObject = require("./TaskNodeContext.cjs");
39
+ const DefaultTaskIcon = ()=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("svg", {
40
+ viewBox: "0 0 24 24",
41
+ fill: "none",
42
+ stroke: "currentColor",
43
+ strokeWidth: "1.5",
44
+ children: [
45
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("rect", {
46
+ x: "3",
47
+ y: "3",
48
+ width: "7",
49
+ height: "7",
50
+ rx: "1"
51
+ }),
52
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("rect", {
53
+ x: "14",
54
+ y: "3",
55
+ width: "7",
56
+ height: "7",
57
+ rx: "1"
58
+ }),
59
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("rect", {
60
+ x: "3",
61
+ y: "14",
62
+ width: "7",
63
+ height: "7",
64
+ rx: "1"
65
+ }),
66
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("rect", {
67
+ x: "14",
68
+ y: "14",
69
+ width: "7",
70
+ height: "7",
71
+ rx: "1"
72
+ })
73
+ ]
74
+ });
75
+ const generateBadgeText = (taskExecution)=>{
76
+ if (!taskExecution.badge) return;
77
+ if (taskExecution.retryCount && taskExecution.retryCount > 1) return `${taskExecution.badge} x${taskExecution.retryCount}`;
78
+ return taskExecution.badge;
79
+ };
80
+ const TaskNodeContent = /*#__PURE__*/ (0, external_react_namespaceObject.memo)(({ taskId, data, isDragging, isHovered })=>{
81
+ const { label, iconElement, execution, contextMenuItems, onMenuOpenChange } = data;
82
+ const showMenu = isHovered && contextMenuItems && contextMenuItems.length > 0;
83
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(index_cjs_namespaceObject.Column, {
84
+ flex: 1,
85
+ style: {
86
+ overflow: 'hidden',
87
+ textOverflow: 'ellipsis',
88
+ whiteSpace: 'nowrap'
89
+ },
90
+ gap: apollo_core_namespaceObject.Padding.PadXs,
91
+ children: [
92
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(index_cjs_namespaceObject.Row, {
93
+ align: "center",
94
+ justify: "space-between",
95
+ children: [
96
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(index_cjs_namespaceObject.Row, {
97
+ gap: apollo_core_namespaceObject.Spacing.SpacingXs,
98
+ align: "center",
99
+ style: {
100
+ overflow: 'hidden',
101
+ textOverflow: 'ellipsis',
102
+ whiteSpace: 'nowrap',
103
+ flex: 1
104
+ },
105
+ children: [
106
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(StageNode_styles_cjs_namespaceObject.StageTaskIcon, {
107
+ children: iconElement ?? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(DefaultTaskIcon, {})
108
+ }),
109
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_material_index_cjs_namespaceObject.ApTooltip, {
110
+ content: label,
111
+ placement: "top",
112
+ smartTooltip: true,
113
+ ...isDragging && {
114
+ isOpen: false
115
+ },
116
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_material_index_cjs_namespaceObject.ApTypography, {
117
+ variant: apollo_core_namespaceObject.FontVariantToken.fontSizeM,
118
+ color: "var(--uix-canvas-foreground)",
119
+ style: {
120
+ overflow: 'hidden',
121
+ textOverflow: 'ellipsis',
122
+ whiteSpace: 'nowrap'
123
+ },
124
+ children: label
125
+ })
126
+ })
127
+ ]
128
+ }),
129
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(index_cjs_namespaceObject.Row, {
130
+ align: "center",
131
+ gap: apollo_core_namespaceObject.Spacing.SpacingXs,
132
+ children: [
133
+ showMenu && contextMenuItems && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(TaskMenu_cjs_namespaceObject.TaskMenu, {
134
+ taskId: taskId,
135
+ contextMenuItems: contextMenuItems,
136
+ onMenuOpenChange: onMenuOpenChange
137
+ }),
138
+ execution?.status && 'NotExecuted' !== execution.status && (execution.message ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_material_index_cjs_namespaceObject.ApTooltip, {
139
+ content: execution.message,
140
+ placement: "top",
141
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_ExecutionStatusIcon_index_cjs_namespaceObject.ExecutionStatusIcon, {
142
+ status: execution.status
143
+ })
144
+ }) : /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_ExecutionStatusIcon_index_cjs_namespaceObject.ExecutionStatusIcon, {
145
+ status: execution.status
146
+ }))
147
+ ]
148
+ })
149
+ ]
150
+ }),
151
+ execution && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(index_cjs_namespaceObject.Row, {
152
+ align: "center",
153
+ justify: "space-between",
154
+ children: [
155
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(index_cjs_namespaceObject.Row, {
156
+ gap: '2px',
157
+ children: [
158
+ execution?.duration && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_material_index_cjs_namespaceObject.ApTypography, {
159
+ variant: apollo_core_namespaceObject.FontVariantToken.fontSizeS,
160
+ color: "var(--uix-canvas-foreground-de-emp)",
161
+ children: execution.duration
162
+ }),
163
+ execution?.retryDuration && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(StageNode_styles_cjs_namespaceObject.StageTaskRetryDuration, {
164
+ status: execution.badgeStatus ?? 'warning',
165
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_material_index_cjs_namespaceObject.ApTypography, {
166
+ variant: apollo_core_namespaceObject.FontVariantToken.fontSizeS,
167
+ color: "inherit",
168
+ children: `(+${execution.retryDuration})`
169
+ })
170
+ })
171
+ ]
172
+ }),
173
+ execution?.badge && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_material_index_cjs_namespaceObject.ApBadge, {
174
+ size: external_material_index_cjs_namespaceObject.BadgeSize.SMALL,
175
+ status: execution.badgeStatus,
176
+ label: generateBadgeText(execution) ?? ''
177
+ })
178
+ ]
179
+ })
180
+ ]
181
+ });
182
+ });
183
+ TaskNodeContent.displayName = 'TaskNodeContent';
184
+ const TaskNodeComponent = ({ id, data, selected, dragging })=>{
185
+ const [isHovered, setIsHovered] = (0, external_react_namespaceObject.useState)(false);
186
+ const isParallel = (0, external_TaskNodeContext_cjs_namespaceObject.useIsTaskParallel)(id);
187
+ const context = (0, external_TaskNodeContext_cjs_namespaceObject.useOptionalTaskNodeContext)();
188
+ const hasExecution = !!data.execution;
189
+ const handleMouseEnter = (0, external_react_namespaceObject.useCallback)(()=>setIsHovered(true), []);
190
+ const handleMouseLeave = (0, external_react_namespaceObject.useCallback)(()=>setIsHovered(false), []);
191
+ const handleClick = (0, external_react_namespaceObject.useCallback)(()=>{
192
+ const clickHandler = context?.onTaskClick || data.onTaskClick;
193
+ const selectHandler = context?.onTaskSelect || data.onTaskSelect;
194
+ clickHandler?.(id);
195
+ selectHandler?.(id);
196
+ }, [
197
+ context,
198
+ id,
199
+ data.onTaskClick,
200
+ data.onTaskSelect
201
+ ]);
202
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(StageNode_styles_cjs_namespaceObject.StageTask, {
203
+ "data-testid": `task-node-${id}`,
204
+ selected: selected || isHovered,
205
+ status: data.execution?.status,
206
+ isParallel: isParallel,
207
+ isDragEnabled: false,
208
+ onMouseEnter: handleMouseEnter,
209
+ onMouseLeave: handleMouseLeave,
210
+ onClick: handleClick,
211
+ style: {
212
+ cursor: context?.isReadOnly ? 'default' : hasExecution ? 'default' : 'pointer',
213
+ boxShadow: selected ? '0 0 0 2px var(--uix-canvas-secondary-pressed)' : void 0,
214
+ width: data.width ? `${data.width}px` : void 0
215
+ },
216
+ className: hasExecution ? 'nodrag nopan' : 'nopan',
217
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(TaskNodeContent, {
218
+ taskId: id,
219
+ data: data,
220
+ isDragging: dragging,
221
+ isHovered: isHovered
222
+ })
223
+ });
224
+ };
225
+ const TaskNode = /*#__PURE__*/ (0, external_react_namespaceObject.memo)(TaskNodeComponent);
226
+ TaskNode.displayName = 'TaskNode';
227
+ exports.TaskNode = __webpack_exports__.TaskNode;
228
+ exports.TaskNodeContent = __webpack_exports__.TaskNodeContent;
229
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
230
+ "TaskNode",
231
+ "TaskNodeContent"
232
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
233
+ Object.defineProperty(exports, '__esModule', {
234
+ value: true
235
+ });
@@ -0,0 +1,11 @@
1
+ import type { TaskNodeData, TaskNodeProps } from './TaskNode.types';
2
+ interface TaskContentProps {
3
+ taskId: string;
4
+ data: TaskNodeData;
5
+ isDragging?: boolean;
6
+ isHovered?: boolean;
7
+ }
8
+ export declare const TaskNodeContent: import("react").MemoExoticComponent<({ taskId, data, isDragging, isHovered }: TaskContentProps) => import("react/jsx-runtime").JSX.Element>;
9
+ export declare const TaskNode: import("react").MemoExoticComponent<({ id, data, selected, dragging }: TaskNodeProps) => import("react/jsx-runtime").JSX.Element>;
10
+ export {};
11
+ //# sourceMappingURL=TaskNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaskNode.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/TaskNode/TaskNode.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AA8BpE,UAAU,gBAAgB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,YAAY,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAKD,eAAO,MAAM,eAAe,gFAAkD,gBAAgB,6CAiF5F,CAAC;AA8DH,eAAO,MAAM,QAAQ,yEA9CwC,aAAa,6CA8C3B,CAAC"}
@@ -0,0 +1,198 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { FontVariantToken, Padding, Spacing } from "@uipath/apollo-core";
3
+ import { Column, Row } from "../../layouts/index.js";
4
+ import { ApBadge, ApTooltip, ApTypography, BadgeSize } from "../../../material/index.js";
5
+ import { memo, useCallback, useState } from "react";
6
+ import { ExecutionStatusIcon } from "../ExecutionStatusIcon/index.js";
7
+ import { StageTask, StageTaskIcon, StageTaskRetryDuration } from "../StageNode/StageNode.styles.js";
8
+ import { TaskMenu } from "../StageNode/TaskMenu.js";
9
+ import { useIsTaskParallel, useOptionalTaskNodeContext } from "./TaskNodeContext.js";
10
+ const DefaultTaskIcon = ()=>/*#__PURE__*/ jsxs("svg", {
11
+ viewBox: "0 0 24 24",
12
+ fill: "none",
13
+ stroke: "currentColor",
14
+ strokeWidth: "1.5",
15
+ children: [
16
+ /*#__PURE__*/ jsx("rect", {
17
+ x: "3",
18
+ y: "3",
19
+ width: "7",
20
+ height: "7",
21
+ rx: "1"
22
+ }),
23
+ /*#__PURE__*/ jsx("rect", {
24
+ x: "14",
25
+ y: "3",
26
+ width: "7",
27
+ height: "7",
28
+ rx: "1"
29
+ }),
30
+ /*#__PURE__*/ jsx("rect", {
31
+ x: "3",
32
+ y: "14",
33
+ width: "7",
34
+ height: "7",
35
+ rx: "1"
36
+ }),
37
+ /*#__PURE__*/ jsx("rect", {
38
+ x: "14",
39
+ y: "14",
40
+ width: "7",
41
+ height: "7",
42
+ rx: "1"
43
+ })
44
+ ]
45
+ });
46
+ const generateBadgeText = (taskExecution)=>{
47
+ if (!taskExecution.badge) return;
48
+ if (taskExecution.retryCount && taskExecution.retryCount > 1) return `${taskExecution.badge} x${taskExecution.retryCount}`;
49
+ return taskExecution.badge;
50
+ };
51
+ const TaskNodeContent = /*#__PURE__*/ memo(({ taskId, data, isDragging, isHovered })=>{
52
+ const { label, iconElement, execution, contextMenuItems, onMenuOpenChange } = data;
53
+ const showMenu = isHovered && contextMenuItems && contextMenuItems.length > 0;
54
+ return /*#__PURE__*/ jsxs(Column, {
55
+ flex: 1,
56
+ style: {
57
+ overflow: 'hidden',
58
+ textOverflow: 'ellipsis',
59
+ whiteSpace: 'nowrap'
60
+ },
61
+ gap: Padding.PadXs,
62
+ children: [
63
+ /*#__PURE__*/ jsxs(Row, {
64
+ align: "center",
65
+ justify: "space-between",
66
+ children: [
67
+ /*#__PURE__*/ jsxs(Row, {
68
+ gap: Spacing.SpacingXs,
69
+ align: "center",
70
+ style: {
71
+ overflow: 'hidden',
72
+ textOverflow: 'ellipsis',
73
+ whiteSpace: 'nowrap',
74
+ flex: 1
75
+ },
76
+ children: [
77
+ /*#__PURE__*/ jsx(StageTaskIcon, {
78
+ children: iconElement ?? /*#__PURE__*/ jsx(DefaultTaskIcon, {})
79
+ }),
80
+ /*#__PURE__*/ jsx(ApTooltip, {
81
+ content: label,
82
+ placement: "top",
83
+ smartTooltip: true,
84
+ ...isDragging && {
85
+ isOpen: false
86
+ },
87
+ children: /*#__PURE__*/ jsx(ApTypography, {
88
+ variant: FontVariantToken.fontSizeM,
89
+ color: "var(--uix-canvas-foreground)",
90
+ style: {
91
+ overflow: 'hidden',
92
+ textOverflow: 'ellipsis',
93
+ whiteSpace: 'nowrap'
94
+ },
95
+ children: label
96
+ })
97
+ })
98
+ ]
99
+ }),
100
+ /*#__PURE__*/ jsxs(Row, {
101
+ align: "center",
102
+ gap: Spacing.SpacingXs,
103
+ children: [
104
+ showMenu && contextMenuItems && /*#__PURE__*/ jsx(TaskMenu, {
105
+ taskId: taskId,
106
+ contextMenuItems: contextMenuItems,
107
+ onMenuOpenChange: onMenuOpenChange
108
+ }),
109
+ execution?.status && 'NotExecuted' !== execution.status && (execution.message ? /*#__PURE__*/ jsx(ApTooltip, {
110
+ content: execution.message,
111
+ placement: "top",
112
+ children: /*#__PURE__*/ jsx(ExecutionStatusIcon, {
113
+ status: execution.status
114
+ })
115
+ }) : /*#__PURE__*/ jsx(ExecutionStatusIcon, {
116
+ status: execution.status
117
+ }))
118
+ ]
119
+ })
120
+ ]
121
+ }),
122
+ execution && /*#__PURE__*/ jsxs(Row, {
123
+ align: "center",
124
+ justify: "space-between",
125
+ children: [
126
+ /*#__PURE__*/ jsxs(Row, {
127
+ gap: '2px',
128
+ children: [
129
+ execution?.duration && /*#__PURE__*/ jsx(ApTypography, {
130
+ variant: FontVariantToken.fontSizeS,
131
+ color: "var(--uix-canvas-foreground-de-emp)",
132
+ children: execution.duration
133
+ }),
134
+ execution?.retryDuration && /*#__PURE__*/ jsx(StageTaskRetryDuration, {
135
+ status: execution.badgeStatus ?? 'warning',
136
+ children: /*#__PURE__*/ jsx(ApTypography, {
137
+ variant: FontVariantToken.fontSizeS,
138
+ color: "inherit",
139
+ children: `(+${execution.retryDuration})`
140
+ })
141
+ })
142
+ ]
143
+ }),
144
+ execution?.badge && /*#__PURE__*/ jsx(ApBadge, {
145
+ size: BadgeSize.SMALL,
146
+ status: execution.badgeStatus,
147
+ label: generateBadgeText(execution) ?? ''
148
+ })
149
+ ]
150
+ })
151
+ ]
152
+ });
153
+ });
154
+ TaskNodeContent.displayName = 'TaskNodeContent';
155
+ const TaskNodeComponent = ({ id, data, selected, dragging })=>{
156
+ const [isHovered, setIsHovered] = useState(false);
157
+ const isParallel = useIsTaskParallel(id);
158
+ const context = useOptionalTaskNodeContext();
159
+ const hasExecution = !!data.execution;
160
+ const handleMouseEnter = useCallback(()=>setIsHovered(true), []);
161
+ const handleMouseLeave = useCallback(()=>setIsHovered(false), []);
162
+ const handleClick = useCallback(()=>{
163
+ const clickHandler = context?.onTaskClick || data.onTaskClick;
164
+ const selectHandler = context?.onTaskSelect || data.onTaskSelect;
165
+ clickHandler?.(id);
166
+ selectHandler?.(id);
167
+ }, [
168
+ context,
169
+ id,
170
+ data.onTaskClick,
171
+ data.onTaskSelect
172
+ ]);
173
+ return /*#__PURE__*/ jsx(StageTask, {
174
+ "data-testid": `task-node-${id}`,
175
+ selected: selected || isHovered,
176
+ status: data.execution?.status,
177
+ isParallel: isParallel,
178
+ isDragEnabled: false,
179
+ onMouseEnter: handleMouseEnter,
180
+ onMouseLeave: handleMouseLeave,
181
+ onClick: handleClick,
182
+ style: {
183
+ cursor: context?.isReadOnly ? 'default' : hasExecution ? 'default' : 'pointer',
184
+ boxShadow: selected ? '0 0 0 2px var(--uix-canvas-secondary-pressed)' : void 0,
185
+ width: data.width ? `${data.width}px` : void 0
186
+ },
187
+ className: hasExecution ? 'nodrag nopan' : 'nopan',
188
+ children: /*#__PURE__*/ jsx(TaskNodeContent, {
189
+ taskId: id,
190
+ data: data,
191
+ isDragging: dragging,
192
+ isHovered: isHovered
193
+ })
194
+ });
195
+ };
196
+ const TaskNode = /*#__PURE__*/ memo(TaskNodeComponent);
197
+ TaskNode.displayName = 'TaskNode';
198
+ export { TaskNode, TaskNodeContent };