webapp.xychartDiagram-f11f50a6.50ed85e3.js.map Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of langgraph4j-studio Show documentation
Show all versions of langgraph4j-studio Show documentation
an **embed playground webapp** to run a Langgraph4j workflow in visual way
{"mappings":"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EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,CAAE,EAAG,CAAC,EAAG,EAAE,AAAC,EAAG,EAAE,EAAK,EAAK,CAAE,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,CAAI,GAAI,CAAE,EAAG,CAAC,EAAG,EAAE,AAAC,EAAG,EAAE,EAAK,CAAC,EAAG,EAAE,EAAG,EAAE,EAAK,CAAC,EAAG,EAAE,CAAE,CAAE,EAAG,GAAI,GAAI,EAAK,GAAI,EAAK,GAAI,CAAI,GAAI,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,EAAK,GAAI,EAAK,GAAI,GAAI,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,CAAI,EAAG,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,EAAK,GAAI,EAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAK,GAAI,EAAK,GAAI,GAAI,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,CAAI,EAAG,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,EAAK,GAAI,GAAI,GAAI,GAAI,GAAI,EAAK,GAAI,EAAK,GAAI,GAAI,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,CAAI,EAAG,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,EAAK,GAAI,GAAI,GAAI,EAAK,GAAI,EAAK,GAAI,GAAI,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,CAAI,EAAG,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,EAAK,GAAI,GAAI,GAAI,EAAK,GAAI,EAAK,GAAI,GAAI,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,CAAI,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,AAAC,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,AAAC,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,CAAE,EAAG,CAAC,EAAG,EAAE,AAAC,EAAG,EAAE,EAAK,CAAC,EAAG,EAAE,EAAG,EAAE,EAAK,CAAC,EAAG,EAAE,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,CAAE,CAAE,GAAI,GAAI,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,CAAI,GAAI,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,CAAE,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,EAAK,GAAI,CAAI,GAAI,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,AAAC,EAAG,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAK,GAAI,EAAK,GAAI,GAAI,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,CAAI,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,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","sources":["","node_modules/mermaid/dist/xychartDiagram-f11f50a6.js"],"sourcesContent":["\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\n var $parcel$global = globalThis;\n var parcelRequire = $parcel$global[\"parcelRequire0031\"];\nvar parcelRegister = parcelRequire.register;\nparcelRegister(\"dw8EU\", function(module, exports) {\n\n$parcel$export(module.exports, \"diagram\", () => $9d74fafee97e6b45$export$6118d022d940d562);\n\nvar $4jcZX = parcelRequire(\"4jcZX\");\n\nvar $fmBVZ = parcelRequire(\"fmBVZ\");\n\nvar $2YFJl = parcelRequire(\"2YFJl\");\nparcelRequire(\"eJNXH\");\nparcelRequire(\"gngdn\");\nparcelRequire(\"2ujND\");\nparcelRequire(\"i8Fxz\");\n\n\n\n\n\n\nvar $9d74fafee97e6b45$var$parser = function() {\n var o = function(k, v, o2, l) {\n for(o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v);\n return o2;\n }, $V0 = [\n 1,\n 10,\n 12,\n 14,\n 16,\n 18,\n 19,\n 21,\n 23\n ], $V1 = [\n 2,\n 6\n ], $V2 = [\n 1,\n 3\n ], $V3 = [\n 1,\n 5\n ], $V4 = [\n 1,\n 6\n ], $V5 = [\n 1,\n 7\n ], $V6 = [\n 1,\n 5,\n 10,\n 12,\n 14,\n 16,\n 18,\n 19,\n 21,\n 23,\n 34,\n 35,\n 36\n ], $V7 = [\n 1,\n 25\n ], $V8 = [\n 1,\n 26\n ], $V9 = [\n 1,\n 28\n ], $Va = [\n 1,\n 29\n ], $Vb = [\n 1,\n 30\n ], $Vc = [\n 1,\n 31\n ], $Vd = [\n 1,\n 32\n ], $Ve = [\n 1,\n 33\n ], $Vf = [\n 1,\n 34\n ], $Vg = [\n 1,\n 35\n ], $Vh = [\n 1,\n 36\n ], $Vi = [\n 1,\n 37\n ], $Vj = [\n 1,\n 43\n ], $Vk = [\n 1,\n 42\n ], $Vl = [\n 1,\n 47\n ], $Vm = [\n 1,\n 50\n ], $Vn = [\n 1,\n 10,\n 12,\n 14,\n 16,\n 18,\n 19,\n 21,\n 23,\n 34,\n 35,\n 36\n ], $Vo = [\n 1,\n 10,\n 12,\n 14,\n 16,\n 18,\n 19,\n 21,\n 23,\n 24,\n 26,\n 27,\n 28,\n 34,\n 35,\n 36\n ], $Vp = [\n 1,\n 10,\n 12,\n 14,\n 16,\n 18,\n 19,\n 21,\n 23,\n 24,\n 26,\n 27,\n 28,\n 34,\n 35,\n 36,\n 41,\n 42,\n 43,\n 44,\n 45,\n 46,\n 47,\n 48,\n 49,\n 50\n ], $Vq = [\n 1,\n 64\n ];\n var parser2 = {\n trace: function trace() {},\n yy: {},\n symbols_: {\n \"error\": 2,\n \"start\": 3,\n \"eol\": 4,\n \"XYCHART\": 5,\n \"chartConfig\": 6,\n \"document\": 7,\n \"CHART_ORIENTATION\": 8,\n \"statement\": 9,\n \"title\": 10,\n \"text\": 11,\n \"X_AXIS\": 12,\n \"parseXAxis\": 13,\n \"Y_AXIS\": 14,\n \"parseYAxis\": 15,\n \"LINE\": 16,\n \"plotData\": 17,\n \"BAR\": 18,\n \"acc_title\": 19,\n \"acc_title_value\": 20,\n \"acc_descr\": 21,\n \"acc_descr_value\": 22,\n \"acc_descr_multiline_value\": 23,\n \"SQUARE_BRACES_START\": 24,\n \"commaSeparatedNumbers\": 25,\n \"SQUARE_BRACES_END\": 26,\n \"NUMBER_WITH_DECIMAL\": 27,\n \"COMMA\": 28,\n \"xAxisData\": 29,\n \"bandData\": 30,\n \"ARROW_DELIMITER\": 31,\n \"commaSeparatedTexts\": 32,\n \"yAxisData\": 33,\n \"NEWLINE\": 34,\n \"SEMI\": 35,\n \"EOF\": 36,\n \"alphaNum\": 37,\n \"STR\": 38,\n \"MD_STR\": 39,\n \"alphaNumToken\": 40,\n \"AMP\": 41,\n \"NUM\": 42,\n \"ALPHA\": 43,\n \"PLUS\": 44,\n \"EQUALS\": 45,\n \"MULT\": 46,\n \"DOT\": 47,\n \"BRKT\": 48,\n \"MINUS\": 49,\n \"UNDERSCORE\": 50,\n \"$accept\": 0,\n \"$end\": 1\n },\n terminals_: {\n 2: \"error\",\n 5: \"XYCHART\",\n 8: \"CHART_ORIENTATION\",\n 10: \"title\",\n 12: \"X_AXIS\",\n 14: \"Y_AXIS\",\n 16: \"LINE\",\n 18: \"BAR\",\n 19: \"acc_title\",\n 20: \"acc_title_value\",\n 21: \"acc_descr\",\n 22: \"acc_descr_value\",\n 23: \"acc_descr_multiline_value\",\n 24: \"SQUARE_BRACES_START\",\n 26: \"SQUARE_BRACES_END\",\n 27: \"NUMBER_WITH_DECIMAL\",\n 28: \"COMMA\",\n 31: \"ARROW_DELIMITER\",\n 34: \"NEWLINE\",\n 35: \"SEMI\",\n 36: \"EOF\",\n 38: \"STR\",\n 39: \"MD_STR\",\n 41: \"AMP\",\n 42: \"NUM\",\n 43: \"ALPHA\",\n 44: \"PLUS\",\n 45: \"EQUALS\",\n 46: \"MULT\",\n 47: \"DOT\",\n 48: \"BRKT\",\n 49: \"MINUS\",\n 50: \"UNDERSCORE\"\n },\n productions_: [\n 0,\n [\n 3,\n 2\n ],\n [\n 3,\n 3\n ],\n [\n 3,\n 2\n ],\n [\n 3,\n 1\n ],\n [\n 6,\n 1\n ],\n [\n 7,\n 0\n ],\n [\n 7,\n 2\n ],\n [\n 9,\n 2\n ],\n [\n 9,\n 2\n ],\n [\n 9,\n 2\n ],\n [\n 9,\n 2\n ],\n [\n 9,\n 2\n ],\n [\n 9,\n 3\n ],\n [\n 9,\n 2\n ],\n [\n 9,\n 3\n ],\n [\n 9,\n 2\n ],\n [\n 9,\n 2\n ],\n [\n 9,\n 1\n ],\n [\n 17,\n 3\n ],\n [\n 25,\n 3\n ],\n [\n 25,\n 1\n ],\n [\n 13,\n 1\n ],\n [\n 13,\n 2\n ],\n [\n 13,\n 1\n ],\n [\n 29,\n 1\n ],\n [\n 29,\n 3\n ],\n [\n 30,\n 3\n ],\n [\n 32,\n 3\n ],\n [\n 32,\n 1\n ],\n [\n 15,\n 1\n ],\n [\n 15,\n 2\n ],\n [\n 15,\n 1\n ],\n [\n 33,\n 3\n ],\n [\n 4,\n 1\n ],\n [\n 4,\n 1\n ],\n [\n 4,\n 1\n ],\n [\n 11,\n 1\n ],\n [\n 11,\n 1\n ],\n [\n 11,\n 1\n ],\n [\n 37,\n 1\n ],\n [\n 37,\n 2\n ],\n [\n 40,\n 1\n ],\n [\n 40,\n 1\n ],\n [\n 40,\n 1\n ],\n [\n 40,\n 1\n ],\n [\n 40,\n 1\n ],\n [\n 40,\n 1\n ],\n [\n 40,\n 1\n ],\n [\n 40,\n 1\n ],\n [\n 40,\n 1\n ],\n [\n 40,\n 1\n ]\n ],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch(yystate){\n case 5:\n yy.setOrientation($$[$0]);\n break;\n case 9:\n yy.setDiagramTitle($$[$0].text.trim());\n break;\n case 12:\n yy.setLineData({\n text: \"\",\n type: \"text\"\n }, $$[$0]);\n break;\n case 13:\n yy.setLineData($$[$0 - 1], $$[$0]);\n break;\n case 14:\n yy.setBarData({\n text: \"\",\n type: \"text\"\n }, $$[$0]);\n break;\n case 15:\n yy.setBarData($$[$0 - 1], $$[$0]);\n break;\n case 16:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 17:\n case 18:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 19:\n this.$ = $$[$0 - 1];\n break;\n case 20:\n this.$ = [\n Number($$[$0 - 2]),\n ...$$[$0]\n ];\n break;\n case 21:\n this.$ = [\n Number($$[$0])\n ];\n break;\n case 22:\n yy.setXAxisTitle($$[$0]);\n break;\n case 23:\n yy.setXAxisTitle($$[$0 - 1]);\n break;\n case 24:\n yy.setXAxisTitle({\n type: \"text\",\n text: \"\"\n });\n break;\n case 25:\n yy.setXAxisBand($$[$0]);\n break;\n case 26:\n yy.setXAxisRangeData(Number($$[$0 - 2]), Number($$[$0]));\n break;\n case 27:\n this.$ = $$[$0 - 1];\n break;\n case 28:\n this.$ = [\n $$[$0 - 2],\n ...$$[$0]\n ];\n break;\n case 29:\n this.$ = [\n $$[$0]\n ];\n break;\n case 30:\n yy.setYAxisTitle($$[$0]);\n break;\n case 31:\n yy.setYAxisTitle($$[$0 - 1]);\n break;\n case 32:\n yy.setYAxisTitle({\n type: \"text\",\n text: \"\"\n });\n break;\n case 33:\n yy.setYAxisRangeData(Number($$[$0 - 2]), Number($$[$0]));\n break;\n case 37:\n this.$ = {\n text: $$[$0],\n type: \"text\"\n };\n break;\n case 38:\n this.$ = {\n text: $$[$0],\n type: \"text\"\n };\n break;\n case 39:\n this.$ = {\n text: $$[$0],\n type: \"markdown\"\n };\n break;\n case 40:\n this.$ = $$[$0];\n break;\n case 41:\n this.$ = $$[$0 - 1] + \"\" + $$[$0];\n break;\n }\n },\n table: [\n o($V0, $V1, {\n 3: 1,\n 4: 2,\n 7: 4,\n 5: $V2,\n 34: $V3,\n 35: $V4,\n 36: $V5\n }),\n {\n 1: [\n 3\n ]\n },\n o($V0, $V1, {\n 4: 2,\n 7: 4,\n 3: 8,\n 5: $V2,\n 34: $V3,\n 35: $V4,\n 36: $V5\n }),\n o($V0, $V1, {\n 4: 2,\n 7: 4,\n 6: 9,\n 3: 10,\n 5: $V2,\n 8: [\n 1,\n 11\n ],\n 34: $V3,\n 35: $V4,\n 36: $V5\n }),\n {\n 1: [\n 2,\n 4\n ],\n 9: 12,\n 10: [\n 1,\n 13\n ],\n 12: [\n 1,\n 14\n ],\n 14: [\n 1,\n 15\n ],\n 16: [\n 1,\n 16\n ],\n 18: [\n 1,\n 17\n ],\n 19: [\n 1,\n 18\n ],\n 21: [\n 1,\n 19\n ],\n 23: [\n 1,\n 20\n ]\n },\n o($V6, [\n 2,\n 34\n ]),\n o($V6, [\n 2,\n 35\n ]),\n o($V6, [\n 2,\n 36\n ]),\n {\n 1: [\n 2,\n 1\n ]\n },\n o($V0, $V1, {\n 4: 2,\n 7: 4,\n 3: 21,\n 5: $V2,\n 34: $V3,\n 35: $V4,\n 36: $V5\n }),\n {\n 1: [\n 2,\n 3\n ]\n },\n o($V6, [\n 2,\n 5\n ]),\n o($V0, [\n 2,\n 7\n ], {\n 4: 22,\n 34: $V3,\n 35: $V4,\n 36: $V5\n }),\n {\n 11: 23,\n 37: 24,\n 38: $V7,\n 39: $V8,\n 40: 27,\n 41: $V9,\n 42: $Va,\n 43: $Vb,\n 44: $Vc,\n 45: $Vd,\n 46: $Ve,\n 47: $Vf,\n 48: $Vg,\n 49: $Vh,\n 50: $Vi\n },\n {\n 11: 39,\n 13: 38,\n 24: $Vj,\n 27: $Vk,\n 29: 40,\n 30: 41,\n 37: 24,\n 38: $V7,\n 39: $V8,\n 40: 27,\n 41: $V9,\n 42: $Va,\n 43: $Vb,\n 44: $Vc,\n 45: $Vd,\n 46: $Ve,\n 47: $Vf,\n 48: $Vg,\n 49: $Vh,\n 50: $Vi\n },\n {\n 11: 45,\n 15: 44,\n 27: $Vl,\n 33: 46,\n 37: 24,\n 38: $V7,\n 39: $V8,\n 40: 27,\n 41: $V9,\n 42: $Va,\n 43: $Vb,\n 44: $Vc,\n 45: $Vd,\n 46: $Ve,\n 47: $Vf,\n 48: $Vg,\n 49: $Vh,\n 50: $Vi\n },\n {\n 11: 49,\n 17: 48,\n 24: $Vm,\n 37: 24,\n 38: $V7,\n 39: $V8,\n 40: 27,\n 41: $V9,\n 42: $Va,\n 43: $Vb,\n 44: $Vc,\n 45: $Vd,\n 46: $Ve,\n 47: $Vf,\n 48: $Vg,\n 49: $Vh,\n 50: $Vi\n },\n {\n 11: 52,\n 17: 51,\n 24: $Vm,\n 37: 24,\n 38: $V7,\n 39: $V8,\n 40: 27,\n 41: $V9,\n 42: $Va,\n 43: $Vb,\n 44: $Vc,\n 45: $Vd,\n 46: $Ve,\n 47: $Vf,\n 48: $Vg,\n 49: $Vh,\n 50: $Vi\n },\n {\n 20: [\n 1,\n 53\n ]\n },\n {\n 22: [\n 1,\n 54\n ]\n },\n o($Vn, [\n 2,\n 18\n ]),\n {\n 1: [\n 2,\n 2\n ]\n },\n o($Vn, [\n 2,\n 8\n ]),\n o($Vn, [\n 2,\n 9\n ]),\n o($Vo, [\n 2,\n 37\n ], {\n 40: 55,\n 41: $V9,\n 42: $Va,\n 43: $Vb,\n 44: $Vc,\n 45: $Vd,\n 46: $Ve,\n 47: $Vf,\n 48: $Vg,\n 49: $Vh,\n 50: $Vi\n }),\n o($Vo, [\n 2,\n 38\n ]),\n o($Vo, [\n 2,\n 39\n ]),\n o($Vp, [\n 2,\n 40\n ]),\n o($Vp, [\n 2,\n 42\n ]),\n o($Vp, [\n 2,\n 43\n ]),\n o($Vp, [\n 2,\n 44\n ]),\n o($Vp, [\n 2,\n 45\n ]),\n o($Vp, [\n 2,\n 46\n ]),\n o($Vp, [\n 2,\n 47\n ]),\n o($Vp, [\n 2,\n 48\n ]),\n o($Vp, [\n 2,\n 49\n ]),\n o($Vp, [\n 2,\n 50\n ]),\n o($Vp, [\n 2,\n 51\n ]),\n o($Vn, [\n 2,\n 10\n ]),\n o($Vn, [\n 2,\n 22\n ], {\n 30: 41,\n 29: 56,\n 24: $Vj,\n 27: $Vk\n }),\n o($Vn, [\n 2,\n 24\n ]),\n o($Vn, [\n 2,\n 25\n ]),\n {\n 31: [\n 1,\n 57\n ]\n },\n {\n 11: 59,\n 32: 58,\n 37: 24,\n 38: $V7,\n 39: $V8,\n 40: 27,\n 41: $V9,\n 42: $Va,\n 43: $Vb,\n 44: $Vc,\n 45: $Vd,\n 46: $Ve,\n 47: $Vf,\n 48: $Vg,\n 49: $Vh,\n 50: $Vi\n },\n o($Vn, [\n 2,\n 11\n ]),\n o($Vn, [\n 2,\n 30\n ], {\n 33: 60,\n 27: $Vl\n }),\n o($Vn, [\n 2,\n 32\n ]),\n {\n 31: [\n 1,\n 61\n ]\n },\n o($Vn, [\n 2,\n 12\n ]),\n {\n 17: 62,\n 24: $Vm\n },\n {\n 25: 63,\n 27: $Vq\n },\n o($Vn, [\n 2,\n 14\n ]),\n {\n 17: 65,\n 24: $Vm\n },\n o($Vn, [\n 2,\n 16\n ]),\n o($Vn, [\n 2,\n 17\n ]),\n o($Vp, [\n 2,\n 41\n ]),\n o($Vn, [\n 2,\n 23\n ]),\n {\n 27: [\n 1,\n 66\n ]\n },\n {\n 26: [\n 1,\n 67\n ]\n },\n {\n 26: [\n 2,\n 29\n ],\n 28: [\n 1,\n 68\n ]\n },\n o($Vn, [\n 2,\n 31\n ]),\n {\n 27: [\n 1,\n 69\n ]\n },\n o($Vn, [\n 2,\n 13\n ]),\n {\n 26: [\n 1,\n 70\n ]\n },\n {\n 26: [\n 2,\n 21\n ],\n 28: [\n 1,\n 71\n ]\n },\n o($Vn, [\n 2,\n 15\n ]),\n o($Vn, [\n 2,\n 26\n ]),\n o($Vn, [\n 2,\n 27\n ]),\n {\n 11: 59,\n 32: 72,\n 37: 24,\n 38: $V7,\n 39: $V8,\n 40: 27,\n 41: $V9,\n 42: $Va,\n 43: $Vb,\n 44: $Vc,\n 45: $Vd,\n 46: $Ve,\n 47: $Vf,\n 48: $Vg,\n 49: $Vh,\n 50: $Vi\n },\n o($Vn, [\n 2,\n 33\n ]),\n o($Vn, [\n 2,\n 19\n ]),\n {\n 25: 73,\n 27: $Vq\n },\n {\n 26: [\n 2,\n 28\n ]\n },\n {\n 26: [\n 2,\n 20\n ]\n }\n ],\n defaultActions: {\n 8: [\n 2,\n 1\n ],\n 10: [\n 2,\n 3\n ],\n 21: [\n 2,\n 2\n ],\n 72: [\n 2,\n 28\n ],\n 73: [\n 2,\n 20\n ]\n },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) this.trace(str);\n else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [\n 0\n ], tstack = [], vstack = [\n null\n ], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = {\n yy: {}\n };\n for(var k in this.yy)if (Object.prototype.hasOwnProperty.call(this.yy, k)) sharedState.yy[k] = this.yy[k];\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") lexer2.yylloc = {};\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") this.parseError = sharedState.yy.parseError;\n else this.parseError = Object.getPrototypeOf(this).parseError;\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while(true){\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) action = this.defaultActions[state];\n else {\n if (symbol === null || typeof symbol == \"undefined\") symbol = lex();\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for(p in table[state])if (this.terminals_[p] && p > TERROR) expected.push(\"'\" + this.terminals_[p] + \"'\");\n if (lexer2.showPosition) errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n else errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected: expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n switch(action[0]){\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") return r;\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) this.yy.parser.parseError(str, hash);\n else throw new Error(str);\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\n \"INITIAL\"\n ];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) this.yylloc.range = [\n 0,\n 0\n ];\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else this.yylloc.last_column++;\n if (this.options.ranges) this.yylloc.range[1]++;\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) this.yylineno -= lines.length - 1;\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) this.yylloc.range = [\n r[0],\n r[0] + this.yyleng - len\n ];\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) this._backtrack = true;\n 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).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) next += this._input.substr(0, 20 - next.length);\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) backup.yylloc.range = this.yylloc.range.slice(0);\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) this.yylineno += lines.length;\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) this.yylloc.range = [\n this.offset,\n this.offset += this.yyleng\n ];\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) this.done = false;\n if (token) return token;\n else if (this._backtrack) {\n for(var k in backup)this[k] = backup[k];\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) return this.EOF;\n if (!this._input) this.done = true;\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for(var i = 0; i < rules.length; i++){\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) return token;\n else if (this._backtrack) {\n match = false;\n continue;\n } else return false;\n } else if (!this.options.flex) break;\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) return token;\n return false;\n }\n if (this._input === \"\") return this.EOF;\n else return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) return r;\n else return this.lex();\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) return this.conditionStack.pop();\n else return this.conditionStack[0];\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n else return this.conditions[\"INITIAL\"].rules;\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) return this.conditionStack[n];\n else return \"INITIAL\";\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: {\n \"case-insensitive\": true\n },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch($avoiding_name_collisions){\n case 0:\n break;\n case 1:\n break;\n case 2:\n this.popState();\n return 34;\n case 3:\n this.popState();\n return 34;\n case 4:\n return 34;\n case 5:\n break;\n case 6:\n return 10;\n case 7:\n this.pushState(\"acc_title\");\n return 19;\n case 8:\n this.popState();\n return \"acc_title_value\";\n case 9:\n this.pushState(\"acc_descr\");\n return 21;\n case 10:\n this.popState();\n return \"acc_descr_value\";\n case 11:\n this.pushState(\"acc_descr_multiline\");\n break;\n case 12:\n this.popState();\n break;\n case 13:\n return \"acc_descr_multiline_value\";\n case 14:\n return 5;\n case 15:\n return 8;\n case 16:\n this.pushState(\"axis_data\");\n return \"X_AXIS\";\n case 17:\n this.pushState(\"axis_data\");\n return \"Y_AXIS\";\n case 18:\n this.pushState(\"axis_band_data\");\n return 24;\n case 19:\n return 31;\n case 20:\n this.pushState(\"data\");\n return 16;\n case 21:\n this.pushState(\"data\");\n return 18;\n case 22:\n this.pushState(\"data_inner\");\n return 24;\n case 23:\n return 27;\n case 24:\n this.popState();\n return 26;\n case 25:\n this.popState();\n break;\n case 26:\n this.pushState(\"string\");\n break;\n case 27:\n this.popState();\n break;\n case 28:\n return \"STR\";\n case 29:\n return 24;\n case 30:\n return 26;\n case 31:\n return 43;\n case 32:\n return \"COLON\";\n case 33:\n return 44;\n case 34:\n return 28;\n case 35:\n return 45;\n case 36:\n return 46;\n case 37:\n return 48;\n case 38:\n return 50;\n case 39:\n return 47;\n case 40:\n return 41;\n case 41:\n return 49;\n case 42:\n return 42;\n case 43:\n break;\n case 44:\n return 35;\n case 45:\n return 36;\n }\n },\n rules: [\n /^(?:%%(?!\\{)[^\\n]*)/i,\n /^(?:[^\\}]%%[^\\n]*)/i,\n /^(?:(\\r?\\n))/i,\n /^(?:(\\r?\\n))/i,\n /^(?:[\\n\\r]+)/i,\n /^(?:%%[^\\n]*)/i,\n /^(?:title\\b)/i,\n /^(?:accTitle\\s*:\\s*)/i,\n /^(?:(?!\\n||)*[^\\n]*)/i,\n /^(?:accDescr\\s*:\\s*)/i,\n /^(?:(?!\\n||)*[^\\n]*)/i,\n /^(?:accDescr\\s*\\{\\s*)/i,\n /^(?:\\{)/i,\n /^(?:[^\\}]*)/i,\n /^(?:xychart-beta\\b)/i,\n /^(?:(?:vertical|horizontal))/i,\n /^(?:x-axis\\b)/i,\n /^(?:y-axis\\b)/i,\n /^(?:\\[)/i,\n /^(?:-->)/i,\n /^(?:line\\b)/i,\n /^(?:bar\\b)/i,\n /^(?:\\[)/i,\n /^(?:[+-]?(?:\\d+(?:\\.\\d+)?|\\.\\d+))/i,\n /^(?:\\])/i,\n /^(?:(?:`\\) \\{ this\\.pushState\\(md_string\\); \\}\\n\\(\\?:\\(\\?!`\"\\)\\.\\)\\+ \\{ return MD_STR; \\}\\n\\(\\?:`))/i,\n /^(?:[\"])/i,\n /^(?:[\"])/i,\n /^(?:[^\"]*)/i,\n /^(?:\\[)/i,\n /^(?:\\])/i,\n /^(?:[A-Za-z]+)/i,\n /^(?::)/i,\n /^(?:\\+)/i,\n /^(?:,)/i,\n /^(?:=)/i,\n /^(?:\\*)/i,\n /^(?:#)/i,\n /^(?:[\\_])/i,\n /^(?:\\.)/i,\n /^(?:&)/i,\n /^(?:-)/i,\n /^(?:[0-9]+)/i,\n /^(?:\\s+)/i,\n /^(?:;)/i,\n /^(?:$)/i\n ],\n conditions: {\n \"data_inner\": {\n \"rules\": [\n 0,\n 1,\n 4,\n 5,\n 6,\n 7,\n 9,\n 11,\n 14,\n 15,\n 16,\n 17,\n 20,\n 21,\n 23,\n 24,\n 25,\n 26,\n 29,\n 30,\n 31,\n 32,\n 33,\n 34,\n 35,\n 36,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 43,\n 44,\n 45\n ],\n \"inclusive\": true\n },\n \"data\": {\n \"rules\": [\n 0,\n 1,\n 3,\n 4,\n 5,\n 6,\n 7,\n 9,\n 11,\n 14,\n 15,\n 16,\n 17,\n 20,\n 21,\n 22,\n 25,\n 26,\n 29,\n 30,\n 31,\n 32,\n 33,\n 34,\n 35,\n 36,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 43,\n 44,\n 45\n ],\n \"inclusive\": true\n },\n \"axis_band_data\": {\n \"rules\": [\n 0,\n 1,\n 4,\n 5,\n 6,\n 7,\n 9,\n 11,\n 14,\n 15,\n 16,\n 17,\n 20,\n 21,\n 24,\n 25,\n 26,\n 29,\n 30,\n 31,\n 32,\n 33,\n 34,\n 35,\n 36,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 43,\n 44,\n 45\n ],\n \"inclusive\": true\n },\n \"axis_data\": {\n \"rules\": [\n 0,\n 1,\n 2,\n 4,\n 5,\n 6,\n 7,\n 9,\n 11,\n 14,\n 15,\n 16,\n 17,\n 18,\n 19,\n 20,\n 21,\n 23,\n 25,\n 26,\n 29,\n 30,\n 31,\n 32,\n 33,\n 34,\n 35,\n 36,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 43,\n 44,\n 45\n ],\n \"inclusive\": true\n },\n \"acc_descr_multiline\": {\n \"rules\": [\n 12,\n 13\n ],\n \"inclusive\": false\n },\n \"acc_descr\": {\n \"rules\": [\n 10\n ],\n \"inclusive\": false\n },\n \"acc_title\": {\n \"rules\": [\n 8\n ],\n \"inclusive\": false\n },\n \"title\": {\n \"rules\": [],\n \"inclusive\": false\n },\n \"md_string\": {\n \"rules\": [],\n \"inclusive\": false\n },\n \"string\": {\n \"rules\": [\n 27,\n 28\n ],\n \"inclusive\": false\n },\n \"INITIAL\": {\n \"rules\": [\n 0,\n 1,\n 4,\n 5,\n 6,\n 7,\n 9,\n 11,\n 14,\n 15,\n 16,\n 17,\n 20,\n 21,\n 25,\n 26,\n 29,\n 30,\n 31,\n 32,\n 33,\n 34,\n 35,\n 36,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 43,\n 44,\n 45\n ],\n \"inclusive\": true\n }\n }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\n$9d74fafee97e6b45$var$parser.parser = $9d74fafee97e6b45$var$parser;\nconst $9d74fafee97e6b45$var$parser$1 = $9d74fafee97e6b45$var$parser;\nfunction $9d74fafee97e6b45$var$isBarPlot(data) {\n return data.type === \"bar\";\n}\nfunction $9d74fafee97e6b45$var$isBandAxisData(data) {\n return data.type === \"band\";\n}\nfunction $9d74fafee97e6b45$var$isLinearAxisData(data) {\n return data.type === \"linear\";\n}\nclass $9d74fafee97e6b45$var$TextDimensionCalculatorWithFont {\n constructor(parentGroup){\n this.parentGroup = parentGroup;\n }\n getMaxDimension(texts, fontSize) {\n if (!this.parentGroup) return {\n width: texts.reduce((acc, cur)=>Math.max(cur.length, acc), 0) * fontSize,\n height: fontSize\n };\n const dimension = {\n width: 0,\n height: 0\n };\n const elem = this.parentGroup.append(\"g\").attr(\"visibility\", \"hidden\").attr(\"font-size\", fontSize);\n for (const t of texts){\n const bbox = (0, $fmBVZ.c)(elem, 1, t);\n const width = bbox ? bbox.width : t.length * fontSize;\n const height = bbox ? bbox.height : fontSize;\n dimension.width = Math.max(dimension.width, width);\n dimension.height = Math.max(dimension.height, height);\n }\n elem.remove();\n return dimension;\n }\n}\nconst $9d74fafee97e6b45$var$BAR_WIDTH_TO_TICK_WIDTH_RATIO = 0.7;\nconst $9d74fafee97e6b45$var$MAX_OUTER_PADDING_PERCENT_FOR_WRT_LABEL = 0.2;\nclass $9d74fafee97e6b45$var$BaseAxis {\n constructor(axisConfig, title, textDimensionCalculator, axisThemeConfig){\n this.axisConfig = axisConfig;\n this.title = title;\n this.textDimensionCalculator = textDimensionCalculator;\n this.axisThemeConfig = axisThemeConfig;\n this.boundingRect = {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n this.axisPosition = \"left\";\n this.showTitle = false;\n this.showLabel = false;\n this.showTick = false;\n this.showAxisLine = false;\n this.outerPadding = 0;\n this.titleTextHeight = 0;\n this.labelTextHeight = 0;\n this.range = [\n 0,\n 10\n ];\n this.boundingRect = {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n this.axisPosition = \"left\";\n }\n setRange(range) {\n this.range = range;\n if (this.axisPosition === \"left\" || this.axisPosition === \"right\") this.boundingRect.height = range[1] - range[0];\n else this.boundingRect.width = range[1] - range[0];\n this.recalculateScale();\n }\n getRange() {\n return [\n this.range[0] + this.outerPadding,\n this.range[1] - this.outerPadding\n ];\n }\n setAxisPosition(axisPosition) {\n this.axisPosition = axisPosition;\n this.setRange(this.range);\n }\n getTickDistance() {\n const range = this.getRange();\n return Math.abs(range[0] - range[1]) / this.getTickValues().length;\n }\n getAxisOuterPadding() {\n return this.outerPadding;\n }\n getLabelDimension() {\n return this.textDimensionCalculator.getMaxDimension(this.getTickValues().map((tick)=>tick.toString()), this.axisConfig.labelFontSize);\n }\n recalculateOuterPaddingToDrawBar() {\n if ($9d74fafee97e6b45$var$BAR_WIDTH_TO_TICK_WIDTH_RATIO * this.getTickDistance() > this.outerPadding * 2) this.outerPadding = Math.floor($9d74fafee97e6b45$var$BAR_WIDTH_TO_TICK_WIDTH_RATIO * this.getTickDistance() / 2);\n this.recalculateScale();\n }\n calculateSpaceIfDrawnHorizontally(availableSpace) {\n let availableHeight = availableSpace.height;\n if (this.axisConfig.showAxisLine && availableHeight > this.axisConfig.axisLineWidth) {\n availableHeight -= this.axisConfig.axisLineWidth;\n this.showAxisLine = true;\n }\n if (this.axisConfig.showLabel) {\n const spaceRequired = this.getLabelDimension();\n const maxPadding = $9d74fafee97e6b45$var$MAX_OUTER_PADDING_PERCENT_FOR_WRT_LABEL * availableSpace.width;\n this.outerPadding = Math.min(spaceRequired.width / 2, maxPadding);\n const heightRequired = spaceRequired.height + this.axisConfig.labelPadding * 2;\n this.labelTextHeight = spaceRequired.height;\n if (heightRequired <= availableHeight) {\n availableHeight -= heightRequired;\n this.showLabel = true;\n }\n }\n if (this.axisConfig.showTick && availableHeight >= this.axisConfig.tickLength) {\n this.showTick = true;\n availableHeight -= this.axisConfig.tickLength;\n }\n if (this.axisConfig.showTitle && this.title) {\n const spaceRequired = this.textDimensionCalculator.getMaxDimension([\n this.title\n ], this.axisConfig.titleFontSize);\n const heightRequired = spaceRequired.height + this.axisConfig.titlePadding * 2;\n this.titleTextHeight = spaceRequired.height;\n if (heightRequired <= availableHeight) {\n availableHeight -= heightRequired;\n this.showTitle = true;\n }\n }\n this.boundingRect.width = availableSpace.width;\n this.boundingRect.height = availableSpace.height - availableHeight;\n }\n calculateSpaceIfDrawnVertical(availableSpace) {\n let availableWidth = availableSpace.width;\n if (this.axisConfig.showAxisLine && availableWidth > this.axisConfig.axisLineWidth) {\n availableWidth -= this.axisConfig.axisLineWidth;\n this.showAxisLine = true;\n }\n if (this.axisConfig.showLabel) {\n const spaceRequired = this.getLabelDimension();\n const maxPadding = $9d74fafee97e6b45$var$MAX_OUTER_PADDING_PERCENT_FOR_WRT_LABEL * availableSpace.height;\n this.outerPadding = Math.min(spaceRequired.height / 2, maxPadding);\n const widthRequired = spaceRequired.width + this.axisConfig.labelPadding * 2;\n if (widthRequired <= availableWidth) {\n availableWidth -= widthRequired;\n this.showLabel = true;\n }\n }\n if (this.axisConfig.showTick && availableWidth >= this.axisConfig.tickLength) {\n this.showTick = true;\n availableWidth -= this.axisConfig.tickLength;\n }\n if (this.axisConfig.showTitle && this.title) {\n const spaceRequired = this.textDimensionCalculator.getMaxDimension([\n this.title\n ], this.axisConfig.titleFontSize);\n const widthRequired = spaceRequired.height + this.axisConfig.titlePadding * 2;\n this.titleTextHeight = spaceRequired.height;\n if (widthRequired <= availableWidth) {\n availableWidth -= widthRequired;\n this.showTitle = true;\n }\n }\n this.boundingRect.width = availableSpace.width - availableWidth;\n this.boundingRect.height = availableSpace.height;\n }\n calculateSpace(availableSpace) {\n if (this.axisPosition === \"left\" || this.axisPosition === \"right\") this.calculateSpaceIfDrawnVertical(availableSpace);\n else this.calculateSpaceIfDrawnHorizontally(availableSpace);\n this.recalculateScale();\n return {\n width: this.boundingRect.width,\n height: this.boundingRect.height\n };\n }\n setBoundingBoxXY(point) {\n this.boundingRect.x = point.x;\n this.boundingRect.y = point.y;\n }\n getDrawableElementsForLeftAxis() {\n const drawableElement = [];\n if (this.showAxisLine) {\n const x = this.boundingRect.x + this.boundingRect.width - this.axisConfig.axisLineWidth / 2;\n drawableElement.push({\n type: \"path\",\n groupTexts: [\n \"left-axis\",\n \"axisl-line\"\n ],\n data: [\n {\n path: `M ${x},${this.boundingRect.y} L ${x},${this.boundingRect.y + this.boundingRect.height} `,\n strokeFill: this.axisThemeConfig.axisLineColor,\n strokeWidth: this.axisConfig.axisLineWidth\n }\n ]\n });\n }\n if (this.showLabel) drawableElement.push({\n type: \"text\",\n groupTexts: [\n \"left-axis\",\n \"label\"\n ],\n data: this.getTickValues().map((tick)=>({\n text: tick.toString(),\n 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),\n y: this.getScaleValue(tick),\n fill: this.axisThemeConfig.labelColor,\n fontSize: this.axisConfig.labelFontSize,\n rotation: 0,\n verticalPos: \"middle\",\n horizontalPos: \"right\"\n }))\n });\n if (this.showTick) {\n const x = this.boundingRect.x + this.boundingRect.width - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0);\n drawableElement.push({\n type: \"path\",\n groupTexts: [\n \"left-axis\",\n \"ticks\"\n ],\n data: this.getTickValues().map((tick)=>({\n path: `M ${x},${this.getScaleValue(tick)} L ${x - this.axisConfig.tickLength},${this.getScaleValue(tick)}`,\n strokeFill: this.axisThemeConfig.tickColor,\n strokeWidth: this.axisConfig.tickWidth\n }))\n });\n }\n if (this.showTitle) drawableElement.push({\n type: \"text\",\n groupTexts: [\n \"left-axis\",\n \"title\"\n ],\n data: [\n {\n text: this.title,\n x: this.boundingRect.x + this.axisConfig.titlePadding,\n y: this.boundingRect.y + this.boundingRect.height / 2,\n fill: this.axisThemeConfig.titleColor,\n fontSize: this.axisConfig.titleFontSize,\n rotation: 270,\n verticalPos: \"top\",\n horizontalPos: \"center\"\n }\n ]\n });\n return drawableElement;\n }\n getDrawableElementsForBottomAxis() {\n const drawableElement = [];\n if (this.showAxisLine) {\n const y = this.boundingRect.y + this.axisConfig.axisLineWidth / 2;\n drawableElement.push({\n type: \"path\",\n groupTexts: [\n \"bottom-axis\",\n \"axis-line\"\n ],\n data: [\n {\n path: `M ${this.boundingRect.x},${y} L ${this.boundingRect.x + this.boundingRect.width},${y}`,\n strokeFill: this.axisThemeConfig.axisLineColor,\n strokeWidth: this.axisConfig.axisLineWidth\n }\n ]\n });\n }\n if (this.showLabel) drawableElement.push({\n type: \"text\",\n groupTexts: [\n \"bottom-axis\",\n \"label\"\n ],\n data: this.getTickValues().map((tick)=>({\n text: tick.toString(),\n x: this.getScaleValue(tick),\n y: this.boundingRect.y + this.axisConfig.labelPadding + (this.showTick ? this.axisConfig.tickLength : 0) + (this.showAxisLine ? this.axisConfig.axisLineWidth : 0),\n fill: this.axisThemeConfig.labelColor,\n fontSize: this.axisConfig.labelFontSize,\n rotation: 0,\n verticalPos: \"top\",\n horizontalPos: \"center\"\n }))\n });\n if (this.showTick) {\n const y = this.boundingRect.y + (this.showAxisLine ? this.axisConfig.axisLineWidth : 0);\n drawableElement.push({\n type: \"path\",\n groupTexts: [\n \"bottom-axis\",\n \"ticks\"\n ],\n data: this.getTickValues().map((tick)=>({\n path: `M ${this.getScaleValue(tick)},${y} L ${this.getScaleValue(tick)},${y + this.axisConfig.tickLength}`,\n strokeFill: this.axisThemeConfig.tickColor,\n strokeWidth: this.axisConfig.tickWidth\n }))\n });\n }\n if (this.showTitle) drawableElement.push({\n type: \"text\",\n groupTexts: [\n \"bottom-axis\",\n \"title\"\n ],\n data: [\n {\n text: this.title,\n x: this.range[0] + (this.range[1] - this.range[0]) / 2,\n y: this.boundingRect.y + this.boundingRect.height - this.axisConfig.titlePadding - this.titleTextHeight,\n fill: this.axisThemeConfig.titleColor,\n fontSize: this.axisConfig.titleFontSize,\n rotation: 0,\n verticalPos: \"top\",\n horizontalPos: \"center\"\n }\n ]\n });\n return drawableElement;\n }\n getDrawableElementsForTopAxis() {\n const drawableElement = [];\n if (this.showAxisLine) {\n const y = this.boundingRect.y + this.boundingRect.height - this.axisConfig.axisLineWidth / 2;\n drawableElement.push({\n type: \"path\",\n groupTexts: [\n \"top-axis\",\n \"axis-line\"\n ],\n data: [\n {\n path: `M ${this.boundingRect.x},${y} L ${this.boundingRect.x + this.boundingRect.width},${y}`,\n strokeFill: this.axisThemeConfig.axisLineColor,\n strokeWidth: this.axisConfig.axisLineWidth\n }\n ]\n });\n }\n if (this.showLabel) drawableElement.push({\n type: \"text\",\n groupTexts: [\n \"top-axis\",\n \"label\"\n ],\n data: this.getTickValues().map((tick)=>({\n text: tick.toString(),\n x: this.getScaleValue(tick),\n y: this.boundingRect.y + (this.showTitle ? this.titleTextHeight + this.axisConfig.titlePadding * 2 : 0) + this.axisConfig.labelPadding,\n fill: this.axisThemeConfig.labelColor,\n fontSize: this.axisConfig.labelFontSize,\n rotation: 0,\n verticalPos: \"top\",\n horizontalPos: \"center\"\n }))\n });\n if (this.showTick) {\n const y = this.boundingRect.y;\n drawableElement.push({\n type: \"path\",\n groupTexts: [\n \"top-axis\",\n \"ticks\"\n ],\n data: this.getTickValues().map((tick)=>({\n path: `M ${this.getScaleValue(tick)},${y + this.boundingRect.height - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0)} L ${this.getScaleValue(tick)},${y + this.boundingRect.height - this.axisConfig.tickLength - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0)}`,\n strokeFill: this.axisThemeConfig.tickColor,\n strokeWidth: this.axisConfig.tickWidth\n }))\n });\n }\n if (this.showTitle) drawableElement.push({\n type: \"text\",\n groupTexts: [\n \"top-axis\",\n \"title\"\n ],\n data: [\n {\n text: this.title,\n x: this.boundingRect.x + this.boundingRect.width / 2,\n y: this.boundingRect.y + this.axisConfig.titlePadding,\n fill: this.axisThemeConfig.titleColor,\n fontSize: this.axisConfig.titleFontSize,\n rotation: 0,\n verticalPos: \"top\",\n horizontalPos: \"center\"\n }\n ]\n });\n return drawableElement;\n }\n getDrawableElements() {\n if (this.axisPosition === \"left\") return this.getDrawableElementsForLeftAxis();\n if (this.axisPosition === \"right\") throw Error(\"Drawing of right axis is not implemented\");\n if (this.axisPosition === \"bottom\") return this.getDrawableElementsForBottomAxis();\n if (this.axisPosition === \"top\") return this.getDrawableElementsForTopAxis();\n return [];\n }\n}\nclass $9d74fafee97e6b45$var$BandAxis extends $9d74fafee97e6b45$var$BaseAxis {\n constructor(axisConfig, axisThemeConfig, categories, title, textDimensionCalculator){\n super(axisConfig, title, textDimensionCalculator, axisThemeConfig);\n this.categories = categories;\n this.scale = (0, $2YFJl.scaleBand)().domain(this.categories).range(this.getRange());\n }\n setRange(range) {\n super.setRange(range);\n }\n recalculateScale() {\n this.scale = (0, $2YFJl.scaleBand)().domain(this.categories).range(this.getRange()).paddingInner(1).paddingOuter(0).align(0.5);\n (0, $4jcZX.l).trace(\"BandAxis axis final categories, range: \", this.categories, this.getRange());\n }\n getTickValues() {\n return this.categories;\n }\n getScaleValue(value) {\n return this.scale(value) || this.getRange()[0];\n }\n}\nclass $9d74fafee97e6b45$var$LinearAxis extends $9d74fafee97e6b45$var$BaseAxis {\n constructor(axisConfig, axisThemeConfig, domain, title, textDimensionCalculator){\n super(axisConfig, title, textDimensionCalculator, axisThemeConfig);\n this.domain = domain;\n this.scale = (0, $2YFJl.scaleLinear)().domain(this.domain).range(this.getRange());\n }\n getTickValues() {\n return this.scale.ticks();\n }\n recalculateScale() {\n const domain = [\n ...this.domain\n ];\n if (this.axisPosition === \"left\") domain.reverse();\n this.scale = (0, $2YFJl.scaleLinear)().domain(domain).range(this.getRange());\n }\n getScaleValue(value) {\n return this.scale(value);\n }\n}\nfunction $9d74fafee97e6b45$var$getAxis(data, axisConfig, axisThemeConfig, tmpSVGGroup2) {\n const textDimensionCalculator = new $9d74fafee97e6b45$var$TextDimensionCalculatorWithFont(tmpSVGGroup2);\n if ($9d74fafee97e6b45$var$isBandAxisData(data)) return new $9d74fafee97e6b45$var$BandAxis(axisConfig, axisThemeConfig, data.categories, data.title, textDimensionCalculator);\n return new $9d74fafee97e6b45$var$LinearAxis(axisConfig, axisThemeConfig, [\n data.min,\n data.max\n ], data.title, textDimensionCalculator);\n}\nclass $9d74fafee97e6b45$var$ChartTitle {\n constructor(textDimensionCalculator, chartConfig, chartData, chartThemeConfig){\n this.textDimensionCalculator = textDimensionCalculator;\n this.chartConfig = chartConfig;\n this.chartData = chartData;\n this.chartThemeConfig = chartThemeConfig;\n this.boundingRect = {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n this.showChartTitle = false;\n }\n setBoundingBoxXY(point) {\n this.boundingRect.x = point.x;\n this.boundingRect.y = point.y;\n }\n calculateSpace(availableSpace) {\n const titleDimension = this.textDimensionCalculator.getMaxDimension([\n this.chartData.title\n ], this.chartConfig.titleFontSize);\n const widthRequired = Math.max(titleDimension.width, availableSpace.width);\n const heightRequired = titleDimension.height + 2 * this.chartConfig.titlePadding;\n if (titleDimension.width <= widthRequired && titleDimension.height <= heightRequired && this.chartConfig.showTitle && this.chartData.title) {\n this.boundingRect.width = widthRequired;\n this.boundingRect.height = heightRequired;\n this.showChartTitle = true;\n }\n return {\n width: this.boundingRect.width,\n height: this.boundingRect.height\n };\n }\n getDrawableElements() {\n const drawableElem = [];\n if (this.showChartTitle) drawableElem.push({\n groupTexts: [\n \"chart-title\"\n ],\n type: \"text\",\n data: [\n {\n fontSize: this.chartConfig.titleFontSize,\n text: this.chartData.title,\n verticalPos: \"middle\",\n horizontalPos: \"center\",\n x: this.boundingRect.x + this.boundingRect.width / 2,\n y: this.boundingRect.y + this.boundingRect.height / 2,\n fill: this.chartThemeConfig.titleColor,\n rotation: 0\n }\n ]\n });\n return drawableElem;\n }\n}\nfunction $9d74fafee97e6b45$var$getChartTitleComponent(chartConfig, chartData, chartThemeConfig, tmpSVGGroup2) {\n const textDimensionCalculator = new $9d74fafee97e6b45$var$TextDimensionCalculatorWithFont(tmpSVGGroup2);\n return new $9d74fafee97e6b45$var$ChartTitle(textDimensionCalculator, chartConfig, chartData, chartThemeConfig);\n}\nclass $9d74fafee97e6b45$var$LinePlot {\n constructor(plotData, xAxis, yAxis, orientation, plotIndex2){\n this.plotData = plotData;\n this.xAxis = xAxis;\n this.yAxis = yAxis;\n this.orientation = orientation;\n this.plotIndex = plotIndex2;\n }\n getDrawableElement() {\n const finalData = this.plotData.data.map((d)=>[\n this.xAxis.getScaleValue(d[0]),\n this.yAxis.getScaleValue(d[1])\n ]);\n let path;\n if (this.orientation === \"horizontal\") path = (0, $2YFJl.line)().y((d)=>d[0]).x((d)=>d[1])(finalData);\n else path = (0, $2YFJl.line)().x((d)=>d[0]).y((d)=>d[1])(finalData);\n if (!path) return [];\n return [\n {\n groupTexts: [\n \"plot\",\n `line-plot-${this.plotIndex}`\n ],\n type: \"path\",\n data: [\n {\n path: path,\n strokeFill: this.plotData.strokeFill,\n strokeWidth: this.plotData.strokeWidth\n }\n ]\n }\n ];\n }\n}\nclass $9d74fafee97e6b45$var$BarPlot {\n constructor(barData, boundingRect, xAxis, yAxis, orientation, plotIndex2){\n this.barData = barData;\n this.boundingRect = boundingRect;\n this.xAxis = xAxis;\n this.yAxis = yAxis;\n this.orientation = orientation;\n this.plotIndex = plotIndex2;\n }\n getDrawableElement() {\n const finalData = this.barData.data.map((d)=>[\n this.xAxis.getScaleValue(d[0]),\n this.yAxis.getScaleValue(d[1])\n ]);\n const barPaddingPercent = 0.05;\n const barWidth = Math.min(this.xAxis.getAxisOuterPadding() * 2, this.xAxis.getTickDistance()) * (1 - barPaddingPercent);\n const barWidthHalf = barWidth / 2;\n if (this.orientation === \"horizontal\") return [\n {\n groupTexts: [\n \"plot\",\n `bar-plot-${this.plotIndex}`\n ],\n type: \"rect\",\n data: finalData.map((data)=>({\n x: this.boundingRect.x,\n y: data[0] - barWidthHalf,\n height: barWidth,\n width: data[1] - this.boundingRect.x,\n fill: this.barData.fill,\n strokeWidth: 0,\n strokeFill: this.barData.fill\n }))\n }\n ];\n return [\n {\n groupTexts: [\n \"plot\",\n `bar-plot-${this.plotIndex}`\n ],\n type: \"rect\",\n data: finalData.map((data)=>({\n x: data[0] - barWidthHalf,\n y: data[1],\n width: barWidth,\n height: this.boundingRect.y + this.boundingRect.height - data[1],\n fill: this.barData.fill,\n strokeWidth: 0,\n strokeFill: this.barData.fill\n }))\n }\n ];\n }\n}\nclass $9d74fafee97e6b45$var$BasePlot {\n constructor(chartConfig, chartData, chartThemeConfig){\n this.chartConfig = chartConfig;\n this.chartData = chartData;\n this.chartThemeConfig = chartThemeConfig;\n this.boundingRect = {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n }\n setAxes(xAxis, yAxis) {\n this.xAxis = xAxis;\n this.yAxis = yAxis;\n }\n setBoundingBoxXY(point) {\n this.boundingRect.x = point.x;\n this.boundingRect.y = point.y;\n }\n calculateSpace(availableSpace) {\n this.boundingRect.width = availableSpace.width;\n this.boundingRect.height = availableSpace.height;\n return {\n width: this.boundingRect.width,\n height: this.boundingRect.height\n };\n }\n getDrawableElements() {\n if (!(this.xAxis && this.yAxis)) throw Error(\"Axes must be passed to render Plots\");\n const drawableElem = [];\n for (const [i, plot] of this.chartData.plots.entries())switch(plot.type){\n case \"line\":\n {\n const linePlot = new $9d74fafee97e6b45$var$LinePlot(plot, this.xAxis, this.yAxis, this.chartConfig.chartOrientation, i);\n drawableElem.push(...linePlot.getDrawableElement());\n }\n break;\n case \"bar\":\n {\n const barPlot = new $9d74fafee97e6b45$var$BarPlot(plot, this.boundingRect, this.xAxis, this.yAxis, this.chartConfig.chartOrientation, i);\n drawableElem.push(...barPlot.getDrawableElement());\n }\n break;\n }\n return drawableElem;\n }\n}\nfunction $9d74fafee97e6b45$var$getPlotComponent(chartConfig, chartData, chartThemeConfig) {\n return new $9d74fafee97e6b45$var$BasePlot(chartConfig, chartData, chartThemeConfig);\n}\nclass $9d74fafee97e6b45$var$Orchestrator {\n constructor(chartConfig, chartData, chartThemeConfig, tmpSVGGroup2){\n this.chartConfig = chartConfig;\n this.chartData = chartData;\n this.componentStore = {\n title: $9d74fafee97e6b45$var$getChartTitleComponent(chartConfig, chartData, chartThemeConfig, tmpSVGGroup2),\n plot: $9d74fafee97e6b45$var$getPlotComponent(chartConfig, chartData, chartThemeConfig),\n xAxis: $9d74fafee97e6b45$var$getAxis(chartData.xAxis, chartConfig.xAxis, {\n titleColor: chartThemeConfig.xAxisTitleColor,\n labelColor: chartThemeConfig.xAxisLabelColor,\n tickColor: chartThemeConfig.xAxisTickColor,\n axisLineColor: chartThemeConfig.xAxisLineColor\n }, tmpSVGGroup2),\n yAxis: $9d74fafee97e6b45$var$getAxis(chartData.yAxis, chartConfig.yAxis, {\n titleColor: chartThemeConfig.yAxisTitleColor,\n labelColor: chartThemeConfig.yAxisLabelColor,\n tickColor: chartThemeConfig.yAxisTickColor,\n axisLineColor: chartThemeConfig.yAxisLineColor\n }, tmpSVGGroup2)\n };\n }\n calculateVerticalSpace() {\n let availableWidth = this.chartConfig.width;\n let availableHeight = this.chartConfig.height;\n let plotX = 0;\n let plotY = 0;\n let chartWidth = Math.floor(availableWidth * this.chartConfig.plotReservedSpacePercent / 100);\n let chartHeight = Math.floor(availableHeight * this.chartConfig.plotReservedSpacePercent / 100);\n let spaceUsed = this.componentStore.plot.calculateSpace({\n width: chartWidth,\n height: chartHeight\n });\n availableWidth -= spaceUsed.width;\n availableHeight -= spaceUsed.height;\n spaceUsed = this.componentStore.title.calculateSpace({\n width: this.chartConfig.width,\n height: availableHeight\n });\n plotY = spaceUsed.height;\n availableHeight -= spaceUsed.height;\n this.componentStore.xAxis.setAxisPosition(\"bottom\");\n spaceUsed = this.componentStore.xAxis.calculateSpace({\n width: availableWidth,\n height: availableHeight\n });\n availableHeight -= spaceUsed.height;\n this.componentStore.yAxis.setAxisPosition(\"left\");\n spaceUsed = this.componentStore.yAxis.calculateSpace({\n width: availableWidth,\n height: availableHeight\n });\n plotX = spaceUsed.width;\n availableWidth -= spaceUsed.width;\n if (availableWidth > 0) {\n chartWidth += availableWidth;\n availableWidth = 0;\n }\n if (availableHeight > 0) {\n chartHeight += availableHeight;\n availableHeight = 0;\n }\n this.componentStore.plot.calculateSpace({\n width: chartWidth,\n height: chartHeight\n });\n this.componentStore.plot.setBoundingBoxXY({\n x: plotX,\n y: plotY\n });\n this.componentStore.xAxis.setRange([\n plotX,\n plotX + chartWidth\n ]);\n this.componentStore.xAxis.setBoundingBoxXY({\n x: plotX,\n y: plotY + chartHeight\n });\n this.componentStore.yAxis.setRange([\n plotY,\n plotY + chartHeight\n ]);\n this.componentStore.yAxis.setBoundingBoxXY({\n x: 0,\n y: plotY\n });\n if (this.chartData.plots.some((p)=>$9d74fafee97e6b45$var$isBarPlot(p))) this.componentStore.xAxis.recalculateOuterPaddingToDrawBar();\n }\n calculateHorizontalSpace() {\n let availableWidth = this.chartConfig.width;\n let availableHeight = this.chartConfig.height;\n let titleYEnd = 0;\n let plotX = 0;\n let plotY = 0;\n let chartWidth = Math.floor(availableWidth * this.chartConfig.plotReservedSpacePercent / 100);\n let chartHeight = Math.floor(availableHeight * this.chartConfig.plotReservedSpacePercent / 100);\n let spaceUsed = this.componentStore.plot.calculateSpace({\n width: chartWidth,\n height: chartHeight\n });\n availableWidth -= spaceUsed.width;\n availableHeight -= spaceUsed.height;\n spaceUsed = this.componentStore.title.calculateSpace({\n width: this.chartConfig.width,\n height: availableHeight\n });\n titleYEnd = spaceUsed.height;\n availableHeight -= spaceUsed.height;\n this.componentStore.xAxis.setAxisPosition(\"left\");\n spaceUsed = this.componentStore.xAxis.calculateSpace({\n width: availableWidth,\n height: availableHeight\n });\n availableWidth -= spaceUsed.width;\n plotX = spaceUsed.width;\n this.componentStore.yAxis.setAxisPosition(\"top\");\n spaceUsed = this.componentStore.yAxis.calculateSpace({\n width: availableWidth,\n height: availableHeight\n });\n availableHeight -= spaceUsed.height;\n plotY = titleYEnd + spaceUsed.height;\n if (availableWidth > 0) {\n chartWidth += availableWidth;\n availableWidth = 0;\n }\n if (availableHeight > 0) {\n chartHeight += availableHeight;\n availableHeight = 0;\n }\n this.componentStore.plot.calculateSpace({\n width: chartWidth,\n height: chartHeight\n });\n this.componentStore.plot.setBoundingBoxXY({\n x: plotX,\n y: plotY\n });\n this.componentStore.yAxis.setRange([\n plotX,\n plotX + chartWidth\n ]);\n this.componentStore.yAxis.setBoundingBoxXY({\n x: plotX,\n y: titleYEnd\n });\n this.componentStore.xAxis.setRange([\n plotY,\n plotY + chartHeight\n ]);\n this.componentStore.xAxis.setBoundingBoxXY({\n x: 0,\n y: plotY\n });\n if (this.chartData.plots.some((p)=>$9d74fafee97e6b45$var$isBarPlot(p))) this.componentStore.xAxis.recalculateOuterPaddingToDrawBar();\n }\n calculateSpace() {\n if (this.chartConfig.chartOrientation === \"horizontal\") this.calculateHorizontalSpace();\n else this.calculateVerticalSpace();\n }\n getDrawableElement() {\n this.calculateSpace();\n const drawableElem = [];\n this.componentStore.plot.setAxes(this.componentStore.xAxis, this.componentStore.yAxis);\n for (const component of Object.values(this.componentStore))drawableElem.push(...component.getDrawableElements());\n return drawableElem;\n }\n}\nclass $9d74fafee97e6b45$var$XYChartBuilder {\n static build(config, chartData, chartThemeConfig, tmpSVGGroup2) {\n const orchestrator = new $9d74fafee97e6b45$var$Orchestrator(config, chartData, chartThemeConfig, tmpSVGGroup2);\n return orchestrator.getDrawableElement();\n }\n}\nlet $9d74fafee97e6b45$var$plotIndex = 0;\nlet $9d74fafee97e6b45$var$tmpSVGGroup;\nlet $9d74fafee97e6b45$var$xyChartConfig = $9d74fafee97e6b45$var$getChartDefaultConfig();\nlet $9d74fafee97e6b45$var$xyChartThemeConfig = $9d74fafee97e6b45$var$getChartDefaultThemeConfig();\nlet $9d74fafee97e6b45$var$xyChartData = $9d74fafee97e6b45$var$getChartDefaultData();\nlet $9d74fafee97e6b45$var$plotColorPalette = $9d74fafee97e6b45$var$xyChartThemeConfig.plotColorPalette.split(\",\").map((color)=>color.trim());\nlet $9d74fafee97e6b45$var$hasSetXAxis = false;\nlet $9d74fafee97e6b45$var$hasSetYAxis = false;\nfunction $9d74fafee97e6b45$var$getChartDefaultThemeConfig() {\n const defaultThemeVariables = (0, $4jcZX.E)();\n const config = (0, $4jcZX.F)();\n return (0, $4jcZX.C)(defaultThemeVariables.xyChart, config.themeVariables.xyChart);\n}\nfunction $9d74fafee97e6b45$var$getChartDefaultConfig() {\n const config = (0, $4jcZX.F)();\n return (0, $4jcZX.C)((0, $4jcZX.B).xyChart, config.xyChart);\n}\nfunction $9d74fafee97e6b45$var$getChartDefaultData() {\n return {\n yAxis: {\n type: \"linear\",\n title: \"\",\n min: Infinity,\n max: -Infinity\n },\n xAxis: {\n type: \"band\",\n title: \"\",\n categories: []\n },\n title: \"\",\n plots: []\n };\n}\nfunction $9d74fafee97e6b45$var$textSanitizer(text) {\n const config = (0, $4jcZX.F)();\n return (0, $4jcZX.d)(text.trim(), config);\n}\nfunction $9d74fafee97e6b45$var$setTmpSVGG(SVGG) {\n $9d74fafee97e6b45$var$tmpSVGGroup = SVGG;\n}\nfunction $9d74fafee97e6b45$var$setOrientation(orientation) {\n if (orientation === \"horizontal\") $9d74fafee97e6b45$var$xyChartConfig.chartOrientation = \"horizontal\";\n else $9d74fafee97e6b45$var$xyChartConfig.chartOrientation = \"vertical\";\n}\nfunction $9d74fafee97e6b45$var$setXAxisTitle(title) {\n $9d74fafee97e6b45$var$xyChartData.xAxis.title = $9d74fafee97e6b45$var$textSanitizer(title.text);\n}\nfunction $9d74fafee97e6b45$var$setXAxisRangeData(min, max) {\n $9d74fafee97e6b45$var$xyChartData.xAxis = {\n type: \"linear\",\n title: $9d74fafee97e6b45$var$xyChartData.xAxis.title,\n min: min,\n max: max\n };\n $9d74fafee97e6b45$var$hasSetXAxis = true;\n}\nfunction $9d74fafee97e6b45$var$setXAxisBand(categories) {\n $9d74fafee97e6b45$var$xyChartData.xAxis = {\n type: \"band\",\n title: $9d74fafee97e6b45$var$xyChartData.xAxis.title,\n categories: categories.map((c)=>$9d74fafee97e6b45$var$textSanitizer(c.text))\n };\n $9d74fafee97e6b45$var$hasSetXAxis = true;\n}\nfunction $9d74fafee97e6b45$var$setYAxisTitle(title) {\n $9d74fafee97e6b45$var$xyChartData.yAxis.title = $9d74fafee97e6b45$var$textSanitizer(title.text);\n}\nfunction $9d74fafee97e6b45$var$setYAxisRangeData(min, max) {\n $9d74fafee97e6b45$var$xyChartData.yAxis = {\n type: \"linear\",\n title: $9d74fafee97e6b45$var$xyChartData.yAxis.title,\n min: min,\n max: max\n };\n $9d74fafee97e6b45$var$hasSetYAxis = true;\n}\nfunction $9d74fafee97e6b45$var$setYAxisRangeFromPlotData(data) {\n const minValue = Math.min(...data);\n const maxValue = Math.max(...data);\n const prevMinValue = $9d74fafee97e6b45$var$isLinearAxisData($9d74fafee97e6b45$var$xyChartData.yAxis) ? $9d74fafee97e6b45$var$xyChartData.yAxis.min : Infinity;\n const prevMaxValue = $9d74fafee97e6b45$var$isLinearAxisData($9d74fafee97e6b45$var$xyChartData.yAxis) ? $9d74fafee97e6b45$var$xyChartData.yAxis.max : -Infinity;\n $9d74fafee97e6b45$var$xyChartData.yAxis = {\n type: \"linear\",\n title: $9d74fafee97e6b45$var$xyChartData.yAxis.title,\n min: Math.min(prevMinValue, minValue),\n max: Math.max(prevMaxValue, maxValue)\n };\n}\nfunction $9d74fafee97e6b45$var$transformDataWithoutCategory(data) {\n let retData = [];\n if (data.length === 0) return retData;\n if (!$9d74fafee97e6b45$var$hasSetXAxis) {\n const prevMinValue = $9d74fafee97e6b45$var$isLinearAxisData($9d74fafee97e6b45$var$xyChartData.xAxis) ? $9d74fafee97e6b45$var$xyChartData.xAxis.min : Infinity;\n const prevMaxValue = $9d74fafee97e6b45$var$isLinearAxisData($9d74fafee97e6b45$var$xyChartData.xAxis) ? $9d74fafee97e6b45$var$xyChartData.xAxis.max : -Infinity;\n $9d74fafee97e6b45$var$setXAxisRangeData(Math.min(prevMinValue, 1), Math.max(prevMaxValue, data.length));\n }\n if (!$9d74fafee97e6b45$var$hasSetYAxis) $9d74fafee97e6b45$var$setYAxisRangeFromPlotData(data);\n if ($9d74fafee97e6b45$var$isBandAxisData($9d74fafee97e6b45$var$xyChartData.xAxis)) retData = $9d74fafee97e6b45$var$xyChartData.xAxis.categories.map((c, i)=>[\n c,\n data[i]\n ]);\n if ($9d74fafee97e6b45$var$isLinearAxisData($9d74fafee97e6b45$var$xyChartData.xAxis)) {\n const min = $9d74fafee97e6b45$var$xyChartData.xAxis.min;\n const max = $9d74fafee97e6b45$var$xyChartData.xAxis.max;\n const step = (max - min + 1) / data.length;\n const categories = [];\n for(let i = min; i <= max; i += step)categories.push(`${i}`);\n retData = categories.map((c, i)=>[\n c,\n data[i]\n ]);\n }\n return retData;\n}\nfunction $9d74fafee97e6b45$var$getPlotColorFromPalette(plotIndex2) {\n return $9d74fafee97e6b45$var$plotColorPalette[plotIndex2 === 0 ? 0 : plotIndex2 % $9d74fafee97e6b45$var$plotColorPalette.length];\n}\nfunction $9d74fafee97e6b45$var$setLineData(title, data) {\n const plotData = $9d74fafee97e6b45$var$transformDataWithoutCategory(data);\n $9d74fafee97e6b45$var$xyChartData.plots.push({\n type: \"line\",\n strokeFill: $9d74fafee97e6b45$var$getPlotColorFromPalette($9d74fafee97e6b45$var$plotIndex),\n strokeWidth: 2,\n data: plotData\n });\n $9d74fafee97e6b45$var$plotIndex++;\n}\nfunction $9d74fafee97e6b45$var$setBarData(title, data) {\n const plotData = $9d74fafee97e6b45$var$transformDataWithoutCategory(data);\n $9d74fafee97e6b45$var$xyChartData.plots.push({\n type: \"bar\",\n fill: $9d74fafee97e6b45$var$getPlotColorFromPalette($9d74fafee97e6b45$var$plotIndex),\n data: plotData\n });\n $9d74fafee97e6b45$var$plotIndex++;\n}\nfunction $9d74fafee97e6b45$var$getDrawableElem() {\n if ($9d74fafee97e6b45$var$xyChartData.plots.length === 0) throw Error(\"No Plot to render, please provide a plot with some data\");\n $9d74fafee97e6b45$var$xyChartData.title = (0, $4jcZX.t)();\n return $9d74fafee97e6b45$var$XYChartBuilder.build($9d74fafee97e6b45$var$xyChartConfig, $9d74fafee97e6b45$var$xyChartData, $9d74fafee97e6b45$var$xyChartThemeConfig, $9d74fafee97e6b45$var$tmpSVGGroup);\n}\nfunction $9d74fafee97e6b45$var$getChartThemeConfig() {\n return $9d74fafee97e6b45$var$xyChartThemeConfig;\n}\nfunction $9d74fafee97e6b45$var$getChartConfig() {\n return $9d74fafee97e6b45$var$xyChartConfig;\n}\nconst $9d74fafee97e6b45$var$clear = function() {\n (0, $4jcZX.v)();\n $9d74fafee97e6b45$var$plotIndex = 0;\n $9d74fafee97e6b45$var$xyChartConfig = $9d74fafee97e6b45$var$getChartDefaultConfig();\n $9d74fafee97e6b45$var$xyChartData = $9d74fafee97e6b45$var$getChartDefaultData();\n $9d74fafee97e6b45$var$xyChartThemeConfig = $9d74fafee97e6b45$var$getChartDefaultThemeConfig();\n $9d74fafee97e6b45$var$plotColorPalette = $9d74fafee97e6b45$var$xyChartThemeConfig.plotColorPalette.split(\",\").map((color)=>color.trim());\n $9d74fafee97e6b45$var$hasSetXAxis = false;\n $9d74fafee97e6b45$var$hasSetYAxis = false;\n};\nconst $9d74fafee97e6b45$var$db = {\n getDrawableElem: $9d74fafee97e6b45$var$getDrawableElem,\n clear: $9d74fafee97e6b45$var$clear,\n setAccTitle: $4jcZX.s,\n getAccTitle: $4jcZX.g,\n setDiagramTitle: $4jcZX.q,\n getDiagramTitle: $4jcZX.t,\n getAccDescription: $4jcZX.a,\n setAccDescription: $4jcZX.b,\n setOrientation: $9d74fafee97e6b45$var$setOrientation,\n setXAxisTitle: $9d74fafee97e6b45$var$setXAxisTitle,\n setXAxisRangeData: $9d74fafee97e6b45$var$setXAxisRangeData,\n setXAxisBand: $9d74fafee97e6b45$var$setXAxisBand,\n setYAxisTitle: $9d74fafee97e6b45$var$setYAxisTitle,\n setYAxisRangeData: $9d74fafee97e6b45$var$setYAxisRangeData,\n setLineData: $9d74fafee97e6b45$var$setLineData,\n setBarData: $9d74fafee97e6b45$var$setBarData,\n setTmpSVGG: $9d74fafee97e6b45$var$setTmpSVGG,\n getChartThemeConfig: $9d74fafee97e6b45$var$getChartThemeConfig,\n getChartConfig: $9d74fafee97e6b45$var$getChartConfig\n};\nconst $9d74fafee97e6b45$var$draw = (txt, id, _version, diagObj)=>{\n const db2 = diagObj.db;\n const themeConfig = db2.getChartThemeConfig();\n const chartConfig = db2.getChartConfig();\n function getDominantBaseLine(horizontalPos) {\n return horizontalPos === \"top\" ? \"text-before-edge\" : \"middle\";\n }\n function getTextAnchor(verticalPos) {\n return verticalPos === \"left\" ? \"start\" : verticalPos === \"right\" ? \"end\" : \"middle\";\n }\n function getTextTransformation(data) {\n return `translate(${data.x}, ${data.y}) rotate(${data.rotation || 0})`;\n }\n (0, $4jcZX.l).debug(\"Rendering xychart chart\\n\" + txt);\n const svg = (0, $4jcZX.A)(id);\n const group = svg.append(\"g\").attr(\"class\", \"main\");\n const background = group.append(\"rect\").attr(\"width\", chartConfig.width).attr(\"height\", chartConfig.height).attr(\"class\", \"background\");\n (0, $4jcZX.i)(svg, chartConfig.height, chartConfig.width, true);\n svg.attr(\"viewBox\", `0 0 ${chartConfig.width} ${chartConfig.height}`);\n background.attr(\"fill\", themeConfig.backgroundColor);\n db2.setTmpSVGG(svg.append(\"g\").attr(\"class\", \"mermaid-tmp-group\"));\n const shapes = db2.getDrawableElem();\n const groups = {};\n function getGroup(gList) {\n let elem = group;\n let prefix = \"\";\n for (const [i] of gList.entries()){\n let parent = group;\n if (i > 0 && groups[prefix]) parent = groups[prefix];\n prefix += gList[i];\n elem = groups[prefix];\n if (!elem) elem = groups[prefix] = parent.append(\"g\").attr(\"class\", gList[i]);\n }\n return elem;\n }\n for (const shape of shapes){\n if (shape.data.length === 0) continue;\n const shapeGroup = getGroup(shape.groupTexts);\n switch(shape.type){\n case \"rect\":\n shapeGroup.selectAll(\"rect\").data(shape.data).enter().append(\"rect\").attr(\"x\", (data)=>data.x).attr(\"y\", (data)=>data.y).attr(\"width\", (data)=>data.width).attr(\"height\", (data)=>data.height).attr(\"fill\", (data)=>data.fill).attr(\"stroke\", (data)=>data.strokeFill).attr(\"stroke-width\", (data)=>data.strokeWidth);\n break;\n case \"text\":\n shapeGroup.selectAll(\"text\").data(shape.data).enter().append(\"text\").attr(\"x\", 0).attr(\"y\", 0).attr(\"fill\", (data)=>data.fill).attr(\"font-size\", (data)=>data.fontSize).attr(\"dominant-baseline\", (data)=>getDominantBaseLine(data.verticalPos)).attr(\"text-anchor\", (data)=>getTextAnchor(data.horizontalPos)).attr(\"transform\", (data)=>getTextTransformation(data)).text((data)=>data.text);\n break;\n case \"path\":\n shapeGroup.selectAll(\"path\").data(shape.data).enter().append(\"path\").attr(\"d\", (data)=>data.path).attr(\"fill\", (data)=>data.fill ? data.fill : \"none\").attr(\"stroke\", (data)=>data.strokeFill).attr(\"stroke-width\", (data)=>data.strokeWidth);\n break;\n }\n }\n};\nconst $9d74fafee97e6b45$var$renderer = {\n draw: $9d74fafee97e6b45$var$draw\n};\nconst $9d74fafee97e6b45$export$6118d022d940d562 = {\n parser: $9d74fafee97e6b45$var$parser$1,\n db: $9d74fafee97e6b45$var$db,\n renderer: $9d74fafee97e6b45$var$renderer\n};\n\n});\n\n\n//# sourceMappingURL=xychartDiagram-f11f50a6.50ed85e3.js.map\n","import { l as log, s as setAccTitle, g as getAccTitle, q as setDiagramTitle, t as getDiagramTitle, a as getAccDescription, b as setAccDescription, E as getThemeVariables, F as getConfig, C as cleanAndMerge, B as defaultConfig, v as clear$1, d as sanitizeText, A as selectSvgElement, i as configureSvgSize } from \"./mermaid-6dc72991.js\";\nimport { c as computeDimensionOfText } from \"./createText-ca0c5216.js\";\nimport { scaleBand, scaleLinear, line } from \"d3\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nimport \"mdast-util-from-markdown\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [1, 10, 12, 14, 16, 18, 19, 21, 23], $V1 = [2, 6], $V2 = [1, 3], $V3 = [1, 5], $V4 = [1, 6], $V5 = [1, 7], $V6 = [1, 5, 10, 12, 14, 16, 18, 19, 21, 23, 34, 35, 36], $V7 = [1, 25], $V8 = [1, 26], $V9 = [1, 28], $Va = [1, 29], $Vb = [1, 30], $Vc = [1, 31], $Vd = [1, 32], $Ve = [1, 33], $Vf = [1, 34], $Vg = [1, 35], $Vh = [1, 36], $Vi = [1, 37], $Vj = [1, 43], $Vk = [1, 42], $Vl = [1, 47], $Vm = [1, 50], $Vn = [1, 10, 12, 14, 16, 18, 19, 21, 23, 34, 35, 36], $Vo = [1, 10, 12, 14, 16, 18, 19, 21, 23, 24, 26, 27, 28, 34, 35, 36], $Vp = [1, 10, 12, 14, 16, 18, 19, 21, 23, 24, 26, 27, 28, 34, 35, 36, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50], $Vq = [1, 64];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n 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, \"commaSeparatedNumbers\": 25, \"SQUARE_BRACES_END\": 26, \"NUMBER_WITH_DECIMAL\": 27, \"COMMA\": 28, \"xAxisData\": 29, \"bandData\": 30, \"ARROW_DELIMITER\": 31, \"commaSeparatedTexts\": 32, \"yAxisData\": 33, \"NEWLINE\": 34, \"SEMI\": 35, \"EOF\": 36, \"alphaNum\": 37, \"STR\": 38, \"MD_STR\": 39, \"alphaNumToken\": 40, \"AMP\": 41, \"NUM\": 42, \"ALPHA\": 43, \"PLUS\": 44, \"EQUALS\": 45, \"MULT\": 46, \"DOT\": 47, \"BRKT\": 48, \"MINUS\": 49, \"UNDERSCORE\": 50, \"$accept\": 0, \"$end\": 1 },\n 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\", 27: \"NUMBER_WITH_DECIMAL\", 28: \"COMMA\", 31: \"ARROW_DELIMITER\", 34: \"NEWLINE\", 35: \"SEMI\", 36: \"EOF\", 38: \"STR\", 39: \"MD_STR\", 41: \"AMP\", 42: \"NUM\", 43: \"ALPHA\", 44: \"PLUS\", 45: \"EQUALS\", 46: \"MULT\", 47: \"DOT\", 48: \"BRKT\", 49: \"MINUS\", 50: \"UNDERSCORE\" },\n 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], [13, 1], [13, 2], [13, 1], [29, 1], [29, 3], [30, 3], [32, 3], [32, 1], [15, 1], [15, 2], [15, 1], [33, 3], [4, 1], [4, 1], [4, 1], [11, 1], [11, 1], [11, 1], [37, 1], [37, 2], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 5:\n yy.setOrientation($$[$0]);\n break;\n case 9:\n yy.setDiagramTitle($$[$0].text.trim());\n break;\n case 12:\n yy.setLineData({ text: \"\", type: \"text\" }, $$[$0]);\n break;\n case 13:\n yy.setLineData($$[$0 - 1], $$[$0]);\n break;\n case 14:\n yy.setBarData({ text: \"\", type: \"text\" }, $$[$0]);\n break;\n case 15:\n yy.setBarData($$[$0 - 1], $$[$0]);\n break;\n case 16:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 17:\n case 18:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 19:\n this.$ = $$[$0 - 1];\n break;\n case 20:\n this.$ = [Number($$[$0 - 2]), ...$$[$0]];\n break;\n case 21:\n this.$ = [Number($$[$0])];\n break;\n case 22:\n yy.setXAxisTitle($$[$0]);\n break;\n case 23:\n yy.setXAxisTitle($$[$0 - 1]);\n break;\n case 24:\n yy.setXAxisTitle({ type: \"text\", text: \"\" });\n break;\n case 25:\n yy.setXAxisBand($$[$0]);\n break;\n case 26:\n yy.setXAxisRangeData(Number($$[$0 - 2]), Number($$[$0]));\n break;\n case 27:\n this.$ = $$[$0 - 1];\n break;\n case 28:\n this.$ = [$$[$0 - 2], ...$$[$0]];\n break;\n case 29:\n this.$ = [$$[$0]];\n break;\n case 30:\n yy.setYAxisTitle($$[$0]);\n break;\n case 31:\n yy.setYAxisTitle($$[$0 - 1]);\n break;\n case 32:\n yy.setYAxisTitle({ type: \"text\", text: \"\" });\n break;\n case 33:\n yy.setYAxisRangeData(Number($$[$0 - 2]), Number($$[$0]));\n break;\n case 37:\n this.$ = { text: $$[$0], type: \"text\" };\n break;\n case 38:\n this.$ = { text: $$[$0], type: \"text\" };\n break;\n case 39:\n this.$ = { text: $$[$0], type: \"markdown\" };\n break;\n case 40:\n this.$ = $$[$0];\n break;\n case 41:\n this.$ = $$[$0 - 1] + \"\" + $$[$0];\n break;\n }\n },\n table: [o($V0, $V1, { 3: 1, 4: 2, 7: 4, 5: $V2, 34: $V3, 35: $V4, 36: $V5 }), { 1: [3] }, o($V0, $V1, { 4: 2, 7: 4, 3: 8, 5: $V2, 34: $V3, 35: $V4, 36: $V5 }), o($V0, $V1, { 4: 2, 7: 4, 6: 9, 3: 10, 5: $V2, 8: [1, 11], 34: $V3, 35: $V4, 36: $V5 }), { 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] }, o($V6, [2, 34]), o($V6, [2, 35]), o($V6, [2, 36]), { 1: [2, 1] }, o($V0, $V1, { 4: 2, 7: 4, 3: 21, 5: $V2, 34: $V3, 35: $V4, 36: $V5 }), { 1: [2, 3] }, o($V6, [2, 5]), o($V0, [2, 7], { 4: 22, 34: $V3, 35: $V4, 36: $V5 }), { 11: 23, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 11: 39, 13: 38, 24: $Vj, 27: $Vk, 29: 40, 30: 41, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 11: 45, 15: 44, 27: $Vl, 33: 46, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 11: 49, 17: 48, 24: $Vm, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 11: 52, 17: 51, 24: $Vm, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 20: [1, 53] }, { 22: [1, 54] }, o($Vn, [2, 18]), { 1: [2, 2] }, o($Vn, [2, 8]), o($Vn, [2, 9]), o($Vo, [2, 37], { 40: 55, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }), o($Vo, [2, 38]), o($Vo, [2, 39]), o($Vp, [2, 40]), o($Vp, [2, 42]), o($Vp, [2, 43]), o($Vp, [2, 44]), o($Vp, [2, 45]), o($Vp, [2, 46]), o($Vp, [2, 47]), o($Vp, [2, 48]), o($Vp, [2, 49]), o($Vp, [2, 50]), o($Vp, [2, 51]), o($Vn, [2, 10]), o($Vn, [2, 22], { 30: 41, 29: 56, 24: $Vj, 27: $Vk }), o($Vn, [2, 24]), o($Vn, [2, 25]), { 31: [1, 57] }, { 11: 59, 32: 58, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, o($Vn, [2, 11]), o($Vn, [2, 30], { 33: 60, 27: $Vl }), o($Vn, [2, 32]), { 31: [1, 61] }, o($Vn, [2, 12]), { 17: 62, 24: $Vm }, { 25: 63, 27: $Vq }, o($Vn, [2, 14]), { 17: 65, 24: $Vm }, o($Vn, [2, 16]), o($Vn, [2, 17]), o($Vp, [2, 41]), o($Vn, [2, 23]), { 27: [1, 66] }, { 26: [1, 67] }, { 26: [2, 29], 28: [1, 68] }, o($Vn, [2, 31]), { 27: [1, 69] }, o($Vn, [2, 13]), { 26: [1, 70] }, { 26: [2, 21], 28: [1, 71] }, o($Vn, [2, 15]), o($Vn, [2, 26]), o($Vn, [2, 27]), { 11: 59, 32: 72, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, o($Vn, [2, 33]), o($Vn, [2, 19]), { 25: 73, 27: $Vq }, { 26: [2, 28] }, { 26: [2, 20] }],\n defaultActions: { 8: [2, 1], 10: [2, 3], 21: [2, 2], 72: [2, 28], 73: [2, 20] },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n 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).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n break;\n case 1:\n break;\n case 2:\n this.popState();\n return 34;\n case 3:\n this.popState();\n return 34;\n case 4:\n return 34;\n case 5:\n break;\n case 6:\n return 10;\n case 7:\n this.pushState(\"acc_title\");\n return 19;\n case 8:\n this.popState();\n return \"acc_title_value\";\n case 9:\n this.pushState(\"acc_descr\");\n return 21;\n case 10:\n this.popState();\n return \"acc_descr_value\";\n case 11:\n this.pushState(\"acc_descr_multiline\");\n break;\n case 12:\n this.popState();\n break;\n case 13:\n return \"acc_descr_multiline_value\";\n case 14:\n return 5;\n case 15:\n return 8;\n case 16:\n this.pushState(\"axis_data\");\n return \"X_AXIS\";\n case 17:\n this.pushState(\"axis_data\");\n return \"Y_AXIS\";\n case 18:\n this.pushState(\"axis_band_data\");\n return 24;\n case 19:\n return 31;\n case 20:\n this.pushState(\"data\");\n return 16;\n case 21:\n this.pushState(\"data\");\n return 18;\n case 22:\n this.pushState(\"data_inner\");\n return 24;\n case 23:\n return 27;\n case 24:\n this.popState();\n return 26;\n case 25:\n this.popState();\n break;\n case 26:\n this.pushState(\"string\");\n break;\n case 27:\n this.popState();\n break;\n case 28:\n return \"STR\";\n case 29:\n return 24;\n case 30:\n return 26;\n case 31:\n return 43;\n case 32:\n return \"COLON\";\n case 33:\n return 44;\n case 34:\n return 28;\n case 35:\n return 45;\n case 36:\n return 46;\n case 37:\n return 48;\n case 38:\n return 50;\n case 39:\n return 47;\n case 40:\n return 41;\n case 41:\n return 49;\n case 42:\n return 42;\n case 43:\n break;\n case 44:\n return 35;\n case 45:\n return 36;\n }\n },\n 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, /^(?:(?: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\\(\\?:\\(\\?!`\"\\)\\.\\)\\+ \\{ return MD_STR; \\}\\n\\(\\?:`))/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],\n conditions: { \"data_inner\": { \"rules\": [0, 1, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 20, 21, 23, 24, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], \"inclusive\": true }, \"data\": { \"rules\": [0, 1, 3, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 20, 21, 22, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], \"inclusive\": true }, \"axis_band_data\": { \"rules\": [0, 1, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 20, 21, 24, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], \"inclusive\": true }, \"axis_data\": { \"rules\": [0, 1, 2, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 18, 19, 20, 21, 23, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], \"inclusive\": true }, \"acc_descr_multiline\": { \"rules\": [12, 13], \"inclusive\": false }, \"acc_descr\": { \"rules\": [10], \"inclusive\": false }, \"acc_title\": { \"rules\": [8], \"inclusive\": false }, \"title\": { \"rules\": [], \"inclusive\": false }, \"md_string\": { \"rules\": [], \"inclusive\": false }, \"string\": { \"rules\": [27, 28], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 20, 21, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst parser$1 = parser;\nfunction isBarPlot(data) {\n return data.type === \"bar\";\n}\nfunction isBandAxisData(data) {\n return data.type === \"band\";\n}\nfunction isLinearAxisData(data) {\n return data.type === \"linear\";\n}\nclass TextDimensionCalculatorWithFont {\n constructor(parentGroup) {\n this.parentGroup = parentGroup;\n }\n getMaxDimension(texts, fontSize) {\n if (!this.parentGroup) {\n return {\n width: texts.reduce((acc, cur) => Math.max(cur.length, acc), 0) * fontSize,\n height: fontSize\n };\n }\n const dimension = {\n width: 0,\n height: 0\n };\n const elem = this.parentGroup.append(\"g\").attr(\"visibility\", \"hidden\").attr(\"font-size\", fontSize);\n for (const t of texts) {\n const bbox = computeDimensionOfText(elem, 1, t);\n const width = bbox ? bbox.width : t.length * fontSize;\n const height = bbox ? bbox.height : fontSize;\n dimension.width = Math.max(dimension.width, width);\n dimension.height = Math.max(dimension.height, height);\n }\n elem.remove();\n return dimension;\n }\n}\nconst BAR_WIDTH_TO_TICK_WIDTH_RATIO = 0.7;\nconst MAX_OUTER_PADDING_PERCENT_FOR_WRT_LABEL = 0.2;\nclass BaseAxis {\n constructor(axisConfig, title, textDimensionCalculator, axisThemeConfig) {\n this.axisConfig = axisConfig;\n this.title = title;\n this.textDimensionCalculator = textDimensionCalculator;\n this.axisThemeConfig = axisThemeConfig;\n this.boundingRect = { x: 0, y: 0, width: 0, height: 0 };\n this.axisPosition = \"left\";\n this.showTitle = false;\n this.showLabel = false;\n this.showTick = false;\n this.showAxisLine = false;\n this.outerPadding = 0;\n this.titleTextHeight = 0;\n this.labelTextHeight = 0;\n this.range = [0, 10];\n this.boundingRect = { x: 0, y: 0, width: 0, height: 0 };\n this.axisPosition = \"left\";\n }\n setRange(range) {\n this.range = range;\n if (this.axisPosition === \"left\" || this.axisPosition === \"right\") {\n this.boundingRect.height = range[1] - range[0];\n } else {\n this.boundingRect.width = range[1] - range[0];\n }\n this.recalculateScale();\n }\n getRange() {\n return [this.range[0] + this.outerPadding, this.range[1] - this.outerPadding];\n }\n setAxisPosition(axisPosition) {\n this.axisPosition = axisPosition;\n this.setRange(this.range);\n }\n getTickDistance() {\n const range = this.getRange();\n return Math.abs(range[0] - range[1]) / this.getTickValues().length;\n }\n getAxisOuterPadding() {\n return this.outerPadding;\n }\n getLabelDimension() {\n return this.textDimensionCalculator.getMaxDimension(\n this.getTickValues().map((tick) => tick.toString()),\n this.axisConfig.labelFontSize\n );\n }\n recalculateOuterPaddingToDrawBar() {\n if (BAR_WIDTH_TO_TICK_WIDTH_RATIO * this.getTickDistance() > this.outerPadding * 2) {\n this.outerPadding = Math.floor(BAR_WIDTH_TO_TICK_WIDTH_RATIO * this.getTickDistance() / 2);\n }\n this.recalculateScale();\n }\n calculateSpaceIfDrawnHorizontally(availableSpace) {\n let availableHeight = availableSpace.height;\n if (this.axisConfig.showAxisLine && availableHeight > this.axisConfig.axisLineWidth) {\n availableHeight -= this.axisConfig.axisLineWidth;\n this.showAxisLine = true;\n }\n if (this.axisConfig.showLabel) {\n const spaceRequired = this.getLabelDimension();\n const maxPadding = MAX_OUTER_PADDING_PERCENT_FOR_WRT_LABEL * availableSpace.width;\n this.outerPadding = Math.min(spaceRequired.width / 2, maxPadding);\n const heightRequired = spaceRequired.height + this.axisConfig.labelPadding * 2;\n this.labelTextHeight = spaceRequired.height;\n if (heightRequired <= availableHeight) {\n availableHeight -= heightRequired;\n this.showLabel = true;\n }\n }\n if (this.axisConfig.showTick && availableHeight >= this.axisConfig.tickLength) {\n this.showTick = true;\n availableHeight -= this.axisConfig.tickLength;\n }\n if (this.axisConfig.showTitle && this.title) {\n const spaceRequired = this.textDimensionCalculator.getMaxDimension(\n [this.title],\n this.axisConfig.titleFontSize\n );\n const heightRequired = spaceRequired.height + this.axisConfig.titlePadding * 2;\n this.titleTextHeight = spaceRequired.height;\n if (heightRequired <= availableHeight) {\n availableHeight -= heightRequired;\n this.showTitle = true;\n }\n }\n this.boundingRect.width = availableSpace.width;\n this.boundingRect.height = availableSpace.height - availableHeight;\n }\n calculateSpaceIfDrawnVertical(availableSpace) {\n let availableWidth = availableSpace.width;\n if (this.axisConfig.showAxisLine && availableWidth > this.axisConfig.axisLineWidth) {\n availableWidth -= this.axisConfig.axisLineWidth;\n this.showAxisLine = true;\n }\n if (this.axisConfig.showLabel) {\n const spaceRequired = this.getLabelDimension();\n const maxPadding = MAX_OUTER_PADDING_PERCENT_FOR_WRT_LABEL * availableSpace.height;\n this.outerPadding = Math.min(spaceRequired.height / 2, maxPadding);\n const widthRequired = spaceRequired.width + this.axisConfig.labelPadding * 2;\n if (widthRequired <= availableWidth) {\n availableWidth -= widthRequired;\n this.showLabel = true;\n }\n }\n if (this.axisConfig.showTick && availableWidth >= this.axisConfig.tickLength) {\n this.showTick = true;\n availableWidth -= this.axisConfig.tickLength;\n }\n if (this.axisConfig.showTitle && this.title) {\n const spaceRequired = this.textDimensionCalculator.getMaxDimension(\n [this.title],\n this.axisConfig.titleFontSize\n );\n const widthRequired = spaceRequired.height + this.axisConfig.titlePadding * 2;\n this.titleTextHeight = spaceRequired.height;\n if (widthRequired <= availableWidth) {\n availableWidth -= widthRequired;\n this.showTitle = true;\n }\n }\n this.boundingRect.width = availableSpace.width - availableWidth;\n this.boundingRect.height = availableSpace.height;\n }\n calculateSpace(availableSpace) {\n if (this.axisPosition === \"left\" || this.axisPosition === \"right\") {\n this.calculateSpaceIfDrawnVertical(availableSpace);\n } else {\n this.calculateSpaceIfDrawnHorizontally(availableSpace);\n }\n this.recalculateScale();\n return {\n width: this.boundingRect.width,\n height: this.boundingRect.height\n };\n }\n setBoundingBoxXY(point) {\n this.boundingRect.x = point.x;\n this.boundingRect.y = point.y;\n }\n getDrawableElementsForLeftAxis() {\n const drawableElement = [];\n if (this.showAxisLine) {\n const x = this.boundingRect.x + this.boundingRect.width - this.axisConfig.axisLineWidth / 2;\n drawableElement.push({\n type: \"path\",\n groupTexts: [\"left-axis\", \"axisl-line\"],\n data: [\n {\n path: `M ${x},${this.boundingRect.y} L ${x},${this.boundingRect.y + this.boundingRect.height} `,\n strokeFill: this.axisThemeConfig.axisLineColor,\n strokeWidth: this.axisConfig.axisLineWidth\n }\n ]\n });\n }\n if (this.showLabel) {\n drawableElement.push({\n type: \"text\",\n groupTexts: [\"left-axis\", \"label\"],\n data: this.getTickValues().map((tick) => ({\n text: tick.toString(),\n 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),\n y: this.getScaleValue(tick),\n fill: this.axisThemeConfig.labelColor,\n fontSize: this.axisConfig.labelFontSize,\n rotation: 0,\n verticalPos: \"middle\",\n horizontalPos: \"right\"\n }))\n });\n }\n if (this.showTick) {\n const x = this.boundingRect.x + this.boundingRect.width - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0);\n drawableElement.push({\n type: \"path\",\n groupTexts: [\"left-axis\", \"ticks\"],\n data: this.getTickValues().map((tick) => ({\n path: `M ${x},${this.getScaleValue(tick)} L ${x - this.axisConfig.tickLength},${this.getScaleValue(tick)}`,\n strokeFill: this.axisThemeConfig.tickColor,\n strokeWidth: this.axisConfig.tickWidth\n }))\n });\n }\n if (this.showTitle) {\n drawableElement.push({\n type: \"text\",\n groupTexts: [\"left-axis\", \"title\"],\n data: [\n {\n text: this.title,\n x: this.boundingRect.x + this.axisConfig.titlePadding,\n y: this.boundingRect.y + this.boundingRect.height / 2,\n fill: this.axisThemeConfig.titleColor,\n fontSize: this.axisConfig.titleFontSize,\n rotation: 270,\n verticalPos: \"top\",\n horizontalPos: \"center\"\n }\n ]\n });\n }\n return drawableElement;\n }\n getDrawableElementsForBottomAxis() {\n const drawableElement = [];\n if (this.showAxisLine) {\n const y = this.boundingRect.y + this.axisConfig.axisLineWidth / 2;\n drawableElement.push({\n type: \"path\",\n groupTexts: [\"bottom-axis\", \"axis-line\"],\n data: [\n {\n path: `M ${this.boundingRect.x},${y} L ${this.boundingRect.x + this.boundingRect.width},${y}`,\n strokeFill: this.axisThemeConfig.axisLineColor,\n strokeWidth: this.axisConfig.axisLineWidth\n }\n ]\n });\n }\n if (this.showLabel) {\n drawableElement.push({\n type: \"text\",\n groupTexts: [\"bottom-axis\", \"label\"],\n data: this.getTickValues().map((tick) => ({\n text: tick.toString(),\n x: this.getScaleValue(tick),\n y: this.boundingRect.y + this.axisConfig.labelPadding + (this.showTick ? this.axisConfig.tickLength : 0) + (this.showAxisLine ? this.axisConfig.axisLineWidth : 0),\n fill: this.axisThemeConfig.labelColor,\n fontSize: this.axisConfig.labelFontSize,\n rotation: 0,\n verticalPos: \"top\",\n horizontalPos: \"center\"\n }))\n });\n }\n if (this.showTick) {\n const y = this.boundingRect.y + (this.showAxisLine ? this.axisConfig.axisLineWidth : 0);\n drawableElement.push({\n type: \"path\",\n groupTexts: [\"bottom-axis\", \"ticks\"],\n data: this.getTickValues().map((tick) => ({\n path: `M ${this.getScaleValue(tick)},${y} L ${this.getScaleValue(tick)},${y + this.axisConfig.tickLength}`,\n strokeFill: this.axisThemeConfig.tickColor,\n strokeWidth: this.axisConfig.tickWidth\n }))\n });\n }\n if (this.showTitle) {\n drawableElement.push({\n type: \"text\",\n groupTexts: [\"bottom-axis\", \"title\"],\n data: [\n {\n text: this.title,\n x: this.range[0] + (this.range[1] - this.range[0]) / 2,\n y: this.boundingRect.y + this.boundingRect.height - this.axisConfig.titlePadding - this.titleTextHeight,\n fill: this.axisThemeConfig.titleColor,\n fontSize: this.axisConfig.titleFontSize,\n rotation: 0,\n verticalPos: \"top\",\n horizontalPos: \"center\"\n }\n ]\n });\n }\n return drawableElement;\n }\n getDrawableElementsForTopAxis() {\n const drawableElement = [];\n if (this.showAxisLine) {\n const y = this.boundingRect.y + this.boundingRect.height - this.axisConfig.axisLineWidth / 2;\n drawableElement.push({\n type: \"path\",\n groupTexts: [\"top-axis\", \"axis-line\"],\n data: [\n {\n path: `M ${this.boundingRect.x},${y} L ${this.boundingRect.x + this.boundingRect.width},${y}`,\n strokeFill: this.axisThemeConfig.axisLineColor,\n strokeWidth: this.axisConfig.axisLineWidth\n }\n ]\n });\n }\n if (this.showLabel) {\n drawableElement.push({\n type: \"text\",\n groupTexts: [\"top-axis\", \"label\"],\n data: this.getTickValues().map((tick) => ({\n text: tick.toString(),\n x: this.getScaleValue(tick),\n y: this.boundingRect.y + (this.showTitle ? this.titleTextHeight + this.axisConfig.titlePadding * 2 : 0) + this.axisConfig.labelPadding,\n fill: this.axisThemeConfig.labelColor,\n fontSize: this.axisConfig.labelFontSize,\n rotation: 0,\n verticalPos: \"top\",\n horizontalPos: \"center\"\n }))\n });\n }\n if (this.showTick) {\n const y = this.boundingRect.y;\n drawableElement.push({\n type: \"path\",\n groupTexts: [\"top-axis\", \"ticks\"],\n data: this.getTickValues().map((tick) => ({\n path: `M ${this.getScaleValue(tick)},${y + this.boundingRect.height - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0)} L ${this.getScaleValue(tick)},${y + this.boundingRect.height - this.axisConfig.tickLength - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0)}`,\n strokeFill: this.axisThemeConfig.tickColor,\n strokeWidth: this.axisConfig.tickWidth\n }))\n });\n }\n if (this.showTitle) {\n drawableElement.push({\n type: \"text\",\n groupTexts: [\"top-axis\", \"title\"],\n data: [\n {\n text: this.title,\n x: this.boundingRect.x + this.boundingRect.width / 2,\n y: this.boundingRect.y + this.axisConfig.titlePadding,\n fill: this.axisThemeConfig.titleColor,\n fontSize: this.axisConfig.titleFontSize,\n rotation: 0,\n verticalPos: \"top\",\n horizontalPos: \"center\"\n }\n ]\n });\n }\n return drawableElement;\n }\n getDrawableElements() {\n if (this.axisPosition === \"left\") {\n return this.getDrawableElementsForLeftAxis();\n }\n if (this.axisPosition === \"right\") {\n throw Error(\"Drawing of right axis is not implemented\");\n }\n if (this.axisPosition === \"bottom\") {\n return this.getDrawableElementsForBottomAxis();\n }\n if (this.axisPosition === \"top\") {\n return this.getDrawableElementsForTopAxis();\n }\n return [];\n }\n}\nclass BandAxis extends BaseAxis {\n constructor(axisConfig, axisThemeConfig, categories, title, textDimensionCalculator) {\n super(axisConfig, title, textDimensionCalculator, axisThemeConfig);\n this.categories = categories;\n this.scale = scaleBand().domain(this.categories).range(this.getRange());\n }\n setRange(range) {\n super.setRange(range);\n }\n recalculateScale() {\n this.scale = scaleBand().domain(this.categories).range(this.getRange()).paddingInner(1).paddingOuter(0).align(0.5);\n log.trace(\"BandAxis axis final categories, range: \", this.categories, this.getRange());\n }\n getTickValues() {\n return this.categories;\n }\n getScaleValue(value) {\n return this.scale(value) || this.getRange()[0];\n }\n}\nclass LinearAxis extends BaseAxis {\n constructor(axisConfig, axisThemeConfig, domain, title, textDimensionCalculator) {\n super(axisConfig, title, textDimensionCalculator, axisThemeConfig);\n this.domain = domain;\n this.scale = scaleLinear().domain(this.domain).range(this.getRange());\n }\n getTickValues() {\n return this.scale.ticks();\n }\n recalculateScale() {\n const domain = [...this.domain];\n if (this.axisPosition === \"left\") {\n domain.reverse();\n }\n this.scale = scaleLinear().domain(domain).range(this.getRange());\n }\n getScaleValue(value) {\n return this.scale(value);\n }\n}\nfunction getAxis(data, axisConfig, axisThemeConfig, tmpSVGGroup2) {\n const textDimensionCalculator = new TextDimensionCalculatorWithFont(tmpSVGGroup2);\n if (isBandAxisData(data)) {\n return new BandAxis(\n axisConfig,\n axisThemeConfig,\n data.categories,\n data.title,\n textDimensionCalculator\n );\n }\n return new LinearAxis(\n axisConfig,\n axisThemeConfig,\n [data.min, data.max],\n data.title,\n textDimensionCalculator\n );\n}\nclass ChartTitle {\n constructor(textDimensionCalculator, chartConfig, chartData, chartThemeConfig) {\n this.textDimensionCalculator = textDimensionCalculator;\n this.chartConfig = chartConfig;\n this.chartData = chartData;\n this.chartThemeConfig = chartThemeConfig;\n this.boundingRect = {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n this.showChartTitle = false;\n }\n setBoundingBoxXY(point) {\n this.boundingRect.x = point.x;\n this.boundingRect.y = point.y;\n }\n calculateSpace(availableSpace) {\n const titleDimension = this.textDimensionCalculator.getMaxDimension(\n [this.chartData.title],\n this.chartConfig.titleFontSize\n );\n const widthRequired = Math.max(titleDimension.width, availableSpace.width);\n const heightRequired = titleDimension.height + 2 * this.chartConfig.titlePadding;\n if (titleDimension.width <= widthRequired && titleDimension.height <= heightRequired && this.chartConfig.showTitle && this.chartData.title) {\n this.boundingRect.width = widthRequired;\n this.boundingRect.height = heightRequired;\n this.showChartTitle = true;\n }\n return {\n width: this.boundingRect.width,\n height: this.boundingRect.height\n };\n }\n getDrawableElements() {\n const drawableElem = [];\n if (this.showChartTitle) {\n drawableElem.push({\n groupTexts: [\"chart-title\"],\n type: \"text\",\n data: [\n {\n fontSize: this.chartConfig.titleFontSize,\n text: this.chartData.title,\n verticalPos: \"middle\",\n horizontalPos: \"center\",\n x: this.boundingRect.x + this.boundingRect.width / 2,\n y: this.boundingRect.y + this.boundingRect.height / 2,\n fill: this.chartThemeConfig.titleColor,\n rotation: 0\n }\n ]\n });\n }\n return drawableElem;\n }\n}\nfunction getChartTitleComponent(chartConfig, chartData, chartThemeConfig, tmpSVGGroup2) {\n const textDimensionCalculator = new TextDimensionCalculatorWithFont(tmpSVGGroup2);\n return new ChartTitle(textDimensionCalculator, chartConfig, chartData, chartThemeConfig);\n}\nclass LinePlot {\n constructor(plotData, xAxis, yAxis, orientation, plotIndex2) {\n this.plotData = plotData;\n this.xAxis = xAxis;\n this.yAxis = yAxis;\n this.orientation = orientation;\n this.plotIndex = plotIndex2;\n }\n getDrawableElement() {\n const finalData = this.plotData.data.map((d) => [\n this.xAxis.getScaleValue(d[0]),\n this.yAxis.getScaleValue(d[1])\n ]);\n let path;\n if (this.orientation === \"horizontal\") {\n path = line().y((d) => d[0]).x((d) => d[1])(finalData);\n } else {\n path = line().x((d) => d[0]).y((d) => d[1])(finalData);\n }\n if (!path) {\n return [];\n }\n return [\n {\n groupTexts: [\"plot\", `line-plot-${this.plotIndex}`],\n type: \"path\",\n data: [\n {\n path,\n strokeFill: this.plotData.strokeFill,\n strokeWidth: this.plotData.strokeWidth\n }\n ]\n }\n ];\n }\n}\nclass BarPlot {\n constructor(barData, boundingRect, xAxis, yAxis, orientation, plotIndex2) {\n this.barData = barData;\n this.boundingRect = boundingRect;\n this.xAxis = xAxis;\n this.yAxis = yAxis;\n this.orientation = orientation;\n this.plotIndex = plotIndex2;\n }\n getDrawableElement() {\n const finalData = this.barData.data.map((d) => [\n this.xAxis.getScaleValue(d[0]),\n this.yAxis.getScaleValue(d[1])\n ]);\n const barPaddingPercent = 0.05;\n const barWidth = Math.min(this.xAxis.getAxisOuterPadding() * 2, this.xAxis.getTickDistance()) * (1 - barPaddingPercent);\n const barWidthHalf = barWidth / 2;\n if (this.orientation === \"horizontal\") {\n return [\n {\n groupTexts: [\"plot\", `bar-plot-${this.plotIndex}`],\n type: \"rect\",\n data: finalData.map((data) => ({\n x: this.boundingRect.x,\n y: data[0] - barWidthHalf,\n height: barWidth,\n width: data[1] - this.boundingRect.x,\n fill: this.barData.fill,\n strokeWidth: 0,\n strokeFill: this.barData.fill\n }))\n }\n ];\n }\n return [\n {\n groupTexts: [\"plot\", `bar-plot-${this.plotIndex}`],\n type: \"rect\",\n data: finalData.map((data) => ({\n x: data[0] - barWidthHalf,\n y: data[1],\n width: barWidth,\n height: this.boundingRect.y + this.boundingRect.height - data[1],\n fill: this.barData.fill,\n strokeWidth: 0,\n strokeFill: this.barData.fill\n }))\n }\n ];\n }\n}\nclass BasePlot {\n constructor(chartConfig, chartData, chartThemeConfig) {\n this.chartConfig = chartConfig;\n this.chartData = chartData;\n this.chartThemeConfig = chartThemeConfig;\n this.boundingRect = {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n }\n setAxes(xAxis, yAxis) {\n this.xAxis = xAxis;\n this.yAxis = yAxis;\n }\n setBoundingBoxXY(point) {\n this.boundingRect.x = point.x;\n this.boundingRect.y = point.y;\n }\n calculateSpace(availableSpace) {\n this.boundingRect.width = availableSpace.width;\n this.boundingRect.height = availableSpace.height;\n return {\n width: this.boundingRect.width,\n height: this.boundingRect.height\n };\n }\n getDrawableElements() {\n if (!(this.xAxis && this.yAxis)) {\n throw Error(\"Axes must be passed to render Plots\");\n }\n const drawableElem = [];\n for (const [i, plot] of this.chartData.plots.entries()) {\n switch (plot.type) {\n case \"line\":\n {\n const linePlot = new LinePlot(\n plot,\n this.xAxis,\n this.yAxis,\n this.chartConfig.chartOrientation,\n i\n );\n drawableElem.push(...linePlot.getDrawableElement());\n }\n break;\n case \"bar\":\n {\n const barPlot = new BarPlot(\n plot,\n this.boundingRect,\n this.xAxis,\n this.yAxis,\n this.chartConfig.chartOrientation,\n i\n );\n drawableElem.push(...barPlot.getDrawableElement());\n }\n break;\n }\n }\n return drawableElem;\n }\n}\nfunction getPlotComponent(chartConfig, chartData, chartThemeConfig) {\n return new BasePlot(chartConfig, chartData, chartThemeConfig);\n}\nclass Orchestrator {\n constructor(chartConfig, chartData, chartThemeConfig, tmpSVGGroup2) {\n this.chartConfig = chartConfig;\n this.chartData = chartData;\n this.componentStore = {\n title: getChartTitleComponent(chartConfig, chartData, chartThemeConfig, tmpSVGGroup2),\n plot: getPlotComponent(chartConfig, chartData, chartThemeConfig),\n xAxis: getAxis(\n chartData.xAxis,\n chartConfig.xAxis,\n {\n titleColor: chartThemeConfig.xAxisTitleColor,\n labelColor: chartThemeConfig.xAxisLabelColor,\n tickColor: chartThemeConfig.xAxisTickColor,\n axisLineColor: chartThemeConfig.xAxisLineColor\n },\n tmpSVGGroup2\n ),\n yAxis: getAxis(\n chartData.yAxis,\n chartConfig.yAxis,\n {\n titleColor: chartThemeConfig.yAxisTitleColor,\n labelColor: chartThemeConfig.yAxisLabelColor,\n tickColor: chartThemeConfig.yAxisTickColor,\n axisLineColor: chartThemeConfig.yAxisLineColor\n },\n tmpSVGGroup2\n )\n };\n }\n calculateVerticalSpace() {\n let availableWidth = this.chartConfig.width;\n let availableHeight = this.chartConfig.height;\n let plotX = 0;\n let plotY = 0;\n let chartWidth = Math.floor(availableWidth * this.chartConfig.plotReservedSpacePercent / 100);\n let chartHeight = Math.floor(\n availableHeight * this.chartConfig.plotReservedSpacePercent / 100\n );\n let spaceUsed = this.componentStore.plot.calculateSpace({\n width: chartWidth,\n height: chartHeight\n });\n availableWidth -= spaceUsed.width;\n availableHeight -= spaceUsed.height;\n spaceUsed = this.componentStore.title.calculateSpace({\n width: this.chartConfig.width,\n height: availableHeight\n });\n plotY = spaceUsed.height;\n availableHeight -= spaceUsed.height;\n this.componentStore.xAxis.setAxisPosition(\"bottom\");\n spaceUsed = this.componentStore.xAxis.calculateSpace({\n width: availableWidth,\n height: availableHeight\n });\n availableHeight -= spaceUsed.height;\n this.componentStore.yAxis.setAxisPosition(\"left\");\n spaceUsed = this.componentStore.yAxis.calculateSpace({\n width: availableWidth,\n height: availableHeight\n });\n plotX = spaceUsed.width;\n availableWidth -= spaceUsed.width;\n if (availableWidth > 0) {\n chartWidth += availableWidth;\n availableWidth = 0;\n }\n if (availableHeight > 0) {\n chartHeight += availableHeight;\n availableHeight = 0;\n }\n this.componentStore.plot.calculateSpace({\n width: chartWidth,\n height: chartHeight\n });\n this.componentStore.plot.setBoundingBoxXY({ x: plotX, y: plotY });\n this.componentStore.xAxis.setRange([plotX, plotX + chartWidth]);\n this.componentStore.xAxis.setBoundingBoxXY({ x: plotX, y: plotY + chartHeight });\n this.componentStore.yAxis.setRange([plotY, plotY + chartHeight]);\n this.componentStore.yAxis.setBoundingBoxXY({ x: 0, y: plotY });\n if (this.chartData.plots.some((p) => isBarPlot(p))) {\n this.componentStore.xAxis.recalculateOuterPaddingToDrawBar();\n }\n }\n calculateHorizontalSpace() {\n let availableWidth = this.chartConfig.width;\n let availableHeight = this.chartConfig.height;\n let titleYEnd = 0;\n let plotX = 0;\n let plotY = 0;\n let chartWidth = Math.floor(availableWidth * this.chartConfig.plotReservedSpacePercent / 100);\n let chartHeight = Math.floor(\n availableHeight * this.chartConfig.plotReservedSpacePercent / 100\n );\n let spaceUsed = this.componentStore.plot.calculateSpace({\n width: chartWidth,\n height: chartHeight\n });\n availableWidth -= spaceUsed.width;\n availableHeight -= spaceUsed.height;\n spaceUsed = this.componentStore.title.calculateSpace({\n width: this.chartConfig.width,\n height: availableHeight\n });\n titleYEnd = spaceUsed.height;\n availableHeight -= spaceUsed.height;\n this.componentStore.xAxis.setAxisPosition(\"left\");\n spaceUsed = this.componentStore.xAxis.calculateSpace({\n width: availableWidth,\n height: availableHeight\n });\n availableWidth -= spaceUsed.width;\n plotX = spaceUsed.width;\n this.componentStore.yAxis.setAxisPosition(\"top\");\n spaceUsed = this.componentStore.yAxis.calculateSpace({\n width: availableWidth,\n height: availableHeight\n });\n availableHeight -= spaceUsed.height;\n plotY = titleYEnd + spaceUsed.height;\n if (availableWidth > 0) {\n chartWidth += availableWidth;\n availableWidth = 0;\n }\n if (availableHeight > 0) {\n chartHeight += availableHeight;\n availableHeight = 0;\n }\n this.componentStore.plot.calculateSpace({\n width: chartWidth,\n height: chartHeight\n });\n this.componentStore.plot.setBoundingBoxXY({ x: plotX, y: plotY });\n this.componentStore.yAxis.setRange([plotX, plotX + chartWidth]);\n this.componentStore.yAxis.setBoundingBoxXY({ x: plotX, y: titleYEnd });\n this.componentStore.xAxis.setRange([plotY, plotY + chartHeight]);\n this.componentStore.xAxis.setBoundingBoxXY({ x: 0, y: plotY });\n if (this.chartData.plots.some((p) => isBarPlot(p))) {\n this.componentStore.xAxis.recalculateOuterPaddingToDrawBar();\n }\n }\n calculateSpace() {\n if (this.chartConfig.chartOrientation === \"horizontal\") {\n this.calculateHorizontalSpace();\n } else {\n this.calculateVerticalSpace();\n }\n }\n getDrawableElement() {\n this.calculateSpace();\n const drawableElem = [];\n this.componentStore.plot.setAxes(this.componentStore.xAxis, this.componentStore.yAxis);\n for (const component of Object.values(this.componentStore)) {\n drawableElem.push(...component.getDrawableElements());\n }\n return drawableElem;\n }\n}\nclass XYChartBuilder {\n static build(config, chartData, chartThemeConfig, tmpSVGGroup2) {\n const orchestrator = new Orchestrator(config, chartData, chartThemeConfig, tmpSVGGroup2);\n return orchestrator.getDrawableElement();\n }\n}\nlet plotIndex = 0;\nlet tmpSVGGroup;\nlet xyChartConfig = getChartDefaultConfig();\nlet xyChartThemeConfig = getChartDefaultThemeConfig();\nlet xyChartData = getChartDefaultData();\nlet plotColorPalette = xyChartThemeConfig.plotColorPalette.split(\",\").map((color) => color.trim());\nlet hasSetXAxis = false;\nlet hasSetYAxis = false;\nfunction getChartDefaultThemeConfig() {\n const defaultThemeVariables = getThemeVariables();\n const config = getConfig();\n return cleanAndMerge(defaultThemeVariables.xyChart, config.themeVariables.xyChart);\n}\nfunction getChartDefaultConfig() {\n const config = getConfig();\n return cleanAndMerge(\n defaultConfig.xyChart,\n config.xyChart\n );\n}\nfunction getChartDefaultData() {\n return {\n yAxis: {\n type: \"linear\",\n title: \"\",\n min: Infinity,\n max: -Infinity\n },\n xAxis: {\n type: \"band\",\n title: \"\",\n categories: []\n },\n title: \"\",\n plots: []\n };\n}\nfunction textSanitizer(text) {\n const config = getConfig();\n return sanitizeText(text.trim(), config);\n}\nfunction setTmpSVGG(SVGG) {\n tmpSVGGroup = SVGG;\n}\nfunction setOrientation(orientation) {\n if (orientation === \"horizontal\") {\n xyChartConfig.chartOrientation = \"horizontal\";\n } else {\n xyChartConfig.chartOrientation = \"vertical\";\n }\n}\nfunction setXAxisTitle(title) {\n xyChartData.xAxis.title = textSanitizer(title.text);\n}\nfunction setXAxisRangeData(min, max) {\n xyChartData.xAxis = { type: \"linear\", title: xyChartData.xAxis.title, min, max };\n hasSetXAxis = true;\n}\nfunction setXAxisBand(categories) {\n xyChartData.xAxis = {\n type: \"band\",\n title: xyChartData.xAxis.title,\n categories: categories.map((c) => textSanitizer(c.text))\n };\n hasSetXAxis = true;\n}\nfunction setYAxisTitle(title) {\n xyChartData.yAxis.title = textSanitizer(title.text);\n}\nfunction setYAxisRangeData(min, max) {\n xyChartData.yAxis = { type: \"linear\", title: xyChartData.yAxis.title, min, max };\n hasSetYAxis = true;\n}\nfunction setYAxisRangeFromPlotData(data) {\n const minValue = Math.min(...data);\n const maxValue = Math.max(...data);\n const prevMinValue = isLinearAxisData(xyChartData.yAxis) ? xyChartData.yAxis.min : Infinity;\n const prevMaxValue = isLinearAxisData(xyChartData.yAxis) ? xyChartData.yAxis.max : -Infinity;\n xyChartData.yAxis = {\n type: \"linear\",\n title: xyChartData.yAxis.title,\n min: Math.min(prevMinValue, minValue),\n max: Math.max(prevMaxValue, maxValue)\n };\n}\nfunction transformDataWithoutCategory(data) {\n let retData = [];\n if (data.length === 0) {\n return retData;\n }\n if (!hasSetXAxis) {\n const prevMinValue = isLinearAxisData(xyChartData.xAxis) ? xyChartData.xAxis.min : Infinity;\n const prevMaxValue = isLinearAxisData(xyChartData.xAxis) ? xyChartData.xAxis.max : -Infinity;\n setXAxisRangeData(Math.min(prevMinValue, 1), Math.max(prevMaxValue, data.length));\n }\n if (!hasSetYAxis) {\n setYAxisRangeFromPlotData(data);\n }\n if (isBandAxisData(xyChartData.xAxis)) {\n retData = xyChartData.xAxis.categories.map((c, i) => [c, data[i]]);\n }\n if (isLinearAxisData(xyChartData.xAxis)) {\n const min = xyChartData.xAxis.min;\n const max = xyChartData.xAxis.max;\n const step = (max - min + 1) / data.length;\n const categories = [];\n for (let i = min; i <= max; i += step) {\n categories.push(`${i}`);\n }\n retData = categories.map((c, i) => [c, data[i]]);\n }\n return retData;\n}\nfunction getPlotColorFromPalette(plotIndex2) {\n return plotColorPalette[plotIndex2 === 0 ? 0 : plotIndex2 % plotColorPalette.length];\n}\nfunction setLineData(title, data) {\n const plotData = transformDataWithoutCategory(data);\n xyChartData.plots.push({\n type: \"line\",\n strokeFill: getPlotColorFromPalette(plotIndex),\n strokeWidth: 2,\n data: plotData\n });\n plotIndex++;\n}\nfunction setBarData(title, data) {\n const plotData = transformDataWithoutCategory(data);\n xyChartData.plots.push({\n type: \"bar\",\n fill: getPlotColorFromPalette(plotIndex),\n data: plotData\n });\n plotIndex++;\n}\nfunction getDrawableElem() {\n if (xyChartData.plots.length === 0) {\n throw Error(\"No Plot to render, please provide a plot with some data\");\n }\n xyChartData.title = getDiagramTitle();\n return XYChartBuilder.build(xyChartConfig, xyChartData, xyChartThemeConfig, tmpSVGGroup);\n}\nfunction getChartThemeConfig() {\n return xyChartThemeConfig;\n}\nfunction getChartConfig() {\n return xyChartConfig;\n}\nconst clear = function() {\n clear$1();\n plotIndex = 0;\n xyChartConfig = getChartDefaultConfig();\n xyChartData = getChartDefaultData();\n xyChartThemeConfig = getChartDefaultThemeConfig();\n plotColorPalette = xyChartThemeConfig.plotColorPalette.split(\",\").map((color) => color.trim());\n hasSetXAxis = false;\n hasSetYAxis = false;\n};\nconst db = {\n getDrawableElem,\n clear,\n setAccTitle,\n getAccTitle,\n setDiagramTitle,\n getDiagramTitle,\n getAccDescription,\n setAccDescription,\n setOrientation,\n setXAxisTitle,\n setXAxisRangeData,\n setXAxisBand,\n setYAxisTitle,\n setYAxisRangeData,\n setLineData,\n setBarData,\n setTmpSVGG,\n getChartThemeConfig,\n getChartConfig\n};\nconst draw = (txt, id, _version, diagObj) => {\n const db2 = diagObj.db;\n const themeConfig = db2.getChartThemeConfig();\n const chartConfig = db2.getChartConfig();\n function getDominantBaseLine(horizontalPos) {\n return horizontalPos === \"top\" ? \"text-before-edge\" : \"middle\";\n }\n function getTextAnchor(verticalPos) {\n return verticalPos === \"left\" ? \"start\" : verticalPos === \"right\" ? \"end\" : \"middle\";\n }\n function getTextTransformation(data) {\n return `translate(${data.x}, ${data.y}) rotate(${data.rotation || 0})`;\n }\n log.debug(\"Rendering xychart chart\\n\" + txt);\n const svg = selectSvgElement(id);\n const group = svg.append(\"g\").attr(\"class\", \"main\");\n const background = group.append(\"rect\").attr(\"width\", chartConfig.width).attr(\"height\", chartConfig.height).attr(\"class\", \"background\");\n configureSvgSize(svg, chartConfig.height, chartConfig.width, true);\n svg.attr(\"viewBox\", `0 0 ${chartConfig.width} ${chartConfig.height}`);\n background.attr(\"fill\", themeConfig.backgroundColor);\n db2.setTmpSVGG(svg.append(\"g\").attr(\"class\", \"mermaid-tmp-group\"));\n const shapes = db2.getDrawableElem();\n const groups = {};\n function getGroup(gList) {\n let elem = group;\n let prefix = \"\";\n for (const [i] of gList.entries()) {\n let parent = group;\n if (i > 0 && groups[prefix]) {\n parent = groups[prefix];\n }\n prefix += gList[i];\n elem = groups[prefix];\n if (!elem) {\n elem = groups[prefix] = parent.append(\"g\").attr(\"class\", gList[i]);\n }\n }\n return elem;\n }\n for (const shape of shapes) {\n if (shape.data.length === 0) {\n continue;\n }\n const shapeGroup = getGroup(shape.groupTexts);\n switch (shape.type) {\n case \"rect\":\n shapeGroup.selectAll(\"rect\").data(shape.data).enter().append(\"rect\").attr(\"x\", (data) => data.x).attr(\"y\", (data) => data.y).attr(\"width\", (data) => data.width).attr(\"height\", (data) => data.height).attr(\"fill\", (data) => data.fill).attr(\"stroke\", (data) => data.strokeFill).attr(\"stroke-width\", (data) => data.strokeWidth);\n break;\n case \"text\":\n shapeGroup.selectAll(\"text\").data(shape.data).enter().append(\"text\").attr(\"x\", 0).attr(\"y\", 0).attr(\"fill\", (data) => data.fill).attr(\"font-size\", (data) => data.fontSize).attr(\"dominant-baseline\", (data) => getDominantBaseLine(data.verticalPos)).attr(\"text-anchor\", (data) => getTextAnchor(data.horizontalPos)).attr(\"transform\", (data) => getTextTransformation(data)).text((data) => data.text);\n break;\n case \"path\":\n shapeGroup.selectAll(\"path\").data(shape.data).enter().append(\"path\").attr(\"d\", (data) => data.path).attr(\"fill\", (data) => data.fill ? data.fill : \"none\").attr(\"stroke\", (data) => data.strokeFill).attr(\"stroke-width\", (data) => data.strokeWidth);\n break;\n }\n }\n};\nconst renderer = {\n draw\n};\nconst diagram = {\n parser: parser$1,\n db,\n renderer\n};\nexport {\n diagram\n};\n"],"names":["parcelRequire","$parcel$global","globalThis","parcelRegister","register","module","exports","$9d74fafee97e6b45$var$tmpSVGGroup","Object","defineProperty","get","$9d74fafee97e6b45$export$6118d022d940d562","set","s","enumerable","configurable","$4jcZX","$fmBVZ","$2YFJl","$9d74fafee97e6b45$var$parser","o","k","v","o2","l","length","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","$Vb","$Vc","$Vd","$Ve","$Vf","$Vg","$Vh","$Vi","$Vj","$Vk","$Vl","$Vm","$Vn","$Vo","$Vp","$Vq","parser2","trace","yy","symbols_","terminals_","productions_","performAction","yytext","yyleng","yylineno","yystate","$$","_$","$0","setOrientation","setDiagramTitle","text","trim","setLineData","type","setBarData","$","setAccTitle","setAccDescription","Number","setXAxisTitle","setXAxisBand","setXAxisRangeData","setYAxisTitle","setYAxisRangeData","table","defaultActions","parseError","str","hash","recoverable","error","Error","parse","input","self","stack","tstack","vstack","lstack","args","slice","call","arguments","lexer2","create","lexer","sharedState","prototype","hasOwnProperty","setInput","parser","yylloc","yyloc","push","ranges","options","getPrototypeOf","symbol","state","action","r","p","len","newState","expected","yyval","lex","token","pop","Array","errStr","showPosition","join","match","line","loc","first_line","last_line","first_column","last_column","range","apply","concat","Parser","EOF","_input","_more","_backtrack","done","matched","conditionStack","offset","ch","unput","lines","split","substr","oldLines","more","reject","backtrack_lexer","less","n","pastInput","past","replace","upcomingInput","next","pre","c","test_match","indexed_rule","backup","matches","tempMatch","index","rules","_currentRules","i","flex","begin","condition","popState","conditions","topState","Math","abs","pushState","stateStackSize","yy_","$avoiding_name_collisions","YY_START","$9d74fafee97e6b45$var$isBarPlot","data","$9d74fafee97e6b45$var$isBandAxisData","$9d74fafee97e6b45$var$isLinearAxisData","$9d74fafee97e6b45$var$TextDimensionCalculatorWithFont","constructor","parentGroup","getMaxDimension","texts","fontSize","width","reduce","acc","cur","max","height","dimension","elem","append","attr","t","bbox","remove","$9d74fafee97e6b45$var$BaseAxis","axisConfig","title","textDimensionCalculator","axisThemeConfig","boundingRect","x","y","axisPosition","showTitle","showLabel","showTick","showAxisLine","outerPadding","titleTextHeight","labelTextHeight","setRange","recalculateScale","getRange","setAxisPosition","getTickDistance","getTickValues","getAxisOuterPadding","getLabelDimension","map","tick","toString","labelFontSize","recalculateOuterPaddingToDrawBar","floor","$9d74fafee97e6b45$var$BAR_WIDTH_TO_TICK_WIDTH_RATIO","calculateSpaceIfDrawnHorizontally","availableSpace","availableHeight","axisLineWidth","spaceRequired","maxPadding","$9d74fafee97e6b45$var$MAX_OUTER_PADDING_PERCENT_FOR_WRT_LABEL","min","heightRequired","labelPadding","tickLength","titleFontSize","titlePadding","calculateSpaceIfDrawnVertical","availableWidth","widthRequired","calculateSpace","setBoundingBoxXY","point","getDrawableElementsForLeftAxis","drawableElement","groupTexts","path","strokeFill","axisLineColor","strokeWidth","getScaleValue","fill","labelColor","rotation","verticalPos","horizontalPos","tickColor","tickWidth","titleColor","getDrawableElementsForBottomAxis","getDrawableElementsForTopAxis","getDrawableElements","$9d74fafee97e6b45$var$BandAxis","categories","scale","scaleBand","domain","paddingInner","paddingOuter","align","value","$9d74fafee97e6b45$var$LinearAxis","scaleLinear","ticks","reverse","$9d74fafee97e6b45$var$getAxis","tmpSVGGroup2","$9d74fafee97e6b45$var$ChartTitle","chartConfig","chartData","chartThemeConfig","showChartTitle","titleDimension","drawableElem","$9d74fafee97e6b45$var$LinePlot","plotData","xAxis","yAxis","orientation","plotIndex2","plotIndex","getDrawableElement","finalData","d","$9d74fafee97e6b45$var$BarPlot","barData","barWidth","barWidthHalf","$9d74fafee97e6b45$var$BasePlot","setAxes","plot","plots","entries","linePlot","chartOrientation","barPlot","$9d74fafee97e6b45$var$Orchestrator","componentStore","xAxisTitleColor","xAxisLabelColor","xAxisTickColor","xAxisLineColor","yAxisTitleColor","yAxisLabelColor","yAxisTickColor","yAxisLineColor","calculateVerticalSpace","plotX","plotY","chartWidth","plotReservedSpacePercent","chartHeight","spaceUsed","some","calculateHorizontalSpace","titleYEnd","component","values","$9d74fafee97e6b45$var$XYChartBuilder","build","config","orchestrator","$9d74fafee97e6b45$var$plotIndex","$9d74fafee97e6b45$var$xyChartConfig","$9d74fafee97e6b45$var$getChartDefaultConfig","$9d74fafee97e6b45$var$xyChartThemeConfig","$9d74fafee97e6b45$var$getChartDefaultThemeConfig","$9d74fafee97e6b45$var$xyChartData","$9d74fafee97e6b45$var$getChartDefaultData","$9d74fafee97e6b45$var$plotColorPalette","plotColorPalette","color","$9d74fafee97e6b45$var$hasSetXAxis","$9d74fafee97e6b45$var$hasSetYAxis","defaultThemeVariables","E","F","C","xyChart","themeVariables","B","Infinity","$9d74fafee97e6b45$var$textSanitizer","$9d74fafee97e6b45$var$setXAxisRangeData","$9d74fafee97e6b45$var$transformDataWithoutCategory","retData","$9d74fafee97e6b45$var$setYAxisRangeFromPlotData","minValue","maxValue","prevMinValue","prevMaxValue","step","$9d74fafee97e6b45$var$getPlotColorFromPalette","db","getDrawableElem","clear","getAccTitle","g","q","getDiagramTitle","getAccDescription","a","b","setTmpSVGG","SVGG","getChartThemeConfig","getChartConfig","renderer","draw","txt","id","_version","diagObj","db2","themeConfig","debug","svg","A","group","background","backgroundColor","shapes","groups","shape","shapeGroup","getGroup","gList","prefix","parent","selectAll","enter"],"version":3,"file":"xychartDiagram-f11f50a6.50ed85e3.js.map"}