2026-08-09 15:43:19 -04:00
import { g as oe } from "./chunk-FMBD7UC4-HblipWIM.js" ; import { _ as d , F as rt , d as O , e as he , l as L , y as de , A as ge , ak as ue , a9 as pe , aa as fe , c as R , a6 as xe , al as j , am as Wt , an as ye , u as $ , k as be , ao as we , ap as xt , i as yt , aq as me } from "./mermaid.core-v0oo9NRr.js" ; import { c as Le } from "./clone-C1u3K6Fy.js" ; import { G as Se } from "./graph-C1er8lVu.js" ; import { c as ke } from "./channel-Dg2Em7BA.js" ; import "./index-8cIrvc8q.js" ; import "./_baseUniq-DAOs4kUj.js" ; var bt = ( function (){ var e = d ( function ( D , y , g , f ){ for ( g = g || {}, f = D . length ; f -- ; g [ D [ f ]] = y ); return g }, "o" ), t = [ 1 , 15 ], a = [ 1 , 7 ], i = [ 1 , 13 ], l = [ 1 , 14 ], s = [ 1 , 19 ], r = [ 1 , 16 ], n = [ 1 , 17 ], c = [ 1 , 18 ], u = [ 8 , 30 ], o = [ 8 , 10 , 21 , 28 , 29 , 30 , 31 , 39 , 43 , 46 ], x = [ 1 , 23 ], w = [ 1 , 24 ], b = [ 8 , 10 , 15 , 16 , 21 , 28 , 29 , 30 , 31 , 39 , 43 , 46 ], S = [ 8 , 10 , 15 , 16 , 21 , 27 , 28 , 29 , 30 , 31 , 39 , 43 , 46 ], v = [ 1 , 49 ], k = { 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 ,[ 3 , 1 ],[ 3 , 2 ],[ 3 , 2 ],[ 6 , 1 ],[ 6 , 1 ],[ 6 , 1 ],[ 9 , 3 ],[ 12 , 1 ],[ 12 , 1 ],[ 12 , 2 ],[ 12 , 2 ],[ 11 , 1 ],[ 11 , 2 ],[ 14 , 1 ],[ 14 , 4 ],[ 13 , 1 ],[ 13 , 1 ],[ 13 , 1 ],[ 13 , 1 ],[ 13 , 1 ],[ 13 , 1 ],[ 13 , 1 ],[ 19 , 3 ],[ 19 , 2 ],[ 19 , 1 ],[ 20 , 1 ],[ 22 , 4 ],[ 22 , 3 ],[ 26 , 1 ],[ 26 , 2 ],[ 33 , 1 ],[ 33 , 2 ],[ 32 , 3 ],[ 32 , 4 ],[ 23 , 3 ],[ 23 , 3 ],[ 24 , 3 ],[ 25 , 3 ]], performAction : d ( function ( y , g , f , m , E , h , W ){ var p = h . length - 1 ; switch ( E ){ case 4 : m . getLogger (). debug ( "Rule: separator (NL) " ); break ; case 5 : m . getLogger (). debug ( "Rule: separator (Space) " ); break ; case 6 : m . getLogger (). debug ( "Rule: separator (EOF) " ); break ; case 7 : m . getLogger (). debug ( "Rule: hierarchy: " , h [ p - 1 ]), m . setHierarchy ( h [ p - 1 ]); break ; case 8 : m . getLogger (). debug ( "Stop NL " ); break ; case 9 : m . getLogger (). debug ( "Stop EOF " ); break ; case 10 : m . getLogger (). debug ( "Stop NL2 " ); break ; case 11 : m . getLogger (). debug ( "Stop EOF2 " ); break ; case 12 : m . getLogger (). debug ( "Rule: statement: " , h [ p ]), typeof h [ p ]. length == "number" ? this . $ = h [ p ] : this . $ = [ h [ p ]]; break ; case 13 : m . getLogger (). debug ( "Rule: statement #2: " , h [ p - 1 ]), this . $ = [ h [ p - 1 ]]. concat ( h [ p ]); break ; case 14 : m . getLogger (). debug ( "Rule: link: " , h [ p ], y ), this . $ = { edgeTypeStr : h [ p ], label : "" }; break ; case 15 : m . getLogger (). debug ( "Rule: LABEL link: " , h [ p - 3 ], h [ p - 1 ], h [ p ]), this . $ = { edgeTypeStr : h [ p ], label : h [ p - 1 ]}; break ; case 18 : const I = parseInt ( h [ p ]), Z = m . generateId (); this . $ = { id : Z , type : "space" , label : "" , width : I , children : []}; break ; case 23 : m . getLogger (). debug ( "Rule: (nodeStatement link node) " , h [ p - 2 ], h [ p - 1 ], h [ p ], " typestr: " , h [ p - 1 ]. edgeTypeStr ); const V = m . edgeStrToEdgeData ( h [ p - 1 ]. edgeTypeStr ); this . $ = [{ id : h [ p - 2 ]. id , label : h [ p - 2 ]. label , type : h [ p - 2 ]. type , directions : h [ p - 2 ]. directions },{ id : h [ p - 2 ]. id + "-" + h [ p ]. id , start : h [ p - 2 ]. id , end : h [ p ]. id , label : h [ p - 1 ]. label , type : "edge" , directions : h [ p ]. directions , arrowTypeEnd : V , arrowTypeStart : "arrow_open" },{ id : h [ p ]. id , label : h [ p ]. label , type : m . typeStr2Type ( h [ p ]. typeStr ), directions : h [ p ]. directions }]; break ; case 24 : m . getLogger (). debug ( "Rule: nodeStatement (abc88 node size) " , h [ p - 1 ], h [ p ]), this . $ = { id : h [ p - 1 ]. id , label : h [ p - 1 ]. label , type : m . typeStr2Type ( h [ p - 1 ]. typeStr ), directions : h [ p - 1 ]. directions , widthInColumns : parseInt ( h [ p ], 10 )}; break ; case 25 : m . getLogger (). debug ( "Rule: nodeStatement (node) " , h [ p ]), this . $ = { id : h [ p ]. id , label : h [ p ]. label , type : m . typeStr
2026-03-07 19:52:33 +00:00
`+z.showPosition()+`
Expecting `+it.join(", ")+", got '"+(this.terminals_[F]||F)+"'":ft="Parse error on line "+(I+1)+": Unexpected "+(F==at?"end of input":"'"+(this.terminals_[F]||F)+"'"),this.parseError(ft,{text:z.match,token:this.terminals_[F]||F,line:z.yylineno,loc:ut,expected:it})}if(H[0]instanceof Array&&H.length>1)throw new Error("Parse Error: multiple actions possible at state: "+J+", token: "+F);switch(H[0]){case 1:f.push(F),E.push(z.yytext),h.push(z.yylloc),f.push(H[1]),F=null,Z=z.yyleng,p=z.yytext,I=z.yylineno,ut=z.yylloc;break;case 2:if(G=this.productions_[H[1]][1],Q.$=E[E.length-G],Q._$={first_line:h[h.length-(G||1)].first_line,last_line:h[h.length-1].last_line,first_column:h[h.length-(G||1)].first_column,last_column:h[h.length-1].last_column},le&&(Q._$.range=[h[h.length-(G||1)].range[0],h[h.length-1].range[1]]),pt=this.performAction.apply(Q,[p,Z,I,q.yy,H[1],E,h].concat(ne)),typeof pt<"u")return pt;G&&(f=f.slice(0,-1*G*2),E=E.slice(0,-1*G),h=h.slice(0,-1*G)),f.push(this.productions_[H[1]][0]),E.push(Q.$),h.push(Q._$),Tt=W[f[f.length-2]][f[f.length-1]],f.push(Tt);break;case 3:return!0}}return!0},"parse")},B=(function(){var D={EOF:1,parseError:d(function(g,f){if(this.yy.parser)this.yy.parser.parseError(g,f);else throw new Error(g)},"parseError"),setInput:d(function(y,g){return this.yy=g||this.yy||{},this._input=y,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 y=this._input[0];this.yytext+=y,this.yyleng++,this.offset++,this.match+=y,this.matched+=y;var g=y.match(/(?:\r\n?|\n).*/g);return g?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),y},"input"),unput:d(function(y){var g=y.length,f=y.split(/(?:\r\n?|\n)/g);this._input=y+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-g),this.offset-=g;var m=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),f.length-1&&(this.yylineno-=f.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:f?(f.length===m.length?this.yylloc.first_column:0)+m[m.length-f.length].length-f[0].length:this.yylloc.first_column-g},this.options.ranges&&(this.yylloc.range=[E[0],E[0]+this.yyleng-g]),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 ).
`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:d(function(y){this.unput(this.match.slice(y))},"less"),pastInput:d(function(){var y=this.matched.substr(0,this.matched.length-this.match.length);return(y.length>20?"...":"")+y.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:d(function(){var y=this.match;return y.length<20&&(y+=this._input.substr(0,20-y.length)),(y.substr(0,20)+(y.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:d(function(){var y=this.pastInput(),g=new Array(y.length+1).join("-");return y+this.upcomingInput()+`
`+g+"^"},"showPosition"),test_match:d(function(y,g){var f,m,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))),m=y[0].match(/(?:\r\n?|\n).*/g),m&&(this.yylineno+=m.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:m?m[m.length-1].length-m[m.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+y[0].length},this.yytext+=y[0],this.match+=y[0],this.matches=y,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(y[0].length),this.matched+=y[0],f=this.performAction.call(this,this.yy,this,g,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),f)return f;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 y,g,f,m;this._more||(this.yytext="",this.match="");for(var E=this._currentRules(),h=0;h<E.length;h++)if(f=this._input.match(this.rules[E[h]]),f&&(!g||f[0].length>g[0].length)){if(g=f,m=h,this.options.backtrack_lexer){if(y=this.test_match(f,E[h]),y!==!1)return y;if(this._backtrack){g=!1;continue}else return!1}else if(!this.options.flex)break}return g?(y=this.test_match(g,E[m]),y!==!1?y:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+` . Unrecognized text .
`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:d(function(){var g=this.next();return g||this.lex()},"lex"),begin:d(function(g){this.conditionStack.push(g)},"begin"),popState:d(function(){var g=this.conditionStack.length-1;return g>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(g){return g=this.conditionStack.length-1-Math.abs(g||0),g>=0?this.conditionStack[g]:"INITIAL"},"topState"),pushState:d(function(g){this.begin(g)},"pushState"),stateStackSize:d(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:d(function(g,f,m,E){switch(m){case 0:return g.getLogger().debug("Found block-beta"),10;case 1:return g.getLogger().debug("Found id-block"),29;case 2:return g.getLogger().debug("Found block"),10;case 3:g.getLogger().debug(".",f.yytext);break;case 4:g.getLogger().debug("_",f.yytext);break;case 5:return 5;case 6:return f.yytext=-1,28;case 7:return f.yytext=f.yytext.replace(/columns\s+/,""),g.getLogger().debug("COLUMNS (LEX)",f.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:g.getLogger().debug("LEX: POPPING STR:",f.yytext),this.popState();break;case 13:return g.getLogger().debug("LEX: STR end:",f.yytext),"STR";case 14:return f.yytext=f.yytext.replace(/space\:/,""),g.getLogger().debug("SPACE NUM (LEX)",f.yytext),21;case 15:return f.yytext="1",g.getLogger().debug("COLUMNS (LEX)",f.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(),g.getLogger().debug("Lex: (("),"NODE_DEND";case 38:return this.popState(),g.getLogger().debug("Lex: (("),"NODE_DEND";case 39:return this.popState(),g.getLogger().debug("Lex: ))"),"NODE_DEND";case 40:return this.popState(),g.getLogger().debug("Lex: (("),"NODE_DEND";case 41:return this.popState(),g.getLogger().debug("Lex: (("),"NODE_DEND";case 42:return this.popState(),g.getLogger().debug("Lex: (-"),"NODE_DEND";case 43:return this.popState(),g.getLogger().debug("Lex: -)"),"NODE_DEND";case 44:return this.popState(),g.getLogger().debug("Lex: (("),"NODE_DEND";case 45:return this.popState(),g.getLogger().debug("Lex: ]]"),"NODE_DEND";case 46:return this.popState(),g.getLogger().debug("Lex: ("),"NODE_DEND";case 47:return this.popState(),g.getLogger().debug("Lex: ])"),"NODE_DEND";case 48:return this.popState(),g.getLogger().debug("Lex: /]"),"NODE_DEND";case 49:return this.popState(),g.getLogger().debug("Lex: /]"),"NODE_DEND";case 50:return this.popState(),g.getLogger().debug("Lex: )]"),"NODE_DEND";case 51:return this.popState(),g.getLogger().debug("Lex: )"),"NODE_DEND";case 52:return this.popState(),g.getLogger().debug("Lex: ]>"),"NODE_DEND";case 53:return this.popState(),g.getLogger().debug("Lex: ]"),"NODE_DEND";case 54:return g.getLogger().debug("Lexa: -)"),this.pushState("NODE"),35;case 55:return g.getLogger().debug("Lexa: (-"),this.pushState("NODE"),35;case 56:return
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: 1px;
}
.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.0px;
}
.flowchart-link {
stroke: ${ e . lineColor } ;
fill: none;
}
.edgeLabel {
background-color: ${ e . edgeLabelBackground } ;
rect {
opacity: 0.5;
background-color: ${ e . edgeLabelBackground } ;
fill: ${ e . edgeLabelBackground } ;
}
text-align: center;
}
/* For html labels only */
.labelBkg {
background-color: ${ nt ( e . edgeLabelBackground ,. 5 ) } ;
// background-color:
}
.node .cluster {
// fill: ${ nt ( e . mainBkg ,. 5 ) } ;
fill: ${ nt ( e . clusterBkg ,. 5 ) } ;
stroke: ${ nt ( e . clusterBorder ,. 2 ) } ;
box-shadow: rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px;
stroke-width: 1px;
}
.cluster text {
fill: ${ e . titleColor } ;
}
.cluster span,p {
color: ${ e . titleColor } ;
}
/* .cluster div {
color: ${ e . titleColor } ;
} */
div.mermaidTooltip {
position: absolute;
text-align: center;
max-width: 200px;
padding: 2px;
font-family: ${ e . fontFamily } ;
font-size: 12px;
background: ${ e . tertiaryColor } ;
border: 1px solid ${ e . border2 } ;
border-radius: 2px;
pointer-events: none;
z-index: 100;
}
.flowchartTitleText {
text-anchor: middle;
font-size: 18px;
fill: ${ e . textColor } ;
}
${ oe () }
` , "getStyles" ), Ue = Xe , je = d (( e , t , a , i )=>{ t . forEach ( l =>{ rr [ l ]( e , a , i )})}, "insertMarkers" ), Ve = d (( e , t , a )=>{ L . 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" ), Ge = 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" ), Ze = 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" ), qe = 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" ), Je = 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" ), Qe = 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" ), $e = 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
outsidePoint: ${JSON.stringify(t)}
insidePoint : ${JSON.stringify(a)}
node : x:${e.x} y:${e.y} w:${e.width} h:${e.height}`);const i=e.x,l=e.y,s=Math.abs(i-a.x),r=e.width/2;let n=a.x<t.x?r-s:r+s;const c=e.height/2,u=Math.abs(t.y-a.y),o=Math.abs(t.x-a.x);if(Math.abs(l-t.y)*r>Math.abs(i-t.x)*c){let x=a.y<t.y?t.y-c-l:l-c-t.y;n=o*x/u;const w={x:a.x<t.x?a.x+n:a.x-o+n,y:a.y<t.y?a.y+u-x:a.y-u+x};return n===0&&(w.x=t.x,w.y=t.y),o===0&&(w.x=t.x),u===0&&(w.y=t.y),L.debug(`abc89 topp/bott calc, Q ${u}, q ${x}, R ${o}, r ${n}`,w),w}else{a.x<t.x?n=t.x-r-i:n=i-r-t.x;let x=u*n/o,w=a.x<t.x?a.x+o-n:a.x-o+n,b=a.y<t.y?a.y+x:a.y-x;return L.debug(`sides calc abc89, Q ${u}, q ${x}, R ${o}, r ${n}`,{_x:w,_y:b}),n===0&&(w=t.x,b=t.y),o===0&&(w=t.x),u===0&&(b=t.y),{x:w,y:b}}}," intersection "),Rt=d((e,t)=>{L.debug(" abc88 cutPathAtIntersect ",e,t);let a=[],i=e[0],l=!1;return e.forEach(s=>{if(!hr(t,s)&&!l){const r=dr(t,i,s);let n=!1;a.forEach(c=>{n=n||c.x===r.x&&c.y===r.y}),a.some(c=>c.x===r.x&&c.y===r.y)||a.push(r),l=!0}else i=s,l||a.push(s)}),a}," cutPathAtIntersect "),gr=d(function(e,t,a,i,l,s,r){let n=a.points;L.debug(" abc88 InsertEdge : edge = ",a," e = ",t);let c=!1;const u=s.node(t.v);var o=s.node(t.w);o?.intersect&&u?.intersect&&(n=n.slice(1,a.points.length-1),n.unshift(u.intersect(n[0])),n.push(o.intersect(n[n.length-1]))),a.toCluster&&(L.debug(" to cluster abc88 ",i[a.toCluster]),n=Rt(a.points,i[a.toCluster].node),c=!0),a.fromCluster&&(L.debug(" from cluster abc88 ",i[a.fromCluster]),n=Rt(n.reverse(),i[a.fromCluster].node).reverse(),c=!0);const x=n.filter(y=>!Number.isNaN(y.y));let w=fe;a.curve&&(l===" graph "||l===" flowchart ")&&(w=a.curve);const{x:b,y:S}=ue(a),v=pe().x(b).y(S).curve(w);let k;switch(a.thickness){case" normal ":k=" edge - thickness - normal ";break;case" thick ":k=" edge - thickness - thick ";break;case" invisible ":k=" edge - thickness - thick ";break;default:k=""}switch(a.pattern){case" solid ":k+=" edge - pattern - solid ";break;case" dotted ":k+=" edge - pattern - dotted ";break;case" dashed ":k+=" edge - pattern - dashed ";break}const B=e.append(" path ").attr(" d ",v(x)).attr(" id ",a.id).attr(" class "," "+k+(a.classes?" "+a.classes:"")).attr(" style ",a.style);let _="";(R().flowchart.arrowMarkerAbsolute||R().state.arrowMarkerAbsolute)&&(_=xe(!0)),nr(B,a,_,r,l);let D={};return c&&(D.updatedPath=n),D.originalPath=a.points,D}," insertEdge "),ur=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 "),pr=d((e,t,a)=>{const i=ur(e),l=2,s=t.height+2*a.padding,r=s/l,n=t.width+2*r+a.padding,c=a.padding/2;return i.has(" right ")&&i.has(" left ")&&i.has(" up ")&&i.has(" down ")?[{x:0,y:0},{x:r,y:0},{x:n/2,y:2*c},{x:n-r,y:0},{x:n,y:0},{x:n,y:-s/3},{x:n+2*c,y:-s/2},{x:n,y:-2*s/3},{x:n,y:-s},{x:n-r,y:-s},{x:n/2,y:-s-2*c},{x:r,y:-s},{x:0,y:-s},{x:0,y:-2*s/3},{x:-2*c,y:-s/2},{x:0,y:-s/3}]:i.has(" right ")&&i.has(" left ")&&i.has(" up ")?[{x:r,y:0},{x:n-r,y:0},{x:n,y:-s/2},{x:n-r,y:-s},{x:r,y:-s},{x:0,y:-s/2}]:i.has(" right ")&&i.has(" left ")&&i.has(" down ")?[{x:0,y:0},{x:r,y:-s},{x:n-r,y:-s},{x:n,y:0}]:i.has(" right ")&&i.has(" up ")&&i.has(" down ")?[{x:0,y:0},{x:n,y:-r},{x:n,y:-s+r},{x:0,y:-s}]:i.has(" left ")&&i.has(" up ")&&i.has(" down ")?[{x:n,y:0},{x:0,y:-r},{x:0,y:-s+r},{x:n,y:-s}]:i.has(" right ")&&i.has(" left ")?[{x:r,y:0},{x:r,y:-c},{x:n-r,y:-c},{x:n-r,y:0},{x:n,y:-s/2},{x:n-r,y:-s},{x:n-r,y:-s+c},{x:r,y:-s+c},{x:r,y:-s},{x:0,y:-s/2}]:i.has(" up ")&&i.has(" down ")?[{x:n/2,y:0},{x:0,y:-c},{x:r,y:-c},{x:r,y:-s+c},{x:0,y:-s+c},{x:n/2,y:-s},{x:n,y:-s+c},{x:n-r,y:-s+c},{x:n-r,y:-c},{x:n,y:-c}]:i.has(" right ")&&i.has(" up ")?[{x:0,y:0},{x:n,y:-r},{x:0,y:-s}]:i.has(" right ")&&i.has(" down ")?[{x:0,y:0},{x:n,y:0},{x:0,y:-s}]:i.has(" left ")&&i.has(" up ")?[{x:n,y:0},{x:0,y:-r},{x:n,y:-s}]:i.has(" left ")&&i.has(" down ")?[{x:n,y:0},{x:0,y:0},{x:n,y:-s}]:i.has(" right ")?[{x:r,y:-c},{x:r,y:-c},{x:n-r,y:-c},{x:n-r,y:0},{x:n,y:-s/2},{x:n-r,y:-s},{x:n-r,y:-s+c},{x:r,y:-s+c},{x:r,y:-s+c}]:i.has(" left ")?[{x:r,y:0},{x:r,y:-c},{x:n-r,y:-c},{x:n-r,y:-s+c},{x:r,y:-s+c},{x:r,y:-s},{x:0,y:-s/2}]:i.has(" up " ) ? [{ x : r , y :- c },{ x : r , y :- s + c },{ x : 0 , y :- s + c },{ x : n / 2 , y :- s },{ x : n , y :- s + c },{ x : n - r , y :- s + c