mirror of
https://github.com/mermaid-js/mermaid.git
synced 2025-01-28 07:03:17 +08:00
#910 set correct position and style for edge labels when using linkStyle, #1088 handle multiline texts in edge labels when using linkStyle
This commit is contained in:
parent
9a0df5afb0
commit
0deae4abf9
12
dist/index.html
vendored
12
dist/index.html
vendored
@ -313,6 +313,18 @@ class A someclass;
|
|||||||
classDef someclass fill:#f96;
|
classDef someclass fill:#f96;
|
||||||
class A someclass;
|
class A someclass;
|
||||||
</div>
|
</div>
|
||||||
|
<div class="mermaid">
|
||||||
|
graph LR
|
||||||
|
A1[Multi<br>Line] -->|Multi<br>Line| B1(Multi<br>Line)
|
||||||
|
C1[Multi<br/>Line] -->|Multi<br/>Line| D1(Multi<br/>Line)
|
||||||
|
E1[Multi<br />Line] -->|Multi<br />Line| F1(Multi<br />Line)
|
||||||
|
A2[Multi<br>Line] -->|Multi<br>Line| B2(Multi<br>Line)
|
||||||
|
C2[Multi<br/>Line] -->|Multi<br/>Line| D2(Multi<br/>Line)
|
||||||
|
E2[Multi<br />Line] -->|Multi<br />Line| F2(Multi<br />Line)
|
||||||
|
linkStyle 0 stroke:DarkGray,stroke-width:2px
|
||||||
|
linkStyle 1 stroke:DarkGray,stroke-width:2px
|
||||||
|
linkStyle 2 stroke:DarkGray,stroke-width:2px
|
||||||
|
</div>
|
||||||
|
|
||||||
<hr/>
|
<hr/>
|
||||||
|
|
||||||
|
@ -239,18 +239,18 @@ export const addEdges = function(edges, g) {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
edgeData.arrowheadStyle = 'fill: #333';
|
edgeData.arrowheadStyle = 'fill: #333';
|
||||||
if (typeof edge.style === 'undefined') {
|
|
||||||
edgeData.labelpos = 'c';
|
edgeData.labelpos = 'c';
|
||||||
|
|
||||||
if (getConfig().flowchart.htmlLabels) {
|
if (getConfig().flowchart.htmlLabels) {
|
||||||
edgeData.labelType = 'html';
|
edgeData.labelType = 'html';
|
||||||
edgeData.label = '<span class="edgeLabel">' + edge.text + '</span>';
|
edgeData.label = '<span class="edgeLabel">' + edge.text + '</span>';
|
||||||
} else {
|
} else {
|
||||||
edgeData.labelType = 'text';
|
edgeData.labelType = 'text';
|
||||||
|
edgeData.label = edge.text.replace(/<br ?\/?>/g, '\n');
|
||||||
|
|
||||||
|
if (typeof edge.style === 'undefined') {
|
||||||
edgeData.style = edgeData.style || 'stroke: #333; stroke-width: 1.5px;fill:none';
|
edgeData.style = edgeData.style || 'stroke: #333; stroke-width: 1.5px;fill:none';
|
||||||
edgeData.label = edge.text.replace(/<br>/g, '\n');
|
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
edgeData.label = edge.text.replace(/<br>/g, '\n');
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Add the edge to the graph
|
// Add the edge to the graph
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { addVertices } from './flowRenderer';
|
import { addVertices, addEdges } from './flowRenderer';
|
||||||
import { setConfig } from '../../config';
|
import { setConfig } from '../../config';
|
||||||
|
|
||||||
setConfig({
|
setConfig({
|
||||||
@ -94,4 +94,32 @@ describe('the flowchart renderer', function() {
|
|||||||
expect(addedNodes[0][1]).toHaveProperty('labelStyle', expectedLabelStyle);
|
expect(addedNodes[0][1]).toHaveProperty('labelStyle', expectedLabelStyle);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('when adding edges to a graph', function() {
|
||||||
|
it('should handle multiline texts and set centered label position', function() {
|
||||||
|
const addedEdges = [];
|
||||||
|
const mockG = {
|
||||||
|
setEdge: function(s, e, data, c) {
|
||||||
|
addedEdges.push(data);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
addEdges(
|
||||||
|
[
|
||||||
|
{ text: 'Multi<br>Line' },
|
||||||
|
{ text: 'Multi<br/>Line' },
|
||||||
|
{ text: 'Multi<br />Line' },
|
||||||
|
{ style: ['stroke:DarkGray', 'stroke-width:2px'], text: 'Multi<br>Line' },
|
||||||
|
{ style: ['stroke:DarkGray', 'stroke-width:2px'], text: 'Multi<br/>Line' },
|
||||||
|
{ style: ['stroke:DarkGray', 'stroke-width:2px'], text: 'Multi<br />Line' }
|
||||||
|
],
|
||||||
|
mockG,
|
||||||
|
'svg-id'
|
||||||
|
);
|
||||||
|
|
||||||
|
addedEdges.forEach(function(edge) {
|
||||||
|
expect(edge).toHaveProperty('label', 'Multi\nLine');
|
||||||
|
expect(edge).toHaveProperty('labelpos', 'c');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user