diff --git a/cypress/platform/current.html b/cypress/platform/current.html index 6bcf91507..cb041e7f4 100644 --- a/cypress/platform/current.html +++ b/cypress/platform/current.html @@ -40,22 +40,8 @@ G-->c
-stateDiagram-v2 - [*] --> First - - state First { - [*] --> Second - - state Second { - [*] --> second - second --> Third - - state Third { - [*] --> third - third --> [*] - } - } - } +flowchart LR + id1[[This is the text in the box]]
diff --git a/docs/flowchart.md b/docs/flowchart.md index 970f494e7..2cfd1f191 100644 --- a/docs/flowchart.md +++ b/docs/flowchart.md @@ -359,6 +359,40 @@ graph TB B --> D ``` +## Beta: New arrow types + +When using flowchart instead of graph there is the are new types of arrows supported as per below: + +``` +flowchart LR + A --o B + B --x C +``` + +```mermaid +flowchart LR + A --o B + B --x C +``` + + +## Beta: multi directional arrows + +When using flowchart instead of graph there is the possibility to use multidirectional arrows. + +``` +flowchart LR + A o--o B + B <--> C + C x--x D +``` + +```mermaid +flowchart LR + A o--o B + B <--> C + C x--x D +``` ## Special characters that break syntax diff --git a/src/dagre-wrapper/nodes.js b/src/dagre-wrapper/nodes.js index 3a1370f3f..212d6b055 100644 --- a/src/dagre-wrapper/nodes.js +++ b/src/dagre-wrapper/nodes.js @@ -384,6 +384,34 @@ const circle = (parent, node) => { return shapeSvg; }; + +const subroutine = (parent, node) => { + const { shapeSvg, bbox } = labelHelper(parent, node); + + const w = bbox.width + node.padding; + const h = bbox.height + node.padding; + const points = [ + { x: 0, y: 0 }, + { x: w, y: 0 }, + { x: w, y: -h }, + { x: 0, y: -h }, + { x: 0, y: 0 }, + { x: -8, y: 0 }, + { x: w + 8, y: 0 }, + { x: w + 8, y: -h }, + { x: -8, y: -h }, + { x: -8, y: 0 } + ]; + const el = insertPolygonShape(shapeSvg, w, h, points); + updateNodeBounds(node, el); + + node.intersect = function(point) { + return intersect.polygon(node, point); + }; + + return shapeSvg; +}; + const start = (parent, node) => { const shapeSvg = parent .insert('g') @@ -487,6 +515,7 @@ const shapes = { start, end, note, + subroutine, fork: forkJoin, join: forkJoin };