Merge pull request #6849 from anderium/bug/6647_fix-crossing-regression-while-keeping-preferred-node-order

Make elk not force node model order, but strongly consider it instead
This commit is contained in:
Knut Sveidqvist
2025-08-14 10:17:25 +00:00
committed by GitHub
3 changed files with 21 additions and 1 deletions

View File

@@ -0,0 +1,5 @@
---
'@mermaid-js/layout-elk': patch
---
Make elk not force node model order, but strongly consider it instead

View File

@@ -1053,6 +1053,21 @@ flowchart LR
});
});
});
it('6647-elk: should keep node order when using elk layout unless it would add crossings', () => {
imgSnapshotTest(
`---
config:
layout: elk
---
flowchart TB
a --> a1 & a2 & a3 & a4
b --> b1 & b2
b2 --> b3
b1 --> b4
`
);
});
});
describe('Title and arrow styling #4813', () => {

View File

@@ -766,7 +766,7 @@ export const render = async (
id: 'root',
layoutOptions: {
'elk.hierarchyHandling': 'INCLUDE_CHILDREN',
'elk.layered.crossingMinimization.forceNodeModelOrder': true,
'elk.layered.considerModelOrder.strategy': 'NODES_AND_EDGES',
'elk.algorithm': algorithm,
'nodePlacement.strategy': data4Layout.config.elk?.nodePlacementStrategy,
'elk.layered.mergeEdges': data4Layout.config.elk?.mergeEdges,