mirror of
https://github.com/mermaid-js/mermaid.git
synced 2025-09-15 05:19:58 +02:00
Fix merge changes for pr 722 and issue #782
This commit is contained in:
@@ -35,7 +35,9 @@ const conf = {
|
|||||||
activationWidth: 10,
|
activationWidth: 10,
|
||||||
|
|
||||||
// text placement as: tspan | fo | old only text as before
|
// text placement as: tspan | fo | old only text as before
|
||||||
textPlacement: 'tspan'
|
textPlacement: 'tspan',
|
||||||
|
|
||||||
|
showSequenceNumbers: false
|
||||||
}
|
}
|
||||||
|
|
||||||
export const bounds = {
|
export const bounds = {
|
||||||
@@ -205,7 +207,7 @@ const drawNote = function (elem, startx, verticalPos, msg, forceWidth) {
|
|||||||
* @param txtCenter
|
* @param txtCenter
|
||||||
* @param msg
|
* @param msg
|
||||||
*/
|
*/
|
||||||
const drawMessage = function (elem, startx, stopx, verticalPos, msg) {
|
const drawMessage = function (elem, startx, stopx, verticalPos, msg, sequenceIndex) {
|
||||||
const g = elem.append('g')
|
const g = elem.append('g')
|
||||||
const txtCenter = startx + (stopx - startx) / 2
|
const txtCenter = startx + (stopx - startx) / 2
|
||||||
|
|
||||||
@@ -265,6 +267,20 @@ const drawMessage = function (elem, startx, stopx, verticalPos, msg) {
|
|||||||
if (msg.type === parser.yy.LINETYPE.SOLID_CROSS || msg.type === parser.yy.LINETYPE.DOTTED_CROSS) {
|
if (msg.type === parser.yy.LINETYPE.SOLID_CROSS || msg.type === parser.yy.LINETYPE.DOTTED_CROSS) {
|
||||||
line.attr('marker-end', 'url(' + url + '#crosshead)')
|
line.attr('marker-end', 'url(' + url + '#crosshead)')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// add node number
|
||||||
|
if (conf.showSequenceNumbers) {
|
||||||
|
line.attr('marker-start', 'url(' + url + '#sequencenumber)')
|
||||||
|
g.append('text')
|
||||||
|
.attr('x', startx)
|
||||||
|
.attr('y', verticalPos + 4)
|
||||||
|
.attr('font-family', 'sans-serif')
|
||||||
|
.attr('font-size', '12px')
|
||||||
|
.attr('text-anchor', 'middle')
|
||||||
|
.attr('textLength', '16px')
|
||||||
|
.attr('class', 'sequenceNumber')
|
||||||
|
.text(sequenceIndex)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export const drawActors = function (diagram, actors, actorKeys, verticalPos) {
|
export const drawActors = function (diagram, actors, actorKeys, verticalPos) {
|
||||||
@@ -337,6 +353,7 @@ export const draw = function (text, id) {
|
|||||||
// The arrow head definition is attached to the svg once
|
// The arrow head definition is attached to the svg once
|
||||||
svgDraw.insertArrowHead(diagram)
|
svgDraw.insertArrowHead(diagram)
|
||||||
svgDraw.insertArrowCrossHead(diagram)
|
svgDraw.insertArrowCrossHead(diagram)
|
||||||
|
svgDraw.insertSequenceNumber(diagram)
|
||||||
|
|
||||||
function activeEnd (msg, verticalPos) {
|
function activeEnd (msg, verticalPos) {
|
||||||
const activationData = bounds.endActivation(msg)
|
const activationData = bounds.endActivation(msg)
|
||||||
@@ -352,6 +369,7 @@ export const draw = function (text, id) {
|
|||||||
// const lastMsg
|
// const lastMsg
|
||||||
|
|
||||||
// Draw the messages/signals
|
// Draw the messages/signals
|
||||||
|
let sequenceIndex = 1
|
||||||
messages.forEach(function (msg) {
|
messages.forEach(function (msg) {
|
||||||
let loopData
|
let loopData
|
||||||
switch (msg.type) {
|
switch (msg.type) {
|
||||||
@@ -446,13 +464,24 @@ export const draw = function (text, id) {
|
|||||||
stopx = toBounds[toIdx]
|
stopx = toBounds[toIdx]
|
||||||
|
|
||||||
const verticalPos = bounds.getVerticalPos()
|
const verticalPos = bounds.getVerticalPos()
|
||||||
drawMessage(diagram, startx, stopx, verticalPos, msg)
|
drawMessage(diagram, startx, stopx, verticalPos, msg, sequenceIndex)
|
||||||
const allBounds = fromBounds.concat(toBounds)
|
const allBounds = fromBounds.concat(toBounds)
|
||||||
bounds.insert(Math.min.apply(null, allBounds), verticalPos, Math.max.apply(null, allBounds), verticalPos)
|
bounds.insert(Math.min.apply(null, allBounds), verticalPos, Math.max.apply(null, allBounds), verticalPos)
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
logger.error('error while drawing message', e)
|
logger.error('error while drawing message', e)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// Increment sequence counter if msg.type is a line (and not another event like activation or note, etc)
|
||||||
|
if ([
|
||||||
|
parser.yy.LINETYPE.SOLID_OPEN,
|
||||||
|
parser.yy.LINETYPE.DOTTED_OPEN,
|
||||||
|
parser.yy.LINETYPE.SOLID,
|
||||||
|
parser.yy.LINETYPE.DOTTED,
|
||||||
|
parser.yy.LINETYPE.SOLID_CROSS,
|
||||||
|
parser.yy.LINETYPE.DOTTED_CROSS
|
||||||
|
].includes(msg.type)) {
|
||||||
|
sequenceIndex++
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
if (conf.mirrorActors) {
|
if (conf.mirrorActors) {
|
||||||
|
@@ -181,6 +181,23 @@ export const insertArrowHead = function (elem) {
|
|||||||
.append('path')
|
.append('path')
|
||||||
.attr('d', 'M 0,0 V 4 L6,2 Z') // this is actual shape for arrowhead
|
.attr('d', 'M 0,0 V 4 L6,2 Z') // this is actual shape for arrowhead
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Setup node number. The result is appended to the svg.
|
||||||
|
*/
|
||||||
|
export const insertSequenceNumber = function (elem) {
|
||||||
|
elem.append('defs').append('marker')
|
||||||
|
.attr('id', 'sequencenumber')
|
||||||
|
.attr('refX', 15)
|
||||||
|
.attr('refY', 15)
|
||||||
|
.attr('markerWidth', 60)
|
||||||
|
.attr('markerHeight', 40)
|
||||||
|
.attr('orient', 'auto')
|
||||||
|
.append('circle')
|
||||||
|
.attr('cx', 15)
|
||||||
|
.attr('cy', 15)
|
||||||
|
.attr('r', 6)
|
||||||
|
// .style("fill", '#f00');
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* Setup arrow head and define the marker. The result is appended to the svg.
|
* Setup arrow head and define the marker. The result is appended to the svg.
|
||||||
*/
|
*/
|
||||||
@@ -315,6 +332,7 @@ export default {
|
|||||||
drawActivation,
|
drawActivation,
|
||||||
drawLoop,
|
drawLoop,
|
||||||
insertArrowHead,
|
insertArrowHead,
|
||||||
|
insertSequenceNumber,
|
||||||
insertArrowCrossHead,
|
insertArrowCrossHead,
|
||||||
getTextObj,
|
getTextObj,
|
||||||
getNoteRect
|
getNoteRect
|
||||||
|
@@ -173,7 +173,12 @@ const config = {
|
|||||||
/**
|
/**
|
||||||
* **rightAngles** - this will display arrows that start and begin at the same node as right angles, rather than a curve
|
* **rightAngles** - this will display arrows that start and begin at the same node as right angles, rather than a curve
|
||||||
*/
|
*/
|
||||||
rightAngles: false
|
rightAngles: false,
|
||||||
|
/**
|
||||||
|
* **showSequenceNumbers** - this will show the node numbers
|
||||||
|
*/
|
||||||
|
showSequenceNumbers: false
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/** ### gantt
|
/** ### gantt
|
||||||
|
@@ -33,6 +33,7 @@ $noteBorderColor: $border2;
|
|||||||
$noteBkgColor: #fff5ad;
|
$noteBkgColor: #fff5ad;
|
||||||
$activationBorderColor: #666;
|
$activationBorderColor: #666;
|
||||||
$activationBkgColor: #f4f4f4;
|
$activationBkgColor: #f4f4f4;
|
||||||
|
$sequenceNumberColor: white;
|
||||||
|
|
||||||
/* Gantt chart variables */
|
/* Gantt chart variables */
|
||||||
|
|
||||||
|
@@ -31,6 +31,7 @@ $noteBorderColor: $border2;
|
|||||||
$noteBkgColor: #fff5ad;
|
$noteBkgColor: #fff5ad;
|
||||||
$activationBorderColor: #666;
|
$activationBorderColor: #666;
|
||||||
$activationBkgColor: #f4f4f4;
|
$activationBkgColor: #f4f4f4;
|
||||||
|
$sequenceNumberColor: white;
|
||||||
|
|
||||||
/* Gantt chart variables */
|
/* Gantt chart variables */
|
||||||
|
|
||||||
|
@@ -32,6 +32,7 @@ $noteBorderColor: $border2;
|
|||||||
$noteBkgColor: #fff5ad;
|
$noteBkgColor: #fff5ad;
|
||||||
$activationBorderColor: #666;
|
$activationBorderColor: #666;
|
||||||
$activationBkgColor: #f4f4f4;
|
$activationBkgColor: #f4f4f4;
|
||||||
|
$sequenceNumberColor: white;
|
||||||
|
|
||||||
/* Gantt chart variables */
|
/* Gantt chart variables */
|
||||||
|
|
||||||
|
@@ -36,6 +36,7 @@ $noteBorderColor: darken($note, 60%);
|
|||||||
$noteBkgColor: $note;
|
$noteBkgColor: $note;
|
||||||
$activationBorderColor: #666;
|
$activationBorderColor: #666;
|
||||||
$activationBkgColor: #f4f4f4;
|
$activationBkgColor: #f4f4f4;
|
||||||
|
$sequenceNumberColor: white;
|
||||||
|
|
||||||
/* Gantt chart variables */
|
/* Gantt chart variables */
|
||||||
|
|
||||||
|
@@ -28,6 +28,14 @@ text.actor {
|
|||||||
fill: $signalColor;
|
fill: $signalColor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.sequenceNumber {
|
||||||
|
fill: $sequenceNumberColor;
|
||||||
|
}
|
||||||
|
|
||||||
|
#sequencenumber {
|
||||||
|
fill: $signalColor;
|
||||||
|
}
|
||||||
|
|
||||||
#crosshead path {
|
#crosshead path {
|
||||||
fill: $signalColor !important;
|
fill: $signalColor !important;
|
||||||
stroke: $signalColor !important;
|
stroke: $signalColor !important;
|
||||||
|
Reference in New Issue
Block a user