mirror of
https://github.com/mermaid-js/mermaid.git
synced 2025-09-25 10:20:06 +02:00
added arrowhead types for dotted line type
on-behalf-of: @Mermaid-Chart <hello@mermaidchart.com>
This commit is contained in:
@@ -62,14 +62,26 @@ const LINETYPE = {
|
|||||||
PAR_OVER_START: 32,
|
PAR_OVER_START: 32,
|
||||||
BIDIRECTIONAL_SOLID: 33,
|
BIDIRECTIONAL_SOLID: 33,
|
||||||
BIDIRECTIONAL_DOTTED: 34,
|
BIDIRECTIONAL_DOTTED: 34,
|
||||||
|
|
||||||
SOLID_TOP: 41,
|
SOLID_TOP: 41,
|
||||||
SOLID_BOTTOM: 42,
|
SOLID_BOTTOM: 42,
|
||||||
STICK_TOP: 43,
|
STICK_TOP: 43,
|
||||||
STICK_BOTTOM: 44,
|
STICK_BOTTOM: 44,
|
||||||
|
|
||||||
SOLID_ARROW_TOP_REVERSE: 45,
|
SOLID_ARROW_TOP_REVERSE: 45,
|
||||||
SOLID_ARROW_BOTTOM_REVERSE: 46,
|
SOLID_ARROW_BOTTOM_REVERSE: 46,
|
||||||
STICK_ARROW_TOP_REVERSE: 47,
|
STICK_ARROW_TOP_REVERSE: 47,
|
||||||
STICK_ARROW_BOTTOM_REVERSE: 48,
|
STICK_ARROW_BOTTOM_REVERSE: 48,
|
||||||
|
|
||||||
|
SOLID_TOP_DOTTED: 51,
|
||||||
|
SOLID_BOTTOM_DOTTED: 52,
|
||||||
|
STICK_TOP_DOTTED: 53,
|
||||||
|
STICK_BOTTOM_DOTTED: 54,
|
||||||
|
|
||||||
|
SOLID_ARROW_TOP_REVERSE_DOTTED: 55,
|
||||||
|
SOLID_ARROW_BOTTOM_REVERSE_DOTTED: 56,
|
||||||
|
STICK_ARROW_TOP_REVERSE_DOTTED: 57,
|
||||||
|
STICK_ARROW_BOTTOM_REVERSE_DOTTED: 58,
|
||||||
} as const;
|
} as const;
|
||||||
|
|
||||||
const ARROWTYPE = {
|
const ARROWTYPE = {
|
||||||
|
@@ -440,7 +440,15 @@ const drawMessage = async function (diagram, msgModel, lineStartY: number, diagO
|
|||||||
type === diagObj.db.LINETYPE.DOTTED_CROSS ||
|
type === diagObj.db.LINETYPE.DOTTED_CROSS ||
|
||||||
type === diagObj.db.LINETYPE.DOTTED_POINT ||
|
type === diagObj.db.LINETYPE.DOTTED_POINT ||
|
||||||
type === diagObj.db.LINETYPE.DOTTED_OPEN ||
|
type === diagObj.db.LINETYPE.DOTTED_OPEN ||
|
||||||
type === diagObj.db.LINETYPE.BIDIRECTIONAL_DOTTED
|
type === diagObj.db.LINETYPE.BIDIRECTIONAL_DOTTED ||
|
||||||
|
type === diagObj.db.LINETYPE.SOLID_TOP_DOTTED ||
|
||||||
|
type === diagObj.db.LINETYPE.SOLID_BOTTOM_DOTTED ||
|
||||||
|
type === diagObj.db.LINETYPE.STICK_TOP_DOTTED ||
|
||||||
|
type === diagObj.db.LINETYPE.STICK_BOTTOM_DOTTED ||
|
||||||
|
type === diagObj.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED ||
|
||||||
|
type === diagObj.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED ||
|
||||||
|
type === diagObj.db.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED ||
|
||||||
|
type === diagObj.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED
|
||||||
) {
|
) {
|
||||||
line.style('stroke-dasharray', '3, 3');
|
line.style('stroke-dasharray', '3, 3');
|
||||||
line.attr('class', 'messageLine1');
|
line.attr('class', 'messageLine1');
|
||||||
@@ -457,29 +465,47 @@ const drawMessage = async function (diagram, msgModel, lineStartY: number, diagO
|
|||||||
line.attr('stroke', 'none'); // handled by theme/css anyway
|
line.attr('stroke', 'none'); // handled by theme/css anyway
|
||||||
line.style('fill', 'none'); // remove any fill colour
|
line.style('fill', 'none'); // remove any fill colour
|
||||||
|
|
||||||
if (type === diagObj.db.LINETYPE.SOLID_TOP) {
|
if (type === diagObj.db.LINETYPE.SOLID_TOP || type === diagObj.db.LINETYPE.SOLID_TOP_DOTTED) {
|
||||||
line.attr('marker-end', 'url(' + url + '#solidTopArrowHead)');
|
line.attr('marker-end', 'url(' + url + '#solidTopArrowHead)');
|
||||||
}
|
}
|
||||||
if (type === diagObj.db.LINETYPE.SOLID_BOTTOM) {
|
if (
|
||||||
|
type === diagObj.db.LINETYPE.SOLID_BOTTOM ||
|
||||||
|
type === diagObj.db.LINETYPE.SOLID_BOTTOM_DOTTED
|
||||||
|
) {
|
||||||
line.attr('marker-end', 'url(' + url + '#solidBottomArrowHead)');
|
line.attr('marker-end', 'url(' + url + '#solidBottomArrowHead)');
|
||||||
}
|
}
|
||||||
if (type === diagObj.db.LINETYPE.STICK_TOP) {
|
if (type === diagObj.db.LINETYPE.STICK_TOP || type === diagObj.db.LINETYPE.STICK_TOP_DOTTED) {
|
||||||
line.attr('marker-end', 'url(' + url + '#stickTopArrowHead)');
|
line.attr('marker-end', 'url(' + url + '#stickTopArrowHead)');
|
||||||
}
|
}
|
||||||
if (type === diagObj.db.LINETYPE.STICK_BOTTOM) {
|
if (
|
||||||
|
type === diagObj.db.LINETYPE.STICK_BOTTOM ||
|
||||||
|
type === diagObj.db.LINETYPE.STICK_BOTTOM_DOTTED
|
||||||
|
) {
|
||||||
line.attr('marker-end', 'url(' + url + '#stickBottomArrowHead)');
|
line.attr('marker-end', 'url(' + url + '#stickBottomArrowHead)');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (type === diagObj.db.LINETYPE.SOLID_ARROW_TOP_REVERSE) {
|
if (
|
||||||
|
type === diagObj.db.LINETYPE.SOLID_ARROW_TOP_REVERSE ||
|
||||||
|
type === diagObj.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED
|
||||||
|
) {
|
||||||
line.attr('marker-start', 'url(' + url + '#solidBottomArrowHead)');
|
line.attr('marker-start', 'url(' + url + '#solidBottomArrowHead)');
|
||||||
}
|
}
|
||||||
if (type === diagObj.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE) {
|
if (
|
||||||
|
type === diagObj.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE ||
|
||||||
|
type === diagObj.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED
|
||||||
|
) {
|
||||||
line.attr('marker-start', 'url(' + url + '#solidTopArrowHead)');
|
line.attr('marker-start', 'url(' + url + '#solidTopArrowHead)');
|
||||||
}
|
}
|
||||||
if (type === diagObj.db.LINETYPE.STICK_ARROW_TOP_REVERSE) {
|
if (
|
||||||
|
type === diagObj.db.LINETYPE.STICK_ARROW_TOP_REVERSE ||
|
||||||
|
type === diagObj.db.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED
|
||||||
|
) {
|
||||||
line.attr('marker-start', 'url(' + url + '#stickBottomArrowHead)');
|
line.attr('marker-start', 'url(' + url + '#stickBottomArrowHead)');
|
||||||
}
|
}
|
||||||
if (type === diagObj.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE) {
|
if (
|
||||||
|
type === diagObj.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE ||
|
||||||
|
type === diagObj.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED
|
||||||
|
) {
|
||||||
line.attr('marker-start', 'url(' + url + '#stickTopArrowHead)');
|
line.attr('marker-start', 'url(' + url + '#stickTopArrowHead)');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1066,14 +1092,27 @@ export const draw = async function (_text: string, id: string, _version: string,
|
|||||||
diagObj.db.LINETYPE.SOLID_OPEN,
|
diagObj.db.LINETYPE.SOLID_OPEN,
|
||||||
diagObj.db.LINETYPE.DOTTED_OPEN,
|
diagObj.db.LINETYPE.DOTTED_OPEN,
|
||||||
diagObj.db.LINETYPE.SOLID,
|
diagObj.db.LINETYPE.SOLID,
|
||||||
|
|
||||||
diagObj.db.LINETYPE.SOLID_TOP,
|
diagObj.db.LINETYPE.SOLID_TOP,
|
||||||
diagObj.db.LINETYPE.SOLID_BOTTOM,
|
diagObj.db.LINETYPE.SOLID_BOTTOM,
|
||||||
diagObj.db.LINETYPE.STICK_TOP,
|
diagObj.db.LINETYPE.STICK_TOP,
|
||||||
diagObj.db.LINETYPE.STICK_BOTTOM,
|
diagObj.db.LINETYPE.STICK_BOTTOM,
|
||||||
|
|
||||||
|
diagObj.db.LINETYPE.SOLID_TOP_DOTTED,
|
||||||
|
diagObj.db.LINETYPE.SOLID_BOTTOM_DOTTED,
|
||||||
|
diagObj.db.LINETYPE.STICK_TOP_DOTTED,
|
||||||
|
diagObj.db.LINETYPE.STICK_BOTTOM_DOTTED,
|
||||||
|
|
||||||
diagObj.db.LINETYPE.SOLID_ARROW_TOP_REVERSE,
|
diagObj.db.LINETYPE.SOLID_ARROW_TOP_REVERSE,
|
||||||
diagObj.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE,
|
diagObj.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE,
|
||||||
diagObj.db.LINETYPE.STICK_ARROW_TOP_REVERSE,
|
diagObj.db.LINETYPE.STICK_ARROW_TOP_REVERSE,
|
||||||
diagObj.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE,
|
diagObj.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE,
|
||||||
|
|
||||||
|
diagObj.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED,
|
||||||
|
diagObj.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED,
|
||||||
|
diagObj.db.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED,
|
||||||
|
diagObj.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED,
|
||||||
|
|
||||||
diagObj.db.LINETYPE.DOTTED,
|
diagObj.db.LINETYPE.DOTTED,
|
||||||
diagObj.db.LINETYPE.SOLID_CROSS,
|
diagObj.db.LINETYPE.SOLID_CROSS,
|
||||||
diagObj.db.LINETYPE.DOTTED_CROSS,
|
diagObj.db.LINETYPE.DOTTED_CROSS,
|
||||||
@@ -1469,14 +1508,27 @@ const buildMessageModel = function (msg, actors, diagObj) {
|
|||||||
diagObj.db.LINETYPE.SOLID_OPEN,
|
diagObj.db.LINETYPE.SOLID_OPEN,
|
||||||
diagObj.db.LINETYPE.DOTTED_OPEN,
|
diagObj.db.LINETYPE.DOTTED_OPEN,
|
||||||
diagObj.db.LINETYPE.SOLID,
|
diagObj.db.LINETYPE.SOLID,
|
||||||
|
|
||||||
diagObj.db.LINETYPE.SOLID_TOP,
|
diagObj.db.LINETYPE.SOLID_TOP,
|
||||||
diagObj.db.LINETYPE.SOLID_BOTTOM,
|
diagObj.db.LINETYPE.SOLID_BOTTOM,
|
||||||
diagObj.db.LINETYPE.STICK_TOP,
|
diagObj.db.LINETYPE.STICK_TOP,
|
||||||
diagObj.db.LINETYPE.STICK_BOTTOM,
|
diagObj.db.LINETYPE.STICK_BOTTOM,
|
||||||
|
|
||||||
|
diagObj.db.LINETYPE.SOLID_TOP_DOTTED,
|
||||||
|
diagObj.db.LINETYPE.SOLID_BOTTOM_DOTTED,
|
||||||
|
diagObj.db.LINETYPE.STICK_TOP_DOTTED,
|
||||||
|
diagObj.db.LINETYPE.STICK_BOTTOM_DOTTED,
|
||||||
|
|
||||||
diagObj.db.LINETYPE.SOLID_ARROW_TOP_REVERSE,
|
diagObj.db.LINETYPE.SOLID_ARROW_TOP_REVERSE,
|
||||||
diagObj.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE,
|
diagObj.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE,
|
||||||
diagObj.db.LINETYPE.STICK_ARROW_TOP_REVERSE,
|
diagObj.db.LINETYPE.STICK_ARROW_TOP_REVERSE,
|
||||||
diagObj.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE,
|
diagObj.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE,
|
||||||
|
|
||||||
|
diagObj.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED,
|
||||||
|
diagObj.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED,
|
||||||
|
diagObj.db.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED,
|
||||||
|
diagObj.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED,
|
||||||
|
|
||||||
diagObj.db.LINETYPE.DOTTED,
|
diagObj.db.LINETYPE.DOTTED,
|
||||||
diagObj.db.LINETYPE.SOLID_CROSS,
|
diagObj.db.LINETYPE.SOLID_CROSS,
|
||||||
diagObj.db.LINETYPE.DOTTED_CROSS,
|
diagObj.db.LINETYPE.DOTTED_CROSS,
|
||||||
@@ -1531,10 +1583,24 @@ const buildMessageModel = function (msg, actors, diagObj) {
|
|||||||
![
|
![
|
||||||
diagObj.db.LINETYPE.SOLID_OPEN,
|
diagObj.db.LINETYPE.SOLID_OPEN,
|
||||||
diagObj.db.LINETYPE.DOTTED_OPEN,
|
diagObj.db.LINETYPE.DOTTED_OPEN,
|
||||||
|
|
||||||
diagObj.db.LINETYPE.STICK_TOP,
|
diagObj.db.LINETYPE.STICK_TOP,
|
||||||
diagObj.db.LINETYPE.STICK_BOTTOM,
|
diagObj.db.LINETYPE.STICK_BOTTOM,
|
||||||
|
|
||||||
|
diagObj.db.LINETYPE.STICK_TOP_DOTTED,
|
||||||
|
diagObj.db.LINETYPE.STICK_BOTTOM_DOTTED,
|
||||||
|
|
||||||
|
diagObj.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED,
|
||||||
|
diagObj.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED,
|
||||||
|
|
||||||
diagObj.db.LINETYPE.STICK_ARROW_TOP_REVERSE,
|
diagObj.db.LINETYPE.STICK_ARROW_TOP_REVERSE,
|
||||||
diagObj.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE,
|
diagObj.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE,
|
||||||
|
|
||||||
|
diagObj.db.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED,
|
||||||
|
diagObj.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED,
|
||||||
|
|
||||||
|
diagObj.db.LINETYPE.SOLID_ARROW_TOP_REVERSE,
|
||||||
|
diagObj.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE,
|
||||||
].includes(msg.type)
|
].includes(msg.type)
|
||||||
) {
|
) {
|
||||||
stopx += adjustValue(3);
|
stopx += adjustValue(3);
|
||||||
@@ -1544,9 +1610,14 @@ const buildMessageModel = function (msg, actors, diagObj) {
|
|||||||
* Shorten start position of bidirectional arrow to accommodate for second arrowhead
|
* Shorten start position of bidirectional arrow to accommodate for second arrowhead
|
||||||
*/
|
*/
|
||||||
if (
|
if (
|
||||||
[diagObj.db.LINETYPE.BIDIRECTIONAL_SOLID, diagObj.db.LINETYPE.BIDIRECTIONAL_DOTTED].includes(
|
[
|
||||||
msg.type
|
diagObj.db.LINETYPE.BIDIRECTIONAL_SOLID,
|
||||||
)
|
diagObj.db.LINETYPE.BIDIRECTIONAL_DOTTED,
|
||||||
|
diagObj.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED,
|
||||||
|
diagObj.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED,
|
||||||
|
diagObj.db.LINETYPE.SOLID_ARROW_TOP_REVERSE,
|
||||||
|
diagObj.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE,
|
||||||
|
].includes(msg.type)
|
||||||
) {
|
) {
|
||||||
startx -= adjustValue(3);
|
startx -= adjustValue(3);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user