@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.
- package/dist/canvas/components/AddNodePanel/AddNodeManager.helpers.cjs +18 -2
- package/dist/canvas/components/AddNodePanel/AddNodeManager.helpers.d.ts.map +1 -1
- package/dist/canvas/components/AddNodePanel/AddNodeManager.helpers.js +19 -3
- package/dist/canvas/components/LoopNode/LoopNode.helpers.cjs +23 -0
- package/dist/canvas/components/LoopNode/LoopNode.helpers.d.ts.map +1 -1
- package/dist/canvas/components/LoopNode/LoopNode.helpers.js +23 -0
- package/dist/canvas/utils/container.cjs +46 -17
- package/dist/canvas/utils/container.d.ts +12 -1
- package/dist/canvas/utils/container.d.ts.map +1 -1
- package/dist/canvas/utils/container.js +44 -18
- package/package.json +1 -1
|
@@ -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
|
-
|
|
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;
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
169
|
-
|
|
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
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
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
|
-
|
|
126
|
-
|
|
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
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
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 };
|