From bfd8c63daaa8420e57da9953922b9f0c94123064 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Thu, 12 Sep 2024 11:05:32 +0200 Subject: [PATCH 01/15] #5787 Fix for issue with labels in firefox --- .changeset/dry-plums-glow.md | 5 +++++ packages/mermaid/src/rendering-util/createText.ts | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 .changeset/dry-plums-glow.md diff --git a/.changeset/dry-plums-glow.md b/.changeset/dry-plums-glow.md new file mode 100644 index 000000000..810c6c5c8 --- /dev/null +++ b/.changeset/dry-plums-glow.md @@ -0,0 +1,5 @@ +--- +'mermaid': minor +--- + +Fix for issue with calculation of label width when using in firefox diff --git a/packages/mermaid/src/rendering-util/createText.ts b/packages/mermaid/src/rendering-util/createText.ts index 845705210..4b6633493 100644 --- a/packages/mermaid/src/rendering-util/createText.ts +++ b/packages/mermaid/src/rendering-util/createText.ts @@ -20,6 +20,11 @@ function applyStyle(dom, styleFn) { async function addHtmlSpan(element, node, width, classes, addBackground = false) { const fo = element.append('foreignObject'); + // This is not the final width but used in order to make sure the foreign + // object in firefox gets a width at all. The final width is fetched from the div + fo.attr('width', `${10 * width}px`); + fo.attr('height', `${10 * width}px`); + const div = fo.append('xhtml:div'); let label = node.label; if (node.label && hasKatex(node.label)) { @@ -201,7 +206,7 @@ export const createText = async ( } = {}, config: MermaidConfig ) => { - log.info( + log.debug( 'XYZ createText', text, style, From 8bb70ea4934567208c9444911e11e9dc60f210d6 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Thu, 12 Sep 2024 11:49:21 +0200 Subject: [PATCH 02/15] Removing the ending @ sign in the shape data --- packages/mermaid/src/diagrams/flowchart/parser/flow.jison | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/mermaid/src/diagrams/flowchart/parser/flow.jison b/packages/mermaid/src/diagrams/flowchart/parser/flow.jison index 977613f0e..27253be4f 100644 --- a/packages/mermaid/src/diagrams/flowchart/parser/flow.jison +++ b/packages/mermaid/src/diagrams/flowchart/parser/flow.jison @@ -48,10 +48,10 @@ accDescr\s*"{"\s* { this.begin("acc_descr_multilin const re = /\n\s*/g; yytext = yytext.replace(re,"
"); return 'SHAPE_DATA'} -[^@^"]+ { +[^}]+ { return 'SHAPE_DATA'; } -\@+ { +"}" { this.popState(); } From 8b6fb94835f211e717527893b96f677c589ff0ff Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Thu, 12 Sep 2024 12:10:41 +0200 Subject: [PATCH 03/15] WIP --- cypress/platform/knsv2.html | 4 + .../mermaid/src/diagrams/flowchart/flowDb.ts | 5 +- .../flowchart/parser/flow-node-data.spec.js | 103 +++++++++++++++--- .../src/diagrams/flowchart/parser/flow.jison | 10 +- 4 files changed, 99 insertions(+), 23 deletions(-) diff --git a/cypress/platform/knsv2.html b/cypress/platform/knsv2.html index fe587b8d2..52c2286e6 100644 --- a/cypress/platform/knsv2.html +++ b/cypress/platform/knsv2.html @@ -421,6 +421,10 @@ flowchart LR +
+      flowchart
+      D@{ shape: circle, label: "circle" } & E
+