@uipath/apollo-react 4.18.2 → 4.18.3

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.
@@ -178,7 +178,8 @@ function placeAddedNode({ nodes, edges, previewNode, insertedNode, registry, ign
178
178
  edges,
179
179
  getNodeDimensions: getDimensions,
180
180
  safeArea: (0, container_cjs_namespaceObject.getContainerSafeArea)(containerNode),
181
- getContainerFitGeometry: (node)=>(0, container_cjs_namespaceObject.isContainerNodeManifest)(getManifestForNode(registry, node)) ? (0, container_cjs_namespaceObject.getContainerFitGeometry)() : null
181
+ getContainerFitGeometry: (node)=>(0, container_cjs_namespaceObject.isContainerNodeManifest)(getManifestForNode(registry, node)) ? (0, container_cjs_namespaceObject.getContainerFitGeometry)() : null,
182
+ ignoredNodeTypes
182
183
  });
183
184
  return {
184
185
  nodes: resolvedNodes,
@@ -192,10 +193,25 @@ function placeAddedNode({ nodes, edges, previewNode, insertedNode, registry, ign
192
193
  insertedNode,
193
194
  getNodeSize: getDimensions
194
195
  });
195
- return resolveScopedCollisions(shifted?.nodes ?? nodes, shifted?.insertedNode ?? insertedNode, {
196
+ const placementResult = resolveScopedCollisions(shifted?.nodes ?? nodes, shifted?.insertedNode ?? insertedNode, {
196
197
  ignoredNodeTypes,
197
198
  getNodeSize: getDimensions
198
199
  });
200
+ if (!placementResult.insertedNode.parentId) return placementResult;
201
+ const fittedNodes = (0, container_cjs_namespaceObject.fitContainersAndPushSiblings)({
202
+ nodes: placementResult.nodes,
203
+ containerIds: [
204
+ placementResult.insertedNode.parentId
205
+ ],
206
+ getContainerFitGeometry: (node)=>(0, container_cjs_namespaceObject.isContainerNodeManifest)(getManifestForNode(registry, node)) ? (0, container_cjs_namespaceObject.getContainerFitGeometry)() : null,
207
+ getNodeDimensions: getDimensions,
208
+ ignoredNodeTypes,
209
+ gap: container_cjs_namespaceObject.CONTAINER_SEQUENCE_GAP_PX
210
+ });
211
+ return {
212
+ nodes: fittedNodes,
213
+ insertedNode: fittedNodes.find((node)=>node.id === placementResult.insertedNode.id) ?? placementResult.insertedNode
214
+ };
199
215
  }
200
216
  exports.alignNodeToPreview = __webpack_exports__.alignNodeToPreview;
201
217
  exports.getOriginalEdge = __webpack_exports__.getOriginalEdge;
@@ -1 +1 @@
1
- {"version":3,"file":"AddNodeManager.helpers.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/AddNodePanel/AddNodeManager.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,0CAA0C,CAAC;AAG3E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAsBjD,UAAU,sBAAsB;IAC9B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,YAAY,EAAE,IAAI,CAAC;CACpB;AAMD,wBAAgB,eAAe,CAAC,WAAW,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,CAEjF;AAmCD,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,IAAI,EACjB,kBAAkB,EAAE,yBAAyB,EAAE,EAC/C,YAAY,EAAE,YAAY,GAAG,SAAS,GACrC,IAAI,CA2DN;AAqID,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,KAAK,EACL,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,gBAAgB,GACjB,EAAE;IACD,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,WAAW,EAAE,IAAI,CAAC;IAClB,YAAY,EAAE,IAAI,CAAC;IACnB,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B,GAAG,sBAAsB,CAsDzB"}
1
+ {"version":3,"file":"AddNodeManager.helpers.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/AddNodePanel/AddNodeManager.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,0CAA0C,CAAC;AAG3E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAwBjD,UAAU,sBAAsB;IAC9B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,YAAY,EAAE,IAAI,CAAC;CACpB;AAMD,wBAAgB,eAAe,CAAC,WAAW,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,CAEjF;AAmCD,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,IAAI,EACjB,kBAAkB,EAAE,yBAAyB,EAAE,EAC/C,YAAY,EAAE,YAAY,GAAG,SAAS,GACrC,IAAI,CA2DN;AAqID,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,KAAK,EACL,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,gBAAgB,GACjB,EAAE;IACD,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,WAAW,EAAE,IAAI,CAAC;IAClB,YAAY,EAAE,IAAI,CAAC;IACnB,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B,GAAG,sBAAsB,CAkFzB"}
@@ -2,7 +2,7 @@ import { Position } from "../../xyflow/react.js";
2
2
  import { GRID_SPACING } from "../../constants.js";
3
3
  import { resolveCollisions } from "../../utils/index.js";
4
4
  import { getExpandedSize } from "../../utils/collapse.js";
5
- import { collectLinearDownstreamSiblings, getContainerFitGeometry, getContainerPlacement, getContainerSafeArea, getNodeDimensions, isContainerNodeManifest, placeContainerNode } from "../../utils/container.js";
5
+ import { CONTAINER_SEQUENCE_GAP_PX, collectLinearDownstreamSiblings, fitContainersAndPushSiblings, getContainerFitGeometry, getContainerPlacement, getContainerSafeArea, getNodeDimensions, isContainerNodeManifest, placeContainerNode } from "../../utils/container.js";
6
6
  import { snapUpToGrid } from "../../utils/NodeUtils.js";
7
7
  const TOP_LEVEL_INSERTION_GAP_PX = 5 * GRID_SPACING;
8
8
  function getOriginalEdge(previewNode) {
@@ -148,7 +148,8 @@ function placeAddedNode({ nodes, edges, previewNode, insertedNode, registry, ign
148
148
  edges,
149
149
  getNodeDimensions: getDimensions,
150
150
  safeArea: getContainerSafeArea(containerNode),
151
- getContainerFitGeometry: (node)=>isContainerNodeManifest(getManifestForNode(registry, node)) ? getContainerFitGeometry() : null
151
+ getContainerFitGeometry: (node)=>isContainerNodeManifest(getManifestForNode(registry, node)) ? getContainerFitGeometry() : null,
152
+ ignoredNodeTypes
152
153
  });
153
154
  return {
154
155
  nodes: resolvedNodes,
@@ -162,9 +163,24 @@ function placeAddedNode({ nodes, edges, previewNode, insertedNode, registry, ign
162
163
  insertedNode,
163
164
  getNodeSize: getDimensions
164
165
  });
165
- return resolveScopedCollisions(shifted?.nodes ?? nodes, shifted?.insertedNode ?? insertedNode, {
166
+ const placementResult = resolveScopedCollisions(shifted?.nodes ?? nodes, shifted?.insertedNode ?? insertedNode, {
166
167
  ignoredNodeTypes,
167
168
  getNodeSize: getDimensions
168
169
  });
170
+ if (!placementResult.insertedNode.parentId) return placementResult;
171
+ const fittedNodes = fitContainersAndPushSiblings({
172
+ nodes: placementResult.nodes,
173
+ containerIds: [
174
+ placementResult.insertedNode.parentId
175
+ ],
176
+ getContainerFitGeometry: (node)=>isContainerNodeManifest(getManifestForNode(registry, node)) ? getContainerFitGeometry() : null,
177
+ getNodeDimensions: getDimensions,
178
+ ignoredNodeTypes,
179
+ gap: CONTAINER_SEQUENCE_GAP_PX
180
+ });
181
+ return {
182
+ nodes: fittedNodes,
183
+ insertedNode: fittedNodes.find((node)=>node.id === placementResult.insertedNode.id) ?? placementResult.insertedNode
184
+ };
169
185
  }
170
186
  export { alignNodeToPreview, getOriginalEdge, placeAddedNode };
@@ -102,7 +102,30 @@ function pickPreferredInnerHandle(groups, type) {
102
102
  }
103
103
  return null;
104
104
  }
105
+ function resolveClickedHandleType({ source, reactFlowInstance, getManifestForNode }) {
106
+ if (!source.handleId) return;
107
+ const sourceNode = reactFlowInstance.getNode(source.nodeId);
108
+ if (!sourceNode) return;
109
+ const sourceManifest = getManifestForNode(sourceNode);
110
+ const dataHandleConfiguration = sourceNode.data?.handleConfigurations;
111
+ const handleConfiguration = Array.isArray(dataHandleConfiguration) ? dataHandleConfiguration : sourceManifest?.handleConfiguration;
112
+ if (!handleConfiguration) return;
113
+ const sourceHandles = (0, manifest_resolver_cjs_namespaceObject.resolveHandles)(handleConfiguration, {
114
+ ...sourceNode.data,
115
+ nodeId: sourceNode.id
116
+ });
117
+ for (const group of sourceHandles){
118
+ const handle = group.handles.find((candidate)=>candidate.id === source.handleId);
119
+ if (handle) return handle.handleType;
120
+ }
121
+ }
105
122
  function resolveContainerAddNodePreview({ source, sourceHandleType, reactFlowInstance, getManifestForNode }) {
123
+ const clickedHandleType = resolveClickedHandleType({
124
+ source,
125
+ reactFlowInstance,
126
+ getManifestForNode
127
+ });
128
+ if ('output' !== clickedHandleType) return null;
106
129
  return (0, container_cjs_namespaceObject.resolveContainerPreview)({
107
130
  source,
108
131
  sourceHandleType,
@@ -1 +1 @@
1
- {"version":3,"file":"LoopNode.helpers.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/LoopNode/LoopNode.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,IAAI,EACT,QAAQ,EACR,KAAK,iBAAiB,EACvB,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAOjE,OAAO,KAAK,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAE7F,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAI5F,MAAM,MAAM,uBAAuB,GAAG,OAAO,GAAG,OAAO,CAAC;AACxD,MAAM,MAAM,oBAAoB,GAAG,mBAAmB,GAAG;IACvD,QAAQ,EAAE,uBAAuB,CAAC;IAClC,kBAAkB,EAAE,QAAQ,CAAC;CAC9B,CAAC;AAEF,MAAM,WAAW,iCAAiC;IAChD,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,QAAQ,CAAC;IAC/B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,gCAAgC,GAAG,CAC7C,IAAI,EAAE,IAAI,KACP,IAAI,CAAC,YAAY,EAAE,SAAS,GAAG,qBAAqB,CAAC,GAAG,SAAS,CAAC;AAOvE,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,mBAAmB,EAAE,GAC5B,oBAAoB,EAAE,CAaxB;AAMD,wBAAgB,8BAA8B,CAC5C,aAAa,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;;;EAQrE;AAwBD,wBAAgB,wCAAwC,CACtD,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,qBAAqB,CAAC,GAAG,SAAS,EAC/D,OAAO,EAAE,iBAAiB,GACzB,iCAAiC,GAAG,IAAI,CAgB1C;AAoBD,wBAAgB,8BAA8B,CAAC,EAC7C,MAAM,EACN,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GACnB,EAAE;IACD,MAAM,EAAE,eAAe,CAAC;IACxB,gBAAgB,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACtC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,kBAAkB,EAAE,gCAAgC,CAAC;CACtD,GAAG,qBAAqB,GAAG,IAAI,CA0B/B"}
1
+ {"version":3,"file":"LoopNode.helpers.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/LoopNode/LoopNode.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,IAAI,EACT,QAAQ,EACR,KAAK,iBAAiB,EACvB,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EAAuB,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAOtF,OAAO,KAAK,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAE7F,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAI5F,MAAM,MAAM,uBAAuB,GAAG,OAAO,GAAG,OAAO,CAAC;AACxD,MAAM,MAAM,oBAAoB,GAAG,mBAAmB,GAAG;IACvD,QAAQ,EAAE,uBAAuB,CAAC;IAClC,kBAAkB,EAAE,QAAQ,CAAC;CAC9B,CAAC;AAEF,MAAM,WAAW,iCAAiC;IAChD,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,QAAQ,CAAC;IAC/B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,gCAAgC,GAAG,CAC7C,IAAI,EAAE,IAAI,KACP,IAAI,CAAC,YAAY,EAAE,SAAS,GAAG,qBAAqB,CAAC,GAAG,SAAS,CAAC;AAOvE,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,mBAAmB,EAAE,GAC5B,oBAAoB,EAAE,CAaxB;AAMD,wBAAgB,8BAA8B,CAC5C,aAAa,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;;;EAQrE;AAwBD,wBAAgB,wCAAwC,CACtD,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,qBAAqB,CAAC,GAAG,SAAS,EAC/D,OAAO,EAAE,iBAAiB,GACzB,iCAAiC,GAAG,IAAI,CAgB1C;AAuDD,wBAAgB,8BAA8B,CAAC,EAC7C,MAAM,EACN,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GACnB,EAAE;IACD,MAAM,EAAE,eAAe,CAAC;IACxB,gBAAgB,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACtC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,kBAAkB,EAAE,gCAAgC,CAAC;CACtD,GAAG,qBAAqB,GAAG,IAAI,CAuC/B"}
@@ -71,7 +71,30 @@ function pickPreferredInnerHandle(groups, type) {
71
71
  }
72
72
  return null;
73
73
  }
74
+ function resolveClickedHandleType({ source, reactFlowInstance, getManifestForNode }) {
75
+ if (!source.handleId) return;
76
+ const sourceNode = reactFlowInstance.getNode(source.nodeId);
77
+ if (!sourceNode) return;
78
+ const sourceManifest = getManifestForNode(sourceNode);
79
+ const dataHandleConfiguration = sourceNode.data?.handleConfigurations;
80
+ const handleConfiguration = Array.isArray(dataHandleConfiguration) ? dataHandleConfiguration : sourceManifest?.handleConfiguration;
81
+ if (!handleConfiguration) return;
82
+ const sourceHandles = resolveHandles(handleConfiguration, {
83
+ ...sourceNode.data,
84
+ nodeId: sourceNode.id
85
+ });
86
+ for (const group of sourceHandles){
87
+ const handle = group.handles.find((candidate)=>candidate.id === source.handleId);
88
+ if (handle) return handle.handleType;
89
+ }
90
+ }
74
91
  function resolveContainerAddNodePreview({ source, sourceHandleType, reactFlowInstance, getManifestForNode }) {
92
+ const clickedHandleType = resolveClickedHandleType({
93
+ source,
94
+ reactFlowInstance,
95
+ getManifestForNode
96
+ });
97
+ if ('output' !== clickedHandleType) return null;
75
98
  return resolveContainerPreview({
76
99
  source,
77
100
  sourceHandleType,
@@ -30,6 +30,7 @@ __webpack_require__.d(__webpack_exports__, {
30
30
  getContainerSafeArea: ()=>container_getContainerSafeArea,
31
31
  DEFAULT_CONTAINER_WIDTH: ()=>DEFAULT_CONTAINER_WIDTH,
32
32
  isContainerNodeManifest: ()=>isContainerNodeManifest,
33
+ fitContainersAndPushSiblings: ()=>fitContainersAndPushSiblings,
33
34
  DEFAULT_CONTAINER_MIN_HEIGHT: ()=>DEFAULT_CONTAINER_MIN_HEIGHT,
34
35
  placeContainerNode: ()=>placeContainerNode,
35
36
  getContainerNodeForEdge: ()=>getContainerNodeForEdge,
@@ -101,10 +102,7 @@ function container_getContainerFitGeometry() {
101
102
  return {
102
103
  minWidth: DEFAULT_CONTAINER_MIN_WIDTH,
103
104
  minHeight: DEFAULT_CONTAINER_MIN_HEIGHT,
104
- padding: {
105
- right: padding.right,
106
- bottom: padding.bottom
107
- }
105
+ padding
108
106
  };
109
107
  }
110
108
  function isContainerNodeManifest(manifest) {
@@ -162,25 +160,52 @@ function ensureContainersFitChildren(nodes, { containerIds, getContainerFitGeome
162
160
  const padding = geometry.padding ?? {};
163
161
  let requiredWidth = geometry.minWidth;
164
162
  let requiredHeight = geometry.minHeight;
163
+ let leadingShiftX = 0;
164
+ let leadingShiftY = 0;
165
+ const childrenToFit = [];
166
+ const childIdsToShift = new Set();
165
167
  for (const childNode of nextNodes){
166
168
  if (childNode.id === external_constants_cjs_namespaceObject.PREVIEW_NODE_ID || childNode.hidden || childNode.parentId !== containerId || ignoredTypes.has(childNode.type ?? '')) continue;
167
169
  const childSize = resolveNodeDimensions(childNode);
168
- requiredWidth = Math.max(requiredWidth, childNode.position.x + childSize.width + (padding.right ?? 0));
169
- requiredHeight = Math.max(requiredHeight, childNode.position.y + childSize.height + (padding.bottom ?? 0));
170
+ childrenToFit.push({
171
+ node: childNode,
172
+ size: childSize
173
+ });
174
+ childIdsToShift.add(childNode.id);
175
+ if (void 0 !== padding.left) leadingShiftX = Math.max(leadingShiftX, padding.left - childNode.position.x);
176
+ if (void 0 !== padding.top) leadingShiftY = Math.max(leadingShiftY, padding.top - childNode.position.y);
177
+ }
178
+ leadingShiftX = leadingShiftX > 0 ? (0, external_NodeUtils_cjs_namespaceObject.snapUpToGrid)(leadingShiftX) : 0;
179
+ leadingShiftY = leadingShiftY > 0 ? (0, external_NodeUtils_cjs_namespaceObject.snapUpToGrid)(leadingShiftY) : 0;
180
+ for (const { node: childNode, size: childSize } of childrenToFit){
181
+ requiredWidth = Math.max(requiredWidth, childNode.position.x + leadingShiftX + childSize.width + (padding.right ?? 0));
182
+ requiredHeight = Math.max(requiredHeight, childNode.position.y + leadingShiftY + childSize.height + (padding.bottom ?? 0));
170
183
  }
184
+ requiredWidth = Math.max(requiredWidth, currentSize.width + leadingShiftX);
185
+ requiredHeight = Math.max(requiredHeight, currentSize.height + leadingShiftY);
171
186
  const nextSize = {
172
187
  width: Math.max(currentSize.width, (0, external_NodeUtils_cjs_namespaceObject.snapUpToGrid)(requiredWidth)),
173
188
  height: Math.max(currentSize.height, (0, external_NodeUtils_cjs_namespaceObject.snapUpToGrid)(requiredHeight))
174
189
  };
175
- if (nextSize.width !== currentSize.width || nextSize.height !== currentSize.height) {
176
- nextNodes = nextNodes.map((node)=>node.id === containerId ? withNodeDimensions(node, nextSize) : node);
177
- nodesById.set(containerId, nextNodes.find((node)=>node.id === containerId));
178
- changes.push({
179
- containerId,
180
- previousSize: currentSize,
181
- nextSize
182
- });
183
- }
190
+ if (nextSize.width === currentSize.width && nextSize.height === currentSize.height && 0 === leadingShiftX && 0 === leadingShiftY) continue;
191
+ const shouldShiftChildren = 0 !== leadingShiftX || 0 !== leadingShiftY;
192
+ nextNodes = nextNodes.map((node)=>{
193
+ if (node.id === containerId) return withNodeDimensions(node, nextSize);
194
+ if (shouldShiftChildren && childIdsToShift.has(node.id)) return {
195
+ ...node,
196
+ position: {
197
+ x: node.position.x + leadingShiftX,
198
+ y: node.position.y + leadingShiftY
199
+ }
200
+ };
201
+ return node;
202
+ });
203
+ nodesById.set(containerId, nextNodes.find((node)=>node.id === containerId));
204
+ if (nextSize.width !== currentSize.width || nextSize.height !== currentSize.height) changes.push({
205
+ containerId,
206
+ previousSize: currentSize,
207
+ nextSize
208
+ });
184
209
  }
185
210
  return {
186
211
  nodes: nextNodes,
@@ -545,13 +570,14 @@ function pushSiblingsAfterContainerGrowth({ nodes, changes, getNodeDimensions, g
545
570
  shifted
546
571
  };
547
572
  }
548
- function fitContainersAndPushSiblings({ nodes, containerIds, getContainerFitGeometry, getNodeDimensions, gap }) {
573
+ function fitContainersAndPushSiblings({ nodes, containerIds, getContainerFitGeometry, getNodeDimensions, ignoredNodeTypes, gap }) {
549
574
  let nextNodes = nodes;
550
575
  for(let iteration = 0; iteration < 10; iteration += 1){
551
576
  const fitResult = ensureContainersFitChildren(nextNodes, {
552
577
  containerIds,
553
578
  getContainerFitGeometry,
554
579
  getNodeDimensions,
580
+ ignoredNodeTypes,
555
581
  includeAncestors: true
556
582
  });
557
583
  nextNodes = fitResult.nodes;
@@ -573,7 +599,7 @@ function getContainerPlacement(previewNode) {
573
599
  if (previewNode.parentId && placement.containerId !== previewNode.parentId) return null;
574
600
  return placement;
575
601
  }
576
- function placeContainerNode({ nodes, insertedNode, placement, safeArea, getContainerFitGeometry: resolveContainerFitGeometry = container_getContainerFitGeometry, getNodeDimensions: resolveNodeDimensions = container_getNodeDimensions, gap = CONTAINER_SEQUENCE_GAP_PX, downstreamNodeIds, edges }) {
602
+ function placeContainerNode({ nodes, insertedNode, placement, safeArea, getContainerFitGeometry: resolveContainerFitGeometry = container_getContainerFitGeometry, getNodeDimensions: resolveNodeDimensions = container_getNodeDimensions, gap = CONTAINER_SEQUENCE_GAP_PX, downstreamNodeIds, ignoredNodeTypes, edges }) {
577
603
  const containerNode = nodes.find((node)=>node.id === placement.containerId);
578
604
  const nodesById = new Map(nodes.map((node)=>[
579
605
  node.id,
@@ -632,6 +658,7 @@ function placeContainerNode({ nodes, insertedNode, placement, safeArea, getConta
632
658
  ],
633
659
  getContainerFitGeometry: resolveContainerFitGeometry,
634
660
  getNodeDimensions: resolveNodeDimensions,
661
+ ignoredNodeTypes,
635
662
  gap
636
663
  });
637
664
  }
@@ -643,6 +670,7 @@ exports.DEFAULT_CONTAINER_MIN_WIDTH = __webpack_exports__.DEFAULT_CONTAINER_MIN_
643
670
  exports.DEFAULT_CONTAINER_WIDTH = __webpack_exports__.DEFAULT_CONTAINER_WIDTH;
644
671
  exports.collectLinearDownstreamSiblings = __webpack_exports__.collectLinearDownstreamSiblings;
645
672
  exports.ensureContainersFitChildren = __webpack_exports__.ensureContainersFitChildren;
673
+ exports.fitContainersAndPushSiblings = __webpack_exports__.fitContainersAndPushSiblings;
646
674
  exports.getContainerFitGeometry = __webpack_exports__.getContainerFitGeometry;
647
675
  exports.getContainerNodeForEdge = __webpack_exports__.getContainerNodeForEdge;
648
676
  exports.getContainerPlacement = __webpack_exports__.getContainerPlacement;
@@ -660,6 +688,7 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
660
688
  "DEFAULT_CONTAINER_WIDTH",
661
689
  "collectLinearDownstreamSiblings",
662
690
  "ensureContainersFitChildren",
691
+ "fitContainersAndPushSiblings",
663
692
  "getContainerFitGeometry",
664
693
  "getContainerNodeForEdge",
665
694
  "getContainerPlacement",
@@ -9,7 +9,9 @@ export interface ContainerFitGeometry {
9
9
  minWidth: number;
10
10
  minHeight: number;
11
11
  padding?: {
12
+ left?: number;
12
13
  right?: number;
14
+ top?: number;
13
15
  bottom?: number;
14
16
  };
15
17
  }
@@ -94,8 +96,16 @@ export declare function collectLinearDownstreamSiblings({ startNodeId, parentId,
94
96
  getNextNodeId?: NextNodeResolver;
95
97
  }): string[];
96
98
  export declare function resolveContainerPreview({ source, sourceHandleType, reactFlowInstance, ...options }: ContainerPreviewContext & ContainerPreviewOptions): PreviewGraphOverrides | null;
99
+ export declare function fitContainersAndPushSiblings({ nodes, containerIds, getContainerFitGeometry, getNodeDimensions, ignoredNodeTypes, gap, }: {
100
+ nodes: Node[];
101
+ containerIds: Iterable<string>;
102
+ getContainerFitGeometry: (containerNode: Node) => ContainerFitGeometry | null | undefined;
103
+ getNodeDimensions: (node: Node) => NodeDimensions;
104
+ ignoredNodeTypes?: string[];
105
+ gap: number;
106
+ }): Node[];
97
107
  export declare function getContainerPlacement(previewNode: Pick<Node, 'data' | 'parentId'>): ContainerPlacement | null;
98
- export declare function placeContainerNode({ nodes, insertedNode, placement, safeArea, getContainerFitGeometry: resolveContainerFitGeometry, getNodeDimensions: resolveNodeDimensions, gap, downstreamNodeIds, edges, }: {
108
+ export declare function placeContainerNode({ nodes, insertedNode, placement, safeArea, getContainerFitGeometry: resolveContainerFitGeometry, getNodeDimensions: resolveNodeDimensions, gap, downstreamNodeIds, ignoredNodeTypes, edges, }: {
99
109
  nodes: Node[];
100
110
  insertedNode: Node;
101
111
  placement: ContainerPlacement;
@@ -104,6 +114,7 @@ export declare function placeContainerNode({ nodes, insertedNode, placement, saf
104
114
  getNodeDimensions?: (node: Node) => NodeDimensions;
105
115
  gap?: number;
106
116
  downstreamNodeIds?: Iterable<string>;
117
+ ignoredNodeTypes?: string[];
107
118
  edges?: Edge[];
108
119
  }): Node[];
109
120
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../../src/canvas/utils/container.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../../src/canvas/utils/container.ts"],"names":[],"mappings":"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"}
@@ -58,10 +58,7 @@ function container_getContainerFitGeometry() {
58
58
  return {
59
59
  minWidth: DEFAULT_CONTAINER_MIN_WIDTH,
60
60
  minHeight: DEFAULT_CONTAINER_MIN_HEIGHT,
61
- padding: {
62
- right: padding.right,
63
- bottom: padding.bottom
64
- }
61
+ padding
65
62
  };
66
63
  }
67
64
  function isContainerNodeManifest(manifest) {
@@ -119,25 +116,52 @@ function ensureContainersFitChildren(nodes, { containerIds, getContainerFitGeome
119
116
  const padding = geometry.padding ?? {};
120
117
  let requiredWidth = geometry.minWidth;
121
118
  let requiredHeight = geometry.minHeight;
119
+ let leadingShiftX = 0;
120
+ let leadingShiftY = 0;
121
+ const childrenToFit = [];
122
+ const childIdsToShift = new Set();
122
123
  for (const childNode of nextNodes){
123
124
  if (childNode.id === PREVIEW_NODE_ID || childNode.hidden || childNode.parentId !== containerId || ignoredTypes.has(childNode.type ?? '')) continue;
124
125
  const childSize = resolveNodeDimensions(childNode);
125
- requiredWidth = Math.max(requiredWidth, childNode.position.x + childSize.width + (padding.right ?? 0));
126
- requiredHeight = Math.max(requiredHeight, childNode.position.y + childSize.height + (padding.bottom ?? 0));
126
+ childrenToFit.push({
127
+ node: childNode,
128
+ size: childSize
129
+ });
130
+ childIdsToShift.add(childNode.id);
131
+ if (void 0 !== padding.left) leadingShiftX = Math.max(leadingShiftX, padding.left - childNode.position.x);
132
+ if (void 0 !== padding.top) leadingShiftY = Math.max(leadingShiftY, padding.top - childNode.position.y);
133
+ }
134
+ leadingShiftX = leadingShiftX > 0 ? snapUpToGrid(leadingShiftX) : 0;
135
+ leadingShiftY = leadingShiftY > 0 ? snapUpToGrid(leadingShiftY) : 0;
136
+ for (const { node: childNode, size: childSize } of childrenToFit){
137
+ requiredWidth = Math.max(requiredWidth, childNode.position.x + leadingShiftX + childSize.width + (padding.right ?? 0));
138
+ requiredHeight = Math.max(requiredHeight, childNode.position.y + leadingShiftY + childSize.height + (padding.bottom ?? 0));
127
139
  }
140
+ requiredWidth = Math.max(requiredWidth, currentSize.width + leadingShiftX);
141
+ requiredHeight = Math.max(requiredHeight, currentSize.height + leadingShiftY);
128
142
  const nextSize = {
129
143
  width: Math.max(currentSize.width, snapUpToGrid(requiredWidth)),
130
144
  height: Math.max(currentSize.height, snapUpToGrid(requiredHeight))
131
145
  };
132
- if (nextSize.width !== currentSize.width || nextSize.height !== currentSize.height) {
133
- nextNodes = nextNodes.map((node)=>node.id === containerId ? withNodeDimensions(node, nextSize) : node);
134
- nodesById.set(containerId, nextNodes.find((node)=>node.id === containerId));
135
- changes.push({
136
- containerId,
137
- previousSize: currentSize,
138
- nextSize
139
- });
140
- }
146
+ if (nextSize.width === currentSize.width && nextSize.height === currentSize.height && 0 === leadingShiftX && 0 === leadingShiftY) continue;
147
+ const shouldShiftChildren = 0 !== leadingShiftX || 0 !== leadingShiftY;
148
+ nextNodes = nextNodes.map((node)=>{
149
+ if (node.id === containerId) return withNodeDimensions(node, nextSize);
150
+ if (shouldShiftChildren && childIdsToShift.has(node.id)) return {
151
+ ...node,
152
+ position: {
153
+ x: node.position.x + leadingShiftX,
154
+ y: node.position.y + leadingShiftY
155
+ }
156
+ };
157
+ return node;
158
+ });
159
+ nodesById.set(containerId, nextNodes.find((node)=>node.id === containerId));
160
+ if (nextSize.width !== currentSize.width || nextSize.height !== currentSize.height) changes.push({
161
+ containerId,
162
+ previousSize: currentSize,
163
+ nextSize
164
+ });
141
165
  }
142
166
  return {
143
167
  nodes: nextNodes,
@@ -502,13 +526,14 @@ function pushSiblingsAfterContainerGrowth({ nodes, changes, getNodeDimensions, g
502
526
  shifted
503
527
  };
504
528
  }
505
- function fitContainersAndPushSiblings({ nodes, containerIds, getContainerFitGeometry, getNodeDimensions, gap }) {
529
+ function fitContainersAndPushSiblings({ nodes, containerIds, getContainerFitGeometry, getNodeDimensions, ignoredNodeTypes, gap }) {
506
530
  let nextNodes = nodes;
507
531
  for(let iteration = 0; iteration < 10; iteration += 1){
508
532
  const fitResult = ensureContainersFitChildren(nextNodes, {
509
533
  containerIds,
510
534
  getContainerFitGeometry,
511
535
  getNodeDimensions,
536
+ ignoredNodeTypes,
512
537
  includeAncestors: true
513
538
  });
514
539
  nextNodes = fitResult.nodes;
@@ -530,7 +555,7 @@ function getContainerPlacement(previewNode) {
530
555
  if (previewNode.parentId && placement.containerId !== previewNode.parentId) return null;
531
556
  return placement;
532
557
  }
533
- function placeContainerNode({ nodes, insertedNode, placement, safeArea, getContainerFitGeometry: resolveContainerFitGeometry = container_getContainerFitGeometry, getNodeDimensions: resolveNodeDimensions = container_getNodeDimensions, gap = CONTAINER_SEQUENCE_GAP_PX, downstreamNodeIds, edges }) {
558
+ function placeContainerNode({ nodes, insertedNode, placement, safeArea, getContainerFitGeometry: resolveContainerFitGeometry = container_getContainerFitGeometry, getNodeDimensions: resolveNodeDimensions = container_getNodeDimensions, gap = CONTAINER_SEQUENCE_GAP_PX, downstreamNodeIds, ignoredNodeTypes, edges }) {
534
559
  const containerNode = nodes.find((node)=>node.id === placement.containerId);
535
560
  const nodesById = new Map(nodes.map((node)=>[
536
561
  node.id,
@@ -589,7 +614,8 @@ function placeContainerNode({ nodes, insertedNode, placement, safeArea, getConta
589
614
  ],
590
615
  getContainerFitGeometry: resolveContainerFitGeometry,
591
616
  getNodeDimensions: resolveNodeDimensions,
617
+ ignoredNodeTypes,
592
618
  gap
593
619
  });
594
620
  }
595
- export { CONTAINER_FRAME_INSET_PX, CONTAINER_SEQUENCE_GAP_PX, DEFAULT_CONTAINER_HEIGHT, DEFAULT_CONTAINER_MIN_HEIGHT, DEFAULT_CONTAINER_MIN_WIDTH, DEFAULT_CONTAINER_WIDTH, collectLinearDownstreamSiblings, ensureContainersFitChildren, container_getContainerFitGeometry as getContainerFitGeometry, getContainerNodeForEdge, getContainerPlacement, container_getContainerSafeArea as getContainerSafeArea, container_getNodeDimensions as getNodeDimensions, isContainerNodeManifest, placeContainerNode, resolveContainerPreview };
621
+ export { CONTAINER_FRAME_INSET_PX, CONTAINER_SEQUENCE_GAP_PX, DEFAULT_CONTAINER_HEIGHT, DEFAULT_CONTAINER_MIN_HEIGHT, DEFAULT_CONTAINER_MIN_WIDTH, DEFAULT_CONTAINER_WIDTH, collectLinearDownstreamSiblings, ensureContainersFitChildren, fitContainersAndPushSiblings, container_getContainerFitGeometry as getContainerFitGeometry, getContainerNodeForEdge, getContainerPlacement, container_getContainerSafeArea as getContainerSafeArea, container_getNodeDimensions as getNodeDimensions, isContainerNodeManifest, placeContainerNode, resolveContainerPreview };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uipath/apollo-react",
3
- "version": "4.18.2",
3
+ "version": "4.18.3",
4
4
  "description": "Apollo Design System - React component library with Material UI theming",
5
5
  "repository": {
6
6
  "type": "git",