From f9a20ab94eb5b18de2973c9286c6374298529d32 Mon Sep 17 00:00:00 2001 From: Ashish Jain Date: Mon, 15 Jul 2024 15:04:11 +0200 Subject: [PATCH] fix: broken test, link style --- packages/mermaid/src/diagrams/flowchart/flowDb.ts | 7 +++++++ .../mermaid/src/rendering-util/rendering-elements/edges.js | 4 ++-- packages/mermaid/src/tests/MockedD3.ts | 1 + vite.config.ts | 2 +- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/packages/mermaid/src/diagrams/flowchart/flowDb.ts b/packages/mermaid/src/diagrams/flowchart/flowDb.ts index 1c04e2c2a..488ecc83d 100644 --- a/packages/mermaid/src/diagrams/flowchart/flowDb.ts +++ b/packages/mermaid/src/diagrams/flowchart/flowDb.ts @@ -205,6 +205,13 @@ export const updateLink = function (positions: ('default' | number)[], style: st // style.push('fill:none'); // } edges[pos].style = style; + // if edges[pos].style does have fill not set, set it to none + if ( + (edges[pos]?.style?.length ?? 0) > 0 && + !edges[pos]?.style?.some((s) => s?.startsWith('fill')) + ) { + edges[pos]?.style?.push('fill:none'); + } } }); }; diff --git a/packages/mermaid/src/rendering-util/rendering-elements/edges.js b/packages/mermaid/src/rendering-util/rendering-elements/edges.js index 566e07031..59d53ecb5 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/edges.js +++ b/packages/mermaid/src/rendering-util/rendering-elements/edges.js @@ -583,7 +583,7 @@ export const insertEdge = function (elem, edge, clusterDb, diagramType, startNod // .attr('d', lineFunction(lineData)) .attr('id', edge.id) .attr('class', ' ' + strokeClasses + (edge.classes ? ' ' + edge.classes : '')) - .attr('style', edge.style); + .attr('style', edge.style ? edge.style.reduce((acc, style) => acc + ';' + style, '') : ''); let d = svgPath.attr('d'); svgPath.attr('d', d); elem.node().appendChild(svgPath.node()); @@ -593,7 +593,7 @@ export const insertEdge = function (elem, edge, clusterDb, diagramType, startNod .attr('d', linePath) .attr('id', edge.id) .attr('class', ' ' + strokeClasses + (edge.classes ? ' ' + edge.classes : '')) - .attr('style', edge.style); + .attr('style', edge.style ? edge.style.reduce((acc, style) => acc + ';' + style, '') : ''); } // DEBUG code, adds a red circle at each edge coordinate // cornerPoints.forEach((point) => { diff --git a/packages/mermaid/src/tests/MockedD3.ts b/packages/mermaid/src/tests/MockedD3.ts index 35871f14e..4e31d98b6 100644 --- a/packages/mermaid/src/tests/MockedD3.ts +++ b/packages/mermaid/src/tests/MockedD3.ts @@ -105,6 +105,7 @@ export class MockedD3 { // Real implementation returns an HTML Element public node = vi.fn().mockImplementation(() => { const topElem = this._containingHTMLdoc.createElement('svg'); + topElem.getBBox = this.getBBox; const elem_svgChild = this._containingHTMLdoc.createElement('svg'); // another svg element topElem.appendChild(elem_svgChild); return topElem; diff --git a/vite.config.ts b/vite.config.ts index dc59a6aba..ed0ba10f7 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -9,7 +9,7 @@ export default defineConfig({ extensions: ['.js'], alias: { // Define your alias here - '$root/*': path.resolve(__dirname, 'src/*'), + $root: path.resolve(__dirname, 'packages/mermaid/src'), }, }, plugins: [