@uipath/apollo-react 4.14.1 → 4.15.0-pr605.2728a1c
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.cjs +106 -10
- package/dist/canvas/components/AddNodePanel/AddNodeManager.d.ts.map +1 -1
- package/dist/canvas/components/AddNodePanel/AddNodeManager.js +106 -10
- package/dist/canvas/components/AddNodePanel/createAddNodePreview.cjs +38 -4
- package/dist/canvas/components/AddNodePanel/createAddNodePreview.d.ts +5 -1
- package/dist/canvas/components/AddNodePanel/createAddNodePreview.d.ts.map +1 -1
- package/dist/canvas/components/AddNodePanel/createAddNodePreview.js +38 -4
- package/dist/canvas/components/AgentCanvas/agent-flow.manifest.d.ts +1 -0
- package/dist/canvas/components/AgentCanvas/agent-flow.manifest.d.ts.map +1 -1
- package/dist/canvas/components/BaseNode/BaseNode.cjs +11 -5
- package/dist/canvas/components/BaseNode/BaseNode.d.ts +2 -1
- package/dist/canvas/components/BaseNode/BaseNode.d.ts.map +1 -1
- package/dist/canvas/components/BaseNode/BaseNode.js +9 -6
- package/dist/canvas/components/BaseNode/BaseNode.types.d.ts +3 -0
- package/dist/canvas/components/BaseNode/BaseNode.types.d.ts.map +1 -1
- package/dist/canvas/components/ButtonHandle/ButtonHandle.cjs +222 -13
- package/dist/canvas/components/ButtonHandle/ButtonHandle.d.ts +10 -5
- package/dist/canvas/components/ButtonHandle/ButtonHandle.d.ts.map +1 -1
- package/dist/canvas/components/ButtonHandle/ButtonHandle.js +223 -14
- package/dist/canvas/components/ButtonHandle/ButtonHandleStyleUtils.cjs +10 -2
- package/dist/canvas/components/ButtonHandle/ButtonHandleStyleUtils.d.ts +2 -0
- package/dist/canvas/components/ButtonHandle/ButtonHandleStyleUtils.d.ts.map +1 -1
- package/dist/canvas/components/ButtonHandle/ButtonHandleStyleUtils.js +5 -3
- package/dist/canvas/components/ButtonHandle/HandleButton.cjs +17 -2
- package/dist/canvas/components/ButtonHandle/HandleButton.d.ts +10 -1
- package/dist/canvas/components/ButtonHandle/HandleButton.d.ts.map +1 -1
- package/dist/canvas/components/ButtonHandle/HandleButton.js +17 -2
- package/dist/canvas/components/ButtonHandle/useButtonHandles.cjs +4 -2
- package/dist/canvas/components/ButtonHandle/useButtonHandles.d.ts +2 -1
- package/dist/canvas/components/ButtonHandle/useButtonHandles.d.ts.map +1 -1
- package/dist/canvas/components/ButtonHandle/useButtonHandles.js +4 -2
- package/dist/canvas/components/Edges/SequenceEdge.cjs +18 -12
- package/dist/canvas/components/Edges/SequenceEdge.d.ts.map +1 -1
- package/dist/canvas/components/Edges/SequenceEdge.js +18 -12
- package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvas.cjs +34 -25
- package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvas.d.ts +8 -2
- package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvas.d.ts.map +1 -1
- package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvas.js +36 -27
- package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvasWithControls.cjs +9 -2
- package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvasWithControls.d.ts.map +1 -1
- package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvasWithControls.js +10 -3
- package/dist/canvas/components/HierarchicalCanvas/index.d.ts +1 -1
- package/dist/canvas/components/HierarchicalCanvas/index.d.ts.map +1 -1
- package/dist/canvas/components/LoopNode/LoopCanvasNode.cjs +86 -0
- package/dist/canvas/components/LoopNode/LoopCanvasNode.d.ts +6 -0
- package/dist/canvas/components/LoopNode/LoopCanvasNode.d.ts.map +1 -0
- package/dist/canvas/components/LoopNode/LoopCanvasNode.js +52 -0
- package/dist/canvas/components/LoopNode/LoopNode.cjs +434 -0
- package/dist/canvas/components/LoopNode/LoopNode.constants.cjs +93 -0
- package/dist/canvas/components/LoopNode/LoopNode.constants.d.ts +16 -0
- package/dist/canvas/components/LoopNode/LoopNode.constants.d.ts.map +1 -0
- package/dist/canvas/components/LoopNode/LoopNode.constants.js +17 -0
- package/dist/canvas/components/LoopNode/LoopNode.d.ts +5 -0
- package/dist/canvas/components/LoopNode/LoopNode.d.ts.map +1 -0
- package/dist/canvas/components/LoopNode/LoopNode.helpers.cjs +185 -0
- package/dist/canvas/components/LoopNode/LoopNode.helpers.d.ts +58 -0
- package/dist/canvas/components/LoopNode/LoopNode.helpers.d.ts.map +1 -0
- package/dist/canvas/components/LoopNode/LoopNode.helpers.js +124 -0
- package/dist/canvas/components/LoopNode/LoopNode.js +400 -0
- package/dist/canvas/components/LoopNode/LoopNode.sequence.cjs +433 -0
- package/dist/canvas/components/LoopNode/LoopNode.sequence.d.ts +57 -0
- package/dist/canvas/components/LoopNode/LoopNode.sequence.d.ts.map +1 -0
- package/dist/canvas/components/LoopNode/LoopNode.sequence.js +387 -0
- package/dist/canvas/components/LoopNode/LoopNode.types.cjs +18 -0
- package/dist/canvas/components/LoopNode/LoopNode.types.d.ts +22 -0
- package/dist/canvas/components/LoopNode/LoopNode.types.d.ts.map +1 -0
- package/dist/canvas/components/LoopNode/LoopNode.types.js +0 -0
- package/dist/canvas/components/LoopNode/LoopNodePreview.cjs +60 -0
- package/dist/canvas/components/LoopNode/LoopNodePreview.d.ts +9 -0
- package/dist/canvas/components/LoopNode/LoopNodePreview.d.ts.map +1 -0
- package/dist/canvas/components/LoopNode/LoopNodePreview.js +26 -0
- package/dist/canvas/components/LoopNode/index.cjs +79 -0
- package/dist/canvas/components/LoopNode/index.d.ts +5 -0
- package/dist/canvas/components/LoopNode/index.d.ts.map +1 -0
- package/dist/canvas/components/LoopNode/index.js +4 -0
- package/dist/canvas/components/NodeViewportOverlay.cjs +63 -0
- package/dist/canvas/components/NodeViewportOverlay.d.ts +22 -0
- package/dist/canvas/components/NodeViewportOverlay.d.ts.map +1 -0
- package/dist/canvas/components/NodeViewportOverlay.js +29 -0
- package/dist/canvas/components/Toolbar/EdgeToolbar/EdgeToolbar.cjs +1 -1
- package/dist/canvas/components/Toolbar/EdgeToolbar/EdgeToolbar.js +1 -1
- package/dist/canvas/components/Toolbar/EdgeToolbar/useEdgeToolbarState.cjs +41 -24
- package/dist/canvas/components/Toolbar/EdgeToolbar/useEdgeToolbarState.d.ts.map +1 -1
- package/dist/canvas/components/Toolbar/EdgeToolbar/useEdgeToolbarState.js +43 -26
- package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.cjs +10 -3
- package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.d.ts +1 -1
- package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.d.ts.map +1 -1
- package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.js +10 -3
- package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.types.d.ts +1 -0
- package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.types.d.ts.map +1 -1
- package/dist/canvas/components/index.cjs +27 -20
- package/dist/canvas/components/index.d.ts +1 -0
- package/dist/canvas/components/index.d.ts.map +1 -1
- package/dist/canvas/components/index.js +1 -0
- package/dist/canvas/constants.cjs +4 -0
- package/dist/canvas/constants.d.ts +1 -0
- package/dist/canvas/constants.d.ts.map +1 -1
- package/dist/canvas/constants.js +2 -1
- package/dist/canvas/core/NodeTypeRegistry.cjs +50 -26
- package/dist/canvas/core/NodeTypeRegistry.d.ts +10 -5
- package/dist/canvas/core/NodeTypeRegistry.d.ts.map +1 -1
- package/dist/canvas/core/NodeTypeRegistry.js +50 -26
- package/dist/canvas/core/useNodeTypeRegistry.cjs +13 -3
- package/dist/canvas/core/useNodeTypeRegistry.d.ts +2 -1
- package/dist/canvas/core/useNodeTypeRegistry.d.ts.map +1 -1
- package/dist/canvas/core/useNodeTypeRegistry.js +11 -4
- package/dist/canvas/hooks/useAddNodeOnConnectEnd.cjs +22 -23
- package/dist/canvas/hooks/useAddNodeOnConnectEnd.d.ts.map +1 -1
- package/dist/canvas/hooks/useAddNodeOnConnectEnd.js +23 -24
- package/dist/canvas/hooks/usePreviewNode.cjs +7 -3
- package/dist/canvas/hooks/usePreviewNode.d.ts.map +1 -1
- package/dist/canvas/hooks/usePreviewNode.js +7 -3
- package/dist/canvas/locales/de.cjs +1 -1
- package/dist/canvas/locales/de.d.ts.map +1 -1
- package/dist/canvas/locales/de.js +1 -1
- package/dist/canvas/locales/es-MX.cjs +1 -1
- package/dist/canvas/locales/es-MX.d.ts.map +1 -1
- package/dist/canvas/locales/es-MX.js +1 -1
- package/dist/canvas/locales/es.cjs +1 -1
- package/dist/canvas/locales/es.d.ts.map +1 -1
- package/dist/canvas/locales/es.js +1 -1
- package/dist/canvas/locales/fr.cjs +1 -1
- package/dist/canvas/locales/fr.d.ts.map +1 -1
- package/dist/canvas/locales/fr.js +1 -1
- package/dist/canvas/locales/ja.cjs +1 -1
- package/dist/canvas/locales/ja.d.ts.map +1 -1
- package/dist/canvas/locales/ja.js +1 -1
- package/dist/canvas/locales/ko.cjs +1 -1
- package/dist/canvas/locales/ko.d.ts.map +1 -1
- package/dist/canvas/locales/ko.js +1 -1
- package/dist/canvas/locales/pt-BR.cjs +1 -1
- package/dist/canvas/locales/pt-BR.d.ts.map +1 -1
- package/dist/canvas/locales/pt-BR.js +1 -1
- package/dist/canvas/locales/pt.cjs +1 -1
- package/dist/canvas/locales/pt.d.ts.map +1 -1
- package/dist/canvas/locales/pt.js +1 -1
- package/dist/canvas/locales/tr.cjs +1 -1
- package/dist/canvas/locales/tr.d.ts.map +1 -1
- package/dist/canvas/locales/tr.js +1 -1
- package/dist/canvas/locales/zh-CN.cjs +1 -1
- package/dist/canvas/locales/zh-CN.d.ts.map +1 -1
- package/dist/canvas/locales/zh-CN.js +1 -1
- package/dist/canvas/locales/zh-TW.cjs +1 -1
- package/dist/canvas/locales/zh-TW.d.ts.map +1 -1
- package/dist/canvas/locales/zh-TW.js +1 -1
- package/dist/canvas/schema/node-definition/handle.cjs +10 -2
- package/dist/canvas/schema/node-definition/handle.d.ts +9 -0
- package/dist/canvas/schema/node-definition/handle.d.ts.map +1 -1
- package/dist/canvas/schema/node-definition/handle.js +6 -1
- package/dist/canvas/schema/node-definition/index.cjs +4 -1
- package/dist/canvas/schema/node-definition/index.d.ts +3 -3
- package/dist/canvas/schema/node-definition/index.d.ts.map +1 -1
- package/dist/canvas/schema/node-definition/index.js +2 -2
- package/dist/canvas/schema/node-definition/node-manifest.d.ts +4 -0
- package/dist/canvas/schema/node-definition/node-manifest.d.ts.map +1 -1
- package/dist/canvas/storybook-utils/hooks/useCanvasStory.d.ts +6 -0
- package/dist/canvas/storybook-utils/hooks/useCanvasStory.d.ts.map +1 -1
- package/dist/canvas/storybook-utils/manifests/index.d.ts +1 -0
- package/dist/canvas/storybook-utils/manifests/index.d.ts.map +1 -1
- package/dist/canvas/storybook-utils/manifests/node-definitions.d.ts.map +1 -1
- package/dist/canvas/storybook-utils/mocks/nodes.d.ts +1 -1
- package/dist/canvas/storybook-utils/mocks/nodes.d.ts.map +1 -1
- package/dist/canvas/styles/reactflow-reset.css +2 -2
- package/dist/canvas/styles/tailwind.canvas.css +1 -1
- package/dist/canvas/utils/NodeUtils.cjs +25 -9
- package/dist/canvas/utils/NodeUtils.d.ts +7 -0
- package/dist/canvas/utils/NodeUtils.d.ts.map +1 -1
- package/dist/canvas/utils/NodeUtils.js +13 -6
- package/dist/canvas/utils/collapse.cjs +13 -6
- package/dist/canvas/utils/collapse.d.ts +2 -2
- package/dist/canvas/utils/collapse.d.ts.map +1 -1
- package/dist/canvas/utils/collapse.js +9 -2
- package/dist/canvas/utils/container-sizing.cjs +169 -0
- package/dist/canvas/utils/container-sizing.d.ts +23 -0
- package/dist/canvas/utils/container-sizing.d.ts.map +1 -0
- package/dist/canvas/utils/container-sizing.js +132 -0
- package/dist/canvas/utils/createPreviewGraph.cjs +126 -0
- package/dist/canvas/utils/createPreviewGraph.d.ts +37 -0
- package/dist/canvas/utils/createPreviewGraph.d.ts.map +1 -0
- package/dist/canvas/utils/createPreviewGraph.js +83 -0
- package/dist/canvas/utils/createPreviewNode.cjs +59 -12
- package/dist/canvas/utils/createPreviewNode.d.ts +10 -2
- package/dist/canvas/utils/createPreviewNode.d.ts.map +1 -1
- package/dist/canvas/utils/createPreviewNode.js +50 -12
- package/dist/canvas/utils/index.cjs +40 -26
- package/dist/canvas/utils/index.d.ts +3 -1
- package/dist/canvas/utils/index.d.ts.map +1 -1
- package/dist/canvas/utils/index.js +3 -1
- package/dist/canvas/utils/manifest-resolver.cjs +8 -0
- package/dist/canvas/utils/manifest-resolver.d.ts +1 -0
- package/dist/canvas/utils/manifest-resolver.d.ts.map +1 -1
- package/dist/canvas/utils/manifest-resolver.js +6 -1
- package/dist/material/components/ap-tool-call/locales/de.cjs +1 -1
- package/dist/material/components/ap-tool-call/locales/de.d.ts.map +1 -1
- package/dist/material/components/ap-tool-call/locales/de.js +1 -1
- package/dist/material/components/ap-tool-call/locales/es-MX.cjs +1 -1
- package/dist/material/components/ap-tool-call/locales/es-MX.js +1 -1
- package/dist/material/components/ap-tool-call/locales/es.cjs +1 -1
- package/dist/material/components/ap-tool-call/locales/es.js +1 -1
- package/dist/material/components/ap-tool-call/locales/fr.cjs +1 -1
- package/dist/material/components/ap-tool-call/locales/fr.d.ts.map +1 -1
- package/dist/material/components/ap-tool-call/locales/fr.js +1 -1
- package/dist/material/components/ap-tool-call/locales/ja.cjs +1 -1
- package/dist/material/components/ap-tool-call/locales/ja.d.ts.map +1 -1
- package/dist/material/components/ap-tool-call/locales/ja.js +1 -1
- package/dist/material/components/ap-tool-call/locales/ko.cjs +1 -1
- package/dist/material/components/ap-tool-call/locales/ko.d.ts.map +1 -1
- package/dist/material/components/ap-tool-call/locales/ko.js +1 -1
- package/dist/material/components/ap-tool-call/locales/pt-BR.cjs +1 -1
- package/dist/material/components/ap-tool-call/locales/pt-BR.d.ts.map +1 -1
- package/dist/material/components/ap-tool-call/locales/pt-BR.js +1 -1
- package/dist/material/components/ap-tool-call/locales/pt.cjs +1 -1
- package/dist/material/components/ap-tool-call/locales/pt.d.ts.map +1 -1
- package/dist/material/components/ap-tool-call/locales/pt.js +1 -1
- package/dist/material/components/ap-tool-call/locales/tr.cjs +1 -1
- package/dist/material/components/ap-tool-call/locales/tr.d.ts.map +1 -1
- package/dist/material/components/ap-tool-call/locales/tr.js +1 -1
- package/dist/material/components/ap-tool-call/locales/zh-CN.cjs +1 -1
- package/dist/material/components/ap-tool-call/locales/zh-CN.d.ts.map +1 -1
- package/dist/material/components/ap-tool-call/locales/zh-CN.js +1 -1
- package/dist/material/components/ap-tool-call/locales/zh-TW.cjs +1 -1
- package/dist/material/components/ap-tool-call/locales/zh-TW.d.ts.map +1 -1
- package/dist/material/components/ap-tool-call/locales/zh-TW.js +1 -1
- package/package.json +3 -3
|
@@ -26,13 +26,17 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
26
26
|
__webpack_require__.d(__webpack_exports__, {
|
|
27
27
|
getAbsolutePosition: ()=>getAbsolutePosition,
|
|
28
28
|
getNonOverlappingPositionForDirection: ()=>getNonOverlappingPositionForDirection,
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
snapUpToGrid: ()=>snapUpToGrid,
|
|
30
|
+
clamp: ()=>clamp,
|
|
31
31
|
getHandleIndex: ()=>getHandleIndex,
|
|
32
|
-
snapToGrid: ()=>snapToGrid
|
|
32
|
+
snapToGrid: ()=>snapToGrid,
|
|
33
|
+
resolveHandleContext: ()=>resolveHandleContext,
|
|
34
|
+
resolveCollisions: ()=>resolveCollisions,
|
|
35
|
+
snapDownToGrid: ()=>snapDownToGrid
|
|
33
36
|
});
|
|
34
37
|
const react_cjs_namespaceObject = require("../xyflow/react.cjs");
|
|
35
38
|
const external_constants_cjs_namespaceObject = require("../constants.cjs");
|
|
39
|
+
const clamp = (value, min, max)=>Math.min(Math.max(value, min), max);
|
|
36
40
|
const getAbsolutePosition = (node, nodes)=>{
|
|
37
41
|
let x = node.position.x;
|
|
38
42
|
let y = node.position.y;
|
|
@@ -61,25 +65,31 @@ function getNonOverlappingPositionForDirection(nodes, newNodePosition, newNodeSt
|
|
|
61
65
|
return newNodePosition;
|
|
62
66
|
}
|
|
63
67
|
const snapToGrid = (value)=>Math.round(value / external_constants_cjs_namespaceObject.GRID_SPACING) * external_constants_cjs_namespaceObject.GRID_SPACING;
|
|
64
|
-
|
|
68
|
+
const snapUpToGrid = (value)=>Math.ceil(value / external_constants_cjs_namespaceObject.GRID_SPACING) * external_constants_cjs_namespaceObject.GRID_SPACING;
|
|
69
|
+
const snapDownToGrid = (value)=>Math.floor(value / external_constants_cjs_namespaceObject.GRID_SPACING) * external_constants_cjs_namespaceObject.GRID_SPACING;
|
|
70
|
+
function getBoxesFromNodes(nodes, margin = 0, getNodeSize) {
|
|
65
71
|
const boxes = new Array(nodes.length);
|
|
66
72
|
for(let i = 0; i < nodes.length; i++){
|
|
67
73
|
const node = nodes[i];
|
|
74
|
+
const nodeSize = getNodeSize?.(node) ?? {
|
|
75
|
+
width: node.width ?? node.measured?.width ?? external_constants_cjs_namespaceObject.DEFAULT_NODE_SIZE,
|
|
76
|
+
height: node.height ?? node.measured?.height ?? external_constants_cjs_namespaceObject.DEFAULT_NODE_SIZE
|
|
77
|
+
};
|
|
68
78
|
boxes[i] = {
|
|
69
79
|
x: node.position.x - margin,
|
|
70
80
|
y: node.position.y - margin,
|
|
71
|
-
width:
|
|
72
|
-
height:
|
|
81
|
+
width: nodeSize.width + 2 * margin,
|
|
82
|
+
height: nodeSize.height + 2 * margin,
|
|
73
83
|
node,
|
|
74
84
|
moved: false
|
|
75
85
|
};
|
|
76
86
|
}
|
|
77
87
|
return boxes;
|
|
78
88
|
}
|
|
79
|
-
const resolveCollisions = (nodes, { maxIterations = 50, overlapThreshold = 0, margin = 2 * external_constants_cjs_namespaceObject.GRID_SPACING, ignoredNodeTypes } = {})=>{
|
|
89
|
+
const resolveCollisions = (nodes, { maxIterations = 50, overlapThreshold = 0, margin = 2 * external_constants_cjs_namespaceObject.GRID_SPACING, ignoredNodeTypes, getNodeSize } = {})=>{
|
|
80
90
|
const ignoredSet = new Set(ignoredNodeTypes);
|
|
81
91
|
const collisionNodes = ignoredSet.size > 0 ? nodes.filter((n)=>!ignoredSet.has(n.type ?? '')) : nodes;
|
|
82
|
-
const boxes = getBoxesFromNodes(collisionNodes, margin);
|
|
92
|
+
const boxes = getBoxesFromNodes(collisionNodes, margin, getNodeSize);
|
|
83
93
|
for(let iter = 0; iter < maxIterations; iter++){
|
|
84
94
|
let moved = false;
|
|
85
95
|
for(let i = 0; i < boxes.length; i++)for(let j = i + 1; j < boxes.length; j++){
|
|
@@ -141,19 +151,25 @@ function getHandleIndex(handleId, position, allHandles) {
|
|
|
141
151
|
const index = peers.findIndex((h)=>h.id === handleId);
|
|
142
152
|
return -1 === index ? null : index;
|
|
143
153
|
}
|
|
154
|
+
exports.clamp = __webpack_exports__.clamp;
|
|
144
155
|
exports.getAbsolutePosition = __webpack_exports__.getAbsolutePosition;
|
|
145
156
|
exports.getHandleIndex = __webpack_exports__.getHandleIndex;
|
|
146
157
|
exports.getNonOverlappingPositionForDirection = __webpack_exports__.getNonOverlappingPositionForDirection;
|
|
147
158
|
exports.resolveCollisions = __webpack_exports__.resolveCollisions;
|
|
148
159
|
exports.resolveHandleContext = __webpack_exports__.resolveHandleContext;
|
|
160
|
+
exports.snapDownToGrid = __webpack_exports__.snapDownToGrid;
|
|
149
161
|
exports.snapToGrid = __webpack_exports__.snapToGrid;
|
|
162
|
+
exports.snapUpToGrid = __webpack_exports__.snapUpToGrid;
|
|
150
163
|
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
164
|
+
"clamp",
|
|
151
165
|
"getAbsolutePosition",
|
|
152
166
|
"getHandleIndex",
|
|
153
167
|
"getNonOverlappingPositionForDirection",
|
|
154
168
|
"resolveCollisions",
|
|
155
169
|
"resolveHandleContext",
|
|
156
|
-
"
|
|
170
|
+
"snapDownToGrid",
|
|
171
|
+
"snapToGrid",
|
|
172
|
+
"snapUpToGrid"
|
|
157
173
|
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
158
174
|
Object.defineProperty(exports, '__esModule', {
|
|
159
175
|
value: true
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type Handle, type InternalNode, type Node, Position, type XYPosition } from '../xyflow/react.ts';
|
|
2
|
+
export declare const clamp: (value: number, min: number, max: number) => number;
|
|
2
3
|
export declare const getAbsolutePosition: (node: Node, nodes: Node[]) => {
|
|
3
4
|
x: number;
|
|
4
5
|
y: number;
|
|
@@ -11,11 +12,17 @@ export declare function getNonOverlappingPositionForDirection(nodes: Node[], new
|
|
|
11
12
|
y: 'up' | 'down';
|
|
12
13
|
}): XYPosition;
|
|
13
14
|
export declare const snapToGrid: (value: number) => number;
|
|
15
|
+
export declare const snapUpToGrid: (value: number) => number;
|
|
16
|
+
export declare const snapDownToGrid: (value: number) => number;
|
|
14
17
|
export type CollisionAlgorithmOptions = {
|
|
15
18
|
maxIterations?: number;
|
|
16
19
|
overlapThreshold?: number;
|
|
17
20
|
margin?: number;
|
|
18
21
|
ignoredNodeTypes?: string[];
|
|
22
|
+
getNodeSize?: (node: Node) => {
|
|
23
|
+
width: number;
|
|
24
|
+
height: number;
|
|
25
|
+
};
|
|
19
26
|
};
|
|
20
27
|
export type CollisionAlgorithm = (nodes: Node[], options?: CollisionAlgorithmOptions) => Node[];
|
|
21
28
|
export declare const resolveCollisions: CollisionAlgorithm;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeUtils.d.ts","sourceRoot":"","sources":["../../../src/canvas/utils/NodeUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,KAAK,IAAI,EACT,QAAQ,EACR,KAAK,UAAU,EAChB,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"NodeUtils.d.ts","sourceRoot":"","sources":["../../../src/canvas/utils/NodeUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,KAAK,IAAI,EACT,QAAQ,EACR,KAAK,UAAU,EAChB,MAAM,0CAA0C,CAAC;AAMlD,eAAO,MAAM,KAAK,GAAI,OAAO,MAAM,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,KAAG,MAE/D,CAAC;AASF,eAAO,MAAM,mBAAmB,GAAI,MAAM,IAAI,EAAE,OAAO,IAAI,EAAE,KAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAWrF,CAAC;AAeF,wBAAgB,qCAAqC,CACnD,KAAK,EAAE,IAAI,EAAE,EACb,eAAe,EAAE,UAAU,EAC3B,YAAY,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAC/C,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,EAC9C,MAAM,SAAmB,EACzB,gBAAgB,GAAE,MAAM,EAAO,EAC/B,iBAAiB,GAAE;IAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAAC,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;CAA8B,GACvF,UAAU,CAgCZ;AAED,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,KAAG,MAE1C,CAAC;AAMF,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,KAAG,MAE5C,CAAC;AAMF,eAAO,MAAM,cAAc,GAAI,OAAO,MAAM,KAAG,MAE9C,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CACjE,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,EAAE,yBAAyB,KAAK,IAAI,EAAE,CAAC;AAqChG,eAAO,MAAM,iBAAiB,EAAE,kBA8E/B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAMF,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,QAAQ,GACvB,aAAa,GAAG,SAAS,CAgB3B;AAWD,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,MAAM,EAAE,GACnB,MAAM,GAAG,IAAI,CAQf"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Position } from "../xyflow/react.js";
|
|
2
2
|
import { DEFAULT_NODE_SIZE, GRID_SPACING, PREVIEW_NODE_ID } from "../constants.js";
|
|
3
|
+
const clamp = (value, min, max)=>Math.min(Math.max(value, min), max);
|
|
3
4
|
const getAbsolutePosition = (node, nodes)=>{
|
|
4
5
|
let x = node.position.x;
|
|
5
6
|
let y = node.position.y;
|
|
@@ -28,25 +29,31 @@ function getNonOverlappingPositionForDirection(nodes, newNodePosition, newNodeSt
|
|
|
28
29
|
return newNodePosition;
|
|
29
30
|
}
|
|
30
31
|
const snapToGrid = (value)=>Math.round(value / GRID_SPACING) * GRID_SPACING;
|
|
31
|
-
|
|
32
|
+
const snapUpToGrid = (value)=>Math.ceil(value / GRID_SPACING) * GRID_SPACING;
|
|
33
|
+
const snapDownToGrid = (value)=>Math.floor(value / GRID_SPACING) * GRID_SPACING;
|
|
34
|
+
function getBoxesFromNodes(nodes, margin = 0, getNodeSize) {
|
|
32
35
|
const boxes = new Array(nodes.length);
|
|
33
36
|
for(let i = 0; i < nodes.length; i++){
|
|
34
37
|
const node = nodes[i];
|
|
38
|
+
const nodeSize = getNodeSize?.(node) ?? {
|
|
39
|
+
width: node.width ?? node.measured?.width ?? DEFAULT_NODE_SIZE,
|
|
40
|
+
height: node.height ?? node.measured?.height ?? DEFAULT_NODE_SIZE
|
|
41
|
+
};
|
|
35
42
|
boxes[i] = {
|
|
36
43
|
x: node.position.x - margin,
|
|
37
44
|
y: node.position.y - margin,
|
|
38
|
-
width:
|
|
39
|
-
height:
|
|
45
|
+
width: nodeSize.width + 2 * margin,
|
|
46
|
+
height: nodeSize.height + 2 * margin,
|
|
40
47
|
node,
|
|
41
48
|
moved: false
|
|
42
49
|
};
|
|
43
50
|
}
|
|
44
51
|
return boxes;
|
|
45
52
|
}
|
|
46
|
-
const resolveCollisions = (nodes, { maxIterations = 50, overlapThreshold = 0, margin = 2 * GRID_SPACING, ignoredNodeTypes } = {})=>{
|
|
53
|
+
const resolveCollisions = (nodes, { maxIterations = 50, overlapThreshold = 0, margin = 2 * GRID_SPACING, ignoredNodeTypes, getNodeSize } = {})=>{
|
|
47
54
|
const ignoredSet = new Set(ignoredNodeTypes);
|
|
48
55
|
const collisionNodes = ignoredSet.size > 0 ? nodes.filter((n)=>!ignoredSet.has(n.type ?? '')) : nodes;
|
|
49
|
-
const boxes = getBoxesFromNodes(collisionNodes, margin);
|
|
56
|
+
const boxes = getBoxesFromNodes(collisionNodes, margin, getNodeSize);
|
|
50
57
|
for(let iter = 0; iter < maxIterations; iter++){
|
|
51
58
|
let moved = false;
|
|
52
59
|
for(let i = 0; i < boxes.length; i++)for(let j = i + 1; j < boxes.length; j++){
|
|
@@ -108,4 +115,4 @@ function getHandleIndex(handleId, position, allHandles) {
|
|
|
108
115
|
const index = peers.findIndex((h)=>h.id === handleId);
|
|
109
116
|
return -1 === index ? null : index;
|
|
110
117
|
}
|
|
111
|
-
export { getAbsolutePosition, getHandleIndex, getNonOverlappingPositionForDirection, resolveCollisions, resolveHandleContext, snapToGrid };
|
|
118
|
+
export { clamp, getAbsolutePosition, getHandleIndex, getNonOverlappingPositionForDirection, resolveCollisions, resolveHandleContext, snapDownToGrid, snapToGrid, snapUpToGrid };
|
|
@@ -24,13 +24,14 @@ var __webpack_require__ = {};
|
|
|
24
24
|
var __webpack_exports__ = {};
|
|
25
25
|
__webpack_require__.r(__webpack_exports__);
|
|
26
26
|
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
-
|
|
27
|
+
getExpandedShape: ()=>getExpandedShape,
|
|
28
|
+
getExpandedSize: ()=>getExpandedSize,
|
|
28
29
|
EXPANDED_RECTANGLE_WIDTH: ()=>EXPANDED_RECTANGLE_WIDTH,
|
|
29
30
|
getCollapsedShape: ()=>getCollapsedShape,
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
getExpandedSize: ()=>getExpandedSize
|
|
31
|
+
COLLAPSED_NODE_SIZE: ()=>COLLAPSED_NODE_SIZE,
|
|
32
|
+
getCollapsedSize: ()=>getCollapsedSize
|
|
33
33
|
});
|
|
34
|
+
const LoopNode_constants_cjs_namespaceObject = require("../components/LoopNode/LoopNode.constants.cjs");
|
|
34
35
|
const COLLAPSED_NODE_SIZE = 96;
|
|
35
36
|
const EXPANDED_RECTANGLE_WIDTH = 288;
|
|
36
37
|
const getCollapsedShape = (originalShape)=>'rectangle' === originalShape ? 'square' : originalShape;
|
|
@@ -39,10 +40,16 @@ const getCollapsedSize = ()=>({
|
|
|
39
40
|
width: COLLAPSED_NODE_SIZE,
|
|
40
41
|
height: COLLAPSED_NODE_SIZE
|
|
41
42
|
});
|
|
42
|
-
const getExpandedSize = (shape)=>
|
|
43
|
+
const getExpandedSize = (shape, manifest)=>{
|
|
44
|
+
if (manifest?.handleConfiguration.some((group)=>'inner' === group.boundary)) return {
|
|
45
|
+
width: LoopNode_constants_cjs_namespaceObject.DEFAULT_LOOP_WIDTH,
|
|
46
|
+
height: LoopNode_constants_cjs_namespaceObject.DEFAULT_LOOP_HEIGHT
|
|
47
|
+
};
|
|
48
|
+
return {
|
|
43
49
|
width: 'rectangle' === shape ? EXPANDED_RECTANGLE_WIDTH : COLLAPSED_NODE_SIZE,
|
|
44
50
|
height: COLLAPSED_NODE_SIZE
|
|
45
|
-
}
|
|
51
|
+
};
|
|
52
|
+
};
|
|
46
53
|
exports.COLLAPSED_NODE_SIZE = __webpack_exports__.COLLAPSED_NODE_SIZE;
|
|
47
54
|
exports.EXPANDED_RECTANGLE_WIDTH = __webpack_exports__.EXPANDED_RECTANGLE_WIDTH;
|
|
48
55
|
exports.getCollapsedShape = __webpack_exports__.getCollapsedShape;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { NodeShape } from '../schema/node-definition';
|
|
1
|
+
import type { NodeManifest, NodeShape } from '../schema/node-definition';
|
|
2
2
|
export declare const COLLAPSED_NODE_SIZE = 96;
|
|
3
3
|
export declare const EXPANDED_RECTANGLE_WIDTH = 288;
|
|
4
4
|
export declare const getCollapsedShape: (originalShape?: NodeShape) => NodeShape | undefined;
|
|
@@ -7,7 +7,7 @@ export declare const getCollapsedSize: () => {
|
|
|
7
7
|
width: number;
|
|
8
8
|
height: number;
|
|
9
9
|
};
|
|
10
|
-
export declare const getExpandedSize: (shape?: NodeShape) => {
|
|
10
|
+
export declare const getExpandedSize: (shape?: NodeShape, manifest?: Pick<NodeManifest, "handleConfiguration">) => {
|
|
11
11
|
width: number;
|
|
12
12
|
height: number;
|
|
13
13
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collapse.d.ts","sourceRoot":"","sources":["../../../src/canvas/utils/collapse.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"collapse.d.ts","sourceRoot":"","sources":["../../../src/canvas/utils/collapse.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAKzE,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAKtC,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAM5C,eAAO,MAAM,iBAAiB,GAAI,gBAAgB,SAAS,KAAG,SAAS,GAAG,SAEzE,CAAC;AAOF,eAAO,MAAM,gBAAgB,GAAI,iBAAiB,SAAS,KAAG,SAAS,GAAG,SAEzE,CAAC;AAMF,eAAO,MAAM,gBAAgB,QAAO;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAKlE,CAAC;AAKF,eAAO,MAAM,eAAe,GAC1B,QAAQ,SAAS,EACjB,WAAW,IAAI,CAAC,YAAY,EAAE,qBAAqB,CAAC,KACnD;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAYjC,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { DEFAULT_LOOP_HEIGHT, DEFAULT_LOOP_WIDTH } from "../components/LoopNode/LoopNode.constants.js";
|
|
1
2
|
const COLLAPSED_NODE_SIZE = 96;
|
|
2
3
|
const EXPANDED_RECTANGLE_WIDTH = 288;
|
|
3
4
|
const getCollapsedShape = (originalShape)=>'rectangle' === originalShape ? 'square' : originalShape;
|
|
@@ -6,8 +7,14 @@ const getCollapsedSize = ()=>({
|
|
|
6
7
|
width: COLLAPSED_NODE_SIZE,
|
|
7
8
|
height: COLLAPSED_NODE_SIZE
|
|
8
9
|
});
|
|
9
|
-
const getExpandedSize = (shape)=>
|
|
10
|
+
const getExpandedSize = (shape, manifest)=>{
|
|
11
|
+
if (manifest?.handleConfiguration.some((group)=>'inner' === group.boundary)) return {
|
|
12
|
+
width: DEFAULT_LOOP_WIDTH,
|
|
13
|
+
height: DEFAULT_LOOP_HEIGHT
|
|
14
|
+
};
|
|
15
|
+
return {
|
|
10
16
|
width: 'rectangle' === shape ? EXPANDED_RECTANGLE_WIDTH : COLLAPSED_NODE_SIZE,
|
|
11
17
|
height: COLLAPSED_NODE_SIZE
|
|
12
|
-
}
|
|
18
|
+
};
|
|
19
|
+
};
|
|
13
20
|
export { COLLAPSED_NODE_SIZE, EXPANDED_RECTANGLE_WIDTH, getCollapsedShape, getCollapsedSize, getExpandedShape, getExpandedSize };
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.d = (exports1, definition)=>{
|
|
5
|
+
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: definition[key]
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
})();
|
|
11
|
+
(()=>{
|
|
12
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
13
|
+
})();
|
|
14
|
+
(()=>{
|
|
15
|
+
__webpack_require__.r = (exports1)=>{
|
|
16
|
+
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
17
|
+
value: 'Module'
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
20
|
+
value: true
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
})();
|
|
24
|
+
var __webpack_exports__ = {};
|
|
25
|
+
__webpack_require__.r(__webpack_exports__);
|
|
26
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
+
ensureContainersFitChildren: ()=>ensureContainersFitChildren,
|
|
28
|
+
getNodeDimensions: ()=>getNodeDimensions
|
|
29
|
+
});
|
|
30
|
+
const external_constants_cjs_namespaceObject = require("../constants.cjs");
|
|
31
|
+
const external_NodeUtils_cjs_namespaceObject = require("./NodeUtils.cjs");
|
|
32
|
+
function readNumericDimension(...values) {
|
|
33
|
+
for (const value of values){
|
|
34
|
+
if ('number' == typeof value && Number.isFinite(value)) return value;
|
|
35
|
+
if ('string' == typeof value) {
|
|
36
|
+
const parsedValue = Number.parseFloat(value);
|
|
37
|
+
if (Number.isFinite(parsedValue)) return parsedValue;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
function getNodeDimensions(node, fallback = {
|
|
42
|
+
width: external_constants_cjs_namespaceObject.DEFAULT_NODE_SIZE,
|
|
43
|
+
height: external_constants_cjs_namespaceObject.DEFAULT_NODE_SIZE
|
|
44
|
+
}) {
|
|
45
|
+
return {
|
|
46
|
+
width: readNumericDimension(node.width, node.measured?.width, node.style?.width) ?? fallback.width,
|
|
47
|
+
height: readNumericDimension(node.height, node.measured?.height, node.style?.height) ?? fallback.height
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
function updateNodeInArray(nodes, updatedNode) {
|
|
51
|
+
return nodes.map((node)=>node.id === updatedNode.id ? updatedNode : node);
|
|
52
|
+
}
|
|
53
|
+
function setNodeDimensions(node, dimensions) {
|
|
54
|
+
const styleDimensions = {
|
|
55
|
+
...void 0 !== dimensions.width ? {
|
|
56
|
+
width: dimensions.width
|
|
57
|
+
} : {},
|
|
58
|
+
...void 0 !== dimensions.height ? {
|
|
59
|
+
height: dimensions.height
|
|
60
|
+
} : {}
|
|
61
|
+
};
|
|
62
|
+
return {
|
|
63
|
+
...node,
|
|
64
|
+
...void 0 !== dimensions.width ? {
|
|
65
|
+
width: dimensions.width
|
|
66
|
+
} : {},
|
|
67
|
+
...void 0 !== dimensions.height ? {
|
|
68
|
+
height: dimensions.height
|
|
69
|
+
} : {},
|
|
70
|
+
style: {
|
|
71
|
+
...node.style,
|
|
72
|
+
...styleDimensions
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
function shouldIncludeChild(node, ignoredNodeTypes) {
|
|
77
|
+
if (node.id === external_constants_cjs_namespaceObject.PREVIEW_NODE_ID) return false;
|
|
78
|
+
if (node.hidden) return false;
|
|
79
|
+
if (ignoredNodeTypes.has(node.type ?? '')) return false;
|
|
80
|
+
return true;
|
|
81
|
+
}
|
|
82
|
+
function collectContainerIds(nodes, containerIds, nodesById, includeAncestors) {
|
|
83
|
+
const requestedIds = containerIds ? [
|
|
84
|
+
...containerIds
|
|
85
|
+
].filter((containerId)=>!!containerId) : nodes.flatMap((node)=>node.parentId ? [
|
|
86
|
+
node.parentId
|
|
87
|
+
] : []);
|
|
88
|
+
const collectedIds = new Set();
|
|
89
|
+
for (const requestedId of requestedIds){
|
|
90
|
+
let currentId = requestedId;
|
|
91
|
+
while(currentId && nodesById.has(currentId)){
|
|
92
|
+
collectedIds.add(currentId);
|
|
93
|
+
if (!includeAncestors) break;
|
|
94
|
+
currentId = nodesById.get(currentId)?.parentId;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return [
|
|
98
|
+
...collectedIds
|
|
99
|
+
].sort((leftId, rightId)=>getNodeDepth(nodesById.get(rightId), nodesById) - getNodeDepth(nodesById.get(leftId), nodesById));
|
|
100
|
+
}
|
|
101
|
+
function getNodeDepth(node, nodesById) {
|
|
102
|
+
let depth = 0;
|
|
103
|
+
let currentNode = node;
|
|
104
|
+
const visitedIds = new Set();
|
|
105
|
+
while(currentNode?.parentId && !visitedIds.has(currentNode.id)){
|
|
106
|
+
visitedIds.add(currentNode.id);
|
|
107
|
+
const parentNode = nodesById.get(currentNode.parentId);
|
|
108
|
+
if (!parentNode) break;
|
|
109
|
+
depth += 1;
|
|
110
|
+
currentNode = parentNode;
|
|
111
|
+
}
|
|
112
|
+
return depth;
|
|
113
|
+
}
|
|
114
|
+
function ensureContainersFitChildren(nodes, { containerIds, getContainerFitGeometry, getNodeDimensions: resolveNodeDimensions = getNodeDimensions, ignoredNodeTypes = [], includeAncestors = false } = {}) {
|
|
115
|
+
if (0 === nodes.length) return nodes;
|
|
116
|
+
let resolvedNodes = nodes;
|
|
117
|
+
const nodesById = new Map(resolvedNodes.map((node)=>[
|
|
118
|
+
node.id,
|
|
119
|
+
node
|
|
120
|
+
]));
|
|
121
|
+
const ignoredNodeTypesSet = new Set(ignoredNodeTypes);
|
|
122
|
+
const containerIdsToFit = collectContainerIds(resolvedNodes, containerIds, nodesById, includeAncestors);
|
|
123
|
+
if (0 === containerIdsToFit.length) return nodes;
|
|
124
|
+
let changed = false;
|
|
125
|
+
for (const containerId of containerIdsToFit){
|
|
126
|
+
const containerNode = nodesById.get(containerId);
|
|
127
|
+
if (!containerNode) continue;
|
|
128
|
+
const geometry = getContainerFitGeometry?.(containerNode);
|
|
129
|
+
if (!geometry) continue;
|
|
130
|
+
const children = resolvedNodes.filter((node)=>node.parentId === containerId && shouldIncludeChild(node, ignoredNodeTypesSet));
|
|
131
|
+
if (0 === children.length) continue;
|
|
132
|
+
const requiredBounds = children.reduce((bounds, child)=>{
|
|
133
|
+
const childDimensions = resolveNodeDimensions(child);
|
|
134
|
+
return {
|
|
135
|
+
right: Math.max(bounds.right, child.position.x + childDimensions.width),
|
|
136
|
+
bottom: Math.max(bounds.bottom, child.position.y + childDimensions.height)
|
|
137
|
+
};
|
|
138
|
+
}, {
|
|
139
|
+
right: 0,
|
|
140
|
+
bottom: 0
|
|
141
|
+
});
|
|
142
|
+
const resolvedContainerDimensions = resolveNodeDimensions(containerNode);
|
|
143
|
+
const currentDimensions = {
|
|
144
|
+
width: Math.max(geometry.minWidth, resolvedContainerDimensions.width),
|
|
145
|
+
height: Math.max(geometry.minHeight, resolvedContainerDimensions.height)
|
|
146
|
+
};
|
|
147
|
+
const requiredWidth = (0, external_NodeUtils_cjs_namespaceObject.snapUpToGrid)(Math.max(geometry.minWidth, requiredBounds.right + geometry.padding.right));
|
|
148
|
+
const requiredHeight = (0, external_NodeUtils_cjs_namespaceObject.snapUpToGrid)(Math.max(geometry.minHeight, requiredBounds.bottom + geometry.padding.bottom));
|
|
149
|
+
const nextDimensions = {};
|
|
150
|
+
if (requiredWidth > currentDimensions.width) nextDimensions.width = requiredWidth;
|
|
151
|
+
if (requiredHeight > currentDimensions.height) nextDimensions.height = requiredHeight;
|
|
152
|
+
if (void 0 !== nextDimensions.width || void 0 !== nextDimensions.height) {
|
|
153
|
+
const updatedContainer = setNodeDimensions(containerNode, nextDimensions);
|
|
154
|
+
nodesById.set(containerId, updatedContainer);
|
|
155
|
+
resolvedNodes = updateNodeInArray(resolvedNodes, updatedContainer);
|
|
156
|
+
changed = true;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
return changed ? resolvedNodes : nodes;
|
|
160
|
+
}
|
|
161
|
+
exports.ensureContainersFitChildren = __webpack_exports__.ensureContainersFitChildren;
|
|
162
|
+
exports.getNodeDimensions = __webpack_exports__.getNodeDimensions;
|
|
163
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
164
|
+
"ensureContainersFitChildren",
|
|
165
|
+
"getNodeDimensions"
|
|
166
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
167
|
+
Object.defineProperty(exports, '__esModule', {
|
|
168
|
+
value: true
|
|
169
|
+
});
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { Node } from '../xyflow/react.ts';
|
|
2
|
+
export interface NodeDimensions {
|
|
3
|
+
width: number;
|
|
4
|
+
height: number;
|
|
5
|
+
}
|
|
6
|
+
export interface ContainerFitGeometry {
|
|
7
|
+
minWidth: number;
|
|
8
|
+
minHeight: number;
|
|
9
|
+
padding: {
|
|
10
|
+
right: number;
|
|
11
|
+
bottom: number;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export interface EnsureContainersFitChildrenOptions {
|
|
15
|
+
containerIds?: Iterable<string | undefined | null>;
|
|
16
|
+
getContainerFitGeometry?: (containerNode: Node) => ContainerFitGeometry | null | undefined;
|
|
17
|
+
getNodeDimensions?: (node: Node) => NodeDimensions;
|
|
18
|
+
ignoredNodeTypes?: string[];
|
|
19
|
+
includeAncestors?: boolean;
|
|
20
|
+
}
|
|
21
|
+
export declare function getNodeDimensions(node: Pick<Node, 'width' | 'height' | 'measured' | 'style'>, fallback?: NodeDimensions): NodeDimensions;
|
|
22
|
+
export declare function ensureContainersFitChildren(nodes: Node[], { containerIds, getContainerFitGeometry, getNodeDimensions: resolveNodeDimensions, ignoredNodeTypes, includeAncestors, }?: EnsureContainersFitChildrenOptions): Node[];
|
|
23
|
+
//# sourceMappingURL=container-sizing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"container-sizing.d.ts","sourceRoot":"","sources":["../../../src/canvas/utils/container-sizing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0CAA0C,CAAC;AAIrE,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,kCAAkC;IACjD,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC;IACnD,uBAAuB,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,KAAK,oBAAoB,GAAG,IAAI,GAAG,SAAS,CAAC;IAC3F,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,cAAc,CAAC;IACnD,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAkBD,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC,EAC3D,QAAQ,GAAE,cAAwE,GACjF,cAAc,CAQhB;AAkFD,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,IAAI,EAAE,EACb,EACE,YAAY,EACZ,uBAAuB,EACvB,iBAAiB,EAAE,qBAAyC,EAC5D,gBAAqB,EACrB,gBAAwB,GACzB,GAAE,kCAAuC,GACzC,IAAI,EAAE,CAsER"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { DEFAULT_NODE_SIZE, PREVIEW_NODE_ID } from "../constants.js";
|
|
2
|
+
import { snapUpToGrid } from "./NodeUtils.js";
|
|
3
|
+
function readNumericDimension(...values) {
|
|
4
|
+
for (const value of values){
|
|
5
|
+
if ('number' == typeof value && Number.isFinite(value)) return value;
|
|
6
|
+
if ('string' == typeof value) {
|
|
7
|
+
const parsedValue = Number.parseFloat(value);
|
|
8
|
+
if (Number.isFinite(parsedValue)) return parsedValue;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
function getNodeDimensions(node, fallback = {
|
|
13
|
+
width: DEFAULT_NODE_SIZE,
|
|
14
|
+
height: DEFAULT_NODE_SIZE
|
|
15
|
+
}) {
|
|
16
|
+
return {
|
|
17
|
+
width: readNumericDimension(node.width, node.measured?.width, node.style?.width) ?? fallback.width,
|
|
18
|
+
height: readNumericDimension(node.height, node.measured?.height, node.style?.height) ?? fallback.height
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
function updateNodeInArray(nodes, updatedNode) {
|
|
22
|
+
return nodes.map((node)=>node.id === updatedNode.id ? updatedNode : node);
|
|
23
|
+
}
|
|
24
|
+
function setNodeDimensions(node, dimensions) {
|
|
25
|
+
const styleDimensions = {
|
|
26
|
+
...void 0 !== dimensions.width ? {
|
|
27
|
+
width: dimensions.width
|
|
28
|
+
} : {},
|
|
29
|
+
...void 0 !== dimensions.height ? {
|
|
30
|
+
height: dimensions.height
|
|
31
|
+
} : {}
|
|
32
|
+
};
|
|
33
|
+
return {
|
|
34
|
+
...node,
|
|
35
|
+
...void 0 !== dimensions.width ? {
|
|
36
|
+
width: dimensions.width
|
|
37
|
+
} : {},
|
|
38
|
+
...void 0 !== dimensions.height ? {
|
|
39
|
+
height: dimensions.height
|
|
40
|
+
} : {},
|
|
41
|
+
style: {
|
|
42
|
+
...node.style,
|
|
43
|
+
...styleDimensions
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
function shouldIncludeChild(node, ignoredNodeTypes) {
|
|
48
|
+
if (node.id === PREVIEW_NODE_ID) return false;
|
|
49
|
+
if (node.hidden) return false;
|
|
50
|
+
if (ignoredNodeTypes.has(node.type ?? '')) return false;
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
function collectContainerIds(nodes, containerIds, nodesById, includeAncestors) {
|
|
54
|
+
const requestedIds = containerIds ? [
|
|
55
|
+
...containerIds
|
|
56
|
+
].filter((containerId)=>!!containerId) : nodes.flatMap((node)=>node.parentId ? [
|
|
57
|
+
node.parentId
|
|
58
|
+
] : []);
|
|
59
|
+
const collectedIds = new Set();
|
|
60
|
+
for (const requestedId of requestedIds){
|
|
61
|
+
let currentId = requestedId;
|
|
62
|
+
while(currentId && nodesById.has(currentId)){
|
|
63
|
+
collectedIds.add(currentId);
|
|
64
|
+
if (!includeAncestors) break;
|
|
65
|
+
currentId = nodesById.get(currentId)?.parentId;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return [
|
|
69
|
+
...collectedIds
|
|
70
|
+
].sort((leftId, rightId)=>getNodeDepth(nodesById.get(rightId), nodesById) - getNodeDepth(nodesById.get(leftId), nodesById));
|
|
71
|
+
}
|
|
72
|
+
function getNodeDepth(node, nodesById) {
|
|
73
|
+
let depth = 0;
|
|
74
|
+
let currentNode = node;
|
|
75
|
+
const visitedIds = new Set();
|
|
76
|
+
while(currentNode?.parentId && !visitedIds.has(currentNode.id)){
|
|
77
|
+
visitedIds.add(currentNode.id);
|
|
78
|
+
const parentNode = nodesById.get(currentNode.parentId);
|
|
79
|
+
if (!parentNode) break;
|
|
80
|
+
depth += 1;
|
|
81
|
+
currentNode = parentNode;
|
|
82
|
+
}
|
|
83
|
+
return depth;
|
|
84
|
+
}
|
|
85
|
+
function ensureContainersFitChildren(nodes, { containerIds, getContainerFitGeometry, getNodeDimensions: resolveNodeDimensions = getNodeDimensions, ignoredNodeTypes = [], includeAncestors = false } = {}) {
|
|
86
|
+
if (0 === nodes.length) return nodes;
|
|
87
|
+
let resolvedNodes = nodes;
|
|
88
|
+
const nodesById = new Map(resolvedNodes.map((node)=>[
|
|
89
|
+
node.id,
|
|
90
|
+
node
|
|
91
|
+
]));
|
|
92
|
+
const ignoredNodeTypesSet = new Set(ignoredNodeTypes);
|
|
93
|
+
const containerIdsToFit = collectContainerIds(resolvedNodes, containerIds, nodesById, includeAncestors);
|
|
94
|
+
if (0 === containerIdsToFit.length) return nodes;
|
|
95
|
+
let changed = false;
|
|
96
|
+
for (const containerId of containerIdsToFit){
|
|
97
|
+
const containerNode = nodesById.get(containerId);
|
|
98
|
+
if (!containerNode) continue;
|
|
99
|
+
const geometry = getContainerFitGeometry?.(containerNode);
|
|
100
|
+
if (!geometry) continue;
|
|
101
|
+
const children = resolvedNodes.filter((node)=>node.parentId === containerId && shouldIncludeChild(node, ignoredNodeTypesSet));
|
|
102
|
+
if (0 === children.length) continue;
|
|
103
|
+
const requiredBounds = children.reduce((bounds, child)=>{
|
|
104
|
+
const childDimensions = resolveNodeDimensions(child);
|
|
105
|
+
return {
|
|
106
|
+
right: Math.max(bounds.right, child.position.x + childDimensions.width),
|
|
107
|
+
bottom: Math.max(bounds.bottom, child.position.y + childDimensions.height)
|
|
108
|
+
};
|
|
109
|
+
}, {
|
|
110
|
+
right: 0,
|
|
111
|
+
bottom: 0
|
|
112
|
+
});
|
|
113
|
+
const resolvedContainerDimensions = resolveNodeDimensions(containerNode);
|
|
114
|
+
const currentDimensions = {
|
|
115
|
+
width: Math.max(geometry.minWidth, resolvedContainerDimensions.width),
|
|
116
|
+
height: Math.max(geometry.minHeight, resolvedContainerDimensions.height)
|
|
117
|
+
};
|
|
118
|
+
const requiredWidth = snapUpToGrid(Math.max(geometry.minWidth, requiredBounds.right + geometry.padding.right));
|
|
119
|
+
const requiredHeight = snapUpToGrid(Math.max(geometry.minHeight, requiredBounds.bottom + geometry.padding.bottom));
|
|
120
|
+
const nextDimensions = {};
|
|
121
|
+
if (requiredWidth > currentDimensions.width) nextDimensions.width = requiredWidth;
|
|
122
|
+
if (requiredHeight > currentDimensions.height) nextDimensions.height = requiredHeight;
|
|
123
|
+
if (void 0 !== nextDimensions.width || void 0 !== nextDimensions.height) {
|
|
124
|
+
const updatedContainer = setNodeDimensions(containerNode, nextDimensions);
|
|
125
|
+
nodesById.set(containerId, updatedContainer);
|
|
126
|
+
resolvedNodes = updateNodeInArray(resolvedNodes, updatedContainer);
|
|
127
|
+
changed = true;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return changed ? resolvedNodes : nodes;
|
|
131
|
+
}
|
|
132
|
+
export { ensureContainersFitChildren, getNodeDimensions };
|