mirror of
				https://github.com/mermaid-js/mermaid.git
				synced 2025-11-03 20:34:20 +01:00 
			
		
		
		
	Merge pull request #6886 from mermaid-js/6721/Bidirectional-arrows--render-incorrectly-with-autonumber-in-sequence-diagrams
6721: Correct rendering of bidirectional arrows with auto number
This commit is contained in:
		
							
								
								
									
										5
									
								
								.changeset/crazy-loops-matter.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								.changeset/crazy-loops-matter.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
---
 | 
			
		||||
'mermaid': patch
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
fix: Handle arrows correctly when auto number is enabled
 | 
			
		||||
@@ -893,6 +893,17 @@ describe('Sequence diagram', () => {
 | 
			
		||||
        }
 | 
			
		||||
      );
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    it('should handle bidirectional arrows with autonumber', () => {
 | 
			
		||||
      imgSnapshotTest(`
 | 
			
		||||
       sequenceDiagram
 | 
			
		||||
       autonumber
 | 
			
		||||
       participant A
 | 
			
		||||
       participant B
 | 
			
		||||
       A<<->>B: This is a bidirectional message
 | 
			
		||||
       A->B: This is a normal message`);
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    it('should support actor links and properties when not mirrored EXPERIMENTAL: USE WITH CAUTION', () => {
 | 
			
		||||
      //Be aware that the syntax for "properties" is likely to be changed.
 | 
			
		||||
      imgSnapshotTest(
 | 
			
		||||
 
 | 
			
		||||
@@ -476,7 +476,29 @@ const drawMessage = async function (diagram, msgModel, lineStartY: number, diagO
 | 
			
		||||
 | 
			
		||||
  // add node number
 | 
			
		||||
  if (sequenceVisible || conf.showSequenceNumbers) {
 | 
			
		||||
    line.attr('marker-start', 'url(' + url + '#sequencenumber)');
 | 
			
		||||
    const isBidirectional =
 | 
			
		||||
      type === diagObj.db.LINETYPE.BIDIRECTIONAL_SOLID ||
 | 
			
		||||
      type === diagObj.db.LINETYPE.BIDIRECTIONAL_DOTTED;
 | 
			
		||||
 | 
			
		||||
    if (isBidirectional) {
 | 
			
		||||
      const SEQUENCE_NUMBER_RADIUS = 6;
 | 
			
		||||
 | 
			
		||||
      if (startx < stopx) {
 | 
			
		||||
        line.attr('x1', startx + 2 * SEQUENCE_NUMBER_RADIUS);
 | 
			
		||||
      } else {
 | 
			
		||||
        line.attr('x1', startx + SEQUENCE_NUMBER_RADIUS);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    diagram
 | 
			
		||||
      .append('line')
 | 
			
		||||
      .attr('x1', startx)
 | 
			
		||||
      .attr('y1', lineStartY)
 | 
			
		||||
      .attr('x2', startx)
 | 
			
		||||
      .attr('y2', lineStartY)
 | 
			
		||||
      .attr('stroke-width', 0)
 | 
			
		||||
      .attr('marker-start', 'url(' + url + '#sequencenumber)');
 | 
			
		||||
 | 
			
		||||
    diagram
 | 
			
		||||
      .append('text')
 | 
			
		||||
      .attr('x', startx)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user