@uipath/apollo-react 4.24.4 → 4.25.1

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 (109) hide show
  1. package/dist/canvas/components/BaseCanvas/BaseCanvas.cjs +2 -1
  2. package/dist/canvas/components/BaseCanvas/BaseCanvas.d.ts.map +1 -1
  3. package/dist/canvas/components/BaseCanvas/BaseCanvas.js +2 -1
  4. package/dist/canvas/components/BaseCanvas/BaseCanvas.types.d.ts +2 -0
  5. package/dist/canvas/components/BaseCanvas/BaseCanvas.types.d.ts.map +1 -1
  6. package/dist/canvas/components/BaseCanvas/CanvasProviders.cjs +19 -14
  7. package/dist/canvas/components/BaseCanvas/CanvasProviders.d.ts +2 -1
  8. package/dist/canvas/components/BaseCanvas/CanvasProviders.d.ts.map +1 -1
  9. package/dist/canvas/components/BaseCanvas/CanvasProviders.js +19 -14
  10. package/dist/canvas/components/BaseNode/BaseNodeContainer.cjs +5 -1
  11. package/dist/canvas/components/BaseNode/BaseNodeContainer.d.ts.map +1 -1
  12. package/dist/canvas/components/BaseNode/BaseNodeContainer.js +5 -1
  13. package/dist/canvas/components/ButtonHandle/ButtonHandle.cjs +1 -1
  14. package/dist/canvas/components/ButtonHandle/ButtonHandle.js +1 -1
  15. package/dist/canvas/components/CanvasTooltip.cjs +2 -3
  16. package/dist/canvas/components/CanvasTooltip.d.ts +2 -2
  17. package/dist/canvas/components/CanvasTooltip.d.ts.map +1 -1
  18. package/dist/canvas/components/CanvasTooltip.js +2 -3
  19. package/dist/canvas/components/ExecutionStatusIcon/ExecutionStatusIcon.cjs +1 -0
  20. package/dist/canvas/components/ExecutionStatusIcon/ExecutionStatusIcon.d.ts +1 -1
  21. package/dist/canvas/components/ExecutionStatusIcon/ExecutionStatusIcon.d.ts.map +1 -1
  22. package/dist/canvas/components/ExecutionStatusIcon/ExecutionStatusIcon.js +1 -0
  23. package/dist/canvas/components/LoopNode/IterationNavigator.cjs +143 -0
  24. package/dist/canvas/components/LoopNode/IterationNavigator.d.ts +7 -0
  25. package/dist/canvas/components/LoopNode/IterationNavigator.d.ts.map +1 -0
  26. package/dist/canvas/components/LoopNode/IterationNavigator.js +109 -0
  27. package/dist/canvas/components/LoopNode/LoopNode.cjs +45 -18
  28. package/dist/canvas/components/LoopNode/LoopNode.d.ts.map +1 -1
  29. package/dist/canvas/components/LoopNode/LoopNode.js +45 -18
  30. package/dist/canvas/components/LoopNode/LoopNode.types.d.ts +8 -0
  31. package/dist/canvas/components/LoopNode/LoopNode.types.d.ts.map +1 -1
  32. package/dist/canvas/components/StageNode/AdhocTask.cjs +1 -0
  33. package/dist/canvas/components/StageNode/AdhocTask.d.ts.map +1 -1
  34. package/dist/canvas/components/StageNode/AdhocTask.js +1 -0
  35. package/dist/canvas/components/StageNode/DraggableTask.cjs +1 -0
  36. package/dist/canvas/components/StageNode/DraggableTask.d.ts.map +1 -1
  37. package/dist/canvas/components/StageNode/DraggableTask.js +1 -0
  38. package/dist/canvas/components/StageNode/EventDrivenTask.cjs +1 -0
  39. package/dist/canvas/components/StageNode/EventDrivenTask.d.ts.map +1 -1
  40. package/dist/canvas/components/StageNode/EventDrivenTask.js +1 -0
  41. package/dist/canvas/components/StageNode/StageNode.cjs +5 -3
  42. package/dist/canvas/components/StageNode/StageNode.d.ts.map +1 -1
  43. package/dist/canvas/components/StageNode/StageNode.js +5 -3
  44. package/dist/canvas/components/StageNode/StageNode.styles.cjs +4 -39
  45. package/dist/canvas/components/StageNode/StageNode.styles.d.ts +1 -14
  46. package/dist/canvas/components/StageNode/StageNode.styles.d.ts.map +1 -1
  47. package/dist/canvas/components/StageNode/StageNode.styles.js +4 -33
  48. package/dist/canvas/components/StageNode/StageNode.types.d.ts +4 -2
  49. package/dist/canvas/components/StageNode/StageNode.types.d.ts.map +1 -1
  50. package/dist/canvas/components/StageNode/StageNodeAdhocTaskGroups.cjs +3 -1
  51. package/dist/canvas/components/StageNode/StageNodeAdhocTaskGroups.d.ts.map +1 -1
  52. package/dist/canvas/components/StageNode/StageNodeAdhocTaskGroups.js +3 -1
  53. package/dist/canvas/components/StageNode/StageNodeAllTaskGroups.cjs +9 -5
  54. package/dist/canvas/components/StageNode/StageNodeAllTaskGroups.d.ts.map +1 -1
  55. package/dist/canvas/components/StageNode/StageNodeAllTaskGroups.js +9 -5
  56. package/dist/canvas/components/StageNode/StageNodeEventDrivenTaskGroups.cjs +3 -1
  57. package/dist/canvas/components/StageNode/StageNodeEventDrivenTaskGroups.d.ts.map +1 -1
  58. package/dist/canvas/components/StageNode/StageNodeEventDrivenTaskGroups.js +3 -1
  59. package/dist/canvas/components/StageNode/StageNodeHeader.cjs +107 -151
  60. package/dist/canvas/components/StageNode/StageNodeHeader.d.ts.map +1 -1
  61. package/dist/canvas/components/StageNode/StageNodeHeader.js +111 -155
  62. package/dist/canvas/components/StageNode/StageNodeSequentialTaskGroups.cjs +7 -3
  63. package/dist/canvas/components/StageNode/StageNodeSequentialTaskGroups.d.ts.map +1 -1
  64. package/dist/canvas/components/StageNode/StageNodeSequentialTaskGroups.js +7 -3
  65. package/dist/canvas/components/StageNode/StageNodeTaskUtilities.cjs +11 -11
  66. package/dist/canvas/components/StageNode/StageNodeTaskUtilities.d.ts +14 -1
  67. package/dist/canvas/components/StageNode/StageNodeTaskUtilities.d.ts.map +1 -1
  68. package/dist/canvas/components/StageNode/StageNodeTaskUtilities.js +11 -11
  69. package/dist/canvas/components/StageNode/StageTitleInput.cjs +122 -0
  70. package/dist/canvas/components/StageNode/StageTitleInput.d.ts +9 -0
  71. package/dist/canvas/components/StageNode/StageTitleInput.d.ts.map +1 -0
  72. package/dist/canvas/components/StageNode/StageTitleInput.js +88 -0
  73. package/dist/canvas/components/StageNode/useStageNodeLabels.cjs +122 -0
  74. package/dist/canvas/components/StageNode/useStageNodeLabels.d.ts +15 -0
  75. package/dist/canvas/components/StageNode/useStageNodeLabels.d.ts.map +1 -0
  76. package/dist/canvas/components/StageNode/useStageNodeLabels.js +88 -0
  77. package/dist/canvas/components/StickyNoteNode/StickyNoteNode.cjs +51 -38
  78. package/dist/canvas/components/StickyNoteNode/StickyNoteNode.d.ts.map +1 -1
  79. package/dist/canvas/components/StickyNoteNode/StickyNoteNode.js +49 -36
  80. package/dist/canvas/components/StickyNoteNode/StickyNoteNode.styles.cjs +2 -5
  81. package/dist/canvas/components/StickyNoteNode/StickyNoteNode.styles.d.ts.map +1 -1
  82. package/dist/canvas/components/StickyNoteNode/StickyNoteNode.styles.js +2 -5
  83. package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.cjs +5 -5
  84. package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.js +5 -5
  85. package/dist/canvas/components/Toolbox/Toolbox.cjs +7 -1
  86. package/dist/canvas/components/Toolbox/Toolbox.d.ts.map +1 -1
  87. package/dist/canvas/components/Toolbox/Toolbox.js +7 -1
  88. package/dist/canvas/index.cjs +65 -47
  89. package/dist/canvas/index.d.ts +2 -0
  90. package/dist/canvas/index.d.ts.map +1 -1
  91. package/dist/canvas/index.js +2 -1
  92. package/dist/canvas/locales/en.cjs +1 -1
  93. package/dist/canvas/locales/en.d.ts.map +1 -1
  94. package/dist/canvas/locales/en.js +1 -1
  95. package/dist/canvas/storybook-utils/decorators.d.ts.map +1 -1
  96. package/dist/canvas/styles/reactflow-reset.css +5 -1
  97. package/dist/canvas/styles/tailwind.canvas.css +1 -1
  98. package/dist/canvas/utils/adornment-resolver.cjs +4 -8
  99. package/dist/canvas/utils/adornment-resolver.d.ts +4 -1
  100. package/dist/canvas/utils/adornment-resolver.d.ts.map +1 -1
  101. package/dist/canvas/utils/adornment-resolver.js +4 -8
  102. package/dist/canvas/utils/testing.cjs +10 -1
  103. package/dist/canvas/utils/testing.d.ts +1 -1
  104. package/dist/canvas/utils/testing.d.ts.map +1 -1
  105. package/dist/canvas/utils/testing.js +10 -1
  106. package/dist/i18n/ApI18nProvider.cjs +3 -1
  107. package/dist/i18n/ApI18nProvider.d.ts.map +1 -1
  108. package/dist/i18n/ApI18nProvider.js +3 -1
  109. package/package.json +5 -6
@@ -1 +1 @@
1
- {"version":3,"file":"StageNodeHeader.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/StageNodeHeader.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAoMrE,eAAO,MAAM,eAAe,wGAnLzB;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,6CA6KwD,CAAC"}
1
+ {"version":3,"file":"StageNodeHeader.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/StageNodeHeader.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAgB,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAsJnF,eAAO,MAAM,eAAe,wGAxHzB;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,6CAkHwD,CAAC"}
@@ -1,15 +1,27 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { Icon, Padding, Spacing } from "@uipath/apollo-core";
3
- import { Column, Row } from "../../layouts/index.js";
4
- import { Button, cn } from "@uipath/apollo-wind";
5
- import { memo, useCallback, useEffect, useRef, useState } from "react";
3
+ import { Row } from "../../layouts/index.js";
4
+ import { Button } from "@uipath/apollo-wind";
5
+ import { memo } from "react";
6
6
  import { EntryConditionIcon, ExitConditionIcon, ReturnToOriginIcon } from "../../icons/index.js";
7
7
  import { CanvasIcon } from "../../utils/icon-registry.js";
8
8
  import { CanvasTooltip } from "../CanvasTooltip.js";
9
9
  import { ExecutionStatusIcon } from "../ExecutionStatusIcon/index.js";
10
10
  import { getExecutionStatusColor } from "../ExecutionStatusIcon/ExecutionStatusIcon.js";
11
- import { StageChip, StageHeader, StageHeaderChipsRow, StageTitleContainer, StageTitleInput } from "./StageNode.styles.js";
11
+ import { StageChip, StageHeader } from "./StageNode.styles.js";
12
12
  import { StageHeaderChipType } from "./StageNode.types.js";
13
+ import { StageTitleInput } from "./StageTitleInput.js";
14
+ import { useStageNodeLabels } from "./useStageNodeLabels.js";
15
+ const SLA_ICON_CONFIG = {
16
+ warning: {
17
+ icon: 'triangle-alert',
18
+ iconColor: 'var(--canvas-warning-icon)'
19
+ },
20
+ error: {
21
+ icon: 'circle-alert',
22
+ iconColor: 'var(--canvas-error-icon)'
23
+ }
24
+ };
13
25
  const CHIP_ICONS = {
14
26
  [StageHeaderChipType.Entry]: /*#__PURE__*/ jsx(EntryConditionIcon, {
15
27
  w: Icon.IconXs,
@@ -33,183 +45,127 @@ const CHIP_ICONS = {
33
45
  })
34
46
  };
35
47
  const StageNodeHeaderInner = ({ props, isReadOnly, isException, status, handleTaskAddClick })=>{
36
- const { id, stageDetails, execution, addTaskLabel = 'Add task', onTaskAdd, onAddTaskFromToolbox, onStageTitleChange, loadingTaskIds } = props;
48
+ const labels = useStageNodeLabels();
49
+ const { id, stageDetails, execution, onTaskAdd, onAddTaskFromToolbox, onStageTitleChange, loadingTaskIds } = props;
37
50
  const isAddTaskDisabled = (loadingTaskIds?.size ?? 0) > 0;
38
51
  const icon = stageDetails?.icon;
39
52
  const statusLabel = execution?.stageStatus?.label;
40
53
  const stageDuration = execution?.stageStatus?.duration;
41
- const isStageTitleEditable = !!onStageTitleChange && !isReadOnly;
42
- const [isStageTitleEditing, setIsStageTitleEditing] = useState(false);
43
- const stageTitleRef = useRef(null);
44
- const [label, setLabel] = useState(props.stageDetails.label);
45
- useEffect(()=>{
46
- setLabel(props.stageDetails.label);
47
- }, [
48
- props.stageDetails.label
49
- ]);
50
- const handleStageTitleChange = useCallback((e)=>{
51
- setIsStageTitleEditing(true);
52
- setLabel(e.target.value);
53
- }, []);
54
- const handleStageTitleClickToSave = useCallback((e)=>{
55
- if (isStageTitleEditing && !stageTitleRef.current?.contains(e.target)) {
56
- setIsStageTitleEditing(false);
57
- if (onStageTitleChange) {
58
- if ('' === label.trim()) setLabel('Untitled Stage');
59
- onStageTitleChange(label);
60
- }
61
- }
62
- }, [
63
- isStageTitleEditing,
64
- onStageTitleChange,
65
- label
66
- ]);
67
- useEffect(()=>{
68
- if (isStageTitleEditing) document.addEventListener('click', handleStageTitleClickToSave);
69
- return ()=>{
70
- document.removeEventListener('click', handleStageTitleClickToSave);
71
- };
72
- }, [
73
- handleStageTitleClickToSave,
74
- isStageTitleEditing
75
- ]);
76
- const handleStageTitleBlurToSave = useCallback(()=>{
77
- if (isStageTitleEditing) {
78
- setIsStageTitleEditing(false);
79
- if (onStageTitleChange) {
80
- if ('' === label.trim()) setLabel('Untitled Stage');
81
- onStageTitleChange(label);
82
- }
83
- }
84
- }, [
85
- isStageTitleEditing,
86
- onStageTitleChange,
87
- label
88
- ]);
89
- const handleStageTitleKeyDown = useCallback((e)=>{
90
- if ('Enter' === e.key) {
91
- setIsStageTitleEditing(false);
92
- if (onStageTitleChange) onStageTitleChange(label);
93
- }
94
- if ('Escape' !== e.key) e.stopPropagation();
95
- }, [
96
- onStageTitleChange,
97
- label
98
- ]);
54
+ const slaText = execution?.stageStatus?.slaText;
55
+ const slaIcon = execution?.stageStatus?.slaIcon;
56
+ const slaIndicator = slaIcon ? SLA_ICON_CONFIG[slaIcon] : void 0;
99
57
  return /*#__PURE__*/ jsxs(StageHeader, {
100
58
  isException: isException,
101
59
  "data-testid": `stage-header-${id}`,
102
60
  children: [
103
- /*#__PURE__*/ jsxs(Row, {
104
- gap: Spacing.SpacingMicro,
105
- align: "center",
106
- flex: 1,
107
- minW: 0,
61
+ /*#__PURE__*/ jsxs("div", {
62
+ className: "flex items-start justify-between gap-1",
108
63
  children: [
109
- icon,
110
- /*#__PURE__*/ jsxs(Column, {
111
- py: 2,
64
+ /*#__PURE__*/ jsxs(Row, {
65
+ gap: Spacing.SpacingMicro,
66
+ align: "center",
112
67
  flex: 1,
113
68
  minW: 0,
114
69
  children: [
115
- /*#__PURE__*/ jsx("span", {
116
- className: cn('text-sm', !isStageTitleEditing && 'font-bold'),
117
- children: /*#__PURE__*/ jsx(CanvasTooltip, {
118
- content: label,
119
- placement: "top",
120
- delay: true,
121
- children: /*#__PURE__*/ jsx(StageTitleContainer, {
122
- isEditing: isStageTitleEditing,
123
- children: /*#__PURE__*/ jsx(StageTitleInput, {
124
- name: "Stage Title",
125
- isStageTitleEditable: isStageTitleEditable,
126
- value: label,
127
- ref: stageTitleRef,
128
- isEditing: isStageTitleEditing,
129
- ...onStageTitleChange && {
130
- onFocus: ()=>setIsStageTitleEditing(true),
131
- onInput: handleStageTitleChange,
132
- onKeyDown: handleStageTitleKeyDown,
133
- onBlur: handleStageTitleBlurToSave
134
- },
135
- readOnly: !isStageTitleEditable
136
- })
70
+ icon,
71
+ /*#__PURE__*/ jsx(StageTitleInput, {
72
+ stageId: id,
73
+ label: stageDetails.label,
74
+ onChange: isReadOnly ? void 0 : onStageTitleChange,
75
+ className: "flex-1 min-w-0"
76
+ })
77
+ ]
78
+ }),
79
+ /*#__PURE__*/ jsxs(Row, {
80
+ gap: Spacing.SpacingMicro,
81
+ align: "start",
82
+ py: Padding.PadS,
83
+ children: [
84
+ status && /*#__PURE__*/ jsx(CanvasTooltip, {
85
+ content: statusLabel,
86
+ placement: "top",
87
+ children: /*#__PURE__*/ jsx(Button, {
88
+ variant: "ghost",
89
+ size: "icon",
90
+ className: "h-6 w-6",
91
+ "aria-label": statusLabel,
92
+ children: 'NotExecuted' === status ? /*#__PURE__*/ jsx(CanvasIcon, {
93
+ icon: "hourglass",
94
+ size: 20,
95
+ color: getExecutionStatusColor('NotExecuted')
96
+ }) : /*#__PURE__*/ jsx(ExecutionStatusIcon, {
97
+ status: status,
98
+ size: 20
137
99
  })
138
100
  })
139
101
  }),
140
- stageDuration && /*#__PURE__*/ jsx("span", {
141
- className: "text-xs text-foreground-muted",
142
- children: stageDuration
143
- }),
144
- stageDetails.headerChips && stageDetails.headerChips.length > 0 && /*#__PURE__*/ jsx(StageHeaderChipsRow, {
145
- children: stageDetails.headerChips.map((chip)=>{
146
- const button = /*#__PURE__*/ jsxs(StageChip, {
147
- type: "button",
148
- "aria-label": 'string' == typeof chip.tooltip ? chip.tooltip : chip.type,
149
- onClick: (e)=>{
150
- e.stopPropagation();
151
- chip.onClick?.();
152
- },
153
- children: [
154
- CHIP_ICONS[chip.type],
155
- void 0 !== chip.count && /*#__PURE__*/ jsx("span", {
156
- className: "text-xs",
157
- children: chip.count
158
- })
159
- ]
160
- }, chip.type);
161
- if (chip.tooltip) return /*#__PURE__*/ jsx(CanvasTooltip, {
162
- placement: "bottom",
163
- content: chip.tooltip,
164
- children: button
165
- }, chip.type);
166
- return button;
102
+ (onTaskAdd || onAddTaskFromToolbox) && !isReadOnly && /*#__PURE__*/ jsx(CanvasTooltip, {
103
+ content: labels.addTask,
104
+ placement: "top",
105
+ children: /*#__PURE__*/ jsx(Button, {
106
+ variant: "ghost",
107
+ size: "icon",
108
+ className: "h-6 w-6",
109
+ onClick: handleTaskAddClick,
110
+ "aria-label": labels.addTask,
111
+ disabled: isAddTaskDisabled,
112
+ children: /*#__PURE__*/ jsx(CanvasIcon, {
113
+ icon: "plus",
114
+ size: 20
115
+ })
167
116
  })
168
117
  })
169
118
  ]
170
119
  })
171
120
  ]
172
121
  }),
173
- /*#__PURE__*/ jsxs(Row, {
174
- gap: Spacing.SpacingMicro,
175
- align: "start",
176
- py: Padding.PadS,
122
+ (slaText || stageDetails.headerChips && stageDetails.headerChips.length > 0) && /*#__PURE__*/ jsxs("div", {
123
+ className: "mt-1 flex flex-wrap items-center justify-between gap-2",
177
124
  children: [
178
- status && /*#__PURE__*/ jsx(CanvasTooltip, {
179
- content: statusLabel,
180
- placement: "top",
181
- children: /*#__PURE__*/ jsx(Button, {
182
- variant: "ghost",
183
- size: "icon",
184
- className: "h-6 w-6",
185
- "aria-label": statusLabel,
186
- children: 'NotExecuted' === status ? /*#__PURE__*/ jsx(CanvasIcon, {
187
- icon: "hourglass",
188
- size: 20,
189
- color: getExecutionStatusColor('NotExecuted')
190
- }) : /*#__PURE__*/ jsx(ExecutionStatusIcon, {
191
- status: status,
192
- size: 20
193
- })
194
- })
125
+ slaText && /*#__PURE__*/ jsxs("span", {
126
+ className: "inline-flex items-center gap-1 text-xs text-foreground-muted",
127
+ "data-testid": `stage-sla-${id}`,
128
+ "data-sla-icon": slaIcon,
129
+ children: [
130
+ slaIndicator && /*#__PURE__*/ jsx(CanvasIcon, {
131
+ icon: slaIndicator.icon,
132
+ size: 16,
133
+ color: slaIndicator.iconColor
134
+ }),
135
+ slaText
136
+ ]
195
137
  }),
196
- (onTaskAdd || onAddTaskFromToolbox) && !isReadOnly && /*#__PURE__*/ jsx(CanvasTooltip, {
197
- content: addTaskLabel,
198
- placement: "top",
199
- children: /*#__PURE__*/ jsx(Button, {
200
- variant: "ghost",
201
- size: "icon",
202
- className: "h-6 w-6",
203
- onClick: handleTaskAddClick,
204
- "aria-label": addTaskLabel,
205
- disabled: isAddTaskDisabled,
206
- children: /*#__PURE__*/ jsx(CanvasIcon, {
207
- icon: "plus",
208
- size: 20
209
- })
138
+ stageDetails.headerChips && stageDetails.headerChips.length > 0 && /*#__PURE__*/ jsx("div", {
139
+ className: "flex flex-wrap items-center gap-1",
140
+ children: stageDetails.headerChips.map((chip)=>{
141
+ const button = /*#__PURE__*/ jsxs(StageChip, {
142
+ type: "button",
143
+ "aria-label": 'string' == typeof chip.tooltip ? chip.tooltip : chip.type,
144
+ onClick: (e)=>{
145
+ e.stopPropagation();
146
+ chip.onClick?.();
147
+ },
148
+ children: [
149
+ CHIP_ICONS[chip.type],
150
+ void 0 !== chip.count && /*#__PURE__*/ jsx("span", {
151
+ className: "text-xs",
152
+ children: chip.count
153
+ })
154
+ ]
155
+ }, chip.type);
156
+ if (chip.tooltip) return /*#__PURE__*/ jsx(CanvasTooltip, {
157
+ placement: "bottom",
158
+ content: chip.tooltip,
159
+ children: button
160
+ }, chip.type);
161
+ return button;
210
162
  })
211
163
  })
212
164
  ]
165
+ }),
166
+ stageDuration && /*#__PURE__*/ jsx("span", {
167
+ className: "mt-1 text-xs text-foreground-muted",
168
+ children: stageDuration
213
169
  })
214
170
  ]
215
171
  });
@@ -38,8 +38,10 @@ const useStageTaskDragHandler_cjs_namespaceObject = require("./hooks/useStageTas
38
38
  const external_StageNode_styles_cjs_namespaceObject = require("./StageNode.styles.cjs");
39
39
  const external_StageNodeTaskUtilities_cjs_namespaceObject = require("./StageNodeTaskUtilities.cjs");
40
40
  const external_StageTaskDragOverlay_cjs_namespaceObject = require("./StageTaskDragOverlay.cjs");
41
+ const external_useStageNodeLabels_cjs_namespaceObject = require("./useStageNodeLabels.cjs");
41
42
  const StageNodeSequentialTaskGroups = ({ props, sequentialTaskGroups, sequentialTasks, allTasks, isReadOnly, selectedTaskId, taskWidthStyle, hasContextMenu, handleTaskClick, handleReorderSequentialTasks, generateReplaceTaskMenuItemForTask })=>{
42
43
  const { execution, onTaskGroupModification, onTaskReorder, hideParallelOptions, loadingTaskIds } = props;
44
+ const labels = (0, external_useStageNodeLabels_cjs_namespaceObject.useStageNodeLabels)();
43
45
  const sequentialTaskIds = (0, external_react_namespaceObject.useMemo)(()=>sequentialTasks.map(({ task })=>task.id), [
44
46
  sequentialTasks
45
47
  ]);
@@ -88,7 +90,8 @@ const StageNodeSequentialTaskGroups = ({ props, sequentialTaskGroups, sequential
88
90
  isAboveParallel: (sequentialTaskGroups[groupIndex - 1]?.length ?? 0) > 1,
89
91
  isBelowParallel: (sequentialTaskGroups[groupIndex + 1]?.length ?? 0) > 1,
90
92
  reGroupTaskFunction: handleTaskRegroup,
91
- hideParallelOptions
93
+ hideParallelOptions,
94
+ labels: labels.contextMenu
92
95
  });
93
96
  return [
94
97
  ...items,
@@ -102,7 +105,8 @@ const StageNodeSequentialTaskGroups = ({ props, sequentialTaskGroups, sequential
102
105
  hideParallelOptions,
103
106
  handleTaskRegroup,
104
107
  generateReplaceTaskMenuItemForTask,
105
- allTasks
108
+ allTasks,
109
+ labels.contextMenu
106
110
  ]);
107
111
  const sensors = (0, core_namespaceObject.useSensors)((0, core_namespaceObject.useSensor)(core_namespaceObject.PointerSensor, {
108
112
  activationConstraint: {
@@ -138,7 +142,7 @@ const StageNodeSequentialTaskGroups = ({ props, sequentialTaskGroups, sequential
138
142
  isParallel && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_StageNode_styles_cjs_namespaceObject.StageParallelLabel, {
139
143
  children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("span", {
140
144
  className: "text-xs",
141
- children: "Parallel"
145
+ children: labels.parallel
142
146
  })
143
147
  }),
144
148
  taskGroup.map((task, taskIndex)=>{
@@ -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;AASvD,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIvF,eAAO,MAAM,6BAA6B,GAAI,4MAY3C;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,cAAc,EAAE,OAAO,CAAC;IACxB,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,mDAiLA,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;AASvD,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAKvF,eAAO,MAAM,6BAA6B,GAAI,4MAY3C;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,cAAc,EAAE,OAAO,CAAC;IACxB,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,mDAoLA,CAAC"}
@@ -10,8 +10,10 @@ import { useStageTaskDragHandler } from "./hooks/useStageTaskDragHandler.js";
10
10
  import { StageParallelBracket, StageParallelLabel, StageTaskGroupContainer, StageTaskList } from "./StageNode.styles.js";
11
11
  import { getContextMenuItems, getDivider } from "./StageNodeTaskUtilities.js";
12
12
  import { StageTaskDragOverlay } from "./StageTaskDragOverlay.js";
13
+ import { useStageNodeLabels } from "./useStageNodeLabels.js";
13
14
  const StageNodeSequentialTaskGroups = ({ props, sequentialTaskGroups, sequentialTasks, allTasks, isReadOnly, selectedTaskId, taskWidthStyle, hasContextMenu, handleTaskClick, handleReorderSequentialTasks, generateReplaceTaskMenuItemForTask })=>{
14
15
  const { execution, onTaskGroupModification, onTaskReorder, hideParallelOptions, loadingTaskIds } = props;
16
+ const labels = useStageNodeLabels();
15
17
  const sequentialTaskIds = useMemo(()=>sequentialTasks.map(({ task })=>task.id), [
16
18
  sequentialTasks
17
19
  ]);
@@ -60,7 +62,8 @@ const StageNodeSequentialTaskGroups = ({ props, sequentialTaskGroups, sequential
60
62
  isAboveParallel: (sequentialTaskGroups[groupIndex - 1]?.length ?? 0) > 1,
61
63
  isBelowParallel: (sequentialTaskGroups[groupIndex + 1]?.length ?? 0) > 1,
62
64
  reGroupTaskFunction: handleTaskRegroup,
63
- hideParallelOptions
65
+ hideParallelOptions,
66
+ labels: labels.contextMenu
64
67
  });
65
68
  return [
66
69
  ...items,
@@ -74,7 +77,8 @@ const StageNodeSequentialTaskGroups = ({ props, sequentialTaskGroups, sequential
74
77
  hideParallelOptions,
75
78
  handleTaskRegroup,
76
79
  generateReplaceTaskMenuItemForTask,
77
- allTasks
80
+ allTasks,
81
+ labels.contextMenu
78
82
  ]);
79
83
  const sensors = useSensors(useSensor(PointerSensor, {
80
84
  activationConstraint: {
@@ -110,7 +114,7 @@ const StageNodeSequentialTaskGroups = ({ props, sequentialTaskGroups, sequential
110
114
  isParallel && /*#__PURE__*/ jsx(StageParallelLabel, {
111
115
  children: /*#__PURE__*/ jsx("span", {
112
116
  className: "text-xs",
113
- children: "Parallel"
117
+ children: labels.parallel
114
118
  })
115
119
  }),
116
120
  taskGroup.map((task, taskIndex)=>{
@@ -30,18 +30,18 @@ __webpack_require__.d(__webpack_exports__, {
30
30
  getContextMenuItems: ()=>getContextMenuItems
31
31
  });
32
32
  const GroupModificationUtils_cjs_namespaceObject = require("../../utils/GroupModificationUtils.cjs");
33
- const getContextMenuItems = ({ isParallelGroup, groupIndex, tasksLength, groupIndexInAllTasks, taskIndexInAllTasks, isAboveParallel, isBelowParallel, reGroupTaskFunction, hideParallelOptions = false })=>{
33
+ const getContextMenuItems = ({ isParallelGroup, groupIndex, tasksLength, groupIndexInAllTasks, taskIndexInAllTasks, isAboveParallel, isBelowParallel, reGroupTaskFunction, hideParallelOptions = false, labels })=>{
34
34
  const CONTEXT_MENU_ITEMS = {
35
- MOVE_UP: getMenuItem('move-up', 'Move up', ()=>reGroupTaskFunction(GroupModificationUtils_cjs_namespaceObject.GroupModificationType.TASK_GROUP_UP, groupIndexInAllTasks, taskIndexInAllTasks)),
36
- MOVE_DOWN: getMenuItem('move-down', 'Move down', ()=>reGroupTaskFunction(GroupModificationUtils_cjs_namespaceObject.GroupModificationType.TASK_GROUP_DOWN, groupIndexInAllTasks, taskIndexInAllTasks)),
37
- UNGROUP_ALL: getMenuItem('ungroup', 'Ungroup parallel tasks', ()=>reGroupTaskFunction(GroupModificationUtils_cjs_namespaceObject.GroupModificationType.UNGROUP_ALL_TASKS, groupIndexInAllTasks, taskIndexInAllTasks)),
38
- SPLIT_TASK: getMenuItem('split', 'Remove from parallel group', ()=>reGroupTaskFunction(GroupModificationUtils_cjs_namespaceObject.GroupModificationType.SPLIT_GROUP, groupIndexInAllTasks, taskIndexInAllTasks)),
39
- REMOVE_GROUP: getMenuItem('remove-group', 'Remove group from stage', ()=>reGroupTaskFunction(GroupModificationUtils_cjs_namespaceObject.GroupModificationType.REMOVE_GROUP, groupIndexInAllTasks, taskIndexInAllTasks)),
40
- REMOVE_TASK: getMenuItem('remove-task', 'Delete task', ()=>reGroupTaskFunction(GroupModificationUtils_cjs_namespaceObject.GroupModificationType.REMOVE_TASK, groupIndexInAllTasks, taskIndexInAllTasks)),
41
- CREATE_PARALLEL_GROUP_ABOVE: getMenuItem('group-with-up', 'Create parallel group with task above', ()=>reGroupTaskFunction(GroupModificationUtils_cjs_namespaceObject.GroupModificationType.MERGE_GROUP_UP, groupIndexInAllTasks, taskIndexInAllTasks)),
42
- CREATE_PARALLEL_GROUP_BELOW: getMenuItem('group-with-down', 'Create parallel group with task below', ()=>reGroupTaskFunction(GroupModificationUtils_cjs_namespaceObject.GroupModificationType.MERGE_GROUP_DOWN, groupIndexInAllTasks, taskIndexInAllTasks)),
43
- ADD_TO_PARALLEL_GROUP_ABOVE: getMenuItem('add-to-group-with-up', 'Add task to parallel group above', ()=>reGroupTaskFunction(GroupModificationUtils_cjs_namespaceObject.GroupModificationType.MERGE_GROUP_UP, groupIndexInAllTasks, taskIndexInAllTasks)),
44
- ADD_TO_PARALLEL_GROUP_BELOW: getMenuItem('add-to-group-with-down', 'Add task to parallel group below', ()=>reGroupTaskFunction(GroupModificationUtils_cjs_namespaceObject.GroupModificationType.MERGE_GROUP_DOWN, groupIndexInAllTasks, taskIndexInAllTasks)),
35
+ MOVE_UP: getMenuItem('move-up', labels.moveUp, ()=>reGroupTaskFunction(GroupModificationUtils_cjs_namespaceObject.GroupModificationType.TASK_GROUP_UP, groupIndexInAllTasks, taskIndexInAllTasks)),
36
+ MOVE_DOWN: getMenuItem('move-down', labels.moveDown, ()=>reGroupTaskFunction(GroupModificationUtils_cjs_namespaceObject.GroupModificationType.TASK_GROUP_DOWN, groupIndexInAllTasks, taskIndexInAllTasks)),
37
+ UNGROUP_ALL: getMenuItem('ungroup', labels.ungroupParallelTasks, ()=>reGroupTaskFunction(GroupModificationUtils_cjs_namespaceObject.GroupModificationType.UNGROUP_ALL_TASKS, groupIndexInAllTasks, taskIndexInAllTasks)),
38
+ SPLIT_TASK: getMenuItem('split', labels.removeFromParallelGroup, ()=>reGroupTaskFunction(GroupModificationUtils_cjs_namespaceObject.GroupModificationType.SPLIT_GROUP, groupIndexInAllTasks, taskIndexInAllTasks)),
39
+ REMOVE_GROUP: getMenuItem('remove-group', labels.removeGroupFromStage, ()=>reGroupTaskFunction(GroupModificationUtils_cjs_namespaceObject.GroupModificationType.REMOVE_GROUP, groupIndexInAllTasks, taskIndexInAllTasks)),
40
+ REMOVE_TASK: getMenuItem('remove-task', labels.deleteTask, ()=>reGroupTaskFunction(GroupModificationUtils_cjs_namespaceObject.GroupModificationType.REMOVE_TASK, groupIndexInAllTasks, taskIndexInAllTasks)),
41
+ CREATE_PARALLEL_GROUP_ABOVE: getMenuItem('group-with-up', labels.createParallelGroupWithTaskAbove, ()=>reGroupTaskFunction(GroupModificationUtils_cjs_namespaceObject.GroupModificationType.MERGE_GROUP_UP, groupIndexInAllTasks, taskIndexInAllTasks)),
42
+ CREATE_PARALLEL_GROUP_BELOW: getMenuItem('group-with-down', labels.createParallelGroupWithTaskBelow, ()=>reGroupTaskFunction(GroupModificationUtils_cjs_namespaceObject.GroupModificationType.MERGE_GROUP_DOWN, groupIndexInAllTasks, taskIndexInAllTasks)),
43
+ ADD_TO_PARALLEL_GROUP_ABOVE: getMenuItem('add-to-group-with-up', labels.addTaskToParallelGroupAbove, ()=>reGroupTaskFunction(GroupModificationUtils_cjs_namespaceObject.GroupModificationType.MERGE_GROUP_UP, groupIndexInAllTasks, taskIndexInAllTasks)),
44
+ ADD_TO_PARALLEL_GROUP_BELOW: getMenuItem('add-to-group-with-down', labels.addTaskToParallelGroupBelow, ()=>reGroupTaskFunction(GroupModificationUtils_cjs_namespaceObject.GroupModificationType.MERGE_GROUP_DOWN, groupIndexInAllTasks, taskIndexInAllTasks)),
45
45
  DIVIDER: getDivider()
46
46
  };
47
47
  const items = [];
@@ -1,7 +1,19 @@
1
1
  import type { ReactNode } from 'react';
2
2
  import { GroupModificationType } from '../../utils/GroupModificationUtils';
3
3
  import type { NodeMenuAction, NodeMenuItem } from '../NodeContextMenu';
4
- export declare const getContextMenuItems: ({ isParallelGroup, groupIndex, tasksLength, groupIndexInAllTasks, taskIndexInAllTasks, isAboveParallel, isBelowParallel, reGroupTaskFunction, hideParallelOptions, }: {
4
+ export interface StageContextMenuLabels {
5
+ moveUp: string;
6
+ moveDown: string;
7
+ ungroupParallelTasks: string;
8
+ removeFromParallelGroup: string;
9
+ removeGroupFromStage: string;
10
+ deleteTask: string;
11
+ createParallelGroupWithTaskAbove: string;
12
+ createParallelGroupWithTaskBelow: string;
13
+ addTaskToParallelGroupAbove: string;
14
+ addTaskToParallelGroupBelow: string;
15
+ }
16
+ export declare const getContextMenuItems: ({ isParallelGroup, groupIndex, tasksLength, groupIndexInAllTasks, taskIndexInAllTasks, isAboveParallel, isBelowParallel, reGroupTaskFunction, hideParallelOptions, labels, }: {
5
17
  isParallelGroup: boolean;
6
18
  groupIndex: number;
7
19
  tasksLength: number;
@@ -11,6 +23,7 @@ export declare const getContextMenuItems: ({ isParallelGroup, groupIndex, tasksL
11
23
  isBelowParallel: boolean;
12
24
  reGroupTaskFunction: (groupModificationType: GroupModificationType, groupIndex: number, taskIndex: number) => void;
13
25
  hideParallelOptions?: boolean;
26
+ labels: StageContextMenuLabels;
14
27
  }) => NodeMenuItem[];
15
28
  export declare function getMenuItem(id: string | undefined, label: string | undefined, onClick: () => void, isDisabled?: boolean): NodeMenuItem;
16
29
  export declare const getDivider: () => NodeMenuItem;
@@ -1 +1 @@
1
- {"version":3,"file":"StageNodeTaskUtilities.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/StageNodeTaskUtilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIvE,eAAO,MAAM,mBAAmB,GAAI,sKAUjC;IACD,eAAe,EAAE,OAAO,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,mBAAmB,EAAE,CACnB,qBAAqB,EAAE,qBAAqB,EAC5C,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,KACd,IAAI,CAAC;IACV,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,KAAG,YAAY,EA+Hf,CAAC;AAEF,wBAAgB,WAAW,CACzB,EAAE,EAAE,MAAM,YAAO,EACjB,KAAK,EAAE,MAAM,YAAU,EACvB,OAAO,EAAE,MAAM,IAAI,EACnB,UAAU,UAAQ,GACjB,YAAY,CAEd;AAED,eAAO,MAAM,UAAU,QAAO,YAI7B,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,GAAG,WAAW,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAMD,eAAO,MAAM,kBAAkB,GAC7B,WAAW,YAAY,EAAE,GAAG,SAAS,EACrC,aAAa,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,KAC1C,mBAAmB,EAwBrB,CAAC"}
1
+ {"version":3,"file":"StageNodeTaskUtilities.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/StageNodeTaskUtilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvE,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,uBAAuB,EAAE,MAAM,CAAC;IAChC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,gCAAgC,EAAE,MAAM,CAAC;IACzC,gCAAgC,EAAE,MAAM,CAAC;IACzC,2BAA2B,EAAE,MAAM,CAAC;IACpC,2BAA2B,EAAE,MAAM,CAAC;CACrC;AAED,eAAO,MAAM,mBAAmB,GAAI,8KAWjC;IACD,eAAe,EAAE,OAAO,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,mBAAmB,EAAE,CACnB,qBAAqB,EAAE,qBAAqB,EAC5C,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,KACd,IAAI,CAAC;IACV,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,MAAM,EAAE,sBAAsB,CAAC;CAChC,KAAG,YAAY,EA+Hf,CAAC;AAEF,wBAAgB,WAAW,CACzB,EAAE,EAAE,MAAM,YAAO,EACjB,KAAK,EAAE,MAAM,YAAU,EACvB,OAAO,EAAE,MAAM,IAAI,EACnB,UAAU,UAAQ,GACjB,YAAY,CAEd;AAED,eAAO,MAAM,UAAU,QAAO,YAI7B,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,GAAG,WAAW,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAMD,eAAO,MAAM,kBAAkB,GAC7B,WAAW,YAAY,EAAE,GAAG,SAAS,EACrC,aAAa,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,KAC1C,mBAAmB,EAwBrB,CAAC"}
@@ -1,16 +1,16 @@
1
1
  import { GroupModificationType } from "../../utils/GroupModificationUtils.js";
2
- const getContextMenuItems = ({ isParallelGroup, groupIndex, tasksLength, groupIndexInAllTasks, taskIndexInAllTasks, isAboveParallel, isBelowParallel, reGroupTaskFunction, hideParallelOptions = false })=>{
2
+ const getContextMenuItems = ({ isParallelGroup, groupIndex, tasksLength, groupIndexInAllTasks, taskIndexInAllTasks, isAboveParallel, isBelowParallel, reGroupTaskFunction, hideParallelOptions = false, labels })=>{
3
3
  const CONTEXT_MENU_ITEMS = {
4
- MOVE_UP: getMenuItem('move-up', 'Move up', ()=>reGroupTaskFunction(GroupModificationType.TASK_GROUP_UP, groupIndexInAllTasks, taskIndexInAllTasks)),
5
- MOVE_DOWN: getMenuItem('move-down', 'Move down', ()=>reGroupTaskFunction(GroupModificationType.TASK_GROUP_DOWN, groupIndexInAllTasks, taskIndexInAllTasks)),
6
- UNGROUP_ALL: getMenuItem('ungroup', 'Ungroup parallel tasks', ()=>reGroupTaskFunction(GroupModificationType.UNGROUP_ALL_TASKS, groupIndexInAllTasks, taskIndexInAllTasks)),
7
- SPLIT_TASK: getMenuItem('split', 'Remove from parallel group', ()=>reGroupTaskFunction(GroupModificationType.SPLIT_GROUP, groupIndexInAllTasks, taskIndexInAllTasks)),
8
- REMOVE_GROUP: getMenuItem('remove-group', 'Remove group from stage', ()=>reGroupTaskFunction(GroupModificationType.REMOVE_GROUP, groupIndexInAllTasks, taskIndexInAllTasks)),
9
- REMOVE_TASK: getMenuItem('remove-task', 'Delete task', ()=>reGroupTaskFunction(GroupModificationType.REMOVE_TASK, groupIndexInAllTasks, taskIndexInAllTasks)),
10
- CREATE_PARALLEL_GROUP_ABOVE: getMenuItem('group-with-up', 'Create parallel group with task above', ()=>reGroupTaskFunction(GroupModificationType.MERGE_GROUP_UP, groupIndexInAllTasks, taskIndexInAllTasks)),
11
- CREATE_PARALLEL_GROUP_BELOW: getMenuItem('group-with-down', 'Create parallel group with task below', ()=>reGroupTaskFunction(GroupModificationType.MERGE_GROUP_DOWN, groupIndexInAllTasks, taskIndexInAllTasks)),
12
- ADD_TO_PARALLEL_GROUP_ABOVE: getMenuItem('add-to-group-with-up', 'Add task to parallel group above', ()=>reGroupTaskFunction(GroupModificationType.MERGE_GROUP_UP, groupIndexInAllTasks, taskIndexInAllTasks)),
13
- ADD_TO_PARALLEL_GROUP_BELOW: getMenuItem('add-to-group-with-down', 'Add task to parallel group below', ()=>reGroupTaskFunction(GroupModificationType.MERGE_GROUP_DOWN, groupIndexInAllTasks, taskIndexInAllTasks)),
4
+ MOVE_UP: getMenuItem('move-up', labels.moveUp, ()=>reGroupTaskFunction(GroupModificationType.TASK_GROUP_UP, groupIndexInAllTasks, taskIndexInAllTasks)),
5
+ MOVE_DOWN: getMenuItem('move-down', labels.moveDown, ()=>reGroupTaskFunction(GroupModificationType.TASK_GROUP_DOWN, groupIndexInAllTasks, taskIndexInAllTasks)),
6
+ UNGROUP_ALL: getMenuItem('ungroup', labels.ungroupParallelTasks, ()=>reGroupTaskFunction(GroupModificationType.UNGROUP_ALL_TASKS, groupIndexInAllTasks, taskIndexInAllTasks)),
7
+ SPLIT_TASK: getMenuItem('split', labels.removeFromParallelGroup, ()=>reGroupTaskFunction(GroupModificationType.SPLIT_GROUP, groupIndexInAllTasks, taskIndexInAllTasks)),
8
+ REMOVE_GROUP: getMenuItem('remove-group', labels.removeGroupFromStage, ()=>reGroupTaskFunction(GroupModificationType.REMOVE_GROUP, groupIndexInAllTasks, taskIndexInAllTasks)),
9
+ REMOVE_TASK: getMenuItem('remove-task', labels.deleteTask, ()=>reGroupTaskFunction(GroupModificationType.REMOVE_TASK, groupIndexInAllTasks, taskIndexInAllTasks)),
10
+ CREATE_PARALLEL_GROUP_ABOVE: getMenuItem('group-with-up', labels.createParallelGroupWithTaskAbove, ()=>reGroupTaskFunction(GroupModificationType.MERGE_GROUP_UP, groupIndexInAllTasks, taskIndexInAllTasks)),
11
+ CREATE_PARALLEL_GROUP_BELOW: getMenuItem('group-with-down', labels.createParallelGroupWithTaskBelow, ()=>reGroupTaskFunction(GroupModificationType.MERGE_GROUP_DOWN, groupIndexInAllTasks, taskIndexInAllTasks)),
12
+ ADD_TO_PARALLEL_GROUP_ABOVE: getMenuItem('add-to-group-with-up', labels.addTaskToParallelGroupAbove, ()=>reGroupTaskFunction(GroupModificationType.MERGE_GROUP_UP, groupIndexInAllTasks, taskIndexInAllTasks)),
13
+ ADD_TO_PARALLEL_GROUP_BELOW: getMenuItem('add-to-group-with-down', labels.addTaskToParallelGroupBelow, ()=>reGroupTaskFunction(GroupModificationType.MERGE_GROUP_DOWN, groupIndexInAllTasks, taskIndexInAllTasks)),
14
14
  DIVIDER: getDivider()
15
15
  };
16
16
  const items = [];