@uipath/apollo-react 4.13.1-pr581.30f7035 → 4.14.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 (154) hide show
  1. package/dist/canvas/components/AddNodePanel/AddNodeManager.cjs +7 -26
  2. package/dist/canvas/components/AddNodePanel/AddNodeManager.d.ts.map +1 -1
  3. package/dist/canvas/components/AddNodePanel/AddNodeManager.js +7 -26
  4. package/dist/canvas/components/AddNodePanel/AddNodePanel.types.d.ts +1 -1
  5. package/dist/canvas/components/AddNodePanel/AddNodePanel.types.d.ts.map +1 -1
  6. package/dist/canvas/components/AddNodePanel/createAddNodePreview.cjs +41 -0
  7. package/dist/canvas/components/AddNodePanel/createAddNodePreview.d.ts +3 -0
  8. package/dist/canvas/components/AddNodePanel/createAddNodePreview.d.ts.map +1 -0
  9. package/dist/canvas/components/AddNodePanel/createAddNodePreview.js +7 -0
  10. package/dist/canvas/components/AddNodePanel/index.cjs +6 -2
  11. package/dist/canvas/components/AddNodePanel/index.d.ts +1 -0
  12. package/dist/canvas/components/AddNodePanel/index.d.ts.map +1 -1
  13. package/dist/canvas/components/AddNodePanel/index.js +2 -1
  14. package/dist/canvas/components/AgentCanvas/agent-flow.manifest.d.ts +0 -1
  15. package/dist/canvas/components/AgentCanvas/agent-flow.manifest.d.ts.map +1 -1
  16. package/dist/canvas/components/BaseNode/BaseNode.cjs +3 -8
  17. package/dist/canvas/components/BaseNode/BaseNode.d.ts +1 -2
  18. package/dist/canvas/components/BaseNode/BaseNode.d.ts.map +1 -1
  19. package/dist/canvas/components/BaseNode/BaseNode.js +3 -5
  20. package/dist/canvas/components/BaseNode/BaseNode.types.d.ts +0 -2
  21. package/dist/canvas/components/BaseNode/BaseNode.types.d.ts.map +1 -1
  22. package/dist/canvas/components/ButtonHandle/ButtonHandle.cjs +34 -115
  23. package/dist/canvas/components/ButtonHandle/ButtonHandle.d.ts +2 -4
  24. package/dist/canvas/components/ButtonHandle/ButtonHandle.d.ts.map +1 -1
  25. package/dist/canvas/components/ButtonHandle/ButtonHandle.js +36 -117
  26. package/dist/canvas/components/ButtonHandle/ButtonHandleStyleUtils.cjs +1 -48
  27. package/dist/canvas/components/ButtonHandle/ButtonHandleStyleUtils.d.ts +0 -4
  28. package/dist/canvas/components/ButtonHandle/ButtonHandleStyleUtils.d.ts.map +1 -1
  29. package/dist/canvas/components/ButtonHandle/ButtonHandleStyleUtils.js +1 -36
  30. package/dist/canvas/components/ButtonHandle/SmartHandle.cjs +1 -1
  31. package/dist/canvas/components/ButtonHandle/SmartHandle.js +1 -1
  32. package/dist/canvas/components/Edges/SequenceEdge.cjs +2 -3
  33. package/dist/canvas/components/Edges/SequenceEdge.d.ts +2 -11
  34. package/dist/canvas/components/Edges/SequenceEdge.d.ts.map +1 -1
  35. package/dist/canvas/components/Edges/SequenceEdge.js +3 -4
  36. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvas.cjs +15 -23
  37. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvas.d.ts +0 -2
  38. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvas.d.ts.map +1 -1
  39. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvas.js +16 -24
  40. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvasWithControls.cjs +8 -11
  41. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvasWithControls.d.ts.map +1 -1
  42. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvasWithControls.js +8 -11
  43. package/dist/canvas/components/Toolbar/EdgeToolbar/useEdgeToolbarState.cjs +25 -34
  44. package/dist/canvas/components/Toolbar/EdgeToolbar/useEdgeToolbarState.d.ts +1 -2
  45. package/dist/canvas/components/Toolbar/EdgeToolbar/useEdgeToolbarState.d.ts.map +1 -1
  46. package/dist/canvas/components/Toolbar/EdgeToolbar/useEdgeToolbarState.js +26 -35
  47. package/dist/canvas/components/index.cjs +20 -27
  48. package/dist/canvas/components/index.d.ts +0 -1
  49. package/dist/canvas/components/index.d.ts.map +1 -1
  50. package/dist/canvas/components/index.js +0 -1
  51. package/dist/canvas/constants.cjs +0 -8
  52. package/dist/canvas/constants.d.ts +0 -2
  53. package/dist/canvas/constants.d.ts.map +1 -1
  54. package/dist/canvas/constants.js +1 -3
  55. package/dist/canvas/core/CategoryTreeAdapter.cjs +1 -1
  56. package/dist/canvas/core/CategoryTreeAdapter.js +1 -1
  57. package/dist/canvas/core/NodeTypeRegistry.cjs +24 -40
  58. package/dist/canvas/core/NodeTypeRegistry.d.ts +4 -8
  59. package/dist/canvas/core/NodeTypeRegistry.d.ts.map +1 -1
  60. package/dist/canvas/core/NodeTypeRegistry.js +24 -40
  61. package/dist/canvas/core/useNodeTypeRegistry.cjs +3 -4
  62. package/dist/canvas/core/useNodeTypeRegistry.d.ts +1 -1
  63. package/dist/canvas/core/useNodeTypeRegistry.d.ts.map +1 -1
  64. package/dist/canvas/core/useNodeTypeRegistry.js +3 -4
  65. package/dist/canvas/hooks/useAddNodeOnConnectEnd.cjs +3 -10
  66. package/dist/canvas/hooks/useAddNodeOnConnectEnd.d.ts.map +1 -1
  67. package/dist/canvas/hooks/useAddNodeOnConnectEnd.js +3 -10
  68. package/dist/canvas/hooks/usePreviewNode.cjs +2 -4
  69. package/dist/canvas/hooks/usePreviewNode.d.ts.map +1 -1
  70. package/dist/canvas/hooks/usePreviewNode.js +2 -4
  71. package/dist/canvas/schema/node-definition/handle.cjs +2 -10
  72. package/dist/canvas/schema/node-definition/handle.d.ts +0 -9
  73. package/dist/canvas/schema/node-definition/handle.d.ts.map +1 -1
  74. package/dist/canvas/schema/node-definition/handle.js +1 -6
  75. package/dist/canvas/schema/node-definition/index.cjs +1 -4
  76. package/dist/canvas/schema/node-definition/index.d.ts +3 -3
  77. package/dist/canvas/schema/node-definition/index.d.ts.map +1 -1
  78. package/dist/canvas/schema/node-definition/index.js +2 -2
  79. package/dist/canvas/schema/node-definition/node-manifest.d.ts +0 -4
  80. package/dist/canvas/schema/node-definition/node-manifest.d.ts.map +1 -1
  81. package/dist/canvas/storybook-utils/manifests/index.d.ts +0 -1
  82. package/dist/canvas/storybook-utils/manifests/index.d.ts.map +1 -1
  83. package/dist/canvas/storybook-utils/manifests/node-definitions.d.ts.map +1 -1
  84. package/dist/canvas/styles/reactflow-reset.css +0 -4
  85. package/dist/canvas/styles/tailwind.canvas.css +1 -1
  86. package/dist/canvas/utils/{createPreviewGraph.cjs → createPreviewNode.cjs} +41 -115
  87. package/dist/canvas/utils/createPreviewNode.d.ts +17 -0
  88. package/dist/canvas/utils/createPreviewNode.d.ts.map +1 -0
  89. package/dist/canvas/utils/{createPreviewGraph.js → createPreviewNode.js} +36 -95
  90. package/dist/canvas/utils/index.cjs +10 -10
  91. package/dist/canvas/utils/index.d.ts +2 -2
  92. package/dist/canvas/utils/index.d.ts.map +1 -1
  93. package/dist/canvas/utils/index.js +2 -2
  94. package/dist/material/components/ap-chat/components/common/action-button.cjs +7 -33
  95. package/dist/material/components/ap-chat/components/common/action-button.d.ts +3 -9
  96. package/dist/material/components/ap-chat/components/common/action-button.d.ts.map +1 -1
  97. package/dist/material/components/ap-chat/components/common/action-button.js +7 -33
  98. package/dist/material/components/ap-chat/components/input/always-on-voice-button.cjs +183 -0
  99. package/dist/material/components/ap-chat/components/input/always-on-voice-button.d.ts +10 -0
  100. package/dist/material/components/ap-chat/components/input/always-on-voice-button.d.ts.map +1 -0
  101. package/dist/material/components/ap-chat/components/input/always-on-voice-button.js +136 -0
  102. package/dist/material/components/ap-chat/components/input/chat-input-actions.cjs +46 -4
  103. package/dist/material/components/ap-chat/components/input/chat-input-actions.d.ts +4 -1
  104. package/dist/material/components/ap-chat/components/input/chat-input-actions.d.ts.map +1 -1
  105. package/dist/material/components/ap-chat/components/input/chat-input-actions.js +46 -4
  106. package/dist/material/components/ap-chat/components/input/chat-input.cjs +19 -5
  107. package/dist/material/components/ap-chat/components/input/chat-input.d.ts.map +1 -1
  108. package/dist/material/components/ap-chat/components/input/chat-input.js +19 -5
  109. package/dist/material/components/ap-chat/locales/en.cjs +1 -1
  110. package/dist/material/components/ap-chat/locales/en.d.ts.map +1 -1
  111. package/dist/material/components/ap-chat/locales/en.js +1 -1
  112. package/dist/material/components/ap-chat/service/ChatModel.cjs +2 -0
  113. package/dist/material/components/ap-chat/service/ChatModel.d.ts +4 -1
  114. package/dist/material/components/ap-chat/service/ChatModel.d.ts.map +1 -1
  115. package/dist/material/components/ap-chat/service/ChatModel.js +2 -0
  116. package/dist/material/components/ap-chat/service/ChatService.cjs +14 -0
  117. package/dist/material/components/ap-chat/service/ChatService.d.ts +4 -0
  118. package/dist/material/components/ap-chat/service/ChatService.d.ts.map +1 -1
  119. package/dist/material/components/ap-chat/service/ChatService.js +14 -0
  120. package/package.json +3 -3
  121. package/dist/canvas/components/LoopNode/LoopCanvasNode.cjs +0 -112
  122. package/dist/canvas/components/LoopNode/LoopCanvasNode.d.ts +0 -6
  123. package/dist/canvas/components/LoopNode/LoopCanvasNode.d.ts.map +0 -1
  124. package/dist/canvas/components/LoopNode/LoopCanvasNode.js +0 -78
  125. package/dist/canvas/components/LoopNode/LoopNode.cjs +0 -435
  126. package/dist/canvas/components/LoopNode/LoopNode.constants.cjs +0 -77
  127. package/dist/canvas/components/LoopNode/LoopNode.constants.d.ts +0 -12
  128. package/dist/canvas/components/LoopNode/LoopNode.constants.d.ts.map +0 -1
  129. package/dist/canvas/components/LoopNode/LoopNode.constants.js +0 -13
  130. package/dist/canvas/components/LoopNode/LoopNode.d.ts +0 -5
  131. package/dist/canvas/components/LoopNode/LoopNode.d.ts.map +0 -1
  132. package/dist/canvas/components/LoopNode/LoopNode.helpers.cjs +0 -137
  133. package/dist/canvas/components/LoopNode/LoopNode.helpers.d.ts +0 -26
  134. package/dist/canvas/components/LoopNode/LoopNode.helpers.d.ts.map +0 -1
  135. package/dist/canvas/components/LoopNode/LoopNode.helpers.js +0 -94
  136. package/dist/canvas/components/LoopNode/LoopNode.js +0 -401
  137. package/dist/canvas/components/LoopNode/LoopNode.types.cjs +0 -18
  138. package/dist/canvas/components/LoopNode/LoopNode.types.d.ts +0 -11
  139. package/dist/canvas/components/LoopNode/LoopNode.types.d.ts.map +0 -1
  140. package/dist/canvas/components/LoopNode/LoopNode.types.js +0 -0
  141. package/dist/canvas/components/LoopNode/LoopNodePreview.cjs +0 -61
  142. package/dist/canvas/components/LoopNode/LoopNodePreview.d.ts +0 -9
  143. package/dist/canvas/components/LoopNode/LoopNodePreview.d.ts.map +0 -1
  144. package/dist/canvas/components/LoopNode/LoopNodePreview.js +0 -27
  145. package/dist/canvas/components/LoopNode/index.cjs +0 -72
  146. package/dist/canvas/components/LoopNode/index.d.ts +0 -4
  147. package/dist/canvas/components/LoopNode/index.d.ts.map +0 -1
  148. package/dist/canvas/components/LoopNode/index.js +0 -3
  149. package/dist/canvas/utils/createPreviewGraph.d.ts +0 -43
  150. package/dist/canvas/utils/createPreviewGraph.d.ts.map +0 -1
  151. package/dist/material/components/ap-chat/components/audio/chat-audio.cjs +0 -334
  152. package/dist/material/components/ap-chat/components/audio/chat-audio.d.ts +0 -10
  153. package/dist/material/components/ap-chat/components/audio/chat-audio.d.ts.map +0 -1
  154. package/dist/material/components/ap-chat/components/audio/chat-audio.js +0 -290
@@ -1,137 +0,0 @@
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
- resolveLoopPreviewConnectionHandles: ()=>resolveLoopPreviewConnectionHandles,
28
- getLoopBodyCenter: ()=>getLoopBodyCenter,
29
- getLoopRelativeBodyCenter: ()=>getLoopRelativeBodyCenter,
30
- partitionLoopHandleGroups: ()=>partitionLoopHandleGroups
31
- });
32
- const createPreviewGraph_cjs_namespaceObject = require("../../utils/createPreviewGraph.cjs");
33
- const manifest_resolver_cjs_namespaceObject = require("../../utils/manifest-resolver.cjs");
34
- const NodeUtils_cjs_namespaceObject = require("../../utils/NodeUtils.cjs");
35
- const external_LoopNode_constants_cjs_namespaceObject = require("./LoopNode.constants.cjs");
36
- function partitionLoopHandleGroups(groups) {
37
- return groups.reduce((acc, group)=>{
38
- if ('inner' === group.boundary) {
39
- acc.inner.push({
40
- ...group,
41
- customPositionAndOffsets: insetInnerGroup(group)
42
- });
43
- return acc;
44
- }
45
- acc.outer.push(group);
46
- return acc;
47
- }, {
48
- outer: [],
49
- inner: []
50
- });
51
- }
52
- function getLoopBodyCenter({ width, height, headerHeight }) {
53
- const clampedHeaderHeight = Math.min(Math.max(headerHeight, 0), height);
54
- const clampToBounds = (value, max)=>Math.min(Math.max(value, 0), max);
55
- return {
56
- x: clampToBounds((0, NodeUtils_cjs_namespaceObject.snapToGrid)(width / 2), width),
57
- y: clampToBounds((0, NodeUtils_cjs_namespaceObject.snapToGrid)(clampedHeaderHeight + (height - clampedHeaderHeight) / 2), height)
58
- };
59
- }
60
- function getLoopRelativeBodyCenter(loopNode) {
61
- const width = readNumericDimension(loopNode.width, loopNode.measured?.width, loopNode.style?.width);
62
- const height = readNumericDimension(loopNode.height, loopNode.measured?.height, loopNode.style?.height);
63
- return getLoopBodyCenter({
64
- width: width ?? 0,
65
- height: height ?? 0,
66
- headerHeight: external_LoopNode_constants_cjs_namespaceObject.DEFAULT_LOOP_HEADER_HEIGHT_PX
67
- });
68
- }
69
- function insetInnerGroup(group) {
70
- const offsets = group.customPositionAndOffsets ?? {};
71
- switch(group.position){
72
- case 'left':
73
- return {
74
- ...offsets,
75
- left: (offsets.left ?? 0) + external_LoopNode_constants_cjs_namespaceObject.LOOP_FRAME_INSET_PX
76
- };
77
- case 'right':
78
- return {
79
- ...offsets,
80
- right: (offsets.right ?? 0) + external_LoopNode_constants_cjs_namespaceObject.LOOP_FRAME_INSET_PX
81
- };
82
- case 'top':
83
- return {
84
- ...offsets,
85
- top: (offsets.top ?? 0) + external_LoopNode_constants_cjs_namespaceObject.LOOP_FRAME_INSET_PX
86
- };
87
- case 'bottom':
88
- return {
89
- ...offsets,
90
- bottom: (offsets.bottom ?? 0) + external_LoopNode_constants_cjs_namespaceObject.LOOP_FRAME_INSET_PX
91
- };
92
- default:
93
- return offsets;
94
- }
95
- }
96
- function readNumericDimension(...values) {
97
- for (const value of values){
98
- if ('number' == typeof value) return value;
99
- if ('string' == typeof value) {
100
- const parsedValue = Number.parseFloat(value);
101
- if (Number.isFinite(parsedValue)) return parsedValue;
102
- }
103
- }
104
- }
105
- function resolveLoopPreviewConnectionHandles(manifest, context) {
106
- if (!manifest) return null;
107
- const innerGroups = (0, manifest_resolver_cjs_namespaceObject.resolveHandles)(manifest.handleConfiguration, context).filter((group)=>'inner' === group.boundary && (group.visible ?? true));
108
- const sourceHandle = pickPreferredInnerHandle(innerGroups, 'source');
109
- const targetHandle = pickPreferredInnerHandle(innerGroups, 'target');
110
- if (!sourceHandle || !targetHandle) return null;
111
- return {
112
- sourceHandleId: sourceHandle.handle.id,
113
- sourceHandlePosition: (0, createPreviewGraph_cjs_namespaceObject.getOppositePosition)(sourceHandle.group.position),
114
- targetHandleId: targetHandle.handle.id
115
- };
116
- }
117
- function pickPreferredInnerHandle(groups, type) {
118
- const candidates = groups.flatMap((group)=>group.handles.filter((handle)=>handle.type === type && handle.visible).map((handle)=>({
119
- group,
120
- handle
121
- })));
122
- if (0 === candidates.length) return null;
123
- return candidates[0];
124
- }
125
- exports.getLoopBodyCenter = __webpack_exports__.getLoopBodyCenter;
126
- exports.getLoopRelativeBodyCenter = __webpack_exports__.getLoopRelativeBodyCenter;
127
- exports.partitionLoopHandleGroups = __webpack_exports__.partitionLoopHandleGroups;
128
- exports.resolveLoopPreviewConnectionHandles = __webpack_exports__.resolveLoopPreviewConnectionHandles;
129
- for(var __rspack_i in __webpack_exports__)if (-1 === [
130
- "getLoopBodyCenter",
131
- "getLoopRelativeBodyCenter",
132
- "partitionLoopHandleGroups",
133
- "resolveLoopPreviewConnectionHandles"
134
- ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
135
- Object.defineProperty(exports, '__esModule', {
136
- value: true
137
- });
@@ -1,26 +0,0 @@
1
- import { type Node, Position } from '../../xyflow/react.ts';
2
- import type { NodeManifest } from '../../schema/node-definition';
3
- import { ResolutionContext, ResolvedHandleGroup } from '../../utils/manifest-resolver';
4
- export interface LoopPreviewConnectionHandles {
5
- sourceHandleId: string;
6
- sourceHandlePosition: Position;
7
- targetHandleId: string;
8
- }
9
- export declare function partitionLoopHandleGroups(groups: ResolvedHandleGroup[]): {
10
- outer: ResolvedHandleGroup[];
11
- inner: ResolvedHandleGroup[];
12
- };
13
- export declare function getLoopBodyCenter({ width, height, headerHeight, }: {
14
- width: number;
15
- height: number;
16
- headerHeight: number;
17
- }): {
18
- x: number;
19
- y: number;
20
- };
21
- export declare function getLoopRelativeBodyCenter(loopNode: Pick<Node, 'width' | 'height' | 'measured' | 'style'>): {
22
- x: number;
23
- y: number;
24
- };
25
- export declare function resolveLoopPreviewConnectionHandles(manifest: Pick<NodeManifest, 'handleConfiguration'> | undefined, context: ResolutionContext): LoopPreviewConnectionHandles | null;
26
- //# sourceMappingURL=LoopNode.helpers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LoopNode.helpers.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/LoopNode/LoopNode.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAE,QAAQ,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAEjE,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EAEpB,MAAM,+BAA+B,CAAC;AAIvC,MAAM,WAAW,4BAA4B;IAC3C,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,QAAQ,CAAC;IAC/B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,mBAAmB,EAAE,GAAG;IACxE,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B,KAAK,EAAE,mBAAmB,EAAE,CAAC;CAC9B,CAgBA;AAED,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,MAAM,EACN,YAAY,GACb,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;CACtB;;;EAQA;AAED,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;;;EAkBhE;AA+BD,wBAAgB,mCAAmC,CACjD,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,qBAAqB,CAAC,GAAG,SAAS,EAC/D,OAAO,EAAE,iBAAiB,GACzB,4BAA4B,GAAG,IAAI,CAgBrC"}
@@ -1,94 +0,0 @@
1
- import { getOppositePosition } from "../../utils/createPreviewGraph.js";
2
- import { resolveHandles } from "../../utils/manifest-resolver.js";
3
- import { snapToGrid } from "../../utils/NodeUtils.js";
4
- import { DEFAULT_LOOP_HEADER_HEIGHT_PX, LOOP_FRAME_INSET_PX } from "./LoopNode.constants.js";
5
- function partitionLoopHandleGroups(groups) {
6
- return groups.reduce((acc, group)=>{
7
- if ('inner' === group.boundary) {
8
- acc.inner.push({
9
- ...group,
10
- customPositionAndOffsets: insetInnerGroup(group)
11
- });
12
- return acc;
13
- }
14
- acc.outer.push(group);
15
- return acc;
16
- }, {
17
- outer: [],
18
- inner: []
19
- });
20
- }
21
- function getLoopBodyCenter({ width, height, headerHeight }) {
22
- const clampedHeaderHeight = Math.min(Math.max(headerHeight, 0), height);
23
- const clampToBounds = (value, max)=>Math.min(Math.max(value, 0), max);
24
- return {
25
- x: clampToBounds(snapToGrid(width / 2), width),
26
- y: clampToBounds(snapToGrid(clampedHeaderHeight + (height - clampedHeaderHeight) / 2), height)
27
- };
28
- }
29
- function getLoopRelativeBodyCenter(loopNode) {
30
- const width = readNumericDimension(loopNode.width, loopNode.measured?.width, loopNode.style?.width);
31
- const height = readNumericDimension(loopNode.height, loopNode.measured?.height, loopNode.style?.height);
32
- return getLoopBodyCenter({
33
- width: width ?? 0,
34
- height: height ?? 0,
35
- headerHeight: DEFAULT_LOOP_HEADER_HEIGHT_PX
36
- });
37
- }
38
- function insetInnerGroup(group) {
39
- const offsets = group.customPositionAndOffsets ?? {};
40
- switch(group.position){
41
- case 'left':
42
- return {
43
- ...offsets,
44
- left: (offsets.left ?? 0) + LOOP_FRAME_INSET_PX
45
- };
46
- case 'right':
47
- return {
48
- ...offsets,
49
- right: (offsets.right ?? 0) + LOOP_FRAME_INSET_PX
50
- };
51
- case 'top':
52
- return {
53
- ...offsets,
54
- top: (offsets.top ?? 0) + LOOP_FRAME_INSET_PX
55
- };
56
- case 'bottom':
57
- return {
58
- ...offsets,
59
- bottom: (offsets.bottom ?? 0) + LOOP_FRAME_INSET_PX
60
- };
61
- default:
62
- return offsets;
63
- }
64
- }
65
- function readNumericDimension(...values) {
66
- for (const value of values){
67
- if ('number' == typeof value) return value;
68
- if ('string' == typeof value) {
69
- const parsedValue = Number.parseFloat(value);
70
- if (Number.isFinite(parsedValue)) return parsedValue;
71
- }
72
- }
73
- }
74
- function resolveLoopPreviewConnectionHandles(manifest, context) {
75
- if (!manifest) return null;
76
- const innerGroups = resolveHandles(manifest.handleConfiguration, context).filter((group)=>'inner' === group.boundary && (group.visible ?? true));
77
- const sourceHandle = pickPreferredInnerHandle(innerGroups, 'source');
78
- const targetHandle = pickPreferredInnerHandle(innerGroups, 'target');
79
- if (!sourceHandle || !targetHandle) return null;
80
- return {
81
- sourceHandleId: sourceHandle.handle.id,
82
- sourceHandlePosition: getOppositePosition(sourceHandle.group.position),
83
- targetHandleId: targetHandle.handle.id
84
- };
85
- }
86
- function pickPreferredInnerHandle(groups, type) {
87
- const candidates = groups.flatMap((group)=>group.handles.filter((handle)=>handle.type === type && handle.visible).map((handle)=>({
88
- group,
89
- handle
90
- })));
91
- if (0 === candidates.length) return null;
92
- return candidates[0];
93
- }
94
- export { getLoopBodyCenter, getLoopRelativeBodyCenter, partitionLoopHandleGroups, resolveLoopPreviewConnectionHandles };
@@ -1,401 +0,0 @@
1
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
- import { NodeResizeControl, useStore, useUpdateNodeInternals } from "../../xyflow/react.js";
3
- import { cn } from "@uipath/apollo-wind";
4
- import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react";
5
- import { useOptionalNodeTypeRegistry } from "../../core/index.js";
6
- import { useElementValidationStatus, useNodeExecutionState } from "../../hooks/index.js";
7
- import { resolveAdornments } from "../../utils/adornment-resolver.js";
8
- import { getOppositePosition } from "../../utils/createPreviewGraph.js";
9
- import { CanvasIcon } from "../../utils/icon-registry.js";
10
- import { resolveDisplay, resolveHandles } from "../../utils/manifest-resolver.js";
11
- import { resolveToolbar } from "../../utils/toolbar-resolver.js";
12
- import { useBaseCanvasMode } from "../BaseCanvas/BaseCanvasModeProvider.js";
13
- import { useConnectedHandles } from "../BaseCanvas/ConnectedHandlesContext.js";
14
- import { useSelectionState } from "../BaseCanvas/SelectionStateContext.js";
15
- import { selectIsConnecting } from "../BaseNode/BaseNode.js";
16
- import { BaseBadgeSlot } from "../BaseNode/BaseNodeBadgeSlot.js";
17
- import { getStatusBorder } from "../BaseNode/BaseNodeContainer.js";
18
- import { MissingManifestNode } from "../BaseNode/BaseNodeMissingManifest.js";
19
- import { ButtonHandles } from "../ButtonHandle/index.js";
20
- import { NodeToolbar } from "../Toolbar/index.js";
21
- import { DEFAULT_LOOP_FRAME_BACKGROUND, DEFAULT_LOOP_FRAME_BORDER, DEFAULT_LOOP_ICON, DEFAULT_LOOP_MIN_HEIGHT, DEFAULT_LOOP_MIN_WIDTH, DEFAULT_LOOP_NODE_TYPE, DEFAULT_LOOP_SHELL_BACKGROUND, DEFAULT_LOOP_TITLE, LOOP_FRAME_INSET_PX, LOOP_SHELL_RADIUS_PX } from "./LoopNode.constants.js";
22
- import { partitionLoopHandleGroups } from "./LoopNode.helpers.js";
23
- const EMPTY_DATA = {};
24
- const RESIZE_CONTROLS = [
25
- {
26
- position: 'top-left',
27
- cursor: 'nwse-resize',
28
- indicatorClassName: 'top-[-5px] left-[-5px]'
29
- },
30
- {
31
- position: 'top-right',
32
- cursor: 'nesw-resize',
33
- indicatorClassName: 'top-[-5px] right-[-5px]'
34
- },
35
- {
36
- position: 'bottom-left',
37
- cursor: 'nesw-resize',
38
- indicatorClassName: 'bottom-[-5px] left-[-5px]'
39
- },
40
- {
41
- position: 'bottom-right',
42
- cursor: 'nwse-resize',
43
- indicatorClassName: 'bottom-[-5px] right-[-5px]'
44
- }
45
- ];
46
- const RESIZE_CONTROL_STYLE = {
47
- background: 'transparent',
48
- border: 'none',
49
- zIndex: 100
50
- };
51
- const ADORNMENT_SLOT_POSITIONS = [
52
- 'topLeft',
53
- 'topRight',
54
- 'bottomLeft',
55
- 'bottomRight'
56
- ];
57
- const ADORNMENT_SLOT_SHAPES = {
58
- topLeft: 'top-left',
59
- topRight: 'top-right',
60
- bottomLeft: 'bottom-left',
61
- bottomRight: 'bottom-right'
62
- };
63
- function resolveInteractionState(dragging, selected, isHovered) {
64
- if (dragging) return 'drag';
65
- if (selected) return 'selected';
66
- if (isHovered) return 'hover';
67
- return 'default';
68
- }
69
- function LoopNodeComponent(props) {
70
- const { id, type = DEFAULT_LOOP_NODE_TYPE, data, selected = false, dragging = false, width = 0, height = 0, onAddFirstChild, onResize: onResizeCallback } = props;
71
- const updateNodeInternals = useUpdateNodeInternals();
72
- const nodeTypeRegistry = useOptionalNodeTypeRegistry();
73
- const headerRef = useRef(null);
74
- const [isHovered, setIsHovered] = useState(false);
75
- const resolvedData = data ?? EMPTY_DATA;
76
- const nodeVersion = 'string' == typeof resolvedData.version ? resolvedData.version : void 0;
77
- const suggestionType = resolvedData.suggestionType;
78
- const manifest = useMemo(()=>nodeTypeRegistry?.getManifest(type, nodeVersion), [
79
- nodeTypeRegistry,
80
- type,
81
- nodeVersion
82
- ]);
83
- const { mode } = useBaseCanvasMode();
84
- const connectedHandleIds = useConnectedHandles(id);
85
- const { multipleNodesSelected } = useSelectionState();
86
- const isConnecting = useStore(selectIsConnecting);
87
- const needsChildCheck = 'design' === mode && !!onAddFirstChild;
88
- const hasChildNodes = useStore(useCallback((state)=>!needsChildCheck || state.nodes.some((node)=>node.parentId === id), [
89
- id,
90
- needsChildCheck
91
- ]));
92
- const executionState = useNodeExecutionState(id);
93
- const validationState = useElementValidationStatus(id);
94
- const statusContext = useMemo(()=>({
95
- nodeId: id,
96
- executionState,
97
- validationState,
98
- isConnecting,
99
- isSelected: selected,
100
- isDragging: dragging,
101
- mode
102
- }), [
103
- dragging,
104
- executionState,
105
- id,
106
- isConnecting,
107
- mode,
108
- selected,
109
- validationState
110
- ]);
111
- const executionStatus = 'string' == typeof executionState ? executionState : executionState?.status;
112
- const display = useMemo(()=>resolveDisplay(manifest?.display, {
113
- ...resolvedData,
114
- nodeId: id
115
- }), [
116
- manifest?.display,
117
- id,
118
- resolvedData
119
- ]);
120
- const displayTitle = display.label ?? DEFAULT_LOOP_TITLE;
121
- const minWidth = DEFAULT_LOOP_MIN_WIDTH;
122
- const minHeight = DEFAULT_LOOP_MIN_HEIGHT;
123
- const headerIcon = useMemo(()=>/*#__PURE__*/ jsx(CanvasIcon, {
124
- icon: display.icon ?? DEFAULT_LOOP_ICON,
125
- size: 16
126
- }), [
127
- display.icon
128
- ]);
129
- const toolbarConfig = useMemo(()=>manifest ? resolveToolbar(manifest, statusContext, data) : void 0, [
130
- data,
131
- manifest,
132
- statusContext
133
- ]);
134
- const adornments = useMemo(()=>resolveAdornments(statusContext), [
135
- statusContext
136
- ]);
137
- const resolvedHandleGroups = useMemo(()=>manifest ? resolveHandles(manifest.handleConfiguration, resolvedData) : [], [
138
- manifest,
139
- resolvedData
140
- ]);
141
- const { outer: outerHandleGroups, inner: innerHandleGroups } = useMemo(()=>partitionLoopHandleGroups(resolvedHandleGroups), [
142
- resolvedHandleGroups
143
- ]);
144
- const handleGroupVariants = [
145
- [
146
- 'outer',
147
- outerHandleGroups
148
- ],
149
- [
150
- 'inner',
151
- innerHandleGroups
152
- ]
153
- ];
154
- useEffect(()=>{
155
- const frameId = requestAnimationFrame(()=>{
156
- updateNodeInternals(id);
157
- });
158
- return ()=>{
159
- cancelAnimationFrame(frameId);
160
- };
161
- }, [
162
- id,
163
- innerHandleGroups,
164
- outerHandleGroups,
165
- updateNodeInternals,
166
- width,
167
- height
168
- ]);
169
- const handleResize = useCallback((_event, params)=>{
170
- onResizeCallback?.({
171
- width: params.width,
172
- height: params.height
173
- });
174
- }, [
175
- onResizeCallback
176
- ]);
177
- const handleEmptyClick = useCallback(()=>{
178
- onAddFirstChild?.();
179
- }, [
180
- onAddFirstChild
181
- ]);
182
- const handleMouseEnter = useCallback(()=>setIsHovered(true), []);
183
- const handleMouseLeave = useCallback(()=>setIsHovered(false), []);
184
- const handleOuterHandleAction = useCallback((_event)=>{
185
- setIsHovered(false);
186
- }, []);
187
- const shouldShowHandles = (isConnecting || selected || isHovered) && !dragging;
188
- const showHandleAddButtons = 'design' === mode && !multipleNodesSelected && !isConnecting && !dragging;
189
- const showResizeControls = selected && !dragging && 'design' === mode;
190
- const showEmptyStateButton = 'design' === mode && !hasChildNodes && !!onAddFirstChild;
191
- const interactionState = resolveInteractionState(dragging, selected, isHovered);
192
- if (!manifest) return /*#__PURE__*/ jsx("div", {
193
- className: "relative",
194
- style: {
195
- width,
196
- height,
197
- minWidth,
198
- minHeight
199
- },
200
- onMouseEnter: handleMouseEnter,
201
- onMouseLeave: handleMouseLeave,
202
- children: /*#__PURE__*/ jsx(MissingManifestNode, {
203
- type: type,
204
- isSelected: selected,
205
- isHovered: isHovered,
206
- interactionState: interactionState
207
- })
208
- });
209
- return /*#__PURE__*/ jsxs("div", {
210
- "data-loop-container": true,
211
- "data-selected": selected ? 'true' : 'false',
212
- "data-execution-status": executionStatus,
213
- "data-interaction-state": interactionState,
214
- "data-suggestion-type": suggestionType,
215
- "data-validation-status": validationState?.validationStatus,
216
- "aria-busy": resolvedData.loading || void 0,
217
- className: cn('group/loop-shell relative flex h-full w-full flex-col overflow-visible border bg-surface-overlay', 'transition-[border-color,box-shadow,opacity] shadow-(--canvas-node-shadow-rest)', 'border-border-subtle', getStatusBorder(suggestionType ?? validationState?.validationStatus ?? executionStatus), isHovered && 'shadow-(--canvas-node-shadow-hover) border-border-hover', selected && 'outline outline-foreground-accent-muted', 'drag' === interactionState && 'cursor-grabbing shadow-(--canvas-node-shadow-lifted)'),
218
- style: {
219
- width,
220
- height,
221
- minWidth,
222
- minHeight,
223
- borderRadius: LOOP_SHELL_RADIUS_PX,
224
- background: display.background ?? DEFAULT_LOOP_SHELL_BACKGROUND
225
- },
226
- onMouseEnter: handleMouseEnter,
227
- onMouseLeave: handleMouseLeave,
228
- children: [
229
- ADORNMENT_SLOT_POSITIONS.map((slot)=>adornments?.[slot] ? /*#__PURE__*/ jsx(BaseBadgeSlot, {
230
- position: ADORNMENT_SLOT_SHAPES[slot],
231
- shape: "rectangle",
232
- children: adornments[slot]
233
- }, slot) : null),
234
- /*#__PURE__*/ jsx(ResizeCornerIndicators, {
235
- selected: showResizeControls
236
- }),
237
- showResizeControls ? RESIZE_CONTROLS.map(({ position, cursor })=>/*#__PURE__*/ jsx(NodeResizeControl, {
238
- style: RESIZE_CONTROL_STYLE,
239
- position: position,
240
- minWidth: minWidth,
241
- minHeight: minHeight,
242
- onResize: handleResize,
243
- children: /*#__PURE__*/ jsx("div", {
244
- className: "absolute bottom-0 right-0 h-5 w-5 pointer-events-auto",
245
- style: {
246
- cursor
247
- }
248
- })
249
- }, position)) : null,
250
- /*#__PURE__*/ jsx(Header, {
251
- headerRef: headerRef,
252
- title: displayTitle,
253
- icon: headerIcon,
254
- loading: !!resolvedData.loading
255
- }),
256
- /*#__PURE__*/ jsx(BodyFrame, {
257
- isEmpty: showEmptyStateButton,
258
- isLoading: !!resolvedData.loading,
259
- onAddFirstChild: handleEmptyClick
260
- }),
261
- toolbarConfig && /*#__PURE__*/ jsx(NodeToolbar, {
262
- nodeId: id,
263
- config: toolbarConfig,
264
- expanded: selected || isHovered,
265
- hidden: dragging || multipleNodesSelected
266
- }),
267
- handleGroupVariants.map(([variant, groups])=>/*#__PURE__*/ jsx(HandleGroups, {
268
- nodeId: id,
269
- groups: groups,
270
- variant: variant,
271
- selected: selected,
272
- hovered: isHovered,
273
- shouldShowHandles: shouldShowHandles,
274
- showAddButton: showHandleAddButtons,
275
- showNotches: shouldShowHandles,
276
- nodeWidth: width,
277
- nodeHeight: height,
278
- connectedHandleIds: connectedHandleIds,
279
- onOuterHandleAction: handleOuterHandleAction
280
- }, variant))
281
- ]
282
- });
283
- }
284
- const LoopNode = /*#__PURE__*/ memo(LoopNodeComponent);
285
- function Header({ headerRef, title, icon, loading }) {
286
- const titleContent = loading ? /*#__PURE__*/ jsx("div", {
287
- className: "h-5 w-28 animate-pulse rounded bg-(--canvas-background-overlay)"
288
- }) : /*#__PURE__*/ jsx("span", {
289
- className: "truncate text-[14px] font-semibold tracking-[-0.15px]",
290
- children: title
291
- });
292
- let iconContent = null;
293
- if (loading) iconContent = /*#__PURE__*/ jsx("div", {
294
- className: "h-4 w-4 shrink-0 animate-pulse rounded bg-(--canvas-background-overlay)"
295
- });
296
- else if (icon) iconContent = /*#__PURE__*/ jsx("span", {
297
- className: "shrink-0 text-foreground",
298
- "aria-hidden": true,
299
- children: icon
300
- });
301
- return /*#__PURE__*/ jsx("div", {
302
- ref: headerRef,
303
- className: "flex shrink-0 items-center justify-between gap-2.5 pl-4.5 pr-5 pt-3.5 text-foreground cursor-grab active:cursor-grabbing",
304
- "data-testid": "loop-node-header",
305
- children: /*#__PURE__*/ jsxs("div", {
306
- className: "flex min-w-0 items-center gap-2",
307
- children: [
308
- iconContent,
309
- titleContent
310
- ]
311
- })
312
- });
313
- }
314
- function EmptyState({ onAddFirstChild }) {
315
- return /*#__PURE__*/ jsx("button", {
316
- type: "button",
317
- onClick: onAddFirstChild,
318
- "aria-label": "Add node to loop",
319
- className: cn('nodrag nopan', 'pointer-events-auto flex h-8 w-8 items-center justify-center rounded-xl', 'border border-border bg-surface-overlay text-foreground', 'shadow-(--canvas-node-shadow-lifted)', 'transition-colors', 'hover:bg-surface-hover hover:border-brand'),
320
- children: /*#__PURE__*/ jsx(CanvasIcon, {
321
- icon: "plus",
322
- size: 14
323
- })
324
- });
325
- }
326
- function BodyFrame({ isEmpty, isLoading, onAddFirstChild }) {
327
- return /*#__PURE__*/ jsxs("div", {
328
- "data-testid": "loop-body-frame",
329
- "data-empty": isEmpty ? 'true' : 'false',
330
- className: cn('relative flex flex-1 rounded-[26px] border border-dashed', 'pointer-events-none', isEmpty && 'items-center justify-center'),
331
- style: {
332
- margin: LOOP_FRAME_INSET_PX,
333
- background: DEFAULT_LOOP_FRAME_BACKGROUND,
334
- borderColor: DEFAULT_LOOP_FRAME_BORDER
335
- },
336
- children: [
337
- isLoading ? /*#__PURE__*/ jsx("div", {
338
- className: "m-6 h-14 w-full animate-pulse rounded-[18px] bg-(--canvas-background-overlay)"
339
- }) : null,
340
- isEmpty ? /*#__PURE__*/ jsx(EmptyState, {
341
- onAddFirstChild: onAddFirstChild
342
- }) : null
343
- ]
344
- });
345
- }
346
- function ResizeCornerIndicators({ selected }) {
347
- return /*#__PURE__*/ jsx(Fragment, {
348
- children: RESIZE_CONTROLS.map(({ position, indicatorClassName })=>/*#__PURE__*/ jsx("div", {
349
- "aria-hidden": true,
350
- className: cn('pointer-events-none absolute h-1.5 w-1.5 rounded-[1px] border border-brand bg-background transition-opacity', indicatorClassName, selected ? 'opacity-100' : 'opacity-0')
351
- }, position))
352
- });
353
- }
354
- function HandleGroups({ nodeId, variant, groups, selected, hovered, shouldShowHandles, showAddButton, showNotches, nodeWidth, nodeHeight, connectedHandleIds, onOuterHandleAction }) {
355
- if (0 === groups.length) return null;
356
- return /*#__PURE__*/ jsx(Fragment, {
357
- children: groups.map((group, groupIndex)=>/*#__PURE__*/ jsx(HandleGroup, {
358
- nodeId: nodeId,
359
- variant: variant,
360
- group: group,
361
- selected: selected,
362
- hovered: hovered,
363
- shouldShowHandles: shouldShowHandles,
364
- showAddButton: showAddButton,
365
- showNotches: showNotches,
366
- nodeWidth: nodeWidth,
367
- nodeHeight: nodeHeight,
368
- connectedHandleIds: connectedHandleIds,
369
- onOuterHandleAction: onOuterHandleAction
370
- }, `${variant}:${group.position}:${groupIndex}`))
371
- });
372
- }
373
- function HandleGroup({ nodeId, variant, group, selected, hovered, shouldShowHandles, showAddButton, showNotches, nodeWidth, nodeHeight, connectedHandleIds, onOuterHandleAction }) {
374
- const groupVisible = shouldShowHandles && (group.visible ?? true);
375
- const enhancedHandles = useMemo(()=>group.handles.map((handle)=>({
376
- ...handle,
377
- showHandle: connectedHandleIds.has(handle.id) || groupVisible,
378
- showButton: 'inner' === variant && 'source' === handle.type ? false : handle.showButton,
379
- onAction: handle.onAction ?? ('inner' !== variant && 'source' === handle.type && handle.showButton ? onOuterHandleAction : void 0)
380
- })), [
381
- group.handles,
382
- connectedHandleIds,
383
- groupVisible,
384
- onOuterHandleAction,
385
- variant
386
- ]);
387
- return /*#__PURE__*/ jsx(ButtonHandles, {
388
- nodeId: nodeId,
389
- handles: enhancedHandles,
390
- position: group.position,
391
- connectionPosition: 'inner' === variant ? getOppositePosition(group.position) : group.position,
392
- selected: selected,
393
- hovered: hovered,
394
- showAddButton: showAddButton,
395
- showNotches: showNotches,
396
- customPositionAndOffsets: group.customPositionAndOffsets,
397
- nodeWidth: nodeWidth,
398
- nodeHeight: nodeHeight
399
- });
400
- }
401
- export { LoopNode };
@@ -1,18 +0,0 @@
1
- "use strict";
2
- var __webpack_require__ = {};
3
- (()=>{
4
- __webpack_require__.r = (exports1)=>{
5
- if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
6
- value: 'Module'
7
- });
8
- Object.defineProperty(exports1, '__esModule', {
9
- value: true
10
- });
11
- };
12
- })();
13
- var __webpack_exports__ = {};
14
- __webpack_require__.r(__webpack_exports__);
15
- for(var __rspack_i in __webpack_exports__)exports[__rspack_i] = __webpack_exports__[__rspack_i];
16
- Object.defineProperty(exports, '__esModule', {
17
- value: true
18
- });