-flowchart TD
- subgraph main
- subgraph subcontainer
- subcontainer-child
- end
- subcontainer-child--> subcontainer-sibling
+
+graph TD
+ A[Christmas] ==> D
+ A[Christmas] -->|Get money| B(Go shopping)
+ A[Christmas] ==> C
+ subgraph T ["Test"]
+ A
+ B
+ C
end
+ classDef Test fill:#F84E68,stroke:#333,color:white;
+ class A,T Test
+ classDef TestSub fill:green;
+ class T TestSub
+ linkStyle 0,1 color:orange, stroke: orange;
-flowchart TB
- b-->B
- a-->c
- subgraph B
- c
- end
- subgraph A
- a
- b
- B
- end
+flowchart TD
+ A[Christmas] ==> D
+ A[Christmas] -->|Get money| B(Go shopping)
+ A[Christmas] ==> C
+ subgraph T ["Test"]
+ A
+ B
+ C
+ end
+
+ classDef Test fill:#F84E68,stroke:#333,color:white;
+ class A,T Test
+ classDef TestSub fill:green;
+ class T TestSub
+ linkStyle 0,1 color:orange, stroke: orange;
+
flowchart TB
subgraph A
a -->b
diff --git a/src/dagre-wrapper/clusters.js b/src/dagre-wrapper/clusters.js
index db3aee001..9341af1e5 100644
--- a/src/dagre-wrapper/clusters.js
+++ b/src/dagre-wrapper/clusters.js
@@ -10,7 +10,7 @@ const rect = (parent, node) => {
// Add outer g element
const shapeSvg = parent
.insert('g')
- .attr('class', 'cluster')
+ .attr('class', 'cluster' + (node.class ? ' ' + node.class : ''))
.attr('id', node.id);
// add the rect
diff --git a/src/dagre-wrapper/createLabel.js b/src/dagre-wrapper/createLabel.js
index 055f6cfb5..688563db8 100644
--- a/src/dagre-wrapper/createLabel.js
+++ b/src/dagre-wrapper/createLabel.js
@@ -86,7 +86,8 @@ const createLabel = (_vertexText, style, isTitle, isNode) => {
label: vertexText.replace(
/fa[lrsb]?:fa-[\w-]+/g,
s => ``
- )
+ ),
+ labelStyle: style.replace('fill:', 'color:')
};
let vertexNode = addHtmlLabel(node);
// vertexNode.parentNode.removeChild(vertexNode);
diff --git a/src/dagre-wrapper/edges.js b/src/dagre-wrapper/edges.js
index f6763dd17..255518612 100644
--- a/src/dagre-wrapper/edges.js
+++ b/src/dagre-wrapper/edges.js
@@ -387,7 +387,8 @@ export const insertEdge = function(elem, e, edge, clusterDb, diagramType, graph)
.append('path')
.attr('d', lineFunction(lineData))
.attr('id', edge.id)
- .attr('class', ' ' + strokeClasses + (edge.classes ? ' ' + edge.classes : ''));
+ .attr('class', ' ' + strokeClasses + (edge.classes ? ' ' + edge.classes : ''))
+ .attr('style', edge.style);
// DEBUG code, adds a red circle at each edge coordinate
// edge.points.forEach(point => {
diff --git a/src/diagrams/flowchart/flowRenderer-v2.js b/src/diagrams/flowchart/flowRenderer-v2.js
index 671dc460e..fbde19b44 100644
--- a/src/diagrams/flowchart/flowRenderer-v2.js
+++ b/src/diagrams/flowchart/flowRenderer-v2.js
@@ -193,7 +193,7 @@ export const addEdges = function(edges, g) {
var linkNameStart = 'LS-' + edge.start;
var linkNameEnd = 'LE-' + edge.end;
- const edgeData = {};
+ const edgeData = { style: '', labelStyle: '' };
edgeData.minlen = edge.length || 1;
//edgeData.id = 'id' + cnt;
@@ -227,45 +227,40 @@ export const addEdges = function(edges, g) {
break;
}
- // logger.info('apa', edgeData, edge);
- // edgeData.arrowTypeStart = edge.arrowTypeStart;
- // edgeData.arrowTypeStart = edge.arrowTypeStart;
- // edgeData.arrowType = edgeData.arrowTypeEnd;
- // logger.info('apa', edgeData, edge);
-
let style = '';
let labelStyle = '';
+ switch (edge.stroke) {
+ case 'normal':
+ style = 'fill:none;';
+ if (typeof defaultStyle !== 'undefined') {
+ style = defaultStyle;
+ }
+ if (typeof defaultLabelStyle !== 'undefined') {
+ labelStyle = defaultLabelStyle;
+ }
+ edgeData.thickness = 'normal';
+ edgeData.pattern = 'solid';
+ break;
+ case 'dotted':
+ edgeData.thickness = 'normal';
+ edgeData.pattern = 'dotted';
+ edgeData.style = 'fill:none;stroke-width:2px;stroke-dasharray:3;';
+ break;
+ case 'thick':
+ edgeData.thickness = 'thick';
+ edgeData.pattern = 'solid';
+ edgeData.style = 'stroke-width: 3.5px;fill:none;';
+ break;
+ }
if (typeof edge.style !== 'undefined') {
const styles = getStylesFromArray(edge.style);
style = styles.style;
labelStyle = styles.labelStyle;
- } else {
- switch (edge.stroke) {
- case 'normal':
- style = 'fill:none';
- if (typeof defaultStyle !== 'undefined') {
- style = defaultStyle;
- }
- if (typeof defaultLabelStyle !== 'undefined') {
- labelStyle = defaultLabelStyle;
- }
- edgeData.thickness = 'normal';
- edgeData.pattern = 'solid';
- break;
- case 'dotted':
- edgeData.thickness = 'normal';
- edgeData.pattern = 'dotted';
- break;
- case 'thick':
- edgeData.thickness = 'thick';
- edgeData.pattern = 'solid';
- break;
- }
}
- edgeData.style = style;
- edgeData.labelStyle = labelStyle;
+ edgeData.style = edgeData.style += style;
+ edgeData.labelStyle = edgeData.labelStyle += labelStyle;
if (typeof edge.interpolate !== 'undefined') {
edgeData.curve = interpolateToCurve(edge.interpolate, curveLinear);
@@ -282,21 +277,21 @@ export const addEdges = function(edges, g) {
} else {
edgeData.arrowheadStyle = 'fill: #333';
edgeData.labelpos = 'c';
-
- if (getConfig().flowchart.htmlLabels && false) { // eslint-disable-line
- edgeData.labelType = 'html';
- edgeData.label = `${edge.text}`;
- } else {
- edgeData.labelType = 'text';
- edgeData.label = edge.text.replace(common.lineBreakRegex, '\n');
-
- if (typeof edge.style === 'undefined') {
- edgeData.style = edgeData.style || 'stroke: #333; stroke-width: 1.5px;fill:none';
- }
-
- edgeData.labelStyle = edgeData.labelStyle.replace('color:', 'fill:');
- }
}
+ // if (getConfig().flowchart.htmlLabels && false) {
+ // // eslint-disable-line
+ // edgeData.labelType = 'html';
+ // edgeData.label = `${edge.text}`;
+ // } else {
+ edgeData.labelType = 'text';
+ edgeData.label = edge.text.replace(common.lineBreakRegex, '\n');
+
+ if (typeof edge.style === 'undefined') {
+ edgeData.style = edgeData.style || 'stroke: #333; stroke-width: 1.5px;fill:none;';
+ }
+
+ edgeData.labelStyle = edgeData.labelStyle.replace('color:', 'fill:');
+ // }
edgeData.id = linkId;
edgeData.classes = 'flowchart-link ' + linkNameStart + ' ' + linkNameEnd;