@uipath/apollo-react 4.18.1 → 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 +22 -4
- package/dist/canvas/components/AddNodePanel/AddNodeManager.helpers.d.ts.map +1 -1
- package/dist/canvas/components/AddNodePanel/AddNodeManager.helpers.js +23 -5
- 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 +51 -18
- 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 +49 -19
- package/package.json +3 -3
|
@@ -122,16 +122,18 @@ function shiftForEdgeInsertion({ nodes, edges, previewNode, insertedNode, getNod
|
|
|
122
122
|
const requiredInsertedLeft = sourceNode.position.x + sourceSize.width + TOP_LEVEL_INSERTION_GAP_PX;
|
|
123
123
|
if (insertedX < requiredInsertedLeft) insertedX = (0, NodeUtils_cjs_namespaceObject.snapUpToGrid)(requiredInsertedLeft);
|
|
124
124
|
}
|
|
125
|
+
const isBackEdge = void 0 !== sourceNode && sourceNode.parentId === insertedNode.parentId && sourceNode.position.x >= targetNode.position.x;
|
|
125
126
|
const requiredTargetLeft = insertedX + insertedSize.width + TOP_LEVEL_INSERTION_GAP_PX;
|
|
126
|
-
const downstreamShift = targetNode.position.x < requiredTargetLeft ? (0, NodeUtils_cjs_namespaceObject.snapUpToGrid)(requiredTargetLeft - targetNode.position.x) : 0;
|
|
127
|
+
const downstreamShift = !isBackEdge && targetNode.position.x < requiredTargetLeft ? (0, NodeUtils_cjs_namespaceObject.snapUpToGrid)(requiredTargetLeft - targetNode.position.x) : 0;
|
|
127
128
|
const chainIds = downstreamShift > 0 ? new Set((0, container_cjs_namespaceObject.collectLinearDownstreamSiblings)({
|
|
128
129
|
startNodeId: targetNode.id,
|
|
129
130
|
parentId: insertedNode.parentId,
|
|
130
131
|
nodes,
|
|
131
132
|
edges
|
|
132
133
|
})) : new Set();
|
|
134
|
+
chainIds.delete(originalEdge.source);
|
|
133
135
|
const insertedXChanged = insertedX !== insertedNode.position.x;
|
|
134
|
-
if (!insertedXChanged && 0 ===
|
|
136
|
+
if (!insertedXChanged && 0 === chainIds.size) return null;
|
|
135
137
|
const updatedInsertedNode = insertedXChanged ? {
|
|
136
138
|
...insertedNode,
|
|
137
139
|
position: {
|
|
@@ -176,7 +178,8 @@ function placeAddedNode({ nodes, edges, previewNode, insertedNode, registry, ign
|
|
|
176
178
|
edges,
|
|
177
179
|
getNodeDimensions: getDimensions,
|
|
178
180
|
safeArea: (0, container_cjs_namespaceObject.getContainerSafeArea)(containerNode),
|
|
179
|
-
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
|
|
180
183
|
});
|
|
181
184
|
return {
|
|
182
185
|
nodes: resolvedNodes,
|
|
@@ -190,10 +193,25 @@ function placeAddedNode({ nodes, edges, previewNode, insertedNode, registry, ign
|
|
|
190
193
|
insertedNode,
|
|
191
194
|
getNodeSize: getDimensions
|
|
192
195
|
});
|
|
193
|
-
|
|
196
|
+
const placementResult = resolveScopedCollisions(shifted?.nodes ?? nodes, shifted?.insertedNode ?? insertedNode, {
|
|
194
197
|
ignoredNodeTypes,
|
|
195
198
|
getNodeSize: getDimensions
|
|
196
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
|
+
};
|
|
197
215
|
}
|
|
198
216
|
exports.alignNodeToPreview = __webpack_exports__.alignNodeToPreview;
|
|
199
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) {
|
|
@@ -92,16 +92,18 @@ function shiftForEdgeInsertion({ nodes, edges, previewNode, insertedNode, getNod
|
|
|
92
92
|
const requiredInsertedLeft = sourceNode.position.x + sourceSize.width + TOP_LEVEL_INSERTION_GAP_PX;
|
|
93
93
|
if (insertedX < requiredInsertedLeft) insertedX = snapUpToGrid(requiredInsertedLeft);
|
|
94
94
|
}
|
|
95
|
+
const isBackEdge = void 0 !== sourceNode && sourceNode.parentId === insertedNode.parentId && sourceNode.position.x >= targetNode.position.x;
|
|
95
96
|
const requiredTargetLeft = insertedX + insertedSize.width + TOP_LEVEL_INSERTION_GAP_PX;
|
|
96
|
-
const downstreamShift = targetNode.position.x < requiredTargetLeft ? snapUpToGrid(requiredTargetLeft - targetNode.position.x) : 0;
|
|
97
|
+
const downstreamShift = !isBackEdge && targetNode.position.x < requiredTargetLeft ? snapUpToGrid(requiredTargetLeft - targetNode.position.x) : 0;
|
|
97
98
|
const chainIds = downstreamShift > 0 ? new Set(collectLinearDownstreamSiblings({
|
|
98
99
|
startNodeId: targetNode.id,
|
|
99
100
|
parentId: insertedNode.parentId,
|
|
100
101
|
nodes,
|
|
101
102
|
edges
|
|
102
103
|
})) : new Set();
|
|
104
|
+
chainIds.delete(originalEdge.source);
|
|
103
105
|
const insertedXChanged = insertedX !== insertedNode.position.x;
|
|
104
|
-
if (!insertedXChanged && 0 ===
|
|
106
|
+
if (!insertedXChanged && 0 === chainIds.size) return null;
|
|
105
107
|
const updatedInsertedNode = insertedXChanged ? {
|
|
106
108
|
...insertedNode,
|
|
107
109
|
position: {
|
|
@@ -146,7 +148,8 @@ function placeAddedNode({ nodes, edges, previewNode, insertedNode, registry, ign
|
|
|
146
148
|
edges,
|
|
147
149
|
getNodeDimensions: getDimensions,
|
|
148
150
|
safeArea: getContainerSafeArea(containerNode),
|
|
149
|
-
getContainerFitGeometry: (node)=>isContainerNodeManifest(getManifestForNode(registry, node)) ? getContainerFitGeometry() : null
|
|
151
|
+
getContainerFitGeometry: (node)=>isContainerNodeManifest(getManifestForNode(registry, node)) ? getContainerFitGeometry() : null,
|
|
152
|
+
ignoredNodeTypes
|
|
150
153
|
});
|
|
151
154
|
return {
|
|
152
155
|
nodes: resolvedNodes,
|
|
@@ -160,9 +163,24 @@ function placeAddedNode({ nodes, edges, previewNode, insertedNode, registry, ign
|
|
|
160
163
|
insertedNode,
|
|
161
164
|
getNodeSize: getDimensions
|
|
162
165
|
});
|
|
163
|
-
|
|
166
|
+
const placementResult = resolveScopedCollisions(shifted?.nodes ?? nodes, shifted?.insertedNode ?? insertedNode, {
|
|
164
167
|
ignoredNodeTypes,
|
|
165
168
|
getNodeSize: getDimensions
|
|
166
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
|
+
};
|
|
167
185
|
}
|
|
168
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,
|
|
@@ -608,8 +634,12 @@ function placeContainerNode({ nodes, insertedNode, placement, safeArea, getConta
|
|
|
608
634
|
nodes,
|
|
609
635
|
edges
|
|
610
636
|
}) : fallbackTargetIds));
|
|
637
|
+
if (placement.sourceNodeId) idsToShift.delete(placement.sourceNodeId);
|
|
638
|
+
const sourceNode = placement.sourceNodeId ? nodesById.get(placement.sourceNodeId) : void 0;
|
|
639
|
+
const sourceIsContainer = placement.sourceNodeId === placement.containerId;
|
|
640
|
+
const isBackEdge = !sourceIsContainer && void 0 !== sourceNode && void 0 !== targetNode && sourceNode.position.x >= targetNode.position.x;
|
|
611
641
|
const requiredTargetLeft = positionedNode.position.x + insertedSize.width + gap;
|
|
612
|
-
const downstreamShift = targetNode && targetNode.position.x < requiredTargetLeft ? (0, external_NodeUtils_cjs_namespaceObject.snapUpToGrid)(requiredTargetLeft - targetNode.position.x) : 0;
|
|
642
|
+
const downstreamShift = !isBackEdge && targetNode && targetNode.position.x < requiredTargetLeft ? (0, external_NodeUtils_cjs_namespaceObject.snapUpToGrid)(requiredTargetLeft - targetNode.position.x) : 0;
|
|
613
643
|
const positionedNodes = nodes.map((node)=>{
|
|
614
644
|
if (node.id === insertedNode.id) return positionedNode;
|
|
615
645
|
if (downstreamShift > 0 && idsToShift.has(node.id)) return {
|
|
@@ -628,6 +658,7 @@ function placeContainerNode({ nodes, insertedNode, placement, safeArea, getConta
|
|
|
628
658
|
],
|
|
629
659
|
getContainerFitGeometry: resolveContainerFitGeometry,
|
|
630
660
|
getNodeDimensions: resolveNodeDimensions,
|
|
661
|
+
ignoredNodeTypes,
|
|
631
662
|
gap
|
|
632
663
|
});
|
|
633
664
|
}
|
|
@@ -639,6 +670,7 @@ exports.DEFAULT_CONTAINER_MIN_WIDTH = __webpack_exports__.DEFAULT_CONTAINER_MIN_
|
|
|
639
670
|
exports.DEFAULT_CONTAINER_WIDTH = __webpack_exports__.DEFAULT_CONTAINER_WIDTH;
|
|
640
671
|
exports.collectLinearDownstreamSiblings = __webpack_exports__.collectLinearDownstreamSiblings;
|
|
641
672
|
exports.ensureContainersFitChildren = __webpack_exports__.ensureContainersFitChildren;
|
|
673
|
+
exports.fitContainersAndPushSiblings = __webpack_exports__.fitContainersAndPushSiblings;
|
|
642
674
|
exports.getContainerFitGeometry = __webpack_exports__.getContainerFitGeometry;
|
|
643
675
|
exports.getContainerNodeForEdge = __webpack_exports__.getContainerNodeForEdge;
|
|
644
676
|
exports.getContainerPlacement = __webpack_exports__.getContainerPlacement;
|
|
@@ -656,6 +688,7 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
|
656
688
|
"DEFAULT_CONTAINER_WIDTH",
|
|
657
689
|
"collectLinearDownstreamSiblings",
|
|
658
690
|
"ensureContainersFitChildren",
|
|
691
|
+
"fitContainersAndPushSiblings",
|
|
659
692
|
"getContainerFitGeometry",
|
|
660
693
|
"getContainerNodeForEdge",
|
|
661
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,
|
|
@@ -565,8 +590,12 @@ function placeContainerNode({ nodes, insertedNode, placement, safeArea, getConta
|
|
|
565
590
|
nodes,
|
|
566
591
|
edges
|
|
567
592
|
}) : fallbackTargetIds));
|
|
593
|
+
if (placement.sourceNodeId) idsToShift.delete(placement.sourceNodeId);
|
|
594
|
+
const sourceNode = placement.sourceNodeId ? nodesById.get(placement.sourceNodeId) : void 0;
|
|
595
|
+
const sourceIsContainer = placement.sourceNodeId === placement.containerId;
|
|
596
|
+
const isBackEdge = !sourceIsContainer && void 0 !== sourceNode && void 0 !== targetNode && sourceNode.position.x >= targetNode.position.x;
|
|
568
597
|
const requiredTargetLeft = positionedNode.position.x + insertedSize.width + gap;
|
|
569
|
-
const downstreamShift = targetNode && targetNode.position.x < requiredTargetLeft ? snapUpToGrid(requiredTargetLeft - targetNode.position.x) : 0;
|
|
598
|
+
const downstreamShift = !isBackEdge && targetNode && targetNode.position.x < requiredTargetLeft ? snapUpToGrid(requiredTargetLeft - targetNode.position.x) : 0;
|
|
570
599
|
const positionedNodes = nodes.map((node)=>{
|
|
571
600
|
if (node.id === insertedNode.id) return positionedNode;
|
|
572
601
|
if (downstreamShift > 0 && idsToShift.has(node.id)) return {
|
|
@@ -585,7 +614,8 @@ function placeContainerNode({ nodes, insertedNode, placement, safeArea, getConta
|
|
|
585
614
|
],
|
|
586
615
|
getContainerFitGeometry: resolveContainerFitGeometry,
|
|
587
616
|
getNodeDimensions: resolveNodeDimensions,
|
|
617
|
+
ignoredNodeTypes,
|
|
588
618
|
gap
|
|
589
619
|
});
|
|
590
620
|
}
|
|
591
|
-
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.
|
|
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",
|
|
@@ -201,8 +201,8 @@
|
|
|
201
201
|
"use-sync-external-store": "^1.2.0",
|
|
202
202
|
"zod": "^4.3.5",
|
|
203
203
|
"zustand": "^5.0.9",
|
|
204
|
-
"@uipath/apollo-
|
|
205
|
-
"@uipath/apollo-
|
|
204
|
+
"@uipath/apollo-wind": "2.9.0",
|
|
205
|
+
"@uipath/apollo-core": "5.9.0"
|
|
206
206
|
},
|
|
207
207
|
"devDependencies": {
|
|
208
208
|
"@lingui/cli": "^5.6.1",
|