From aeec4b7f778539b90f70ef47018d9ab901a83fa7 Mon Sep 17 00:00:00 2001 From: yari-dewalt Date: Mon, 27 Jan 2025 10:28:59 -0800 Subject: [PATCH] Fix non-htmlLabels not being centered --- .../src/rendering-util/rendering-elements/shapes/erBox.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packages/mermaid/src/rendering-util/rendering-elements/shapes/erBox.ts b/packages/mermaid/src/rendering-util/rendering-elements/shapes/erBox.ts index 5dcda944d..0815ab6c5 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/shapes/erBox.ts +++ b/packages/mermaid/src/rendering-util/rendering-elements/shapes/erBox.ts @@ -59,6 +59,13 @@ export async function erBox(parent: D3Selection node.width = config.er!.minEntityWidth; } const shapeSvg = await drawRect(parent, node, options); + + // drawRect doesn't center non-htmlLabels correctly as of now, so translate label + if (!evaluate(config.htmlLabels)) { + const textElement = shapeSvg.select('text'); + const bbox = (textElement.node() as SVGTextElement)?.getBBox(); + textElement.attr('transform', `translate(${-bbox.width / 2}, 0)`); + } return shapeSvg; }