Merge pull request #4782 from xyflow/fix/evaluateAbsolutePosition

fixed evaluateAbsolutePosition for nested nodes
This commit is contained in:
Peter Kogo
2024-11-08 11:23:54 +01:00
committed by GitHub
2 changed files with 12 additions and 10 deletions

View File

@@ -252,18 +252,13 @@ export function evaluateAbsolutePosition(
nodeLookup: NodeLookup,
nodeOrigin: NodeOrigin
): XYPosition {
let nextParentId: string | undefined = parentId;
const positionAbsolute = { ...position };
while (nextParentId) {
const parent = nodeLookup.get(nextParentId);
nextParentId = parent?.parentId;
if (parent) {
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];
}
const parent = nodeLookup.get(parentId);
if (parent) {
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;