From f4d4c784e4d3239ea9509b3c9384b47b58365a37 Mon Sep 17 00:00:00 2001 From: omkarht Date: Thu, 29 Aug 2024 19:51:12 +0530 Subject: [PATCH] fixed issue for without label shapes --- .../rendering-elements/shapes/crossedCircle.ts | 12 +++++++----- .../rendering-elements/shapes/filledCircle.ts | 12 ++++++++---- .../rendering-elements/shapes/lightningBolt.ts | 12 +++++++----- 3 files changed, 22 insertions(+), 14 deletions(-) diff --git a/packages/mermaid/src/rendering-util/rendering-elements/shapes/crossedCircle.ts b/packages/mermaid/src/rendering-util/rendering-elements/shapes/crossedCircle.ts index cb4533daa..fe5b36115 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/shapes/crossedCircle.ts +++ b/packages/mermaid/src/rendering-util/rendering-elements/shapes/crossedCircle.ts @@ -1,5 +1,6 @@ import { log } from '$root/logger.js'; -import { labelHelper, getNodeClasses, updateNodeBounds } from './util.js'; +import { getNodeClasses, updateNodeBounds } from './util.js'; +import type { SVG } from '$root/diagram-api/types.js'; import type { Node } from '$root/rendering-util/types.d.ts'; import { styles2String, @@ -22,11 +23,14 @@ function createLine(r: number) { M ${pointQ1.x},${pointQ1.y} L ${pointQ3.x},${pointQ3.y}`; } -export const crossedCircle = async (parent: SVGAElement, node: Node) => { +export const crossedCircle = (parent: SVG, node: Node) => { const { labelStyles, nodeStyles } = styles2String(node); node.labelStyle = labelStyles; node.label = ''; - const { shapeSvg } = await labelHelper(parent, node, getNodeClasses(node)); + const shapeSvg = parent + .insert('g') + .attr('class', getNodeClasses(node)) + .attr('id', node.domId ?? node.id); const radius = Math.max(30, node?.width ?? 0); const { cssStyles } = node; @@ -46,8 +50,6 @@ export const crossedCircle = async (parent: SVGAElement, node: Node) => { const crossedCircle = shapeSvg.insert(() => circleNode, ':first-child'); crossedCircle.insert(() => lineNode); - crossedCircle.attr('class', 'basic label-container'); - if (cssStyles && node.look !== 'handDrawn') { crossedCircle.selectAll('path').attr('style', cssStyles); } diff --git a/packages/mermaid/src/rendering-util/rendering-elements/shapes/filledCircle.ts b/packages/mermaid/src/rendering-util/rendering-elements/shapes/filledCircle.ts index 9e7f56c84..d0eb82010 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/shapes/filledCircle.ts +++ b/packages/mermaid/src/rendering-util/rendering-elements/shapes/filledCircle.ts @@ -1,6 +1,7 @@ import { log } from '$root/logger.js'; -import { labelHelper, getNodeClasses, updateNodeBounds } from './util.js'; +import { getNodeClasses, updateNodeBounds } from './util.js'; import type { Node } from '$root/rendering-util/types.d.ts'; +import type { SVG } from '$root/diagram-api/types.js'; import { styles2String, userNodeOverrides, @@ -8,11 +9,14 @@ import { import rough from 'roughjs'; import intersect from '../intersect/index.js'; -export const filledCircle = async (parent: SVGAElement, node: Node) => { +export const filledCircle = (parent: SVG, node: Node) => { const { labelStyles, nodeStyles } = styles2String(node); node.label = ''; node.labelStyle = labelStyles; - const { shapeSvg } = await labelHelper(parent, node, getNodeClasses(node)); + const shapeSvg = parent + .insert('g') + .attr('class', getNodeClasses(node)) + .attr('id', node.domId ?? node.id); const radius = 7; const { cssStyles } = node; @@ -29,7 +33,7 @@ export const filledCircle = async (parent: SVGAElement, node: Node) => { const filledCircle = shapeSvg.insert(() => circleNode, ':first-child'); - filledCircle.attr('class', 'basic label-container'); + // filledCircle.attr('class', 'basic label-container'); if (cssStyles && node.look !== 'handDrawn') { filledCircle.selectAll('path').attr('style', cssStyles); diff --git a/packages/mermaid/src/rendering-util/rendering-elements/shapes/lightningBolt.ts b/packages/mermaid/src/rendering-util/rendering-elements/shapes/lightningBolt.ts index 48ac31037..75f5b7b20 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/shapes/lightningBolt.ts +++ b/packages/mermaid/src/rendering-util/rendering-elements/shapes/lightningBolt.ts @@ -1,6 +1,7 @@ import { log } from '$root/logger.js'; -import { labelHelper, getNodeClasses, updateNodeBounds } from './util.js'; +import { getNodeClasses, updateNodeBounds } from './util.js'; import type { Node } from '$root/rendering-util/types.d.ts'; +import type { SVG } from '$root/diagram-api/types.js'; import { styles2String, userNodeOverrides, @@ -9,11 +10,14 @@ import rough from 'roughjs'; import intersect from '../intersect/index.js'; import { createPathFromPoints } from './util.js'; -export const lightningBolt = async (parent: SVGAElement, node: Node) => { +export const lightningBolt = (parent: SVG, node: Node) => { const { labelStyles, nodeStyles } = styles2String(node); node.label = ''; node.labelStyle = labelStyles; - const { shapeSvg } = await labelHelper(parent, node, getNodeClasses(node)); + const shapeSvg = parent + .insert('g') + .attr('class', getNodeClasses(node)) + .attr('id', node.domId ?? node.id); const { cssStyles } = node; const height = 80; const width = 80; @@ -42,8 +46,6 @@ export const lightningBolt = async (parent: SVGAElement, node: Node) => { const lightningBolt = shapeSvg.insert(() => lineNode, ':first-child'); - lightningBolt.attr('class', 'basic label-container'); - if (cssStyles && node.look !== 'handDrawn') { lightningBolt.selectAll('path').attr('style', cssStyles); }