mirror of
https://github.com/mermaid-js/mermaid.git
synced 2025-08-29 05:06:43 +02:00
Merge pull request #5102 from mermaid-js/5100_SankeyViewbox
fix: #5100 Add viewbox to sankey
This commit is contained in:
@@ -33,6 +33,7 @@
|
|||||||
---
|
---
|
||||||
config:
|
config:
|
||||||
sankey:
|
sankey:
|
||||||
|
useMaxWidth: true
|
||||||
showValues: false
|
showValues: false
|
||||||
width: 1200
|
width: 1200
|
||||||
height: 600
|
height: 600
|
||||||
|
@@ -16,7 +16,7 @@ import {
|
|||||||
sankeyCenter as d3SankeyCenter,
|
sankeyCenter as d3SankeyCenter,
|
||||||
sankeyJustify as d3SankeyJustify,
|
sankeyJustify as d3SankeyJustify,
|
||||||
} from 'd3-sankey';
|
} from 'd3-sankey';
|
||||||
import { configureSvgSize } from '../../setupGraphViewbox.js';
|
import { setupGraphViewbox } from '../../setupGraphViewbox.js';
|
||||||
import { Uid } from '../../rendering-util/uid.js';
|
import { Uid } from '../../rendering-util/uid.js';
|
||||||
import type { SankeyNodeAlignment } from '../../config.type.js';
|
import type { SankeyNodeAlignment } from '../../config.type.js';
|
||||||
|
|
||||||
@@ -70,12 +70,6 @@ export const draw = function (text: string, id: string, _version: string, diagOb
|
|||||||
const suffix = conf?.suffix ?? defaultSankeyConfig.suffix!;
|
const suffix = conf?.suffix ?? defaultSankeyConfig.suffix!;
|
||||||
const showValues = conf?.showValues ?? defaultSankeyConfig.showValues!;
|
const showValues = conf?.showValues ?? defaultSankeyConfig.showValues!;
|
||||||
|
|
||||||
// FIX: using max width prevents height from being set, is it intended?
|
|
||||||
// to add height directly one can use `svg.attr('height', height)`
|
|
||||||
//
|
|
||||||
// @ts-ignore TODO: svg type vs selection mismatch
|
|
||||||
configureSvgSize(svg, height, width, useMaxWidth);
|
|
||||||
|
|
||||||
// Prepare data for construction based on diagObj.db
|
// Prepare data for construction based on diagObj.db
|
||||||
// This must be a mutable object with `nodes` and `links` properties:
|
// This must be a mutable object with `nodes` and `links` properties:
|
||||||
//
|
//
|
||||||
@@ -208,6 +202,8 @@ export const draw = function (text: string, id: string, _version: string, diagOb
|
|||||||
.attr('d', d3SankeyLinkHorizontal())
|
.attr('d', d3SankeyLinkHorizontal())
|
||||||
.attr('stroke', coloring)
|
.attr('stroke', coloring)
|
||||||
.attr('stroke-width', (d: any) => Math.max(1, d.width));
|
.attr('stroke-width', (d: any) => Math.max(1, d.width));
|
||||||
|
|
||||||
|
setupGraphViewbox(undefined, svg, 0, useMaxWidth);
|
||||||
};
|
};
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
@@ -45,6 +45,7 @@ export const configureSvgSize = function (svgElem, height, width, useMaxWidth) {
|
|||||||
d3Attrs(svgElem, attrs);
|
d3Attrs(svgElem, attrs);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// TODO v11: Remove the graph parameter. It is not used.
|
||||||
export const setupGraphViewbox = function (graph, svgElem, padding, useMaxWidth) {
|
export const setupGraphViewbox = function (graph, svgElem, padding, useMaxWidth) {
|
||||||
const svgBounds = svgElem.node().getBBox();
|
const svgBounds = svgElem.node().getBBox();
|
||||||
const sWidth = svgBounds.width;
|
const sWidth = svgBounds.width;
|
||||||
|
Reference in New Issue
Block a user