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()