From ea69d26a607769f47cb9dcf275c7cdb4e0e0fd56 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Mon, 10 Jun 2024 13:50:06 +0200 Subject: [PATCH] #5237 Fix for incorrect handling of self loops with elk layout --- packages/mermaid-layout-elk/src/find-common-ancestor.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/mermaid-layout-elk/src/find-common-ancestor.ts b/packages/mermaid-layout-elk/src/find-common-ancestor.ts index ebdc01cf7..83990b2f3 100644 --- a/packages/mermaid-layout-elk/src/find-common-ancestor.ts +++ b/packages/mermaid-layout-elk/src/find-common-ancestor.ts @@ -7,6 +7,11 @@ export const findCommonAncestor = (id1: string, id2: string, treeData: TreeData) const { parentById } = treeData; const visited = new Set(); let currentId = id1; + + if (id1 === id2) { + return parentById[id1] || 'root'; + } + while (currentId) { visited.add(currentId); if (currentId === id2) {