From 85c5b9b4c064e2edabf21757c8215a1018d4d288 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Wed, 11 Jun 2025 17:00:29 +0200 Subject: [PATCH 1/2] #6647 Make elk respect the order of nodes based from the code --- .changeset/better-keys-slide.md | 5 +++++ packages/mermaid-layout-elk/src/render.ts | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 .changeset/better-keys-slide.md diff --git a/.changeset/better-keys-slide.md b/.changeset/better-keys-slide.md new file mode 100644 index 000000000..23e711330 --- /dev/null +++ b/.changeset/better-keys-slide.md @@ -0,0 +1,5 @@ +--- +'@mermaid-js/layout-elk': patch +--- + +Make elk respect the order of nodes based from the code diff --git a/packages/mermaid-layout-elk/src/render.ts b/packages/mermaid-layout-elk/src/render.ts index 4d124c04f..61539a887 100644 --- a/packages/mermaid-layout-elk/src/render.ts +++ b/packages/mermaid-layout-elk/src/render.ts @@ -766,6 +766,7 @@ export const render = async ( id: 'root', layoutOptions: { 'elk.hierarchyHandling': 'INCLUDE_CHILDREN', + 'elk.layered.crossingMinimization.forceNodeModelOrder': true, 'elk.algorithm': algorithm, 'nodePlacement.strategy': data4Layout.config.elk?.nodePlacementStrategy, 'elk.layered.mergeEdges': data4Layout.config.elk?.mergeEdges, @@ -780,7 +781,6 @@ export const render = async ( // 'spacing.edgeEdge': 10, // 'spacing.edgeEdgeBetweenLayers': 20, // 'spacing.nodeSelfLoop': 20, - // Tweaking options // 'elk.layered.nodePlacement.favorStraightEdges': true, // 'nodePlacement.feedbackEdges': true, @@ -793,7 +793,7 @@ export const render = async ( // 'elk.layered.crossingMinimization.semiInteractive': true, // 'elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor': 1, // 'elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth': 4.0, - // 'elk.layered.wrapping.validify.strategy': 'LOOK_BACK', + 'elk.layered.wrapping.validify.strategy': 'LOOK_BACK', // 'elk.insideSelfLoops.activate': true, // 'elk.alg.layered.options.EdgeStraighteningStrategy': 'NONE', // 'elk.layered.considerModelOrder.strategy': 'NODES_AND_EDGES', // NODES_AND_EDGES From e682172823d029b8e15051fdca6cc3c30c6af3f6 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Wed, 11 Jun 2025 17:06:17 +0200 Subject: [PATCH 2/2] Reverting the elk.layered.wrapping.validify.strategy setting --- packages/mermaid-layout-elk/src/render.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mermaid-layout-elk/src/render.ts b/packages/mermaid-layout-elk/src/render.ts index 61539a887..9f361bf7b 100644 --- a/packages/mermaid-layout-elk/src/render.ts +++ b/packages/mermaid-layout-elk/src/render.ts @@ -793,7 +793,7 @@ export const render = async ( // 'elk.layered.crossingMinimization.semiInteractive': true, // 'elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor': 1, // 'elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth': 4.0, - 'elk.layered.wrapping.validify.strategy': 'LOOK_BACK', + // 'elk.layered.wrapping.validify.strategy': 'LOOK_BACK', // 'elk.insideSelfLoops.activate': true, // 'elk.alg.layered.options.EdgeStraighteningStrategy': 'NONE', // 'elk.layered.considerModelOrder.strategy': 'NODES_AND_EDGES', // NODES_AND_EDGES