mirror of
https://github.com/mermaid-js/mermaid.git
synced 2025-09-23 09:20:03 +02:00
Merge pull request #5183 from rowanfr/origin/3258_Flowchart_nodeSpacing_Subgraph
Flowchart: Apply `nodeSpacing`/`rankSpacing` config to subgraphs
This commit is contained in:
@@ -760,6 +760,51 @@ A ~~~ B
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('3258: Should render subgraphs with main graph nodeSpacing and rankSpacing', () => {
|
||||||
|
imgSnapshotTest(
|
||||||
|
`---
|
||||||
|
title: Subgraph nodeSpacing and rankSpacing example
|
||||||
|
---
|
||||||
|
flowchart LR
|
||||||
|
X --> Y
|
||||||
|
subgraph X
|
||||||
|
direction LR
|
||||||
|
A
|
||||||
|
C
|
||||||
|
end
|
||||||
|
subgraph Y
|
||||||
|
B
|
||||||
|
D
|
||||||
|
end
|
||||||
|
`,
|
||||||
|
{ flowchart: { nodeSpacing: 1, rankSpacing: 1 } }
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('3258: Should render subgraphs with large nodeSpacing and rankSpacing', () => {
|
||||||
|
imgSnapshotTest(
|
||||||
|
`---
|
||||||
|
title: Subgraph nodeSpacing and rankSpacing example
|
||||||
|
config:
|
||||||
|
flowchart:
|
||||||
|
nodeSpacing: 250
|
||||||
|
rankSpacing: 250
|
||||||
|
---
|
||||||
|
flowchart LR
|
||||||
|
X --> Y
|
||||||
|
subgraph X
|
||||||
|
direction LR
|
||||||
|
A
|
||||||
|
C
|
||||||
|
end
|
||||||
|
subgraph Y
|
||||||
|
B
|
||||||
|
D
|
||||||
|
end
|
||||||
|
`
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
describe('Markdown strings flowchart (#4220)', () => {
|
describe('Markdown strings flowchart (#4220)', () => {
|
||||||
describe('html labels', () => {
|
describe('html labels', () => {
|
||||||
it('With styling and classes', () => {
|
it('With styling and classes', () => {
|
||||||
|
@@ -1591,6 +1591,33 @@
|
|||||||
</pre>
|
</pre>
|
||||||
<hr />
|
<hr />
|
||||||
|
|
||||||
|
<pre class="mermaid">
|
||||||
|
---
|
||||||
|
title: Subgraph nodeSpacing and rankSpacing example
|
||||||
|
config:
|
||||||
|
flowchart:
|
||||||
|
nodeSpacing: 1
|
||||||
|
rankSpacing: 1
|
||||||
|
---
|
||||||
|
|
||||||
|
flowchart LR
|
||||||
|
|
||||||
|
X --> Y
|
||||||
|
|
||||||
|
subgraph X
|
||||||
|
direction LR
|
||||||
|
A
|
||||||
|
C
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph Y
|
||||||
|
direction LR
|
||||||
|
B
|
||||||
|
D
|
||||||
|
end
|
||||||
|
</pre>
|
||||||
|
<hr />
|
||||||
|
|
||||||
<h1 id="link-clicked">Anchor for "link-clicked" test</h1>
|
<h1 id="link-clicked">Anchor for "link-clicked" test</h1>
|
||||||
|
|
||||||
<script type="module">
|
<script type="module">
|
||||||
|
@@ -54,6 +54,14 @@ const recursiveRender = async (_elem, graph, diagramType, id, parentCluster, sit
|
|||||||
if (node && node.clusterNode) {
|
if (node && node.clusterNode) {
|
||||||
// const children = graph.children(v);
|
// const children = graph.children(v);
|
||||||
log.info('Cluster identified', v, node.width, graph.node(v));
|
log.info('Cluster identified', v, node.width, graph.node(v));
|
||||||
|
// `node.graph.setGraph` applies the graph configurations such as nodeSpacing to subgraphs as without this the default values would be used
|
||||||
|
// We override only the `ranksep` and `nodesep` configurations to allow for setting subgraph spacing while avoiding overriding other properties
|
||||||
|
const { ranksep, nodesep } = graph.graph();
|
||||||
|
node.graph.setGraph({
|
||||||
|
...node.graph.graph(),
|
||||||
|
ranksep,
|
||||||
|
nodesep,
|
||||||
|
});
|
||||||
const o = await recursiveRender(
|
const o = await recursiveRender(
|
||||||
nodes,
|
nodes,
|
||||||
node.graph,
|
node.graph,
|
||||||
|
Reference in New Issue
Block a user