@uipath/apollo-react 4.14.1-pr556.aa710a0 → 4.15.0-pr605.6ea14a7

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 (49) hide show
  1. package/dist/canvas/components/AddNodePanel/AddNodeManager.cjs +101 -10
  2. package/dist/canvas/components/AddNodePanel/AddNodeManager.d.ts.map +1 -1
  3. package/dist/canvas/components/AddNodePanel/AddNodeManager.js +101 -10
  4. package/dist/canvas/components/AddNodePanel/createAddNodePreview.cjs +18 -0
  5. package/dist/canvas/components/AddNodePanel/createAddNodePreview.d.ts.map +1 -1
  6. package/dist/canvas/components/AddNodePanel/createAddNodePreview.js +18 -0
  7. package/dist/canvas/components/Edges/SequenceEdge.cjs +10 -8
  8. package/dist/canvas/components/Edges/SequenceEdge.d.ts.map +1 -1
  9. package/dist/canvas/components/Edges/SequenceEdge.js +10 -8
  10. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvasWithControls.cjs +4 -1
  11. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvasWithControls.d.ts.map +1 -1
  12. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvasWithControls.js +4 -1
  13. package/dist/canvas/components/LoopNode/LoopNode.constants.cjs +17 -5
  14. package/dist/canvas/components/LoopNode/LoopNode.constants.d.ts +3 -0
  15. package/dist/canvas/components/LoopNode/LoopNode.constants.d.ts.map +1 -1
  16. package/dist/canvas/components/LoopNode/LoopNode.constants.js +4 -1
  17. package/dist/canvas/components/LoopNode/LoopNode.helpers.cjs +65 -24
  18. package/dist/canvas/components/LoopNode/LoopNode.helpers.d.ts +29 -0
  19. package/dist/canvas/components/LoopNode/LoopNode.helpers.d.ts.map +1 -1
  20. package/dist/canvas/components/LoopNode/LoopNode.helpers.js +48 -22
  21. package/dist/canvas/components/LoopNode/LoopNode.sequence.cjs +386 -0
  22. package/dist/canvas/components/LoopNode/LoopNode.sequence.d.ts +47 -0
  23. package/dist/canvas/components/LoopNode/LoopNode.sequence.d.ts.map +1 -0
  24. package/dist/canvas/components/LoopNode/LoopNode.sequence.js +343 -0
  25. package/dist/canvas/components/LoopNode/LoopNodePreview.cjs +9 -13
  26. package/dist/canvas/components/LoopNode/LoopNodePreview.d.ts +1 -1
  27. package/dist/canvas/components/LoopNode/LoopNodePreview.d.ts.map +1 -1
  28. package/dist/canvas/components/LoopNode/LoopNodePreview.js +9 -13
  29. package/dist/canvas/components/Toolbar/EdgeToolbar/useEdgeToolbarState.cjs +9 -1
  30. package/dist/canvas/components/Toolbar/EdgeToolbar/useEdgeToolbarState.d.ts.map +1 -1
  31. package/dist/canvas/components/Toolbar/EdgeToolbar/useEdgeToolbarState.js +9 -1
  32. package/dist/canvas/utils/NodeUtils.cjs +25 -9
  33. package/dist/canvas/utils/NodeUtils.d.ts +7 -0
  34. package/dist/canvas/utils/NodeUtils.d.ts.map +1 -1
  35. package/dist/canvas/utils/NodeUtils.js +13 -6
  36. package/dist/canvas/utils/container-sizing.cjs +168 -0
  37. package/dist/canvas/utils/container-sizing.d.ts +23 -0
  38. package/dist/canvas/utils/container-sizing.d.ts.map +1 -0
  39. package/dist/canvas/utils/container-sizing.js +131 -0
  40. package/dist/canvas/utils/createPreviewGraph.d.ts +1 -0
  41. package/dist/canvas/utils/createPreviewGraph.d.ts.map +1 -1
  42. package/dist/canvas/utils/createPreviewNode.cjs +29 -1
  43. package/dist/canvas/utils/createPreviewNode.d.ts.map +1 -1
  44. package/dist/canvas/utils/createPreviewNode.js +29 -1
  45. package/dist/canvas/utils/index.cjs +29 -22
  46. package/dist/canvas/utils/index.d.ts +1 -0
  47. package/dist/canvas/utils/index.d.ts.map +1 -1
  48. package/dist/canvas/utils/index.js +1 -0
  49. package/package.json +1 -1
@@ -33,8 +33,87 @@ const external_constants_cjs_namespaceObject = require("../../constants.cjs");
33
33
  const index_cjs_namespaceObject = require("../../core/index.cjs");
34
34
  const usePreviewNode_cjs_namespaceObject = require("../../hooks/usePreviewNode.cjs");
35
35
  const external_utils_index_cjs_namespaceObject = require("../../utils/index.cjs");
36
+ const collapse_cjs_namespaceObject = require("../../utils/collapse.cjs");
37
+ const container_sizing_cjs_namespaceObject = require("../../utils/container-sizing.cjs");
38
+ const manifest_resolver_cjs_namespaceObject = require("../../utils/manifest-resolver.cjs");
36
39
  const external_FloatingCanvasPanel_index_cjs_namespaceObject = require("../FloatingCanvasPanel/index.cjs");
40
+ const LoopNode_helpers_cjs_namespaceObject = require("../LoopNode/LoopNode.helpers.cjs");
41
+ const LoopNode_sequence_cjs_namespaceObject = require("../LoopNode/LoopNode.sequence.cjs");
37
42
  const external_AddNodePanel_cjs_namespaceObject = require("./AddNodePanel.cjs");
43
+ function getManifestForNode(registry, node) {
44
+ return node.type ? registry?.getManifest(node.type, (0, manifest_resolver_cjs_namespaceObject.getNodeTypeVersion)(node.data)) : void 0;
45
+ }
46
+ function getManifestAwareNodeDimensions(registry, node) {
47
+ const manifest = getManifestForNode(registry, node);
48
+ const expandedShape = (0, collapse_cjs_namespaceObject.getExpandedShape)(manifest?.display.shape);
49
+ const fallbackDimensions = (0, collapse_cjs_namespaceObject.getExpandedSize)(expandedShape, manifest);
50
+ return (0, container_sizing_cjs_namespaceObject.getNodeDimensions)(node, fallbackDimensions);
51
+ }
52
+ function getContainerFitGeometry(registry, node) {
53
+ const manifest = getManifestForNode(registry, node);
54
+ return (0, LoopNode_helpers_cjs_namespaceObject.isLoopContainerManifest)(manifest) ? (0, LoopNode_helpers_cjs_namespaceObject.getLoopContainerFitGeometry)() : null;
55
+ }
56
+ function centerNodeOnPreview(previewNode, nodeDimensions) {
57
+ const previewDimensions = (0, container_sizing_cjs_namespaceObject.getNodeDimensions)(previewNode);
58
+ return {
59
+ x: previewNode.position.x + (previewDimensions.width - nodeDimensions.width) / 2,
60
+ y: previewNode.position.y + (previewDimensions.height - nodeDimensions.height) / 2
61
+ };
62
+ }
63
+ function centerNodeVerticallyOnPreview(previewNode, nodeDimensions) {
64
+ const previewDimensions = (0, container_sizing_cjs_namespaceObject.getNodeDimensions)(previewNode);
65
+ return {
66
+ x: previewNode.position.x,
67
+ y: previewNode.position.y + (previewDimensions.height - nodeDimensions.height) / 2
68
+ };
69
+ }
70
+ function resolveSiblingCollisions(nodes, insertedNode, options) {
71
+ const siblingNodes = nodes.filter((node)=>node.parentId === insertedNode.parentId);
72
+ const resolvedSiblings = (0, external_utils_index_cjs_namespaceObject.resolveCollisions)(siblingNodes, options);
73
+ const resolvedSiblingsById = new Map(resolvedSiblings.map((node)=>[
74
+ node.id,
75
+ node
76
+ ]));
77
+ return nodes.map((node)=>resolvedSiblingsById.get(node.id) ?? node);
78
+ }
79
+ function resolveNodePlacement(nodes, insertedNode, registry, ignoredNodeTypes, edges, loopSequencePlacement) {
80
+ const getNodeSize = (node)=>getManifestAwareNodeDimensions(registry, node);
81
+ if (!insertedNode.parentId) {
82
+ const resolvedNodes = (0, external_utils_index_cjs_namespaceObject.resolveCollisions)(nodes, {
83
+ ignoredNodeTypes,
84
+ getNodeSize
85
+ });
86
+ return {
87
+ nodes: resolvedNodes,
88
+ insertedNode: resolvedNodes.find((node)=>node.id === insertedNode.id) ?? insertedNode
89
+ };
90
+ }
91
+ const loopSequenceNodes = loopSequencePlacement ? (0, LoopNode_sequence_cjs_namespaceObject.resolveLoopSequenceMaterializedNodes)({
92
+ nodes,
93
+ edges,
94
+ insertedNode,
95
+ placement: loopSequencePlacement,
96
+ getNodeSize
97
+ }) : null;
98
+ let resolvedNodes = loopSequenceNodes;
99
+ if (!resolvedNodes) resolvedNodes = resolveSiblingCollisions(nodes, insertedNode, {
100
+ ignoredNodeTypes,
101
+ getNodeSize
102
+ });
103
+ const fittedNodes = (0, container_sizing_cjs_namespaceObject.ensureContainersFitChildren)(resolvedNodes, {
104
+ containerIds: [
105
+ insertedNode.parentId
106
+ ],
107
+ getContainerFitGeometry: (node)=>getContainerFitGeometry(registry, node),
108
+ getNodeDimensions: getNodeSize,
109
+ ignoredNodeTypes,
110
+ includeAncestors: true
111
+ });
112
+ return {
113
+ nodes: fittedNodes,
114
+ insertedNode: fittedNodes.find((node)=>node.id === insertedNode.id) ?? insertedNode
115
+ };
116
+ }
38
117
  const AddNodeManager = ({ initializing, customPanel: CustomPanel, createNodeData, onBeforeNodeAdded, onNodeAdded, ignoredNodeTypes })=>{
39
118
  const reactFlowInstance = (0, react_cjs_namespaceObject.useReactFlow)();
40
119
  const registry = (0, index_cjs_namespaceObject.useOptionalNodeTypeRegistry)();
@@ -70,28 +149,39 @@ const AddNodeManager = ({ initializing, customPanel: CustomPanel, createNodeData
70
149
  const handleNodeSelect = (0, external_react_namespaceObject.useCallback)((nodeItem)=>{
71
150
  const currentPreviewNode = reactFlowInstance.getNode(external_constants_cjs_namespaceObject.PREVIEW_NODE_ID);
72
151
  if (!currentPreviewNode || !previewNodeConnectionInfo || 0 === previewNodeConnectionInfo.length) return;
152
+ const loopSequencePlacement = (0, LoopNode_sequence_cjs_namespaceObject.getLoopSequencePlacementFromPreviewGraph)(currentPreviewNode, previewNodeConnectionInfo);
73
153
  const newNodeId = `${nodeItem.data.type}-${Date.now()}`;
74
154
  const baseNodeData = createNodeData ? createNodeData(nodeItem) : {
75
155
  label: nodeItem.name,
76
156
  subLabel: nodeItem.description
77
157
  };
78
- const nodeData = currentPreviewNode.data?.useSmartHandles ? {
158
+ const nodeData = {
79
159
  ...baseNodeData,
80
- useSmartHandles: true
81
- } : baseNodeData;
160
+ ...nodeItem.data.version ? {
161
+ typeVersion: nodeItem.data.version
162
+ } : {},
163
+ ...currentPreviewNode.data?.useSmartHandles ? {
164
+ useSmartHandles: true
165
+ } : {}
166
+ };
82
167
  const newNode = {
83
168
  id: newNodeId,
84
169
  type: nodeItem.data.type,
85
170
  position: currentPreviewNode.position,
171
+ parentId: currentPreviewNode.parentId,
172
+ extent: currentPreviewNode.extent,
86
173
  selected: true,
87
174
  data: nodeData
88
175
  };
89
- const newNodeManifest = registry?.getManifest(nodeItem.data.type);
176
+ const newNodeManifest = registry?.getManifest(nodeItem.data.type, nodeItem.data.version);
177
+ const newNodeDimensions = getManifestAwareNodeDimensions(registry, newNode);
178
+ if (currentPreviewNode.parentId) newNode.position = centerNodeOnPreview(currentPreviewNode, newNodeDimensions);
179
+ else if ((0, LoopNode_helpers_cjs_namespaceObject.isLoopContainerManifest)(newNodeManifest)) newNode.position = centerNodeVerticallyOnPreview(currentPreviewNode, newNodeDimensions);
90
180
  const newEdges = [];
91
181
  const previewEdgeIds = [];
92
182
  for (const connectionInfoItem of previewNodeConnectionInfo){
93
183
  const newNodeHandleType = connectionInfoItem.addNewNodeAsSource ? 'source' : 'target';
94
- const newNodeDefaultHandle = newNodeManifest ? registry?.getDefaultHandle(newNodeManifest.nodeType, newNodeHandleType) : void 0;
184
+ const newNodeDefaultHandle = newNodeManifest ? registry?.getDefaultHandle(newNodeManifest.nodeType, newNodeHandleType, nodeItem.data.version) : void 0;
95
185
  const newNodeHandleId = newNodeDefaultHandle?.id;
96
186
  const edgeSourceTargetData = connectionInfoItem.addNewNodeAsSource ? {
97
187
  source: newNode.id,
@@ -116,6 +206,7 @@ const AddNodeManager = ({ initializing, customPanel: CustomPanel, createNodeData
116
206
  newNode,
117
207
  newEdges
118
208
  };
209
+ let resolvedFinalNode = finalNode;
119
210
  reactFlowInstance.setNodes((nodes)=>{
120
211
  const newNodes = [
121
212
  ...nodes.filter((n)=>n.id !== external_constants_cjs_namespaceObject.PREVIEW_NODE_ID).map((n)=>({
@@ -124,9 +215,9 @@ const AddNodeManager = ({ initializing, customPanel: CustomPanel, createNodeData
124
215
  })),
125
216
  finalNode
126
217
  ];
127
- return (0, external_utils_index_cjs_namespaceObject.resolveCollisions)(newNodes, {
128
- ignoredNodeTypes
129
- });
218
+ const placement = resolveNodePlacement(newNodes, finalNode, registry, ignoredNodeTypes, reactFlowInstance.getEdges(), loopSequencePlacement);
219
+ resolvedFinalNode = placement.insertedNode;
220
+ return placement.nodes;
130
221
  });
131
222
  reactFlowInstance.setEdges((edges)=>[
132
223
  ...edges.filter((e)=>!previewEdgeIds.includes(e.id)),
@@ -134,7 +225,7 @@ const AddNodeManager = ({ initializing, customPanel: CustomPanel, createNodeData
134
225
  ]);
135
226
  const [firstConnection] = previewNodeConnectionInfo;
136
227
  if (firstConnection) {
137
- const firstEdgeSourceHandle = firstConnection.addNewNodeAsSource ? newNodeManifest && registry?.getDefaultHandle(newNodeManifest.nodeType, 'source')?.id : firstConnection.existingHandleId;
228
+ const firstEdgeSourceHandle = firstConnection.addNewNodeAsSource ? newNodeManifest && registry?.getDefaultHandle(newNodeManifest.nodeType, 'source', nodeItem.data.version)?.id : firstConnection.existingHandleId;
138
229
  const firstEdgeData = firstConnection.addNewNodeAsSource ? {
139
230
  source: finalNode.id,
140
231
  sourceHandle: firstEdgeSourceHandle ?? 'output'
@@ -142,7 +233,7 @@ const AddNodeManager = ({ initializing, customPanel: CustomPanel, createNodeData
142
233
  source: firstConnection.existingNodeId,
143
234
  sourceHandle: firstConnection.existingHandleId
144
235
  };
145
- onNodeAdded?.(firstEdgeData.source, firstEdgeData.sourceHandle, finalNode);
236
+ onNodeAdded?.(firstEdgeData.source, firstEdgeData.sourceHandle, resolvedFinalNode);
146
237
  }
147
238
  restoreEdgesRef.current = null;
148
239
  handleClose();
@@ -1 +1 @@
1
- {"version":3,"file":"AddNodeManager.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/AddNodePanel/AddNodeManager.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,0CAA0C,CAAC;AAE3E,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,WAAW,mBAAmB;IAKlC,WAAW,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC;IAI7E,YAAY,CAAC,EAAE,OAAO,CAAC;IAIvB,gBAAgB,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAK7F,cAAc,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,YAAY,CAAC,KAAK,YAAY,CAAC;IAOtE,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK;QAAE,OAAO,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,IAAI,EAAE,CAAA;KAAE,CAAC;IAK7F,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,KAAK,IAAI,CAAC;IAMpF,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AASD,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAqMxD,CAAC"}
1
+ {"version":3,"file":"AddNodeManager.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/AddNodePanel/AddNodeManager.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,0CAA0C,CAAC;AAE3E,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAQhD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,WAAW,mBAAmB;IAKlC,WAAW,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC;IAI7E,YAAY,CAAC,EAAE,OAAO,CAAC;IAIvB,gBAAgB,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAK7F,cAAc,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,YAAY,CAAC,KAAK,YAAY,CAAC;IAOtE,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK;QAAE,OAAO,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,IAAI,EAAE,CAAA;KAAE,CAAC;IAK7F,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,KAAK,IAAI,CAAC;IAMpF,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAuHD,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAiOxD,CAAC"}
@@ -5,8 +5,87 @@ import { FLOATING_CANVAS_PANEL_OFFSET, PREVIEW_NODE_ID } from "../../constants.j
5
5
  import { useOptionalNodeTypeRegistry } from "../../core/index.js";
6
6
  import { usePreviewNode } from "../../hooks/usePreviewNode.js";
7
7
  import { resolveCollisions } from "../../utils/index.js";
8
+ import { getExpandedShape, getExpandedSize } from "../../utils/collapse.js";
9
+ import { ensureContainersFitChildren, getNodeDimensions } from "../../utils/container-sizing.js";
10
+ import { getNodeTypeVersion } from "../../utils/manifest-resolver.js";
8
11
  import { FloatingCanvasPanel } from "../FloatingCanvasPanel/index.js";
12
+ import { getLoopContainerFitGeometry, isLoopContainerManifest } from "../LoopNode/LoopNode.helpers.js";
13
+ import { getLoopSequencePlacementFromPreviewGraph, resolveLoopSequenceMaterializedNodes } from "../LoopNode/LoopNode.sequence.js";
9
14
  import { AddNodePanel } from "./AddNodePanel.js";
15
+ function getManifestForNode(registry, node) {
16
+ return node.type ? registry?.getManifest(node.type, getNodeTypeVersion(node.data)) : void 0;
17
+ }
18
+ function getManifestAwareNodeDimensions(registry, node) {
19
+ const manifest = getManifestForNode(registry, node);
20
+ const expandedShape = getExpandedShape(manifest?.display.shape);
21
+ const fallbackDimensions = getExpandedSize(expandedShape, manifest);
22
+ return getNodeDimensions(node, fallbackDimensions);
23
+ }
24
+ function getContainerFitGeometry(registry, node) {
25
+ const manifest = getManifestForNode(registry, node);
26
+ return isLoopContainerManifest(manifest) ? getLoopContainerFitGeometry() : null;
27
+ }
28
+ function centerNodeOnPreview(previewNode, nodeDimensions) {
29
+ const previewDimensions = getNodeDimensions(previewNode);
30
+ return {
31
+ x: previewNode.position.x + (previewDimensions.width - nodeDimensions.width) / 2,
32
+ y: previewNode.position.y + (previewDimensions.height - nodeDimensions.height) / 2
33
+ };
34
+ }
35
+ function centerNodeVerticallyOnPreview(previewNode, nodeDimensions) {
36
+ const previewDimensions = getNodeDimensions(previewNode);
37
+ return {
38
+ x: previewNode.position.x,
39
+ y: previewNode.position.y + (previewDimensions.height - nodeDimensions.height) / 2
40
+ };
41
+ }
42
+ function resolveSiblingCollisions(nodes, insertedNode, options) {
43
+ const siblingNodes = nodes.filter((node)=>node.parentId === insertedNode.parentId);
44
+ const resolvedSiblings = resolveCollisions(siblingNodes, options);
45
+ const resolvedSiblingsById = new Map(resolvedSiblings.map((node)=>[
46
+ node.id,
47
+ node
48
+ ]));
49
+ return nodes.map((node)=>resolvedSiblingsById.get(node.id) ?? node);
50
+ }
51
+ function resolveNodePlacement(nodes, insertedNode, registry, ignoredNodeTypes, edges, loopSequencePlacement) {
52
+ const getNodeSize = (node)=>getManifestAwareNodeDimensions(registry, node);
53
+ if (!insertedNode.parentId) {
54
+ const resolvedNodes = resolveCollisions(nodes, {
55
+ ignoredNodeTypes,
56
+ getNodeSize
57
+ });
58
+ return {
59
+ nodes: resolvedNodes,
60
+ insertedNode: resolvedNodes.find((node)=>node.id === insertedNode.id) ?? insertedNode
61
+ };
62
+ }
63
+ const loopSequenceNodes = loopSequencePlacement ? resolveLoopSequenceMaterializedNodes({
64
+ nodes,
65
+ edges,
66
+ insertedNode,
67
+ placement: loopSequencePlacement,
68
+ getNodeSize
69
+ }) : null;
70
+ let resolvedNodes = loopSequenceNodes;
71
+ if (!resolvedNodes) resolvedNodes = resolveSiblingCollisions(nodes, insertedNode, {
72
+ ignoredNodeTypes,
73
+ getNodeSize
74
+ });
75
+ const fittedNodes = ensureContainersFitChildren(resolvedNodes, {
76
+ containerIds: [
77
+ insertedNode.parentId
78
+ ],
79
+ getContainerFitGeometry: (node)=>getContainerFitGeometry(registry, node),
80
+ getNodeDimensions: getNodeSize,
81
+ ignoredNodeTypes,
82
+ includeAncestors: true
83
+ });
84
+ return {
85
+ nodes: fittedNodes,
86
+ insertedNode: fittedNodes.find((node)=>node.id === insertedNode.id) ?? insertedNode
87
+ };
88
+ }
10
89
  const AddNodeManager = ({ initializing, customPanel: CustomPanel, createNodeData, onBeforeNodeAdded, onNodeAdded, ignoredNodeTypes })=>{
11
90
  const reactFlowInstance = useReactFlow();
12
91
  const registry = useOptionalNodeTypeRegistry();
@@ -42,28 +121,39 @@ const AddNodeManager = ({ initializing, customPanel: CustomPanel, createNodeData
42
121
  const handleNodeSelect = useCallback((nodeItem)=>{
43
122
  const currentPreviewNode = reactFlowInstance.getNode(PREVIEW_NODE_ID);
44
123
  if (!currentPreviewNode || !previewNodeConnectionInfo || 0 === previewNodeConnectionInfo.length) return;
124
+ const loopSequencePlacement = getLoopSequencePlacementFromPreviewGraph(currentPreviewNode, previewNodeConnectionInfo);
45
125
  const newNodeId = `${nodeItem.data.type}-${Date.now()}`;
46
126
  const baseNodeData = createNodeData ? createNodeData(nodeItem) : {
47
127
  label: nodeItem.name,
48
128
  subLabel: nodeItem.description
49
129
  };
50
- const nodeData = currentPreviewNode.data?.useSmartHandles ? {
130
+ const nodeData = {
51
131
  ...baseNodeData,
52
- useSmartHandles: true
53
- } : baseNodeData;
132
+ ...nodeItem.data.version ? {
133
+ typeVersion: nodeItem.data.version
134
+ } : {},
135
+ ...currentPreviewNode.data?.useSmartHandles ? {
136
+ useSmartHandles: true
137
+ } : {}
138
+ };
54
139
  const newNode = {
55
140
  id: newNodeId,
56
141
  type: nodeItem.data.type,
57
142
  position: currentPreviewNode.position,
143
+ parentId: currentPreviewNode.parentId,
144
+ extent: currentPreviewNode.extent,
58
145
  selected: true,
59
146
  data: nodeData
60
147
  };
61
- const newNodeManifest = registry?.getManifest(nodeItem.data.type);
148
+ const newNodeManifest = registry?.getManifest(nodeItem.data.type, nodeItem.data.version);
149
+ const newNodeDimensions = getManifestAwareNodeDimensions(registry, newNode);
150
+ if (currentPreviewNode.parentId) newNode.position = centerNodeOnPreview(currentPreviewNode, newNodeDimensions);
151
+ else if (isLoopContainerManifest(newNodeManifest)) newNode.position = centerNodeVerticallyOnPreview(currentPreviewNode, newNodeDimensions);
62
152
  const newEdges = [];
63
153
  const previewEdgeIds = [];
64
154
  for (const connectionInfoItem of previewNodeConnectionInfo){
65
155
  const newNodeHandleType = connectionInfoItem.addNewNodeAsSource ? 'source' : 'target';
66
- const newNodeDefaultHandle = newNodeManifest ? registry?.getDefaultHandle(newNodeManifest.nodeType, newNodeHandleType) : void 0;
156
+ const newNodeDefaultHandle = newNodeManifest ? registry?.getDefaultHandle(newNodeManifest.nodeType, newNodeHandleType, nodeItem.data.version) : void 0;
67
157
  const newNodeHandleId = newNodeDefaultHandle?.id;
68
158
  const edgeSourceTargetData = connectionInfoItem.addNewNodeAsSource ? {
69
159
  source: newNode.id,
@@ -88,6 +178,7 @@ const AddNodeManager = ({ initializing, customPanel: CustomPanel, createNodeData
88
178
  newNode,
89
179
  newEdges
90
180
  };
181
+ let resolvedFinalNode = finalNode;
91
182
  reactFlowInstance.setNodes((nodes)=>{
92
183
  const newNodes = [
93
184
  ...nodes.filter((n)=>n.id !== PREVIEW_NODE_ID).map((n)=>({
@@ -96,9 +187,9 @@ const AddNodeManager = ({ initializing, customPanel: CustomPanel, createNodeData
96
187
  })),
97
188
  finalNode
98
189
  ];
99
- return resolveCollisions(newNodes, {
100
- ignoredNodeTypes
101
- });
190
+ const placement = resolveNodePlacement(newNodes, finalNode, registry, ignoredNodeTypes, reactFlowInstance.getEdges(), loopSequencePlacement);
191
+ resolvedFinalNode = placement.insertedNode;
192
+ return placement.nodes;
102
193
  });
103
194
  reactFlowInstance.setEdges((edges)=>[
104
195
  ...edges.filter((e)=>!previewEdgeIds.includes(e.id)),
@@ -106,7 +197,7 @@ const AddNodeManager = ({ initializing, customPanel: CustomPanel, createNodeData
106
197
  ]);
107
198
  const [firstConnection] = previewNodeConnectionInfo;
108
199
  if (firstConnection) {
109
- const firstEdgeSourceHandle = firstConnection.addNewNodeAsSource ? newNodeManifest && registry?.getDefaultHandle(newNodeManifest.nodeType, 'source')?.id : firstConnection.existingHandleId;
200
+ const firstEdgeSourceHandle = firstConnection.addNewNodeAsSource ? newNodeManifest && registry?.getDefaultHandle(newNodeManifest.nodeType, 'source', nodeItem.data.version)?.id : firstConnection.existingHandleId;
110
201
  const firstEdgeData = firstConnection.addNewNodeAsSource ? {
111
202
  source: finalNode.id,
112
203
  sourceHandle: firstEdgeSourceHandle ?? 'output'
@@ -114,7 +205,7 @@ const AddNodeManager = ({ initializing, customPanel: CustomPanel, createNodeData
114
205
  source: firstConnection.existingNodeId,
115
206
  sourceHandle: firstConnection.existingHandleId
116
207
  };
117
- onNodeAdded?.(firstEdgeData.source, firstEdgeData.sourceHandle, finalNode);
208
+ onNodeAdded?.(firstEdgeData.source, firstEdgeData.sourceHandle, resolvedFinalNode);
118
209
  }
119
210
  restoreEdgesRef.current = null;
120
211
  handleClose();
@@ -28,7 +28,25 @@ __webpack_require__.d(__webpack_exports__, {
28
28
  });
29
29
  const react_cjs_namespaceObject = require("../../xyflow/react.cjs");
30
30
  const createPreviewGraph_cjs_namespaceObject = require("../../utils/createPreviewGraph.cjs");
31
+ const LoopNode_sequence_cjs_namespaceObject = require("../LoopNode/LoopNode.sequence.cjs");
31
32
  function createAddNodePreview(sourceNodeId, sourceHandleId, reactFlowInstance, handlePosition = react_cjs_namespaceObject.Position.Right, sourceHandleType = 'source', ignoredNodeTypes = []) {
33
+ if ('source' === sourceHandleType) {
34
+ const loopPreview = (0, LoopNode_sequence_cjs_namespaceObject.resolveLoopAddNodePreview)({
35
+ sourceNodeId,
36
+ sourceHandleId,
37
+ reactFlowInstance
38
+ });
39
+ if ('skip' === loopPreview.action) return;
40
+ if ('create-preview' === loopPreview.action) return void (0, createPreviewGraph_cjs_namespaceObject.showPreviewGraph)({
41
+ sourceNodeId,
42
+ sourceHandleId,
43
+ reactFlowInstance,
44
+ sourceHandleType,
45
+ handlePosition,
46
+ ignoredNodeTypes,
47
+ ...loopPreview.previewGraphOptions
48
+ });
49
+ }
32
50
  (0, createPreviewGraph_cjs_namespaceObject.showPreviewGraph)({
33
51
  sourceNodeId,
34
52
  sourceHandleId,
@@ -1 +1 @@
1
- {"version":3,"file":"createAddNodePreview.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/AddNodePanel/createAddNodePreview.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAa5F,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,EACtB,iBAAiB,EAAE,iBAAiB,EACpC,cAAc,GAAE,QAAyB,EACzC,gBAAgB,GAAE,QAAQ,GAAG,QAAmB,EAChD,gBAAgB,GAAE,MAAM,EAAO,GAC9B,IAAI,CASN"}
1
+ {"version":3,"file":"createAddNodePreview.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/AddNodePanel/createAddNodePreview.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAc5F,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,EACtB,iBAAiB,EAAE,iBAAiB,EACpC,cAAc,GAAE,QAAyB,EACzC,gBAAgB,GAAE,QAAQ,GAAG,QAAmB,EAChD,gBAAgB,GAAE,MAAM,EAAO,GAC9B,IAAI,CAkCN"}
@@ -1,6 +1,24 @@
1
1
  import { Position } from "../../xyflow/react.js";
2
2
  import { showPreviewGraph } from "../../utils/createPreviewGraph.js";
3
+ import { resolveLoopAddNodePreview } from "../LoopNode/LoopNode.sequence.js";
3
4
  function createAddNodePreview(sourceNodeId, sourceHandleId, reactFlowInstance, handlePosition = Position.Right, sourceHandleType = 'source', ignoredNodeTypes = []) {
5
+ if ('source' === sourceHandleType) {
6
+ const loopPreview = resolveLoopAddNodePreview({
7
+ sourceNodeId,
8
+ sourceHandleId,
9
+ reactFlowInstance
10
+ });
11
+ if ('skip' === loopPreview.action) return;
12
+ if ('create-preview' === loopPreview.action) return void showPreviewGraph({
13
+ sourceNodeId,
14
+ sourceHandleId,
15
+ reactFlowInstance,
16
+ sourceHandleType,
17
+ handlePosition,
18
+ ignoredNodeTypes,
19
+ ...loopPreview.previewGraphOptions
20
+ });
21
+ }
4
22
  showPreviewGraph({
5
23
  sourceNodeId,
6
24
  sourceHandleId,
@@ -92,6 +92,8 @@ const SequenceEdge_SequenceEdge = /*#__PURE__*/ (0, external_react_namespaceObje
92
92
  const status = executionStatus ? executionStatus?.status ?? executionStatus : validationStatus;
93
93
  const isDiffAdded = data?.isDiffAdded === true;
94
94
  const isDiffRemoved = data?.isDiffRemoved === true;
95
+ const hideArrowHead = data?.hideArrowHead === true;
96
+ const hideToolbar = data?.hideToolbar === true;
95
97
  const angle = ANGLE_MAP[targetPosition];
96
98
  const { x: offsetX, y: offsetY } = ARROW_OFFSETS[targetPosition];
97
99
  const { edgePath, labelX, labelY } = (0, index_cjs_namespaceObject.useEdgePath)({
@@ -102,8 +104,8 @@ const SequenceEdge_SequenceEdge = /*#__PURE__*/ (0, external_react_namespaceObje
102
104
  sourceX,
103
105
  sourceY,
104
106
  sourcePosition,
105
- targetX,
106
- targetY,
107
+ targetX: hideArrowHead ? targetX + offsetX : targetX,
108
+ targetY: hideArrowHead ? targetY + offsetY : targetY,
107
109
  targetPosition
108
110
  });
109
111
  const { showToolbar, toolbarPositioning, config: toolbarConfig, handleMouseMoveOnPath } = (0, external_Toolbar_index_cjs_namespaceObject.useEdgeToolbarState)({
@@ -170,12 +172,12 @@ const SequenceEdge_SequenceEdge = /*#__PURE__*/ (0, external_react_namespaceObje
170
172
  },
171
173
  ref: pathElementRef
172
174
  }),
173
- /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("polygon", {
175
+ !hideArrowHead && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("polygon", {
174
176
  points: `
175
- ${targetX},${targetY}
176
- ${targetX - ARROW_SIZE * Math.cos(angle - Math.PI / 6)},${targetY - ARROW_SIZE * Math.sin(angle - Math.PI / 6)}
177
- ${targetX - ARROW_SIZE * Math.cos(angle + Math.PI / 6)},${targetY - ARROW_SIZE * Math.sin(angle + Math.PI / 6)}
178
- `,
177
+ ${targetX},${targetY}
178
+ ${targetX - ARROW_SIZE * Math.cos(angle - Math.PI / 6)},${targetY - ARROW_SIZE * Math.sin(angle - Math.PI / 6)}
179
+ ${targetX - ARROW_SIZE * Math.cos(angle + Math.PI / 6)},${targetY - ARROW_SIZE * Math.sin(angle + Math.PI / 6)}
180
+ `,
179
181
  fill: edgeColor,
180
182
  style: {
181
183
  pointerEvents: 'none',
@@ -215,7 +217,7 @@ const SequenceEdge_SequenceEdge = /*#__PURE__*/ (0, external_react_namespaceObje
215
217
  })
216
218
  ]
217
219
  }),
218
- showToolbar && toolbarPositioning && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_Toolbar_index_cjs_namespaceObject.EdgeToolbar, {
220
+ !hideToolbar && showToolbar && toolbarPositioning && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_Toolbar_index_cjs_namespaceObject.EdgeToolbar, {
219
221
  edgeId: id,
220
222
  visible: showToolbar,
221
223
  positioning: toolbarPositioning,
@@ -1 +1 @@
1
- {"version":3,"file":"SequenceEdge.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/Edges/SequenceEdge.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAY,MAAM,0CAA0C,CAAC;AAoDpF,eAAO,MAAM,YAAY,iDAuMJ,CAAC"}
1
+ {"version":3,"file":"SequenceEdge.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/Edges/SequenceEdge.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAY,MAAM,0CAA0C,CAAC;AAoDpF,eAAO,MAAM,YAAY,iDA+MJ,CAAC"}
@@ -64,6 +64,8 @@ const SequenceEdge_SequenceEdge = /*#__PURE__*/ memo(function({ id, selected, so
64
64
  const status = executionStatus ? executionStatus?.status ?? executionStatus : validationStatus;
65
65
  const isDiffAdded = data?.isDiffAdded === true;
66
66
  const isDiffRemoved = data?.isDiffRemoved === true;
67
+ const hideArrowHead = data?.hideArrowHead === true;
68
+ const hideToolbar = data?.hideToolbar === true;
67
69
  const angle = ANGLE_MAP[targetPosition];
68
70
  const { x: offsetX, y: offsetY } = ARROW_OFFSETS[targetPosition];
69
71
  const { edgePath, labelX, labelY } = useEdgePath({
@@ -74,8 +76,8 @@ const SequenceEdge_SequenceEdge = /*#__PURE__*/ memo(function({ id, selected, so
74
76
  sourceX,
75
77
  sourceY,
76
78
  sourcePosition,
77
- targetX,
78
- targetY,
79
+ targetX: hideArrowHead ? targetX + offsetX : targetX,
80
+ targetY: hideArrowHead ? targetY + offsetY : targetY,
79
81
  targetPosition
80
82
  });
81
83
  const { showToolbar, toolbarPositioning, config: toolbarConfig, handleMouseMoveOnPath } = useEdgeToolbarState({
@@ -142,12 +144,12 @@ const SequenceEdge_SequenceEdge = /*#__PURE__*/ memo(function({ id, selected, so
142
144
  },
143
145
  ref: pathElementRef
144
146
  }),
145
- /*#__PURE__*/ jsx("polygon", {
147
+ !hideArrowHead && /*#__PURE__*/ jsx("polygon", {
146
148
  points: `
147
- ${targetX},${targetY}
148
- ${targetX - ARROW_SIZE * Math.cos(angle - Math.PI / 6)},${targetY - ARROW_SIZE * Math.sin(angle - Math.PI / 6)}
149
- ${targetX - ARROW_SIZE * Math.cos(angle + Math.PI / 6)},${targetY - ARROW_SIZE * Math.sin(angle + Math.PI / 6)}
150
- `,
149
+ ${targetX},${targetY}
150
+ ${targetX - ARROW_SIZE * Math.cos(angle - Math.PI / 6)},${targetY - ARROW_SIZE * Math.sin(angle - Math.PI / 6)}
151
+ ${targetX - ARROW_SIZE * Math.cos(angle + Math.PI / 6)},${targetY - ARROW_SIZE * Math.sin(angle + Math.PI / 6)}
152
+ `,
151
153
  fill: edgeColor,
152
154
  style: {
153
155
  pointerEvents: 'none',
@@ -187,7 +189,7 @@ const SequenceEdge_SequenceEdge = /*#__PURE__*/ memo(function({ id, selected, so
187
189
  })
188
190
  ]
189
191
  }),
190
- showToolbar && toolbarPositioning && /*#__PURE__*/ jsx(EdgeToolbar, {
192
+ !hideToolbar && showToolbar && toolbarPositioning && /*#__PURE__*/ jsx(EdgeToolbar, {
191
193
  edgeId: id,
192
194
  visible: showToolbar,
193
195
  positioning: toolbarPositioning,
@@ -333,7 +333,10 @@ const CanvasWithControlsContent = ({ initialCanvases, initialPath, onCanvasesCha
333
333
  const updateNodes = (0, canvasStore_cjs_namespaceObject.useCanvasStore)(canvasStore_cjs_namespaceObject.selectUpdateNodes);
334
334
  (0, external_react_namespaceObject.useEffect)(()=>{
335
335
  const handleAction = (event)=>{
336
- if (reactFlowInstance) (0, createAddNodePreview_cjs_namespaceObject.createAddNodePreview)(event.nodeId, event.handleId, reactFlowInstance);
336
+ if (reactFlowInstance) {
337
+ const sourceHandleType = 'input' === event.handleType ? 'target' : 'source';
338
+ (0, createAddNodePreview_cjs_namespaceObject.createAddNodePreview)(event.nodeId, event.handleId, reactFlowInstance, event.position, sourceHandleType);
339
+ }
337
340
  };
338
341
  CanvasEventBus_cjs_namespaceObject.canvasEventBus.on('handle:action', handleAction);
339
342
  return ()=>{
@@ -1 +1 @@
1
- {"version":3,"file":"HierarchicalCanvasWithControls.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/HierarchicalCanvas/HierarchicalCanvasWithControls.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA6d/B,eAAO,MAAM,8BAA8B,EAAE,KAAK,CAAC,EA8BlD,CAAC"}
1
+ {"version":3,"file":"HierarchicalCanvasWithControls.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/HierarchicalCanvas/HierarchicalCanvasWithControls.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAqe/B,eAAO,MAAM,8BAA8B,EAAE,KAAK,CAAC,EA8BlD,CAAC"}
@@ -305,7 +305,10 @@ const CanvasWithControlsContent = ({ initialCanvases, initialPath, onCanvasesCha
305
305
  const updateNodes = useCanvasStore(selectUpdateNodes);
306
306
  useEffect(()=>{
307
307
  const handleAction = (event)=>{
308
- if (reactFlowInstance) createAddNodePreview(event.nodeId, event.handleId, reactFlowInstance);
308
+ if (reactFlowInstance) {
309
+ const sourceHandleType = 'input' === event.handleType ? 'target' : 'source';
310
+ createAddNodePreview(event.nodeId, event.handleId, reactFlowInstance, event.position, sourceHandleType);
311
+ }
309
312
  };
310
313
  canvasEventBus.on('handle:action', handleAction);
311
314
  return ()=>{
@@ -24,17 +24,20 @@ var __webpack_require__ = {};
24
24
  var __webpack_exports__ = {};
25
25
  __webpack_require__.r(__webpack_exports__);
26
26
  __webpack_require__.d(__webpack_exports__, {
27
- DEFAULT_LOOP_FRAME_BACKGROUND: ()=>DEFAULT_LOOP_FRAME_BACKGROUND,
28
- DEFAULT_LOOP_ICON: ()=>DEFAULT_LOOP_ICON,
29
- DEFAULT_LOOP_HEIGHT: ()=>DEFAULT_LOOP_HEIGHT,
30
27
  DEFAULT_LOOP_MIN_HEIGHT: ()=>DEFAULT_LOOP_MIN_HEIGHT,
31
- DEFAULT_LOOP_WIDTH: ()=>DEFAULT_LOOP_WIDTH,
32
28
  LOOP_SHELL_RADIUS_PX: ()=>LOOP_SHELL_RADIUS_PX,
33
29
  DEFAULT_LOOP_TITLE: ()=>DEFAULT_LOOP_TITLE,
34
30
  LOOP_FRAME_INSET_PX: ()=>LOOP_FRAME_INSET_PX,
31
+ LOOP_BODY_PADDING_PX: ()=>LOOP_BODY_PADDING_PX,
32
+ DEFAULT_LOOP_HEADER_HEIGHT_PX: ()=>DEFAULT_LOOP_HEADER_HEIGHT_PX,
33
+ LOOP_INNER_HANDLE_RAIL_WIDTH_PX: ()=>LOOP_INNER_HANDLE_RAIL_WIDTH_PX,
34
+ DEFAULT_LOOP_FRAME_BACKGROUND: ()=>DEFAULT_LOOP_FRAME_BACKGROUND,
35
+ DEFAULT_LOOP_ICON: ()=>DEFAULT_LOOP_ICON,
36
+ DEFAULT_LOOP_HEIGHT: ()=>DEFAULT_LOOP_HEIGHT,
37
+ DEFAULT_LOOP_WIDTH: ()=>DEFAULT_LOOP_WIDTH,
35
38
  DEFAULT_LOOP_FRAME_BORDER: ()=>DEFAULT_LOOP_FRAME_BORDER,
39
+ LOOP_CHILD_SAFE_GAP_PX: ()=>LOOP_CHILD_SAFE_GAP_PX,
36
40
  DEFAULT_LOOP_MIN_WIDTH: ()=>DEFAULT_LOOP_MIN_WIDTH,
37
- DEFAULT_LOOP_HEADER_HEIGHT_PX: ()=>DEFAULT_LOOP_HEADER_HEIGHT_PX,
38
41
  DEFAULT_LOOP_SHELL_BACKGROUND: ()=>DEFAULT_LOOP_SHELL_BACKGROUND
39
42
  });
40
43
  const external_constants_cjs_namespaceObject = require("../../constants.cjs");
@@ -47,6 +50,9 @@ const DEFAULT_LOOP_MIN_WIDTH = 12 * external_constants_cjs_namespaceObject.GRID_
47
50
  const DEFAULT_LOOP_MIN_HEIGHT = 12 * external_constants_cjs_namespaceObject.GRID_SPACING;
48
51
  const LOOP_SHELL_RADIUS_PX = 20;
49
52
  const LOOP_FRAME_INSET_PX = 12;
53
+ const LOOP_BODY_PADDING_PX = 2 * external_constants_cjs_namespaceObject.GRID_SPACING;
54
+ const LOOP_INNER_HANDLE_RAIL_WIDTH_PX = 5 * external_constants_cjs_namespaceObject.GRID_SPACING;
55
+ const LOOP_CHILD_SAFE_GAP_PX = external_constants_cjs_namespaceObject.GRID_SPACING;
50
56
  const DEFAULT_LOOP_SHELL_BACKGROUND = 'var(--canvas-background)';
51
57
  const DEFAULT_LOOP_FRAME_BACKGROUND = 'var(--canvas-background)';
52
58
  const DEFAULT_LOOP_FRAME_BORDER = 'var(--canvas-border)';
@@ -60,7 +66,10 @@ exports.DEFAULT_LOOP_MIN_WIDTH = __webpack_exports__.DEFAULT_LOOP_MIN_WIDTH;
60
66
  exports.DEFAULT_LOOP_SHELL_BACKGROUND = __webpack_exports__.DEFAULT_LOOP_SHELL_BACKGROUND;
61
67
  exports.DEFAULT_LOOP_TITLE = __webpack_exports__.DEFAULT_LOOP_TITLE;
62
68
  exports.DEFAULT_LOOP_WIDTH = __webpack_exports__.DEFAULT_LOOP_WIDTH;
69
+ exports.LOOP_BODY_PADDING_PX = __webpack_exports__.LOOP_BODY_PADDING_PX;
70
+ exports.LOOP_CHILD_SAFE_GAP_PX = __webpack_exports__.LOOP_CHILD_SAFE_GAP_PX;
63
71
  exports.LOOP_FRAME_INSET_PX = __webpack_exports__.LOOP_FRAME_INSET_PX;
72
+ exports.LOOP_INNER_HANDLE_RAIL_WIDTH_PX = __webpack_exports__.LOOP_INNER_HANDLE_RAIL_WIDTH_PX;
64
73
  exports.LOOP_SHELL_RADIUS_PX = __webpack_exports__.LOOP_SHELL_RADIUS_PX;
65
74
  for(var __rspack_i in __webpack_exports__)if (-1 === [
66
75
  "DEFAULT_LOOP_FRAME_BACKGROUND",
@@ -73,7 +82,10 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
73
82
  "DEFAULT_LOOP_SHELL_BACKGROUND",
74
83
  "DEFAULT_LOOP_TITLE",
75
84
  "DEFAULT_LOOP_WIDTH",
85
+ "LOOP_BODY_PADDING_PX",
86
+ "LOOP_CHILD_SAFE_GAP_PX",
76
87
  "LOOP_FRAME_INSET_PX",
88
+ "LOOP_INNER_HANDLE_RAIL_WIDTH_PX",
77
89
  "LOOP_SHELL_RADIUS_PX"
78
90
  ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
79
91
  Object.defineProperty(exports, '__esModule', {
@@ -7,6 +7,9 @@ export declare const DEFAULT_LOOP_MIN_WIDTH: number;
7
7
  export declare const DEFAULT_LOOP_MIN_HEIGHT: number;
8
8
  export declare const LOOP_SHELL_RADIUS_PX = 20;
9
9
  export declare const LOOP_FRAME_INSET_PX = 12;
10
+ export declare const LOOP_BODY_PADDING_PX: number;
11
+ export declare const LOOP_INNER_HANDLE_RAIL_WIDTH_PX: number;
12
+ export declare const LOOP_CHILD_SAFE_GAP_PX = 16;
10
13
  export declare const DEFAULT_LOOP_SHELL_BACKGROUND = "var(--canvas-background)";
11
14
  export declare const DEFAULT_LOOP_FRAME_BACKGROUND = "var(--canvas-background)";
12
15
  export declare const DEFAULT_LOOP_FRAME_BORDER = "var(--canvas-border)";
@@ -1 +1 @@
1
- {"version":3,"file":"LoopNode.constants.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/LoopNode/LoopNode.constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAC1C,eAAO,MAAM,kBAAkB,SAAS,CAAC;AACzC,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAGhD,eAAO,MAAM,kBAAkB,QAAoB,CAAC;AACpD,eAAO,MAAM,mBAAmB,QAAoB,CAAC;AAErD,eAAO,MAAM,sBAAsB,QAAoB,CAAC;AACxD,eAAO,MAAM,uBAAuB,QAAoB,CAAC;AACzD,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAEtC,eAAO,MAAM,6BAA6B,6BAA6B,CAAC;AACxE,eAAO,MAAM,6BAA6B,6BAA6B,CAAC;AACxE,eAAO,MAAM,yBAAyB,yBAAyB,CAAC"}
1
+ {"version":3,"file":"LoopNode.constants.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/LoopNode/LoopNode.constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAC1C,eAAO,MAAM,kBAAkB,SAAS,CAAC;AACzC,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAGhD,eAAO,MAAM,kBAAkB,QAAoB,CAAC;AACpD,eAAO,MAAM,mBAAmB,QAAoB,CAAC;AAErD,eAAO,MAAM,sBAAsB,QAAoB,CAAC;AACxD,eAAO,MAAM,uBAAuB,QAAoB,CAAC;AACzD,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,eAAO,MAAM,oBAAoB,QAAmB,CAAC;AACrD,eAAO,MAAM,+BAA+B,QAAmB,CAAC;AAChE,eAAO,MAAM,sBAAsB,KAAe,CAAC;AAEnD,eAAO,MAAM,6BAA6B,6BAA6B,CAAC;AACxE,eAAO,MAAM,6BAA6B,6BAA6B,CAAC;AACxE,eAAO,MAAM,yBAAyB,yBAAyB,CAAC"}
@@ -8,7 +8,10 @@ const DEFAULT_LOOP_MIN_WIDTH = 12 * GRID_SPACING;
8
8
  const DEFAULT_LOOP_MIN_HEIGHT = 12 * GRID_SPACING;
9
9
  const LOOP_SHELL_RADIUS_PX = 20;
10
10
  const LOOP_FRAME_INSET_PX = 12;
11
+ const LOOP_BODY_PADDING_PX = 2 * GRID_SPACING;
12
+ const LOOP_INNER_HANDLE_RAIL_WIDTH_PX = 5 * GRID_SPACING;
13
+ const LOOP_CHILD_SAFE_GAP_PX = GRID_SPACING;
11
14
  const DEFAULT_LOOP_SHELL_BACKGROUND = 'var(--canvas-background)';
12
15
  const DEFAULT_LOOP_FRAME_BACKGROUND = 'var(--canvas-background)';
13
16
  const DEFAULT_LOOP_FRAME_BORDER = 'var(--canvas-border)';
14
- export { DEFAULT_LOOP_FRAME_BACKGROUND, DEFAULT_LOOP_FRAME_BORDER, DEFAULT_LOOP_HEADER_HEIGHT_PX, DEFAULT_LOOP_HEIGHT, DEFAULT_LOOP_ICON, DEFAULT_LOOP_MIN_HEIGHT, DEFAULT_LOOP_MIN_WIDTH, DEFAULT_LOOP_SHELL_BACKGROUND, DEFAULT_LOOP_TITLE, DEFAULT_LOOP_WIDTH, LOOP_FRAME_INSET_PX, LOOP_SHELL_RADIUS_PX };
17
+ export { DEFAULT_LOOP_FRAME_BACKGROUND, DEFAULT_LOOP_FRAME_BORDER, DEFAULT_LOOP_HEADER_HEIGHT_PX, DEFAULT_LOOP_HEIGHT, DEFAULT_LOOP_ICON, DEFAULT_LOOP_MIN_HEIGHT, DEFAULT_LOOP_MIN_WIDTH, DEFAULT_LOOP_SHELL_BACKGROUND, DEFAULT_LOOP_TITLE, DEFAULT_LOOP_WIDTH, LOOP_BODY_PADDING_PX, LOOP_CHILD_SAFE_GAP_PX, LOOP_FRAME_INSET_PX, LOOP_INNER_HANDLE_RAIL_WIDTH_PX, LOOP_SHELL_RADIUS_PX };