@kong/markdown 1.3.1 → 1.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/dist/{arc-CRNu716j.js → arc-8cjaq9av.js} +2 -2
  2. package/dist/{arc-CRNu716j.js.map → arc-8cjaq9av.js.map} +1 -1
  3. package/dist/{blockDiagram-6b2b5046-D2MkRD_j.js → blockDiagram-6b2b5046-CXMFsTaq.js} +6 -6
  4. package/dist/{blockDiagram-6b2b5046-D2MkRD_j.js.map → blockDiagram-6b2b5046-CXMFsTaq.js.map} +1 -1
  5. package/dist/{c4Diagram-b947cdbb-DCrk3XXk.js → c4Diagram-b947cdbb-vwALH1WH.js} +3 -3
  6. package/dist/{c4Diagram-b947cdbb-DCrk3XXk.js.map → c4Diagram-b947cdbb-vwALH1WH.js.map} +1 -1
  7. package/dist/channel-CiebjdPJ.js +6 -0
  8. package/dist/{channel-AStNV-TO.js.map → channel-CiebjdPJ.js.map} +1 -1
  9. package/dist/{classDiagram-35230388-xHVnplkU.js → classDiagram-35230388-CTxUL5uA.js} +6 -6
  10. package/dist/{classDiagram-35230388-xHVnplkU.js.map → classDiagram-35230388-CTxUL5uA.js.map} +1 -1
  11. package/dist/{classDiagram-v2-412acd34-Df3TOSJO.js → classDiagram-v2-412acd34-BQSUu5Vr.js} +6 -6
  12. package/dist/{classDiagram-v2-412acd34-Df3TOSJO.js.map → classDiagram-v2-412acd34-BQSUu5Vr.js.map} +1 -1
  13. package/dist/clone-AVwa-Pmf.js +9 -0
  14. package/dist/{clone-BEwR0ae8.js.map → clone-AVwa-Pmf.js.map} +1 -1
  15. package/dist/{createText-423428c9-CQXqrQGV.js → createText-423428c9-C_xMZUNE.js} +2 -2
  16. package/dist/{createText-423428c9-CQXqrQGV.js.map → createText-423428c9-C_xMZUNE.js.map} +1 -1
  17. package/dist/{edges-d417c7a0-D2l0zXjx.js → edges-d417c7a0-9M_sA3AX.js} +4 -4
  18. package/dist/{edges-d417c7a0-D2l0zXjx.js.map → edges-d417c7a0-9M_sA3AX.js.map} +1 -1
  19. package/dist/{erDiagram-0ea73325-CGortXf-.js → erDiagram-0ea73325-LCVGPMbf.js} +5 -5
  20. package/dist/{erDiagram-0ea73325-CGortXf-.js.map → erDiagram-0ea73325-LCVGPMbf.js.map} +1 -1
  21. package/dist/{flowDb-d35e309a-B37o2qfF.js → flowDb-d35e309a-EwD5UOTn.js} +2 -2
  22. package/dist/{flowDb-d35e309a-B37o2qfF.js.map → flowDb-d35e309a-EwD5UOTn.js.map} +1 -1
  23. package/dist/{flowDiagram-d949d7c1-CZWR-qRX.js → flowDiagram-d949d7c1-B8fV1Bgb.js} +7 -7
  24. package/dist/{flowDiagram-d949d7c1-CZWR-qRX.js.map → flowDiagram-d949d7c1-B8fV1Bgb.js.map} +1 -1
  25. package/dist/{flowDiagram-v2-49332944-OmkAsRSo.js → flowDiagram-v2-49332944-B1NmgnBY.js} +6 -6
  26. package/dist/{flowDiagram-v2-49332944-OmkAsRSo.js.map → flowDiagram-v2-49332944-B1NmgnBY.js.map} +1 -1
  27. package/dist/{flowchart-elk-definition-27cc417a-DvRAXt5Q.js → flowchart-elk-definition-27cc417a-uJBgGb6w.js} +5 -5
  28. package/dist/{flowchart-elk-definition-27cc417a-DvRAXt5Q.js.map → flowchart-elk-definition-27cc417a-uJBgGb6w.js.map} +1 -1
  29. package/dist/{ganttDiagram-5c869e3b-CFIXQjia.js → ganttDiagram-5c869e3b-CP3jCxVz.js} +3 -3
  30. package/dist/{ganttDiagram-5c869e3b-CFIXQjia.js.map → ganttDiagram-5c869e3b-CP3jCxVz.js.map} +1 -1
  31. package/dist/{gitGraphDiagram-b9d81de9-dYIPtz9A.js → gitGraphDiagram-b9d81de9-C0mDyUJG.js} +2 -2
  32. package/dist/{gitGraphDiagram-b9d81de9-dYIPtz9A.js.map → gitGraphDiagram-b9d81de9-C0mDyUJG.js.map} +1 -1
  33. package/dist/{graph-DnI6iIW-.js → graph-D8osM22K.js} +2 -2
  34. package/dist/{graph-DnI6iIW-.js.map → graph-D8osM22K.js.map} +1 -1
  35. package/dist/{index-8fae9850-BrJpYy1U.js → index-8fae9850-LWne7Y_5.js} +7 -7
  36. package/dist/{index-8fae9850-BrJpYy1U.js.map → index-8fae9850-LWne7Y_5.js.map} +1 -1
  37. package/dist/{index-BdQ-n4gH.js → index-H0_TiiZ2.js} +24 -24
  38. package/dist/{index-BdQ-n4gH.js.map → index-H0_TiiZ2.js.map} +1 -1
  39. package/dist/{infoDiagram-db7b18fc-D02OQKc3.js → infoDiagram-db7b18fc-BUwIw4xq.js} +2 -2
  40. package/dist/{infoDiagram-db7b18fc-D02OQKc3.js.map → infoDiagram-db7b18fc-BUwIw4xq.js.map} +1 -1
  41. package/dist/{journeyDiagram-d5636530-DthrqUFi.js → journeyDiagram-d5636530-BcAzfkwS.js} +4 -4
  42. package/dist/{journeyDiagram-d5636530-DthrqUFi.js.map → journeyDiagram-d5636530-BcAzfkwS.js.map} +1 -1
  43. package/dist/kong-markdown.es.js +1 -1
  44. package/dist/kong-markdown.umd.js +1 -1
  45. package/dist/{layout-OFztbzEY.js → layout-ZVjoo1C9.js} +3 -3
  46. package/dist/{layout-OFztbzEY.js.map → layout-ZVjoo1C9.js.map} +1 -1
  47. package/dist/{line-BSAYYjII.js → line-Cw7WGRye.js} +2 -2
  48. package/dist/{line-BSAYYjII.js.map → line-Cw7WGRye.js.map} +1 -1
  49. package/dist/{linear-D6IIV3ES.js → linear-CM8CQPYx.js} +2 -2
  50. package/dist/{linear-D6IIV3ES.js.map → linear-CM8CQPYx.js.map} +1 -1
  51. package/dist/{mindmap-definition-377f8f1f-CP5Ij5zq.js → mindmap-definition-377f8f1f-CZ-84IMz.js} +3 -3
  52. package/dist/{mindmap-definition-377f8f1f-CP5Ij5zq.js.map → mindmap-definition-377f8f1f-CZ-84IMz.js.map} +1 -1
  53. package/dist/{pieDiagram-b0208e96-CEy_a3qY.js → pieDiagram-b0208e96-DWGdunAA.js} +3 -3
  54. package/dist/{pieDiagram-b0208e96-CEy_a3qY.js.map → pieDiagram-b0208e96-DWGdunAA.js.map} +1 -1
  55. package/dist/{quadrantDiagram-0332be45-D1m3bfLE.js → quadrantDiagram-0332be45-CcjioNyx.js} +3 -3
  56. package/dist/{quadrantDiagram-0332be45-D1m3bfLE.js.map → quadrantDiagram-0332be45-CcjioNyx.js.map} +1 -1
  57. package/dist/{requirementDiagram-bf7890df-BXOuPT18.js → requirementDiagram-bf7890df-Bhse_3cX.js} +5 -5
  58. package/dist/{requirementDiagram-bf7890df-BXOuPT18.js.map → requirementDiagram-bf7890df-Bhse_3cX.js.map} +1 -1
  59. package/dist/{sankeyDiagram-0acdec17-C_WfLS-d.js → sankeyDiagram-0acdec17-mp2WREQF.js} +2 -2
  60. package/dist/{sankeyDiagram-0acdec17-C_WfLS-d.js.map → sankeyDiagram-0acdec17-mp2WREQF.js.map} +1 -1
  61. package/dist/{sequenceDiagram-c18d009d-xoFAj6ID.js → sequenceDiagram-c18d009d-C2BOoE0J.js} +3 -3
  62. package/dist/{sequenceDiagram-c18d009d-xoFAj6ID.js.map → sequenceDiagram-c18d009d-C2BOoE0J.js.map} +1 -1
  63. package/dist/{stateDiagram-43596fc0-Dm1AkWdr.js → stateDiagram-43596fc0-DcFmBqVD.js} +6 -6
  64. package/dist/{stateDiagram-43596fc0-Dm1AkWdr.js.map → stateDiagram-43596fc0-DcFmBqVD.js.map} +1 -1
  65. package/dist/{stateDiagram-v2-2ead4f9c-X0XO1e_0.js → stateDiagram-v2-2ead4f9c-B0kAUaOw.js} +6 -6
  66. package/dist/{stateDiagram-v2-2ead4f9c-X0XO1e_0.js.map → stateDiagram-v2-2ead4f9c-B0kAUaOw.js.map} +1 -1
  67. package/dist/style.css +1 -1
  68. package/dist/{styles-6860f46c-g9ltY6y9.js → styles-6860f46c-CCfIsYmF.js} +2 -2
  69. package/dist/{styles-6860f46c-g9ltY6y9.js.map → styles-6860f46c-CCfIsYmF.js.map} +1 -1
  70. package/dist/{styles-7383a064-D9pZsmll.js → styles-7383a064-Z66HBsPQ.js} +5 -5
  71. package/dist/{styles-7383a064-D9pZsmll.js.map → styles-7383a064-Z66HBsPQ.js.map} +1 -1
  72. package/dist/{styles-b2c874b6-2MSTrrjT.js → styles-b2c874b6-vUP-zip8.js} +2 -2
  73. package/dist/{styles-b2c874b6-2MSTrrjT.js.map → styles-b2c874b6-vUP-zip8.js.map} +1 -1
  74. package/dist/{svgDrawCommon-0ee1b4e9-BiqdHuRv.js → svgDrawCommon-0ee1b4e9-BN89CkAa.js} +2 -2
  75. package/dist/{svgDrawCommon-0ee1b4e9-BiqdHuRv.js.map → svgDrawCommon-0ee1b4e9-BN89CkAa.js.map} +1 -1
  76. package/dist/{timeline-definition-d977decf-J4adcb4f.js → timeline-definition-d977decf-hPFfx-Ol.js} +3 -3
  77. package/dist/{timeline-definition-d977decf-J4adcb4f.js.map → timeline-definition-d977decf-hPFfx-Ol.js.map} +1 -1
  78. package/dist/{xychartDiagram-e50adddc-COrJQ_9O.js → xychartDiagram-e50adddc-rKOcwKj9.js} +5 -5
  79. package/dist/{xychartDiagram-e50adddc-COrJQ_9O.js.map → xychartDiagram-e50adddc-rKOcwKj9.js.map} +1 -1
  80. package/package.json +1 -1
  81. package/dist/channel-AStNV-TO.js +0 -6
  82. package/dist/clone-BEwR0ae8.js +0 -9
@@ -1 +1 @@
1
- {"version":3,"file":"xychartDiagram-e50adddc-COrJQ_9O.js","sources":["../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/range.js","../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/band.js","../node_modules/.pnpm/mermaid@10.8.0/node_modules/mermaid/dist/xychartDiagram-e50adddc.js"],"sourcesContent":["export default function range(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n","import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init.js\";\nimport ordinal from \"./ordinal.js\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n r0 = 0,\n r1 = 1,\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = r1 < r0,\n start = reverse ? r1 : r0,\n stop = reverse ? r0 : r1;\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];\n };\n\n scale.rangeRound = function(_) {\n return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), [r0, r1])\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n","import { l as log, s as setAccTitle, g as getAccTitle, q as setDiagramTitle, r as getDiagramTitle, a as getAccDescription, b as setAccDescription, D as getThemeVariables, E as getConfig, B as cleanAndMerge, A as defaultConfig, t as clear$1, d as sanitizeText, z as selectSvgElement, i as configureSvgSize } from \"./mermaid-0603ccf8.js\";\nimport { c as computeDimensionOfText } from \"./createText-423428c9.js\";\nimport { scaleBand, scaleLinear, line } from \"d3\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nimport \"mdast-util-from-markdown\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [1, 10, 12, 14, 16, 18, 19, 21, 23], $V1 = [2, 6], $V2 = [1, 3], $V3 = [1, 5], $V4 = [1, 6], $V5 = [1, 7], $V6 = [1, 5, 10, 12, 14, 16, 18, 19, 21, 23, 34, 35, 36], $V7 = [1, 25], $V8 = [1, 26], $V9 = [1, 28], $Va = [1, 29], $Vb = [1, 30], $Vc = [1, 31], $Vd = [1, 32], $Ve = [1, 33], $Vf = [1, 34], $Vg = [1, 35], $Vh = [1, 36], $Vi = [1, 37], $Vj = [1, 43], $Vk = [1, 42], $Vl = [1, 47], $Vm = [1, 50], $Vn = [1, 10, 12, 14, 16, 18, 19, 21, 23, 34, 35, 36], $Vo = [1, 10, 12, 14, 16, 18, 19, 21, 23, 24, 26, 27, 28, 34, 35, 36], $Vp = [1, 10, 12, 14, 16, 18, 19, 21, 23, 24, 26, 27, 28, 34, 35, 36, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50], $Vq = [1, 64];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"eol\": 4, \"XYCHART\": 5, \"chartConfig\": 6, \"document\": 7, \"CHART_ORIENTATION\": 8, \"statement\": 9, \"title\": 10, \"text\": 11, \"X_AXIS\": 12, \"parseXAxis\": 13, \"Y_AXIS\": 14, \"parseYAxis\": 15, \"LINE\": 16, \"plotData\": 17, \"BAR\": 18, \"acc_title\": 19, \"acc_title_value\": 20, \"acc_descr\": 21, \"acc_descr_value\": 22, \"acc_descr_multiline_value\": 23, \"SQUARE_BRACES_START\": 24, \"commaSeparatedNumbers\": 25, \"SQUARE_BRACES_END\": 26, \"NUMBER_WITH_DECIMAL\": 27, \"COMMA\": 28, \"xAxisData\": 29, \"bandData\": 30, \"ARROW_DELIMITER\": 31, \"commaSeparatedTexts\": 32, \"yAxisData\": 33, \"NEWLINE\": 34, \"SEMI\": 35, \"EOF\": 36, \"alphaNum\": 37, \"STR\": 38, \"MD_STR\": 39, \"alphaNumToken\": 40, \"AMP\": 41, \"NUM\": 42, \"ALPHA\": 43, \"PLUS\": 44, \"EQUALS\": 45, \"MULT\": 46, \"DOT\": 47, \"BRKT\": 48, \"MINUS\": 49, \"UNDERSCORE\": 50, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 5: \"XYCHART\", 8: \"CHART_ORIENTATION\", 10: \"title\", 12: \"X_AXIS\", 14: \"Y_AXIS\", 16: \"LINE\", 18: \"BAR\", 19: \"acc_title\", 20: \"acc_title_value\", 21: \"acc_descr\", 22: \"acc_descr_value\", 23: \"acc_descr_multiline_value\", 24: \"SQUARE_BRACES_START\", 26: \"SQUARE_BRACES_END\", 27: \"NUMBER_WITH_DECIMAL\", 28: \"COMMA\", 31: \"ARROW_DELIMITER\", 34: \"NEWLINE\", 35: \"SEMI\", 36: \"EOF\", 38: \"STR\", 39: \"MD_STR\", 41: \"AMP\", 42: \"NUM\", 43: \"ALPHA\", 44: \"PLUS\", 45: \"EQUALS\", 46: \"MULT\", 47: \"DOT\", 48: \"BRKT\", 49: \"MINUS\", 50: \"UNDERSCORE\" },\n productions_: [0, [3, 2], [3, 3], [3, 2], [3, 1], [6, 1], [7, 0], [7, 2], [9, 2], [9, 2], [9, 2], [9, 2], [9, 2], [9, 3], [9, 2], [9, 3], [9, 2], [9, 2], [9, 1], [17, 3], [25, 3], [25, 1], [13, 1], [13, 2], [13, 1], [29, 1], [29, 3], [30, 3], [32, 3], [32, 1], [15, 1], [15, 2], [15, 1], [33, 3], [4, 1], [4, 1], [4, 1], [11, 1], [11, 1], [11, 1], [37, 1], [37, 2], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 5:\n yy.setOrientation($$[$0]);\n break;\n case 9:\n yy.setDiagramTitle($$[$0].text.trim());\n break;\n case 12:\n yy.setLineData({ text: \"\", type: \"text\" }, $$[$0]);\n break;\n case 13:\n yy.setLineData($$[$0 - 1], $$[$0]);\n break;\n case 14:\n yy.setBarData({ text: \"\", type: \"text\" }, $$[$0]);\n break;\n case 15:\n yy.setBarData($$[$0 - 1], $$[$0]);\n break;\n case 16:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 17:\n case 18:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 19:\n this.$ = $$[$0 - 1];\n break;\n case 20:\n this.$ = [Number($$[$0 - 2]), ...$$[$0]];\n break;\n case 21:\n this.$ = [Number($$[$0])];\n break;\n case 22:\n yy.setXAxisTitle($$[$0]);\n break;\n case 23:\n yy.setXAxisTitle($$[$0 - 1]);\n break;\n case 24:\n yy.setXAxisTitle({ type: \"text\", text: \"\" });\n break;\n case 25:\n yy.setXAxisBand($$[$0]);\n break;\n case 26:\n yy.setXAxisRangeData(Number($$[$0 - 2]), Number($$[$0]));\n break;\n case 27:\n this.$ = $$[$0 - 1];\n break;\n case 28:\n this.$ = [$$[$0 - 2], ...$$[$0]];\n break;\n case 29:\n this.$ = [$$[$0]];\n break;\n case 30:\n yy.setYAxisTitle($$[$0]);\n break;\n case 31:\n yy.setYAxisTitle($$[$0 - 1]);\n break;\n case 32:\n yy.setYAxisTitle({ type: \"text\", text: \"\" });\n break;\n case 33:\n yy.setYAxisRangeData(Number($$[$0 - 2]), Number($$[$0]));\n break;\n case 37:\n this.$ = { text: $$[$0], type: \"text\" };\n break;\n case 38:\n this.$ = { text: $$[$0], type: \"text\" };\n break;\n case 39:\n this.$ = { text: $$[$0], type: \"markdown\" };\n break;\n case 40:\n this.$ = $$[$0];\n break;\n case 41:\n this.$ = $$[$0 - 1] + \"\" + $$[$0];\n break;\n }\n },\n table: [o($V0, $V1, { 3: 1, 4: 2, 7: 4, 5: $V2, 34: $V3, 35: $V4, 36: $V5 }), { 1: [3] }, o($V0, $V1, { 4: 2, 7: 4, 3: 8, 5: $V2, 34: $V3, 35: $V4, 36: $V5 }), o($V0, $V1, { 4: 2, 7: 4, 6: 9, 3: 10, 5: $V2, 8: [1, 11], 34: $V3, 35: $V4, 36: $V5 }), { 1: [2, 4], 9: 12, 10: [1, 13], 12: [1, 14], 14: [1, 15], 16: [1, 16], 18: [1, 17], 19: [1, 18], 21: [1, 19], 23: [1, 20] }, o($V6, [2, 34]), o($V6, [2, 35]), o($V6, [2, 36]), { 1: [2, 1] }, o($V0, $V1, { 4: 2, 7: 4, 3: 21, 5: $V2, 34: $V3, 35: $V4, 36: $V5 }), { 1: [2, 3] }, o($V6, [2, 5]), o($V0, [2, 7], { 4: 22, 34: $V3, 35: $V4, 36: $V5 }), { 11: 23, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 11: 39, 13: 38, 24: $Vj, 27: $Vk, 29: 40, 30: 41, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 11: 45, 15: 44, 27: $Vl, 33: 46, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 11: 49, 17: 48, 24: $Vm, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 11: 52, 17: 51, 24: $Vm, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 20: [1, 53] }, { 22: [1, 54] }, o($Vn, [2, 18]), { 1: [2, 2] }, o($Vn, [2, 8]), o($Vn, [2, 9]), o($Vo, [2, 37], { 40: 55, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }), o($Vo, [2, 38]), o($Vo, [2, 39]), o($Vp, [2, 40]), o($Vp, [2, 42]), o($Vp, [2, 43]), o($Vp, [2, 44]), o($Vp, [2, 45]), o($Vp, [2, 46]), o($Vp, [2, 47]), o($Vp, [2, 48]), o($Vp, [2, 49]), o($Vp, [2, 50]), o($Vp, [2, 51]), o($Vn, [2, 10]), o($Vn, [2, 22], { 30: 41, 29: 56, 24: $Vj, 27: $Vk }), o($Vn, [2, 24]), o($Vn, [2, 25]), { 31: [1, 57] }, { 11: 59, 32: 58, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, o($Vn, [2, 11]), o($Vn, [2, 30], { 33: 60, 27: $Vl }), o($Vn, [2, 32]), { 31: [1, 61] }, o($Vn, [2, 12]), { 17: 62, 24: $Vm }, { 25: 63, 27: $Vq }, o($Vn, [2, 14]), { 17: 65, 24: $Vm }, o($Vn, [2, 16]), o($Vn, [2, 17]), o($Vp, [2, 41]), o($Vn, [2, 23]), { 27: [1, 66] }, { 26: [1, 67] }, { 26: [2, 29], 28: [1, 68] }, o($Vn, [2, 31]), { 27: [1, 69] }, o($Vn, [2, 13]), { 26: [1, 70] }, { 26: [2, 21], 28: [1, 71] }, o($Vn, [2, 15]), o($Vn, [2, 26]), o($Vn, [2, 27]), { 11: 59, 32: 72, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, o($Vn, [2, 33]), o($Vn, [2, 19]), { 25: 73, 27: $Vq }, { 26: [2, 28] }, { 26: [2, 20] }],\n defaultActions: { 8: [2, 1], 10: [2, 3], 21: [2, 2], 72: [2, 28], 73: [2, 20] },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n break;\n case 1:\n break;\n case 2:\n this.popState();\n return 34;\n case 3:\n this.popState();\n return 34;\n case 4:\n return 34;\n case 5:\n break;\n case 6:\n return 10;\n case 7:\n this.pushState(\"acc_title\");\n return 19;\n case 8:\n this.popState();\n return \"acc_title_value\";\n case 9:\n this.pushState(\"acc_descr\");\n return 21;\n case 10:\n this.popState();\n return \"acc_descr_value\";\n case 11:\n this.pushState(\"acc_descr_multiline\");\n break;\n case 12:\n this.popState();\n break;\n case 13:\n return \"acc_descr_multiline_value\";\n case 14:\n return 5;\n case 15:\n return 8;\n case 16:\n this.pushState(\"axis_data\");\n return \"X_AXIS\";\n case 17:\n this.pushState(\"axis_data\");\n return \"Y_AXIS\";\n case 18:\n this.pushState(\"axis_band_data\");\n return 24;\n case 19:\n return 31;\n case 20:\n this.pushState(\"data\");\n return 16;\n case 21:\n this.pushState(\"data\");\n return 18;\n case 22:\n this.pushState(\"data_inner\");\n return 24;\n case 23:\n return 27;\n case 24:\n this.popState();\n return 26;\n case 25:\n this.popState();\n break;\n case 26:\n this.pushState(\"string\");\n break;\n case 27:\n this.popState();\n break;\n case 28:\n return \"STR\";\n case 29:\n return 24;\n case 30:\n return 26;\n case 31:\n return 43;\n case 32:\n return \"COLON\";\n case 33:\n return 44;\n case 34:\n return 28;\n case 35:\n return 45;\n case 36:\n return 46;\n case 37:\n return 48;\n case 38:\n return 50;\n case 39:\n return 47;\n case 40:\n return 41;\n case 41:\n return 49;\n case 42:\n return 42;\n case 43:\n break;\n case 44:\n return 35;\n case 45:\n return 36;\n }\n },\n rules: [/^(?:%%(?!\\{)[^\\n]*)/i, /^(?:[^\\}]%%[^\\n]*)/i, /^(?:(\\r?\\n))/i, /^(?:(\\r?\\n))/i, /^(?:[\\n\\r]+)/i, /^(?:%%[^\\n]*)/i, /^(?:title\\b)/i, /^(?:accTitle\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*\\{\\s*)/i, /^(?:\\{)/i, /^(?:[^\\}]*)/i, /^(?:xychart-beta\\b)/i, /^(?:(?:vertical|horizontal))/i, /^(?:x-axis\\b)/i, /^(?:y-axis\\b)/i, /^(?:\\[)/i, /^(?:-->)/i, /^(?:line\\b)/i, /^(?:bar\\b)/i, /^(?:\\[)/i, /^(?:[+-]?(?:\\d+(?:\\.\\d+)?|\\.\\d+))/i, /^(?:\\])/i, /^(?:(?:`\\) \\{ this\\.pushState\\(md_string\\); \\}\\n<md_string>\\(\\?:\\(\\?!`\"\\)\\.\\)\\+ \\{ return MD_STR; \\}\\n<md_string>\\(\\?:`))/i, /^(?:[\"])/i, /^(?:[\"])/i, /^(?:[^\"]*)/i, /^(?:\\[)/i, /^(?:\\])/i, /^(?:[A-Za-z]+)/i, /^(?::)/i, /^(?:\\+)/i, /^(?:,)/i, /^(?:=)/i, /^(?:\\*)/i, /^(?:#)/i, /^(?:[\\_])/i, /^(?:\\.)/i, /^(?:&)/i, /^(?:-)/i, /^(?:[0-9]+)/i, /^(?:\\s+)/i, /^(?:;)/i, /^(?:$)/i],\n conditions: { \"data_inner\": { \"rules\": [0, 1, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 20, 21, 23, 24, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], \"inclusive\": true }, \"data\": { \"rules\": [0, 1, 3, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 20, 21, 22, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], \"inclusive\": true }, \"axis_band_data\": { \"rules\": [0, 1, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 20, 21, 24, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], \"inclusive\": true }, \"axis_data\": { \"rules\": [0, 1, 2, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 18, 19, 20, 21, 23, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], \"inclusive\": true }, \"acc_descr_multiline\": { \"rules\": [12, 13], \"inclusive\": false }, \"acc_descr\": { \"rules\": [10], \"inclusive\": false }, \"acc_title\": { \"rules\": [8], \"inclusive\": false }, \"title\": { \"rules\": [], \"inclusive\": false }, \"md_string\": { \"rules\": [], \"inclusive\": false }, \"string\": { \"rules\": [27, 28], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 20, 21, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst parser$1 = parser;\nfunction isBarPlot(data) {\n return data.type === \"bar\";\n}\nfunction isBandAxisData(data) {\n return data.type === \"band\";\n}\nfunction isLinearAxisData(data) {\n return data.type === \"linear\";\n}\nclass TextDimensionCalculatorWithFont {\n constructor(parentGroup) {\n this.parentGroup = parentGroup;\n }\n getMaxDimension(texts, fontSize) {\n if (!this.parentGroup) {\n return {\n width: texts.reduce((acc, cur) => Math.max(cur.length, acc), 0) * fontSize,\n height: fontSize\n };\n }\n const dimension = {\n width: 0,\n height: 0\n };\n const elem = this.parentGroup.append(\"g\").attr(\"visibility\", \"hidden\").attr(\"font-size\", fontSize);\n for (const t of texts) {\n const bbox = computeDimensionOfText(elem, 1, t);\n const width = bbox ? bbox.width : t.length * fontSize;\n const height = bbox ? bbox.height : fontSize;\n dimension.width = Math.max(dimension.width, width);\n dimension.height = Math.max(dimension.height, height);\n }\n elem.remove();\n return dimension;\n }\n}\nconst BAR_WIDTH_TO_TICK_WIDTH_RATIO = 0.7;\nconst MAX_OUTER_PADDING_PERCENT_FOR_WRT_LABEL = 0.2;\nclass BaseAxis {\n constructor(axisConfig, title, textDimensionCalculator, axisThemeConfig) {\n this.axisConfig = axisConfig;\n this.title = title;\n this.textDimensionCalculator = textDimensionCalculator;\n this.axisThemeConfig = axisThemeConfig;\n this.boundingRect = { x: 0, y: 0, width: 0, height: 0 };\n this.axisPosition = \"left\";\n this.showTitle = false;\n this.showLabel = false;\n this.showTick = false;\n this.showAxisLine = false;\n this.outerPadding = 0;\n this.titleTextHeight = 0;\n this.labelTextHeight = 0;\n this.range = [0, 10];\n this.boundingRect = { x: 0, y: 0, width: 0, height: 0 };\n this.axisPosition = \"left\";\n }\n setRange(range) {\n this.range = range;\n if (this.axisPosition === \"left\" || this.axisPosition === \"right\") {\n this.boundingRect.height = range[1] - range[0];\n } else {\n this.boundingRect.width = range[1] - range[0];\n }\n this.recalculateScale();\n }\n getRange() {\n return [this.range[0] + this.outerPadding, this.range[1] - this.outerPadding];\n }\n setAxisPosition(axisPosition) {\n this.axisPosition = axisPosition;\n this.setRange(this.range);\n }\n getTickDistance() {\n const range = this.getRange();\n return Math.abs(range[0] - range[1]) / this.getTickValues().length;\n }\n getAxisOuterPadding() {\n return this.outerPadding;\n }\n getLabelDimension() {\n return this.textDimensionCalculator.getMaxDimension(\n this.getTickValues().map((tick) => tick.toString()),\n this.axisConfig.labelFontSize\n );\n }\n recalculateOuterPaddingToDrawBar() {\n if (BAR_WIDTH_TO_TICK_WIDTH_RATIO * this.getTickDistance() > this.outerPadding * 2) {\n this.outerPadding = Math.floor(BAR_WIDTH_TO_TICK_WIDTH_RATIO * this.getTickDistance() / 2);\n }\n this.recalculateScale();\n }\n calculateSpaceIfDrawnHorizontally(availableSpace) {\n let availableHeight = availableSpace.height;\n if (this.axisConfig.showAxisLine && availableHeight > this.axisConfig.axisLineWidth) {\n availableHeight -= this.axisConfig.axisLineWidth;\n this.showAxisLine = true;\n }\n if (this.axisConfig.showLabel) {\n const spaceRequired = this.getLabelDimension();\n const maxPadding = MAX_OUTER_PADDING_PERCENT_FOR_WRT_LABEL * availableSpace.width;\n this.outerPadding = Math.min(spaceRequired.width / 2, maxPadding);\n const heightRequired = spaceRequired.height + this.axisConfig.labelPadding * 2;\n this.labelTextHeight = spaceRequired.height;\n if (heightRequired <= availableHeight) {\n availableHeight -= heightRequired;\n this.showLabel = true;\n }\n }\n if (this.axisConfig.showTick && availableHeight >= this.axisConfig.tickLength) {\n this.showTick = true;\n availableHeight -= this.axisConfig.tickLength;\n }\n if (this.axisConfig.showTitle && this.title) {\n const spaceRequired = this.textDimensionCalculator.getMaxDimension(\n [this.title],\n this.axisConfig.titleFontSize\n );\n const heightRequired = spaceRequired.height + this.axisConfig.titlePadding * 2;\n this.titleTextHeight = spaceRequired.height;\n if (heightRequired <= availableHeight) {\n availableHeight -= heightRequired;\n this.showTitle = true;\n }\n }\n this.boundingRect.width = availableSpace.width;\n this.boundingRect.height = availableSpace.height - availableHeight;\n }\n calculateSpaceIfDrawnVertical(availableSpace) {\n let availableWidth = availableSpace.width;\n if (this.axisConfig.showAxisLine && availableWidth > this.axisConfig.axisLineWidth) {\n availableWidth -= this.axisConfig.axisLineWidth;\n this.showAxisLine = true;\n }\n if (this.axisConfig.showLabel) {\n const spaceRequired = this.getLabelDimension();\n const maxPadding = MAX_OUTER_PADDING_PERCENT_FOR_WRT_LABEL * availableSpace.height;\n this.outerPadding = Math.min(spaceRequired.height / 2, maxPadding);\n const widthRequired = spaceRequired.width + this.axisConfig.labelPadding * 2;\n if (widthRequired <= availableWidth) {\n availableWidth -= widthRequired;\n this.showLabel = true;\n }\n }\n if (this.axisConfig.showTick && availableWidth >= this.axisConfig.tickLength) {\n this.showTick = true;\n availableWidth -= this.axisConfig.tickLength;\n }\n if (this.axisConfig.showTitle && this.title) {\n const spaceRequired = this.textDimensionCalculator.getMaxDimension(\n [this.title],\n this.axisConfig.titleFontSize\n );\n const widthRequired = spaceRequired.height + this.axisConfig.titlePadding * 2;\n this.titleTextHeight = spaceRequired.height;\n if (widthRequired <= availableWidth) {\n availableWidth -= widthRequired;\n this.showTitle = true;\n }\n }\n this.boundingRect.width = availableSpace.width - availableWidth;\n this.boundingRect.height = availableSpace.height;\n }\n calculateSpace(availableSpace) {\n if (this.axisPosition === \"left\" || this.axisPosition === \"right\") {\n this.calculateSpaceIfDrawnVertical(availableSpace);\n } else {\n this.calculateSpaceIfDrawnHorizontally(availableSpace);\n }\n this.recalculateScale();\n return {\n width: this.boundingRect.width,\n height: this.boundingRect.height\n };\n }\n setBoundingBoxXY(point) {\n this.boundingRect.x = point.x;\n this.boundingRect.y = point.y;\n }\n getDrawableElementsForLeftAxis() {\n const drawableElement = [];\n if (this.showAxisLine) {\n const x = this.boundingRect.x + this.boundingRect.width - this.axisConfig.axisLineWidth / 2;\n drawableElement.push({\n type: \"path\",\n groupTexts: [\"left-axis\", \"axisl-line\"],\n data: [\n {\n path: `M ${x},${this.boundingRect.y} L ${x},${this.boundingRect.y + this.boundingRect.height} `,\n strokeFill: this.axisThemeConfig.axisLineColor,\n strokeWidth: this.axisConfig.axisLineWidth\n }\n ]\n });\n }\n if (this.showLabel) {\n drawableElement.push({\n type: \"text\",\n groupTexts: [\"left-axis\", \"label\"],\n data: this.getTickValues().map((tick) => ({\n text: tick.toString(),\n x: this.boundingRect.x + this.boundingRect.width - (this.showLabel ? this.axisConfig.labelPadding : 0) - (this.showTick ? this.axisConfig.tickLength : 0) - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0),\n y: this.getScaleValue(tick),\n fill: this.axisThemeConfig.labelColor,\n fontSize: this.axisConfig.labelFontSize,\n rotation: 0,\n verticalPos: \"middle\",\n horizontalPos: \"right\"\n }))\n });\n }\n if (this.showTick) {\n const x = this.boundingRect.x + this.boundingRect.width - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0);\n drawableElement.push({\n type: \"path\",\n groupTexts: [\"left-axis\", \"ticks\"],\n data: this.getTickValues().map((tick) => ({\n path: `M ${x},${this.getScaleValue(tick)} L ${x - this.axisConfig.tickLength},${this.getScaleValue(tick)}`,\n strokeFill: this.axisThemeConfig.tickColor,\n strokeWidth: this.axisConfig.tickWidth\n }))\n });\n }\n if (this.showTitle) {\n drawableElement.push({\n type: \"text\",\n groupTexts: [\"left-axis\", \"title\"],\n data: [\n {\n text: this.title,\n x: this.boundingRect.x + this.axisConfig.titlePadding,\n y: this.boundingRect.y + this.boundingRect.height / 2,\n fill: this.axisThemeConfig.titleColor,\n fontSize: this.axisConfig.titleFontSize,\n rotation: 270,\n verticalPos: \"top\",\n horizontalPos: \"center\"\n }\n ]\n });\n }\n return drawableElement;\n }\n getDrawableElementsForBottomAxis() {\n const drawableElement = [];\n if (this.showAxisLine) {\n const y = this.boundingRect.y + this.axisConfig.axisLineWidth / 2;\n drawableElement.push({\n type: \"path\",\n groupTexts: [\"bottom-axis\", \"axis-line\"],\n data: [\n {\n path: `M ${this.boundingRect.x},${y} L ${this.boundingRect.x + this.boundingRect.width},${y}`,\n strokeFill: this.axisThemeConfig.axisLineColor,\n strokeWidth: this.axisConfig.axisLineWidth\n }\n ]\n });\n }\n if (this.showLabel) {\n drawableElement.push({\n type: \"text\",\n groupTexts: [\"bottom-axis\", \"label\"],\n data: this.getTickValues().map((tick) => ({\n text: tick.toString(),\n x: this.getScaleValue(tick),\n y: this.boundingRect.y + this.axisConfig.labelPadding + (this.showTick ? this.axisConfig.tickLength : 0) + (this.showAxisLine ? this.axisConfig.axisLineWidth : 0),\n fill: this.axisThemeConfig.labelColor,\n fontSize: this.axisConfig.labelFontSize,\n rotation: 0,\n verticalPos: \"top\",\n horizontalPos: \"center\"\n }))\n });\n }\n if (this.showTick) {\n const y = this.boundingRect.y + (this.showAxisLine ? this.axisConfig.axisLineWidth : 0);\n drawableElement.push({\n type: \"path\",\n groupTexts: [\"bottom-axis\", \"ticks\"],\n data: this.getTickValues().map((tick) => ({\n path: `M ${this.getScaleValue(tick)},${y} L ${this.getScaleValue(tick)},${y + this.axisConfig.tickLength}`,\n strokeFill: this.axisThemeConfig.tickColor,\n strokeWidth: this.axisConfig.tickWidth\n }))\n });\n }\n if (this.showTitle) {\n drawableElement.push({\n type: \"text\",\n groupTexts: [\"bottom-axis\", \"title\"],\n data: [\n {\n text: this.title,\n x: this.range[0] + (this.range[1] - this.range[0]) / 2,\n y: this.boundingRect.y + this.boundingRect.height - this.axisConfig.titlePadding - this.titleTextHeight,\n fill: this.axisThemeConfig.titleColor,\n fontSize: this.axisConfig.titleFontSize,\n rotation: 0,\n verticalPos: \"top\",\n horizontalPos: \"center\"\n }\n ]\n });\n }\n return drawableElement;\n }\n getDrawableElementsForTopAxis() {\n const drawableElement = [];\n if (this.showAxisLine) {\n const y = this.boundingRect.y + this.boundingRect.height - this.axisConfig.axisLineWidth / 2;\n drawableElement.push({\n type: \"path\",\n groupTexts: [\"top-axis\", \"axis-line\"],\n data: [\n {\n path: `M ${this.boundingRect.x},${y} L ${this.boundingRect.x + this.boundingRect.width},${y}`,\n strokeFill: this.axisThemeConfig.axisLineColor,\n strokeWidth: this.axisConfig.axisLineWidth\n }\n ]\n });\n }\n if (this.showLabel) {\n drawableElement.push({\n type: \"text\",\n groupTexts: [\"top-axis\", \"label\"],\n data: this.getTickValues().map((tick) => ({\n text: tick.toString(),\n x: this.getScaleValue(tick),\n y: this.boundingRect.y + (this.showTitle ? this.titleTextHeight + this.axisConfig.titlePadding * 2 : 0) + this.axisConfig.labelPadding,\n fill: this.axisThemeConfig.labelColor,\n fontSize: this.axisConfig.labelFontSize,\n rotation: 0,\n verticalPos: \"top\",\n horizontalPos: \"center\"\n }))\n });\n }\n if (this.showTick) {\n const y = this.boundingRect.y;\n drawableElement.push({\n type: \"path\",\n groupTexts: [\"top-axis\", \"ticks\"],\n data: this.getTickValues().map((tick) => ({\n path: `M ${this.getScaleValue(tick)},${y + this.boundingRect.height - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0)} L ${this.getScaleValue(tick)},${y + this.boundingRect.height - this.axisConfig.tickLength - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0)}`,\n strokeFill: this.axisThemeConfig.tickColor,\n strokeWidth: this.axisConfig.tickWidth\n }))\n });\n }\n if (this.showTitle) {\n drawableElement.push({\n type: \"text\",\n groupTexts: [\"top-axis\", \"title\"],\n data: [\n {\n text: this.title,\n x: this.boundingRect.x + this.boundingRect.width / 2,\n y: this.boundingRect.y + this.axisConfig.titlePadding,\n fill: this.axisThemeConfig.titleColor,\n fontSize: this.axisConfig.titleFontSize,\n rotation: 0,\n verticalPos: \"top\",\n horizontalPos: \"center\"\n }\n ]\n });\n }\n return drawableElement;\n }\n getDrawableElements() {\n if (this.axisPosition === \"left\") {\n return this.getDrawableElementsForLeftAxis();\n }\n if (this.axisPosition === \"right\") {\n throw Error(\"Drawing of right axis is not implemented\");\n }\n if (this.axisPosition === \"bottom\") {\n return this.getDrawableElementsForBottomAxis();\n }\n if (this.axisPosition === \"top\") {\n return this.getDrawableElementsForTopAxis();\n }\n return [];\n }\n}\nclass BandAxis extends BaseAxis {\n constructor(axisConfig, axisThemeConfig, categories, title, textDimensionCalculator) {\n super(axisConfig, title, textDimensionCalculator, axisThemeConfig);\n this.categories = categories;\n this.scale = scaleBand().domain(this.categories).range(this.getRange());\n }\n setRange(range) {\n super.setRange(range);\n }\n recalculateScale() {\n this.scale = scaleBand().domain(this.categories).range(this.getRange()).paddingInner(1).paddingOuter(0).align(0.5);\n log.trace(\"BandAxis axis final categories, range: \", this.categories, this.getRange());\n }\n getTickValues() {\n return this.categories;\n }\n getScaleValue(value) {\n return this.scale(value) || this.getRange()[0];\n }\n}\nclass LinearAxis extends BaseAxis {\n constructor(axisConfig, axisThemeConfig, domain, title, textDimensionCalculator) {\n super(axisConfig, title, textDimensionCalculator, axisThemeConfig);\n this.domain = domain;\n this.scale = scaleLinear().domain(this.domain).range(this.getRange());\n }\n getTickValues() {\n return this.scale.ticks();\n }\n recalculateScale() {\n const domain = [...this.domain];\n if (this.axisPosition === \"left\") {\n domain.reverse();\n }\n this.scale = scaleLinear().domain(domain).range(this.getRange());\n }\n getScaleValue(value) {\n return this.scale(value);\n }\n}\nfunction getAxis(data, axisConfig, axisThemeConfig, tmpSVGGroup2) {\n const textDimansionCalculator = new TextDimensionCalculatorWithFont(tmpSVGGroup2);\n if (isBandAxisData(data)) {\n return new BandAxis(\n axisConfig,\n axisThemeConfig,\n data.categories,\n data.title,\n textDimansionCalculator\n );\n }\n return new LinearAxis(\n axisConfig,\n axisThemeConfig,\n [data.min, data.max],\n data.title,\n textDimansionCalculator\n );\n}\nclass ChartTitle {\n constructor(textDimensionCalculator, chartConfig, chartData, chartThemeConfig) {\n this.textDimensionCalculator = textDimensionCalculator;\n this.chartConfig = chartConfig;\n this.chartData = chartData;\n this.chartThemeConfig = chartThemeConfig;\n this.boundingRect = {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n this.showChartTitle = false;\n }\n setBoundingBoxXY(point) {\n this.boundingRect.x = point.x;\n this.boundingRect.y = point.y;\n }\n calculateSpace(availableSpace) {\n const titleDimension = this.textDimensionCalculator.getMaxDimension(\n [this.chartData.title],\n this.chartConfig.titleFontSize\n );\n const widthRequired = Math.max(titleDimension.width, availableSpace.width);\n const heightRequired = titleDimension.height + 2 * this.chartConfig.titlePadding;\n if (titleDimension.width <= widthRequired && titleDimension.height <= heightRequired && this.chartConfig.showTitle && this.chartData.title) {\n this.boundingRect.width = widthRequired;\n this.boundingRect.height = heightRequired;\n this.showChartTitle = true;\n }\n return {\n width: this.boundingRect.width,\n height: this.boundingRect.height\n };\n }\n getDrawableElements() {\n const drawableElem = [];\n if (this.showChartTitle) {\n drawableElem.push({\n groupTexts: [\"chart-title\"],\n type: \"text\",\n data: [\n {\n fontSize: this.chartConfig.titleFontSize,\n text: this.chartData.title,\n verticalPos: \"middle\",\n horizontalPos: \"center\",\n x: this.boundingRect.x + this.boundingRect.width / 2,\n y: this.boundingRect.y + this.boundingRect.height / 2,\n fill: this.chartThemeConfig.titleColor,\n rotation: 0\n }\n ]\n });\n }\n return drawableElem;\n }\n}\nfunction getChartTitleComponent(chartConfig, chartData, chartThemeConfig, tmpSVGGroup2) {\n const textDimensionCalculator = new TextDimensionCalculatorWithFont(tmpSVGGroup2);\n return new ChartTitle(textDimensionCalculator, chartConfig, chartData, chartThemeConfig);\n}\nclass LinePlot {\n constructor(plotData, xAxis, yAxis, orientation, plotIndex2) {\n this.plotData = plotData;\n this.xAxis = xAxis;\n this.yAxis = yAxis;\n this.orientation = orientation;\n this.plotIndex = plotIndex2;\n }\n getDrawableElement() {\n const finalData = this.plotData.data.map((d) => [\n this.xAxis.getScaleValue(d[0]),\n this.yAxis.getScaleValue(d[1])\n ]);\n let path;\n if (this.orientation === \"horizontal\") {\n path = line().y((d) => d[0]).x((d) => d[1])(finalData);\n } else {\n path = line().x((d) => d[0]).y((d) => d[1])(finalData);\n }\n if (!path) {\n return [];\n }\n return [\n {\n groupTexts: [\"plot\", `line-plot-${this.plotIndex}`],\n type: \"path\",\n data: [\n {\n path,\n strokeFill: this.plotData.strokeFill,\n strokeWidth: this.plotData.strokeWidth\n }\n ]\n }\n ];\n }\n}\nclass BarPlot {\n constructor(barData, boundingRect, xAxis, yAxis, orientation, plotIndex2) {\n this.barData = barData;\n this.boundingRect = boundingRect;\n this.xAxis = xAxis;\n this.yAxis = yAxis;\n this.orientation = orientation;\n this.plotIndex = plotIndex2;\n }\n getDrawableElement() {\n const finalData = this.barData.data.map((d) => [\n this.xAxis.getScaleValue(d[0]),\n this.yAxis.getScaleValue(d[1])\n ]);\n const barPaddingPercent = 0.05;\n const barWidth = Math.min(this.xAxis.getAxisOuterPadding() * 2, this.xAxis.getTickDistance()) * (1 - barPaddingPercent);\n const barWidthHalf = barWidth / 2;\n if (this.orientation === \"horizontal\") {\n return [\n {\n groupTexts: [\"plot\", `bar-plot-${this.plotIndex}`],\n type: \"rect\",\n data: finalData.map((data) => ({\n x: this.boundingRect.x,\n y: data[0] - barWidthHalf,\n height: barWidth,\n width: data[1] - this.boundingRect.x,\n fill: this.barData.fill,\n strokeWidth: 0,\n strokeFill: this.barData.fill\n }))\n }\n ];\n }\n return [\n {\n groupTexts: [\"plot\", `bar-plot-${this.plotIndex}`],\n type: \"rect\",\n data: finalData.map((data) => ({\n x: data[0] - barWidthHalf,\n y: data[1],\n width: barWidth,\n height: this.boundingRect.y + this.boundingRect.height - data[1],\n fill: this.barData.fill,\n strokeWidth: 0,\n strokeFill: this.barData.fill\n }))\n }\n ];\n }\n}\nclass BasePlot {\n constructor(chartConfig, chartData, chartThemeConfig) {\n this.chartConfig = chartConfig;\n this.chartData = chartData;\n this.chartThemeConfig = chartThemeConfig;\n this.boundingRect = {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n }\n setAxes(xAxis, yAxis) {\n this.xAxis = xAxis;\n this.yAxis = yAxis;\n }\n setBoundingBoxXY(point) {\n this.boundingRect.x = point.x;\n this.boundingRect.y = point.y;\n }\n calculateSpace(availableSpace) {\n this.boundingRect.width = availableSpace.width;\n this.boundingRect.height = availableSpace.height;\n return {\n width: this.boundingRect.width,\n height: this.boundingRect.height\n };\n }\n getDrawableElements() {\n if (!(this.xAxis && this.yAxis)) {\n throw Error(\"Axes must be passed to render Plots\");\n }\n const drawableElem = [];\n for (const [i, plot] of this.chartData.plots.entries()) {\n switch (plot.type) {\n case \"line\":\n {\n const linePlot = new LinePlot(\n plot,\n this.xAxis,\n this.yAxis,\n this.chartConfig.chartOrientation,\n i\n );\n drawableElem.push(...linePlot.getDrawableElement());\n }\n break;\n case \"bar\":\n {\n const barPlot = new BarPlot(\n plot,\n this.boundingRect,\n this.xAxis,\n this.yAxis,\n this.chartConfig.chartOrientation,\n i\n );\n drawableElem.push(...barPlot.getDrawableElement());\n }\n break;\n }\n }\n return drawableElem;\n }\n}\nfunction getPlotComponent(chartConfig, chartData, chartThemeConfig) {\n return new BasePlot(chartConfig, chartData, chartThemeConfig);\n}\nclass Orchestrator {\n constructor(chartConfig, chartData, chartThemeConfig, tmpSVGGroup2) {\n this.chartConfig = chartConfig;\n this.chartData = chartData;\n this.componentStore = {\n title: getChartTitleComponent(chartConfig, chartData, chartThemeConfig, tmpSVGGroup2),\n plot: getPlotComponent(chartConfig, chartData, chartThemeConfig),\n xAxis: getAxis(\n chartData.xAxis,\n chartConfig.xAxis,\n {\n titleColor: chartThemeConfig.xAxisTitleColor,\n labelColor: chartThemeConfig.xAxisLabelColor,\n tickColor: chartThemeConfig.xAxisTickColor,\n axisLineColor: chartThemeConfig.xAxisLineColor\n },\n tmpSVGGroup2\n ),\n yAxis: getAxis(\n chartData.yAxis,\n chartConfig.yAxis,\n {\n titleColor: chartThemeConfig.yAxisTitleColor,\n labelColor: chartThemeConfig.yAxisLabelColor,\n tickColor: chartThemeConfig.yAxisTickColor,\n axisLineColor: chartThemeConfig.yAxisLineColor\n },\n tmpSVGGroup2\n )\n };\n }\n calculateVerticalSpace() {\n let availableWidth = this.chartConfig.width;\n let availableHeight = this.chartConfig.height;\n let plotX = 0;\n let plotY = 0;\n let chartWidth = Math.floor(availableWidth * this.chartConfig.plotReservedSpacePercent / 100);\n let chartHeight = Math.floor(\n availableHeight * this.chartConfig.plotReservedSpacePercent / 100\n );\n let spaceUsed = this.componentStore.plot.calculateSpace({\n width: chartWidth,\n height: chartHeight\n });\n availableWidth -= spaceUsed.width;\n availableHeight -= spaceUsed.height;\n spaceUsed = this.componentStore.title.calculateSpace({\n width: this.chartConfig.width,\n height: availableHeight\n });\n plotY = spaceUsed.height;\n availableHeight -= spaceUsed.height;\n this.componentStore.xAxis.setAxisPosition(\"bottom\");\n spaceUsed = this.componentStore.xAxis.calculateSpace({\n width: availableWidth,\n height: availableHeight\n });\n availableHeight -= spaceUsed.height;\n this.componentStore.yAxis.setAxisPosition(\"left\");\n spaceUsed = this.componentStore.yAxis.calculateSpace({\n width: availableWidth,\n height: availableHeight\n });\n plotX = spaceUsed.width;\n availableWidth -= spaceUsed.width;\n if (availableWidth > 0) {\n chartWidth += availableWidth;\n availableWidth = 0;\n }\n if (availableHeight > 0) {\n chartHeight += availableHeight;\n availableHeight = 0;\n }\n this.componentStore.plot.calculateSpace({\n width: chartWidth,\n height: chartHeight\n });\n this.componentStore.plot.setBoundingBoxXY({ x: plotX, y: plotY });\n this.componentStore.xAxis.setRange([plotX, plotX + chartWidth]);\n this.componentStore.xAxis.setBoundingBoxXY({ x: plotX, y: plotY + chartHeight });\n this.componentStore.yAxis.setRange([plotY, plotY + chartHeight]);\n this.componentStore.yAxis.setBoundingBoxXY({ x: 0, y: plotY });\n if (this.chartData.plots.some((p) => isBarPlot(p))) {\n this.componentStore.xAxis.recalculateOuterPaddingToDrawBar();\n }\n }\n calculateHorizonatalSpace() {\n let availableWidth = this.chartConfig.width;\n let availableHeight = this.chartConfig.height;\n let titleYEnd = 0;\n let plotX = 0;\n let plotY = 0;\n let chartWidth = Math.floor(availableWidth * this.chartConfig.plotReservedSpacePercent / 100);\n let chartHeight = Math.floor(\n availableHeight * this.chartConfig.plotReservedSpacePercent / 100\n );\n let spaceUsed = this.componentStore.plot.calculateSpace({\n width: chartWidth,\n height: chartHeight\n });\n availableWidth -= spaceUsed.width;\n availableHeight -= spaceUsed.height;\n spaceUsed = this.componentStore.title.calculateSpace({\n width: this.chartConfig.width,\n height: availableHeight\n });\n titleYEnd = spaceUsed.height;\n availableHeight -= spaceUsed.height;\n this.componentStore.xAxis.setAxisPosition(\"left\");\n spaceUsed = this.componentStore.xAxis.calculateSpace({\n width: availableWidth,\n height: availableHeight\n });\n availableWidth -= spaceUsed.width;\n plotX = spaceUsed.width;\n this.componentStore.yAxis.setAxisPosition(\"top\");\n spaceUsed = this.componentStore.yAxis.calculateSpace({\n width: availableWidth,\n height: availableHeight\n });\n availableHeight -= spaceUsed.height;\n plotY = titleYEnd + spaceUsed.height;\n if (availableWidth > 0) {\n chartWidth += availableWidth;\n availableWidth = 0;\n }\n if (availableHeight > 0) {\n chartHeight += availableHeight;\n availableHeight = 0;\n }\n this.componentStore.plot.calculateSpace({\n width: chartWidth,\n height: chartHeight\n });\n this.componentStore.plot.setBoundingBoxXY({ x: plotX, y: plotY });\n this.componentStore.yAxis.setRange([plotX, plotX + chartWidth]);\n this.componentStore.yAxis.setBoundingBoxXY({ x: plotX, y: titleYEnd });\n this.componentStore.xAxis.setRange([plotY, plotY + chartHeight]);\n this.componentStore.xAxis.setBoundingBoxXY({ x: 0, y: plotY });\n if (this.chartData.plots.some((p) => isBarPlot(p))) {\n this.componentStore.xAxis.recalculateOuterPaddingToDrawBar();\n }\n }\n calculateSpace() {\n if (this.chartConfig.chartOrientation === \"horizontal\") {\n this.calculateHorizonatalSpace();\n } else {\n this.calculateVerticalSpace();\n }\n }\n getDrawableElement() {\n this.calculateSpace();\n const drawableElem = [];\n this.componentStore.plot.setAxes(this.componentStore.xAxis, this.componentStore.yAxis);\n for (const component of Object.values(this.componentStore)) {\n drawableElem.push(...component.getDrawableElements());\n }\n return drawableElem;\n }\n}\nclass XYChartBuilder {\n static build(config, chartData, chartThemeConfig, tmpSVGGroup2) {\n const orchestrator = new Orchestrator(config, chartData, chartThemeConfig, tmpSVGGroup2);\n return orchestrator.getDrawableElement();\n }\n}\nlet plotIndex = 0;\nlet tmpSVGGroup;\nlet xyChartConfig = getChartDefaultConfig();\nlet xyChartThemeConfig = getChartDefaultThemeConfig();\nlet xyChartData = getChartDefaultData();\nlet plotColorPalette = xyChartThemeConfig.plotColorPalette.split(\",\").map((color) => color.trim());\nlet hasSetXAxis = false;\nlet hasSetYAxis = false;\nfunction getChartDefaultThemeConfig() {\n const defaultThemeVariables = getThemeVariables();\n const config = getConfig();\n return cleanAndMerge(defaultThemeVariables.xyChart, config.themeVariables.xyChart);\n}\nfunction getChartDefaultConfig() {\n const config = getConfig();\n return cleanAndMerge(\n defaultConfig.xyChart,\n config.xyChart\n );\n}\nfunction getChartDefaultData() {\n return {\n yAxis: {\n type: \"linear\",\n title: \"\",\n min: Infinity,\n max: -Infinity\n },\n xAxis: {\n type: \"band\",\n title: \"\",\n categories: []\n },\n title: \"\",\n plots: []\n };\n}\nfunction textSanitizer(text) {\n const config = getConfig();\n return sanitizeText(text.trim(), config);\n}\nfunction setTmpSVGG(SVGG) {\n tmpSVGGroup = SVGG;\n}\nfunction setOrientation(orientation) {\n if (orientation === \"horizontal\") {\n xyChartConfig.chartOrientation = \"horizontal\";\n } else {\n xyChartConfig.chartOrientation = \"vertical\";\n }\n}\nfunction setXAxisTitle(title) {\n xyChartData.xAxis.title = textSanitizer(title.text);\n}\nfunction setXAxisRangeData(min, max) {\n xyChartData.xAxis = { type: \"linear\", title: xyChartData.xAxis.title, min, max };\n hasSetXAxis = true;\n}\nfunction setXAxisBand(categories) {\n xyChartData.xAxis = {\n type: \"band\",\n title: xyChartData.xAxis.title,\n categories: categories.map((c) => textSanitizer(c.text))\n };\n hasSetXAxis = true;\n}\nfunction setYAxisTitle(title) {\n xyChartData.yAxis.title = textSanitizer(title.text);\n}\nfunction setYAxisRangeData(min, max) {\n xyChartData.yAxis = { type: \"linear\", title: xyChartData.yAxis.title, min, max };\n hasSetYAxis = true;\n}\nfunction setYAxisRangeFromPlotData(data) {\n const minValue = Math.min(...data);\n const maxValue = Math.max(...data);\n const prevMinValue = isLinearAxisData(xyChartData.yAxis) ? xyChartData.yAxis.min : Infinity;\n const prevMaxValue = isLinearAxisData(xyChartData.yAxis) ? xyChartData.yAxis.max : -Infinity;\n xyChartData.yAxis = {\n type: \"linear\",\n title: xyChartData.yAxis.title,\n min: Math.min(prevMinValue, minValue),\n max: Math.max(prevMaxValue, maxValue)\n };\n}\nfunction transformDataWithoutCategory(data) {\n let retData = [];\n if (data.length === 0) {\n return retData;\n }\n if (!hasSetXAxis) {\n const prevMinValue = isLinearAxisData(xyChartData.xAxis) ? xyChartData.xAxis.min : Infinity;\n const prevMaxValue = isLinearAxisData(xyChartData.xAxis) ? xyChartData.xAxis.max : -Infinity;\n setXAxisRangeData(Math.min(prevMinValue, 1), Math.max(prevMaxValue, data.length));\n }\n if (!hasSetYAxis) {\n setYAxisRangeFromPlotData(data);\n }\n if (isBandAxisData(xyChartData.xAxis)) {\n retData = xyChartData.xAxis.categories.map((c, i) => [c, data[i]]);\n }\n if (isLinearAxisData(xyChartData.xAxis)) {\n const min = xyChartData.xAxis.min;\n const max = xyChartData.xAxis.max;\n const step = (max - min + 1) / data.length;\n const categories = [];\n for (let i = min; i <= max; i += step) {\n categories.push(`${i}`);\n }\n retData = categories.map((c, i) => [c, data[i]]);\n }\n return retData;\n}\nfunction getPlotColorFromPalette(plotIndex2) {\n return plotColorPalette[plotIndex2 === 0 ? 0 : plotIndex2 % plotColorPalette.length];\n}\nfunction setLineData(title, data) {\n const plotData = transformDataWithoutCategory(data);\n xyChartData.plots.push({\n type: \"line\",\n strokeFill: getPlotColorFromPalette(plotIndex),\n strokeWidth: 2,\n data: plotData\n });\n plotIndex++;\n}\nfunction setBarData(title, data) {\n const plotData = transformDataWithoutCategory(data);\n xyChartData.plots.push({\n type: \"bar\",\n fill: getPlotColorFromPalette(plotIndex),\n data: plotData\n });\n plotIndex++;\n}\nfunction getDrawableElem() {\n if (xyChartData.plots.length === 0) {\n throw Error(\"No Plot to render, please provide a plot with some data\");\n }\n xyChartData.title = getDiagramTitle();\n return XYChartBuilder.build(xyChartConfig, xyChartData, xyChartThemeConfig, tmpSVGGroup);\n}\nfunction getChartThemeConfig() {\n return xyChartThemeConfig;\n}\nfunction getChartConfig() {\n return xyChartConfig;\n}\nconst clear = function() {\n clear$1();\n plotIndex = 0;\n xyChartConfig = getChartDefaultConfig();\n xyChartData = getChartDefaultData();\n xyChartThemeConfig = getChartDefaultThemeConfig();\n plotColorPalette = xyChartThemeConfig.plotColorPalette.split(\",\").map((color) => color.trim());\n hasSetXAxis = false;\n hasSetYAxis = false;\n};\nconst db = {\n getDrawableElem,\n clear,\n setAccTitle,\n getAccTitle,\n setDiagramTitle,\n getDiagramTitle,\n getAccDescription,\n setAccDescription,\n setOrientation,\n setXAxisTitle,\n setXAxisRangeData,\n setXAxisBand,\n setYAxisTitle,\n setYAxisRangeData,\n setLineData,\n setBarData,\n setTmpSVGG,\n getChartThemeConfig,\n getChartConfig\n};\nconst draw = (txt, id, _version, diagObj) => {\n const db2 = diagObj.db;\n const themeConfig = db2.getChartThemeConfig();\n const chartConfig = db2.getChartConfig();\n function getDominantBaseLine(horizontalPos) {\n return horizontalPos === \"top\" ? \"text-before-edge\" : \"middle\";\n }\n function getTextAnchor(verticalPos) {\n return verticalPos === \"left\" ? \"start\" : verticalPos === \"right\" ? \"end\" : \"middle\";\n }\n function getTextTransformation(data) {\n return `translate(${data.x}, ${data.y}) rotate(${data.rotation || 0})`;\n }\n log.debug(\"Rendering xychart chart\\n\" + txt);\n const svg = selectSvgElement(id);\n const group = svg.append(\"g\").attr(\"class\", \"main\");\n const background = group.append(\"rect\").attr(\"width\", chartConfig.width).attr(\"height\", chartConfig.height).attr(\"class\", \"background\");\n configureSvgSize(svg, chartConfig.height, chartConfig.width, true);\n svg.attr(\"viewBox\", `0 0 ${chartConfig.width} ${chartConfig.height}`);\n background.attr(\"fill\", themeConfig.backgroundColor);\n db2.setTmpSVGG(svg.append(\"g\").attr(\"class\", \"mermaid-tmp-group\"));\n const shapes = db2.getDrawableElem();\n const groups = {};\n function getGroup(gList) {\n let elem = group;\n let prefix = \"\";\n for (const [i] of gList.entries()) {\n let parent = group;\n if (i > 0 && groups[prefix]) {\n parent = groups[prefix];\n }\n prefix += gList[i];\n elem = groups[prefix];\n if (!elem) {\n elem = groups[prefix] = parent.append(\"g\").attr(\"class\", gList[i]);\n }\n }\n return elem;\n }\n for (const shape of shapes) {\n if (shape.data.length === 0) {\n continue;\n }\n const shapeGroup = getGroup(shape.groupTexts);\n switch (shape.type) {\n case \"rect\":\n shapeGroup.selectAll(\"rect\").data(shape.data).enter().append(\"rect\").attr(\"x\", (data) => data.x).attr(\"y\", (data) => data.y).attr(\"width\", (data) => data.width).attr(\"height\", (data) => data.height).attr(\"fill\", (data) => data.fill).attr(\"stroke\", (data) => data.strokeFill).attr(\"stroke-width\", (data) => data.strokeWidth);\n break;\n case \"text\":\n shapeGroup.selectAll(\"text\").data(shape.data).enter().append(\"text\").attr(\"x\", 0).attr(\"y\", 0).attr(\"fill\", (data) => data.fill).attr(\"font-size\", (data) => data.fontSize).attr(\"dominant-baseline\", (data) => getDominantBaseLine(data.verticalPos)).attr(\"text-anchor\", (data) => getTextAnchor(data.horizontalPos)).attr(\"transform\", (data) => getTextTransformation(data)).text((data) => data.text);\n break;\n case \"path\":\n shapeGroup.selectAll(\"path\").data(shape.data).enter().append(\"path\").attr(\"d\", (data) => data.path).attr(\"fill\", (data) => data.fill ? data.fill : \"none\").attr(\"stroke\", (data) => data.strokeFill).attr(\"stroke-width\", (data) => data.strokeWidth);\n break;\n }\n }\n};\nconst renderer = {\n draw\n};\nconst diagram = {\n parser: parser$1,\n db,\n renderer\n};\nexport {\n diagram\n};\n"],"names":["range","start","stop","step","i","band","scale","ordinal","domain","ordinalRange","r0","r1","bandwidth","round","paddingInner","paddingOuter","align","rescale","n","reverse","values","sequence","_","initRange","parser","o","k","v","o2","l","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","$Vb","$Vc","$Vd","$Ve","$Vf","$Vg","$Vh","$Vi","$Vj","$Vk","$Vl","$Vm","$Vn","$Vo","$Vp","$Vq","parser2","yytext","yyleng","yylineno","yy","yystate","$$","_$","$0","str","hash","error","input","self","stack","tstack","vstack","lstack","table","TERROR","EOF","args","lexer2","sharedState","yyloc","ranges","lex","token","symbol","state","action","r","yyval","p","len","newState","expected","errStr","lexer","ch","lines","oldLines","past","next","pre","c","match","indexed_rule","backup","tempMatch","index","rules","condition","yy_","$avoiding_name_collisions","YY_START","Parser","parser$1","isBarPlot","data","isBandAxisData","isLinearAxisData","TextDimensionCalculatorWithFont","parentGroup","texts","fontSize","acc","cur","dimension","elem","t","bbox","computeDimensionOfText","width","height","BAR_WIDTH_TO_TICK_WIDTH_RATIO","MAX_OUTER_PADDING_PERCENT_FOR_WRT_LABEL","BaseAxis","axisConfig","title","textDimensionCalculator","axisThemeConfig","axisPosition","tick","availableSpace","availableHeight","spaceRequired","maxPadding","heightRequired","availableWidth","widthRequired","point","drawableElement","x","y","BandAxis","categories","scaleBand","log","value","LinearAxis","scaleLinear","getAxis","tmpSVGGroup2","textDimansionCalculator","ChartTitle","chartConfig","chartData","chartThemeConfig","titleDimension","drawableElem","getChartTitleComponent","LinePlot","plotData","xAxis","yAxis","orientation","plotIndex2","finalData","d","path","line","BarPlot","barData","boundingRect","barWidth","barWidthHalf","BasePlot","plot","linePlot","barPlot","getPlotComponent","Orchestrator","plotX","plotY","chartWidth","chartHeight","spaceUsed","titleYEnd","component","XYChartBuilder","config","plotIndex","tmpSVGGroup","xyChartConfig","getChartDefaultConfig","xyChartThemeConfig","getChartDefaultThemeConfig","xyChartData","getChartDefaultData","plotColorPalette","color","hasSetXAxis","hasSetYAxis","defaultThemeVariables","getThemeVariables","getConfig","cleanAndMerge","defaultConfig","textSanitizer","text","sanitizeText","setTmpSVGG","SVGG","setOrientation","setXAxisTitle","setXAxisRangeData","min","max","setXAxisBand","setYAxisTitle","setYAxisRangeData","setYAxisRangeFromPlotData","minValue","maxValue","prevMinValue","prevMaxValue","transformDataWithoutCategory","retData","getPlotColorFromPalette","setLineData","setBarData","getDrawableElem","getDiagramTitle","getChartThemeConfig","getChartConfig","clear","clear$1","db","setAccTitle","getAccTitle","setDiagramTitle","getAccDescription","setAccDescription","draw","txt","id","_version","diagObj","db2","themeConfig","getDominantBaseLine","horizontalPos","getTextAnchor","verticalPos","getTextTransformation","svg","selectSvgElement","group","background","configureSvgSize","shapes","groups","getGroup","gList","prefix","parent","shape","shapeGroup","renderer","diagram"],"mappings":"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","x_google_ignoreList":[0,1,2]}
1
+ {"version":3,"file":"xychartDiagram-e50adddc-rKOcwKj9.js","sources":["../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/range.js","../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/band.js","../node_modules/.pnpm/mermaid@10.8.0/node_modules/mermaid/dist/xychartDiagram-e50adddc.js"],"sourcesContent":["export default function range(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n","import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init.js\";\nimport ordinal from \"./ordinal.js\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n r0 = 0,\n r1 = 1,\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = r1 < r0,\n start = reverse ? r1 : r0,\n stop = reverse ? r0 : r1;\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];\n };\n\n scale.rangeRound = function(_) {\n return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), [r0, r1])\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n","import { l as log, s as setAccTitle, g as getAccTitle, q as setDiagramTitle, r as getDiagramTitle, a as getAccDescription, b as setAccDescription, D as getThemeVariables, E as getConfig, B as cleanAndMerge, A as defaultConfig, t as clear$1, d as sanitizeText, z as selectSvgElement, i as configureSvgSize } from \"./mermaid-0603ccf8.js\";\nimport { c as computeDimensionOfText } from \"./createText-423428c9.js\";\nimport { scaleBand, scaleLinear, line } from \"d3\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nimport \"mdast-util-from-markdown\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [1, 10, 12, 14, 16, 18, 19, 21, 23], $V1 = [2, 6], $V2 = [1, 3], $V3 = [1, 5], $V4 = [1, 6], $V5 = [1, 7], $V6 = [1, 5, 10, 12, 14, 16, 18, 19, 21, 23, 34, 35, 36], $V7 = [1, 25], $V8 = [1, 26], $V9 = [1, 28], $Va = [1, 29], $Vb = [1, 30], $Vc = [1, 31], $Vd = [1, 32], $Ve = [1, 33], $Vf = [1, 34], $Vg = [1, 35], $Vh = [1, 36], $Vi = [1, 37], $Vj = [1, 43], $Vk = [1, 42], $Vl = [1, 47], $Vm = [1, 50], $Vn = [1, 10, 12, 14, 16, 18, 19, 21, 23, 34, 35, 36], $Vo = [1, 10, 12, 14, 16, 18, 19, 21, 23, 24, 26, 27, 28, 34, 35, 36], $Vp = [1, 10, 12, 14, 16, 18, 19, 21, 23, 24, 26, 27, 28, 34, 35, 36, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50], $Vq = [1, 64];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"eol\": 4, \"XYCHART\": 5, \"chartConfig\": 6, \"document\": 7, \"CHART_ORIENTATION\": 8, \"statement\": 9, \"title\": 10, \"text\": 11, \"X_AXIS\": 12, \"parseXAxis\": 13, \"Y_AXIS\": 14, \"parseYAxis\": 15, \"LINE\": 16, \"plotData\": 17, \"BAR\": 18, \"acc_title\": 19, \"acc_title_value\": 20, \"acc_descr\": 21, \"acc_descr_value\": 22, \"acc_descr_multiline_value\": 23, \"SQUARE_BRACES_START\": 24, \"commaSeparatedNumbers\": 25, \"SQUARE_BRACES_END\": 26, \"NUMBER_WITH_DECIMAL\": 27, \"COMMA\": 28, \"xAxisData\": 29, \"bandData\": 30, \"ARROW_DELIMITER\": 31, \"commaSeparatedTexts\": 32, \"yAxisData\": 33, \"NEWLINE\": 34, \"SEMI\": 35, \"EOF\": 36, \"alphaNum\": 37, \"STR\": 38, \"MD_STR\": 39, \"alphaNumToken\": 40, \"AMP\": 41, \"NUM\": 42, \"ALPHA\": 43, \"PLUS\": 44, \"EQUALS\": 45, \"MULT\": 46, \"DOT\": 47, \"BRKT\": 48, \"MINUS\": 49, \"UNDERSCORE\": 50, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 5: \"XYCHART\", 8: \"CHART_ORIENTATION\", 10: \"title\", 12: \"X_AXIS\", 14: \"Y_AXIS\", 16: \"LINE\", 18: \"BAR\", 19: \"acc_title\", 20: \"acc_title_value\", 21: \"acc_descr\", 22: \"acc_descr_value\", 23: \"acc_descr_multiline_value\", 24: \"SQUARE_BRACES_START\", 26: \"SQUARE_BRACES_END\", 27: \"NUMBER_WITH_DECIMAL\", 28: \"COMMA\", 31: \"ARROW_DELIMITER\", 34: \"NEWLINE\", 35: \"SEMI\", 36: \"EOF\", 38: \"STR\", 39: \"MD_STR\", 41: \"AMP\", 42: \"NUM\", 43: \"ALPHA\", 44: \"PLUS\", 45: \"EQUALS\", 46: \"MULT\", 47: \"DOT\", 48: \"BRKT\", 49: \"MINUS\", 50: \"UNDERSCORE\" },\n productions_: [0, [3, 2], [3, 3], [3, 2], [3, 1], [6, 1], [7, 0], [7, 2], [9, 2], [9, 2], [9, 2], [9, 2], [9, 2], [9, 3], [9, 2], [9, 3], [9, 2], [9, 2], [9, 1], [17, 3], [25, 3], [25, 1], [13, 1], [13, 2], [13, 1], [29, 1], [29, 3], [30, 3], [32, 3], [32, 1], [15, 1], [15, 2], [15, 1], [33, 3], [4, 1], [4, 1], [4, 1], [11, 1], [11, 1], [11, 1], [37, 1], [37, 2], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 5:\n yy.setOrientation($$[$0]);\n break;\n case 9:\n yy.setDiagramTitle($$[$0].text.trim());\n break;\n case 12:\n yy.setLineData({ text: \"\", type: \"text\" }, $$[$0]);\n break;\n case 13:\n yy.setLineData($$[$0 - 1], $$[$0]);\n break;\n case 14:\n yy.setBarData({ text: \"\", type: \"text\" }, $$[$0]);\n break;\n case 15:\n yy.setBarData($$[$0 - 1], $$[$0]);\n break;\n case 16:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 17:\n case 18:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 19:\n this.$ = $$[$0 - 1];\n break;\n case 20:\n this.$ = [Number($$[$0 - 2]), ...$$[$0]];\n break;\n case 21:\n this.$ = [Number($$[$0])];\n break;\n case 22:\n yy.setXAxisTitle($$[$0]);\n break;\n case 23:\n yy.setXAxisTitle($$[$0 - 1]);\n break;\n case 24:\n yy.setXAxisTitle({ type: \"text\", text: \"\" });\n break;\n case 25:\n yy.setXAxisBand($$[$0]);\n break;\n case 26:\n yy.setXAxisRangeData(Number($$[$0 - 2]), Number($$[$0]));\n break;\n case 27:\n this.$ = $$[$0 - 1];\n break;\n case 28:\n this.$ = [$$[$0 - 2], ...$$[$0]];\n break;\n case 29:\n this.$ = [$$[$0]];\n break;\n case 30:\n yy.setYAxisTitle($$[$0]);\n break;\n case 31:\n yy.setYAxisTitle($$[$0 - 1]);\n break;\n case 32:\n yy.setYAxisTitle({ type: \"text\", text: \"\" });\n break;\n case 33:\n yy.setYAxisRangeData(Number($$[$0 - 2]), Number($$[$0]));\n break;\n case 37:\n this.$ = { text: $$[$0], type: \"text\" };\n break;\n case 38:\n this.$ = { text: $$[$0], type: \"text\" };\n break;\n case 39:\n this.$ = { text: $$[$0], type: \"markdown\" };\n break;\n case 40:\n this.$ = $$[$0];\n break;\n case 41:\n this.$ = $$[$0 - 1] + \"\" + $$[$0];\n break;\n }\n },\n table: [o($V0, $V1, { 3: 1, 4: 2, 7: 4, 5: $V2, 34: $V3, 35: $V4, 36: $V5 }), { 1: [3] }, o($V0, $V1, { 4: 2, 7: 4, 3: 8, 5: $V2, 34: $V3, 35: $V4, 36: $V5 }), o($V0, $V1, { 4: 2, 7: 4, 6: 9, 3: 10, 5: $V2, 8: [1, 11], 34: $V3, 35: $V4, 36: $V5 }), { 1: [2, 4], 9: 12, 10: [1, 13], 12: [1, 14], 14: [1, 15], 16: [1, 16], 18: [1, 17], 19: [1, 18], 21: [1, 19], 23: [1, 20] }, o($V6, [2, 34]), o($V6, [2, 35]), o($V6, [2, 36]), { 1: [2, 1] }, o($V0, $V1, { 4: 2, 7: 4, 3: 21, 5: $V2, 34: $V3, 35: $V4, 36: $V5 }), { 1: [2, 3] }, o($V6, [2, 5]), o($V0, [2, 7], { 4: 22, 34: $V3, 35: $V4, 36: $V5 }), { 11: 23, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 11: 39, 13: 38, 24: $Vj, 27: $Vk, 29: 40, 30: 41, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 11: 45, 15: 44, 27: $Vl, 33: 46, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 11: 49, 17: 48, 24: $Vm, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 11: 52, 17: 51, 24: $Vm, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 20: [1, 53] }, { 22: [1, 54] }, o($Vn, [2, 18]), { 1: [2, 2] }, o($Vn, [2, 8]), o($Vn, [2, 9]), o($Vo, [2, 37], { 40: 55, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }), o($Vo, [2, 38]), o($Vo, [2, 39]), o($Vp, [2, 40]), o($Vp, [2, 42]), o($Vp, [2, 43]), o($Vp, [2, 44]), o($Vp, [2, 45]), o($Vp, [2, 46]), o($Vp, [2, 47]), o($Vp, [2, 48]), o($Vp, [2, 49]), o($Vp, [2, 50]), o($Vp, [2, 51]), o($Vn, [2, 10]), o($Vn, [2, 22], { 30: 41, 29: 56, 24: $Vj, 27: $Vk }), o($Vn, [2, 24]), o($Vn, [2, 25]), { 31: [1, 57] }, { 11: 59, 32: 58, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, o($Vn, [2, 11]), o($Vn, [2, 30], { 33: 60, 27: $Vl }), o($Vn, [2, 32]), { 31: [1, 61] }, o($Vn, [2, 12]), { 17: 62, 24: $Vm }, { 25: 63, 27: $Vq }, o($Vn, [2, 14]), { 17: 65, 24: $Vm }, o($Vn, [2, 16]), o($Vn, [2, 17]), o($Vp, [2, 41]), o($Vn, [2, 23]), { 27: [1, 66] }, { 26: [1, 67] }, { 26: [2, 29], 28: [1, 68] }, o($Vn, [2, 31]), { 27: [1, 69] }, o($Vn, [2, 13]), { 26: [1, 70] }, { 26: [2, 21], 28: [1, 71] }, o($Vn, [2, 15]), o($Vn, [2, 26]), o($Vn, [2, 27]), { 11: 59, 32: 72, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, o($Vn, [2, 33]), o($Vn, [2, 19]), { 25: 73, 27: $Vq }, { 26: [2, 28] }, { 26: [2, 20] }],\n defaultActions: { 8: [2, 1], 10: [2, 3], 21: [2, 2], 72: [2, 28], 73: [2, 20] },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n break;\n case 1:\n break;\n case 2:\n this.popState();\n return 34;\n case 3:\n this.popState();\n return 34;\n case 4:\n return 34;\n case 5:\n break;\n case 6:\n return 10;\n case 7:\n this.pushState(\"acc_title\");\n return 19;\n case 8:\n this.popState();\n return \"acc_title_value\";\n case 9:\n this.pushState(\"acc_descr\");\n return 21;\n case 10:\n this.popState();\n return \"acc_descr_value\";\n case 11:\n this.pushState(\"acc_descr_multiline\");\n break;\n case 12:\n this.popState();\n break;\n case 13:\n return \"acc_descr_multiline_value\";\n case 14:\n return 5;\n case 15:\n return 8;\n case 16:\n this.pushState(\"axis_data\");\n return \"X_AXIS\";\n case 17:\n this.pushState(\"axis_data\");\n return \"Y_AXIS\";\n case 18:\n this.pushState(\"axis_band_data\");\n return 24;\n case 19:\n return 31;\n case 20:\n this.pushState(\"data\");\n return 16;\n case 21:\n this.pushState(\"data\");\n return 18;\n case 22:\n this.pushState(\"data_inner\");\n return 24;\n case 23:\n return 27;\n case 24:\n this.popState();\n return 26;\n case 25:\n this.popState();\n break;\n case 26:\n this.pushState(\"string\");\n break;\n case 27:\n this.popState();\n break;\n case 28:\n return \"STR\";\n case 29:\n return 24;\n case 30:\n return 26;\n case 31:\n return 43;\n case 32:\n return \"COLON\";\n case 33:\n return 44;\n case 34:\n return 28;\n case 35:\n return 45;\n case 36:\n return 46;\n case 37:\n return 48;\n case 38:\n return 50;\n case 39:\n return 47;\n case 40:\n return 41;\n case 41:\n return 49;\n case 42:\n return 42;\n case 43:\n break;\n case 44:\n return 35;\n case 45:\n return 36;\n }\n },\n rules: [/^(?:%%(?!\\{)[^\\n]*)/i, /^(?:[^\\}]%%[^\\n]*)/i, /^(?:(\\r?\\n))/i, /^(?:(\\r?\\n))/i, /^(?:[\\n\\r]+)/i, /^(?:%%[^\\n]*)/i, /^(?:title\\b)/i, /^(?:accTitle\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*\\{\\s*)/i, /^(?:\\{)/i, /^(?:[^\\}]*)/i, /^(?:xychart-beta\\b)/i, /^(?:(?:vertical|horizontal))/i, /^(?:x-axis\\b)/i, /^(?:y-axis\\b)/i, /^(?:\\[)/i, /^(?:-->)/i, /^(?:line\\b)/i, /^(?:bar\\b)/i, /^(?:\\[)/i, /^(?:[+-]?(?:\\d+(?:\\.\\d+)?|\\.\\d+))/i, /^(?:\\])/i, /^(?:(?:`\\) \\{ this\\.pushState\\(md_string\\); \\}\\n<md_string>\\(\\?:\\(\\?!`\"\\)\\.\\)\\+ \\{ return MD_STR; \\}\\n<md_string>\\(\\?:`))/i, /^(?:[\"])/i, /^(?:[\"])/i, /^(?:[^\"]*)/i, /^(?:\\[)/i, /^(?:\\])/i, /^(?:[A-Za-z]+)/i, /^(?::)/i, /^(?:\\+)/i, /^(?:,)/i, /^(?:=)/i, /^(?:\\*)/i, /^(?:#)/i, /^(?:[\\_])/i, /^(?:\\.)/i, /^(?:&)/i, /^(?:-)/i, /^(?:[0-9]+)/i, /^(?:\\s+)/i, /^(?:;)/i, /^(?:$)/i],\n conditions: { \"data_inner\": { \"rules\": [0, 1, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 20, 21, 23, 24, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], \"inclusive\": true }, \"data\": { \"rules\": [0, 1, 3, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 20, 21, 22, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], \"inclusive\": true }, \"axis_band_data\": { \"rules\": [0, 1, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 20, 21, 24, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], \"inclusive\": true }, \"axis_data\": { \"rules\": [0, 1, 2, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 18, 19, 20, 21, 23, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], \"inclusive\": true }, \"acc_descr_multiline\": { \"rules\": [12, 13], \"inclusive\": false }, \"acc_descr\": { \"rules\": [10], \"inclusive\": false }, \"acc_title\": { \"rules\": [8], \"inclusive\": false }, \"title\": { \"rules\": [], \"inclusive\": false }, \"md_string\": { \"rules\": [], \"inclusive\": false }, \"string\": { \"rules\": [27, 28], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 20, 21, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst parser$1 = parser;\nfunction isBarPlot(data) {\n return data.type === \"bar\";\n}\nfunction isBandAxisData(data) {\n return data.type === \"band\";\n}\nfunction isLinearAxisData(data) {\n return data.type === \"linear\";\n}\nclass TextDimensionCalculatorWithFont {\n constructor(parentGroup) {\n this.parentGroup = parentGroup;\n }\n getMaxDimension(texts, fontSize) {\n if (!this.parentGroup) {\n return {\n width: texts.reduce((acc, cur) => Math.max(cur.length, acc), 0) * fontSize,\n height: fontSize\n };\n }\n const dimension = {\n width: 0,\n height: 0\n };\n const elem = this.parentGroup.append(\"g\").attr(\"visibility\", \"hidden\").attr(\"font-size\", fontSize);\n for (const t of texts) {\n const bbox = computeDimensionOfText(elem, 1, t);\n const width = bbox ? bbox.width : t.length * fontSize;\n const height = bbox ? bbox.height : fontSize;\n dimension.width = Math.max(dimension.width, width);\n dimension.height = Math.max(dimension.height, height);\n }\n elem.remove();\n return dimension;\n }\n}\nconst BAR_WIDTH_TO_TICK_WIDTH_RATIO = 0.7;\nconst MAX_OUTER_PADDING_PERCENT_FOR_WRT_LABEL = 0.2;\nclass BaseAxis {\n constructor(axisConfig, title, textDimensionCalculator, axisThemeConfig) {\n this.axisConfig = axisConfig;\n this.title = title;\n this.textDimensionCalculator = textDimensionCalculator;\n this.axisThemeConfig = axisThemeConfig;\n this.boundingRect = { x: 0, y: 0, width: 0, height: 0 };\n this.axisPosition = \"left\";\n this.showTitle = false;\n this.showLabel = false;\n this.showTick = false;\n this.showAxisLine = false;\n this.outerPadding = 0;\n this.titleTextHeight = 0;\n this.labelTextHeight = 0;\n this.range = [0, 10];\n this.boundingRect = { x: 0, y: 0, width: 0, height: 0 };\n this.axisPosition = \"left\";\n }\n setRange(range) {\n this.range = range;\n if (this.axisPosition === \"left\" || this.axisPosition === \"right\") {\n this.boundingRect.height = range[1] - range[0];\n } else {\n this.boundingRect.width = range[1] - range[0];\n }\n this.recalculateScale();\n }\n getRange() {\n return [this.range[0] + this.outerPadding, this.range[1] - this.outerPadding];\n }\n setAxisPosition(axisPosition) {\n this.axisPosition = axisPosition;\n this.setRange(this.range);\n }\n getTickDistance() {\n const range = this.getRange();\n return Math.abs(range[0] - range[1]) / this.getTickValues().length;\n }\n getAxisOuterPadding() {\n return this.outerPadding;\n }\n getLabelDimension() {\n return this.textDimensionCalculator.getMaxDimension(\n this.getTickValues().map((tick) => tick.toString()),\n this.axisConfig.labelFontSize\n );\n }\n recalculateOuterPaddingToDrawBar() {\n if (BAR_WIDTH_TO_TICK_WIDTH_RATIO * this.getTickDistance() > this.outerPadding * 2) {\n this.outerPadding = Math.floor(BAR_WIDTH_TO_TICK_WIDTH_RATIO * this.getTickDistance() / 2);\n }\n this.recalculateScale();\n }\n calculateSpaceIfDrawnHorizontally(availableSpace) {\n let availableHeight = availableSpace.height;\n if (this.axisConfig.showAxisLine && availableHeight > this.axisConfig.axisLineWidth) {\n availableHeight -= this.axisConfig.axisLineWidth;\n this.showAxisLine = true;\n }\n if (this.axisConfig.showLabel) {\n const spaceRequired = this.getLabelDimension();\n const maxPadding = MAX_OUTER_PADDING_PERCENT_FOR_WRT_LABEL * availableSpace.width;\n this.outerPadding = Math.min(spaceRequired.width / 2, maxPadding);\n const heightRequired = spaceRequired.height + this.axisConfig.labelPadding * 2;\n this.labelTextHeight = spaceRequired.height;\n if (heightRequired <= availableHeight) {\n availableHeight -= heightRequired;\n this.showLabel = true;\n }\n }\n if (this.axisConfig.showTick && availableHeight >= this.axisConfig.tickLength) {\n this.showTick = true;\n availableHeight -= this.axisConfig.tickLength;\n }\n if (this.axisConfig.showTitle && this.title) {\n const spaceRequired = this.textDimensionCalculator.getMaxDimension(\n [this.title],\n this.axisConfig.titleFontSize\n );\n const heightRequired = spaceRequired.height + this.axisConfig.titlePadding * 2;\n this.titleTextHeight = spaceRequired.height;\n if (heightRequired <= availableHeight) {\n availableHeight -= heightRequired;\n this.showTitle = true;\n }\n }\n this.boundingRect.width = availableSpace.width;\n this.boundingRect.height = availableSpace.height - availableHeight;\n }\n calculateSpaceIfDrawnVertical(availableSpace) {\n let availableWidth = availableSpace.width;\n if (this.axisConfig.showAxisLine && availableWidth > this.axisConfig.axisLineWidth) {\n availableWidth -= this.axisConfig.axisLineWidth;\n this.showAxisLine = true;\n }\n if (this.axisConfig.showLabel) {\n const spaceRequired = this.getLabelDimension();\n const maxPadding = MAX_OUTER_PADDING_PERCENT_FOR_WRT_LABEL * availableSpace.height;\n this.outerPadding = Math.min(spaceRequired.height / 2, maxPadding);\n const widthRequired = spaceRequired.width + this.axisConfig.labelPadding * 2;\n if (widthRequired <= availableWidth) {\n availableWidth -= widthRequired;\n this.showLabel = true;\n }\n }\n if (this.axisConfig.showTick && availableWidth >= this.axisConfig.tickLength) {\n this.showTick = true;\n availableWidth -= this.axisConfig.tickLength;\n }\n if (this.axisConfig.showTitle && this.title) {\n const spaceRequired = this.textDimensionCalculator.getMaxDimension(\n [this.title],\n this.axisConfig.titleFontSize\n );\n const widthRequired = spaceRequired.height + this.axisConfig.titlePadding * 2;\n this.titleTextHeight = spaceRequired.height;\n if (widthRequired <= availableWidth) {\n availableWidth -= widthRequired;\n this.showTitle = true;\n }\n }\n this.boundingRect.width = availableSpace.width - availableWidth;\n this.boundingRect.height = availableSpace.height;\n }\n calculateSpace(availableSpace) {\n if (this.axisPosition === \"left\" || this.axisPosition === \"right\") {\n this.calculateSpaceIfDrawnVertical(availableSpace);\n } else {\n this.calculateSpaceIfDrawnHorizontally(availableSpace);\n }\n this.recalculateScale();\n return {\n width: this.boundingRect.width,\n height: this.boundingRect.height\n };\n }\n setBoundingBoxXY(point) {\n this.boundingRect.x = point.x;\n this.boundingRect.y = point.y;\n }\n getDrawableElementsForLeftAxis() {\n const drawableElement = [];\n if (this.showAxisLine) {\n const x = this.boundingRect.x + this.boundingRect.width - this.axisConfig.axisLineWidth / 2;\n drawableElement.push({\n type: \"path\",\n groupTexts: [\"left-axis\", \"axisl-line\"],\n data: [\n {\n path: `M ${x},${this.boundingRect.y} L ${x},${this.boundingRect.y + this.boundingRect.height} `,\n strokeFill: this.axisThemeConfig.axisLineColor,\n strokeWidth: this.axisConfig.axisLineWidth\n }\n ]\n });\n }\n if (this.showLabel) {\n drawableElement.push({\n type: \"text\",\n groupTexts: [\"left-axis\", \"label\"],\n data: this.getTickValues().map((tick) => ({\n text: tick.toString(),\n x: this.boundingRect.x + this.boundingRect.width - (this.showLabel ? this.axisConfig.labelPadding : 0) - (this.showTick ? this.axisConfig.tickLength : 0) - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0),\n y: this.getScaleValue(tick),\n fill: this.axisThemeConfig.labelColor,\n fontSize: this.axisConfig.labelFontSize,\n rotation: 0,\n verticalPos: \"middle\",\n horizontalPos: \"right\"\n }))\n });\n }\n if (this.showTick) {\n const x = this.boundingRect.x + this.boundingRect.width - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0);\n drawableElement.push({\n type: \"path\",\n groupTexts: [\"left-axis\", \"ticks\"],\n data: this.getTickValues().map((tick) => ({\n path: `M ${x},${this.getScaleValue(tick)} L ${x - this.axisConfig.tickLength},${this.getScaleValue(tick)}`,\n strokeFill: this.axisThemeConfig.tickColor,\n strokeWidth: this.axisConfig.tickWidth\n }))\n });\n }\n if (this.showTitle) {\n drawableElement.push({\n type: \"text\",\n groupTexts: [\"left-axis\", \"title\"],\n data: [\n {\n text: this.title,\n x: this.boundingRect.x + this.axisConfig.titlePadding,\n y: this.boundingRect.y + this.boundingRect.height / 2,\n fill: this.axisThemeConfig.titleColor,\n fontSize: this.axisConfig.titleFontSize,\n rotation: 270,\n verticalPos: \"top\",\n horizontalPos: \"center\"\n }\n ]\n });\n }\n return drawableElement;\n }\n getDrawableElementsForBottomAxis() {\n const drawableElement = [];\n if (this.showAxisLine) {\n const y = this.boundingRect.y + this.axisConfig.axisLineWidth / 2;\n drawableElement.push({\n type: \"path\",\n groupTexts: [\"bottom-axis\", \"axis-line\"],\n data: [\n {\n path: `M ${this.boundingRect.x},${y} L ${this.boundingRect.x + this.boundingRect.width},${y}`,\n strokeFill: this.axisThemeConfig.axisLineColor,\n strokeWidth: this.axisConfig.axisLineWidth\n }\n ]\n });\n }\n if (this.showLabel) {\n drawableElement.push({\n type: \"text\",\n groupTexts: [\"bottom-axis\", \"label\"],\n data: this.getTickValues().map((tick) => ({\n text: tick.toString(),\n x: this.getScaleValue(tick),\n y: this.boundingRect.y + this.axisConfig.labelPadding + (this.showTick ? this.axisConfig.tickLength : 0) + (this.showAxisLine ? this.axisConfig.axisLineWidth : 0),\n fill: this.axisThemeConfig.labelColor,\n fontSize: this.axisConfig.labelFontSize,\n rotation: 0,\n verticalPos: \"top\",\n horizontalPos: \"center\"\n }))\n });\n }\n if (this.showTick) {\n const y = this.boundingRect.y + (this.showAxisLine ? this.axisConfig.axisLineWidth : 0);\n drawableElement.push({\n type: \"path\",\n groupTexts: [\"bottom-axis\", \"ticks\"],\n data: this.getTickValues().map((tick) => ({\n path: `M ${this.getScaleValue(tick)},${y} L ${this.getScaleValue(tick)},${y + this.axisConfig.tickLength}`,\n strokeFill: this.axisThemeConfig.tickColor,\n strokeWidth: this.axisConfig.tickWidth\n }))\n });\n }\n if (this.showTitle) {\n drawableElement.push({\n type: \"text\",\n groupTexts: [\"bottom-axis\", \"title\"],\n data: [\n {\n text: this.title,\n x: this.range[0] + (this.range[1] - this.range[0]) / 2,\n y: this.boundingRect.y + this.boundingRect.height - this.axisConfig.titlePadding - this.titleTextHeight,\n fill: this.axisThemeConfig.titleColor,\n fontSize: this.axisConfig.titleFontSize,\n rotation: 0,\n verticalPos: \"top\",\n horizontalPos: \"center\"\n }\n ]\n });\n }\n return drawableElement;\n }\n getDrawableElementsForTopAxis() {\n const drawableElement = [];\n if (this.showAxisLine) {\n const y = this.boundingRect.y + this.boundingRect.height - this.axisConfig.axisLineWidth / 2;\n drawableElement.push({\n type: \"path\",\n groupTexts: [\"top-axis\", \"axis-line\"],\n data: [\n {\n path: `M ${this.boundingRect.x},${y} L ${this.boundingRect.x + this.boundingRect.width},${y}`,\n strokeFill: this.axisThemeConfig.axisLineColor,\n strokeWidth: this.axisConfig.axisLineWidth\n }\n ]\n });\n }\n if (this.showLabel) {\n drawableElement.push({\n type: \"text\",\n groupTexts: [\"top-axis\", \"label\"],\n data: this.getTickValues().map((tick) => ({\n text: tick.toString(),\n x: this.getScaleValue(tick),\n y: this.boundingRect.y + (this.showTitle ? this.titleTextHeight + this.axisConfig.titlePadding * 2 : 0) + this.axisConfig.labelPadding,\n fill: this.axisThemeConfig.labelColor,\n fontSize: this.axisConfig.labelFontSize,\n rotation: 0,\n verticalPos: \"top\",\n horizontalPos: \"center\"\n }))\n });\n }\n if (this.showTick) {\n const y = this.boundingRect.y;\n drawableElement.push({\n type: \"path\",\n groupTexts: [\"top-axis\", \"ticks\"],\n data: this.getTickValues().map((tick) => ({\n path: `M ${this.getScaleValue(tick)},${y + this.boundingRect.height - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0)} L ${this.getScaleValue(tick)},${y + this.boundingRect.height - this.axisConfig.tickLength - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0)}`,\n strokeFill: this.axisThemeConfig.tickColor,\n strokeWidth: this.axisConfig.tickWidth\n }))\n });\n }\n if (this.showTitle) {\n drawableElement.push({\n type: \"text\",\n groupTexts: [\"top-axis\", \"title\"],\n data: [\n {\n text: this.title,\n x: this.boundingRect.x + this.boundingRect.width / 2,\n y: this.boundingRect.y + this.axisConfig.titlePadding,\n fill: this.axisThemeConfig.titleColor,\n fontSize: this.axisConfig.titleFontSize,\n rotation: 0,\n verticalPos: \"top\",\n horizontalPos: \"center\"\n }\n ]\n });\n }\n return drawableElement;\n }\n getDrawableElements() {\n if (this.axisPosition === \"left\") {\n return this.getDrawableElementsForLeftAxis();\n }\n if (this.axisPosition === \"right\") {\n throw Error(\"Drawing of right axis is not implemented\");\n }\n if (this.axisPosition === \"bottom\") {\n return this.getDrawableElementsForBottomAxis();\n }\n if (this.axisPosition === \"top\") {\n return this.getDrawableElementsForTopAxis();\n }\n return [];\n }\n}\nclass BandAxis extends BaseAxis {\n constructor(axisConfig, axisThemeConfig, categories, title, textDimensionCalculator) {\n super(axisConfig, title, textDimensionCalculator, axisThemeConfig);\n this.categories = categories;\n this.scale = scaleBand().domain(this.categories).range(this.getRange());\n }\n setRange(range) {\n super.setRange(range);\n }\n recalculateScale() {\n this.scale = scaleBand().domain(this.categories).range(this.getRange()).paddingInner(1).paddingOuter(0).align(0.5);\n log.trace(\"BandAxis axis final categories, range: \", this.categories, this.getRange());\n }\n getTickValues() {\n return this.categories;\n }\n getScaleValue(value) {\n return this.scale(value) || this.getRange()[0];\n }\n}\nclass LinearAxis extends BaseAxis {\n constructor(axisConfig, axisThemeConfig, domain, title, textDimensionCalculator) {\n super(axisConfig, title, textDimensionCalculator, axisThemeConfig);\n this.domain = domain;\n this.scale = scaleLinear().domain(this.domain).range(this.getRange());\n }\n getTickValues() {\n return this.scale.ticks();\n }\n recalculateScale() {\n const domain = [...this.domain];\n if (this.axisPosition === \"left\") {\n domain.reverse();\n }\n this.scale = scaleLinear().domain(domain).range(this.getRange());\n }\n getScaleValue(value) {\n return this.scale(value);\n }\n}\nfunction getAxis(data, axisConfig, axisThemeConfig, tmpSVGGroup2) {\n const textDimansionCalculator = new TextDimensionCalculatorWithFont(tmpSVGGroup2);\n if (isBandAxisData(data)) {\n return new BandAxis(\n axisConfig,\n axisThemeConfig,\n data.categories,\n data.title,\n textDimansionCalculator\n );\n }\n return new LinearAxis(\n axisConfig,\n axisThemeConfig,\n [data.min, data.max],\n data.title,\n textDimansionCalculator\n );\n}\nclass ChartTitle {\n constructor(textDimensionCalculator, chartConfig, chartData, chartThemeConfig) {\n this.textDimensionCalculator = textDimensionCalculator;\n this.chartConfig = chartConfig;\n this.chartData = chartData;\n this.chartThemeConfig = chartThemeConfig;\n this.boundingRect = {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n this.showChartTitle = false;\n }\n setBoundingBoxXY(point) {\n this.boundingRect.x = point.x;\n this.boundingRect.y = point.y;\n }\n calculateSpace(availableSpace) {\n const titleDimension = this.textDimensionCalculator.getMaxDimension(\n [this.chartData.title],\n this.chartConfig.titleFontSize\n );\n const widthRequired = Math.max(titleDimension.width, availableSpace.width);\n const heightRequired = titleDimension.height + 2 * this.chartConfig.titlePadding;\n if (titleDimension.width <= widthRequired && titleDimension.height <= heightRequired && this.chartConfig.showTitle && this.chartData.title) {\n this.boundingRect.width = widthRequired;\n this.boundingRect.height = heightRequired;\n this.showChartTitle = true;\n }\n return {\n width: this.boundingRect.width,\n height: this.boundingRect.height\n };\n }\n getDrawableElements() {\n const drawableElem = [];\n if (this.showChartTitle) {\n drawableElem.push({\n groupTexts: [\"chart-title\"],\n type: \"text\",\n data: [\n {\n fontSize: this.chartConfig.titleFontSize,\n text: this.chartData.title,\n verticalPos: \"middle\",\n horizontalPos: \"center\",\n x: this.boundingRect.x + this.boundingRect.width / 2,\n y: this.boundingRect.y + this.boundingRect.height / 2,\n fill: this.chartThemeConfig.titleColor,\n rotation: 0\n }\n ]\n });\n }\n return drawableElem;\n }\n}\nfunction getChartTitleComponent(chartConfig, chartData, chartThemeConfig, tmpSVGGroup2) {\n const textDimensionCalculator = new TextDimensionCalculatorWithFont(tmpSVGGroup2);\n return new ChartTitle(textDimensionCalculator, chartConfig, chartData, chartThemeConfig);\n}\nclass LinePlot {\n constructor(plotData, xAxis, yAxis, orientation, plotIndex2) {\n this.plotData = plotData;\n this.xAxis = xAxis;\n this.yAxis = yAxis;\n this.orientation = orientation;\n this.plotIndex = plotIndex2;\n }\n getDrawableElement() {\n const finalData = this.plotData.data.map((d) => [\n this.xAxis.getScaleValue(d[0]),\n this.yAxis.getScaleValue(d[1])\n ]);\n let path;\n if (this.orientation === \"horizontal\") {\n path = line().y((d) => d[0]).x((d) => d[1])(finalData);\n } else {\n path = line().x((d) => d[0]).y((d) => d[1])(finalData);\n }\n if (!path) {\n return [];\n }\n return [\n {\n groupTexts: [\"plot\", `line-plot-${this.plotIndex}`],\n type: \"path\",\n data: [\n {\n path,\n strokeFill: this.plotData.strokeFill,\n strokeWidth: this.plotData.strokeWidth\n }\n ]\n }\n ];\n }\n}\nclass BarPlot {\n constructor(barData, boundingRect, xAxis, yAxis, orientation, plotIndex2) {\n this.barData = barData;\n this.boundingRect = boundingRect;\n this.xAxis = xAxis;\n this.yAxis = yAxis;\n this.orientation = orientation;\n this.plotIndex = plotIndex2;\n }\n getDrawableElement() {\n const finalData = this.barData.data.map((d) => [\n this.xAxis.getScaleValue(d[0]),\n this.yAxis.getScaleValue(d[1])\n ]);\n const barPaddingPercent = 0.05;\n const barWidth = Math.min(this.xAxis.getAxisOuterPadding() * 2, this.xAxis.getTickDistance()) * (1 - barPaddingPercent);\n const barWidthHalf = barWidth / 2;\n if (this.orientation === \"horizontal\") {\n return [\n {\n groupTexts: [\"plot\", `bar-plot-${this.plotIndex}`],\n type: \"rect\",\n data: finalData.map((data) => ({\n x: this.boundingRect.x,\n y: data[0] - barWidthHalf,\n height: barWidth,\n width: data[1] - this.boundingRect.x,\n fill: this.barData.fill,\n strokeWidth: 0,\n strokeFill: this.barData.fill\n }))\n }\n ];\n }\n return [\n {\n groupTexts: [\"plot\", `bar-plot-${this.plotIndex}`],\n type: \"rect\",\n data: finalData.map((data) => ({\n x: data[0] - barWidthHalf,\n y: data[1],\n width: barWidth,\n height: this.boundingRect.y + this.boundingRect.height - data[1],\n fill: this.barData.fill,\n strokeWidth: 0,\n strokeFill: this.barData.fill\n }))\n }\n ];\n }\n}\nclass BasePlot {\n constructor(chartConfig, chartData, chartThemeConfig) {\n this.chartConfig = chartConfig;\n this.chartData = chartData;\n this.chartThemeConfig = chartThemeConfig;\n this.boundingRect = {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n }\n setAxes(xAxis, yAxis) {\n this.xAxis = xAxis;\n this.yAxis = yAxis;\n }\n setBoundingBoxXY(point) {\n this.boundingRect.x = point.x;\n this.boundingRect.y = point.y;\n }\n calculateSpace(availableSpace) {\n this.boundingRect.width = availableSpace.width;\n this.boundingRect.height = availableSpace.height;\n return {\n width: this.boundingRect.width,\n height: this.boundingRect.height\n };\n }\n getDrawableElements() {\n if (!(this.xAxis && this.yAxis)) {\n throw Error(\"Axes must be passed to render Plots\");\n }\n const drawableElem = [];\n for (const [i, plot] of this.chartData.plots.entries()) {\n switch (plot.type) {\n case \"line\":\n {\n const linePlot = new LinePlot(\n plot,\n this.xAxis,\n this.yAxis,\n this.chartConfig.chartOrientation,\n i\n );\n drawableElem.push(...linePlot.getDrawableElement());\n }\n break;\n case \"bar\":\n {\n const barPlot = new BarPlot(\n plot,\n this.boundingRect,\n this.xAxis,\n this.yAxis,\n this.chartConfig.chartOrientation,\n i\n );\n drawableElem.push(...barPlot.getDrawableElement());\n }\n break;\n }\n }\n return drawableElem;\n }\n}\nfunction getPlotComponent(chartConfig, chartData, chartThemeConfig) {\n return new BasePlot(chartConfig, chartData, chartThemeConfig);\n}\nclass Orchestrator {\n constructor(chartConfig, chartData, chartThemeConfig, tmpSVGGroup2) {\n this.chartConfig = chartConfig;\n this.chartData = chartData;\n this.componentStore = {\n title: getChartTitleComponent(chartConfig, chartData, chartThemeConfig, tmpSVGGroup2),\n plot: getPlotComponent(chartConfig, chartData, chartThemeConfig),\n xAxis: getAxis(\n chartData.xAxis,\n chartConfig.xAxis,\n {\n titleColor: chartThemeConfig.xAxisTitleColor,\n labelColor: chartThemeConfig.xAxisLabelColor,\n tickColor: chartThemeConfig.xAxisTickColor,\n axisLineColor: chartThemeConfig.xAxisLineColor\n },\n tmpSVGGroup2\n ),\n yAxis: getAxis(\n chartData.yAxis,\n chartConfig.yAxis,\n {\n titleColor: chartThemeConfig.yAxisTitleColor,\n labelColor: chartThemeConfig.yAxisLabelColor,\n tickColor: chartThemeConfig.yAxisTickColor,\n axisLineColor: chartThemeConfig.yAxisLineColor\n },\n tmpSVGGroup2\n )\n };\n }\n calculateVerticalSpace() {\n let availableWidth = this.chartConfig.width;\n let availableHeight = this.chartConfig.height;\n let plotX = 0;\n let plotY = 0;\n let chartWidth = Math.floor(availableWidth * this.chartConfig.plotReservedSpacePercent / 100);\n let chartHeight = Math.floor(\n availableHeight * this.chartConfig.plotReservedSpacePercent / 100\n );\n let spaceUsed = this.componentStore.plot.calculateSpace({\n width: chartWidth,\n height: chartHeight\n });\n availableWidth -= spaceUsed.width;\n availableHeight -= spaceUsed.height;\n spaceUsed = this.componentStore.title.calculateSpace({\n width: this.chartConfig.width,\n height: availableHeight\n });\n plotY = spaceUsed.height;\n availableHeight -= spaceUsed.height;\n this.componentStore.xAxis.setAxisPosition(\"bottom\");\n spaceUsed = this.componentStore.xAxis.calculateSpace({\n width: availableWidth,\n height: availableHeight\n });\n availableHeight -= spaceUsed.height;\n this.componentStore.yAxis.setAxisPosition(\"left\");\n spaceUsed = this.componentStore.yAxis.calculateSpace({\n width: availableWidth,\n height: availableHeight\n });\n plotX = spaceUsed.width;\n availableWidth -= spaceUsed.width;\n if (availableWidth > 0) {\n chartWidth += availableWidth;\n availableWidth = 0;\n }\n if (availableHeight > 0) {\n chartHeight += availableHeight;\n availableHeight = 0;\n }\n this.componentStore.plot.calculateSpace({\n width: chartWidth,\n height: chartHeight\n });\n this.componentStore.plot.setBoundingBoxXY({ x: plotX, y: plotY });\n this.componentStore.xAxis.setRange([plotX, plotX + chartWidth]);\n this.componentStore.xAxis.setBoundingBoxXY({ x: plotX, y: plotY + chartHeight });\n this.componentStore.yAxis.setRange([plotY, plotY + chartHeight]);\n this.componentStore.yAxis.setBoundingBoxXY({ x: 0, y: plotY });\n if (this.chartData.plots.some((p) => isBarPlot(p))) {\n this.componentStore.xAxis.recalculateOuterPaddingToDrawBar();\n }\n }\n calculateHorizonatalSpace() {\n let availableWidth = this.chartConfig.width;\n let availableHeight = this.chartConfig.height;\n let titleYEnd = 0;\n let plotX = 0;\n let plotY = 0;\n let chartWidth = Math.floor(availableWidth * this.chartConfig.plotReservedSpacePercent / 100);\n let chartHeight = Math.floor(\n availableHeight * this.chartConfig.plotReservedSpacePercent / 100\n );\n let spaceUsed = this.componentStore.plot.calculateSpace({\n width: chartWidth,\n height: chartHeight\n });\n availableWidth -= spaceUsed.width;\n availableHeight -= spaceUsed.height;\n spaceUsed = this.componentStore.title.calculateSpace({\n width: this.chartConfig.width,\n height: availableHeight\n });\n titleYEnd = spaceUsed.height;\n availableHeight -= spaceUsed.height;\n this.componentStore.xAxis.setAxisPosition(\"left\");\n spaceUsed = this.componentStore.xAxis.calculateSpace({\n width: availableWidth,\n height: availableHeight\n });\n availableWidth -= spaceUsed.width;\n plotX = spaceUsed.width;\n this.componentStore.yAxis.setAxisPosition(\"top\");\n spaceUsed = this.componentStore.yAxis.calculateSpace({\n width: availableWidth,\n height: availableHeight\n });\n availableHeight -= spaceUsed.height;\n plotY = titleYEnd + spaceUsed.height;\n if (availableWidth > 0) {\n chartWidth += availableWidth;\n availableWidth = 0;\n }\n if (availableHeight > 0) {\n chartHeight += availableHeight;\n availableHeight = 0;\n }\n this.componentStore.plot.calculateSpace({\n width: chartWidth,\n height: chartHeight\n });\n this.componentStore.plot.setBoundingBoxXY({ x: plotX, y: plotY });\n this.componentStore.yAxis.setRange([plotX, plotX + chartWidth]);\n this.componentStore.yAxis.setBoundingBoxXY({ x: plotX, y: titleYEnd });\n this.componentStore.xAxis.setRange([plotY, plotY + chartHeight]);\n this.componentStore.xAxis.setBoundingBoxXY({ x: 0, y: plotY });\n if (this.chartData.plots.some((p) => isBarPlot(p))) {\n this.componentStore.xAxis.recalculateOuterPaddingToDrawBar();\n }\n }\n calculateSpace() {\n if (this.chartConfig.chartOrientation === \"horizontal\") {\n this.calculateHorizonatalSpace();\n } else {\n this.calculateVerticalSpace();\n }\n }\n getDrawableElement() {\n this.calculateSpace();\n const drawableElem = [];\n this.componentStore.plot.setAxes(this.componentStore.xAxis, this.componentStore.yAxis);\n for (const component of Object.values(this.componentStore)) {\n drawableElem.push(...component.getDrawableElements());\n }\n return drawableElem;\n }\n}\nclass XYChartBuilder {\n static build(config, chartData, chartThemeConfig, tmpSVGGroup2) {\n const orchestrator = new Orchestrator(config, chartData, chartThemeConfig, tmpSVGGroup2);\n return orchestrator.getDrawableElement();\n }\n}\nlet plotIndex = 0;\nlet tmpSVGGroup;\nlet xyChartConfig = getChartDefaultConfig();\nlet xyChartThemeConfig = getChartDefaultThemeConfig();\nlet xyChartData = getChartDefaultData();\nlet plotColorPalette = xyChartThemeConfig.plotColorPalette.split(\",\").map((color) => color.trim());\nlet hasSetXAxis = false;\nlet hasSetYAxis = false;\nfunction getChartDefaultThemeConfig() {\n const defaultThemeVariables = getThemeVariables();\n const config = getConfig();\n return cleanAndMerge(defaultThemeVariables.xyChart, config.themeVariables.xyChart);\n}\nfunction getChartDefaultConfig() {\n const config = getConfig();\n return cleanAndMerge(\n defaultConfig.xyChart,\n config.xyChart\n );\n}\nfunction getChartDefaultData() {\n return {\n yAxis: {\n type: \"linear\",\n title: \"\",\n min: Infinity,\n max: -Infinity\n },\n xAxis: {\n type: \"band\",\n title: \"\",\n categories: []\n },\n title: \"\",\n plots: []\n };\n}\nfunction textSanitizer(text) {\n const config = getConfig();\n return sanitizeText(text.trim(), config);\n}\nfunction setTmpSVGG(SVGG) {\n tmpSVGGroup = SVGG;\n}\nfunction setOrientation(orientation) {\n if (orientation === \"horizontal\") {\n xyChartConfig.chartOrientation = \"horizontal\";\n } else {\n xyChartConfig.chartOrientation = \"vertical\";\n }\n}\nfunction setXAxisTitle(title) {\n xyChartData.xAxis.title = textSanitizer(title.text);\n}\nfunction setXAxisRangeData(min, max) {\n xyChartData.xAxis = { type: \"linear\", title: xyChartData.xAxis.title, min, max };\n hasSetXAxis = true;\n}\nfunction setXAxisBand(categories) {\n xyChartData.xAxis = {\n type: \"band\",\n title: xyChartData.xAxis.title,\n categories: categories.map((c) => textSanitizer(c.text))\n };\n hasSetXAxis = true;\n}\nfunction setYAxisTitle(title) {\n xyChartData.yAxis.title = textSanitizer(title.text);\n}\nfunction setYAxisRangeData(min, max) {\n xyChartData.yAxis = { type: \"linear\", title: xyChartData.yAxis.title, min, max };\n hasSetYAxis = true;\n}\nfunction setYAxisRangeFromPlotData(data) {\n const minValue = Math.min(...data);\n const maxValue = Math.max(...data);\n const prevMinValue = isLinearAxisData(xyChartData.yAxis) ? xyChartData.yAxis.min : Infinity;\n const prevMaxValue = isLinearAxisData(xyChartData.yAxis) ? xyChartData.yAxis.max : -Infinity;\n xyChartData.yAxis = {\n type: \"linear\",\n title: xyChartData.yAxis.title,\n min: Math.min(prevMinValue, minValue),\n max: Math.max(prevMaxValue, maxValue)\n };\n}\nfunction transformDataWithoutCategory(data) {\n let retData = [];\n if (data.length === 0) {\n return retData;\n }\n if (!hasSetXAxis) {\n const prevMinValue = isLinearAxisData(xyChartData.xAxis) ? xyChartData.xAxis.min : Infinity;\n const prevMaxValue = isLinearAxisData(xyChartData.xAxis) ? xyChartData.xAxis.max : -Infinity;\n setXAxisRangeData(Math.min(prevMinValue, 1), Math.max(prevMaxValue, data.length));\n }\n if (!hasSetYAxis) {\n setYAxisRangeFromPlotData(data);\n }\n if (isBandAxisData(xyChartData.xAxis)) {\n retData = xyChartData.xAxis.categories.map((c, i) => [c, data[i]]);\n }\n if (isLinearAxisData(xyChartData.xAxis)) {\n const min = xyChartData.xAxis.min;\n const max = xyChartData.xAxis.max;\n const step = (max - min + 1) / data.length;\n const categories = [];\n for (let i = min; i <= max; i += step) {\n categories.push(`${i}`);\n }\n retData = categories.map((c, i) => [c, data[i]]);\n }\n return retData;\n}\nfunction getPlotColorFromPalette(plotIndex2) {\n return plotColorPalette[plotIndex2 === 0 ? 0 : plotIndex2 % plotColorPalette.length];\n}\nfunction setLineData(title, data) {\n const plotData = transformDataWithoutCategory(data);\n xyChartData.plots.push({\n type: \"line\",\n strokeFill: getPlotColorFromPalette(plotIndex),\n strokeWidth: 2,\n data: plotData\n });\n plotIndex++;\n}\nfunction setBarData(title, data) {\n const plotData = transformDataWithoutCategory(data);\n xyChartData.plots.push({\n type: \"bar\",\n fill: getPlotColorFromPalette(plotIndex),\n data: plotData\n });\n plotIndex++;\n}\nfunction getDrawableElem() {\n if (xyChartData.plots.length === 0) {\n throw Error(\"No Plot to render, please provide a plot with some data\");\n }\n xyChartData.title = getDiagramTitle();\n return XYChartBuilder.build(xyChartConfig, xyChartData, xyChartThemeConfig, tmpSVGGroup);\n}\nfunction getChartThemeConfig() {\n return xyChartThemeConfig;\n}\nfunction getChartConfig() {\n return xyChartConfig;\n}\nconst clear = function() {\n clear$1();\n plotIndex = 0;\n xyChartConfig = getChartDefaultConfig();\n xyChartData = getChartDefaultData();\n xyChartThemeConfig = getChartDefaultThemeConfig();\n plotColorPalette = xyChartThemeConfig.plotColorPalette.split(\",\").map((color) => color.trim());\n hasSetXAxis = false;\n hasSetYAxis = false;\n};\nconst db = {\n getDrawableElem,\n clear,\n setAccTitle,\n getAccTitle,\n setDiagramTitle,\n getDiagramTitle,\n getAccDescription,\n setAccDescription,\n setOrientation,\n setXAxisTitle,\n setXAxisRangeData,\n setXAxisBand,\n setYAxisTitle,\n setYAxisRangeData,\n setLineData,\n setBarData,\n setTmpSVGG,\n getChartThemeConfig,\n getChartConfig\n};\nconst draw = (txt, id, _version, diagObj) => {\n const db2 = diagObj.db;\n const themeConfig = db2.getChartThemeConfig();\n const chartConfig = db2.getChartConfig();\n function getDominantBaseLine(horizontalPos) {\n return horizontalPos === \"top\" ? \"text-before-edge\" : \"middle\";\n }\n function getTextAnchor(verticalPos) {\n return verticalPos === \"left\" ? \"start\" : verticalPos === \"right\" ? \"end\" : \"middle\";\n }\n function getTextTransformation(data) {\n return `translate(${data.x}, ${data.y}) rotate(${data.rotation || 0})`;\n }\n log.debug(\"Rendering xychart chart\\n\" + txt);\n const svg = selectSvgElement(id);\n const group = svg.append(\"g\").attr(\"class\", \"main\");\n const background = group.append(\"rect\").attr(\"width\", chartConfig.width).attr(\"height\", chartConfig.height).attr(\"class\", \"background\");\n configureSvgSize(svg, chartConfig.height, chartConfig.width, true);\n svg.attr(\"viewBox\", `0 0 ${chartConfig.width} ${chartConfig.height}`);\n background.attr(\"fill\", themeConfig.backgroundColor);\n db2.setTmpSVGG(svg.append(\"g\").attr(\"class\", \"mermaid-tmp-group\"));\n const shapes = db2.getDrawableElem();\n const groups = {};\n function getGroup(gList) {\n let elem = group;\n let prefix = \"\";\n for (const [i] of gList.entries()) {\n let parent = group;\n if (i > 0 && groups[prefix]) {\n parent = groups[prefix];\n }\n prefix += gList[i];\n elem = groups[prefix];\n if (!elem) {\n elem = groups[prefix] = parent.append(\"g\").attr(\"class\", gList[i]);\n }\n }\n return elem;\n }\n for (const shape of shapes) {\n if (shape.data.length === 0) {\n continue;\n }\n const shapeGroup = getGroup(shape.groupTexts);\n switch (shape.type) {\n case \"rect\":\n shapeGroup.selectAll(\"rect\").data(shape.data).enter().append(\"rect\").attr(\"x\", (data) => data.x).attr(\"y\", (data) => data.y).attr(\"width\", (data) => data.width).attr(\"height\", (data) => data.height).attr(\"fill\", (data) => data.fill).attr(\"stroke\", (data) => data.strokeFill).attr(\"stroke-width\", (data) => data.strokeWidth);\n break;\n case \"text\":\n shapeGroup.selectAll(\"text\").data(shape.data).enter().append(\"text\").attr(\"x\", 0).attr(\"y\", 0).attr(\"fill\", (data) => data.fill).attr(\"font-size\", (data) => data.fontSize).attr(\"dominant-baseline\", (data) => getDominantBaseLine(data.verticalPos)).attr(\"text-anchor\", (data) => getTextAnchor(data.horizontalPos)).attr(\"transform\", (data) => getTextTransformation(data)).text((data) => data.text);\n break;\n case \"path\":\n shapeGroup.selectAll(\"path\").data(shape.data).enter().append(\"path\").attr(\"d\", (data) => data.path).attr(\"fill\", (data) => data.fill ? data.fill : \"none\").attr(\"stroke\", (data) => data.strokeFill).attr(\"stroke-width\", (data) => data.strokeWidth);\n break;\n }\n }\n};\nconst renderer = {\n draw\n};\nconst diagram = {\n parser: parser$1,\n db,\n renderer\n};\nexport {\n diagram\n};\n"],"names":["range","start","stop","step","i","band","scale","ordinal","domain","ordinalRange","r0","r1","bandwidth","round","paddingInner","paddingOuter","align","rescale","n","reverse","values","sequence","_","initRange","parser","o","k","v","o2","l","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","$Vb","$Vc","$Vd","$Ve","$Vf","$Vg","$Vh","$Vi","$Vj","$Vk","$Vl","$Vm","$Vn","$Vo","$Vp","$Vq","parser2","yytext","yyleng","yylineno","yy","yystate","$$","_$","$0","str","hash","error","input","self","stack","tstack","vstack","lstack","table","TERROR","EOF","args","lexer2","sharedState","yyloc","ranges","lex","token","symbol","state","action","r","yyval","p","len","newState","expected","errStr","lexer","ch","lines","oldLines","past","next","pre","c","match","indexed_rule","backup","tempMatch","index","rules","condition","yy_","$avoiding_name_collisions","YY_START","Parser","parser$1","isBarPlot","data","isBandAxisData","isLinearAxisData","TextDimensionCalculatorWithFont","parentGroup","texts","fontSize","acc","cur","dimension","elem","t","bbox","computeDimensionOfText","width","height","BAR_WIDTH_TO_TICK_WIDTH_RATIO","MAX_OUTER_PADDING_PERCENT_FOR_WRT_LABEL","BaseAxis","axisConfig","title","textDimensionCalculator","axisThemeConfig","axisPosition","tick","availableSpace","availableHeight","spaceRequired","maxPadding","heightRequired","availableWidth","widthRequired","point","drawableElement","x","y","BandAxis","categories","scaleBand","log","value","LinearAxis","scaleLinear","getAxis","tmpSVGGroup2","textDimansionCalculator","ChartTitle","chartConfig","chartData","chartThemeConfig","titleDimension","drawableElem","getChartTitleComponent","LinePlot","plotData","xAxis","yAxis","orientation","plotIndex2","finalData","d","path","line","BarPlot","barData","boundingRect","barWidth","barWidthHalf","BasePlot","plot","linePlot","barPlot","getPlotComponent","Orchestrator","plotX","plotY","chartWidth","chartHeight","spaceUsed","titleYEnd","component","XYChartBuilder","config","plotIndex","tmpSVGGroup","xyChartConfig","getChartDefaultConfig","xyChartThemeConfig","getChartDefaultThemeConfig","xyChartData","getChartDefaultData","plotColorPalette","color","hasSetXAxis","hasSetYAxis","defaultThemeVariables","getThemeVariables","getConfig","cleanAndMerge","defaultConfig","textSanitizer","text","sanitizeText","setTmpSVGG","SVGG","setOrientation","setXAxisTitle","setXAxisRangeData","min","max","setXAxisBand","setYAxisTitle","setYAxisRangeData","setYAxisRangeFromPlotData","minValue","maxValue","prevMinValue","prevMaxValue","transformDataWithoutCategory","retData","getPlotColorFromPalette","setLineData","setBarData","getDrawableElem","getDiagramTitle","getChartThemeConfig","getChartConfig","clear","clear$1","db","setAccTitle","getAccTitle","setDiagramTitle","getAccDescription","setAccDescription","draw","txt","id","_version","diagObj","db2","themeConfig","getDominantBaseLine","horizontalPos","getTextAnchor","verticalPos","getTextTransformation","svg","selectSvgElement","group","background","configureSvgSize","shapes","groups","getGroup","gList","prefix","parent","shape","shapeGroup","renderer","diagram"],"mappings":"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","x_google_ignoreList":[0,1,2]}