diff --git a/cypress/platform/knsv.html b/cypress/platform/knsv.html
index ba71a135c..d295f30ff 100644
--- a/cypress/platform/knsv.html
+++ b/cypress/platform/knsv.html
@@ -92,9 +92,11 @@ mindmap
GrandChild1
GrandChild2
Child3(Child 3 has a long wrapped text as well)
+ ::icon(mdi mdi-alarm)
GrandChild3
GrandChild4
Child4((Child Num 4
with
wrap text))
+ ::icon(mdi mdi-alarm)
GrandChild5[With
icon
one
two
three]
::icon(mdi mdi-numeric-8-circle)
GrandChild6sakdjhfkla jhklasjfh klj
@@ -372,7 +374,7 @@ flowchart TD
};
mermaid.initialize({
// theme: 'dark',
- // theme: 'base',
+ theme: 'base',
// arrowMarkerAbsolute: true,
// themeCSS: '.edgePath .path {stroke: red;} .arrowheadPath {fill: red;}',
flowchart: {
diff --git a/src/diagrams/mindmap/svgDraw.js b/src/diagrams/mindmap/svgDraw.js
index f887fa469..0fabacb53 100644
--- a/src/diagrams/mindmap/svgDraw.js
+++ b/src/diagrams/mindmap/svgDraw.js
@@ -129,27 +129,52 @@ export const drawNode = function (elem, node, section, conf) {
node.height = bbox.height + conf.fontSize * 1.1 * 0.5 + node.padding;
node.width = bbox.width + 2 * node.padding;
if (node.icon) {
- node.width += 50;
- const orgHeight = node.height;
- node.height = Math.max(orgHeight, 60);
- const heightDiff = Math.abs(node.height - orgHeight);
- const icon = nodeElem
- .append('foreignObject')
- .attr('width', '60px')
- .attr('height', node.height)
- .attr('style', 'text-align: center;margin-top:' + heightDiff / 2 + 'px;');
- // .attr('x', 0)
- // .attr('y', 0)
- // .attr('class', 'node-icon ' + node.icon);
- icon
- .append('div')
- .attr('class', 'icon-container')
- .append('i')
- .attr('class', 'node-icon-' + section + ' ' + node.icon);
- textElem.attr(
- 'transform',
- 'translate(' + (25 + node.width / 2) + ', ' + (heightDiff / 2 + node.padding / 2) + ')'
- );
+ if (node.type === db.nodeType.CIRCLE) {
+ node.height += 50;
+ const orgWidth = node.width;
+ node.width += 50;
+ // node.width = Math.max(orgWidth, 100);
+ const widthDiff = Math.abs(node.width - orgWidth);
+ const icon = nodeElem
+ .append('foreignObject')
+ .attr('height', '50px')
+ .attr('width', node.width)
+ .attr('style', 'text-align: center;');
+ // .attr('x', 0)
+ // .attr('y', 0)
+ // .attr('class', 'node-icon ' + node.icon);
+ icon
+ .append('div')
+ .attr('class', 'icon-container')
+ .append('i')
+ .attr('class', 'node-icon-' + section + ' ' + node.icon);
+ textElem.attr(
+ 'transform',
+ 'translate(' + node.width / 2 + ', ' + (node.height / 2 - 1.5 * node.padding) + ')'
+ );
+ } else {
+ node.width += 50;
+ const orgHeight = node.height;
+ node.height = Math.max(orgHeight, 60);
+ const heightDiff = Math.abs(node.height - orgHeight);
+ const icon = nodeElem
+ .append('foreignObject')
+ .attr('width', '60px')
+ .attr('height', node.height)
+ .attr('style', 'text-align: center;margin-top:' + heightDiff / 2 + 'px;');
+ // .attr('x', 0)
+ // .attr('y', 0)
+ // .attr('class', 'node-icon ' + node.icon);
+ icon
+ .append('div')
+ .attr('class', 'icon-container')
+ .append('i')
+ .attr('class', 'node-icon-' + section + ' ' + node.icon);
+ textElem.attr(
+ 'transform',
+ 'translate(' + (25 + node.width / 2) + ', ' + (heightDiff / 2 + node.padding / 2) + ')'
+ );
+ }
} else {
textElem.attr('transform', 'translate(' + node.width / 2 + ', ' + node.padding / 2 + ')');
}