Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
webapp.quadrantDiagram-c759a472.01f9dd4d.js.map Maven / Gradle / Ivy
{"mappings":"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GAAI,GAAI,GAAI,EAAG,CAAC,EAAG,EAAE,CAAE,EAAG,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,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,EAAE,EAAG,CAAE,EAAG,GAAI,GAAI,EAAK,GAAI,EAAK,GAAI,CAAI,EAAG,EAAE,EAAK,EAAK,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,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,EAAE,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,AAAC,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,AAAC,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,AAAC,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,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,EAAK,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,EAAK,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,EAAK,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,EAAK,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,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,CAAI,EAAG,CAAE,EAAG,EAAK,GAAI,CAAC,EAAG,GAAG,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,EAAK,GAAI,EAAK,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,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,EAAE,EAAG,EAAE,EAAK,CAAC,EAAG,EAAE,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,EAAG,EAAK,GAAI,CAAC,EAAG,GAAG,CAAE,GAAI,EAAK,GAAI,EAAK,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,CAAE,CAAE,GAAI,GAAI,GAAI,GAAI,EAAG,EAAK,GAAI,CAAC,EAAG,GAAG,CAAE,GAAI,EAAK,GAAI,EAAK,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,CAAE,CAAE,GAAI,GAAI,GAAI,GAAI,EAAG,EAAK,GAAI,EAAK,GAAI,EAAK,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,CAAE,CAAE,GAAI,GAAI,GAAI,GAAI,EAAG,EAAK,GAAI,EAAK,GAAI,EAAK,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,CAAE,CAAE,GAAI,GAAI,GAAI,GAAI,EAAG,EAAK,GAAI,EAAK,GAAI,EAAK,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,CAAE,CAAE,GAAI,GAAI,GAAI,GAAI,EAAG,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,CAAI,GAAI,CAAE,GAAI,CAAC,EAAG,GAAG,AAAC,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,EAAK,GAAI,EAAK,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,CAAE,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,CAAI,GAAI,CAAE,GAAI,CAAC,EAAG,GAAG,AAAC,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,CAAE,CAAE,GAAI,GAAI,GAAI,GAAI,EAAG,EAAK,GAAI,EAAK,GAAI,EAAK,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,CAAE,CAAE,GAAI,GAAI,GAAI,GAAI,EAAG,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,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","sources":["","node_modules/mermaid/dist/quadrantDiagram-c759a472.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[\"parcelRequire3bab\"];\nvar parcelRegister = parcelRequire.register;\nparcelRegister(\"4EBVK\", function(module, exports) {\n\n$parcel$export(module.exports, \"diagram\", () => $3638520e3a9ea8ca$export$6118d022d940d562);\n\nvar $4jcZX = parcelRequire(\"4jcZX\");\n\nvar $2YFJl = parcelRequire(\"2YFJl\");\nparcelRequire(\"eJNXH\");\nparcelRequire(\"gngdn\");\nparcelRequire(\"2ujND\");\nparcelRequire(\"i8Fxz\");\n\n\n\n\n\nvar $3638520e3a9ea8ca$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 3\n ], $V1 = [\n 1,\n 4\n ], $V2 = [\n 1,\n 5\n ], $V3 = [\n 1,\n 6\n ], $V4 = [\n 1,\n 7\n ], $V5 = [\n 1,\n 5,\n 13,\n 15,\n 17,\n 19,\n 20,\n 25,\n 27,\n 28,\n 29,\n 30,\n 31,\n 32,\n 33,\n 34,\n 37,\n 38,\n 40,\n 41,\n 42,\n 43,\n 44,\n 45,\n 46,\n 47,\n 48,\n 49,\n 50\n ], $V6 = [\n 1,\n 5,\n 6,\n 13,\n 15,\n 17,\n 19,\n 20,\n 25,\n 27,\n 28,\n 29,\n 30,\n 31,\n 32,\n 33,\n 34,\n 37,\n 38,\n 40,\n 41,\n 42,\n 43,\n 44,\n 45,\n 46,\n 47,\n 48,\n 49,\n 50\n ], $V7 = [\n 32,\n 33,\n 34\n ], $V8 = [\n 2,\n 7\n ], $V9 = [\n 1,\n 13\n ], $Va = [\n 1,\n 17\n ], $Vb = [\n 1,\n 18\n ], $Vc = [\n 1,\n 19\n ], $Vd = [\n 1,\n 20\n ], $Ve = [\n 1,\n 21\n ], $Vf = [\n 1,\n 22\n ], $Vg = [\n 1,\n 23\n ], $Vh = [\n 1,\n 24\n ], $Vi = [\n 1,\n 25\n ], $Vj = [\n 1,\n 26\n ], $Vk = [\n 1,\n 27\n ], $Vl = [\n 1,\n 30\n ], $Vm = [\n 1,\n 31\n ], $Vn = [\n 1,\n 32\n ], $Vo = [\n 1,\n 33\n ], $Vp = [\n 1,\n 34\n ], $Vq = [\n 1,\n 35\n ], $Vr = [\n 1,\n 36\n ], $Vs = [\n 1,\n 37\n ], $Vt = [\n 1,\n 38\n ], $Vu = [\n 1,\n 39\n ], $Vv = [\n 1,\n 40\n ], $Vw = [\n 1,\n 41\n ], $Vx = [\n 1,\n 42\n ], $Vy = [\n 1,\n 57\n ], $Vz = [\n 1,\n 58\n ], $VA = [\n 5,\n 22,\n 26,\n 32,\n 33,\n 34,\n 40,\n 41,\n 42,\n 43,\n 44,\n 45,\n 46,\n 47,\n 48,\n 49,\n 50,\n 51\n ];\n var parser2 = {\n trace: function trace() {},\n yy: {},\n symbols_: {\n \"error\": 2,\n \"start\": 3,\n \"eol\": 4,\n \"SPACE\": 5,\n \"QUADRANT\": 6,\n \"document\": 7,\n \"line\": 8,\n \"statement\": 9,\n \"axisDetails\": 10,\n \"quadrantDetails\": 11,\n \"points\": 12,\n \"title\": 13,\n \"title_value\": 14,\n \"acc_title\": 15,\n \"acc_title_value\": 16,\n \"acc_descr\": 17,\n \"acc_descr_value\": 18,\n \"acc_descr_multiline_value\": 19,\n \"section\": 20,\n \"text\": 21,\n \"point_start\": 22,\n \"point_x\": 23,\n \"point_y\": 24,\n \"X-AXIS\": 25,\n \"AXIS-TEXT-DELIMITER\": 26,\n \"Y-AXIS\": 27,\n \"QUADRANT_1\": 28,\n \"QUADRANT_2\": 29,\n \"QUADRANT_3\": 30,\n \"QUADRANT_4\": 31,\n \"NEWLINE\": 32,\n \"SEMI\": 33,\n \"EOF\": 34,\n \"alphaNumToken\": 35,\n \"textNoTagsToken\": 36,\n \"STR\": 37,\n \"MD_STR\": 38,\n \"alphaNum\": 39,\n \"PUNCTUATION\": 40,\n \"AMP\": 41,\n \"NUM\": 42,\n \"ALPHA\": 43,\n \"COMMA\": 44,\n \"PLUS\": 45,\n \"EQUALS\": 46,\n \"MULT\": 47,\n \"DOT\": 48,\n \"BRKT\": 49,\n \"UNDERSCORE\": 50,\n \"MINUS\": 51,\n \"$accept\": 0,\n \"$end\": 1\n },\n terminals_: {\n 2: \"error\",\n 5: \"SPACE\",\n 6: \"QUADRANT\",\n 13: \"title\",\n 14: \"title_value\",\n 15: \"acc_title\",\n 16: \"acc_title_value\",\n 17: \"acc_descr\",\n 18: \"acc_descr_value\",\n 19: \"acc_descr_multiline_value\",\n 20: \"section\",\n 22: \"point_start\",\n 23: \"point_x\",\n 24: \"point_y\",\n 25: \"X-AXIS\",\n 26: \"AXIS-TEXT-DELIMITER\",\n 27: \"Y-AXIS\",\n 28: \"QUADRANT_1\",\n 29: \"QUADRANT_2\",\n 30: \"QUADRANT_3\",\n 31: \"QUADRANT_4\",\n 32: \"NEWLINE\",\n 33: \"SEMI\",\n 34: \"EOF\",\n 37: \"STR\",\n 38: \"MD_STR\",\n 40: \"PUNCTUATION\",\n 41: \"AMP\",\n 42: \"NUM\",\n 43: \"ALPHA\",\n 44: \"COMMA\",\n 45: \"PLUS\",\n 46: \"EQUALS\",\n 47: \"MULT\",\n 48: \"DOT\",\n 49: \"BRKT\",\n 50: \"UNDERSCORE\",\n 51: \"MINUS\"\n },\n productions_: [\n 0,\n [\n 3,\n 2\n ],\n [\n 3,\n 2\n ],\n [\n 3,\n 2\n ],\n [\n 7,\n 0\n ],\n [\n 7,\n 2\n ],\n [\n 8,\n 2\n ],\n [\n 9,\n 0\n ],\n [\n 9,\n 2\n ],\n [\n 9,\n 1\n ],\n [\n 9,\n 1\n ],\n [\n 9,\n 1\n ],\n [\n 9,\n 2\n ],\n [\n 9,\n 2\n ],\n [\n 9,\n 2\n ],\n [\n 9,\n 1\n ],\n [\n 9,\n 1\n ],\n [\n 12,\n 4\n ],\n [\n 10,\n 4\n ],\n [\n 10,\n 3\n ],\n [\n 10,\n 2\n ],\n [\n 10,\n 4\n ],\n [\n 10,\n 3\n ],\n [\n 10,\n 2\n ],\n [\n 11,\n 2\n ],\n [\n 11,\n 2\n ],\n [\n 11,\n 2\n ],\n [\n 11,\n 2\n ],\n [\n 4,\n 1\n ],\n [\n 4,\n 1\n ],\n [\n 4,\n 1\n ],\n [\n 21,\n 1\n ],\n [\n 21,\n 2\n ],\n [\n 21,\n 1\n ],\n [\n 21,\n 1\n ],\n [\n 39,\n 1\n ],\n [\n 39,\n 2\n ],\n [\n 35,\n 1\n ],\n [\n 35,\n 1\n ],\n [\n 35,\n 1\n ],\n [\n 35,\n 1\n ],\n [\n 35,\n 1\n ],\n [\n 35,\n 1\n ],\n [\n 35,\n 1\n ],\n [\n 35,\n 1\n ],\n [\n 35,\n 1\n ],\n [\n 35,\n 1\n ],\n [\n 35,\n 1\n ],\n [\n 36,\n 1\n ],\n [\n 36,\n 1\n ],\n [\n 36,\n 1\n ]\n ],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch(yystate){\n case 12:\n this.$ = $$[$0].trim();\n yy.setDiagramTitle(this.$);\n break;\n case 13:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 14:\n case 15:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 16:\n yy.addSection($$[$0].substr(8));\n this.$ = $$[$0].substr(8);\n break;\n case 17:\n yy.addPoint($$[$0 - 3], $$[$0 - 1], $$[$0]);\n break;\n case 18:\n yy.setXAxisLeftText($$[$0 - 2]);\n yy.setXAxisRightText($$[$0]);\n break;\n case 19:\n $$[$0 - 1].text += \" \\u27F6 \";\n yy.setXAxisLeftText($$[$0 - 1]);\n break;\n case 20:\n yy.setXAxisLeftText($$[$0]);\n break;\n case 21:\n yy.setYAxisBottomText($$[$0 - 2]);\n yy.setYAxisTopText($$[$0]);\n break;\n case 22:\n $$[$0 - 1].text += \" \\u27F6 \";\n yy.setYAxisBottomText($$[$0 - 1]);\n break;\n case 23:\n yy.setYAxisBottomText($$[$0]);\n break;\n case 24:\n yy.setQuadrant1Text($$[$0]);\n break;\n case 25:\n yy.setQuadrant2Text($$[$0]);\n break;\n case 26:\n yy.setQuadrant3Text($$[$0]);\n break;\n case 27:\n yy.setQuadrant4Text($$[$0]);\n break;\n case 31:\n this.$ = {\n text: $$[$0],\n type: \"text\"\n };\n break;\n case 32:\n this.$ = {\n text: $$[$0 - 1].text + \"\" + $$[$0],\n type: $$[$0 - 1].type\n };\n break;\n case 33:\n this.$ = {\n text: $$[$0],\n type: \"text\"\n };\n break;\n case 34:\n this.$ = {\n text: $$[$0],\n type: \"markdown\"\n };\n break;\n case 35:\n this.$ = $$[$0];\n break;\n case 36:\n this.$ = $$[$0 - 1] + \"\" + $$[$0];\n break;\n }\n },\n table: [\n {\n 3: 1,\n 4: 2,\n 5: $V0,\n 6: $V1,\n 32: $V2,\n 33: $V3,\n 34: $V4\n },\n {\n 1: [\n 3\n ]\n },\n {\n 3: 8,\n 4: 2,\n 5: $V0,\n 6: $V1,\n 32: $V2,\n 33: $V3,\n 34: $V4\n },\n {\n 3: 9,\n 4: 2,\n 5: $V0,\n 6: $V1,\n 32: $V2,\n 33: $V3,\n 34: $V4\n },\n o($V5, [\n 2,\n 4\n ], {\n 7: 10\n }),\n o($V6, [\n 2,\n 28\n ]),\n o($V6, [\n 2,\n 29\n ]),\n o($V6, [\n 2,\n 30\n ]),\n {\n 1: [\n 2,\n 1\n ]\n },\n {\n 1: [\n 2,\n 2\n ]\n },\n o($V7, $V8, {\n 8: 11,\n 9: 12,\n 10: 14,\n 11: 15,\n 12: 16,\n 21: 28,\n 35: 29,\n 1: [\n 2,\n 3\n ],\n 5: $V9,\n 13: $Va,\n 15: $Vb,\n 17: $Vc,\n 19: $Vd,\n 20: $Ve,\n 25: $Vf,\n 27: $Vg,\n 28: $Vh,\n 29: $Vi,\n 30: $Vj,\n 31: $Vk,\n 37: $Vl,\n 38: $Vm,\n 40: $Vn,\n 41: $Vo,\n 42: $Vp,\n 43: $Vq,\n 44: $Vr,\n 45: $Vs,\n 46: $Vt,\n 47: $Vu,\n 48: $Vv,\n 49: $Vw,\n 50: $Vx\n }),\n o($V5, [\n 2,\n 5\n ]),\n {\n 4: 43,\n 32: $V2,\n 33: $V3,\n 34: $V4\n },\n o($V7, $V8, {\n 10: 14,\n 11: 15,\n 12: 16,\n 21: 28,\n 35: 29,\n 9: 44,\n 5: $V9,\n 13: $Va,\n 15: $Vb,\n 17: $Vc,\n 19: $Vd,\n 20: $Ve,\n 25: $Vf,\n 27: $Vg,\n 28: $Vh,\n 29: $Vi,\n 30: $Vj,\n 31: $Vk,\n 37: $Vl,\n 38: $Vm,\n 40: $Vn,\n 41: $Vo,\n 42: $Vp,\n 43: $Vq,\n 44: $Vr,\n 45: $Vs,\n 46: $Vt,\n 47: $Vu,\n 48: $Vv,\n 49: $Vw,\n 50: $Vx\n }),\n o($V7, [\n 2,\n 9\n ]),\n o($V7, [\n 2,\n 10\n ]),\n o($V7, [\n 2,\n 11\n ]),\n {\n 14: [\n 1,\n 45\n ]\n },\n {\n 16: [\n 1,\n 46\n ]\n },\n {\n 18: [\n 1,\n 47\n ]\n },\n o($V7, [\n 2,\n 15\n ]),\n o($V7, [\n 2,\n 16\n ]),\n {\n 21: 48,\n 35: 29,\n 37: $Vl,\n 38: $Vm,\n 40: $Vn,\n 41: $Vo,\n 42: $Vp,\n 43: $Vq,\n 44: $Vr,\n 45: $Vs,\n 46: $Vt,\n 47: $Vu,\n 48: $Vv,\n 49: $Vw,\n 50: $Vx\n },\n {\n 21: 49,\n 35: 29,\n 37: $Vl,\n 38: $Vm,\n 40: $Vn,\n 41: $Vo,\n 42: $Vp,\n 43: $Vq,\n 44: $Vr,\n 45: $Vs,\n 46: $Vt,\n 47: $Vu,\n 48: $Vv,\n 49: $Vw,\n 50: $Vx\n },\n {\n 21: 50,\n 35: 29,\n 37: $Vl,\n 38: $Vm,\n 40: $Vn,\n 41: $Vo,\n 42: $Vp,\n 43: $Vq,\n 44: $Vr,\n 45: $Vs,\n 46: $Vt,\n 47: $Vu,\n 48: $Vv,\n 49: $Vw,\n 50: $Vx\n },\n {\n 21: 51,\n 35: 29,\n 37: $Vl,\n 38: $Vm,\n 40: $Vn,\n 41: $Vo,\n 42: $Vp,\n 43: $Vq,\n 44: $Vr,\n 45: $Vs,\n 46: $Vt,\n 47: $Vu,\n 48: $Vv,\n 49: $Vw,\n 50: $Vx\n },\n {\n 21: 52,\n 35: 29,\n 37: $Vl,\n 38: $Vm,\n 40: $Vn,\n 41: $Vo,\n 42: $Vp,\n 43: $Vq,\n 44: $Vr,\n 45: $Vs,\n 46: $Vt,\n 47: $Vu,\n 48: $Vv,\n 49: $Vw,\n 50: $Vx\n },\n {\n 21: 53,\n 35: 29,\n 37: $Vl,\n 38: $Vm,\n 40: $Vn,\n 41: $Vo,\n 42: $Vp,\n 43: $Vq,\n 44: $Vr,\n 45: $Vs,\n 46: $Vt,\n 47: $Vu,\n 48: $Vv,\n 49: $Vw,\n 50: $Vx\n },\n {\n 5: $Vy,\n 22: [\n 1,\n 54\n ],\n 35: 56,\n 36: 55,\n 40: $Vn,\n 41: $Vo,\n 42: $Vp,\n 43: $Vq,\n 44: $Vr,\n 45: $Vs,\n 46: $Vt,\n 47: $Vu,\n 48: $Vv,\n 49: $Vw,\n 50: $Vx,\n 51: $Vz\n },\n o($VA, [\n 2,\n 31\n ]),\n o($VA, [\n 2,\n 33\n ]),\n o($VA, [\n 2,\n 34\n ]),\n o($VA, [\n 2,\n 37\n ]),\n o($VA, [\n 2,\n 38\n ]),\n o($VA, [\n 2,\n 39\n ]),\n o($VA, [\n 2,\n 40\n ]),\n o($VA, [\n 2,\n 41\n ]),\n o($VA, [\n 2,\n 42\n ]),\n o($VA, [\n 2,\n 43\n ]),\n o($VA, [\n 2,\n 44\n ]),\n o($VA, [\n 2,\n 45\n ]),\n o($VA, [\n 2,\n 46\n ]),\n o($VA, [\n 2,\n 47\n ]),\n o($V5, [\n 2,\n 6\n ]),\n o($V7, [\n 2,\n 8\n ]),\n o($V7, [\n 2,\n 12\n ]),\n o($V7, [\n 2,\n 13\n ]),\n o($V7, [\n 2,\n 14\n ]),\n o($V7, [\n 2,\n 20\n ], {\n 36: 55,\n 35: 56,\n 5: $Vy,\n 26: [\n 1,\n 59\n ],\n 40: $Vn,\n 41: $Vo,\n 42: $Vp,\n 43: $Vq,\n 44: $Vr,\n 45: $Vs,\n 46: $Vt,\n 47: $Vu,\n 48: $Vv,\n 49: $Vw,\n 50: $Vx,\n 51: $Vz\n }),\n o($V7, [\n 2,\n 23\n ], {\n 36: 55,\n 35: 56,\n 5: $Vy,\n 26: [\n 1,\n 60\n ],\n 40: $Vn,\n 41: $Vo,\n 42: $Vp,\n 43: $Vq,\n 44: $Vr,\n 45: $Vs,\n 46: $Vt,\n 47: $Vu,\n 48: $Vv,\n 49: $Vw,\n 50: $Vx,\n 51: $Vz\n }),\n o($V7, [\n 2,\n 24\n ], {\n 36: 55,\n 35: 56,\n 5: $Vy,\n 40: $Vn,\n 41: $Vo,\n 42: $Vp,\n 43: $Vq,\n 44: $Vr,\n 45: $Vs,\n 46: $Vt,\n 47: $Vu,\n 48: $Vv,\n 49: $Vw,\n 50: $Vx,\n 51: $Vz\n }),\n o($V7, [\n 2,\n 25\n ], {\n 36: 55,\n 35: 56,\n 5: $Vy,\n 40: $Vn,\n 41: $Vo,\n 42: $Vp,\n 43: $Vq,\n 44: $Vr,\n 45: $Vs,\n 46: $Vt,\n 47: $Vu,\n 48: $Vv,\n 49: $Vw,\n 50: $Vx,\n 51: $Vz\n }),\n o($V7, [\n 2,\n 26\n ], {\n 36: 55,\n 35: 56,\n 5: $Vy,\n 40: $Vn,\n 41: $Vo,\n 42: $Vp,\n 43: $Vq,\n 44: $Vr,\n 45: $Vs,\n 46: $Vt,\n 47: $Vu,\n 48: $Vv,\n 49: $Vw,\n 50: $Vx,\n 51: $Vz\n }),\n o($V7, [\n 2,\n 27\n ], {\n 36: 55,\n 35: 56,\n 5: $Vy,\n 40: $Vn,\n 41: $Vo,\n 42: $Vp,\n 43: $Vq,\n 44: $Vr,\n 45: $Vs,\n 46: $Vt,\n 47: $Vu,\n 48: $Vv,\n 49: $Vw,\n 50: $Vx,\n 51: $Vz\n }),\n {\n 23: [\n 1,\n 61\n ]\n },\n o($VA, [\n 2,\n 32\n ]),\n o($VA, [\n 2,\n 48\n ]),\n o($VA, [\n 2,\n 49\n ]),\n o($VA, [\n 2,\n 50\n ]),\n o($V7, [\n 2,\n 19\n ], {\n 35: 29,\n 21: 62,\n 37: $Vl,\n 38: $Vm,\n 40: $Vn,\n 41: $Vo,\n 42: $Vp,\n 43: $Vq,\n 44: $Vr,\n 45: $Vs,\n 46: $Vt,\n 47: $Vu,\n 48: $Vv,\n 49: $Vw,\n 50: $Vx\n }),\n o($V7, [\n 2,\n 22\n ], {\n 35: 29,\n 21: 63,\n 37: $Vl,\n 38: $Vm,\n 40: $Vn,\n 41: $Vo,\n 42: $Vp,\n 43: $Vq,\n 44: $Vr,\n 45: $Vs,\n 46: $Vt,\n 47: $Vu,\n 48: $Vv,\n 49: $Vw,\n 50: $Vx\n }),\n {\n 24: [\n 1,\n 64\n ]\n },\n o($V7, [\n 2,\n 18\n ], {\n 36: 55,\n 35: 56,\n 5: $Vy,\n 40: $Vn,\n 41: $Vo,\n 42: $Vp,\n 43: $Vq,\n 44: $Vr,\n 45: $Vs,\n 46: $Vt,\n 47: $Vu,\n 48: $Vv,\n 49: $Vw,\n 50: $Vx,\n 51: $Vz\n }),\n o($V7, [\n 2,\n 21\n ], {\n 36: 55,\n 35: 56,\n 5: $Vy,\n 40: $Vn,\n 41: $Vo,\n 42: $Vp,\n 43: $Vq,\n 44: $Vr,\n 45: $Vs,\n 46: $Vt,\n 47: $Vu,\n 48: $Vv,\n 49: $Vw,\n 50: $Vx,\n 51: $Vz\n }),\n o($V7, [\n 2,\n 17\n ])\n ],\n defaultActions: {\n 8: [\n 2,\n 1\n ],\n 9: [\n 2,\n 2\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 return 32;\n case 3:\n break;\n case 4:\n this.begin(\"title\");\n return 13;\n case 5:\n this.popState();\n return \"title_value\";\n case 6:\n this.begin(\"acc_title\");\n return 15;\n case 7:\n this.popState();\n return \"acc_title_value\";\n case 8:\n this.begin(\"acc_descr\");\n return 17;\n case 9:\n this.popState();\n return \"acc_descr_value\";\n case 10:\n this.begin(\"acc_descr_multiline\");\n break;\n case 11:\n this.popState();\n break;\n case 12:\n return \"acc_descr_multiline_value\";\n case 13:\n return 25;\n case 14:\n return 27;\n case 15:\n return 26;\n case 16:\n return 28;\n case 17:\n return 29;\n case 18:\n return 30;\n case 19:\n return 31;\n case 20:\n this.begin(\"md_string\");\n break;\n case 21:\n return \"MD_STR\";\n case 22:\n this.popState();\n break;\n case 23:\n this.begin(\"string\");\n break;\n case 24:\n this.popState();\n break;\n case 25:\n return \"STR\";\n case 26:\n this.begin(\"point_start\");\n return 22;\n case 27:\n this.begin(\"point_x\");\n return 23;\n case 28:\n this.popState();\n break;\n case 29:\n this.popState();\n this.begin(\"point_y\");\n break;\n case 30:\n this.popState();\n return 24;\n case 31:\n return 6;\n case 32:\n return 43;\n case 33:\n return \"COLON\";\n case 34:\n return 45;\n case 35:\n return 44;\n case 36:\n return 46;\n case 37:\n return 46;\n case 38:\n return 47;\n case 39:\n return 49;\n case 40:\n return 50;\n case 41:\n return 48;\n case 42:\n return 41;\n case 43:\n return 51;\n case 44:\n return 42;\n case 45:\n return 5;\n case 46:\n return 33;\n case 47:\n return 40;\n case 48:\n return 34;\n }\n },\n rules: [\n /^(?:%%(?!\\{)[^\\n]*)/i,\n /^(?:[^\\}]%%[^\\n]*)/i,\n /^(?:[\\n\\r]+)/i,\n /^(?:%%[^\\n]*)/i,\n /^(?:title\\b)/i,\n /^(?:(?!\\n||)*[^\\n]*)/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 /^(?: *x-axis *)/i,\n /^(?: *y-axis *)/i,\n /^(?: *--+> *)/i,\n /^(?: *quadrant-1 *)/i,\n /^(?: *quadrant-2 *)/i,\n /^(?: *quadrant-3 *)/i,\n /^(?: *quadrant-4 *)/i,\n /^(?:[\"][`])/i,\n /^(?:[^`\"]+)/i,\n /^(?:[`][\"])/i,\n /^(?:[\"])/i,\n /^(?:[\"])/i,\n /^(?:[^\"]*)/i,\n /^(?:\\s*:\\s*\\[\\s*)/i,\n /^(?:(1)|(0(.\\d+)?))/i,\n /^(?:\\s*\\] *)/i,\n /^(?:\\s*,\\s*)/i,\n /^(?:(1)|(0(.\\d+)?))/i,\n /^(?: *quadrantChart *)/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 /^(?:-)/i,\n /^(?:[0-9]+)/i,\n /^(?:\\s)/i,\n /^(?:;)/i,\n /^(?:[!\"#$%&'*+,-.`?\\\\_/])/i,\n /^(?:$)/i\n ],\n conditions: {\n \"point_y\": {\n \"rules\": [\n 30\n ],\n \"inclusive\": false\n },\n \"point_x\": {\n \"rules\": [\n 29\n ],\n \"inclusive\": false\n },\n \"point_start\": {\n \"rules\": [\n 27,\n 28\n ],\n \"inclusive\": false\n },\n \"acc_descr_multiline\": {\n \"rules\": [\n 11,\n 12\n ],\n \"inclusive\": false\n },\n \"acc_descr\": {\n \"rules\": [\n 9\n ],\n \"inclusive\": false\n },\n \"acc_title\": {\n \"rules\": [\n 7\n ],\n \"inclusive\": false\n },\n \"title\": {\n \"rules\": [\n 5\n ],\n \"inclusive\": false\n },\n \"md_string\": {\n \"rules\": [\n 21,\n 22\n ],\n \"inclusive\": false\n },\n \"string\": {\n \"rules\": [\n 24,\n 25\n ],\n \"inclusive\": false\n },\n \"INITIAL\": {\n \"rules\": [\n 0,\n 1,\n 2,\n 3,\n 4,\n 6,\n 8,\n 10,\n 13,\n 14,\n 15,\n 16,\n 17,\n 18,\n 19,\n 20,\n 23,\n 26,\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 46,\n 47,\n 48\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$3638520e3a9ea8ca$var$parser.parser = $3638520e3a9ea8ca$var$parser;\nconst $3638520e3a9ea8ca$var$parser$1 = $3638520e3a9ea8ca$var$parser;\nconst $3638520e3a9ea8ca$var$defaultThemeVariables = (0, $4jcZX.E)();\nclass $3638520e3a9ea8ca$var$QuadrantBuilder {\n constructor(){\n this.config = this.getDefaultConfig();\n this.themeConfig = this.getDefaultThemeConfig();\n this.data = this.getDefaultData();\n }\n getDefaultData() {\n return {\n titleText: \"\",\n quadrant1Text: \"\",\n quadrant2Text: \"\",\n quadrant3Text: \"\",\n quadrant4Text: \"\",\n xAxisLeftText: \"\",\n xAxisRightText: \"\",\n yAxisBottomText: \"\",\n yAxisTopText: \"\",\n points: []\n };\n }\n getDefaultConfig() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r;\n return {\n showXAxis: true,\n showYAxis: true,\n showTitle: true,\n chartHeight: ((_a = (0, $4jcZX.B).quadrantChart) == null ? void 0 : _a.chartWidth) || 500,\n chartWidth: ((_b = (0, $4jcZX.B).quadrantChart) == null ? void 0 : _b.chartHeight) || 500,\n titlePadding: ((_c = (0, $4jcZX.B).quadrantChart) == null ? void 0 : _c.titlePadding) || 10,\n titleFontSize: ((_d = (0, $4jcZX.B).quadrantChart) == null ? void 0 : _d.titleFontSize) || 20,\n quadrantPadding: ((_e = (0, $4jcZX.B).quadrantChart) == null ? void 0 : _e.quadrantPadding) || 5,\n xAxisLabelPadding: ((_f = (0, $4jcZX.B).quadrantChart) == null ? void 0 : _f.xAxisLabelPadding) || 5,\n yAxisLabelPadding: ((_g = (0, $4jcZX.B).quadrantChart) == null ? void 0 : _g.yAxisLabelPadding) || 5,\n xAxisLabelFontSize: ((_h = (0, $4jcZX.B).quadrantChart) == null ? void 0 : _h.xAxisLabelFontSize) || 16,\n yAxisLabelFontSize: ((_i = (0, $4jcZX.B).quadrantChart) == null ? void 0 : _i.yAxisLabelFontSize) || 16,\n quadrantLabelFontSize: ((_j = (0, $4jcZX.B).quadrantChart) == null ? void 0 : _j.quadrantLabelFontSize) || 16,\n quadrantTextTopPadding: ((_k = (0, $4jcZX.B).quadrantChart) == null ? void 0 : _k.quadrantTextTopPadding) || 5,\n pointTextPadding: ((_l = (0, $4jcZX.B).quadrantChart) == null ? void 0 : _l.pointTextPadding) || 5,\n pointLabelFontSize: ((_m = (0, $4jcZX.B).quadrantChart) == null ? void 0 : _m.pointLabelFontSize) || 12,\n pointRadius: ((_n = (0, $4jcZX.B).quadrantChart) == null ? void 0 : _n.pointRadius) || 5,\n xAxisPosition: ((_o = (0, $4jcZX.B).quadrantChart) == null ? void 0 : _o.xAxisPosition) || \"top\",\n yAxisPosition: ((_p = (0, $4jcZX.B).quadrantChart) == null ? void 0 : _p.yAxisPosition) || \"left\",\n quadrantInternalBorderStrokeWidth: ((_q = (0, $4jcZX.B).quadrantChart) == null ? void 0 : _q.quadrantInternalBorderStrokeWidth) || 1,\n quadrantExternalBorderStrokeWidth: ((_r = (0, $4jcZX.B).quadrantChart) == null ? void 0 : _r.quadrantExternalBorderStrokeWidth) || 2\n };\n }\n getDefaultThemeConfig() {\n return {\n quadrant1Fill: $3638520e3a9ea8ca$var$defaultThemeVariables.quadrant1Fill,\n quadrant2Fill: $3638520e3a9ea8ca$var$defaultThemeVariables.quadrant2Fill,\n quadrant3Fill: $3638520e3a9ea8ca$var$defaultThemeVariables.quadrant3Fill,\n quadrant4Fill: $3638520e3a9ea8ca$var$defaultThemeVariables.quadrant4Fill,\n quadrant1TextFill: $3638520e3a9ea8ca$var$defaultThemeVariables.quadrant1TextFill,\n quadrant2TextFill: $3638520e3a9ea8ca$var$defaultThemeVariables.quadrant2TextFill,\n quadrant3TextFill: $3638520e3a9ea8ca$var$defaultThemeVariables.quadrant3TextFill,\n quadrant4TextFill: $3638520e3a9ea8ca$var$defaultThemeVariables.quadrant4TextFill,\n quadrantPointFill: $3638520e3a9ea8ca$var$defaultThemeVariables.quadrantPointFill,\n quadrantPointTextFill: $3638520e3a9ea8ca$var$defaultThemeVariables.quadrantPointTextFill,\n quadrantXAxisTextFill: $3638520e3a9ea8ca$var$defaultThemeVariables.quadrantXAxisTextFill,\n quadrantYAxisTextFill: $3638520e3a9ea8ca$var$defaultThemeVariables.quadrantYAxisTextFill,\n quadrantTitleFill: $3638520e3a9ea8ca$var$defaultThemeVariables.quadrantTitleFill,\n quadrantInternalBorderStrokeFill: $3638520e3a9ea8ca$var$defaultThemeVariables.quadrantInternalBorderStrokeFill,\n quadrantExternalBorderStrokeFill: $3638520e3a9ea8ca$var$defaultThemeVariables.quadrantExternalBorderStrokeFill\n };\n }\n clear() {\n this.config = this.getDefaultConfig();\n this.themeConfig = this.getDefaultThemeConfig();\n this.data = this.getDefaultData();\n (0, $4jcZX.l).info(\"clear called\");\n }\n setData(data) {\n this.data = {\n ...this.data,\n ...data\n };\n }\n addPoints(points) {\n this.data.points = [\n ...points,\n ...this.data.points\n ];\n }\n setConfig(config2) {\n (0, $4jcZX.l).trace(\"setConfig called with: \", config2);\n this.config = {\n ...this.config,\n ...config2\n };\n }\n setThemeConfig(themeConfig) {\n (0, $4jcZX.l).trace(\"setThemeConfig called with: \", themeConfig);\n this.themeConfig = {\n ...this.themeConfig,\n ...themeConfig\n };\n }\n calculateSpace(xAxisPosition, showXAxis, showYAxis, showTitle) {\n const xAxisSpaceCalculation = this.config.xAxisLabelPadding * 2 + this.config.xAxisLabelFontSize;\n const xAxisSpace = {\n top: xAxisPosition === \"top\" && showXAxis ? xAxisSpaceCalculation : 0,\n bottom: xAxisPosition === \"bottom\" && showXAxis ? xAxisSpaceCalculation : 0\n };\n const yAxisSpaceCalculation = this.config.yAxisLabelPadding * 2 + this.config.yAxisLabelFontSize;\n const yAxisSpace = {\n left: this.config.yAxisPosition === \"left\" && showYAxis ? yAxisSpaceCalculation : 0,\n right: this.config.yAxisPosition === \"right\" && showYAxis ? yAxisSpaceCalculation : 0\n };\n const titleSpaceCalculation = this.config.titleFontSize + this.config.titlePadding * 2;\n const titleSpace = {\n top: showTitle ? titleSpaceCalculation : 0\n };\n const quadrantLeft = this.config.quadrantPadding + yAxisSpace.left;\n const quadrantTop = this.config.quadrantPadding + xAxisSpace.top + titleSpace.top;\n const quadrantWidth = this.config.chartWidth - this.config.quadrantPadding * 2 - yAxisSpace.left - yAxisSpace.right;\n const quadrantHeight = this.config.chartHeight - this.config.quadrantPadding * 2 - xAxisSpace.top - xAxisSpace.bottom - titleSpace.top;\n const quadrantHalfWidth = quadrantWidth / 2;\n const quadrantHalfHeight = quadrantHeight / 2;\n const quadrantSpace = {\n quadrantLeft: quadrantLeft,\n quadrantTop: quadrantTop,\n quadrantWidth: quadrantWidth,\n quadrantHalfWidth: quadrantHalfWidth,\n quadrantHeight: quadrantHeight,\n quadrantHalfHeight: quadrantHalfHeight\n };\n return {\n xAxisSpace: xAxisSpace,\n yAxisSpace: yAxisSpace,\n titleSpace: titleSpace,\n quadrantSpace: quadrantSpace\n };\n }\n getAxisLabels(xAxisPosition, showXAxis, showYAxis, spaceData) {\n const { quadrantSpace: quadrantSpace, titleSpace: titleSpace } = spaceData;\n const { quadrantHalfHeight: quadrantHalfHeight, quadrantHeight: quadrantHeight, quadrantLeft: quadrantLeft, quadrantHalfWidth: quadrantHalfWidth, quadrantTop: quadrantTop, quadrantWidth: quadrantWidth } = quadrantSpace;\n const drawXAxisLabelsInMiddle = Boolean(this.data.xAxisRightText);\n const drawYAxisLabelsInMiddle = Boolean(this.data.yAxisTopText);\n const axisLabels = [];\n if (this.data.xAxisLeftText && showXAxis) axisLabels.push({\n text: this.data.xAxisLeftText,\n fill: this.themeConfig.quadrantXAxisTextFill,\n x: quadrantLeft + (drawXAxisLabelsInMiddle ? quadrantHalfWidth / 2 : 0),\n y: xAxisPosition === \"top\" ? this.config.xAxisLabelPadding + titleSpace.top : this.config.xAxisLabelPadding + quadrantTop + quadrantHeight + this.config.quadrantPadding,\n fontSize: this.config.xAxisLabelFontSize,\n verticalPos: drawXAxisLabelsInMiddle ? \"center\" : \"left\",\n horizontalPos: \"top\",\n rotation: 0\n });\n if (this.data.xAxisRightText && showXAxis) axisLabels.push({\n text: this.data.xAxisRightText,\n fill: this.themeConfig.quadrantXAxisTextFill,\n x: quadrantLeft + quadrantHalfWidth + (drawXAxisLabelsInMiddle ? quadrantHalfWidth / 2 : 0),\n y: xAxisPosition === \"top\" ? this.config.xAxisLabelPadding + titleSpace.top : this.config.xAxisLabelPadding + quadrantTop + quadrantHeight + this.config.quadrantPadding,\n fontSize: this.config.xAxisLabelFontSize,\n verticalPos: drawXAxisLabelsInMiddle ? \"center\" : \"left\",\n horizontalPos: \"top\",\n rotation: 0\n });\n if (this.data.yAxisBottomText && showYAxis) axisLabels.push({\n text: this.data.yAxisBottomText,\n fill: this.themeConfig.quadrantYAxisTextFill,\n x: this.config.yAxisPosition === \"left\" ? this.config.yAxisLabelPadding : this.config.yAxisLabelPadding + quadrantLeft + quadrantWidth + this.config.quadrantPadding,\n y: quadrantTop + quadrantHeight - (drawYAxisLabelsInMiddle ? quadrantHalfHeight / 2 : 0),\n fontSize: this.config.yAxisLabelFontSize,\n verticalPos: drawYAxisLabelsInMiddle ? \"center\" : \"left\",\n horizontalPos: \"top\",\n rotation: -90\n });\n if (this.data.yAxisTopText && showYAxis) axisLabels.push({\n text: this.data.yAxisTopText,\n fill: this.themeConfig.quadrantYAxisTextFill,\n x: this.config.yAxisPosition === \"left\" ? this.config.yAxisLabelPadding : this.config.yAxisLabelPadding + quadrantLeft + quadrantWidth + this.config.quadrantPadding,\n y: quadrantTop + quadrantHalfHeight - (drawYAxisLabelsInMiddle ? quadrantHalfHeight / 2 : 0),\n fontSize: this.config.yAxisLabelFontSize,\n verticalPos: drawYAxisLabelsInMiddle ? \"center\" : \"left\",\n horizontalPos: \"top\",\n rotation: -90\n });\n return axisLabels;\n }\n getQuadrants(spaceData) {\n const { quadrantSpace: quadrantSpace } = spaceData;\n const { quadrantHalfHeight: quadrantHalfHeight, quadrantLeft: quadrantLeft, quadrantHalfWidth: quadrantHalfWidth, quadrantTop: quadrantTop } = quadrantSpace;\n const quadrants = [\n {\n text: {\n text: this.data.quadrant1Text,\n fill: this.themeConfig.quadrant1TextFill,\n x: 0,\n y: 0,\n fontSize: this.config.quadrantLabelFontSize,\n verticalPos: \"center\",\n horizontalPos: \"middle\",\n rotation: 0\n },\n x: quadrantLeft + quadrantHalfWidth,\n y: quadrantTop,\n width: quadrantHalfWidth,\n height: quadrantHalfHeight,\n fill: this.themeConfig.quadrant1Fill\n },\n {\n text: {\n text: this.data.quadrant2Text,\n fill: this.themeConfig.quadrant2TextFill,\n x: 0,\n y: 0,\n fontSize: this.config.quadrantLabelFontSize,\n verticalPos: \"center\",\n horizontalPos: \"middle\",\n rotation: 0\n },\n x: quadrantLeft,\n y: quadrantTop,\n width: quadrantHalfWidth,\n height: quadrantHalfHeight,\n fill: this.themeConfig.quadrant2Fill\n },\n {\n text: {\n text: this.data.quadrant3Text,\n fill: this.themeConfig.quadrant3TextFill,\n x: 0,\n y: 0,\n fontSize: this.config.quadrantLabelFontSize,\n verticalPos: \"center\",\n horizontalPos: \"middle\",\n rotation: 0\n },\n x: quadrantLeft,\n y: quadrantTop + quadrantHalfHeight,\n width: quadrantHalfWidth,\n height: quadrantHalfHeight,\n fill: this.themeConfig.quadrant3Fill\n },\n {\n text: {\n text: this.data.quadrant4Text,\n fill: this.themeConfig.quadrant4TextFill,\n x: 0,\n y: 0,\n fontSize: this.config.quadrantLabelFontSize,\n verticalPos: \"center\",\n horizontalPos: \"middle\",\n rotation: 0\n },\n x: quadrantLeft + quadrantHalfWidth,\n y: quadrantTop + quadrantHalfHeight,\n width: quadrantHalfWidth,\n height: quadrantHalfHeight,\n fill: this.themeConfig.quadrant4Fill\n }\n ];\n for (const quadrant of quadrants){\n quadrant.text.x = quadrant.x + quadrant.width / 2;\n if (this.data.points.length === 0) {\n quadrant.text.y = quadrant.y + quadrant.height / 2;\n quadrant.text.horizontalPos = \"middle\";\n } else {\n quadrant.text.y = quadrant.y + this.config.quadrantTextTopPadding;\n quadrant.text.horizontalPos = \"top\";\n }\n }\n return quadrants;\n }\n getQuadrantPoints(spaceData) {\n const { quadrantSpace: quadrantSpace } = spaceData;\n const { quadrantHeight: quadrantHeight, quadrantLeft: quadrantLeft, quadrantTop: quadrantTop, quadrantWidth: quadrantWidth } = quadrantSpace;\n const xAxis = (0, $2YFJl.scaleLinear)().domain([\n 0,\n 1\n ]).range([\n quadrantLeft,\n quadrantWidth + quadrantLeft\n ]);\n const yAxis = (0, $2YFJl.scaleLinear)().domain([\n 0,\n 1\n ]).range([\n quadrantHeight + quadrantTop,\n quadrantTop\n ]);\n const points = this.data.points.map((point)=>{\n const props = {\n x: xAxis(point.x),\n y: yAxis(point.y),\n fill: this.themeConfig.quadrantPointFill,\n radius: this.config.pointRadius,\n text: {\n text: point.text,\n fill: this.themeConfig.quadrantPointTextFill,\n x: xAxis(point.x),\n y: yAxis(point.y) + this.config.pointTextPadding,\n verticalPos: \"center\",\n horizontalPos: \"top\",\n fontSize: this.config.pointLabelFontSize,\n rotation: 0\n }\n };\n return props;\n });\n return points;\n }\n getBorders(spaceData) {\n const halfExternalBorderWidth = this.config.quadrantExternalBorderStrokeWidth / 2;\n const { quadrantSpace: quadrantSpace } = spaceData;\n const { quadrantHalfHeight: quadrantHalfHeight, quadrantHeight: quadrantHeight, quadrantLeft: quadrantLeft, quadrantHalfWidth: quadrantHalfWidth, quadrantTop: quadrantTop, quadrantWidth: quadrantWidth } = quadrantSpace;\n const borderLines = [\n // top border\n {\n strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill,\n strokeWidth: this.config.quadrantExternalBorderStrokeWidth,\n x1: quadrantLeft - halfExternalBorderWidth,\n y1: quadrantTop,\n x2: quadrantLeft + quadrantWidth + halfExternalBorderWidth,\n y2: quadrantTop\n },\n // right border\n {\n strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill,\n strokeWidth: this.config.quadrantExternalBorderStrokeWidth,\n x1: quadrantLeft + quadrantWidth,\n y1: quadrantTop + halfExternalBorderWidth,\n x2: quadrantLeft + quadrantWidth,\n y2: quadrantTop + quadrantHeight - halfExternalBorderWidth\n },\n // bottom border\n {\n strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill,\n strokeWidth: this.config.quadrantExternalBorderStrokeWidth,\n x1: quadrantLeft - halfExternalBorderWidth,\n y1: quadrantTop + quadrantHeight,\n x2: quadrantLeft + quadrantWidth + halfExternalBorderWidth,\n y2: quadrantTop + quadrantHeight\n },\n // left border\n {\n strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill,\n strokeWidth: this.config.quadrantExternalBorderStrokeWidth,\n x1: quadrantLeft,\n y1: quadrantTop + halfExternalBorderWidth,\n x2: quadrantLeft,\n y2: quadrantTop + quadrantHeight - halfExternalBorderWidth\n },\n // vertical inner border\n {\n strokeFill: this.themeConfig.quadrantInternalBorderStrokeFill,\n strokeWidth: this.config.quadrantInternalBorderStrokeWidth,\n x1: quadrantLeft + quadrantHalfWidth,\n y1: quadrantTop + halfExternalBorderWidth,\n x2: quadrantLeft + quadrantHalfWidth,\n y2: quadrantTop + quadrantHeight - halfExternalBorderWidth\n },\n // horizontal inner border\n {\n strokeFill: this.themeConfig.quadrantInternalBorderStrokeFill,\n strokeWidth: this.config.quadrantInternalBorderStrokeWidth,\n x1: quadrantLeft + halfExternalBorderWidth,\n y1: quadrantTop + quadrantHalfHeight,\n x2: quadrantLeft + quadrantWidth - halfExternalBorderWidth,\n y2: quadrantTop + quadrantHalfHeight\n }\n ];\n return borderLines;\n }\n getTitle(showTitle) {\n if (showTitle) return {\n text: this.data.titleText,\n fill: this.themeConfig.quadrantTitleFill,\n fontSize: this.config.titleFontSize,\n horizontalPos: \"top\",\n verticalPos: \"center\",\n rotation: 0,\n y: this.config.titlePadding,\n x: this.config.chartWidth / 2\n };\n return;\n }\n build() {\n const showXAxis = this.config.showXAxis && !!(this.data.xAxisLeftText || this.data.xAxisRightText);\n const showYAxis = this.config.showYAxis && !!(this.data.yAxisTopText || this.data.yAxisBottomText);\n const showTitle = this.config.showTitle && !!this.data.titleText;\n const xAxisPosition = this.data.points.length > 0 ? \"bottom\" : this.config.xAxisPosition;\n const calculatedSpace = this.calculateSpace(xAxisPosition, showXAxis, showYAxis, showTitle);\n return {\n points: this.getQuadrantPoints(calculatedSpace),\n quadrants: this.getQuadrants(calculatedSpace),\n axisLabels: this.getAxisLabels(xAxisPosition, showXAxis, showYAxis, calculatedSpace),\n borderLines: this.getBorders(calculatedSpace),\n title: this.getTitle(showTitle)\n };\n }\n}\nconst $3638520e3a9ea8ca$var$config = (0, $4jcZX.c)();\nfunction $3638520e3a9ea8ca$var$textSanitizer(text) {\n return (0, $4jcZX.d)(text.trim(), $3638520e3a9ea8ca$var$config);\n}\nconst $3638520e3a9ea8ca$var$quadrantBuilder = new $3638520e3a9ea8ca$var$QuadrantBuilder();\nfunction $3638520e3a9ea8ca$var$setQuadrant1Text(textObj) {\n $3638520e3a9ea8ca$var$quadrantBuilder.setData({\n quadrant1Text: $3638520e3a9ea8ca$var$textSanitizer(textObj.text)\n });\n}\nfunction $3638520e3a9ea8ca$var$setQuadrant2Text(textObj) {\n $3638520e3a9ea8ca$var$quadrantBuilder.setData({\n quadrant2Text: $3638520e3a9ea8ca$var$textSanitizer(textObj.text)\n });\n}\nfunction $3638520e3a9ea8ca$var$setQuadrant3Text(textObj) {\n $3638520e3a9ea8ca$var$quadrantBuilder.setData({\n quadrant3Text: $3638520e3a9ea8ca$var$textSanitizer(textObj.text)\n });\n}\nfunction $3638520e3a9ea8ca$var$setQuadrant4Text(textObj) {\n $3638520e3a9ea8ca$var$quadrantBuilder.setData({\n quadrant4Text: $3638520e3a9ea8ca$var$textSanitizer(textObj.text)\n });\n}\nfunction $3638520e3a9ea8ca$var$setXAxisLeftText(textObj) {\n $3638520e3a9ea8ca$var$quadrantBuilder.setData({\n xAxisLeftText: $3638520e3a9ea8ca$var$textSanitizer(textObj.text)\n });\n}\nfunction $3638520e3a9ea8ca$var$setXAxisRightText(textObj) {\n $3638520e3a9ea8ca$var$quadrantBuilder.setData({\n xAxisRightText: $3638520e3a9ea8ca$var$textSanitizer(textObj.text)\n });\n}\nfunction $3638520e3a9ea8ca$var$setYAxisTopText(textObj) {\n $3638520e3a9ea8ca$var$quadrantBuilder.setData({\n yAxisTopText: $3638520e3a9ea8ca$var$textSanitizer(textObj.text)\n });\n}\nfunction $3638520e3a9ea8ca$var$setYAxisBottomText(textObj) {\n $3638520e3a9ea8ca$var$quadrantBuilder.setData({\n yAxisBottomText: $3638520e3a9ea8ca$var$textSanitizer(textObj.text)\n });\n}\nfunction $3638520e3a9ea8ca$var$addPoint(textObj, x, y) {\n $3638520e3a9ea8ca$var$quadrantBuilder.addPoints([\n {\n x: x,\n y: y,\n text: $3638520e3a9ea8ca$var$textSanitizer(textObj.text)\n }\n ]);\n}\nfunction $3638520e3a9ea8ca$var$setWidth(width) {\n $3638520e3a9ea8ca$var$quadrantBuilder.setConfig({\n chartWidth: width\n });\n}\nfunction $3638520e3a9ea8ca$var$setHeight(height) {\n $3638520e3a9ea8ca$var$quadrantBuilder.setConfig({\n chartHeight: height\n });\n}\nfunction $3638520e3a9ea8ca$var$getQuadrantData() {\n const config2 = (0, $4jcZX.c)();\n const { themeVariables: themeVariables, quadrantChart: quadrantChartConfig } = config2;\n if (quadrantChartConfig) $3638520e3a9ea8ca$var$quadrantBuilder.setConfig(quadrantChartConfig);\n $3638520e3a9ea8ca$var$quadrantBuilder.setThemeConfig({\n quadrant1Fill: themeVariables.quadrant1Fill,\n quadrant2Fill: themeVariables.quadrant2Fill,\n quadrant3Fill: themeVariables.quadrant3Fill,\n quadrant4Fill: themeVariables.quadrant4Fill,\n quadrant1TextFill: themeVariables.quadrant1TextFill,\n quadrant2TextFill: themeVariables.quadrant2TextFill,\n quadrant3TextFill: themeVariables.quadrant3TextFill,\n quadrant4TextFill: themeVariables.quadrant4TextFill,\n quadrantPointFill: themeVariables.quadrantPointFill,\n quadrantPointTextFill: themeVariables.quadrantPointTextFill,\n quadrantXAxisTextFill: themeVariables.quadrantXAxisTextFill,\n quadrantYAxisTextFill: themeVariables.quadrantYAxisTextFill,\n quadrantExternalBorderStrokeFill: themeVariables.quadrantExternalBorderStrokeFill,\n quadrantInternalBorderStrokeFill: themeVariables.quadrantInternalBorderStrokeFill,\n quadrantTitleFill: themeVariables.quadrantTitleFill\n });\n $3638520e3a9ea8ca$var$quadrantBuilder.setData({\n titleText: (0, $4jcZX.t)()\n });\n return $3638520e3a9ea8ca$var$quadrantBuilder.build();\n}\nconst $3638520e3a9ea8ca$var$clear = function() {\n $3638520e3a9ea8ca$var$quadrantBuilder.clear();\n (0, $4jcZX.v)();\n};\nconst $3638520e3a9ea8ca$var$db = {\n setWidth: $3638520e3a9ea8ca$var$setWidth,\n setHeight: $3638520e3a9ea8ca$var$setHeight,\n setQuadrant1Text: $3638520e3a9ea8ca$var$setQuadrant1Text,\n setQuadrant2Text: $3638520e3a9ea8ca$var$setQuadrant2Text,\n setQuadrant3Text: $3638520e3a9ea8ca$var$setQuadrant3Text,\n setQuadrant4Text: $3638520e3a9ea8ca$var$setQuadrant4Text,\n setXAxisLeftText: $3638520e3a9ea8ca$var$setXAxisLeftText,\n setXAxisRightText: $3638520e3a9ea8ca$var$setXAxisRightText,\n setYAxisTopText: $3638520e3a9ea8ca$var$setYAxisTopText,\n setYAxisBottomText: $3638520e3a9ea8ca$var$setYAxisBottomText,\n addPoint: $3638520e3a9ea8ca$var$addPoint,\n getQuadrantData: $3638520e3a9ea8ca$var$getQuadrantData,\n clear: $3638520e3a9ea8ca$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};\nconst $3638520e3a9ea8ca$var$draw = (txt, id, _version, diagObj)=>{\n var _a, _b, _c;\n function getDominantBaseLine(horizontalPos) {\n return horizontalPos === \"top\" ? \"hanging\" : \"middle\";\n }\n function getTextAnchor(verticalPos) {\n return verticalPos === \"left\" ? \"start\" : \"middle\";\n }\n function getTransformation(data) {\n return `translate(${data.x}, ${data.y}) rotate(${data.rotation || 0})`;\n }\n const conf = (0, $4jcZX.c)();\n (0, $4jcZX.l).debug(\"Rendering quadrant chart\\n\" + txt);\n const securityLevel = conf.securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") sandboxElement = (0, $2YFJl.select)(\"#i\" + id);\n const root = securityLevel === \"sandbox\" ? (0, $2YFJl.select)(sandboxElement.nodes()[0].contentDocument.body) : (0, $2YFJl.select)(\"body\");\n const svg = root.select(`[id=\"${id}\"]`);\n const group = svg.append(\"g\").attr(\"class\", \"main\");\n const width = ((_a = conf.quadrantChart) == null ? void 0 : _a.chartWidth) || 500;\n const height = ((_b = conf.quadrantChart) == null ? void 0 : _b.chartHeight) || 500;\n (0, $4jcZX.i)(svg, height, width, ((_c = conf.quadrantChart) == null ? void 0 : _c.useMaxWidth) || true);\n svg.attr(\"viewBox\", \"0 0 \" + width + \" \" + height);\n diagObj.db.setHeight(height);\n diagObj.db.setWidth(width);\n const quadrantData = diagObj.db.getQuadrantData();\n const quadrantsGroup = group.append(\"g\").attr(\"class\", \"quadrants\");\n const borderGroup = group.append(\"g\").attr(\"class\", \"border\");\n const dataPointGroup = group.append(\"g\").attr(\"class\", \"data-points\");\n const labelGroup = group.append(\"g\").attr(\"class\", \"labels\");\n const titleGroup = group.append(\"g\").attr(\"class\", \"title\");\n if (quadrantData.title) titleGroup.append(\"text\").attr(\"x\", 0).attr(\"y\", 0).attr(\"fill\", quadrantData.title.fill).attr(\"font-size\", quadrantData.title.fontSize).attr(\"dominant-baseline\", getDominantBaseLine(quadrantData.title.horizontalPos)).attr(\"text-anchor\", getTextAnchor(quadrantData.title.verticalPos)).attr(\"transform\", getTransformation(quadrantData.title)).text(quadrantData.title.text);\n if (quadrantData.borderLines) borderGroup.selectAll(\"line\").data(quadrantData.borderLines).enter().append(\"line\").attr(\"x1\", (data)=>data.x1).attr(\"y1\", (data)=>data.y1).attr(\"x2\", (data)=>data.x2).attr(\"y2\", (data)=>data.y2).style(\"stroke\", (data)=>data.strokeFill).style(\"stroke-width\", (data)=>data.strokeWidth);\n const quadrants = quadrantsGroup.selectAll(\"g.quadrant\").data(quadrantData.quadrants).enter().append(\"g\").attr(\"class\", \"quadrant\");\n quadrants.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);\n quadrants.append(\"text\").attr(\"x\", 0).attr(\"y\", 0).attr(\"fill\", (data)=>data.text.fill).attr(\"font-size\", (data)=>data.text.fontSize).attr(\"dominant-baseline\", (data)=>getDominantBaseLine(data.text.horizontalPos)).attr(\"text-anchor\", (data)=>getTextAnchor(data.text.verticalPos)).attr(\"transform\", (data)=>getTransformation(data.text)).text((data)=>data.text.text);\n const labels = labelGroup.selectAll(\"g.label\").data(quadrantData.axisLabels).enter().append(\"g\").attr(\"class\", \"label\");\n labels.append(\"text\").attr(\"x\", 0).attr(\"y\", 0).text((data)=>data.text).attr(\"fill\", (data)=>data.fill).attr(\"font-size\", (data)=>data.fontSize).attr(\"dominant-baseline\", (data)=>getDominantBaseLine(data.horizontalPos)).attr(\"text-anchor\", (data)=>getTextAnchor(data.verticalPos)).attr(\"transform\", (data)=>getTransformation(data));\n const dataPoints = dataPointGroup.selectAll(\"g.data-point\").data(quadrantData.points).enter().append(\"g\").attr(\"class\", \"data-point\");\n dataPoints.append(\"circle\").attr(\"cx\", (data)=>data.x).attr(\"cy\", (data)=>data.y).attr(\"r\", (data)=>data.radius).attr(\"fill\", (data)=>data.fill);\n dataPoints.append(\"text\").attr(\"x\", 0).attr(\"y\", 0).text((data)=>data.text.text).attr(\"fill\", (data)=>data.text.fill).attr(\"font-size\", (data)=>data.text.fontSize).attr(\"dominant-baseline\", (data)=>getDominantBaseLine(data.text.horizontalPos)).attr(\"text-anchor\", (data)=>getTextAnchor(data.text.verticalPos)).attr(\"transform\", (data)=>getTransformation(data.text));\n};\nconst $3638520e3a9ea8ca$var$renderer = {\n draw: $3638520e3a9ea8ca$var$draw\n};\nconst $3638520e3a9ea8ca$export$6118d022d940d562 = {\n parser: $3638520e3a9ea8ca$var$parser$1,\n db: $3638520e3a9ea8ca$var$db,\n renderer: $3638520e3a9ea8ca$var$renderer,\n styles: ()=>\"\"\n};\n\n});\n\n\n//# sourceMappingURL=quadrantDiagram-c759a472.01f9dd4d.js.map\n","import { E as getThemeVariables, B as defaultConfig, l as log, s as setAccTitle, g as getAccTitle, q as setDiagramTitle, t as getDiagramTitle, a as getAccDescription, b as setAccDescription, c as getConfig, v as clear$1, d as sanitizeText, i as configureSvgSize } from \"./mermaid-6dc72991.js\";\nimport { scaleLinear, select } 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\";\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, 3], $V1 = [1, 4], $V2 = [1, 5], $V3 = [1, 6], $V4 = [1, 7], $V5 = [1, 5, 13, 15, 17, 19, 20, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50], $V6 = [1, 5, 6, 13, 15, 17, 19, 20, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50], $V7 = [32, 33, 34], $V8 = [2, 7], $V9 = [1, 13], $Va = [1, 17], $Vb = [1, 18], $Vc = [1, 19], $Vd = [1, 20], $Ve = [1, 21], $Vf = [1, 22], $Vg = [1, 23], $Vh = [1, 24], $Vi = [1, 25], $Vj = [1, 26], $Vk = [1, 27], $Vl = [1, 30], $Vm = [1, 31], $Vn = [1, 32], $Vo = [1, 33], $Vp = [1, 34], $Vq = [1, 35], $Vr = [1, 36], $Vs = [1, 37], $Vt = [1, 38], $Vu = [1, 39], $Vv = [1, 40], $Vw = [1, 41], $Vx = [1, 42], $Vy = [1, 57], $Vz = [1, 58], $VA = [5, 22, 26, 32, 33, 34, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"eol\": 4, \"SPACE\": 5, \"QUADRANT\": 6, \"document\": 7, \"line\": 8, \"statement\": 9, \"axisDetails\": 10, \"quadrantDetails\": 11, \"points\": 12, \"title\": 13, \"title_value\": 14, \"acc_title\": 15, \"acc_title_value\": 16, \"acc_descr\": 17, \"acc_descr_value\": 18, \"acc_descr_multiline_value\": 19, \"section\": 20, \"text\": 21, \"point_start\": 22, \"point_x\": 23, \"point_y\": 24, \"X-AXIS\": 25, \"AXIS-TEXT-DELIMITER\": 26, \"Y-AXIS\": 27, \"QUADRANT_1\": 28, \"QUADRANT_2\": 29, \"QUADRANT_3\": 30, \"QUADRANT_4\": 31, \"NEWLINE\": 32, \"SEMI\": 33, \"EOF\": 34, \"alphaNumToken\": 35, \"textNoTagsToken\": 36, \"STR\": 37, \"MD_STR\": 38, \"alphaNum\": 39, \"PUNCTUATION\": 40, \"AMP\": 41, \"NUM\": 42, \"ALPHA\": 43, \"COMMA\": 44, \"PLUS\": 45, \"EQUALS\": 46, \"MULT\": 47, \"DOT\": 48, \"BRKT\": 49, \"UNDERSCORE\": 50, \"MINUS\": 51, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 5: \"SPACE\", 6: \"QUADRANT\", 13: \"title\", 14: \"title_value\", 15: \"acc_title\", 16: \"acc_title_value\", 17: \"acc_descr\", 18: \"acc_descr_value\", 19: \"acc_descr_multiline_value\", 20: \"section\", 22: \"point_start\", 23: \"point_x\", 24: \"point_y\", 25: \"X-AXIS\", 26: \"AXIS-TEXT-DELIMITER\", 27: \"Y-AXIS\", 28: \"QUADRANT_1\", 29: \"QUADRANT_2\", 30: \"QUADRANT_3\", 31: \"QUADRANT_4\", 32: \"NEWLINE\", 33: \"SEMI\", 34: \"EOF\", 37: \"STR\", 38: \"MD_STR\", 40: \"PUNCTUATION\", 41: \"AMP\", 42: \"NUM\", 43: \"ALPHA\", 44: \"COMMA\", 45: \"PLUS\", 46: \"EQUALS\", 47: \"MULT\", 48: \"DOT\", 49: \"BRKT\", 50: \"UNDERSCORE\", 51: \"MINUS\" },\n productions_: [0, [3, 2], [3, 2], [3, 2], [7, 0], [7, 2], [8, 2], [9, 0], [9, 2], [9, 1], [9, 1], [9, 1], [9, 2], [9, 2], [9, 2], [9, 1], [9, 1], [12, 4], [10, 4], [10, 3], [10, 2], [10, 4], [10, 3], [10, 2], [11, 2], [11, 2], [11, 2], [11, 2], [4, 1], [4, 1], [4, 1], [21, 1], [21, 2], [21, 1], [21, 1], [39, 1], [39, 2], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [36, 1], [36, 1], [36, 1]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 12:\n this.$ = $$[$0].trim();\n yy.setDiagramTitle(this.$);\n break;\n case 13:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 14:\n case 15:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 16:\n yy.addSection($$[$0].substr(8));\n this.$ = $$[$0].substr(8);\n break;\n case 17:\n yy.addPoint($$[$0 - 3], $$[$0 - 1], $$[$0]);\n break;\n case 18:\n yy.setXAxisLeftText($$[$0 - 2]);\n yy.setXAxisRightText($$[$0]);\n break;\n case 19:\n $$[$0 - 1].text += \" ⟶ \";\n yy.setXAxisLeftText($$[$0 - 1]);\n break;\n case 20:\n yy.setXAxisLeftText($$[$0]);\n break;\n case 21:\n yy.setYAxisBottomText($$[$0 - 2]);\n yy.setYAxisTopText($$[$0]);\n break;\n case 22:\n $$[$0 - 1].text += \" ⟶ \";\n yy.setYAxisBottomText($$[$0 - 1]);\n break;\n case 23:\n yy.setYAxisBottomText($$[$0]);\n break;\n case 24:\n yy.setQuadrant1Text($$[$0]);\n break;\n case 25:\n yy.setQuadrant2Text($$[$0]);\n break;\n case 26:\n yy.setQuadrant3Text($$[$0]);\n break;\n case 27:\n yy.setQuadrant4Text($$[$0]);\n break;\n case 31:\n this.$ = { text: $$[$0], type: \"text\" };\n break;\n case 32:\n this.$ = { text: $$[$0 - 1].text + \"\" + $$[$0], type: $$[$0 - 1].type };\n break;\n case 33:\n this.$ = { text: $$[$0], type: \"text\" };\n break;\n case 34:\n this.$ = { text: $$[$0], type: \"markdown\" };\n break;\n case 35:\n this.$ = $$[$0];\n break;\n case 36:\n this.$ = $$[$0 - 1] + \"\" + $$[$0];\n break;\n }\n },\n table: [{ 3: 1, 4: 2, 5: $V0, 6: $V1, 32: $V2, 33: $V3, 34: $V4 }, { 1: [3] }, { 3: 8, 4: 2, 5: $V0, 6: $V1, 32: $V2, 33: $V3, 34: $V4 }, { 3: 9, 4: 2, 5: $V0, 6: $V1, 32: $V2, 33: $V3, 34: $V4 }, o($V5, [2, 4], { 7: 10 }), o($V6, [2, 28]), o($V6, [2, 29]), o($V6, [2, 30]), { 1: [2, 1] }, { 1: [2, 2] }, o($V7, $V8, { 8: 11, 9: 12, 10: 14, 11: 15, 12: 16, 21: 28, 35: 29, 1: [2, 3], 5: $V9, 13: $Va, 15: $Vb, 17: $Vc, 19: $Vd, 20: $Ve, 25: $Vf, 27: $Vg, 28: $Vh, 29: $Vi, 30: $Vj, 31: $Vk, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }), o($V5, [2, 5]), { 4: 43, 32: $V2, 33: $V3, 34: $V4 }, o($V7, $V8, { 10: 14, 11: 15, 12: 16, 21: 28, 35: 29, 9: 44, 5: $V9, 13: $Va, 15: $Vb, 17: $Vc, 19: $Vd, 20: $Ve, 25: $Vf, 27: $Vg, 28: $Vh, 29: $Vi, 30: $Vj, 31: $Vk, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }), o($V7, [2, 9]), o($V7, [2, 10]), o($V7, [2, 11]), { 14: [1, 45] }, { 16: [1, 46] }, { 18: [1, 47] }, o($V7, [2, 15]), o($V7, [2, 16]), { 21: 48, 35: 29, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }, { 21: 49, 35: 29, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }, { 21: 50, 35: 29, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }, { 21: 51, 35: 29, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }, { 21: 52, 35: 29, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }, { 21: 53, 35: 29, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }, { 5: $Vy, 22: [1, 54], 35: 56, 36: 55, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }, o($VA, [2, 31]), o($VA, [2, 33]), o($VA, [2, 34]), o($VA, [2, 37]), o($VA, [2, 38]), o($VA, [2, 39]), o($VA, [2, 40]), o($VA, [2, 41]), o($VA, [2, 42]), o($VA, [2, 43]), o($VA, [2, 44]), o($VA, [2, 45]), o($VA, [2, 46]), o($VA, [2, 47]), o($V5, [2, 6]), o($V7, [2, 8]), o($V7, [2, 12]), o($V7, [2, 13]), o($V7, [2, 14]), o($V7, [2, 20], { 36: 55, 35: 56, 5: $Vy, 26: [1, 59], 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 23], { 36: 55, 35: 56, 5: $Vy, 26: [1, 60], 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 24], { 36: 55, 35: 56, 5: $Vy, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 25], { 36: 55, 35: 56, 5: $Vy, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 26], { 36: 55, 35: 56, 5: $Vy, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 27], { 36: 55, 35: 56, 5: $Vy, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), { 23: [1, 61] }, o($VA, [2, 32]), o($VA, [2, 48]), o($VA, [2, 49]), o($VA, [2, 50]), o($V7, [2, 19], { 35: 29, 21: 62, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }), o($V7, [2, 22], { 35: 29, 21: 63, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }), { 24: [1, 64] }, o($V7, [2, 18], { 36: 55, 35: 56, 5: $Vy, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 21], { 36: 55, 35: 56, 5: $Vy, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 17])],\n defaultActions: { 8: [2, 1], 9: [2, 2] },\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 return 32;\n case 3:\n break;\n case 4:\n this.begin(\"title\");\n return 13;\n case 5:\n this.popState();\n return \"title_value\";\n case 6:\n this.begin(\"acc_title\");\n return 15;\n case 7:\n this.popState();\n return \"acc_title_value\";\n case 8:\n this.begin(\"acc_descr\");\n return 17;\n case 9:\n this.popState();\n return \"acc_descr_value\";\n case 10:\n this.begin(\"acc_descr_multiline\");\n break;\n case 11:\n this.popState();\n break;\n case 12:\n return \"acc_descr_multiline_value\";\n case 13:\n return 25;\n case 14:\n return 27;\n case 15:\n return 26;\n case 16:\n return 28;\n case 17:\n return 29;\n case 18:\n return 30;\n case 19:\n return 31;\n case 20:\n this.begin(\"md_string\");\n break;\n case 21:\n return \"MD_STR\";\n case 22:\n this.popState();\n break;\n case 23:\n this.begin(\"string\");\n break;\n case 24:\n this.popState();\n break;\n case 25:\n return \"STR\";\n case 26:\n this.begin(\"point_start\");\n return 22;\n case 27:\n this.begin(\"point_x\");\n return 23;\n case 28:\n this.popState();\n break;\n case 29:\n this.popState();\n this.begin(\"point_y\");\n break;\n case 30:\n this.popState();\n return 24;\n case 31:\n return 6;\n case 32:\n return 43;\n case 33:\n return \"COLON\";\n case 34:\n return 45;\n case 35:\n return 44;\n case 36:\n return 46;\n case 37:\n return 46;\n case 38:\n return 47;\n case 39:\n return 49;\n case 40:\n return 50;\n case 41:\n return 48;\n case 42:\n return 41;\n case 43:\n return 51;\n case 44:\n return 42;\n case 45:\n return 5;\n case 46:\n return 33;\n case 47:\n return 40;\n case 48:\n return 34;\n }\n },\n rules: [/^(?:%%(?!\\{)[^\\n]*)/i, /^(?:[^\\}]%%[^\\n]*)/i, /^(?:[\\n\\r]+)/i, /^(?:%%[^\\n]*)/i, /^(?:title\\b)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accTitle\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*\\{\\s*)/i, /^(?:[\\}])/i, /^(?:[^\\}]*)/i, /^(?: *x-axis *)/i, /^(?: *y-axis *)/i, /^(?: *--+> *)/i, /^(?: *quadrant-1 *)/i, /^(?: *quadrant-2 *)/i, /^(?: *quadrant-3 *)/i, /^(?: *quadrant-4 *)/i, /^(?:[\"][`])/i, /^(?:[^`\"]+)/i, /^(?:[`][\"])/i, /^(?:[\"])/i, /^(?:[\"])/i, /^(?:[^\"]*)/i, /^(?:\\s*:\\s*\\[\\s*)/i, /^(?:(1)|(0(.\\d+)?))/i, /^(?:\\s*\\] *)/i, /^(?:\\s*,\\s*)/i, /^(?:(1)|(0(.\\d+)?))/i, /^(?: *quadrantChart *)/i, /^(?:[A-Za-z]+)/i, /^(?::)/i, /^(?:\\+)/i, /^(?:,)/i, /^(?:=)/i, /^(?:=)/i, /^(?:\\*)/i, /^(?:#)/i, /^(?:[\\_])/i, /^(?:\\.)/i, /^(?:&)/i, /^(?:-)/i, /^(?:[0-9]+)/i, /^(?:\\s)/i, /^(?:;)/i, /^(?:[!\"#$%&'*+,-.`?\\\\_/])/i, /^(?:$)/i],\n conditions: { \"point_y\": { \"rules\": [30], \"inclusive\": false }, \"point_x\": { \"rules\": [29], \"inclusive\": false }, \"point_start\": { \"rules\": [27, 28], \"inclusive\": false }, \"acc_descr_multiline\": { \"rules\": [11, 12], \"inclusive\": false }, \"acc_descr\": { \"rules\": [9], \"inclusive\": false }, \"acc_title\": { \"rules\": [7], \"inclusive\": false }, \"title\": { \"rules\": [5], \"inclusive\": false }, \"md_string\": { \"rules\": [21, 22], \"inclusive\": false }, \"string\": { \"rules\": [24, 25], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 2, 3, 4, 6, 8, 10, 13, 14, 15, 16, 17, 18, 19, 20, 23, 26, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48], \"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;\nconst defaultThemeVariables = getThemeVariables();\nclass QuadrantBuilder {\n constructor() {\n this.config = this.getDefaultConfig();\n this.themeConfig = this.getDefaultThemeConfig();\n this.data = this.getDefaultData();\n }\n getDefaultData() {\n return {\n titleText: \"\",\n quadrant1Text: \"\",\n quadrant2Text: \"\",\n quadrant3Text: \"\",\n quadrant4Text: \"\",\n xAxisLeftText: \"\",\n xAxisRightText: \"\",\n yAxisBottomText: \"\",\n yAxisTopText: \"\",\n points: []\n };\n }\n getDefaultConfig() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r;\n return {\n showXAxis: true,\n showYAxis: true,\n showTitle: true,\n chartHeight: ((_a = defaultConfig.quadrantChart) == null ? void 0 : _a.chartWidth) || 500,\n chartWidth: ((_b = defaultConfig.quadrantChart) == null ? void 0 : _b.chartHeight) || 500,\n titlePadding: ((_c = defaultConfig.quadrantChart) == null ? void 0 : _c.titlePadding) || 10,\n titleFontSize: ((_d = defaultConfig.quadrantChart) == null ? void 0 : _d.titleFontSize) || 20,\n quadrantPadding: ((_e = defaultConfig.quadrantChart) == null ? void 0 : _e.quadrantPadding) || 5,\n xAxisLabelPadding: ((_f = defaultConfig.quadrantChart) == null ? void 0 : _f.xAxisLabelPadding) || 5,\n yAxisLabelPadding: ((_g = defaultConfig.quadrantChart) == null ? void 0 : _g.yAxisLabelPadding) || 5,\n xAxisLabelFontSize: ((_h = defaultConfig.quadrantChart) == null ? void 0 : _h.xAxisLabelFontSize) || 16,\n yAxisLabelFontSize: ((_i = defaultConfig.quadrantChart) == null ? void 0 : _i.yAxisLabelFontSize) || 16,\n quadrantLabelFontSize: ((_j = defaultConfig.quadrantChart) == null ? void 0 : _j.quadrantLabelFontSize) || 16,\n quadrantTextTopPadding: ((_k = defaultConfig.quadrantChart) == null ? void 0 : _k.quadrantTextTopPadding) || 5,\n pointTextPadding: ((_l = defaultConfig.quadrantChart) == null ? void 0 : _l.pointTextPadding) || 5,\n pointLabelFontSize: ((_m = defaultConfig.quadrantChart) == null ? void 0 : _m.pointLabelFontSize) || 12,\n pointRadius: ((_n = defaultConfig.quadrantChart) == null ? void 0 : _n.pointRadius) || 5,\n xAxisPosition: ((_o = defaultConfig.quadrantChart) == null ? void 0 : _o.xAxisPosition) || \"top\",\n yAxisPosition: ((_p = defaultConfig.quadrantChart) == null ? void 0 : _p.yAxisPosition) || \"left\",\n quadrantInternalBorderStrokeWidth: ((_q = defaultConfig.quadrantChart) == null ? void 0 : _q.quadrantInternalBorderStrokeWidth) || 1,\n quadrantExternalBorderStrokeWidth: ((_r = defaultConfig.quadrantChart) == null ? void 0 : _r.quadrantExternalBorderStrokeWidth) || 2\n };\n }\n getDefaultThemeConfig() {\n return {\n quadrant1Fill: defaultThemeVariables.quadrant1Fill,\n quadrant2Fill: defaultThemeVariables.quadrant2Fill,\n quadrant3Fill: defaultThemeVariables.quadrant3Fill,\n quadrant4Fill: defaultThemeVariables.quadrant4Fill,\n quadrant1TextFill: defaultThemeVariables.quadrant1TextFill,\n quadrant2TextFill: defaultThemeVariables.quadrant2TextFill,\n quadrant3TextFill: defaultThemeVariables.quadrant3TextFill,\n quadrant4TextFill: defaultThemeVariables.quadrant4TextFill,\n quadrantPointFill: defaultThemeVariables.quadrantPointFill,\n quadrantPointTextFill: defaultThemeVariables.quadrantPointTextFill,\n quadrantXAxisTextFill: defaultThemeVariables.quadrantXAxisTextFill,\n quadrantYAxisTextFill: defaultThemeVariables.quadrantYAxisTextFill,\n quadrantTitleFill: defaultThemeVariables.quadrantTitleFill,\n quadrantInternalBorderStrokeFill: defaultThemeVariables.quadrantInternalBorderStrokeFill,\n quadrantExternalBorderStrokeFill: defaultThemeVariables.quadrantExternalBorderStrokeFill\n };\n }\n clear() {\n this.config = this.getDefaultConfig();\n this.themeConfig = this.getDefaultThemeConfig();\n this.data = this.getDefaultData();\n log.info(\"clear called\");\n }\n setData(data) {\n this.data = { ...this.data, ...data };\n }\n addPoints(points) {\n this.data.points = [...points, ...this.data.points];\n }\n setConfig(config2) {\n log.trace(\"setConfig called with: \", config2);\n this.config = { ...this.config, ...config2 };\n }\n setThemeConfig(themeConfig) {\n log.trace(\"setThemeConfig called with: \", themeConfig);\n this.themeConfig = { ...this.themeConfig, ...themeConfig };\n }\n calculateSpace(xAxisPosition, showXAxis, showYAxis, showTitle) {\n const xAxisSpaceCalculation = this.config.xAxisLabelPadding * 2 + this.config.xAxisLabelFontSize;\n const xAxisSpace = {\n top: xAxisPosition === \"top\" && showXAxis ? xAxisSpaceCalculation : 0,\n bottom: xAxisPosition === \"bottom\" && showXAxis ? xAxisSpaceCalculation : 0\n };\n const yAxisSpaceCalculation = this.config.yAxisLabelPadding * 2 + this.config.yAxisLabelFontSize;\n const yAxisSpace = {\n left: this.config.yAxisPosition === \"left\" && showYAxis ? yAxisSpaceCalculation : 0,\n right: this.config.yAxisPosition === \"right\" && showYAxis ? yAxisSpaceCalculation : 0\n };\n const titleSpaceCalculation = this.config.titleFontSize + this.config.titlePadding * 2;\n const titleSpace = {\n top: showTitle ? titleSpaceCalculation : 0\n };\n const quadrantLeft = this.config.quadrantPadding + yAxisSpace.left;\n const quadrantTop = this.config.quadrantPadding + xAxisSpace.top + titleSpace.top;\n const quadrantWidth = this.config.chartWidth - this.config.quadrantPadding * 2 - yAxisSpace.left - yAxisSpace.right;\n const quadrantHeight = this.config.chartHeight - this.config.quadrantPadding * 2 - xAxisSpace.top - xAxisSpace.bottom - titleSpace.top;\n const quadrantHalfWidth = quadrantWidth / 2;\n const quadrantHalfHeight = quadrantHeight / 2;\n const quadrantSpace = {\n quadrantLeft,\n quadrantTop,\n quadrantWidth,\n quadrantHalfWidth,\n quadrantHeight,\n quadrantHalfHeight\n };\n return {\n xAxisSpace,\n yAxisSpace,\n titleSpace,\n quadrantSpace\n };\n }\n getAxisLabels(xAxisPosition, showXAxis, showYAxis, spaceData) {\n const { quadrantSpace, titleSpace } = spaceData;\n const {\n quadrantHalfHeight,\n quadrantHeight,\n quadrantLeft,\n quadrantHalfWidth,\n quadrantTop,\n quadrantWidth\n } = quadrantSpace;\n const drawXAxisLabelsInMiddle = Boolean(this.data.xAxisRightText);\n const drawYAxisLabelsInMiddle = Boolean(this.data.yAxisTopText);\n const axisLabels = [];\n if (this.data.xAxisLeftText && showXAxis) {\n axisLabels.push({\n text: this.data.xAxisLeftText,\n fill: this.themeConfig.quadrantXAxisTextFill,\n x: quadrantLeft + (drawXAxisLabelsInMiddle ? quadrantHalfWidth / 2 : 0),\n y: xAxisPosition === \"top\" ? this.config.xAxisLabelPadding + titleSpace.top : this.config.xAxisLabelPadding + quadrantTop + quadrantHeight + this.config.quadrantPadding,\n fontSize: this.config.xAxisLabelFontSize,\n verticalPos: drawXAxisLabelsInMiddle ? \"center\" : \"left\",\n horizontalPos: \"top\",\n rotation: 0\n });\n }\n if (this.data.xAxisRightText && showXAxis) {\n axisLabels.push({\n text: this.data.xAxisRightText,\n fill: this.themeConfig.quadrantXAxisTextFill,\n x: quadrantLeft + quadrantHalfWidth + (drawXAxisLabelsInMiddle ? quadrantHalfWidth / 2 : 0),\n y: xAxisPosition === \"top\" ? this.config.xAxisLabelPadding + titleSpace.top : this.config.xAxisLabelPadding + quadrantTop + quadrantHeight + this.config.quadrantPadding,\n fontSize: this.config.xAxisLabelFontSize,\n verticalPos: drawXAxisLabelsInMiddle ? \"center\" : \"left\",\n horizontalPos: \"top\",\n rotation: 0\n });\n }\n if (this.data.yAxisBottomText && showYAxis) {\n axisLabels.push({\n text: this.data.yAxisBottomText,\n fill: this.themeConfig.quadrantYAxisTextFill,\n x: this.config.yAxisPosition === \"left\" ? this.config.yAxisLabelPadding : this.config.yAxisLabelPadding + quadrantLeft + quadrantWidth + this.config.quadrantPadding,\n y: quadrantTop + quadrantHeight - (drawYAxisLabelsInMiddle ? quadrantHalfHeight / 2 : 0),\n fontSize: this.config.yAxisLabelFontSize,\n verticalPos: drawYAxisLabelsInMiddle ? \"center\" : \"left\",\n horizontalPos: \"top\",\n rotation: -90\n });\n }\n if (this.data.yAxisTopText && showYAxis) {\n axisLabels.push({\n text: this.data.yAxisTopText,\n fill: this.themeConfig.quadrantYAxisTextFill,\n x: this.config.yAxisPosition === \"left\" ? this.config.yAxisLabelPadding : this.config.yAxisLabelPadding + quadrantLeft + quadrantWidth + this.config.quadrantPadding,\n y: quadrantTop + quadrantHalfHeight - (drawYAxisLabelsInMiddle ? quadrantHalfHeight / 2 : 0),\n fontSize: this.config.yAxisLabelFontSize,\n verticalPos: drawYAxisLabelsInMiddle ? \"center\" : \"left\",\n horizontalPos: \"top\",\n rotation: -90\n });\n }\n return axisLabels;\n }\n getQuadrants(spaceData) {\n const { quadrantSpace } = spaceData;\n const { quadrantHalfHeight, quadrantLeft, quadrantHalfWidth, quadrantTop } = quadrantSpace;\n const quadrants = [\n {\n text: {\n text: this.data.quadrant1Text,\n fill: this.themeConfig.quadrant1TextFill,\n x: 0,\n y: 0,\n fontSize: this.config.quadrantLabelFontSize,\n verticalPos: \"center\",\n horizontalPos: \"middle\",\n rotation: 0\n },\n x: quadrantLeft + quadrantHalfWidth,\n y: quadrantTop,\n width: quadrantHalfWidth,\n height: quadrantHalfHeight,\n fill: this.themeConfig.quadrant1Fill\n },\n {\n text: {\n text: this.data.quadrant2Text,\n fill: this.themeConfig.quadrant2TextFill,\n x: 0,\n y: 0,\n fontSize: this.config.quadrantLabelFontSize,\n verticalPos: \"center\",\n horizontalPos: \"middle\",\n rotation: 0\n },\n x: quadrantLeft,\n y: quadrantTop,\n width: quadrantHalfWidth,\n height: quadrantHalfHeight,\n fill: this.themeConfig.quadrant2Fill\n },\n {\n text: {\n text: this.data.quadrant3Text,\n fill: this.themeConfig.quadrant3TextFill,\n x: 0,\n y: 0,\n fontSize: this.config.quadrantLabelFontSize,\n verticalPos: \"center\",\n horizontalPos: \"middle\",\n rotation: 0\n },\n x: quadrantLeft,\n y: quadrantTop + quadrantHalfHeight,\n width: quadrantHalfWidth,\n height: quadrantHalfHeight,\n fill: this.themeConfig.quadrant3Fill\n },\n {\n text: {\n text: this.data.quadrant4Text,\n fill: this.themeConfig.quadrant4TextFill,\n x: 0,\n y: 0,\n fontSize: this.config.quadrantLabelFontSize,\n verticalPos: \"center\",\n horizontalPos: \"middle\",\n rotation: 0\n },\n x: quadrantLeft + quadrantHalfWidth,\n y: quadrantTop + quadrantHalfHeight,\n width: quadrantHalfWidth,\n height: quadrantHalfHeight,\n fill: this.themeConfig.quadrant4Fill\n }\n ];\n for (const quadrant of quadrants) {\n quadrant.text.x = quadrant.x + quadrant.width / 2;\n if (this.data.points.length === 0) {\n quadrant.text.y = quadrant.y + quadrant.height / 2;\n quadrant.text.horizontalPos = \"middle\";\n } else {\n quadrant.text.y = quadrant.y + this.config.quadrantTextTopPadding;\n quadrant.text.horizontalPos = \"top\";\n }\n }\n return quadrants;\n }\n getQuadrantPoints(spaceData) {\n const { quadrantSpace } = spaceData;\n const { quadrantHeight, quadrantLeft, quadrantTop, quadrantWidth } = quadrantSpace;\n const xAxis = scaleLinear().domain([0, 1]).range([quadrantLeft, quadrantWidth + quadrantLeft]);\n const yAxis = scaleLinear().domain([0, 1]).range([quadrantHeight + quadrantTop, quadrantTop]);\n const points = this.data.points.map((point) => {\n const props = {\n x: xAxis(point.x),\n y: yAxis(point.y),\n fill: this.themeConfig.quadrantPointFill,\n radius: this.config.pointRadius,\n text: {\n text: point.text,\n fill: this.themeConfig.quadrantPointTextFill,\n x: xAxis(point.x),\n y: yAxis(point.y) + this.config.pointTextPadding,\n verticalPos: \"center\",\n horizontalPos: \"top\",\n fontSize: this.config.pointLabelFontSize,\n rotation: 0\n }\n };\n return props;\n });\n return points;\n }\n getBorders(spaceData) {\n const halfExternalBorderWidth = this.config.quadrantExternalBorderStrokeWidth / 2;\n const { quadrantSpace } = spaceData;\n const {\n quadrantHalfHeight,\n quadrantHeight,\n quadrantLeft,\n quadrantHalfWidth,\n quadrantTop,\n quadrantWidth\n } = quadrantSpace;\n const borderLines = [\n // top border\n {\n strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill,\n strokeWidth: this.config.quadrantExternalBorderStrokeWidth,\n x1: quadrantLeft - halfExternalBorderWidth,\n y1: quadrantTop,\n x2: quadrantLeft + quadrantWidth + halfExternalBorderWidth,\n y2: quadrantTop\n },\n // right border\n {\n strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill,\n strokeWidth: this.config.quadrantExternalBorderStrokeWidth,\n x1: quadrantLeft + quadrantWidth,\n y1: quadrantTop + halfExternalBorderWidth,\n x2: quadrantLeft + quadrantWidth,\n y2: quadrantTop + quadrantHeight - halfExternalBorderWidth\n },\n // bottom border\n {\n strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill,\n strokeWidth: this.config.quadrantExternalBorderStrokeWidth,\n x1: quadrantLeft - halfExternalBorderWidth,\n y1: quadrantTop + quadrantHeight,\n x2: quadrantLeft + quadrantWidth + halfExternalBorderWidth,\n y2: quadrantTop + quadrantHeight\n },\n // left border\n {\n strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill,\n strokeWidth: this.config.quadrantExternalBorderStrokeWidth,\n x1: quadrantLeft,\n y1: quadrantTop + halfExternalBorderWidth,\n x2: quadrantLeft,\n y2: quadrantTop + quadrantHeight - halfExternalBorderWidth\n },\n // vertical inner border\n {\n strokeFill: this.themeConfig.quadrantInternalBorderStrokeFill,\n strokeWidth: this.config.quadrantInternalBorderStrokeWidth,\n x1: quadrantLeft + quadrantHalfWidth,\n y1: quadrantTop + halfExternalBorderWidth,\n x2: quadrantLeft + quadrantHalfWidth,\n y2: quadrantTop + quadrantHeight - halfExternalBorderWidth\n },\n // horizontal inner border\n {\n strokeFill: this.themeConfig.quadrantInternalBorderStrokeFill,\n strokeWidth: this.config.quadrantInternalBorderStrokeWidth,\n x1: quadrantLeft + halfExternalBorderWidth,\n y1: quadrantTop + quadrantHalfHeight,\n x2: quadrantLeft + quadrantWidth - halfExternalBorderWidth,\n y2: quadrantTop + quadrantHalfHeight\n }\n ];\n return borderLines;\n }\n getTitle(showTitle) {\n if (showTitle) {\n return {\n text: this.data.titleText,\n fill: this.themeConfig.quadrantTitleFill,\n fontSize: this.config.titleFontSize,\n horizontalPos: \"top\",\n verticalPos: \"center\",\n rotation: 0,\n y: this.config.titlePadding,\n x: this.config.chartWidth / 2\n };\n }\n return;\n }\n build() {\n const showXAxis = this.config.showXAxis && !!(this.data.xAxisLeftText || this.data.xAxisRightText);\n const showYAxis = this.config.showYAxis && !!(this.data.yAxisTopText || this.data.yAxisBottomText);\n const showTitle = this.config.showTitle && !!this.data.titleText;\n const xAxisPosition = this.data.points.length > 0 ? \"bottom\" : this.config.xAxisPosition;\n const calculatedSpace = this.calculateSpace(xAxisPosition, showXAxis, showYAxis, showTitle);\n return {\n points: this.getQuadrantPoints(calculatedSpace),\n quadrants: this.getQuadrants(calculatedSpace),\n axisLabels: this.getAxisLabels(xAxisPosition, showXAxis, showYAxis, calculatedSpace),\n borderLines: this.getBorders(calculatedSpace),\n title: this.getTitle(showTitle)\n };\n }\n}\nconst config = getConfig();\nfunction textSanitizer(text) {\n return sanitizeText(text.trim(), config);\n}\nconst quadrantBuilder = new QuadrantBuilder();\nfunction setQuadrant1Text(textObj) {\n quadrantBuilder.setData({ quadrant1Text: textSanitizer(textObj.text) });\n}\nfunction setQuadrant2Text(textObj) {\n quadrantBuilder.setData({ quadrant2Text: textSanitizer(textObj.text) });\n}\nfunction setQuadrant3Text(textObj) {\n quadrantBuilder.setData({ quadrant3Text: textSanitizer(textObj.text) });\n}\nfunction setQuadrant4Text(textObj) {\n quadrantBuilder.setData({ quadrant4Text: textSanitizer(textObj.text) });\n}\nfunction setXAxisLeftText(textObj) {\n quadrantBuilder.setData({ xAxisLeftText: textSanitizer(textObj.text) });\n}\nfunction setXAxisRightText(textObj) {\n quadrantBuilder.setData({ xAxisRightText: textSanitizer(textObj.text) });\n}\nfunction setYAxisTopText(textObj) {\n quadrantBuilder.setData({ yAxisTopText: textSanitizer(textObj.text) });\n}\nfunction setYAxisBottomText(textObj) {\n quadrantBuilder.setData({ yAxisBottomText: textSanitizer(textObj.text) });\n}\nfunction addPoint(textObj, x, y) {\n quadrantBuilder.addPoints([{ x, y, text: textSanitizer(textObj.text) }]);\n}\nfunction setWidth(width) {\n quadrantBuilder.setConfig({ chartWidth: width });\n}\nfunction setHeight(height) {\n quadrantBuilder.setConfig({ chartHeight: height });\n}\nfunction getQuadrantData() {\n const config2 = getConfig();\n const { themeVariables, quadrantChart: quadrantChartConfig } = config2;\n if (quadrantChartConfig) {\n quadrantBuilder.setConfig(quadrantChartConfig);\n }\n quadrantBuilder.setThemeConfig({\n quadrant1Fill: themeVariables.quadrant1Fill,\n quadrant2Fill: themeVariables.quadrant2Fill,\n quadrant3Fill: themeVariables.quadrant3Fill,\n quadrant4Fill: themeVariables.quadrant4Fill,\n quadrant1TextFill: themeVariables.quadrant1TextFill,\n quadrant2TextFill: themeVariables.quadrant2TextFill,\n quadrant3TextFill: themeVariables.quadrant3TextFill,\n quadrant4TextFill: themeVariables.quadrant4TextFill,\n quadrantPointFill: themeVariables.quadrantPointFill,\n quadrantPointTextFill: themeVariables.quadrantPointTextFill,\n quadrantXAxisTextFill: themeVariables.quadrantXAxisTextFill,\n quadrantYAxisTextFill: themeVariables.quadrantYAxisTextFill,\n quadrantExternalBorderStrokeFill: themeVariables.quadrantExternalBorderStrokeFill,\n quadrantInternalBorderStrokeFill: themeVariables.quadrantInternalBorderStrokeFill,\n quadrantTitleFill: themeVariables.quadrantTitleFill\n });\n quadrantBuilder.setData({ titleText: getDiagramTitle() });\n return quadrantBuilder.build();\n}\nconst clear = function() {\n quadrantBuilder.clear();\n clear$1();\n};\nconst db = {\n setWidth,\n setHeight,\n setQuadrant1Text,\n setQuadrant2Text,\n setQuadrant3Text,\n setQuadrant4Text,\n setXAxisLeftText,\n setXAxisRightText,\n setYAxisTopText,\n setYAxisBottomText,\n addPoint,\n getQuadrantData,\n clear,\n setAccTitle,\n getAccTitle,\n setDiagramTitle,\n getDiagramTitle,\n getAccDescription,\n setAccDescription\n};\nconst draw = (txt, id, _version, diagObj) => {\n var _a, _b, _c;\n function getDominantBaseLine(horizontalPos) {\n return horizontalPos === \"top\" ? \"hanging\" : \"middle\";\n }\n function getTextAnchor(verticalPos) {\n return verticalPos === \"left\" ? \"start\" : \"middle\";\n }\n function getTransformation(data) {\n return `translate(${data.x}, ${data.y}) rotate(${data.rotation || 0})`;\n }\n const conf = getConfig();\n log.debug(\"Rendering quadrant chart\\n\" + txt);\n const securityLevel = conf.securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const svg = root.select(`[id=\"${id}\"]`);\n const group = svg.append(\"g\").attr(\"class\", \"main\");\n const width = ((_a = conf.quadrantChart) == null ? void 0 : _a.chartWidth) || 500;\n const height = ((_b = conf.quadrantChart) == null ? void 0 : _b.chartHeight) || 500;\n configureSvgSize(svg, height, width, ((_c = conf.quadrantChart) == null ? void 0 : _c.useMaxWidth) || true);\n svg.attr(\"viewBox\", \"0 0 \" + width + \" \" + height);\n diagObj.db.setHeight(height);\n diagObj.db.setWidth(width);\n const quadrantData = diagObj.db.getQuadrantData();\n const quadrantsGroup = group.append(\"g\").attr(\"class\", \"quadrants\");\n const borderGroup = group.append(\"g\").attr(\"class\", \"border\");\n const dataPointGroup = group.append(\"g\").attr(\"class\", \"data-points\");\n const labelGroup = group.append(\"g\").attr(\"class\", \"labels\");\n const titleGroup = group.append(\"g\").attr(\"class\", \"title\");\n if (quadrantData.title) {\n titleGroup.append(\"text\").attr(\"x\", 0).attr(\"y\", 0).attr(\"fill\", quadrantData.title.fill).attr(\"font-size\", quadrantData.title.fontSize).attr(\"dominant-baseline\", getDominantBaseLine(quadrantData.title.horizontalPos)).attr(\"text-anchor\", getTextAnchor(quadrantData.title.verticalPos)).attr(\"transform\", getTransformation(quadrantData.title)).text(quadrantData.title.text);\n }\n if (quadrantData.borderLines) {\n borderGroup.selectAll(\"line\").data(quadrantData.borderLines).enter().append(\"line\").attr(\"x1\", (data) => data.x1).attr(\"y1\", (data) => data.y1).attr(\"x2\", (data) => data.x2).attr(\"y2\", (data) => data.y2).style(\"stroke\", (data) => data.strokeFill).style(\"stroke-width\", (data) => data.strokeWidth);\n }\n const quadrants = quadrantsGroup.selectAll(\"g.quadrant\").data(quadrantData.quadrants).enter().append(\"g\").attr(\"class\", \"quadrant\");\n quadrants.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);\n quadrants.append(\"text\").attr(\"x\", 0).attr(\"y\", 0).attr(\"fill\", (data) => data.text.fill).attr(\"font-size\", (data) => data.text.fontSize).attr(\n \"dominant-baseline\",\n (data) => getDominantBaseLine(data.text.horizontalPos)\n ).attr(\"text-anchor\", (data) => getTextAnchor(data.text.verticalPos)).attr(\"transform\", (data) => getTransformation(data.text)).text((data) => data.text.text);\n const labels = labelGroup.selectAll(\"g.label\").data(quadrantData.axisLabels).enter().append(\"g\").attr(\"class\", \"label\");\n labels.append(\"text\").attr(\"x\", 0).attr(\"y\", 0).text((data) => data.text).attr(\"fill\", (data) => data.fill).attr(\"font-size\", (data) => data.fontSize).attr(\"dominant-baseline\", (data) => getDominantBaseLine(data.horizontalPos)).attr(\"text-anchor\", (data) => getTextAnchor(data.verticalPos)).attr(\"transform\", (data) => getTransformation(data));\n const dataPoints = dataPointGroup.selectAll(\"g.data-point\").data(quadrantData.points).enter().append(\"g\").attr(\"class\", \"data-point\");\n dataPoints.append(\"circle\").attr(\"cx\", (data) => data.x).attr(\"cy\", (data) => data.y).attr(\"r\", (data) => data.radius).attr(\"fill\", (data) => data.fill);\n dataPoints.append(\"text\").attr(\"x\", 0).attr(\"y\", 0).text((data) => data.text.text).attr(\"fill\", (data) => data.text.fill).attr(\"font-size\", (data) => data.text.fontSize).attr(\n \"dominant-baseline\",\n (data) => getDominantBaseLine(data.text.horizontalPos)\n ).attr(\"text-anchor\", (data) => getTextAnchor(data.text.verticalPos)).attr(\"transform\", (data) => getTransformation(data.text));\n};\nconst renderer = {\n draw\n};\nconst diagram = {\n parser: parser$1,\n db,\n renderer,\n styles: () => \"\"\n};\nexport {\n diagram\n};\n"],"names":["parcelRequire","$parcel$global","globalThis","parcelRegister","register","module","exports","Object","defineProperty","get","$3638520e3a9ea8ca$export$6118d022d940d562","set","s","enumerable","configurable","$4jcZX","$2YFJl","$3638520e3a9ea8ca$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","$Vr","$Vs","$Vt","$Vu","$Vv","$Vw","$Vx","$Vy","$Vz","$VA","parser2","trace","yy","symbols_","terminals_","productions_","performAction","yytext","yyleng","yylineno","yystate","$$","_$","$0","$","trim","setDiagramTitle","setAccTitle","setAccDescription","addSection","substr","addPoint","setXAxisLeftText","setXAxisRightText","text","setYAxisBottomText","setYAxisTopText","setQuadrant1Text","setQuadrant2Text","setQuadrant3Text","setQuadrant4Text","type","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","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","$3638520e3a9ea8ca$var$defaultThemeVariables","E","$3638520e3a9ea8ca$var$config","$3638520e3a9ea8ca$var$textSanitizer","d","$3638520e3a9ea8ca$var$quadrantBuilder","constructor","config","getDefaultConfig","themeConfig","getDefaultThemeConfig","data","getDefaultData","titleText","quadrant1Text","quadrant2Text","quadrant3Text","quadrant4Text","xAxisLeftText","xAxisRightText","yAxisBottomText","yAxisTopText","points","_a","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","_m","_n","_o","_p","_q","_r","showXAxis","showYAxis","showTitle","chartHeight","B","quadrantChart","chartWidth","titlePadding","titleFontSize","quadrantPadding","xAxisLabelPadding","yAxisLabelPadding","xAxisLabelFontSize","yAxisLabelFontSize","quadrantLabelFontSize","quadrantTextTopPadding","pointTextPadding","pointLabelFontSize","pointRadius","xAxisPosition","yAxisPosition","quadrantInternalBorderStrokeWidth","quadrantExternalBorderStrokeWidth","quadrant1Fill","quadrant2Fill","quadrant3Fill","quadrant4Fill","quadrant1TextFill","quadrant2TextFill","quadrant3TextFill","quadrant4TextFill","quadrantPointFill","quadrantPointTextFill","quadrantXAxisTextFill","quadrantYAxisTextFill","quadrantTitleFill","quadrantInternalBorderStrokeFill","quadrantExternalBorderStrokeFill","clear","info","setData","addPoints","setConfig","config2","setThemeConfig","calculateSpace","xAxisSpaceCalculation","xAxisSpace","top","bottom","yAxisSpaceCalculation","yAxisSpace","left","right","titleSpaceCalculation","titleSpace","quadrantLeft","quadrantTop","quadrantWidth","quadrantHeight","quadrantSpace","quadrantHalfWidth","quadrantHalfHeight","getAxisLabels","spaceData","drawXAxisLabelsInMiddle","Boolean","drawYAxisLabelsInMiddle","axisLabels","fill","x","y","fontSize","verticalPos","horizontalPos","rotation","getQuadrants","quadrants","width","height","quadrant","getQuadrantPoints","xAxis","scaleLinear","domain","yAxis","map","point","radius","getBorders","halfExternalBorderWidth","strokeFill","strokeWidth","x1","y1","x2","y2","getTitle","build","calculatedSpace","borderLines","title","db","setWidth","setHeight","textObj","getQuadrantData","themeVariables","quadrantChartConfig","t","getAccTitle","g","q","getDiagramTitle","getAccDescription","a","b","renderer","draw","txt","id","_version","diagObj","sandboxElement","getDominantBaseLine","getTextAnchor","getTransformation","conf","debug","securityLevel","select","svg","root","nodes","contentDocument","body","group","append","attr","useMaxWidth","quadrantData","quadrantsGroup","borderGroup","dataPointGroup","labelGroup","titleGroup","selectAll","enter","style","labels","dataPoints","styles"],"version":3,"file":"quadrantDiagram-c759a472.01f9dd4d.js.map"}