diff --git a/d2layouts/d2sequence/sequence_diagram.go b/d2layouts/d2sequence/sequence_diagram.go index 3ef8377df..51a0d0bd1 100644 --- a/d2layouts/d2sequence/sequence_diagram.go +++ b/d2layouts/d2sequence/sequence_diagram.go @@ -460,6 +460,12 @@ func (sd *sequenceDiagram) placeSpans() { func (sd *sequenceDiagram) routeMessages() error { startY := sd.maxActorHeight + sd.yStep for _, message := range sd.messages { + for _, note := range sd.notes { + if sd.verticalIndices[note.AbsID()] < sd.verticalIndices[message.AbsID()] { + startY += note.Height + sd.yStep + } + } + message.ZIndex = 2 var startX, endX float64 if startCenter := getCenter(message.Src); startCenter != nil { diff --git a/e2etests/testdata/stable/sequence_diagram_groups/dagre/board.exp.json b/e2etests/testdata/stable/sequence_diagram_groups/dagre/board.exp.json index 3dbb90626..340ba41fc 100644 --- a/e2etests/testdata/stable/sequence_diagram_groups/dagre/board.exp.json +++ b/e2etests/testdata/stable/sequence_diagram_groups/dagre/board.exp.json @@ -279,7 +279,7 @@ "y": 1349 }, "width": 633, - "height": 336, + "height": 466, "opacity": 1, "strokeDash": 0, "strokeWidth": 2, @@ -919,11 +919,11 @@ "route": [ { "x": 875, - "y": 1519 + "y": 1775 }, { "x": 475, - "y": 1519 + "y": 1775 } ], "animated": false, diff --git a/e2etests/testdata/stable/sequence_diagram_groups/dagre/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagram_groups/dagre/sketch.exp.svg index 78d21b367..a87b67540 100644 --- a/e2etests/testdata/stable/sequence_diagram_groups/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/sequence_diagram_groups/dagre/sketch.exp.svg @@ -14,12 +14,12 @@ width="1609" height="2311" viewBox="-100 -50 1609 2311">abcdggggroup 1group bchoonested guywhat would arnold saythis note lalaeyokayokay +abcdggggroup 1group bchoonested guywhat would arnold saythis note lalaeyokayokay - + abcdggggroup 1group bchoonested guywhat would arnold saythis note lalaeyokayokay +abcdggggroup 1group bchoonested guywhat would arnold saythis note lalaeyokayokay - + abcdexplanationanother explanationSome one who believes imaginary things appear right before your i's.The earth is like a tiny grain of sand, only much, much heavier okay - - +abcdexplanationanother explanationSome one who believes imaginary things appear right before your i's.The earth is like a tiny grain of sand, only much, much heavier okay + + abcdexplanationanother explanationSome one who believes imaginary things appear right before your i's.The earth is like a tiny grain of sand, only much, much heavier okay - - +abcdexplanationanother explanationSome one who believes imaginary things appear right before your i's.The earth is like a tiny grain of sand, only much, much heavier okay + + How this is renderedCLId2astd2compilerd2layoutd2exporterd2themesd2rendererd2sequencelayoutd2dagrelayoutmeasurements also take place 'How this is rendered: {...}'tokenized ASTcompile ASTobjects and edgesrun layout enginesrun engine on shape: sequence_diagram, temporarily removerun core engine on rest add back in sequence diagramsdiagram with correct positions and dimensionsexport diagram with chosen theme and rendererget theme stylesrender to SVGresulting SVG - +How this is renderedCLId2astd2compilerd2layoutd2exporterd2themesd2rendererd2sequencelayoutd2dagrelayoutmeasurements also take place 'How this is rendered: {...}'tokenized ASTcompile ASTobjects and edgesrun layout enginesrun engine on shape: sequence_diagram, temporarily removerun core engine on rest add back in sequence diagramsdiagram with correct positions and dimensionsexport diagram with chosen theme and rendererget theme stylesrender to SVGresulting SVG + - - - - - - - - - - + + + + + + + + + + How this is renderedCLId2astd2compilerd2layoutd2exporterd2themesd2rendererd2sequencelayoutd2dagrelayoutmeasurements also take place 'How this is rendered: {...}'tokenized ASTcompile ASTobjects and edgesrun layout enginesrun engine on shape: sequence_diagram, temporarily removerun core engine on rest add back in sequence diagramsdiagram with correct positions and dimensionsexport diagram with chosen theme and rendererget theme stylesrender to SVGresulting SVG - +How this is renderedCLId2astd2compilerd2layoutd2exporterd2themesd2rendererd2sequencelayoutd2dagrelayoutmeasurements also take place 'How this is rendered: {...}'tokenized ASTcompile ASTobjects and edgesrun layout enginesrun engine on shape: sequence_diagram, temporarily removerun core engine on rest add back in sequence diagramsdiagram with correct positions and dimensionsexport diagram with chosen theme and rendererget theme stylesrender to SVGresulting SVG + - - - - - - - - - - + + + + + + + + + +