Merge pull request #4782 from xyflow/fix/evaluateAbsolutePosition
fixed evaluateAbsolutePosition for nested nodes
This commit is contained in:
@@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
'@xyflow/system': patch
|
||||||
|
'@xyflow/react': patch
|
||||||
|
'@xyflow/svelte': patch
|
||||||
|
---
|
||||||
|
|
||||||
|
Fix node intersections in nested flow.
|
||||||
@@ -252,18 +252,13 @@ export function evaluateAbsolutePosition(
|
|||||||
nodeLookup: NodeLookup,
|
nodeLookup: NodeLookup,
|
||||||
nodeOrigin: NodeOrigin
|
nodeOrigin: NodeOrigin
|
||||||
): XYPosition {
|
): XYPosition {
|
||||||
let nextParentId: string | undefined = parentId;
|
|
||||||
const positionAbsolute = { ...position };
|
const positionAbsolute = { ...position };
|
||||||
|
|
||||||
while (nextParentId) {
|
const parent = nodeLookup.get(parentId);
|
||||||
const parent = nodeLookup.get(nextParentId);
|
if (parent) {
|
||||||
nextParentId = parent?.parentId;
|
const origin = parent.origin || nodeOrigin;
|
||||||
|
positionAbsolute.x += parent.internals.positionAbsolute.x - (dimensions.width ?? 0) * origin[0];
|
||||||
if (parent) {
|
positionAbsolute.y += parent.internals.positionAbsolute.y - (dimensions.height ?? 0) * origin[1];
|
||||||
const origin = parent.origin || nodeOrigin;
|
|
||||||
positionAbsolute.x += parent.internals.positionAbsolute.x - (dimensions.width ?? 0) * origin[0];
|
|
||||||
positionAbsolute.y += parent.internals.positionAbsolute.y - (dimensions.height ?? 0) * origin[1];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return positionAbsolute;
|
return positionAbsolute;
|
||||||
|
|||||||
Reference in New Issue
Block a user