diff --git a/cypress/integration/rendering/stateDiagram-v2.spec.js b/cypress/integration/rendering/stateDiagram-v2.spec.js
index b7913d9c6..93b6f4acc 100644
--- a/cypress/integration/rendering/stateDiagram-v2.spec.js
+++ b/cypress/integration/rendering/stateDiagram-v2.spec.js
@@ -290,7 +290,7 @@ describe('State diagram', () => {
);
cy.get('svg');
});
- it('should render conurrency states', () => {
+ it('should render concurrency states', () => {
imgSnapshotTest(
`
stateDiagram-v2
diff --git a/cypress/platform/current.html b/cypress/platform/current.html
index 5cdd66332..26b0d88cc 100644
--- a/cypress/platform/current.html
+++ b/cypress/platform/current.html
@@ -39,16 +39,25 @@
G-->H
G-->c
-
- stateDiagram-v2
- [*] --> monkey
- state monkey {
- Sitting
- --
- Eating
- }
-
+stateDiagram-v2
+ [*] --> Active
+
+ state Active {
+ [*] --> NumLockOff
+ NumLockOff --> NumLockOn : EvNumLockPressed
+ NumLockOn --> NumLockOff : EvNumLockPressed
+ --
+ [*] --> CapsLockOff
+ CapsLockOff --> CapsLockOn : EvCapsLockPressed
+ CapsLockOn --> CapsLockOff : EvCapsLockPressed
+ --
+ [*] --> ScrollLockOff
+ ScrollLockOff --> ScrollLockOn : EvCapsLockPressed
+ ScrollLockOn --> ScrollLockOff : EvCapsLockPressed
+ }
+
+
stateDiagram-v2
[*]-->TV
diff --git a/src/dagre-wrapper/createLabel.js b/src/dagre-wrapper/createLabel.js
index 5e06cbc1a..4c430b9f9 100644
--- a/src/dagre-wrapper/createLabel.js
+++ b/src/dagre-wrapper/createLabel.js
@@ -2,8 +2,12 @@ const createLabel = (vertexText, style, isTitle) => {
const svgLabel = document.createElementNS('http://www.w3.org/2000/svg', 'text');
svgLabel.setAttribute('style', style.replace('color:', 'fill:'));
let rows = [];
- if (vertexText) {
+ if (typeof vertexText === 'string') {
rows = vertexText.split(/\\n|\n|
/gi);
+ } else if (Array.isArray(vertexText)) {
+ rows = vertexText;
+ } else {
+ rows = [];
}
for (let j = 0; j < rows.length; j++) {
diff --git a/src/dagre-wrapper/index.js b/src/dagre-wrapper/index.js
index 1c684f0a8..9e2f7b851 100644
--- a/src/dagre-wrapper/index.js
+++ b/src/dagre-wrapper/index.js
@@ -16,6 +16,8 @@ import { logger as log } from '../logger';
const recursiveRender = (_elem, graph, diagramtype, parentCluster) => {
log.info('Graph in recursive render:', graphlib.json.write(graph), parentCluster);
const dir = graph.graph().rankdir;
+ log.warn('Dir in recursive render - dir:', dir);
+
const elem = _elem.insert('g').attr('class', 'root'); // eslint-disable-line
if (!graph.nodes()) {
log.trace('No nodes found for', graph);
diff --git a/src/dagre-wrapper/nodes.js b/src/dagre-wrapper/nodes.js
index 5da5e6d76..3a1370f3f 100644
--- a/src/dagre-wrapper/nodes.js
+++ b/src/dagre-wrapper/nodes.js
@@ -293,8 +293,11 @@ const rectWithTitle = (parent, node) => {
const label = shapeSvg.insert('g').attr('class', 'label');
- const text = label.node().appendChild(createLabel(node.labelText[0], node.labelStyle, true));
- const textRows = node.labelText.slice(1, node.labelText.length);
+ const text2 = node.labelText.flat();
+ logger.info('Label text', text2[0]);
+
+ const text = label.node().appendChild(createLabel(text2[0], node.labelStyle, true));
+ const textRows = text2.slice(1, text2.length);
let titleBox = text.getBBox();
const descr = label
.node()