mermaid
Version:
Markdown-ish syntax for generating flowcharts, mindmaps, sequence diagrams, class diagrams, gantt charts, git graphs and more.
8 lines (7 loc) • 40.8 kB
JavaScript
import{a as qt}from"./chunk-Y3FQM624.mjs";import{b as $t}from"./chunk-SZQNAPRP.mjs";import"./chunk-MXWVPPQS.mjs";import{o as St}from"./chunk-ENMKPL7Y.mjs";import"./chunk-STOV2HOB.mjs";import{A as Ot,O as Wt,S as Ft,T as Nt,U as jt,V as Gt,W as Ht,X as Ut,Y as Dt,h as Mt,j as zt,t as lt}from"./chunk-KEUXMURM.mjs";import{H as kt,b as ot,n as Tt,o as wt}from"./chunk-LIEV3EAG.mjs";import{a as s}from"./chunk-AQ6EADP3.mjs";var Rt=(function(){var i=s(function(Y,o,c,p){for(c=c||{},p=Y.length;p--;c[Y[p]]=o);return c},"o"),t=[1,10,12,14,16,18,19,21,23],e=[2,6],a=[1,3],n=[1,5],l=[1,6],h=[1,7],b=[1,5,10,12,14,16,18,19,21,23,36,37,38],y=[1,25],R=[1,26],_=[1,28],P=[1,29],X=[1,30],M=[1,31],z=[1,32],v=[1,33],O=[1,34],W=[1,35],F=[1,36],f=[1,37],L=[1,43],g=[1,42],j=[1,47],B=[1,50],C=[1,10,12,14,16,18,19,21,23,36,37,38],G=[1,10,12,14,16,18,19,21,23,24,26,28,29,36,37,38],k=[1,10,12,14,16,18,19,21,23,24,26,28,29,36,37,38,42,43,44,45,46,47,48,49,50,51],q=[1,65],T=[26,28],d={trace:s(function(){},"trace"),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,dataPoints:25,SQUARE_BRACES_END:26,dataPoint:27,COMMA:28,NUMBER_WITH_DECIMAL:29,STR:30,xAxisData:31,bandData:32,ARROW_DELIMITER:33,commaSeparatedTexts:34,yAxisData:35,NEWLINE:36,SEMI:37,EOF:38,alphaNum:39,MD_STR:40,alphaNumToken:41,AMP:42,NUM:43,ALPHA:44,PLUS:45,EQUALS:46,MULT:47,DOT:48,BRKT:49,MINUS:50,UNDERSCORE:51,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",28:"COMMA",29:"NUMBER_WITH_DECIMAL",30:"STR",33:"ARROW_DELIMITER",36:"NEWLINE",37:"SEMI",38:"EOF",40:"MD_STR",42:"AMP",43:"NUM",44:"ALPHA",45:"PLUS",46:"EQUALS",47:"MULT",48:"DOT",49:"BRKT",50:"MINUS",51:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[27,2],[27,1],[13,1],[13,2],[13,1],[31,1],[31,3],[32,3],[34,3],[34,1],[15,1],[15,2],[15,1],[35,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[39,1],[39,2],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1]],performAction:s(function(o,c,p,u,A,r,H){var x=r.length-1;switch(A){case 5:u.setOrientation(r[x]);break;case 9:u.setDiagramTitle(r[x].text.trim());break;case 12:u.setLineData({text:"",type:"text"},r[x]);break;case 13:u.setLineData(r[x-1],r[x]);break;case 14:u.setBarData({text:"",type:"text"},r[x]);break;case 15:u.setBarData(r[x-1],r[x]);break;case 16:this.$=r[x].trim(),u.setAccTitle(this.$);break;case 17:case 18:this.$=r[x].trim(),u.setAccDescription(this.$);break;case 19:this.$=r[x-1];break;case 20:case 30:this.$=[r[x-2],...r[x]];break;case 21:case 31:this.$=[r[x]];break;case 22:this.$={value:Number(r[x-1]),label:r[x]};break;case 23:this.$={value:Number(r[x]),label:""};break;case 24:u.setXAxisTitle(r[x]);break;case 25:u.setXAxisTitle(r[x-1]);break;case 26:u.setXAxisTitle({type:"text",text:""});break;case 27:u.setXAxisBand(r[x]);break;case 28:u.setXAxisRangeData(Number(r[x-2]),Number(r[x]));break;case 29:this.$=r[x-1];break;case 32:u.setYAxisTitle(r[x]);break;case 33:u.setYAxisTitle(r[x-1]);break;case 34:u.setYAxisTitle({type:"text",text:""});break;case 35:u.setYAxisRangeData(Number(r[x-2]),Number(r[x]));break;case 39:this.$={text:r[x],type:"text"};break;case 40:this.$={text:r[x],type:"text"};break;case 41:this.$={text:r[x],type:"markdown"};break;case 42:this.$=r[x];break;case 43:this.$=r[x-1]+""+r[x];break}},"anonymous"),table:[i(t,e,{3:1,4:2,7:4,5:a,36:n,37:l,38:h}),{1:[3]},i(t,e,{4:2,7:4,3:8,5:a,36:n,37:l,38:h}),i(t,e,{4:2,7:4,6:9,3:10,5:a,8:[1,11],36:n,37:l,38:h}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},i(b,[2,36]),i(b,[2,37]),i(b,[2,38]),{1:[2,1]},i(t,e,{4:2,7:4,3:21,5:a,36:n,37:l,38:h}),{1:[2,3]},i(b,[2,5]),i(t,[2,7],{4:22,36:n,37:l,38:h}),{11:23,30:y,39:24,40:R,41:27,42:_,43:P,44:X,45:M,46:z,47:v,48:O,49:W,50:F,51:f},{11:39,13:38,24:L,29:g,30:y,31:40,32:41,39:24,40:R,41:27,42:_,43:P,44:X,45:M,46:z,47:v,48:O,49:W,50:F,51:f},{11:45,15:44,29:j,30:y,35:46,39:24,40:R,41:27,42:_,43:P,44:X,45:M,46:z,47:v,48:O,49:W,50:F,51:f},{11:49,17:48,24:B,30:y,39:24,40:R,41:27,42:_,43:P,44:X,45:M,46:z,47:v,48:O,49:W,50:F,51:f},{11:52,17:51,24:B,30:y,39:24,40:R,41:27,42:_,43:P,44:X,45:M,46:z,47:v,48:O,49:W,50:F,51:f},{20:[1,53]},{22:[1,54]},i(C,[2,18]),{1:[2,2]},i(C,[2,8]),i(C,[2,9]),i(G,[2,39],{41:55,42:_,43:P,44:X,45:M,46:z,47:v,48:O,49:W,50:F,51:f}),i(G,[2,40]),i(G,[2,41]),i(k,[2,42]),i(k,[2,44]),i(k,[2,45]),i(k,[2,46]),i(k,[2,47]),i(k,[2,48]),i(k,[2,49]),i(k,[2,50]),i(k,[2,51]),i(k,[2,52]),i(k,[2,53]),i(C,[2,10]),i(C,[2,24],{32:41,31:56,24:L,29:g}),i(C,[2,26]),i(C,[2,27]),{33:[1,57]},{11:59,30:y,34:58,39:24,40:R,41:27,42:_,43:P,44:X,45:M,46:z,47:v,48:O,49:W,50:F,51:f},i(C,[2,11]),i(C,[2,32],{35:60,29:j}),i(C,[2,34]),{33:[1,61]},i(C,[2,12]),{17:62,24:B},{25:63,27:64,29:q},i(C,[2,14]),{17:66,24:B},i(C,[2,16]),i(C,[2,17]),i(k,[2,43]),i(C,[2,25]),{29:[1,67]},{26:[1,68]},{26:[2,31],28:[1,69]},i(C,[2,33]),{29:[1,70]},i(C,[2,13]),{26:[1,71]},{26:[2,21],28:[1,72]},i(T,[2,23],{30:[1,73]}),i(C,[2,15]),i(C,[2,28]),i(C,[2,29]),{11:59,30:y,34:74,39:24,40:R,41:27,42:_,43:P,44:X,45:M,46:z,47:v,48:O,49:W,50:F,51:f},i(C,[2,35]),i(C,[2,19]),{25:75,27:64,29:q},i(T,[2,22]),{26:[2,30]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],74:[2,30],75:[2,20]},parseError:s(function(o,c){if(c.recoverable)this.trace(o);else{var p=new Error(o);throw p.hash=c,p}},"parseError"),parse:s(function(o){var c=this,p=[0],u=[],A=[null],r=[],H=this.table,x="",st=0,Yt=0,It=0,le=2,Bt=1,he=r.slice.call(arguments,1),w=Object.create(this.lexer),U={yy:{}};for(var dt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,dt)&&(U.yy[dt]=this.yy[dt]);w.setInput(o,U.yy),U.yy.lexer=w,U.yy.parser=this,typeof w.yylloc>"u"&&(w.yylloc={});var bt=w.yylloc;r.push(bt);var ce=w.options&&w.options.ranges;typeof U.yy.parseError=="function"?this.parseError=U.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Re(E){p.length=p.length-2*E,A.length=A.length-E,r.length=r.length-E}s(Re,"popStack");function ge(){var E;return E=u.pop()||w.lex()||Bt,typeof E!="number"&&(E instanceof Array&&(u=E,E=u.pop()),E=c.symbols_[E]||E),E}s(ge,"lex");for(var S,yt,$,I,_e,Ct,Q={},nt,N,Vt,rt;;){if($=p[p.length-1],this.defaultActions[$]?I=this.defaultActions[$]:((S===null||typeof S>"u")&&(S=ge()),I=H[$]&&H[$][S]),typeof I>"u"||!I.length||!I[0]){var At="";rt=[];for(nt in H[$])this.terminals_[nt]&&nt>le&&rt.push("'"+this.terminals_[nt]+"'");w.showPosition?At="Parse error on line "+(st+1)+`:
`+w.showPosition()+`
Expecting `+rt.join(", ")+", got '"+(this.terminals_[S]||S)+"'":At="Parse error on line "+(st+1)+": Unexpected "+(S==Bt?"end of input":"'"+(this.terminals_[S]||S)+"'"),this.parseError(At,{text:w.match,token:this.terminals_[S]||S,line:w.yylineno,loc:bt,expected:rt})}if(I[0]instanceof Array&&I.length>1)throw new Error("Parse Error: multiple actions possible at state: "+$+", token: "+S);switch(I[0]){case 1:p.push(S),A.push(w.yytext),r.push(w.yylloc),p.push(I[1]),S=null,yt?(S=yt,yt=null):(Yt=w.yyleng,x=w.yytext,st=w.yylineno,bt=w.yylloc,It>0&&It--);break;case 2:if(N=this.productions_[I[1]][1],Q.$=A[A.length-N],Q._$={first_line:r[r.length-(N||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(N||1)].first_column,last_column:r[r.length-1].last_column},ce&&(Q._$.range=[r[r.length-(N||1)].range[0],r[r.length-1].range[1]]),Ct=this.performAction.apply(Q,[x,Yt,st,U.yy,I[1],A,r].concat(he)),typeof Ct<"u")return Ct;N&&(p=p.slice(0,-1*N*2),A=A.slice(0,-1*N),r=r.slice(0,-1*N)),p.push(this.productions_[I[1]][0]),A.push(Q.$),r.push(Q._$),Vt=H[p[p.length-2]][p[p.length-1]],p.push(Vt);break;case 3:return!0}}return!0},"parse")},V=(function(){var Y={EOF:1,parseError:s(function(c,p){if(this.yy.parser)this.yy.parser.parseError(c,p);else throw new Error(c)},"parseError"),setInput:s(function(o,c){return this.yy=c||this.yy||{},this._input=o,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:s(function(){var o=this._input[0];this.yytext+=o,this.yyleng++,this.offset++,this.match+=o,this.matched+=o;var c=o.match(/(?:\r\n?|\n).*/g);return c?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),o},"input"),unput:s(function(o){var c=o.length,p=o.split(/(?:\r\n?|\n)/g);this._input=o+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-c),this.offset-=c;var u=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),p.length-1&&(this.yylineno-=p.length-1);var A=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:p?(p.length===u.length?this.yylloc.first_column:0)+u[u.length-p.length].length-p[0].length:this.yylloc.first_column-c},this.options.ranges&&(this.yylloc.range=[A[0],A[0]+this.yyleng-c]),this.yyleng=this.yytext.length,this},"unput"),more:s(function(){return this._more=!0,this},"more"),reject:s(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:s(function(o){this.unput(this.match.slice(o))},"less"),pastInput:s(function(){var o=this.matched.substr(0,this.matched.length-this.match.length);return(o.length>20?"...":"")+o.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:s(function(){var o=this.match;return o.length<20&&(o+=this._input.substr(0,20-o.length)),(o.substr(0,20)+(o.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:s(function(){var o=this.pastInput(),c=new Array(o.length+1).join("-");return o+this.upcomingInput()+`
`+c+"^"},"showPosition"),test_match:s(function(o,c){var p,u,A;if(this.options.backtrack_lexer&&(A={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&&(A.yylloc.range=this.yylloc.range.slice(0))),u=o[0].match(/(?:\r\n?|\n).*/g),u&&(this.yylineno+=u.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:u?u[u.length-1].length-u[u.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+o[0].length},this.yytext+=o[0],this.match+=o[0],this.matches=o,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(o[0].length),this.matched+=o[0],p=this.performAction.call(this,this.yy,this,c,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),p)return p;if(this._backtrack){for(var r in A)this[r]=A[r];return!1}return!1},"test_match"),next:s(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var o,c,p,u;this._more||(this.yytext="",this.match="");for(var A=this._currentRules(),r=0;r<A.length;r++)if(p=this._input.match(this.rules[A[r]]),p&&(!c||p[0].length>c[0].length)){if(c=p,u=r,this.options.backtrack_lexer){if(o=this.test_match(p,A[r]),o!==!1)return o;if(this._backtrack){c=!1;continue}else return!1}else if(!this.options.flex)break}return c?(o=this.test_match(c,A[u]),o!==!1?o:!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:s(function(){var c=this.next();return c||this.lex()},"lex"),begin:s(function(c){this.conditionStack.push(c)},"begin"),popState:s(function(){var c=this.conditionStack.length-1;return c>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:s(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:s(function(c){return c=this.conditionStack.length-1-Math.abs(c||0),c>=0?this.conditionStack[c]:"INITIAL"},"topState"),pushState:s(function(c){this.begin(c)},"pushState"),stateStackSize:s(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:s(function(c,p,u,A){var r=A;switch(u){case 0:break;case 1:break;case 2:return this.popState(),36;break;case 3:return this.popState(),36;break;case 4:return 36;case 5:break;case 6:return 10;case 7:return this.pushState("acc_title"),19;break;case 8:return this.popState(),"acc_title_value";break;case 9:return this.pushState("acc_descr"),21;break;case 10:return this.popState(),"acc_descr_value";break;case 11:this.pushState("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 5;case 15:return 5;case 16:return 8;case 17:return this.pushState("axis_data"),"X_AXIS";break;case 18:return this.pushState("axis_data"),"Y_AXIS";break;case 19:return this.pushState("axis_band_data"),24;break;case 20:return 33;case 21:return this.pushState("data"),16;break;case 22:return this.pushState("data"),18;break;case 23:return this.pushState("data_inner"),24;break;case 24:return 29;case 25:return this.popState(),26;break;case 26:this.popState();break;case 27:this.pushState("string");break;case 28:this.popState();break;case 29:return"STR";case 30:return 24;case 31:return 26;case 32:return 44;case 33:return"COLON";case 34:return 45;case 35:return 28;case 36:return 46;case 37:return 47;case 38:return 49;case 39:return 51;case 40:return 48;case 41:return 42;case 42:return 50;case 43:return 43;case 44:break;case 45:return 37;case 46:return 38}},"anonymous"),rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:(\r?\n))/i,/^(?:(\r?\n))/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:\})/i,/^(?:[^\}]*)/i,/^(?:xychart-beta\b)/i,/^(?:xychart\b)/i,/^(?:(?:vertical|horizontal))/i,/^(?:x-axis\b)/i,/^(?:y-axis\b)/i,/^(?:\[)/i,/^(?:-->)/i,/^(?:line\b)/i,/^(?:bar\b)/i,/^(?:\[)/i,/^(?:[+-]?(?:\d+(?:\.\d+)?|\.\d+))/i,/^(?:\])/i,/^(?:(?:`\) \{ this\.pushState\(md_string\); \}\n<md_string>\(\?:\(\?!`"\)\.\)\+ \{ return MD_STR; \}\n<md_string>\(\?:`))/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s+)/i,/^(?:;)/i,/^(?:$)/i],conditions:{data_inner:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,18,21,22,24,25,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},data:{rules:[0,1,3,4,5,6,7,9,11,14,15,16,17,18,21,22,23,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},axis_band_data:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,18,21,22,25,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},axis_data:{rules:[0,1,2,4,5,6,7,9,11,14,15,16,17,18,19,20,21,22,24,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},title:{rules:[],inclusive:!1},md_string:{rules:[],inclusive:!1},string:{rules:[28,29],inclusive:!1},INITIAL:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,18,21,22,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0}}};return Y})();d.lexer=V;function D(){this.yy={}}return s(D,"Parser"),D.prototype=d,d.Parser=D,new D})();Rt.parser=Rt;var Qt=Rt;function _t(i){return i.type==="bar"}s(_t,"isBarPlot");function tt(i){return i.type==="band"}s(tt,"isBandAxisData");function K(i){return i.type==="linear"}s(K,"isLinearAxisData");var Z=class{constructor(t){this.parentGroup=t}static{s(this,"TextDimensionCalculatorWithFont")}getMaxDimension(t,e){if(!this.parentGroup)return{width:t.reduce((l,h)=>Math.max(h.length,l),0)*e,height:e};let a={width:0,height:0},n=this.parentGroup.append("g").attr("visibility","hidden").attr("font-size",e);for(let l of t){let h=$t(n,1,l),b=h?h.width:l.length*e,y=h?h.height:e;a.width=Math.max(a.width,b),a.height=Math.max(a.height,y)}return n.remove(),a}};var J=class{constructor(t,e,a,n){this.axisConfig=t;this.title=e;this.textDimensionCalculator=a;this.axisThemeConfig=n;this.boundingRect={x:0,y:0,width:0,height:0};this.axisPosition="left";this.showTitle=!1;this.showLabel=!1;this.showTick=!1;this.showAxisLine=!1;this.outerPadding=0;this.titleTextHeight=0;this.labelTextHeight=0;this.normalizedLabelRotationInRad=0;this.range=[0,10],this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left",this.normalizedLabelRotationInRad=this.axisConfig.labelRotation>=-90&&this.axisConfig.labelRotation<=90?this.axisConfig.labelRotation*Math.PI/180:0}static{s(this,"BaseAxis")}setRange(t){this.range=t,this.axisPosition==="left"||this.axisPosition==="right"?this.boundingRect.height=t[1]-t[0]:this.boundingRect.width=t[1]-t[0],this.recalculateScale()}getRange(){return[this.range[0]+this.outerPadding,this.range[1]-this.outerPadding]}setAxisPosition(t){this.axisPosition=t,this.setRange(this.range)}getTickDistance(){let t=this.getRange();return Math.abs(t[0]-t[1])/this.getTickValues().length}getAxisOuterPadding(){return this.outerPadding}getLabelDimension(){return this.textDimensionCalculator.getMaxDimension(this.getTickValues().map(t=>t.toString()),this.axisConfig.labelFontSize)}recalculateOuterPaddingToDrawBar(){.7*this.getTickDistance()>this.outerPadding*2&&(this.outerPadding=Math.floor(.7*this.getTickDistance()/2)),this.recalculateScale()}calculateSpaceIfDrawnHorizontally(t){let e=t.height;if(this.axisConfig.showAxisLine&&e>this.axisConfig.axisLineWidth&&(e-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){let a=this.getLabelDimension(),n=.2*t.width;this.outerPadding=Math.min(a.width/2,n);let l=a.height;this.axisPosition==="bottom"&&this.normalizedLabelRotationInRad!==0&&(l=Math.max(l,Math.abs(Math.sin(this.normalizedLabelRotationInRad)*a.width)+Math.abs(Math.cos(this.normalizedLabelRotationInRad)*a.height))),l+=this.axisConfig.labelPadding*2,this.labelTextHeight=a.height,l<=e&&(e-=l,this.showLabel=!0)}if(this.axisConfig.showTick&&e>=this.axisConfig.tickLength&&(this.showTick=!0,e-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){let a=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),n=a.height+this.axisConfig.titlePadding*2;this.titleTextHeight=a.height,n<=e&&(e-=n,this.showTitle=!0)}this.boundingRect.width=t.width,this.boundingRect.height=t.height-e}calculateSpaceIfDrawnVertical(t){let e=t.width;if(this.axisConfig.showAxisLine&&e>this.axisConfig.axisLineWidth&&(e-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){let a=this.getLabelDimension(),n=.2*t.height;this.outerPadding=Math.min(a.height/2,n);let l=a.width+this.axisConfig.labelPadding*2;l<=e&&(e-=l,this.showLabel=!0)}if(this.axisConfig.showTick&&e>=this.axisConfig.tickLength&&(this.showTick=!0,e-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){let a=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),n=a.height+this.axisConfig.titlePadding*2;this.titleTextHeight=a.height,n<=e&&(e-=n,this.showTitle=!0)}this.boundingRect.width=t.width-e,this.boundingRect.height=t.height}calculateSpace(t){return this.axisPosition==="left"||this.axisPosition==="right"?this.calculateSpaceIfDrawnVertical(t):this.calculateSpaceIfDrawnHorizontally(t),this.recalculateScale(),{width:this.boundingRect.width,height:this.boundingRect.height}}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}calculateOffsetByRotation(t){let e=this.normalizedLabelRotationInRad;return e===0?0:Math.sin(e)*this.getLabelDimension()[t]/2}getDrawableElementsForLeftAxis(){let t=[];if(this.showAxisLine){let e=this.boundingRect.x+this.boundingRect.width-this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["left-axis","axisl-line"],data:[{path:`M ${e},${this.boundingRect.y} L ${e},${this.boundingRect.y+this.boundingRect.height} `,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["left-axis","label"],data:this.getTickValues().map(e=>({text:e.toString(),x:this.boundingRect.x+this.boundingRect.width-(this.showLabel?this.axisConfig.labelPadding:0)-(this.showTick?this.axisConfig.tickLength:0)-(this.showAxisLine?this.axisConfig.axisLineWidth:0),y:this.getScaleValue(e),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"middle",horizontalPos:"right"}))}),this.showTick){let e=this.boundingRect.x+this.boundingRect.width-(this.showAxisLine?this.axisConfig.axisLineWidth:0);t.push({type:"path",groupTexts:["left-axis","ticks"],data:this.getTickValues().map(a=>({path:`M ${e},${this.getScaleValue(a)} L ${e-this.axisConfig.tickLength},${this.getScaleValue(a)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&t.push({type:"text",groupTexts:["left-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.axisConfig.titlePadding,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:270,verticalPos:"top",horizontalPos:"center"}]}),t}getDrawableElementsForBottomAxis(){let t=[];if(this.showAxisLine){let e=this.boundingRect.y+this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["bottom-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${e} L ${this.boundingRect.x+this.boundingRect.width},${e}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["bottom-axis","label"],data:this.getTickValues().map(e=>({text:e.toString(),x:this.getScaleValue(e)+this.calculateOffsetByRotation("height"),y:this.boundingRect.y+this.axisConfig.labelPadding+(this.showTick?this.axisConfig.tickLength:0)+(this.showAxisLine?this.axisConfig.axisLineWidth:0)+Math.abs(this.calculateOffsetByRotation("width")),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:this.normalizedLabelRotationInRad*180/Math.PI,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){let e=this.boundingRect.y+(this.showAxisLine?this.axisConfig.axisLineWidth:0);t.push({type:"path",groupTexts:["bottom-axis","ticks"],data:this.getTickValues().map(a=>({path:`M ${this.getScaleValue(a)},${e} L ${this.getScaleValue(a)},${e+this.axisConfig.tickLength}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&t.push({type:"text",groupTexts:["bottom-axis","title"],data:[{text:this.title,x:this.range[0]+(this.range[1]-this.range[0])/2,y:this.boundingRect.y+this.boundingRect.height-this.axisConfig.titlePadding-this.titleTextHeight,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),t}getDrawableElementsForTopAxis(){let t=[];if(this.showAxisLine){let e=this.boundingRect.y+this.boundingRect.height-this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["top-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${e} L ${this.boundingRect.x+this.boundingRect.width},${e}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["top-axis","label"],data:this.getTickValues().map(e=>({text:e.toString(),x:this.getScaleValue(e),y:this.boundingRect.y+(this.showTitle?this.titleTextHeight+this.axisConfig.titlePadding*2:0)+this.axisConfig.labelPadding,fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){let e=this.boundingRect.y;t.push({type:"path",groupTexts:["top-axis","ticks"],data:this.getTickValues().map(a=>({path:`M ${this.getScaleValue(a)},${e+this.boundingRect.height-(this.showAxisLine?this.axisConfig.axisLineWidth:0)} L ${this.getScaleValue(a)},${e+this.boundingRect.height-this.axisConfig.tickLength-(this.showAxisLine?this.axisConfig.axisLineWidth:0)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&t.push({type:"text",groupTexts:["top-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.axisConfig.titlePadding,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),t}getDrawableElements(){if(this.axisPosition==="left")return this.getDrawableElementsForLeftAxis();if(this.axisPosition==="right")throw Error("Drawing of right axis is not implemented");return this.axisPosition==="bottom"?this.getDrawableElementsForBottomAxis():this.axisPosition==="top"?this.getDrawableElementsForTopAxis():[]}};var ht=class extends J{static{s(this,"BandAxis")}constructor(t,e,a,n,l){super(t,n,l,e),this.categories=a,this.scale=Tt().domain(this.categories).range(this.getRange())}setRange(t){super.setRange(t)}recalculateScale(){this.scale=Tt().domain(this.categories).range(this.getRange()).paddingInner(1).paddingOuter(0).align(.5),ot.trace("BandAxis axis final categories, range: ",this.categories,this.getRange())}getTickValues(){return this.categories}getScaleValue(t){return this.scale(t)??this.getRange()[0]}};var ct=class extends J{static{s(this,"LinearAxis")}constructor(t,e,a,n,l){super(t,n,l,e),this.domain=a,this.scale=wt().domain(this.domain).range(this.getRange())}getTickValues(){return this.scale.ticks()}recalculateScale(){let t=[...this.domain];this.axisPosition==="left"&&t.reverse(),this.scale=wt().domain(t).range(this.getRange())}getScaleValue(t){return this.scale(t)}};function Pt(i,t,e,a){let n=new Z(a);return tt(i)?new ht(t,e,i.categories,i.title,n):new ct(t,e,[i.min,i.max],i.title,n)}s(Pt,"getAxis");var vt=class{constructor(t,e,a,n){this.textDimensionCalculator=t;this.chartConfig=e;this.chartData=a;this.chartThemeConfig=n;this.boundingRect={x:0,y:0,width:0,height:0},this.showChartTitle=!1}static{s(this,"ChartTitle")}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}calculateSpace(t){let e=this.textDimensionCalculator.getMaxDimension([this.chartData.title],this.chartConfig.titleFontSize),a=Math.max(e.width,t.width),n=e.height+2*this.chartConfig.titlePadding;return e.width<=a&&e.height<=n&&this.chartConfig.showTitle&&this.chartData.title&&(this.boundingRect.width=a,this.boundingRect.height=n,this.showChartTitle=!0),{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){let t=[];return this.showChartTitle&&t.push({groupTexts:["chart-title"],type:"text",data:[{fontSize:this.chartConfig.titleFontSize,text:this.chartData.title,verticalPos:"middle",horizontalPos:"center",x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.chartThemeConfig.titleColor,rotation:0}]}),t}};function Kt(i,t,e,a){let n=new Z(a);return new vt(n,i,t,e)}s(Kt,"getChartTitleComponent");var gt=class{constructor(t,e,a,n,l){this.plotData=t;this.xAxis=e;this.yAxis=a;this.orientation=n;this.plotIndex=l}static{s(this,"LinePlot")}getDrawableElement(){let t=this.plotData.data.map(n=>[this.xAxis.getScaleValue(n[0]),this.yAxis.getScaleValue(n[1])]),e;if(this.orientation==="horizontal"?e=kt().y(n=>n[0]).x(n=>n[1])(t):e=kt().x(n=>n[0]).y(n=>n[1])(t),!e)return[];let a=[{groupTexts:["plot",`line-plot-${this.plotIndex}`],type:"path",data:[{path:e,strokeFill:this.plotData.strokeFill,strokeWidth:this.plotData.strokeWidth}]}];if(this.plotData.pointLabels&&this.plotData.pointLabels.length>0){let h=[];for(let[b,[y,R]]of t.entries()){let _=this.plotData.pointLabels[b];_&&(this.orientation==="horizontal"?h.push({x:R+10,y,text:_,fill:this.plotData.strokeFill,verticalPos:"middle",horizontalPos:"left",fontSize:12,rotation:0}):h.push({x:y,y:R-10,text:_,fill:this.plotData.strokeFill,verticalPos:"middle",horizontalPos:"center",fontSize:12,rotation:0}))}h.length>0&&a.push({groupTexts:["plot",`line-plot-${this.plotIndex}`,"labels"],type:"text",data:h})}return a}};var pt=class{constructor(t,e,a,n,l,h){this.barData=t;this.boundingRect=e;this.xAxis=a;this.yAxis=n;this.orientation=l;this.plotIndex=h}static{s(this,"BarPlot")}getDrawableElement(){let t=this.barData.data.map(l=>[this.xAxis.getScaleValue(l[0]),this.yAxis.getScaleValue(l[1])]),a=Math.min(this.xAxis.getAxisOuterPadding()*2,this.xAxis.getTickDistance())*(1-.05),n=a/2;return this.orientation==="horizontal"?[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:t.map(l=>({x:this.boundingRect.x,y:l[0]-n,height:a,width:l[1]-this.boundingRect.x,fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]:[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:t.map(l=>({x:l[0]-n,y:l[1],width:a,height:this.boundingRect.y+this.boundingRect.height-l[1],fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]}};var Lt=class{constructor(t,e,a){this.chartConfig=t;this.chartData=e;this.chartThemeConfig=a;this.boundingRect={x:0,y:0,width:0,height:0}}static{s(this,"BasePlot")}setAxes(t,e){this.xAxis=t,this.yAxis=e}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}calculateSpace(t){return this.boundingRect.width=t.width,this.boundingRect.height=t.height,{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){if(!(this.xAxis&&this.yAxis))throw Error("Axes must be passed to render Plots");let t=[];for(let[e,a]of this.chartData.plots.entries())switch(a.type){case"line":{let n=new gt(a,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,e);t.push(...n.getDrawableElement())}break;case"bar":{let n=new pt(a,this.boundingRect,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,e);t.push(...n.getDrawableElement())}break}return t}};function Zt(i,t,e){return new Lt(i,t,e)}s(Zt,"getPlotComponent");var ut=class{constructor(t,e,a,n){this.chartConfig=t;this.chartData=e;this.componentStore={title:Kt(t,e,a,n),plot:Zt(t,e,a),xAxis:Pt(e.xAxis,t.xAxis,{titleColor:a.xAxisTitleColor,labelColor:a.xAxisLabelColor,tickColor:a.xAxisTickColor,axisLineColor:a.xAxisLineColor},n),yAxis:Pt(e.yAxis,t.yAxis,{titleColor:a.yAxisTitleColor,labelColor:a.yAxisLabelColor,tickColor:a.yAxisTickColor,axisLineColor:a.yAxisLineColor},n)}}static{s(this,"Orchestrator")}calculateVerticalSpace(){let t=this.chartConfig.width,e=this.chartConfig.height,a=0,n=0,l=Math.floor(t*this.chartConfig.plotReservedSpacePercent/100),h=Math.floor(e*this.chartConfig.plotReservedSpacePercent/100),b=this.componentStore.plot.calculateSpace({width:l,height:h});t-=b.width,e-=b.height,b=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:e}),n=b.height,e-=b.height,this.componentStore.xAxis.setAxisPosition("bottom"),b=this.componentStore.xAxis.calculateSpace({width:t,height:e}),e-=b.height,this.componentStore.yAxis.setAxisPosition("left"),b=this.componentStore.yAxis.calculateSpace({width:t,height:e}),a=b.width,t-=b.width,t>0&&(l+=t,t=0),e>0&&(h+=e,e=0),this.componentStore.plot.calculateSpace({width:l,height:h}),this.componentStore.plot.setBoundingBoxXY({x:a,y:n}),this.componentStore.xAxis.setRange([a,a+l]),this.componentStore.xAxis.setBoundingBoxXY({x:a,y:n+h}),this.componentStore.yAxis.setRange([n,n+h]),this.componentStore.yAxis.setBoundingBoxXY({x:0,y:n}),this.chartData.plots.some(y=>_t(y))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateHorizontalSpace(){let t=this.chartConfig.width,e=this.chartConfig.height,a=0,n=0,l=0,h=Math.floor(t*this.chartConfig.plotReservedSpacePercent/100),b=Math.floor(e*this.chartConfig.plotReservedSpacePercent/100),y=this.componentStore.plot.calculateSpace({width:h,height:b});t-=y.width,e-=y.height,y=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:e}),a=y.height,e-=y.height,this.componentStore.xAxis.setAxisPosition("left"),y=this.componentStore.xAxis.calculateSpace({width:t,height:e}),t-=y.width,n=y.width,this.componentStore.yAxis.setAxisPosition("top"),y=this.componentStore.yAxis.calculateSpace({width:t,height:e}),e-=y.height,l=a+y.height,t>0&&(h+=t,t=0),e>0&&(b+=e,e=0),this.componentStore.plot.calculateSpace({width:h,height:b}),this.componentStore.plot.setBoundingBoxXY({x:n,y:l}),this.componentStore.yAxis.setRange([n,n+h]),this.componentStore.yAxis.setBoundingBoxXY({x:n,y:a}),this.componentStore.xAxis.setRange([l,l+b]),this.componentStore.xAxis.setBoundingBoxXY({x:0,y:l}),this.chartData.plots.some(R=>_t(R))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateSpace(){this.chartConfig.chartOrientation==="horizontal"?this.calculateHorizontalSpace():this.calculateVerticalSpace()}getDrawableElement(){this.calculateSpace();let t=[];this.componentStore.plot.setAxes(this.componentStore.xAxis,this.componentStore.yAxis);for(let e of Object.values(this.componentStore))t.push(...e.getDrawableElements());return t}};var xt=class{static{s(this,"XYChartBuilder")}static build(t,e,a,n){return new ut(t,e,a,n).getDrawableElement()}};var et=0,Jt,it=ee(),at=te(),m=ie(),Et=at.plotColorPalette.split(",").map(i=>i.trim()),mt=!1,Xt=!1;function te(){let i=Mt(),t=lt();return St(i.xyChart,t.themeVariables.xyChart)}s(te,"getChartDefaultThemeConfig");function ee(){let i=lt();return St(zt.xyChart,i.xyChart)}s(ee,"getChartDefaultConfig");function ie(){return{yAxis:{type:"linear",title:"",min:1/0,max:-1/0},xAxis:{type:"band",title:"",categories:[]},title:"",plots:[]}}s(ie,"getChartDefaultData");function ft(i){let t=lt();return Ot(i.trim(),t)}s(ft,"textSanitizer");function pe(i){Jt=i}s(pe,"setTmpSVGG");function ue(i){i==="horizontal"?it.chartOrientation="horizontal":it.chartOrientation="vertical"}s(ue,"setOrientation");function xe(i){m.xAxis.title=ft(i.text)}s(xe,"setXAxisTitle");function ae(i,t){m.xAxis={type:"linear",title:m.xAxis.title,min:i,max:t},mt=!0}s(ae,"setXAxisRangeData");function me(i){m.xAxis={type:"band",title:m.xAxis.title,categories:i.map(t=>ft(t.text))},mt=!0}s(me,"setXAxisBand");function fe(i){m.yAxis.title=ft(i.text)}s(fe,"setYAxisTitle");function de(i,t){m.yAxis={type:"linear",title:m.yAxis.title,min:i,max:t},Xt=!0}s(de,"setYAxisRangeData");function be(i){let t=Math.min(...i),e=Math.max(...i),a=K(m.yAxis)?m.yAxis.min:1/0,n=K(m.yAxis)?m.yAxis.max:-1/0;m.yAxis={type:"linear",title:m.yAxis.title,min:Math.min(a,t),max:Math.max(n,e)}}s(be,"setYAxisRangeFromPlotData");function se(i){let t=[];if(i.length===0)return t;if(!mt){let e=K(m.xAxis)?m.xAxis.min:1/0,a=K(m.xAxis)?m.xAxis.max:-1/0;ae(Math.min(e,1),Math.max(a,i.length))}if(tt(m.xAxis)&&i.length>m.xAxis.categories.length&&(i=i.slice(0,m.xAxis.categories.length)),Xt||be(i),tt(m.xAxis)&&(t=m.xAxis.categories.map((e,a)=>[e,i[a]])),K(m.xAxis)){let e=m.xAxis.min,a=m.xAxis.max,n=(a-e)/(i.length-1),l=[];for(let h=e;h<=a;h+=n)l.push(`${h}`);t=l.map((h,b)=>[h,i[b]])}return t}s(se,"transformDataWithoutCategory");function ne(i){return Et[i===0?0:i%Et.length]}s(ne,"getPlotColorFromPalette");function ye(i,t){let e=t.map(h=>h.value),a=t.map(h=>h.label?ft(h.label):""),n=se(e),l=a.some(h=>h!=="");m.plots.push({type:"line",strokeFill:ne(et),strokeWidth:2,data:n,...l?{pointLabels:a}:{}}),et++}s(ye,"setLineData");function Ce(i,t){let e=t.map(n=>n.value),a=se(e);m.plots.push({type:"bar",fill:ne(et),data:a}),et++}s(Ce,"setBarData");function Ae(){if(m.plots.length===0)throw Error("No Plot to render, please provide a plot with some data");return m.title=Dt(),xt.build(it,m,at,Jt)}s(Ae,"getDrawableElem");function De(){return at}s(De,"getChartThemeConfig");function Te(){return it}s(Te,"getChartConfig");function we(){return m}s(we,"getXYChartData");var ke=s(function(){Ft(),et=0,it=ee(),m=ie(),at=te(),Et=at.plotColorPalette.split(",").map(i=>i.trim()),mt=!1,Xt=!1},"clear"),re={getDrawableElem:Ae,clear:ke,setAccTitle:Nt,getAccTitle:jt,setDiagramTitle:Ut,getDiagramTitle:Dt,getAccDescription:Ht,setAccDescription:Gt,setOrientation:ue,setXAxisTitle:xe,setXAxisRangeData:ae,setXAxisBand:me,setYAxisTitle:fe,setYAxisRangeData:de,setLineData:ye,setBarData:Ce,setTmpSVGG:pe,getChartThemeConfig:De,getChartConfig:Te,getXYChartData:we};var Se=s((i,t,e,a)=>{let n=a.db,l=n.getChartThemeConfig(),h=n.getChartConfig(),b=n.getXYChartData().plots[0].data.map(f=>f[1]);function y(f){return f==="top"?"text-before-edge":"middle"}s(y,"getDominantBaseLine");function R(f){return f==="left"?"start":f==="right"?"end":"middle"}s(R,"getTextAnchor");function _(f){return`translate(${f.x}, ${f.y}) rotate(${f.rotation||0})`}s(_,"getTextTransformation"),ot.debug(`Rendering xychart chart
`+i);let P=qt(t),X=P.append("g").attr("class","main"),M=X.append("rect").attr("width",h.width).attr("height",h.height).attr("class","background");Wt(P,h.height,h.width,!0),P.attr("viewBox",`0 0 ${h.width} ${h.height}`),M.attr("fill",l.backgroundColor),n.setTmpSVGG(P.append("g").attr("class","mermaid-tmp-group"));let z=n.getDrawableElem(),v={};function O(f){let L=X,g="";for(let[j]of f.entries()){let B=X;j>0&&v[g]&&(B=v[g]),g+=f[j],L=v[g],L||(L=v[g]=B.append("g").attr("class",f[j]))}return L}s(O,"getGroup");for(let f of z){if(f.data.length===0)continue;let L=O(f.groupTexts);switch(f.type){case"rect":if(L.selectAll("rect").data(f.data).enter().append("rect").attr("x",g=>g.x).attr("y",g=>g.y).attr("width",g=>g.width).attr("height",g=>g.height).attr("fill",g=>g.fill).attr("stroke",g=>g.strokeFill).attr("stroke-width",g=>g.strokeWidth),h.showDataLabel){let g=h.showDataLabelOutsideBar;if(h.chartOrientation==="horizontal"){let G=function(d,V){let{data:D,label:Y}=d;return V*Y.length*.7<=D.width-10};var W=G;s(G,"fitsHorizontally");let j=.7,B=10,C=f.data.map((d,V)=>({data:d,label:b[V].toString()})).filter(d=>d.data.width>0&&d.data.height>0),k=C.map(d=>{let{data:V}=d,D=V.height*.7;for(;!G(d,D)&&D>0;)D-=1;return D}),q=Math.floor(Math.min(...k)),T=s(d=>g?d.data.x+d.data.width+10:d.data.x+d.data.width-10,"determineLabelXPosition");L.selectAll("text").data(C).enter().append("text").attr("x",T).attr("y",d=>d.data.y+d.data.height/2).attr("text-anchor",g?"start":"end").attr("dominant-baseline","middle").attr("fill",l.dataLabelColor).attr("font-size",`${q}px`).text(d=>d.label)}else{let C=function(T,d,V){let{data:D,label:Y}=T,c=d*Y.length*.7,p=D.x+D.width/2,u=p-c/2,A=p+c/2,r=u>=D.x&&A<=D.x+D.width,H=D.y+V+d<=D.y+D.height;return r&&H};var F=C;s(C,"fitsInBar");let j=10,B=f.data.map((T,d)=>({data:T,label:b[d].toString()})).filter(T=>T.data.width>0&&T.data.height>0),G=B.map(T=>{let{data:d,label:V}=T,D=d.width/(V.length*.7);for(;!C(T,D,10)&&D>0;)D-=1;return D}),k=Math.floor(Math.min(...G)),q=s(T=>g?T.data.y-10:T.data.y+10,"determineLabelYPosition");L.selectAll("text").data(B).enter().append("text").attr("x",T=>T.data.x+T.data.width/2).attr("y",q).attr("text-anchor","middle").attr("dominant-baseline",g?"auto":"hanging").attr("fill",l.dataLabelColor).attr("font-size",`${k}px`).text(T=>T.label)}}break;case"text":L.selectAll("text").data(f.data).enter().append("text").attr("x",0).attr("y",0).attr("fill",g=>g.fill).attr("font-size",g=>g.fontSize).attr("dominant-baseline",g=>y(g.verticalPos)).attr("text-anchor",g=>R(g.horizontalPos)).attr("transform",g=>_(g)).text(g=>g.text);break;case"path":L.selectAll("path").data(f.data).enter().append("path").attr("d",g=>g.path).attr("fill",g=>g.fill?g.fill:"none").attr("stroke",g=>g.strokeFill).attr("stroke-width",g=>g.strokeWidth);break}}},"draw"),oe={draw:Se};var Mi={parser:Qt,db:re,renderer:oe};export{Mi as diagram};