@uipath/apollo-react 6.5.0 → 6.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/dist/canvas/components/StageNode/StageNodeAdhocTaskGroups.cjs +3 -1
  2. package/dist/canvas/components/StageNode/StageNodeAdhocTaskGroups.d.ts.map +1 -1
  3. package/dist/canvas/components/StageNode/StageNodeAdhocTaskGroups.js +3 -1
  4. package/dist/canvas/components/StageNode/StageNodeAllTaskGroups.cjs +2 -0
  5. package/dist/canvas/components/StageNode/StageNodeAllTaskGroups.d.ts.map +1 -1
  6. package/dist/canvas/components/StageNode/StageNodeAllTaskGroups.js +2 -0
  7. package/dist/canvas/components/StageNode/StageNodeEventDrivenTaskGroups.cjs +3 -1
  8. package/dist/canvas/components/StageNode/StageNodeEventDrivenTaskGroups.d.ts.map +1 -1
  9. package/dist/canvas/components/StageNode/StageNodeEventDrivenTaskGroups.js +3 -1
  10. package/dist/canvas/components/StageNode/StageNodeHeader.cjs +3 -0
  11. package/dist/canvas/components/StageNode/StageNodeHeader.d.ts.map +1 -1
  12. package/dist/canvas/components/StageNode/StageNodeHeader.js +3 -0
  13. package/dist/canvas/components/StageNode/StageNodeSequentialTaskGroups.cjs +3 -1
  14. package/dist/canvas/components/StageNode/StageNodeSequentialTaskGroups.d.ts.map +1 -1
  15. package/dist/canvas/components/StageNode/StageNodeSequentialTaskGroups.js +3 -1
  16. package/dist/canvas/components/StageNode/StageTaskEntryConditionIcon.cjs +1 -0
  17. package/dist/canvas/components/StageNode/StageTaskEntryConditionIcon.d.ts.map +1 -1
  18. package/dist/canvas/components/StageNode/StageTaskEntryConditionIcon.js +1 -0
  19. package/dist/canvas/components/StageNode/StageTitleInput.cjs +1 -0
  20. package/dist/canvas/components/StageNode/StageTitleInput.d.ts.map +1 -1
  21. package/dist/canvas/components/StageNode/StageTitleInput.js +1 -0
  22. package/dist/canvas/components/StageNode/TaskContent.cjs +7 -0
  23. package/dist/canvas/components/StageNode/TaskContent.d.ts.map +1 -1
  24. package/dist/canvas/components/StageNode/TaskContent.js +7 -0
  25. package/dist/canvas/styles/tailwind.canvas.css +1 -1
  26. package/package.json +3 -3
@@ -32,7 +32,7 @@ const external_AdhocTask_cjs_namespaceObject = require("./AdhocTask.cjs");
32
32
  const external_StageNode_styles_cjs_namespaceObject = require("./StageNode.styles.cjs");
33
33
  const external_useStageNodeLabels_cjs_namespaceObject = require("./useStageNodeLabels.cjs");
34
34
  const StageNodeAdhocTaskGroupsInner = ({ props, adhocTasks, isReadOnly, selectedTaskId, marginTop, handleTaskClick, generateReplaceTaskMenuItemForTask, generateDeleteTaskMenuItemForTask })=>{
35
- const { execution, onTaskGroupModification, onReplaceTaskFromToolbox, onTaskPlay, loadingTaskIds, getTaskContextMenuItems } = props;
35
+ const { id, execution, onTaskGroupModification, onReplaceTaskFromToolbox, onTaskPlay, loadingTaskIds, getTaskContextMenuItems } = props;
36
36
  const hasBuiltInTaskActions = !!(onReplaceTaskFromToolbox || onTaskGroupModification);
37
37
  const labels = (0, external_useStageNodeLabels_cjs_namespaceObject.useStageNodeLabels)();
38
38
  const getAdhocContextMenuItems = (0, external_react_namespaceObject.useCallback)((task)=>{
@@ -61,11 +61,13 @@ const StageNodeAdhocTaskGroupsInner = ({ props, adhocTasks, isReadOnly, selected
61
61
  children: [
62
62
  /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_StageNode_styles_cjs_namespaceObject.StageAdditionalTasksHeaderSection, {
63
63
  children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("span", {
64
+ "data-testid": `adhoc-tasks-header-${id}`,
64
65
  className: "text-xs font-bold text-foreground-muted",
65
66
  children: labels.adhocTasks
66
67
  })
67
68
  }),
68
69
  /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_StageNode_styles_cjs_namespaceObject.StageTaskList, {
70
+ "data-testid": `adhoc-tasks-list-${id}`,
69
71
  children: adhocTasks.map(({ task })=>{
70
72
  const taskExecution = execution?.taskStatus?.[task.id];
71
73
  const hasMenu = !isReadOnly && hasBuiltInTaskActions || (getTaskContextMenuItems?.({
@@ -1 +1 @@
1
- {"version":3,"file":"StageNodeAdhocTaskGroups.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/StageNodeAdhocTaskGroups.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAOvD,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAiB,MAAM,mBAAmB,CAAC;AAkGvF,eAAO,MAAM,wBAAwB,8LAtFlC;IACD,KAAK,EAAE,cAAc,CAAC;IACtB,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,EAAE,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IACtE,kCAAkC,EAAE,CAClC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,OAAO,KAChB,YAAY,GAAG,SAAS,CAAC;IAC9B,iCAAiC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,YAAY,GAAG,SAAS,CAAC;CACjF,oDA0E0E,CAAC"}
1
+ {"version":3,"file":"StageNodeAdhocTaskGroups.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/StageNodeAdhocTaskGroups.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAOvD,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAiB,MAAM,mBAAmB,CAAC;AAwGvF,eAAO,MAAM,wBAAwB,8LA5FlC;IACD,KAAK,EAAE,cAAc,CAAC;IACtB,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,EAAE,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IACtE,kCAAkC,EAAE,CAClC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,OAAO,KAChB,YAAY,GAAG,SAAS,CAAC;IAC9B,iCAAiC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,YAAY,GAAG,SAAS,CAAC;CACjF,oDAgF0E,CAAC"}
@@ -4,7 +4,7 @@ import { AdhocTaskItem } from "./AdhocTask.js";
4
4
  import { StageAdditionalTasksHeaderSection, StageAdditionalTasksSection, StageTaskList } from "./StageNode.styles.js";
5
5
  import { useStageNodeLabels } from "./useStageNodeLabels.js";
6
6
  const StageNodeAdhocTaskGroupsInner = ({ props, adhocTasks, isReadOnly, selectedTaskId, marginTop, handleTaskClick, generateReplaceTaskMenuItemForTask, generateDeleteTaskMenuItemForTask })=>{
7
- const { execution, onTaskGroupModification, onReplaceTaskFromToolbox, onTaskPlay, loadingTaskIds, getTaskContextMenuItems } = props;
7
+ const { id, execution, onTaskGroupModification, onReplaceTaskFromToolbox, onTaskPlay, loadingTaskIds, getTaskContextMenuItems } = props;
8
8
  const hasBuiltInTaskActions = !!(onReplaceTaskFromToolbox || onTaskGroupModification);
9
9
  const labels = useStageNodeLabels();
10
10
  const getAdhocContextMenuItems = useCallback((task)=>{
@@ -33,11 +33,13 @@ const StageNodeAdhocTaskGroupsInner = ({ props, adhocTasks, isReadOnly, selected
33
33
  children: [
34
34
  /*#__PURE__*/ jsx(StageAdditionalTasksHeaderSection, {
35
35
  children: /*#__PURE__*/ jsx("span", {
36
+ "data-testid": `adhoc-tasks-header-${id}`,
36
37
  className: "text-xs font-bold text-foreground-muted",
37
38
  children: labels.adhocTasks
38
39
  })
39
40
  }),
40
41
  /*#__PURE__*/ jsx(StageTaskList, {
42
+ "data-testid": `adhoc-tasks-list-${id}`,
41
43
  children: adhocTasks.map(({ task })=>{
42
44
  const taskExecution = execution?.taskStatus?.[task.id];
43
45
  const hasMenu = !isReadOnly && hasBuiltInTaskActions || (getTaskContextMenuItems?.({
@@ -123,8 +123,10 @@ const StageNodeAllTaskGroupsInner = ({ props, isReadOnly, taskWidthStyle, taskSt
123
123
  maxWidth: 'fit-content',
124
124
  padding: 0
125
125
  },
126
+ "data-testid": `add-task-body-button-${id}`,
126
127
  children: defaultContent
127
128
  }) : /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("span", {
129
+ "data-testid": `no-tasks-body-${id}`,
128
130
  className: "inline-flex items-center h-9 text-sm font-medium text-foreground-muted",
129
131
  children: defaultContent
130
132
  })
@@ -1 +1 @@
1
- {"version":3,"file":"StageNodeAllTaskGroups.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/StageNodeAllTaskGroups.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,aAAa,EAAQ,KAAK,SAAS,EAAwB,MAAM,OAAO,CAAC;AAIvF,OAAO,KAAK,EAAE,cAAc,EAAiB,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AA6M3F,eAAO,MAAM,sBAAsB,8JA9LhC;IACD,KAAK,EAAE,cAAc,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,kBAAkB,EAAE,SAAS,CAAC,kBAAkB,CAAC,CAAC;IAClD,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,kBAAkB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IACtD,kBAAkB,EAAE,CAAC,eAAe,EAAE,OAAO,KAAK,IAAI,CAAC;CACxD,6CAsLsE,CAAC"}
1
+ {"version":3,"file":"StageNodeAllTaskGroups.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/StageNodeAllTaskGroups.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,aAAa,EAAQ,KAAK,SAAS,EAAwB,MAAM,OAAO,CAAC;AAIvF,OAAO,KAAK,EAAE,cAAc,EAAiB,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAiN3F,eAAO,MAAM,sBAAsB,8JAlMhC;IACD,KAAK,EAAE,cAAc,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,kBAAkB,EAAE,SAAS,CAAC,kBAAkB,CAAC,CAAC;IAClD,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,kBAAkB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IACtD,kBAAkB,EAAE,CAAC,eAAe,EAAE,OAAO,KAAK,IAAI,CAAC;CACxD,6CA0LsE,CAAC"}
@@ -95,8 +95,10 @@ const StageNodeAllTaskGroupsInner = ({ props, isReadOnly, taskWidthStyle, taskSt
95
95
  maxWidth: 'fit-content',
96
96
  padding: 0
97
97
  },
98
+ "data-testid": `add-task-body-button-${id}`,
98
99
  children: defaultContent
99
100
  }) : /*#__PURE__*/ jsx("span", {
101
+ "data-testid": `no-tasks-body-${id}`,
100
102
  className: "inline-flex items-center h-9 text-sm font-medium text-foreground-muted",
101
103
  children: defaultContent
102
104
  })
@@ -32,7 +32,7 @@ const external_EventDrivenTask_cjs_namespaceObject = require("./EventDrivenTask.
32
32
  const external_StageNode_styles_cjs_namespaceObject = require("./StageNode.styles.cjs");
33
33
  const external_useStageNodeLabels_cjs_namespaceObject = require("./useStageNodeLabels.cjs");
34
34
  const StageNodeEventDrivenTaskGroupsInner = ({ props, eventDrivenTasks, isReadOnly, selectedTaskId, marginTop, handleTaskClick, generateReplaceTaskMenuItemForTask, generateDeleteTaskMenuItemForTask })=>{
35
- const { execution, onTaskGroupModification, onReplaceTaskFromToolbox, loadingTaskIds, getTaskContextMenuItems } = props;
35
+ const { id, execution, onTaskGroupModification, onReplaceTaskFromToolbox, loadingTaskIds, getTaskContextMenuItems } = props;
36
36
  const hasBuiltInTaskActions = !!(onReplaceTaskFromToolbox || onTaskGroupModification);
37
37
  const labels = (0, external_useStageNodeLabels_cjs_namespaceObject.useStageNodeLabels)();
38
38
  const getEventDrivenContextMenuItems = (0, external_react_namespaceObject.useCallback)((task)=>{
@@ -61,11 +61,13 @@ const StageNodeEventDrivenTaskGroupsInner = ({ props, eventDrivenTasks, isReadOn
61
61
  children: [
62
62
  /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_StageNode_styles_cjs_namespaceObject.StageAdditionalTasksHeaderSection, {
63
63
  children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("span", {
64
+ "data-testid": `event-driven-tasks-header-${id}`,
64
65
  className: "text-xs font-bold text-foreground-muted",
65
66
  children: labels.eventDrivenTasks
66
67
  })
67
68
  }),
68
69
  /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_StageNode_styles_cjs_namespaceObject.StageTaskList, {
70
+ "data-testid": `event-driven-tasks-list-${id}`,
69
71
  children: eventDrivenTasks.map(({ task })=>{
70
72
  const taskExecution = execution?.taskStatus?.[task.id];
71
73
  const hasMenu = !isReadOnly && hasBuiltInTaskActions || (getTaskContextMenuItems?.({
@@ -1 +1 @@
1
- {"version":3,"file":"StageNodeEventDrivenTaskGroups.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/StageNodeEventDrivenTaskGroups.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAOvD,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAiB,MAAM,mBAAmB,CAAC;AAgGvF,eAAO,MAAM,8BAA8B,oMApFxC;IACD,KAAK,EAAE,cAAc,CAAC;IACtB,gBAAgB,EAAE,cAAc,EAAE,CAAC;IACnC,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,EAAE,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IACtE,kCAAkC,EAAE,CAClC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,OAAO,KAChB,YAAY,GAAG,SAAS,CAAC;IAC9B,iCAAiC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,YAAY,GAAG,SAAS,CAAC;CACjF,oDAwEsF,CAAC"}
1
+ {"version":3,"file":"StageNodeEventDrivenTaskGroups.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/StageNodeEventDrivenTaskGroups.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAOvD,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAiB,MAAM,mBAAmB,CAAC;AAsGvF,eAAO,MAAM,8BAA8B,oMA1FxC;IACD,KAAK,EAAE,cAAc,CAAC;IACtB,gBAAgB,EAAE,cAAc,EAAE,CAAC;IACnC,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,EAAE,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IACtE,kCAAkC,EAAE,CAClC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,OAAO,KAChB,YAAY,GAAG,SAAS,CAAC;IAC9B,iCAAiC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,YAAY,GAAG,SAAS,CAAC;CACjF,oDA8EsF,CAAC"}
@@ -4,7 +4,7 @@ import { EventDrivenTaskItem } from "./EventDrivenTask.js";
4
4
  import { StageAdditionalTasksHeaderSection, StageAdditionalTasksSection, StageTaskList } from "./StageNode.styles.js";
5
5
  import { useStageNodeLabels } from "./useStageNodeLabels.js";
6
6
  const StageNodeEventDrivenTaskGroupsInner = ({ props, eventDrivenTasks, isReadOnly, selectedTaskId, marginTop, handleTaskClick, generateReplaceTaskMenuItemForTask, generateDeleteTaskMenuItemForTask })=>{
7
- const { execution, onTaskGroupModification, onReplaceTaskFromToolbox, loadingTaskIds, getTaskContextMenuItems } = props;
7
+ const { id, execution, onTaskGroupModification, onReplaceTaskFromToolbox, loadingTaskIds, getTaskContextMenuItems } = props;
8
8
  const hasBuiltInTaskActions = !!(onReplaceTaskFromToolbox || onTaskGroupModification);
9
9
  const labels = useStageNodeLabels();
10
10
  const getEventDrivenContextMenuItems = useCallback((task)=>{
@@ -33,11 +33,13 @@ const StageNodeEventDrivenTaskGroupsInner = ({ props, eventDrivenTasks, isReadOn
33
33
  children: [
34
34
  /*#__PURE__*/ jsx(StageAdditionalTasksHeaderSection, {
35
35
  children: /*#__PURE__*/ jsx("span", {
36
+ "data-testid": `event-driven-tasks-header-${id}`,
36
37
  className: "text-xs font-bold text-foreground-muted",
37
38
  children: labels.eventDrivenTasks
38
39
  })
39
40
  }),
40
41
  /*#__PURE__*/ jsx(StageTaskList, {
42
+ "data-testid": `event-driven-tasks-list-${id}`,
41
43
  children: eventDrivenTasks.map(({ task })=>{
42
44
  const taskExecution = execution?.taskStatus?.[task.id];
43
45
  const hasMenu = !isReadOnly && hasBuiltInTaskActions || (getTaskContextMenuItems?.({
@@ -181,6 +181,7 @@ const StageNodeHeaderInner = ({ props, isReadOnly, isException, status, handleTa
181
181
  onClick: handleTaskAddClick,
182
182
  "aria-label": labels.addTask,
183
183
  disabled: isAddTaskDisabled,
184
+ "data-testid": `add-task-button-${id}`,
184
185
  children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(icon_registry_cjs_namespaceObject.CanvasIcon, {
185
186
  icon: "plus",
186
187
  size: 20
@@ -220,6 +221,7 @@ const StageNodeHeaderInner = ({ props, isReadOnly, isException, status, handleTa
220
221
  onClick: chip.onClick
221
222
  }, chip.type);
222
223
  const button = /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(external_StageNode_styles_cjs_namespaceObject.StageChip, {
224
+ "data-testid": `stage-${chip.type}-chip-${id}`,
223
225
  type: "button",
224
226
  "aria-label": 'string' == typeof chip.tooltip ? chip.tooltip : chip.type,
225
227
  onClick: (e)=>{
@@ -246,6 +248,7 @@ const StageNodeHeaderInner = ({ props, isReadOnly, isException, status, handleTa
246
248
  }),
247
249
  stageDuration && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("span", {
248
250
  className: "flex min-h-8 items-center text-xs text-foreground-muted",
251
+ "data-testid": `stage-duration-${id}`,
249
252
  children: stageDuration
250
253
  })
251
254
  ]
@@ -1 +1 @@
1
- {"version":3,"file":"StageNodeHeader.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/StageNodeHeader.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAgB,WAAW,EAAE,MAAM,mBAAmB,CAAC;AA2QnF,eAAO,MAAM,eAAe,wGA7JzB;IACD,KAAK,EAAE,cAAc,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,kBAAkB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;CACvD,6CAuJwD,CAAC"}
1
+ {"version":3,"file":"StageNodeHeader.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/StageNodeHeader.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAgB,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAgRnF,eAAO,MAAM,eAAe,wGAlKzB;IACD,KAAK,EAAE,cAAc,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,kBAAkB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;CACvD,6CA4JwD,CAAC"}
@@ -153,6 +153,7 @@ const StageNodeHeaderInner = ({ props, isReadOnly, isException, status, handleTa
153
153
  onClick: handleTaskAddClick,
154
154
  "aria-label": labels.addTask,
155
155
  disabled: isAddTaskDisabled,
156
+ "data-testid": `add-task-button-${id}`,
156
157
  children: /*#__PURE__*/ jsx(CanvasIcon, {
157
158
  icon: "plus",
158
159
  size: 20
@@ -192,6 +193,7 @@ const StageNodeHeaderInner = ({ props, isReadOnly, isException, status, handleTa
192
193
  onClick: chip.onClick
193
194
  }, chip.type);
194
195
  const button = /*#__PURE__*/ jsxs(StageChip, {
196
+ "data-testid": `stage-${chip.type}-chip-${id}`,
195
197
  type: "button",
196
198
  "aria-label": 'string' == typeof chip.tooltip ? chip.tooltip : chip.type,
197
199
  onClick: (e)=>{
@@ -218,6 +220,7 @@ const StageNodeHeaderInner = ({ props, isReadOnly, isException, status, handleTa
218
220
  }),
219
221
  stageDuration && /*#__PURE__*/ jsx("span", {
220
222
  className: "flex min-h-8 items-center text-xs text-foreground-muted",
223
+ "data-testid": `stage-duration-${id}`,
221
224
  children: stageDuration
222
225
  })
223
226
  ]
@@ -40,7 +40,7 @@ const external_StageNodeTaskUtilities_cjs_namespaceObject = require("./StageNode
40
40
  const external_StageTaskDragOverlay_cjs_namespaceObject = require("./StageTaskDragOverlay.cjs");
41
41
  const external_useStageNodeLabels_cjs_namespaceObject = require("./useStageNodeLabels.cjs");
42
42
  const StageNodeSequentialTaskGroups = ({ props, sequentialTaskGroups, sequentialTasks, allTasks, isReadOnly, selectedTaskId, taskWidthStyle, handleTaskClick, handleReorderSequentialTasks, generateReplaceTaskMenuItemForTask })=>{
43
- const { execution, onTaskGroupModification, onReplaceTaskFromToolbox, onTaskReorder, hideParallelOptions, loadingTaskIds, getTaskContextMenuItems } = props;
43
+ const { id, execution, onTaskGroupModification, onReplaceTaskFromToolbox, onTaskReorder, hideParallelOptions, loadingTaskIds, getTaskContextMenuItems } = props;
44
44
  const hasBuiltInTaskActions = !!(onReplaceTaskFromToolbox || onTaskGroupModification);
45
45
  const labels = (0, external_useStageNodeLabels_cjs_namespaceObject.useStageNodeLabels)();
46
46
  const sequentialTaskIds = (0, external_react_namespaceObject.useMemo)(()=>sequentialTasks.map(({ task })=>task.id), [
@@ -128,6 +128,7 @@ const StageNodeSequentialTaskGroups = ({ props, sequentialTaskGroups, sequential
128
128
  children: [
129
129
  /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_StageNode_styles_cjs_namespaceObject.StageAdditionalTasksHeaderSection, {
130
130
  children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("span", {
131
+ "data-testid": `sequential-tasks-header-${id}`,
131
132
  className: "text-xs font-bold text-foreground-muted",
132
133
  children: labels.sequentialTasks
133
134
  })
@@ -145,6 +146,7 @@ const StageNodeSequentialTaskGroups = ({ props, sequentialTaskGroups, sequential
145
146
  items: sequentialTaskIds,
146
147
  strategy: sortable_namespaceObject.verticalListSortingStrategy,
147
148
  children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_StageNode_styles_cjs_namespaceObject.StageTaskList, {
149
+ "data-testid": `sequential-tasks-list-${id}`,
148
150
  className: "nodrag nopan",
149
151
  children: sequentialTaskGroups.map((taskGroup, groupIndex)=>{
150
152
  const isParallel = taskGroup.length > 1;
@@ -1 +1 @@
1
- {"version":3,"file":"StageNodeSequentialTaskGroups.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/StageNodeSequentialTaskGroups.tsx"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,aAAa,EAAwB,MAAM,OAAO,CAAC;AAMjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAWvD,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAKvF,eAAO,MAAM,6BAA6B,GAAI,4LAW3C;IACD,KAAK,EAAE,cAAc,CAAC;IACtB,oBAAoB,EAAE,aAAa,EAAE,EAAE,CAAC;IACxC,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,QAAQ,EAAE,aAAa,EAAE,EAAE,CAAC;IAC5B,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,eAAe,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,EAAE,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IACtE,4BAA4B,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,KAAK,IAAI,CAAC;IACpE,kCAAkC,EAAE,CAClC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,OAAO,KAChB,YAAY,GAAG,SAAS,CAAC;CAC/B,mDAmNA,CAAC"}
1
+ {"version":3,"file":"StageNodeSequentialTaskGroups.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/StageNodeSequentialTaskGroups.tsx"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,aAAa,EAAwB,MAAM,OAAO,CAAC;AAMjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAWvD,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAKvF,eAAO,MAAM,6BAA6B,GAAI,4LAW3C;IACD,KAAK,EAAE,cAAc,CAAC;IACtB,oBAAoB,EAAE,aAAa,EAAE,EAAE,CAAC;IACxC,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,QAAQ,EAAE,aAAa,EAAE,EAAE,CAAC;IAC5B,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,eAAe,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,EAAE,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IACtE,4BAA4B,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,KAAK,IAAI,CAAC;IACpE,kCAAkC,EAAE,CAClC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,OAAO,KAChB,YAAY,GAAG,SAAS,CAAC;CAC/B,mDAyNA,CAAC"}
@@ -12,7 +12,7 @@ import { getContextMenuItems, getDivider } from "./StageNodeTaskUtilities.js";
12
12
  import { StageTaskDragOverlay } from "./StageTaskDragOverlay.js";
13
13
  import { useStageNodeLabels } from "./useStageNodeLabels.js";
14
14
  const StageNodeSequentialTaskGroups = ({ props, sequentialTaskGroups, sequentialTasks, allTasks, isReadOnly, selectedTaskId, taskWidthStyle, handleTaskClick, handleReorderSequentialTasks, generateReplaceTaskMenuItemForTask })=>{
15
- const { execution, onTaskGroupModification, onReplaceTaskFromToolbox, onTaskReorder, hideParallelOptions, loadingTaskIds, getTaskContextMenuItems } = props;
15
+ const { id, execution, onTaskGroupModification, onReplaceTaskFromToolbox, onTaskReorder, hideParallelOptions, loadingTaskIds, getTaskContextMenuItems } = props;
16
16
  const hasBuiltInTaskActions = !!(onReplaceTaskFromToolbox || onTaskGroupModification);
17
17
  const labels = useStageNodeLabels();
18
18
  const sequentialTaskIds = useMemo(()=>sequentialTasks.map(({ task })=>task.id), [
@@ -100,6 +100,7 @@ const StageNodeSequentialTaskGroups = ({ props, sequentialTaskGroups, sequential
100
100
  children: [
101
101
  /*#__PURE__*/ jsx(StageAdditionalTasksHeaderSection, {
102
102
  children: /*#__PURE__*/ jsx("span", {
103
+ "data-testid": `sequential-tasks-header-${id}`,
103
104
  className: "text-xs font-bold text-foreground-muted",
104
105
  children: labels.sequentialTasks
105
106
  })
@@ -117,6 +118,7 @@ const StageNodeSequentialTaskGroups = ({ props, sequentialTaskGroups, sequential
117
118
  items: sequentialTaskIds,
118
119
  strategy: verticalListSortingStrategy,
119
120
  children: /*#__PURE__*/ jsx(StageTaskList, {
121
+ "data-testid": `sequential-tasks-list-${id}`,
120
122
  className: "nodrag nopan",
121
123
  children: sequentialTaskGroups.map((taskGroup, groupIndex)=>{
122
124
  const isParallel = taskGroup.length > 1;
@@ -35,6 +35,7 @@ const StageTaskEntryConditionIcon = ({ task, small })=>{
35
35
  content: "Entry condition",
36
36
  placement: "top",
37
37
  children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("span", {
38
+ "data-testid": `task-entry-condition-icon-${task.id}`,
38
39
  style: {
39
40
  display: 'flex',
40
41
  alignItems: 'center',
@@ -1 +1 @@
1
- {"version":3,"file":"StageTaskEntryConditionIcon.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/StageTaskEntryConditionIcon.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,eAAO,MAAM,2BAA2B,GAAI,kBAGzC;IACD,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,mDAsBA,CAAC"}
1
+ {"version":3,"file":"StageTaskEntryConditionIcon.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/StageTaskEntryConditionIcon.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,eAAO,MAAM,2BAA2B,GAAI,kBAGzC;IACD,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,mDAuBA,CAAC"}
@@ -7,6 +7,7 @@ const StageTaskEntryConditionIcon = ({ task, small })=>{
7
7
  content: "Entry condition",
8
8
  placement: "top",
9
9
  children: /*#__PURE__*/ jsx("span", {
10
+ "data-testid": `task-entry-condition-icon-${task.id}`,
10
11
  style: {
11
12
  display: 'flex',
12
13
  alignItems: 'center',
@@ -80,6 +80,7 @@ const StageTitleInput = ({ stageId, label: labelProp, onChange, className })=>{
80
80
  ]);
81
81
  return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
82
82
  className: (0, apollo_wind_namespaceObject.cn)('py-0.5 text-sm', !isEditing && 'font-bold', className),
83
+ "data-testid": `stage-title-input-${stageId}`,
83
84
  children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_CanvasTooltip_cjs_namespaceObject.CanvasTooltip, {
84
85
  content: label,
85
86
  placement: "top",
@@ -1 +1 @@
1
- {"version":3,"file":"StageTitleInput.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/StageTitleInput.tsx"],"names":[],"mappings":"AAKA,KAAK,oBAAoB,GAAG;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,qDAK7B,oBAAoB,4CA2FtB,CAAC"}
1
+ {"version":3,"file":"StageTitleInput.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/StageTitleInput.tsx"],"names":[],"mappings":"AAKA,KAAK,oBAAoB,GAAG;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,qDAK7B,oBAAoB,4CA8FtB,CAAC"}
@@ -52,6 +52,7 @@ const StageTitleInput = ({ stageId, label: labelProp, onChange, className })=>{
52
52
  ]);
53
53
  return /*#__PURE__*/ jsx("div", {
54
54
  className: cn('py-0.5 text-sm', !isEditing && 'font-bold', className),
55
+ "data-testid": `stage-title-input-${stageId}`,
55
56
  children: /*#__PURE__*/ jsx(CanvasTooltip, {
56
57
  content: label,
57
58
  placement: "top",
@@ -164,6 +164,7 @@ const TaskContent = /*#__PURE__*/ (0, external_react_namespaceObject.memo)(({ ta
164
164
  const taskStatusTooltip = taskExecution?.message || taskStatusFallbackName;
165
165
  const showRequiredMarker = task.isRequired && !task.isAdhoc && 'adhoc' !== task.taskGroupType;
166
166
  const durationLabel = taskExecution?.duration ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("span", {
167
+ "data-testid": `stage-task-duration-${task.id}`,
167
168
  className: "text-xs text-foreground-muted",
168
169
  children: taskExecution.duration
169
170
  }) : null;
@@ -186,6 +187,7 @@ const TaskContent = /*#__PURE__*/ (0, external_react_namespaceObject.memo)(({ ta
186
187
  },
187
188
  children: [
188
189
  /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_StageNode_styles_cjs_namespaceObject.StageTaskIcon, {
190
+ "data-testid": `stage-task-icon-${task.id}`,
189
191
  children: task.icon ?? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(ProcessCanvasIcon, {})
190
192
  }),
191
193
  /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_CanvasTooltip_cjs_namespaceObject.CanvasTooltip, {
@@ -205,6 +207,7 @@ const TaskContent = /*#__PURE__*/ (0, external_react_namespaceObject.memo)(({ ta
205
207
  },
206
208
  children: [
207
209
  /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("span", {
210
+ "data-testid": `stage-task-label-${task.id}`,
208
211
  className: "text-sm truncate",
209
212
  style: {
210
213
  minWidth: 0
@@ -212,6 +215,7 @@ const TaskContent = /*#__PURE__*/ (0, external_react_namespaceObject.memo)(({ ta
212
215
  children: task.label
213
216
  }),
214
217
  showRequiredMarker && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("span", {
218
+ "data-testid": `stage-task-required-marker-${task.id}`,
215
219
  className: "text-sm",
216
220
  style: {
217
221
  flexShrink: 0
@@ -245,6 +249,7 @@ const TaskContent = /*#__PURE__*/ (0, external_react_namespaceObject.memo)(({ ta
245
249
  role: "img",
246
250
  "aria-label": runsTooltip,
247
251
  className: "h-[14px] gap-px rounded-full px-1 py-0 text-[11px] leading-none [&>svg]:size-3",
252
+ "data-testid": `stage-task-runs-${task.id}`,
248
253
  children: [
249
254
  /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_lucide_react_namespaceObject.Redo2, {
250
255
  "aria-hidden": true
@@ -262,6 +267,7 @@ const TaskContent = /*#__PURE__*/ (0, external_react_namespaceObject.memo)(({ ta
262
267
  role: "img",
263
268
  "aria-label": reworkTooltip,
264
269
  className: "h-[14px] rounded-full px-1 py-0 [&>svg]:size-3",
270
+ "data-testid": `stage-task-rework-${task.id}`,
265
271
  children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_lucide_react_namespaceObject.RotateCcw, {
266
272
  "aria-hidden": true
267
273
  })
@@ -278,6 +284,7 @@ const TaskContent = /*#__PURE__*/ (0, external_react_namespaceObject.memo)(({ ta
278
284
  size: "icon",
279
285
  className: "h-4 w-4 rounded-sm",
280
286
  "aria-label": taskStatusTooltip,
287
+ "data-testid": `stage-task-status-${task.id}`,
281
288
  children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_ExecutionStatusIcon_index_cjs_namespaceObject.ExecutionStatusIcon, {
282
289
  status: taskExecution.status
283
290
  })
@@ -1 +1 @@
1
- {"version":3,"file":"TaskContent.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/TaskContent.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAuE3E,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,aAAa,CAAC;IACpB,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAChD;AAED,eAAO,MAAM,WAAW,wFAC4B,gBAAgB,6CAmInE,CAAC"}
1
+ {"version":3,"file":"TaskContent.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/TaskContent.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAuE3E,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,aAAa,CAAC;IACpB,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAChD;AAED,eAAO,MAAM,WAAW,wFAC4B,gBAAgB,6CAqJnE,CAAC"}
@@ -126,6 +126,7 @@ const TaskContent = /*#__PURE__*/ memo(({ task, taskExecution, isDragging, onTas
126
126
  const taskStatusTooltip = taskExecution?.message || taskStatusFallbackName;
127
127
  const showRequiredMarker = task.isRequired && !task.isAdhoc && 'adhoc' !== task.taskGroupType;
128
128
  const durationLabel = taskExecution?.duration ? /*#__PURE__*/ jsx("span", {
129
+ "data-testid": `stage-task-duration-${task.id}`,
129
130
  className: "text-xs text-foreground-muted",
130
131
  children: taskExecution.duration
131
132
  }) : null;
@@ -148,6 +149,7 @@ const TaskContent = /*#__PURE__*/ memo(({ task, taskExecution, isDragging, onTas
148
149
  },
149
150
  children: [
150
151
  /*#__PURE__*/ jsx(StageTaskIcon, {
152
+ "data-testid": `stage-task-icon-${task.id}`,
151
153
  children: task.icon ?? /*#__PURE__*/ jsx(ProcessCanvasIcon, {})
152
154
  }),
153
155
  /*#__PURE__*/ jsx(CanvasTooltip, {
@@ -167,6 +169,7 @@ const TaskContent = /*#__PURE__*/ memo(({ task, taskExecution, isDragging, onTas
167
169
  },
168
170
  children: [
169
171
  /*#__PURE__*/ jsx("span", {
172
+ "data-testid": `stage-task-label-${task.id}`,
170
173
  className: "text-sm truncate",
171
174
  style: {
172
175
  minWidth: 0
@@ -174,6 +177,7 @@ const TaskContent = /*#__PURE__*/ memo(({ task, taskExecution, isDragging, onTas
174
177
  children: task.label
175
178
  }),
176
179
  showRequiredMarker && /*#__PURE__*/ jsx("span", {
180
+ "data-testid": `stage-task-required-marker-${task.id}`,
177
181
  className: "text-sm",
178
182
  style: {
179
183
  flexShrink: 0
@@ -207,6 +211,7 @@ const TaskContent = /*#__PURE__*/ memo(({ task, taskExecution, isDragging, onTas
207
211
  role: "img",
208
212
  "aria-label": runsTooltip,
209
213
  className: "h-[14px] gap-px rounded-full px-1 py-0 text-[11px] leading-none [&>svg]:size-3",
214
+ "data-testid": `stage-task-runs-${task.id}`,
210
215
  children: [
211
216
  /*#__PURE__*/ jsx(Redo2, {
212
217
  "aria-hidden": true
@@ -224,6 +229,7 @@ const TaskContent = /*#__PURE__*/ memo(({ task, taskExecution, isDragging, onTas
224
229
  role: "img",
225
230
  "aria-label": reworkTooltip,
226
231
  className: "h-[14px] rounded-full px-1 py-0 [&>svg]:size-3",
232
+ "data-testid": `stage-task-rework-${task.id}`,
227
233
  children: /*#__PURE__*/ jsx(RotateCcw, {
228
234
  "aria-hidden": true
229
235
  })
@@ -240,6 +246,7 @@ const TaskContent = /*#__PURE__*/ memo(({ task, taskExecution, isDragging, onTas
240
246
  size: "icon",
241
247
  className: "h-4 w-4 rounded-sm",
242
248
  "aria-label": taskStatusTooltip,
249
+ "data-testid": `stage-task-status-${task.id}`,
243
250
  children: /*#__PURE__*/ jsx(ExecutionStatusIcon, {
244
251
  status: taskExecution.status
245
252
  })