2026-06-16 05:58:18 +00:00
import { g as pe } from "./chunk-FMBD7UC4.XTzslgsO.js" ; import { an as fe , ao as Ut , ap as xe , aq as ye , ar as be , as as we , at as me , au as Se , av as Le , aw as ke , ax as ve , ay as Ee , az as _e , aA as Te , aB as De , aC as Be , aD as Ne , aE as Ie , aF as Ce , aG as Oe , aH as Re , aI as Ae , aJ as ze , aK as Me , aL as Pe , _ as d , F as at , d as D , e as Fe , l as k , A as We , C as Ye , c as A , aM as He , a9 as Ke , aa as Ue , a6 as Xe , aN as P , aO as vt , aP as $ , aQ as Ve , u as tt , k as je , aR as Ge , i as Ot , aS as Rt , aT as Ze } from "./mermaid.core.BrszyIat.js" ; import { G as qe } from "./graph.CPCuV3C_.js" ; import { c as Je } from "./channel.C-epN8i-.js" ; import "./framework.C2AwuPrQ.js" ; function Qe ( e ) { return Array . isArray ( e ) } function $e ( e ) { if ( fe ( e ) ) return e ; const t = Ut ( e ) ; if ( ! tr ( e ) ) return { } ; if ( Qe ( e ) ) { const s = Array . from ( e ) ; return e . length > 0 && typeof e [ 0 ] == "string" && Object . hasOwn ( e , "index" ) && ( s . index = e . index , s . input = e . input ) , s } if ( xe ( e ) ) { const s = e , i = s . constructor ; return new i ( s . buffer , s . byteOffset , s . length ) } if ( t === "[object ArrayBuffer]" ) return new ArrayBuffer ( e . byteLength ) ; if ( t === "[object DataView]" ) { const s = e , i = s . buffer , c = s . byteOffset , r = s . byteLength , n = new ArrayBuffer ( r ) , l = new Uint8Array ( i , c , r ) ; return new Uint8Array ( n ) . set ( l ) , new DataView ( n ) } if ( t === "[object Boolean]" || t === "[object Number]" || t === "[object String]" ) { const s = e . constructor , i = new s ( e . valueOf ( ) ) ; return t === "[object String]" ? rr ( i , e ) : yt ( i , e ) , i } if ( t === "[object Date]" ) return new Date ( Number ( e ) ) ; if ( t === "[object RegExp]" ) { const s = e , i = new RegExp ( s . source , s . flags ) ; return i . lastIndex = s . lastIndex , i } if ( t === "[object Symbol]" ) return Object ( Symbol . prototype . valueOf . call ( e ) ) ; if ( t === "[object Map]" ) { const s = e , i = new Map ; return s . forEach ( ( c , r ) => { i . set ( r , c ) } ) , i } if ( t === "[object Set]" ) { const s = e , i = new Set ; return s . forEach ( c => { i . add ( c ) } ) , i } if ( t === "[object Arguments]" ) { const s = e , i = { } ; return yt ( i , s ) , i . length = s . length , i [ Symbol . iterator ] = s [ Symbol . iterator ] , i } const a = { } ; return ar ( a , e ) , yt ( a , e ) , er ( a , e ) , a } function tr ( e ) { switch ( Ut ( e ) ) { case Pe : case Me : case ze : case Ae : case Re : case Oe : case Ce : case Ie : case Ne : case Be : case De : case Te : case _e : case Ee : case ve : case ke : case Le : case Se : case me : case we : case be : case ye : return ! 0 ; default : return ! 1 } } function yt ( e , t ) { for ( const a in t ) Object . hasOwn ( t , a ) && ( e [ a ] = t [ a ] ) } function er ( e , t ) { const a = Object . getOwnPropertySymbols ( t ) ; for ( let s = 0 ; s < a . length ; s ++ ) { const i = a [ s ] ; Object . prototype . propertyIsEnumerable . call ( t , i ) && ( e [ i ] = t [ i ] ) } } function rr ( e , t ) { const a = t . valueOf ( ) . length ; for ( const s in t ) Object . hasOwn ( t , s ) && ( Number . isNaN ( Number ( s ) ) || Number ( s ) >= a ) && ( e [ s ] = t [ s ] ) } function ar ( e , t ) { const a = Object . getPrototypeOf ( t ) ; a !== null && typeof t . constructor == "function" && Object . setPrototypeOf ( e , a ) } var wt = ( function ( ) { var e = d ( function ( T , m , u , y ) { for ( u = u || { } , y = T . length ; y -- ; u [ T [ y ] ] = m ) ; return u } , "o" ) , t = [ 1 , 15 ] , a = [ 1 , 7 ] , s = [ 1 , 13 ] , i = [ 1 , 14 ] , c = [ 1 , 19 ] , r = [ 1 , 16 ] , n = [ 1 , 17 ] , l = [ 1 , 18 ] , g = [ 8 , 30 ] , o = [ 8 , 10 , 21 , 28 , 29 , 30 , 31 , 39 , 43 , 46 ] , p = [ 1 , 23 ] , b = [ 1 , 24 ] , x = [ 8 , 10 , 15 , 16 , 21 , 28 , 29 , 30 , 31 , 39 , 43 , 46 ] , w = [ 8 , 10 , 15 , 16 , 21 , 27 , 28 , 29 , 30 , 31 , 39 , 43 , 46 ] , v = [ 1 , 49 ] , S = { trace : d ( function ( ) { } , "trace" ) , yy : { } , symbols _ : { error : 2 , spaceLines : 3 , SPACELINE : 4 , NL : 5 , separator : 6 , SPACE : 7 , EOF : 8 , start : 9 , BLOCK _DIAGRAM _KEY : 10 , document : 11 , stop : 12 , statement : 13 , link : 14 , LINK : 15 , START _LINK : 16 , LINK _LABEL : 17 , STR : 18 , nodeStatement : 19 , columnsStatement : 20 , SPACE _BLOCK : 21 , blockStatement : 22 , classDefStatement : 23 , cssClassStatement : 24 , styleStatement : 25 , node : 26 , SIZE : 27 , COLUMNS : 28 , "id-block" : 29 , end : 30 , NODE _ID : 31 , nodeShapeNLabel : 32 , dirList : 33 , DIR : 34 , NODE _DSTART : 35 , NODE _DEND : 36 , BLOCK _ARROW _START : 37 , BLOCK _ARROW _END : 38 , classDef : 39 , CLASSDEF _ID : 40 , CLASSDEF _STYLEOPTS : 41 , DEFAULT : 42 , class : 43 , CLASSENTITY _IDS : 44 , STYLECLASS : 45 , style : 46 , STYLE _ENTITY _IDS : 47 , STYLE _DEFINITION _DATA : 48 , $accept : 0 , $end : 1 } , terminals _ : { 2 : "error" , 4 : "SPACELINE" , 5 : "NL" , 7 : "SPACE" , 8 : "EOF" , 10 : "BLOCK_DIAGRAM_KEY" , 15 : "LINK" , 16 : "START_LINK" , 17 : "LINK_LABEL" , 18 : "STR" , 21 : "SPACE_BLOCK" , 27 : "SIZE" , 28 : "COLUMNS" , 29 : "id-block" , 30 : "end" , 31 : "NODE_ID" , 34 : "DIR" , 35 : "NODE_DSTART" , 36 : "NODE_DEND" , 37 : "BLOCK_ARROW_START" , 38 : "BLOCK_ARROW_END" , 39 : "classDef" , 40 : "CLASSDEF_ID" , 41 : "CLASSDEF_STYLEOPTS" , 42 : "DEFAULT" , 43 : "class" , 44 : "CLASSENTITY_IDS" , 45 : "STYLECLASS" , 46 : "style" , 47 : "STYLE_ENTITY_IDS" , 48 : "STYLE_DEFINITION_DATA" } , productions _ : [ 0 ,
2026-05-21 07:27:56 +00:00
` +R.showPosition()+ `
2026-06-16 05:58:18 +00:00
Expecting ` +nt.join(", ")+", got '"+(this.terminals_[F]||F)+"'":xt="Parse error on line "+(O+1)+": Unexpected "+(F==st?"end of input":"'"+(this.terminals_[F]||F)+"'"),this.parseError(xt,{text:R.match,token:this.terminals_[F]||F,line:R.yylineno,loc:pt,expected:nt})}if(K[0]instanceof Array&&K.length>1)throw new Error("Parse Error: multiple actions possible at state: "+J+", token: "+F);switch(K[0]){case 1:y.push(F),E.push(R.yytext),h.push(R.yylloc),y.push(K[1]),F=null,q=R.yyleng,f=R.yytext,O=R.yylineno,pt=R.yylloc;break;case 2:if(Z=this.productions_[K[1]][1],Q. $ =E[E.length-Z],Q._ $ ={first_line:h[h.length-(Z||1)].first_line,last_line:h[h.length-1].last_line,first_column:h[h.length-(Z||1)].first_column,last_column:h[h.length-1].last_column},de&&(Q._ $ .range=[h[h.length-(Z||1)].range[0],h[h.length-1].range[1]]),ft=this.performAction.apply(Q,[f,q,O,G.yy,K[1],E,h].concat(dt)),typeof ft<"u")return ft;Z&&(y=y.slice(0,-1*Z*2),E=E.slice(0,-1*Z),h=h.slice(0,-1*Z)),y.push(this.productions_[K[1]][0]),E.push(Q. $ ),h.push(Q._ $ ),Ct=W[y[y.length-2]][y[y.length-1]],y.push(Ct);break;case 3:return!0}}return!0},"parse")},_=(function(){var T={EOF:1,parseError:d(function(u,y){if(this.yy.parser)this.yy.parser.parseError(u,y);else throw new Error(u)},"parseError"),setInput:d(function(m,u){return this.yy=u||this.yy||{},this._input=m,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:d(function(){var m=this._input[0];this.yytext+=m,this.yyleng++,this.offset++,this.match+=m,this.matched+=m;var u=m.match(/(?: \r \n ?| \n ).*/g);return u?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),m},"input"),unput:d(function(m){var u=m.length,y=m.split(/(?: \r \n ?| \n )/g);this._input=m+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-u),this.offset-=u;var L=this.match.split(/(?: \r \n ?| \n )/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),y.length-1&&(this.yylineno-=y.length-1);var E=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:y?(y.length===L.length?this.yylloc.first_column:0)+L[L.length-y.length].length-y[0].length:this.yylloc.first_column-u},this.options.ranges&&(this.yylloc.range=[E[0],E[0]+this.yyleng-u]),this.yyleng=this.yytext.length,this},"unput"),more:d(function(){return this._more=!0,this},"more"),reject:d(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+ ` . You can only invoke reject ( ) in the lexer when the lexer is of the backtracking persuasion ( options . backtrack _lexer = true ) .
2026-05-21 07:27:56 +00:00
` +this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:d(function(m){this.unput(this.match.slice(m))},"less"),pastInput:d(function(){var m=this.matched.substr(0,this.matched.length-this.match.length);return(m.length>20?"...":"")+m.substr(-20).replace(/ \n /g,"")},"pastInput"),upcomingInput:d(function(){var m=this.match;return m.length<20&&(m+=this._input.substr(0,20-m.length)),(m.substr(0,20)+(m.length>20?"...":"")).replace(/ \n /g,"")},"upcomingInput"),showPosition:d(function(){var m=this.pastInput(),u=new Array(m.length+1).join("-");return m+this.upcomingInput()+ `
` +u+"^"},"showPosition"),test_match:d(function(m,u){var y,L,E;if(this.options.backtrack_lexer&&(E={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(E.yylloc.range=this.yylloc.range.slice(0))),L=m[0].match(/(?: \r \n ?| \n ).*/g),L&&(this.yylineno+=L.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:L?L[L.length-1].length-L[L.length-1].match(/ \r ? \n ?/)[0].length:this.yylloc.last_column+m[0].length},this.yytext+=m[0],this.match+=m[0],this.matches=m,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(m[0].length),this.matched+=m[0],y=this.performAction.call(this,this.yy,this,u,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),y)return y;if(this._backtrack){for(var h in E)this[h]=E[h];return!1}return!1},"test_match"),next:d(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var m,u,y,L;this._more||(this.yytext="",this.match="");for(var E=this._currentRules(),h=0;h<E.length;h++)if(y=this._input.match(this.rules[E[h]]),y&&(!u||y[0].length>u[0].length)){if(u=y,L=h,this.options.backtrack_lexer){if(m=this.test_match(y,E[h]),m!==!1)return m;if(this._backtrack){u=!1;continue}else return!1}else if(!this.options.flex)break}return u?(m=this.test_match(u,E[L]),m!==!1?m:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+ ` . Unrecognized text .
2026-06-16 05:58:18 +00:00
` +this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:d(function(){var u=this.next();return u||this.lex()},"lex"),begin:d(function(u){this.conditionStack.push(u)},"begin"),popState:d(function(){var u=this.conditionStack.length-1;return u>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:d(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:d(function(u){return u=this.conditionStack.length-1-Math.abs(u||0),u>=0?this.conditionStack[u]:"INITIAL"},"topState"),pushState:d(function(u){this.begin(u)},"pushState"),stateStackSize:d(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:d(function(u,y,L,E){switch(L){case 0:return u.getLogger().debug("Found block-beta"),10;case 1:return u.getLogger().debug("Found id-block"),29;case 2:return u.getLogger().debug("Found block"),10;case 3:u.getLogger().debug(".",y.yytext);break;case 4:u.getLogger().debug("_",y.yytext);break;case 5:return 5;case 6:return y.yytext=-1,28;case 7:return y.yytext=y.yytext.replace(/columns \s +/,""),u.getLogger().debug("COLUMNS (LEX)",y.yytext),28;case 8:this.pushState("md_string");break;case 9:return"MD_STR";case 10:this.popState();break;case 11:this.pushState("string");break;case 12:u.getLogger().debug("LEX: POPPING STR:",y.yytext),this.popState();break;case 13:return u.getLogger().debug("LEX: STR end:",y.yytext),"STR";case 14:return y.yytext=y.yytext.replace(/space \: /,""),u.getLogger().debug("SPACE NUM (LEX)",y.yytext),21;case 15:return y.yytext="1",u.getLogger().debug("COLUMNS (LEX)",y.yytext),21;case 16:return 42;case 17:return"LINKSTYLE";case 18:return"INTERPOLATE";case 19:return this.pushState("CLASSDEF"),39;case 20:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";case 21:return this.popState(),this.pushState("CLASSDEFID"),40;case 22:return this.popState(),41;case 23:return this.pushState("CLASS"),43;case 24:return this.popState(),this.pushState("CLASS_STYLE"),44;case 25:return this.popState(),45;case 26:return this.pushState("STYLE_STMNT"),46;case 27:return this.popState(),this.pushState("STYLE_DEFINITION"),47;case 28:return this.popState(),48;case 29:return this.pushState("acc_title"),"acc_title";case 30:return this.popState(),"acc_title_value";case 31:return this.pushState("acc_descr"),"acc_descr";case 32:return this.popState(),"acc_descr_value";case 33:this.pushState("acc_descr_multiline");break;case 34:this.popState();break;case 35:return"acc_descr_multiline_value";case 36:return 30;case 37:return this.popState(),u.getLogger().debug("Lex: (("),"NODE_DEND";case 38:return this.popState(),u.getLogger().debug("Lex: (("),"NODE_DEND";case 39:return this.popState(),u.getLogger().debug("Lex: ))"),"NODE_DEND";case 40:return this.popState(),u.getLogger().debug("Lex: (("),"NODE_DEND";case 41:return this.popState(),u.getLogger().debug("Lex: (("),"NODE_DEND";case 42:return this.popState(),u.getLogger().debug("Lex: (-"),"NODE_DEND";case 43:return this.popState(),u.getLogger().debug("Lex: -)"),"NODE_DEND";case 44:return this.popState(),u.getLogger().debug("Lex: (("),"NODE_DEND";case 45:return this.popState(),u.getLogger().debug("Lex: ]]"),"NODE_DEND";case 46:return this.popState(),u.getLogger().debug("Lex: ("),"NODE_DEND";case 47:return this.popState(),u.getLogger().debug("Lex: ])"),"NODE_DEND";case 48:return this.popState(),u.getLogger().debug("Lex: /]"),"NODE_DEND";case 49:return this.popState(),u.getLogger().debug("Lex: /]"),"NODE_DEND";case 50:return this.popState(),u.getLogger().debug("Lex: )]"),"NODE_DEND";case 51:return this.popState(),u.getLogger().debug("Lex: )"),"NODE_DEND";case 52:return this.popState(),u.getLogger().debug("Lex: ]>"),"NODE_DEND";case 53:return this.popState(),u.getLogger().debug("Lex: ]"),"NODE_DEND";case 54:return u.getLogger().debug("Lexa: -)"),this.pushState("NODE"),35;case 55:return u.getLogger().debug("Lexa: (-"),this.pushState("NODE"),35;case 56:return
2026-05-21 07:27:56 +00:00
font - family : $ { e . fontFamily } ;
color : $ { e . nodeTextColor || e . textColor } ;
}
. cluster - label text {
fill : $ { e . titleColor } ;
}
. cluster - label span , p {
color : $ { e . titleColor } ;
}
. label text , span , p {
fill : $ { e . nodeTextColor || e . textColor } ;
color : $ { e . nodeTextColor || e . textColor } ;
}
. node rect ,
. node circle ,
. node ellipse ,
. node polygon ,
. node path {
fill : $ { e . mainBkg } ;
stroke : $ { e . nodeBorder } ;
stroke - width : 1 px ;
}
. flowchart - label text {
text - anchor : middle ;
}
// .flowchart-label .text-outer-tspan {
// text-anchor: middle;
// }
// .flowchart-label .text-inner-tspan {
// text-anchor: start;
// }
. node . label {
text - align : center ;
}
. node . clickable {
cursor : pointer ;
}
. arrowheadPath {
fill : $ { e . arrowheadColor } ;
}
. edgePath . path {
stroke : $ { e . lineColor } ;
stroke - width : 2.0 px ;
}
. flowchart - link {
stroke : $ { e . lineColor } ;
fill : none ;
}
. edgeLabel {
background - color : $ { e . edgeLabelBackground } ;
/ *
* This is for backward compatibility with existing code that didn ' t
* add a \ ` <p> \` around edge labels.
*
* TODO : We should probably remove this in a future release .
* /
p {
margin : 0 ;
padding : 0 ;
display : inline ;
}
rect {
opacity : 0.5 ;
background - color : $ { e . edgeLabelBackground } ;
fill : $ { e . edgeLabelBackground } ;
}
text - align : center ;
}
/* For html labels only */
. labelBkg {
background - color : $ { e . edgeLabelBackground } ;
}
. node . cluster {
// fill: ${bt(e.mainBkg,.5)};
fill : $ { bt ( e . clusterBkg , . 5 ) } ;
stroke : $ { bt ( e . clusterBorder , . 2 ) } ;
box - shadow : rgba ( 50 , 50 , 93 , 0.25 ) 0 px 13 px 27 px - 5 px , rgba ( 0 , 0 , 0 , 0.3 ) 0 px 8 px 16 px - 8 px ;
stroke - width : 1 px ;
}
. cluster text {
fill : $ { e . titleColor } ;
}
. cluster span , p {
color : $ { e . titleColor } ;
}
/ * . c l u s t e r d i v {
color : $ { e . titleColor } ;
} * /
div . mermaidTooltip {
position : absolute ;
text - align : center ;
max - width : 200 px ;
padding : 2 px ;
font - family : $ { e . fontFamily } ;
font - size : 12 px ;
background : $ { e . tertiaryColor } ;
border : 1 px solid $ { e . border2 } ;
border - radius : 2 px ;
pointer - events : none ;
z - index : 100 ;
}
. flowchartTitleText {
text - anchor : middle ;
font - size : 18 px ;
fill : $ { e . textColor } ;
}
2026-06-16 05:58:18 +00:00
$ { pe ( ) }
` ,"getStyles"),Tr=_r,Dr=d((e,t,a,s)=>{t.forEach(i=>{Pr[i](e,a,s)})},"insertMarkers"),Br=d((e,t,a)=>{k.trace("Making markers for ",a),e.append("defs").append("marker").attr("id",a+"_"+t+"-extensionStart").attr("class","marker extension "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),e.append("defs").append("marker").attr("id",a+"_"+t+"-extensionEnd").attr("class","marker extension "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},"extension"),Nr=d((e,t,a)=>{e.append("defs").append("marker").attr("id",a+"_"+t+"-compositionStart").attr("class","marker composition "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",a+"_"+t+"-compositionEnd").attr("class","marker composition "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"composition"),Ir=d((e,t,a)=>{e.append("defs").append("marker").attr("id",a+"_"+t+"-aggregationStart").attr("class","marker aggregation "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",a+"_"+t+"-aggregationEnd").attr("class","marker aggregation "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"aggregation"),Cr=d((e,t,a)=>{e.append("defs").append("marker").attr("id",a+"_"+t+"-dependencyStart").attr("class","marker dependency "+t).attr("refX",6).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",a+"_"+t+"-dependencyEnd").attr("class","marker dependency "+t).attr("refX",13).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"dependency"),Or=d((e,t,a)=>{e.append("defs").append("marker").attr("id",a+"_"+t+"-lollipopStart").attr("class","marker lollipop "+t).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),e.append("defs").append("marker").attr("id",a+"_"+t+"-lollipopEnd").attr("class","marker lollipop "+t).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)},"lollipop"),Rr=d((e,t,a)=>{e.append("marker").attr("id",a+"_"+t+"-pointEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",6).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),e.append("marker").attr("id",a+"_"+t+"-pointStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"point"),Ar=d((e,t,a)=>{e.append("marker").attr("id",a+"_"+t+"-circleEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath
2026-05-21 07:27:56 +00:00
outsidePoint : $ { JSON . stringify ( t ) }
insidePoint : $ { JSON . stringify ( a ) }
2026-06-16 05:58:18 +00:00
node : x : $ { e . x } y : $ { e . y } w : $ { e . width } h : $ { e . height } ` );const s=e.x,i=e.y,c=Math.abs(s-a.x),r=e.width/2;let n=a.x<t.x?r-c:r+c;const l=e.height/2,g=Math.abs(t.y-a.y),o=Math.abs(t.x-a.x);if(Math.abs(i-t.y)*r>Math.abs(s-t.x)*l){let p=a.y<t.y?t.y-l-i:i-l-t.y;n=o*p/g;const b={x:a.x<t.x?a.x+n:a.x-o+n,y:a.y<t.y?a.y+g-p:a.y-g+p};return n===0&&(b.x=t.x,b.y=t.y),o===0&&(b.x=t.x),g===0&&(b.y=t.y),k.debug( ` abc89 topp / bott calc , Q $ { g } , q $ { p } , R $ { o } , r $ { n } ` ,b),b}else{a.x<t.x?n=t.x-r-s:n=s-r-t.x;let p=g*n/o,b=a.x<t.x?a.x+o-n:a.x-o+n,x=a.y<t.y?a.y+p:a.y-p;return k.debug( ` sides calc abc89 , Q $ { g } , q $ { p } , R $ { o } , r $ { n } ` ,{_x:b,_y:x}),n===0&&(b=t.x,x=t.y),o===0&&(b=t.x),g===0&&(x=t.y),{x:b,y:x}}},"intersection"),Ft=d((e,t)=>{k.debug("abc88 cutPathAtIntersect",e,t);let a=[],s=e[0],i=!1;return e.forEach(c=>{if(!Vr(t,c)&&!i){const r=jr(t,s,c);let n=!1;a.forEach(l=>{n=n||l.x===r.x&&l.y===r.y}),a.some(l=>l.x===r.x&&l.y===r.y)||a.push(r),i=!0}else s=c,i||a.push(c)}),a},"cutPathAtIntersect"),Gr=d(function(e,t,a,s,i,c,r){let n=a.points;k.debug("abc88 InsertEdge: edge=",a,"e=",t);let l=!1;const g=c.node(t.v);var o=c.node(t.w);o?.intersect&&g?.intersect&&(n=n.slice(1,a.points.length-1),n.unshift(g.intersect(n[0])),n.push(o.intersect(n[n.length-1]))),a.toCluster&&(k.debug("to cluster abc88",s[a.toCluster]),n=Ft(a.points,s[a.toCluster].node),l=!0),a.fromCluster&&(k.debug("from cluster abc88",s[a.fromCluster]),n=Ft(n.reverse(),s[a.fromCluster].node).reverse(),l=!0);const p=n.filter(m=>!Number.isNaN(m.y));let b=Ue;a.curve&&(i==="graph"||i==="flowchart")&&(b=a.curve);const{x,y:w}=He(a),v=Ke().x(x).y(w).curve(b);let S;switch(a.thickness){case"normal":S="edge-thickness-normal";break;case"thick":S="edge-thickness-thick";break;case"invisible":S="edge-thickness-thick";break;default:S=""}switch(a.pattern){case"solid":S+=" edge-pattern-solid";break;case"dotted":S+=" edge-pattern-dotted";break;case"dashed":S+=" edge-pattern-dashed";break}const _=e.append("path").attr("d",v(p)).attr("id",a.id).attr("class"," "+S+(a.classes?" "+a.classes:"")).attr("style",a.style);let I="";(A().flowchart.arrowMarkerAbsolute||A().state.arrowMarkerAbsolute)&&(I=Xe(!0)),Hr(_,a,I,r,i);let T={};return l&&(T.updatedPath=n),T.originalPath=a.points,T},"insertEdge"),Zr=d(e=>{const t=new Set;for(const a of e)switch(a){case"x":t.add("right"),t.add("left");break;case"y":t.add("up"),t.add("down");break;default:t.add(a);break}return t},"expandAndDeduplicateDirections"),qr=d((e,t,a,s)=>{const i=Zr(e),c=2,r=t.height+2*a.padding,n=r/c,l=s??t.width+2*n+a.padding,g=a.padding/2;return i.has("right")&&i.has("left")&&i.has("up")&&i.has("down")?[{x:0,y:0},{x:n,y:0},{x:l/2,y:2*g},{x:l-n,y:0},{x:l,y:0},{x:l,y:-r/3},{x:l+2*g,y:-r/2},{x:l,y:-2*r/3},{x:l,y:-r},{x:l-n,y:-r},{x:l/2,y:-r-2*g},{x:n,y:-r},{x:0,y:-r},{x:0,y:-2*r/3},{x:-2*g,y:-r/2},{x:0,y:-r/3}]:i.has("right")&&i.has("left")&&i.has("up")?[{x:n,y:0},{x:l-n,y:0},{x:l,y:-r/2},{x:l-n,y:-r},{x:n,y:-r},{x:0,y:-r/2}]:i.has("right")&&i.has("left")&&i.has("down")?[{x:0,y:0},{x:n,y:-r},{x:l-n,y:-r},{x:l,y:0}]:i.has("right")&&i.has("up")&&i.has("down")?[{x:0,y:0},{x:l,y:-n},{x:l,y:-r+n},{x:0,y:-r}]:i.has("left")&&i.has("up")&&i.has("down")?[{x:l,y:0},{x:0,y:-n},{x:0,y:-r+n},{x:l,y:-r}]:i.has("right")&&i.has("left")?[{x:n,y:0},{x:n,y:-g},{x:l-n,y:-g},{x:l-n,y:0},{x:l,y:-r/2},{x:l-n,y:-r},{x:l-n,y:-r+g},{x:n,y:-r+g},{x:n,y:-r},{x:0,y:-r/2}]:i.has("up")&&i.has("down")?[{x:l/2,y:0},{x:0,y:-g},{x:n,y:-g},{x:n,y:-r+g},{x:0,y:-r+g},{x:l/2,y:-r},{x:l,y:-r+g},{x:l-n,y:-r+g},{x:l-n,y:-g},{x:l,y:-g}]:i.has("right")&&i.has("up")?[{x:0,y:0},{x:l,y:-n},{x:0,y:-r}]:i.has("right")&&i.has("down")?[{x:0,y:0},{x:l,y:0},{x:0,y:-r}]:i.has("left")&&i.has("up")?[{x:l,y:0},{x:0,y:-n},{x:l,y:-r}]:i.has("left")&&i.has("down")?[{x:l,y:0},{x:0,y:0},{x:l,y:-r}]:i.has("right")?[{x:n,y:-g},{x:n,y:-g},{x:l-n,y:-g},{x:l-n,y:0},{x:l,y:-r/2},{x:l-n,y:-r},{x:l-n,y:-r+g},{x:n,y:-r+g},{x:n,y:-r+g}]:i.has("left")?[{x:n,y:0},{x:n,y:-g},{x:l-n,y:-g},{x:l-n,y:-r+g},{x:n,y:-r+g},{x:n,y:-r},{x:0,y:-r/2}]:i.has("up")?[{x:n,y:-g},{x:n,y:-r+g},{x:0,y:-r+g},{x:l/2,y:-r},{x:l,y:-r+g},{x:l-n,y:-