diff --git a/packages/mermaid/src/rendering-util/rendering-elements/createLabel.js b/packages/mermaid/src/rendering-util/rendering-elements/createLabel.js index de6f0403d..012d4fb2d 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/createLabel.js +++ b/packages/mermaid/src/rendering-util/rendering-elements/createLabel.js @@ -81,7 +81,7 @@ const createLabel = async (_vertexText, style, isTitle, isNode) => { return vertexNode; } else { const svgLabel = document.createElementNS('http://www.w3.org/2000/svg', 'text'); - svgLabel.setAttribute('style', style.replace('color:', 'fill:')); + svgLabel.setAttribute('style', style ? style.replace('color:', 'fill:') : ''); let rows = []; if (typeof vertexText === 'string') { rows = vertexText.split(/\\n|\n|/gi); 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 9dd4c90e2..7e5557490 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/shapes/erBox.ts +++ b/packages/mermaid/src/rendering-util/rendering-elements/shapes/erBox.ts @@ -62,9 +62,12 @@ export async function erBox(parent: D3Selection // 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)`); + const textElement = shapeSvg.select('.label text'); + const textNode = textElement.node() as SVGTextElement; + if (textNode) { + const bbox = textNode.getBBox(); + textElement.attr('transform', `translate(${-bbox.width / 2}, 0)`); + } } return shapeSvg; }