From 6b7d78ebcf92c4c53d40b9ca956d891a0c4780fe Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Wed, 3 Jul 2024 15:47:33 +0200 Subject: [PATCH] #5237 Fix fir subgraphs with elk --- packages/mermaid-layout-elk/src/render.ts | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/packages/mermaid-layout-elk/src/render.ts b/packages/mermaid-layout-elk/src/render.ts index fa1cb5abe..c75a5c1a7 100644 --- a/packages/mermaid-layout-elk/src/render.ts +++ b/packages/mermaid-layout-elk/src/render.ts @@ -594,18 +594,11 @@ export const render = async (data4Layout, svg, element, algorithm) => { return { x: segment.x + offset.x, y: segment.y + offset.y }; }); edge.points = [ - { - x: startNode.x + startNode.width / 2 + offset.x, - y: startNode.y + startNode.height / 2 + offset.y, - }, { x: src.x + offset.x, y: src.y + offset.y }, ...segPoints, { x: dest.x + offset.x, y: dest.y + offset.y }, - { - x: endNode.x + endNode.width / 2 + offset.x, - y: endNode.y + endNode.height / 2 + offset.y, - }, ]; + let sw = startNode.width; let ew = endNode.width; if (startNode.isGroup) { @@ -644,7 +637,18 @@ export const render = async (data4Layout, svg, element, algorithm) => { startNode.innerHTML ); } - + if (startNode.shape === 'diamond') { + edge.points.unshift({ + x: startNode.x + startNode.width / 2 + offset.x, + y: startNode.y + startNode.height / 2 + offset.y, + }); + } + if (startNode.shape === 'diamond') { + edge.points.push({ + x: endNode.x + endNode.width / 2 + offset.x, + y: endNode.y + endNode.height / 2 + offset.y, + }); + } edge.points = cutPathAtIntersect( edge.points.reverse(), {