@uipath/apollo-react 4.11.0 → 4.12.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 (54) hide show
  1. package/dist/canvas/components/StageNode/DraggableTask.cjs +3 -17
  2. package/dist/canvas/components/StageNode/DraggableTask.d.ts.map +1 -1
  3. package/dist/canvas/components/StageNode/DraggableTask.js +3 -17
  4. package/dist/canvas/components/StageNode/EventDrivenTask.cjs +80 -0
  5. package/dist/canvas/components/StageNode/EventDrivenTask.d.ts +13 -0
  6. package/dist/canvas/components/StageNode/EventDrivenTask.d.ts.map +1 -0
  7. package/dist/canvas/components/StageNode/EventDrivenTask.js +46 -0
  8. package/dist/canvas/components/StageNode/StageNode.cjs +29 -581
  9. package/dist/canvas/components/StageNode/StageNode.d.ts.map +1 -1
  10. package/dist/canvas/components/StageNode/StageNode.js +28 -580
  11. package/dist/canvas/components/StageNode/StageNode.styles.cjs +12 -12
  12. package/dist/canvas/components/StageNode/StageNode.styles.d.ts +3 -3
  13. package/dist/canvas/components/StageNode/StageNode.styles.d.ts.map +1 -1
  14. package/dist/canvas/components/StageNode/StageNode.styles.js +4 -4
  15. package/dist/canvas/components/StageNode/StageNode.types.d.ts +11 -0
  16. package/dist/canvas/components/StageNode/StageNode.types.d.ts.map +1 -1
  17. package/dist/canvas/components/StageNode/StageNodeAdhocTaskGroups.cjs +98 -0
  18. package/dist/canvas/components/StageNode/StageNodeAdhocTaskGroups.d.ts +13 -0
  19. package/dist/canvas/components/StageNode/StageNodeAdhocTaskGroups.d.ts.map +1 -0
  20. package/dist/canvas/components/StageNode/StageNodeAdhocTaskGroups.js +64 -0
  21. package/dist/canvas/components/StageNode/StageNodeAllTaskGroups.cjs +129 -0
  22. package/dist/canvas/components/StageNode/StageNodeAllTaskGroups.d.ts +12 -0
  23. package/dist/canvas/components/StageNode/StageNodeAllTaskGroups.d.ts.map +1 -0
  24. package/dist/canvas/components/StageNode/StageNodeAllTaskGroups.js +95 -0
  25. package/dist/canvas/components/StageNode/StageNodeEventDrivenTaskGroups.cjs +97 -0
  26. package/dist/canvas/components/StageNode/StageNodeEventDrivenTaskGroups.d.ts +13 -0
  27. package/dist/canvas/components/StageNode/StageNodeEventDrivenTaskGroups.d.ts.map +1 -0
  28. package/dist/canvas/components/StageNode/StageNodeEventDrivenTaskGroups.js +63 -0
  29. package/dist/canvas/components/StageNode/StageNodeHandles.cjs +119 -0
  30. package/dist/canvas/components/StageNode/StageNodeHandles.d.ts +8 -0
  31. package/dist/canvas/components/StageNode/StageNodeHandles.d.ts.map +1 -0
  32. package/dist/canvas/components/StageNode/StageNodeHandles.js +85 -0
  33. package/dist/canvas/components/StageNode/StageNodeHeader.cjs +245 -0
  34. package/dist/canvas/components/StageNode/StageNodeHeader.d.ts +9 -0
  35. package/dist/canvas/components/StageNode/StageNodeHeader.d.ts.map +1 -0
  36. package/dist/canvas/components/StageNode/StageNodeHeader.js +211 -0
  37. package/dist/canvas/components/StageNode/StageNodeSequentialTaskGroups.cjs +176 -0
  38. package/dist/canvas/components/StageNode/StageNodeSequentialTaskGroups.d.ts +16 -0
  39. package/dist/canvas/components/StageNode/StageNodeSequentialTaskGroups.d.ts.map +1 -0
  40. package/dist/canvas/components/StageNode/StageNodeSequentialTaskGroups.js +142 -0
  41. package/dist/canvas/components/StageNode/StageTaskEntryConditionIcon.cjs +57 -0
  42. package/dist/canvas/components/StageNode/StageTaskEntryConditionIcon.d.ts +5 -0
  43. package/dist/canvas/components/StageNode/StageTaskEntryConditionIcon.d.ts.map +1 -0
  44. package/dist/canvas/components/StageNode/StageTaskEntryConditionIcon.js +23 -0
  45. package/dist/canvas/components/StageNode/hooks/useStageTaskDragHandler.cjs +117 -0
  46. package/dist/canvas/components/StageNode/hooks/useStageTaskDragHandler.d.ts +18 -0
  47. package/dist/canvas/components/StageNode/hooks/useStageTaskDragHandler.d.ts.map +1 -0
  48. package/dist/canvas/components/StageNode/hooks/useStageTaskDragHandler.js +83 -0
  49. package/dist/canvas/components/StageNode/hooks/useStageTasksByGroups.cjs +87 -0
  50. package/dist/canvas/components/StageNode/hooks/useStageTasksByGroups.d.ts +22 -0
  51. package/dist/canvas/components/StageNode/hooks/useStageTasksByGroups.d.ts.map +1 -0
  52. package/dist/canvas/components/StageNode/hooks/useStageTasksByGroups.js +53 -0
  53. package/dist/canvas/styles/tailwind.canvas.css +1 -1
  54. package/package.json +2 -2
@@ -0,0 +1,97 @@
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 ("u" > 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
+ StageNodeEventDrivenTaskGroups: ()=>StageNodeEventDrivenTaskGroups
28
+ });
29
+ const jsx_runtime_namespaceObject = require("react/jsx-runtime");
30
+ const external_react_namespaceObject = require("react");
31
+ const GroupModificationUtils_cjs_namespaceObject = require("../../utils/GroupModificationUtils.cjs");
32
+ const external_EventDrivenTask_cjs_namespaceObject = require("./EventDrivenTask.cjs");
33
+ const external_StageNode_styles_cjs_namespaceObject = require("./StageNode.styles.cjs");
34
+ const external_StageNodeTaskUtilities_cjs_namespaceObject = require("./StageNodeTaskUtilities.cjs");
35
+ const StageNodeEventDrivenTaskGroupsInner = ({ props, eventDrivenTasks, isReadOnly, selectedTaskId, taskStateReference, marginTop, handleTaskClick, setIsReplacingTask })=>{
36
+ const { execution, onTaskClick, onTaskGroupModification, onReplaceTaskFromToolbox, loadingTaskIds } = props;
37
+ const getEventDrivenContextMenuItems = (0, external_react_namespaceObject.useCallback)((groupIndex, taskIndex, taskId)=>{
38
+ const items = [];
39
+ if (onReplaceTaskFromToolbox) items.push((0, external_StageNodeTaskUtilities_cjs_namespaceObject.getMenuItem)('replace-task', 'Replace task', ()=>{
40
+ taskStateReference.current = {
41
+ isParallel: false,
42
+ groupIndex,
43
+ taskIndex
44
+ };
45
+ onTaskClick?.(taskId);
46
+ setIsReplacingTask(true);
47
+ }));
48
+ if (onTaskGroupModification) {
49
+ if (items.length > 0) items.push((0, external_StageNodeTaskUtilities_cjs_namespaceObject.getDivider)());
50
+ items.push((0, external_StageNodeTaskUtilities_cjs_namespaceObject.getMenuItem)('remove-task', 'Delete task', ()=>onTaskGroupModification(GroupModificationUtils_cjs_namespaceObject.GroupModificationType.REMOVE_TASK, groupIndex, taskIndex)));
51
+ }
52
+ return items;
53
+ }, [
54
+ onReplaceTaskFromToolbox,
55
+ onTaskClick,
56
+ onTaskGroupModification,
57
+ setIsReplacingTask,
58
+ taskStateReference
59
+ ]);
60
+ if (0 === eventDrivenTasks.length) return null;
61
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(external_StageNode_styles_cjs_namespaceObject.StageAdditionalTasksSection, {
62
+ style: {
63
+ marginTop
64
+ },
65
+ children: [
66
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_StageNode_styles_cjs_namespaceObject.StageAdditionalTasksHeaderSection, {
67
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("span", {
68
+ className: "text-xs font-bold text-foreground-muted",
69
+ children: "Event-driven tasks"
70
+ })
71
+ }),
72
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_StageNode_styles_cjs_namespaceObject.StageTaskList, {
73
+ children: eventDrivenTasks.map(({ task, groupIndex, taskIndex })=>{
74
+ const taskExecution = execution?.taskStatus?.[task.id];
75
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_EventDrivenTask_cjs_namespaceObject.EventDrivenTaskItem, {
76
+ task: task,
77
+ taskExecution: taskExecution,
78
+ isSelected: selectedTaskId === task.id,
79
+ onTaskClick: handleTaskClick,
80
+ isTaskLoading: loadingTaskIds?.has(task.id),
81
+ ...(onTaskGroupModification || onReplaceTaskFromToolbox) && !isReadOnly && {
82
+ getContextMenuItems: ()=>getEventDrivenContextMenuItems(groupIndex, taskIndex, task.id)
83
+ }
84
+ }, task.id);
85
+ })
86
+ })
87
+ ]
88
+ });
89
+ };
90
+ const StageNodeEventDrivenTaskGroups = /*#__PURE__*/ (0, external_react_namespaceObject.memo)(StageNodeEventDrivenTaskGroupsInner);
91
+ exports.StageNodeEventDrivenTaskGroups = __webpack_exports__.StageNodeEventDrivenTaskGroups;
92
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
93
+ "StageNodeEventDrivenTaskGroups"
94
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
95
+ Object.defineProperty(exports, '__esModule', {
96
+ value: true
97
+ });
@@ -0,0 +1,13 @@
1
+ import { RefObject } from 'react';
2
+ import type { StageNodeProps, StageTaskGroup, TaskStateReference } from './StageNode.types';
3
+ export declare const StageNodeEventDrivenTaskGroups: import("react").MemoExoticComponent<({ props, eventDrivenTasks, isReadOnly, selectedTaskId, taskStateReference, marginTop, handleTaskClick, setIsReplacingTask, }: {
4
+ props: StageNodeProps;
5
+ eventDrivenTasks: StageTaskGroup[];
6
+ isReadOnly: boolean;
7
+ selectedTaskId?: string;
8
+ taskStateReference: RefObject<TaskStateReference>;
9
+ marginTop: string;
10
+ handleTaskClick: (e: React.MouseEvent, taskElementId: string) => void;
11
+ setIsReplacingTask: (isReplacingTask: boolean) => void;
12
+ }) => import("react/jsx-runtime").JSX.Element | null>;
13
+ //# sourceMappingURL=StageNodeEventDrivenTaskGroups.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StageNodeEventDrivenTaskGroups.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/StageNodeEventDrivenTaskGroups.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAQ,SAAS,EAAe,MAAM,OAAO,CAAC;AASrD,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAsG5F,eAAO,MAAM,8BAA8B,qKA1FxC;IACD,KAAK,EAAE,cAAc,CAAC;IACtB,gBAAgB,EAAE,cAAc,EAAE,CAAC;IACnC,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,SAAS,CAAC,kBAAkB,CAAC,CAAC;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,EAAE,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IACtE,kBAAkB,EAAE,CAAC,eAAe,EAAE,OAAO,KAAK,IAAI,CAAC;CACxD,oDAiFsF,CAAC"}
@@ -0,0 +1,63 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { memo, useCallback } from "react";
3
+ import { GroupModificationType } from "../../utils/GroupModificationUtils.js";
4
+ import { EventDrivenTaskItem } from "./EventDrivenTask.js";
5
+ import { StageAdditionalTasksHeaderSection, StageAdditionalTasksSection, StageTaskList } from "./StageNode.styles.js";
6
+ import { getDivider, getMenuItem } from "./StageNodeTaskUtilities.js";
7
+ const StageNodeEventDrivenTaskGroupsInner = ({ props, eventDrivenTasks, isReadOnly, selectedTaskId, taskStateReference, marginTop, handleTaskClick, setIsReplacingTask })=>{
8
+ const { execution, onTaskClick, onTaskGroupModification, onReplaceTaskFromToolbox, loadingTaskIds } = props;
9
+ const getEventDrivenContextMenuItems = useCallback((groupIndex, taskIndex, taskId)=>{
10
+ const items = [];
11
+ if (onReplaceTaskFromToolbox) items.push(getMenuItem('replace-task', 'Replace task', ()=>{
12
+ taskStateReference.current = {
13
+ isParallel: false,
14
+ groupIndex,
15
+ taskIndex
16
+ };
17
+ onTaskClick?.(taskId);
18
+ setIsReplacingTask(true);
19
+ }));
20
+ if (onTaskGroupModification) {
21
+ if (items.length > 0) items.push(getDivider());
22
+ items.push(getMenuItem('remove-task', 'Delete task', ()=>onTaskGroupModification(GroupModificationType.REMOVE_TASK, groupIndex, taskIndex)));
23
+ }
24
+ return items;
25
+ }, [
26
+ onReplaceTaskFromToolbox,
27
+ onTaskClick,
28
+ onTaskGroupModification,
29
+ setIsReplacingTask,
30
+ taskStateReference
31
+ ]);
32
+ if (0 === eventDrivenTasks.length) return null;
33
+ return /*#__PURE__*/ jsxs(StageAdditionalTasksSection, {
34
+ style: {
35
+ marginTop
36
+ },
37
+ children: [
38
+ /*#__PURE__*/ jsx(StageAdditionalTasksHeaderSection, {
39
+ children: /*#__PURE__*/ jsx("span", {
40
+ className: "text-xs font-bold text-foreground-muted",
41
+ children: "Event-driven tasks"
42
+ })
43
+ }),
44
+ /*#__PURE__*/ jsx(StageTaskList, {
45
+ children: eventDrivenTasks.map(({ task, groupIndex, taskIndex })=>{
46
+ const taskExecution = execution?.taskStatus?.[task.id];
47
+ return /*#__PURE__*/ jsx(EventDrivenTaskItem, {
48
+ task: task,
49
+ taskExecution: taskExecution,
50
+ isSelected: selectedTaskId === task.id,
51
+ onTaskClick: handleTaskClick,
52
+ isTaskLoading: loadingTaskIds?.has(task.id),
53
+ ...(onTaskGroupModification || onReplaceTaskFromToolbox) && !isReadOnly && {
54
+ getContextMenuItems: ()=>getEventDrivenContextMenuItems(groupIndex, taskIndex, task.id)
55
+ }
56
+ }, task.id);
57
+ })
58
+ })
59
+ ]
60
+ });
61
+ };
62
+ const StageNodeEventDrivenTaskGroups = /*#__PURE__*/ memo(StageNodeEventDrivenTaskGroupsInner);
63
+ export { StageNodeEventDrivenTaskGroups };
@@ -0,0 +1,119 @@
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 ("u" > 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
+ StageNodeHandles: ()=>StageNodeHandles
28
+ });
29
+ const react_cjs_namespaceObject = require("../../xyflow/react.cjs");
30
+ const external_react_namespaceObject = require("react");
31
+ const ConnectedHandlesContext_cjs_namespaceObject = require("../BaseCanvas/ConnectedHandlesContext.cjs");
32
+ const useButtonHandles_cjs_namespaceObject = require("../ButtonHandle/useButtonHandles.cjs");
33
+ const StageNodeHandlesInner = ({ id, isReadOnly, selected, isHovered, isException })=>{
34
+ const isConnecting = (0, react_cjs_namespaceObject.useStore)((state)=>!!state.connectionClickStartHandle);
35
+ const connectedHandleIds = (0, ConnectedHandlesContext_cjs_namespaceObject.useConnectedHandles)(id);
36
+ const hasConnections = connectedHandleIds.size > 0;
37
+ const shouldShowHandles = (0, external_react_namespaceObject.useMemo)(()=>!isReadOnly && (selected || isHovered || isConnecting || hasConnections), [
38
+ hasConnections,
39
+ isConnecting,
40
+ selected,
41
+ isHovered,
42
+ isReadOnly
43
+ ]);
44
+ const handleConfigurations = (0, external_react_namespaceObject.useMemo)(()=>isException ? [] : [
45
+ {
46
+ position: react_cjs_namespaceObject.Position.Left,
47
+ handles: [
48
+ {
49
+ id: `${id}____target____left`,
50
+ type: 'target',
51
+ handleType: 'input'
52
+ }
53
+ ],
54
+ visible: selected || isHovered || isConnecting,
55
+ customPositionAndOffsets: {
56
+ top: 0,
57
+ height: 64
58
+ }
59
+ },
60
+ {
61
+ position: react_cjs_namespaceObject.Position.Right,
62
+ handles: [
63
+ {
64
+ id: `${id}____source____right`,
65
+ type: 'source',
66
+ handleType: 'output'
67
+ }
68
+ ],
69
+ visible: selected || isHovered || isConnecting,
70
+ customPositionAndOffsets: {
71
+ top: 0,
72
+ height: 64
73
+ }
74
+ },
75
+ {
76
+ position: react_cjs_namespaceObject.Position.Bottom,
77
+ handles: [
78
+ {
79
+ id: `${id}____target____bottom`,
80
+ type: 'target',
81
+ handleType: 'input'
82
+ }
83
+ ],
84
+ visible: selected || isHovered || isConnecting
85
+ },
86
+ {
87
+ position: react_cjs_namespaceObject.Position.Bottom,
88
+ handles: [
89
+ {
90
+ id: `${id}____source____bottom`,
91
+ type: 'source',
92
+ handleType: 'output'
93
+ }
94
+ ],
95
+ visible: selected || isHovered || isConnecting
96
+ }
97
+ ], [
98
+ isException,
99
+ id,
100
+ selected,
101
+ isHovered,
102
+ isConnecting
103
+ ]);
104
+ const handleElements = (0, useButtonHandles_cjs_namespaceObject.useButtonHandles)({
105
+ handleConfigurations,
106
+ shouldShowHandles,
107
+ nodeId: id,
108
+ selected
109
+ });
110
+ return handleElements;
111
+ };
112
+ const StageNodeHandles = /*#__PURE__*/ (0, external_react_namespaceObject.memo)(StageNodeHandlesInner);
113
+ exports.StageNodeHandles = __webpack_exports__.StageNodeHandles;
114
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
115
+ "StageNodeHandles"
116
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
117
+ Object.defineProperty(exports, '__esModule', {
118
+ value: true
119
+ });
@@ -0,0 +1,8 @@
1
+ export declare const StageNodeHandles: import("react").MemoExoticComponent<({ id, isReadOnly, selected, isHovered, isException, }: {
2
+ id: string;
3
+ isReadOnly: boolean;
4
+ selected: boolean;
5
+ isHovered: boolean;
6
+ isException?: boolean;
7
+ }) => import("react/jsx-runtime").JSX.Element | import("react/jsx-runtime").JSX.Element[]>;
8
+ //# sourceMappingURL=StageNodeHandles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StageNodeHandles.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/StageNodeHandles.tsx"],"names":[],"mappings":"AAiGA,eAAO,MAAM,gBAAgB,8FArF1B;IACD,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,yFA+E0D,CAAC"}
@@ -0,0 +1,85 @@
1
+ import { Position, useStore } from "../../xyflow/react.js";
2
+ import { memo, useMemo } from "react";
3
+ import { useConnectedHandles } from "../BaseCanvas/ConnectedHandlesContext.js";
4
+ import { useButtonHandles } from "../ButtonHandle/useButtonHandles.js";
5
+ const StageNodeHandlesInner = ({ id, isReadOnly, selected, isHovered, isException })=>{
6
+ const isConnecting = useStore((state)=>!!state.connectionClickStartHandle);
7
+ const connectedHandleIds = useConnectedHandles(id);
8
+ const hasConnections = connectedHandleIds.size > 0;
9
+ const shouldShowHandles = useMemo(()=>!isReadOnly && (selected || isHovered || isConnecting || hasConnections), [
10
+ hasConnections,
11
+ isConnecting,
12
+ selected,
13
+ isHovered,
14
+ isReadOnly
15
+ ]);
16
+ const handleConfigurations = useMemo(()=>isException ? [] : [
17
+ {
18
+ position: Position.Left,
19
+ handles: [
20
+ {
21
+ id: `${id}____target____left`,
22
+ type: 'target',
23
+ handleType: 'input'
24
+ }
25
+ ],
26
+ visible: selected || isHovered || isConnecting,
27
+ customPositionAndOffsets: {
28
+ top: 0,
29
+ height: 64
30
+ }
31
+ },
32
+ {
33
+ position: Position.Right,
34
+ handles: [
35
+ {
36
+ id: `${id}____source____right`,
37
+ type: 'source',
38
+ handleType: 'output'
39
+ }
40
+ ],
41
+ visible: selected || isHovered || isConnecting,
42
+ customPositionAndOffsets: {
43
+ top: 0,
44
+ height: 64
45
+ }
46
+ },
47
+ {
48
+ position: Position.Bottom,
49
+ handles: [
50
+ {
51
+ id: `${id}____target____bottom`,
52
+ type: 'target',
53
+ handleType: 'input'
54
+ }
55
+ ],
56
+ visible: selected || isHovered || isConnecting
57
+ },
58
+ {
59
+ position: Position.Bottom,
60
+ handles: [
61
+ {
62
+ id: `${id}____source____bottom`,
63
+ type: 'source',
64
+ handleType: 'output'
65
+ }
66
+ ],
67
+ visible: selected || isHovered || isConnecting
68
+ }
69
+ ], [
70
+ isException,
71
+ id,
72
+ selected,
73
+ isHovered,
74
+ isConnecting
75
+ ]);
76
+ const handleElements = useButtonHandles({
77
+ handleConfigurations,
78
+ shouldShowHandles,
79
+ nodeId: id,
80
+ selected
81
+ });
82
+ return handleElements;
83
+ };
84
+ const StageNodeHandles = /*#__PURE__*/ memo(StageNodeHandlesInner);
85
+ export { StageNodeHandles };
@@ -0,0 +1,245 @@
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 ("u" > 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
+ StageNodeHeader: ()=>StageNodeHeader
28
+ });
29
+ const jsx_runtime_namespaceObject = require("react/jsx-runtime");
30
+ const apollo_core_namespaceObject = require("@uipath/apollo-core");
31
+ const index_cjs_namespaceObject = require("../../layouts/index.cjs");
32
+ const apollo_wind_namespaceObject = require("@uipath/apollo-wind");
33
+ const external_react_namespaceObject = require("react");
34
+ const external_icons_index_cjs_namespaceObject = require("../../icons/index.cjs");
35
+ const icon_registry_cjs_namespaceObject = require("../../utils/icon-registry.cjs");
36
+ const external_CanvasTooltip_cjs_namespaceObject = require("../CanvasTooltip.cjs");
37
+ const external_ExecutionStatusIcon_index_cjs_namespaceObject = require("../ExecutionStatusIcon/index.cjs");
38
+ const external_StageNode_styles_cjs_namespaceObject = require("./StageNode.styles.cjs");
39
+ const external_StageNode_types_cjs_namespaceObject = require("./StageNode.types.cjs");
40
+ const CHIP_ICONS = {
41
+ [external_StageNode_types_cjs_namespaceObject.StageHeaderChipType.Entry]: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_icons_index_cjs_namespaceObject.EntryConditionIcon, {
42
+ w: apollo_core_namespaceObject.Icon.IconXs,
43
+ h: apollo_core_namespaceObject.Icon.IconXs
44
+ }),
45
+ [external_StageNode_types_cjs_namespaceObject.StageHeaderChipType.Exit]: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_icons_index_cjs_namespaceObject.ExitConditionIcon, {
46
+ w: apollo_core_namespaceObject.Icon.IconXs,
47
+ h: apollo_core_namespaceObject.Icon.IconXs
48
+ }),
49
+ [external_StageNode_types_cjs_namespaceObject.StageHeaderChipType.ReturnToOrigin]: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_icons_index_cjs_namespaceObject.ReturnToOriginIcon, {
50
+ w: apollo_core_namespaceObject.Icon.IconXs,
51
+ h: apollo_core_namespaceObject.Icon.IconXs
52
+ }),
53
+ [external_StageNode_types_cjs_namespaceObject.StageHeaderChipType.CaseExit]: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(icon_registry_cjs_namespaceObject.CanvasIcon, {
54
+ icon: "x",
55
+ size: 16
56
+ }),
57
+ [external_StageNode_types_cjs_namespaceObject.StageHeaderChipType.CaseCompletion]: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(icon_registry_cjs_namespaceObject.CanvasIcon, {
58
+ icon: "check",
59
+ size: 16
60
+ })
61
+ };
62
+ const StageNodeHeaderInner = ({ props, isReadOnly, isException, status, handleTaskAddClick })=>{
63
+ const { id, stageDetails, execution, addTaskLabel = 'Add task', onTaskAdd, onAddTaskFromToolbox, onStageTitleChange } = props;
64
+ const icon = stageDetails?.icon;
65
+ const statusLabel = execution?.stageStatus?.label;
66
+ const stageDuration = execution?.stageStatus?.duration;
67
+ const isStageTitleEditable = !!onStageTitleChange && !isReadOnly;
68
+ const [isStageTitleEditing, setIsStageTitleEditing] = (0, external_react_namespaceObject.useState)(false);
69
+ const stageTitleRef = (0, external_react_namespaceObject.useRef)(null);
70
+ const [label, setLabel] = (0, external_react_namespaceObject.useState)(props.stageDetails.label);
71
+ (0, external_react_namespaceObject.useEffect)(()=>{
72
+ setLabel(props.stageDetails.label);
73
+ }, [
74
+ props.stageDetails.label
75
+ ]);
76
+ const handleStageTitleChange = (0, external_react_namespaceObject.useCallback)((e)=>{
77
+ setIsStageTitleEditing(true);
78
+ setLabel(e.target.value);
79
+ }, []);
80
+ const handleStageTitleClickToSave = (0, external_react_namespaceObject.useCallback)((e)=>{
81
+ if (isStageTitleEditing && !stageTitleRef.current?.contains(e.target)) {
82
+ setIsStageTitleEditing(false);
83
+ if (onStageTitleChange) {
84
+ if ('' === label.trim()) setLabel('Untitled Stage');
85
+ onStageTitleChange(label);
86
+ }
87
+ }
88
+ }, [
89
+ isStageTitleEditing,
90
+ onStageTitleChange,
91
+ label
92
+ ]);
93
+ (0, external_react_namespaceObject.useEffect)(()=>{
94
+ if (isStageTitleEditing) document.addEventListener('click', handleStageTitleClickToSave);
95
+ return ()=>{
96
+ document.removeEventListener('click', handleStageTitleClickToSave);
97
+ };
98
+ }, [
99
+ handleStageTitleClickToSave,
100
+ isStageTitleEditing
101
+ ]);
102
+ const handleStageTitleBlurToSave = (0, external_react_namespaceObject.useCallback)(()=>{
103
+ if (isStageTitleEditing) {
104
+ setIsStageTitleEditing(false);
105
+ if (onStageTitleChange) {
106
+ if ('' === label.trim()) setLabel('Untitled Stage');
107
+ onStageTitleChange(label);
108
+ }
109
+ }
110
+ }, [
111
+ isStageTitleEditing,
112
+ onStageTitleChange,
113
+ label
114
+ ]);
115
+ const handleStageTitleKeyDown = (0, external_react_namespaceObject.useCallback)((e)=>{
116
+ if ('Enter' === e.key) {
117
+ setIsStageTitleEditing(false);
118
+ if (onStageTitleChange) onStageTitleChange(label);
119
+ }
120
+ if ('Escape' !== e.key) e.stopPropagation();
121
+ }, [
122
+ onStageTitleChange,
123
+ label
124
+ ]);
125
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(external_StageNode_styles_cjs_namespaceObject.StageHeader, {
126
+ isException: isException,
127
+ "data-testid": `stage-header-${id}`,
128
+ children: [
129
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(index_cjs_namespaceObject.Row, {
130
+ gap: apollo_core_namespaceObject.Spacing.SpacingMicro,
131
+ align: "center",
132
+ flex: 1,
133
+ minW: 0,
134
+ children: [
135
+ icon,
136
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(index_cjs_namespaceObject.Column, {
137
+ py: 2,
138
+ flex: 1,
139
+ minW: 0,
140
+ children: [
141
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("span", {
142
+ className: (0, apollo_wind_namespaceObject.cn)('text-sm', !isStageTitleEditing && 'font-bold'),
143
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_CanvasTooltip_cjs_namespaceObject.CanvasTooltip, {
144
+ content: label,
145
+ placement: "top",
146
+ delay: true,
147
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_StageNode_styles_cjs_namespaceObject.StageTitleContainer, {
148
+ isEditing: isStageTitleEditing,
149
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_StageNode_styles_cjs_namespaceObject.StageTitleInput, {
150
+ name: "Stage Title",
151
+ isStageTitleEditable: isStageTitleEditable,
152
+ value: label,
153
+ ref: stageTitleRef,
154
+ isEditing: isStageTitleEditing,
155
+ ...onStageTitleChange && {
156
+ onFocus: ()=>setIsStageTitleEditing(true),
157
+ onInput: handleStageTitleChange,
158
+ onKeyDown: handleStageTitleKeyDown,
159
+ onBlur: handleStageTitleBlurToSave
160
+ },
161
+ readOnly: !isStageTitleEditable
162
+ })
163
+ })
164
+ })
165
+ }),
166
+ stageDuration && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("span", {
167
+ className: "text-xs text-foreground-muted",
168
+ children: stageDuration
169
+ }),
170
+ stageDetails.headerChips && stageDetails.headerChips.length > 0 && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_StageNode_styles_cjs_namespaceObject.StageHeaderChipsRow, {
171
+ children: stageDetails.headerChips.map((chip)=>{
172
+ const button = /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(external_StageNode_styles_cjs_namespaceObject.StageChip, {
173
+ type: "button",
174
+ "aria-label": 'string' == typeof chip.tooltip ? chip.tooltip : chip.type,
175
+ onClick: (e)=>{
176
+ e.stopPropagation();
177
+ chip.onClick?.();
178
+ },
179
+ children: [
180
+ CHIP_ICONS[chip.type],
181
+ void 0 !== chip.count && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("span", {
182
+ className: "text-xs",
183
+ children: chip.count
184
+ })
185
+ ]
186
+ }, chip.type);
187
+ if (chip.tooltip) return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_CanvasTooltip_cjs_namespaceObject.CanvasTooltip, {
188
+ placement: "bottom",
189
+ content: chip.tooltip,
190
+ children: button
191
+ }, chip.type);
192
+ return button;
193
+ })
194
+ })
195
+ ]
196
+ })
197
+ ]
198
+ }),
199
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(index_cjs_namespaceObject.Row, {
200
+ gap: apollo_core_namespaceObject.Spacing.SpacingMicro,
201
+ align: "start",
202
+ py: apollo_core_namespaceObject.Padding.PadS,
203
+ children: [
204
+ status && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_CanvasTooltip_cjs_namespaceObject.CanvasTooltip, {
205
+ content: statusLabel,
206
+ placement: "top",
207
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(apollo_wind_namespaceObject.Button, {
208
+ variant: "ghost",
209
+ size: "icon",
210
+ className: "h-6 w-6",
211
+ "aria-label": statusLabel,
212
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_ExecutionStatusIcon_index_cjs_namespaceObject.ExecutionStatusIcon, {
213
+ status: status,
214
+ size: 20
215
+ })
216
+ })
217
+ }),
218
+ (onTaskAdd || onAddTaskFromToolbox) && !isReadOnly && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_CanvasTooltip_cjs_namespaceObject.CanvasTooltip, {
219
+ content: addTaskLabel,
220
+ placement: "top",
221
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(apollo_wind_namespaceObject.Button, {
222
+ variant: "ghost",
223
+ size: "icon",
224
+ className: "h-6 w-6",
225
+ onClick: handleTaskAddClick,
226
+ "aria-label": addTaskLabel,
227
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(icon_registry_cjs_namespaceObject.CanvasIcon, {
228
+ icon: "plus",
229
+ size: 20
230
+ })
231
+ })
232
+ })
233
+ ]
234
+ })
235
+ ]
236
+ });
237
+ };
238
+ const StageNodeHeader = /*#__PURE__*/ (0, external_react_namespaceObject.memo)(StageNodeHeaderInner);
239
+ exports.StageNodeHeader = __webpack_exports__.StageNodeHeader;
240
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
241
+ "StageNodeHeader"
242
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
243
+ Object.defineProperty(exports, '__esModule', {
244
+ value: true
245
+ });
@@ -0,0 +1,9 @@
1
+ import type { StageNodeProps, StageStatus } from './StageNode.types';
2
+ export declare const StageNodeHeader: import("react").MemoExoticComponent<({ props, isReadOnly, isException, status, handleTaskAddClick, }: {
3
+ props: StageNodeProps;
4
+ isReadOnly: boolean;
5
+ isException?: boolean;
6
+ status?: StageStatus;
7
+ handleTaskAddClick: (event: React.MouseEvent) => void;
8
+ }) => import("react/jsx-runtime").JSX.Element>;
9
+ //# sourceMappingURL=StageNodeHeader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StageNodeHeader.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/StageNodeHeader.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAwLrE,eAAO,MAAM,eAAe,wGAvKzB;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,6CAiKwD,CAAC"}