@@ -369,7 +369,7 @@ const cutPathAtIntersect = (_points, boundryNode) => {
369369 return points ;
370370} ;
371371
372- export const insertEdge = function ( elem , e , edge , clusterDb , diagramType , graph ) {
372+ export const insertEdge = function ( elem , e , edge , clusterDb , diagramType , graph , id ) {
373373 let points = edge . points ;
374374 let pointsHasChanged = false ;
375375 const tail = graph . node ( e . v ) ;
@@ -508,61 +508,103 @@ export const insertEdge = function (elem, e, edge, clusterDb, diagramType, graph
508508
509509 switch ( edge . arrowTypeStart ) {
510510 case 'arrow_cross' :
511- svgPath . attr ( 'marker-start' , 'url(' + url + '#' + diagramType + '-crossStart' + ')' ) ;
511+ svgPath . attr (
512+ 'marker-start' ,
513+ 'url(' + url + '#' + id + '_' + diagramType + '-crossStart' + ')'
514+ ) ;
512515 break ;
513516 case 'arrow_point' :
514- svgPath . attr ( 'marker-start' , 'url(' + url + '#' + diagramType + '-pointStart' + ')' ) ;
517+ svgPath . attr (
518+ 'marker-start' ,
519+ 'url(' + url + '#' + id + '_' + diagramType + '-pointStart' + ')'
520+ ) ;
515521 break ;
516522 case 'arrow_barb' :
517- svgPath . attr ( 'marker-start' , 'url(' + url + '#' + diagramType + '-barbStart' + ')' ) ;
523+ svgPath . attr (
524+ 'marker-start' ,
525+ 'url(' + url + '#' + id + '_' + diagramType + '-barbStart' + ')'
526+ ) ;
518527 break ;
519528 case 'arrow_circle' :
520- svgPath . attr ( 'marker-start' , 'url(' + url + '#' + diagramType + '-circleStart' + ')' ) ;
529+ svgPath . attr (
530+ 'marker-start' ,
531+ 'url(' + url + '#' + id + '_' + diagramType + '-circleStart' + ')'
532+ ) ;
521533 break ;
522534 case 'aggregation' :
523- svgPath . attr ( 'marker-start' , 'url(' + url + '#' + diagramType + '-aggregationStart' + ')' ) ;
535+ svgPath . attr (
536+ 'marker-start' ,
537+ 'url(' + url + '#' + id + '_' + diagramType + '-aggregationStart' + ')'
538+ ) ;
524539 break ;
525540 case 'extension' :
526- svgPath . attr ( 'marker-start' , 'url(' + url + '#' + diagramType + '-extensionStart' + ')' ) ;
541+ svgPath . attr (
542+ 'marker-start' ,
543+ 'url(' + url + '#' + id + '_' + diagramType + '-extensionStart' + ')'
544+ ) ;
527545 break ;
528546 case 'composition' :
529- svgPath . attr ( 'marker-start' , 'url(' + url + '#' + diagramType + '-compositionStart' + ')' ) ;
547+ svgPath . attr (
548+ 'marker-start' ,
549+ 'url(' + url + '#' + id + '_' + diagramType + '-compositionStart' + ')'
550+ ) ;
530551 break ;
531552 case 'dependency' :
532- svgPath . attr ( 'marker-start' , 'url(' + url + '#' + diagramType + '-dependencyStart' + ')' ) ;
553+ svgPath . attr (
554+ 'marker-start' ,
555+ 'url(' + url + '#' + id + '_' + diagramType + '-dependencyStart' + ')'
556+ ) ;
533557 break ;
534558 case 'lollipop' :
535- svgPath . attr ( 'marker-start' , 'url(' + url + '#' + diagramType + '-lollipopStart' + ')' ) ;
559+ svgPath . attr (
560+ 'marker-start' ,
561+ 'url(' + url + '#' + id + '_' + diagramType + '-lollipopStart' + ')'
562+ ) ;
536563 break ;
537564 default :
538565 }
539566 switch ( edge . arrowTypeEnd ) {
540567 case 'arrow_cross' :
541- svgPath . attr ( 'marker-end' , 'url(' + url + '#' + diagramType + '-crossEnd' + ')' ) ;
568+ svgPath . attr ( 'marker-end' , 'url(' + url + '#' + id + '_' + diagramType + '-crossEnd' + ')' ) ;
542569 break ;
543570 case 'arrow_point' :
544- svgPath . attr ( 'marker-end' , 'url(' + url + '#' + diagramType + '-pointEnd' + ')' ) ;
571+ svgPath . attr ( 'marker-end' , 'url(' + url + '#' + id + '_' + diagramType + '-pointEnd' + ')' ) ;
545572 break ;
546573 case 'arrow_barb' :
547- svgPath . attr ( 'marker-end' , 'url(' + url + '#' + diagramType + '-barbEnd' + ')' ) ;
574+ svgPath . attr ( 'marker-end' , 'url(' + url + '#' + id + '_' + diagramType + '-barbEnd' + ')' ) ;
548575 break ;
549576 case 'arrow_circle' :
550- svgPath . attr ( 'marker-end' , 'url(' + url + '#' + diagramType + '-circleEnd' + ')' ) ;
577+ svgPath . attr ( 'marker-end' , 'url(' + url + '#' + id + '_' + diagramType + '-circleEnd' + ')' ) ;
551578 break ;
552579 case 'aggregation' :
553- svgPath . attr ( 'marker-end' , 'url(' + url + '#' + diagramType + '-aggregationEnd' + ')' ) ;
580+ svgPath . attr (
581+ 'marker-end' ,
582+ 'url(' + url + '#' + id + '_' + diagramType + '-aggregationEnd' + ')'
583+ ) ;
554584 break ;
555585 case 'extension' :
556- svgPath . attr ( 'marker-end' , 'url(' + url + '#' + diagramType + '-extensionEnd' + ')' ) ;
586+ svgPath . attr (
587+ 'marker-end' ,
588+ 'url(' + url + '#' + id + '_' + diagramType + '-extensionEnd' + ')'
589+ ) ;
557590 break ;
558591 case 'composition' :
559- svgPath . attr ( 'marker-end' , 'url(' + url + '#' + diagramType + '-compositionEnd' + ')' ) ;
592+ svgPath . attr (
593+ 'marker-end' ,
594+ 'url(' + url + '#' + id + '_' + diagramType + '-compositionEnd' + ')'
595+ ) ;
560596 break ;
561597 case 'dependency' :
562- svgPath . attr ( 'marker-end' , 'url(' + url + '#' + diagramType + '-dependencyEnd' + ')' ) ;
598+ svgPath . attr (
599+ 'marker-end' ,
600+ 'url(' + url + '#' + id + '_' + diagramType + '-dependencyEnd' + ')'
601+ ) ;
563602 break ;
564603 case 'lollipop' :
565- svgPath . attr ( 'marker-end' , 'url(' + url + '#' + diagramType + '-lollipopEnd' + ')' ) ;
604+ svgPath . attr (
605+ 'marker-end' ,
606+ 'url(' + url + '#' + id + '_' + diagramType + '-lollipopEnd' + ')'
607+ ) ;
566608 break ;
567609 default :
568610 }
0 commit comments