@next-bricks/markdown 1.12.24 → 1.13.0
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.
- package/dist/bricks.json +1 -1
- package/dist/chunks/1045.a33dd9ee.js +2 -0
- package/dist/chunks/1045.a33dd9ee.js.map +1 -0
- package/dist/chunks/114.b104fe5c.js +2 -0
- package/dist/chunks/{114.9c73672d.js.map → 114.b104fe5c.js.map} +1 -1
- package/dist/chunks/1370.6df4802a.js +2 -0
- package/dist/chunks/1370.6df4802a.js.map +1 -0
- package/dist/chunks/1889.f4c0a479.js +2 -0
- package/dist/chunks/1889.f4c0a479.js.map +1 -0
- package/dist/chunks/1931.4e68852d.js +2 -0
- package/dist/chunks/1931.4e68852d.js.map +1 -0
- package/dist/chunks/2052.f5fa5ba8.js +2 -0
- package/dist/chunks/2052.f5fa5ba8.js.map +1 -0
- package/dist/chunks/2260.7689bad0.js +2 -0
- package/dist/chunks/2260.7689bad0.js.map +1 -0
- package/dist/chunks/2432.163eff99.js +2 -0
- package/dist/chunks/2432.163eff99.js.map +1 -0
- package/dist/chunks/2508.40555d58.js +2 -0
- package/dist/chunks/2508.40555d58.js.map +1 -0
- package/dist/chunks/3144.687d51bc.js +3 -0
- package/dist/chunks/3144.687d51bc.js.map +1 -0
- package/dist/chunks/3208.52b54906.js +2 -0
- package/dist/chunks/3208.52b54906.js.map +1 -0
- package/dist/chunks/3331.d253bee3.js +1 -0
- package/dist/chunks/3419.021626e1.js +2 -0
- package/dist/chunks/3419.021626e1.js.map +1 -0
- package/dist/chunks/3426.b77adece.js +2 -0
- package/dist/chunks/3426.b77adece.js.map +1 -0
- package/dist/chunks/3744.fb671d32.js +2 -0
- package/dist/chunks/3744.fb671d32.js.map +1 -0
- package/dist/chunks/3816.c332ec87.js +2 -0
- package/dist/chunks/3816.c332ec87.js.map +1 -0
- package/dist/chunks/3935.0c998406.js +2 -0
- package/dist/chunks/3935.0c998406.js.map +1 -0
- package/dist/chunks/4041.1ffd6c27.js +3 -0
- package/dist/chunks/4041.1ffd6c27.js.map +1 -0
- package/dist/chunks/4228.def9e6d0.js +2 -0
- package/dist/chunks/4228.def9e6d0.js.map +1 -0
- package/dist/chunks/4281.5a66071d.js +2 -0
- package/dist/chunks/4281.5a66071d.js.map +1 -0
- package/dist/chunks/4474.8a69d99c.js +2 -0
- package/dist/chunks/4474.8a69d99c.js.map +1 -0
- package/dist/chunks/4491.b16bbc17.js +1 -0
- package/dist/chunks/4623.de387c33.js +2 -0
- package/dist/chunks/4623.de387c33.js.map +1 -0
- package/dist/chunks/5191.4cbdd4c5.js +1 -0
- package/dist/chunks/5250.325c403b.js +3 -0
- package/dist/chunks/5250.325c403b.js.map +1 -0
- package/dist/chunks/5307.4c4fbea2.js +2 -0
- package/dist/chunks/5307.4c4fbea2.js.map +1 -0
- package/dist/chunks/5384.1362903a.js +2 -0
- package/dist/chunks/5384.1362903a.js.map +1 -0
- package/dist/chunks/5522.bbd6f76c.js +3 -0
- package/dist/chunks/5522.bbd6f76c.js.LICENSE.txt +23 -0
- package/dist/chunks/5522.bbd6f76c.js.map +1 -0
- package/dist/chunks/5548.ca97b7f3.js +2 -0
- package/dist/chunks/5548.ca97b7f3.js.map +1 -0
- package/dist/chunks/5727.1208291b.js +2 -0
- package/dist/chunks/5727.1208291b.js.map +1 -0
- package/dist/chunks/5807.b2af4fc7.js +2 -0
- package/dist/chunks/5807.b2af4fc7.js.map +1 -0
- package/dist/chunks/5936.5b0bbcdd.js +2 -0
- package/dist/chunks/5936.5b0bbcdd.js.map +1 -0
- package/dist/chunks/6023.87f1fe35.js +2 -0
- package/dist/chunks/6023.87f1fe35.js.map +1 -0
- package/dist/chunks/6029.54138f12.js +1 -0
- package/dist/chunks/6069.14414932.js +2 -0
- package/dist/chunks/6069.14414932.js.map +1 -0
- package/dist/chunks/6161.01ba9636.js +2 -0
- package/dist/chunks/6161.01ba9636.js.map +1 -0
- package/dist/chunks/6530.d3f82fe7.js +2 -0
- package/dist/chunks/6530.d3f82fe7.js.map +1 -0
- package/dist/chunks/6934.c7512e66.js +2 -0
- package/dist/chunks/6934.c7512e66.js.map +1 -0
- package/dist/chunks/721.9eae42b6.js +1 -0
- package/dist/chunks/7302.d13140ab.js +2 -0
- package/dist/chunks/7302.d13140ab.js.map +1 -0
- package/dist/chunks/7353.29aabede.js +1 -0
- package/dist/chunks/7733.33cce27d.js +2 -0
- package/dist/chunks/7733.33cce27d.js.map +1 -0
- package/dist/chunks/7768.25c15640.js +3 -0
- package/dist/chunks/7768.25c15640.js.map +1 -0
- package/dist/chunks/7842.e3ea98aa.js +2 -0
- package/dist/chunks/7842.e3ea98aa.js.map +1 -0
- package/dist/chunks/8231.d0c4a771.js +2 -0
- package/dist/chunks/8231.d0c4a771.js.map +1 -0
- package/dist/chunks/8348.a0fc3b22.js +2 -0
- package/dist/chunks/8348.a0fc3b22.js.map +1 -0
- package/dist/chunks/8588.40a68a26.js +2 -0
- package/dist/chunks/8588.40a68a26.js.map +1 -0
- package/dist/chunks/8633.9efe013c.js +2 -0
- package/dist/chunks/8633.9efe013c.js.map +1 -0
- package/dist/chunks/8755.1b6803c6.js +1 -0
- package/dist/chunks/879.8ebd35ee.js +2 -0
- package/dist/chunks/879.8ebd35ee.js.map +1 -0
- package/dist/chunks/8936.36f22403.js +3 -0
- package/dist/chunks/8936.36f22403.js.LICENSE.txt +9 -0
- package/dist/chunks/8936.36f22403.js.map +1 -0
- package/dist/chunks/8989.fc531bf8.js +2 -0
- package/dist/chunks/8989.fc531bf8.js.map +1 -0
- package/dist/chunks/9034.35342672.js +2 -0
- package/dist/chunks/9034.35342672.js.map +1 -0
- package/dist/chunks/9263.c8740fab.js +2 -0
- package/dist/chunks/9263.c8740fab.js.map +1 -0
- package/dist/chunks/9634.1b443d78.js +2 -0
- package/dist/chunks/9634.1b443d78.js.map +1 -0
- package/dist/chunks/9831.cbf8de56.js +2 -0
- package/dist/chunks/9831.cbf8de56.js.map +1 -0
- package/dist/chunks/eo-markdown-display.711c6146.js +2 -0
- package/dist/chunks/eo-markdown-display.711c6146.js.map +1 -0
- package/dist/chunks/eo-markdown-editor.a32213aa.js +2 -0
- package/dist/chunks/{eo-markdown-editor.23244943.js.map → eo-markdown-editor.a32213aa.js.map} +1 -1
- package/dist/chunks/main.f6a4f1c5.js +2 -0
- package/dist/chunks/main.f6a4f1c5.js.map +1 -0
- package/dist/examples.json +1 -1
- package/dist/index.21c96785.js +2 -0
- package/dist/index.21c96785.js.map +1 -0
- package/docs/eo-markdown-display.md +11 -0
- package/package.json +2 -2
- package/dist/chunks/114.9c73672d.js +0 -2
- package/dist/chunks/144.c2505eec.js +0 -3
- package/dist/chunks/144.c2505eec.js.map +0 -1
- package/dist/chunks/250.a0a72cdb.js +0 -3
- package/dist/chunks/250.a0a72cdb.js.map +0 -1
- package/dist/chunks/370.3a944ca6.js +0 -2
- package/dist/chunks/370.3a944ca6.js.map +0 -1
- package/dist/chunks/41.dc782816.js +0 -3
- package/dist/chunks/41.dc782816.js.map +0 -1
- package/dist/chunks/426.dc455e92.js +0 -2
- package/dist/chunks/426.dc455e92.js.map +0 -1
- package/dist/chunks/45.d25ab6d3.js +0 -2
- package/dist/chunks/45.d25ab6d3.js.map +0 -1
- package/dist/chunks/489.36fea43a.js +0 -2
- package/dist/chunks/489.36fea43a.js.map +0 -1
- package/dist/chunks/52.45084502.js +0 -2
- package/dist/chunks/52.45084502.js.map +0 -1
- package/dist/chunks/623.4eaa6d49.js +0 -2
- package/dist/chunks/623.4eaa6d49.js.map +0 -1
- package/dist/chunks/698.53c6cc78.js +0 -2
- package/dist/chunks/698.53c6cc78.js.map +0 -1
- package/dist/chunks/733.5804af84.js +0 -2
- package/dist/chunks/733.5804af84.js.map +0 -1
- package/dist/chunks/768.5f676b0d.js +0 -3
- package/dist/chunks/768.5f676b0d.js.map +0 -1
- package/dist/chunks/818.0756786a.js +0 -3
- package/dist/chunks/818.0756786a.js.LICENSE.txt +0 -9
- package/dist/chunks/818.0756786a.js.map +0 -1
- package/dist/chunks/889.ac9c9ed8.js +0 -2
- package/dist/chunks/889.ac9c9ed8.js.map +0 -1
- package/dist/chunks/989.54365193.js +0 -2
- package/dist/chunks/989.54365193.js.map +0 -1
- package/dist/chunks/eo-markdown-display.c4b08b82.js +0 -2
- package/dist/chunks/eo-markdown-display.c4b08b82.js.map +0 -1
- package/dist/chunks/eo-markdown-editor.23244943.js +0 -2
- package/dist/chunks/main.9922d357.js +0 -2
- package/dist/chunks/main.9922d357.js.map +0 -1
- package/dist/index.5f944ef6.js +0 -2
- package/dist/index.5f944ef6.js.map +0 -1
- /package/dist/chunks/{144.c2505eec.js.LICENSE.txt → 3144.687d51bc.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{41.dc782816.js.LICENSE.txt → 4041.1ffd6c27.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{250.a0a72cdb.js.LICENSE.txt → 5250.325c403b.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{768.5f676b0d.js.LICENSE.txt → 7768.25c15640.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunks/8348.a0fc3b22.js","mappings":"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","sources":["webpack:///../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-BFAMUDN2.mjs","webpack:///../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-SKB7J2MH.mjs","webpack:///../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-OW32GOEJ.mjs"],"sourcesContent":["import {\n __name\n} from \"./chunk-3XYRH5AP.mjs\";\n\n// src/rendering-util/insertElementsForSize.js\nimport { select } from \"d3\";\nvar getDiagramElement = /* @__PURE__ */ __name((id, securityLevel) => {\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const svg = root.select(`[id=\"${id}\"]`);\n return svg;\n}, \"getDiagramElement\");\n\nexport {\n getDiagramElement\n};\n","import {\n __name,\n configureSvgSize,\n log\n} from \"./chunk-3XYRH5AP.mjs\";\n\n// src/rendering-util/setupViewPortForSVG.ts\nvar setupViewPortForSVG = /* @__PURE__ */ __name((svg, padding, cssDiagram, useMaxWidth) => {\n svg.attr(\"class\", cssDiagram);\n const { width, height, x, y } = calculateDimensionsWithPadding(svg, padding);\n configureSvgSize(svg, height, width, useMaxWidth);\n const viewBox = createViewBox(x, y, width, height, padding);\n svg.attr(\"viewBox\", viewBox);\n log.debug(`viewBox configured: ${viewBox} with padding: ${padding}`);\n}, \"setupViewPortForSVG\");\nvar calculateDimensionsWithPadding = /* @__PURE__ */ __name((svg, padding) => {\n const bounds = svg.node()?.getBBox() || { width: 0, height: 0, x: 0, y: 0 };\n return {\n width: bounds.width + padding * 2,\n height: bounds.height + padding * 2,\n x: bounds.x,\n y: bounds.y\n };\n}, \"calculateDimensionsWithPadding\");\nvar createViewBox = /* @__PURE__ */ __name((x, y, width, height, padding) => {\n return `${x - padding} ${y - padding} ${width} ${height}`;\n}, \"createViewBox\");\n\nexport {\n setupViewPortForSVG\n};\n","import {\n getDiagramElement\n} from \"./chunk-BFAMUDN2.mjs\";\nimport {\n setupViewPortForSVG\n} from \"./chunk-SKB7J2MH.mjs\";\nimport {\n render\n} from \"./chunk-IWUHOULB.mjs\";\nimport {\n generateId,\n utils_default\n} from \"./chunk-55PJQP7W.mjs\";\nimport {\n __name,\n clear,\n common_default,\n getAccDescription,\n getAccTitle,\n getConfig2 as getConfig,\n getDiagramTitle,\n log,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-3XYRH5AP.mjs\";\n\n// src/diagrams/state/parser/stateDiagram.jison\nvar parser = function() {\n var o = /* @__PURE__ */ __name(function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) ;\n return o2;\n }, \"o\"), $V0 = [1, 2], $V1 = [1, 3], $V2 = [1, 4], $V3 = [2, 4], $V4 = [1, 9], $V5 = [1, 11], $V6 = [1, 16], $V7 = [1, 17], $V8 = [1, 18], $V9 = [1, 19], $Va = [1, 33], $Vb = [1, 20], $Vc = [1, 21], $Vd = [1, 22], $Ve = [1, 23], $Vf = [1, 24], $Vg = [1, 26], $Vh = [1, 27], $Vi = [1, 28], $Vj = [1, 29], $Vk = [1, 30], $Vl = [1, 31], $Vm = [1, 32], $Vn = [1, 35], $Vo = [1, 36], $Vp = [1, 37], $Vq = [1, 38], $Vr = [1, 34], $Vs = [1, 4, 5, 16, 17, 19, 21, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 41, 45, 48, 51, 52, 53, 54, 57], $Vt = [1, 4, 5, 14, 15, 16, 17, 19, 21, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 39, 40, 41, 45, 48, 51, 52, 53, 54, 57], $Vu = [4, 5, 16, 17, 19, 21, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 41, 45, 48, 51, 52, 53, 54, 57];\n var parser2 = {\n trace: /* @__PURE__ */ __name(function trace() {\n }, \"trace\"),\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"SPACE\": 4, \"NL\": 5, \"SD\": 6, \"document\": 7, \"line\": 8, \"statement\": 9, \"classDefStatement\": 10, \"styleStatement\": 11, \"cssClassStatement\": 12, \"idStatement\": 13, \"DESCR\": 14, \"-->\": 15, \"HIDE_EMPTY\": 16, \"scale\": 17, \"WIDTH\": 18, \"COMPOSIT_STATE\": 19, \"STRUCT_START\": 20, \"STRUCT_STOP\": 21, \"STATE_DESCR\": 22, \"AS\": 23, \"ID\": 24, \"FORK\": 25, \"JOIN\": 26, \"CHOICE\": 27, \"CONCURRENT\": 28, \"note\": 29, \"notePosition\": 30, \"NOTE_TEXT\": 31, \"direction\": 32, \"acc_title\": 33, \"acc_title_value\": 34, \"acc_descr\": 35, \"acc_descr_value\": 36, \"acc_descr_multiline_value\": 37, \"CLICK\": 38, \"STRING\": 39, \"HREF\": 40, \"classDef\": 41, \"CLASSDEF_ID\": 42, \"CLASSDEF_STYLEOPTS\": 43, \"DEFAULT\": 44, \"style\": 45, \"STYLE_IDS\": 46, \"STYLEDEF_STYLEOPTS\": 47, \"class\": 48, \"CLASSENTITY_IDS\": 49, \"STYLECLASS\": 50, \"direction_tb\": 51, \"direction_bt\": 52, \"direction_rl\": 53, \"direction_lr\": 54, \"eol\": 55, \";\": 56, \"EDGE_STATE\": 57, \"STYLE_SEPARATOR\": 58, \"left_of\": 59, \"right_of\": 60, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 4: \"SPACE\", 5: \"NL\", 6: \"SD\", 14: \"DESCR\", 15: \"-->\", 16: \"HIDE_EMPTY\", 17: \"scale\", 18: \"WIDTH\", 19: \"COMPOSIT_STATE\", 20: \"STRUCT_START\", 21: \"STRUCT_STOP\", 22: \"STATE_DESCR\", 23: \"AS\", 24: \"ID\", 25: \"FORK\", 26: \"JOIN\", 27: \"CHOICE\", 28: \"CONCURRENT\", 29: \"note\", 31: \"NOTE_TEXT\", 33: \"acc_title\", 34: \"acc_title_value\", 35: \"acc_descr\", 36: \"acc_descr_value\", 37: \"acc_descr_multiline_value\", 38: \"CLICK\", 39: \"STRING\", 40: \"HREF\", 41: \"classDef\", 42: \"CLASSDEF_ID\", 43: \"CLASSDEF_STYLEOPTS\", 44: \"DEFAULT\", 45: \"style\", 46: \"STYLE_IDS\", 47: \"STYLEDEF_STYLEOPTS\", 48: \"class\", 49: \"CLASSENTITY_IDS\", 50: \"STYLECLASS\", 51: \"direction_tb\", 52: \"direction_bt\", 53: \"direction_rl\", 54: \"direction_lr\", 56: \";\", 57: \"EDGE_STATE\", 58: \"STYLE_SEPARATOR\", 59: \"left_of\", 60: \"right_of\" },\n productions_: [0, [3, 2], [3, 2], [3, 2], [7, 0], [7, 2], [8, 2], [8, 1], [8, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 2], [9, 3], [9, 4], [9, 1], [9, 2], [9, 1], [9, 4], [9, 3], [9, 6], [9, 1], [9, 1], [9, 1], [9, 1], [9, 4], [9, 4], [9, 1], [9, 2], [9, 2], [9, 1], [9, 5], [9, 5], [10, 3], [10, 3], [11, 3], [12, 3], [32, 1], [32, 1], [32, 1], [32, 1], [55, 1], [55, 1], [13, 1], [13, 1], [13, 3], [13, 3], [30, 1], [30, 1]],\n performAction: /* @__PURE__ */ __name(function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 3:\n yy.setRootDoc($$[$0]);\n return $$[$0];\n break;\n case 4:\n this.$ = [];\n break;\n case 5:\n if ($$[$0] != \"nl\") {\n $$[$0 - 1].push($$[$0]);\n this.$ = $$[$0 - 1];\n }\n break;\n case 6:\n case 7:\n this.$ = $$[$0];\n break;\n case 8:\n this.$ = \"nl\";\n break;\n case 12:\n this.$ = $$[$0];\n break;\n case 13:\n const stateStmt = $$[$0 - 1];\n stateStmt.description = yy.trimColon($$[$0]);\n this.$ = stateStmt;\n break;\n case 14:\n this.$ = { stmt: \"relation\", state1: $$[$0 - 2], state2: $$[$0] };\n break;\n case 15:\n const relDescription = yy.trimColon($$[$0]);\n this.$ = { stmt: \"relation\", state1: $$[$0 - 3], state2: $$[$0 - 1], description: relDescription };\n break;\n case 19:\n this.$ = { stmt: \"state\", id: $$[$0 - 3], type: \"default\", description: \"\", doc: $$[$0 - 1] };\n break;\n case 20:\n var id = $$[$0];\n var description = $$[$0 - 2].trim();\n if ($$[$0].match(\":\")) {\n var parts = $$[$0].split(\":\");\n id = parts[0];\n description = [description, parts[1]];\n }\n this.$ = { stmt: \"state\", id, type: \"default\", description };\n break;\n case 21:\n this.$ = { stmt: \"state\", id: $$[$0 - 3], type: \"default\", description: $$[$0 - 5], doc: $$[$0 - 1] };\n break;\n case 22:\n this.$ = { stmt: \"state\", id: $$[$0], type: \"fork\" };\n break;\n case 23:\n this.$ = { stmt: \"state\", id: $$[$0], type: \"join\" };\n break;\n case 24:\n this.$ = { stmt: \"state\", id: $$[$0], type: \"choice\" };\n break;\n case 25:\n this.$ = { stmt: \"state\", id: yy.getDividerId(), type: \"divider\" };\n break;\n case 26:\n this.$ = { stmt: \"state\", id: $$[$0 - 1].trim(), note: { position: $$[$0 - 2].trim(), text: $$[$0].trim() } };\n break;\n case 29:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 30:\n case 31:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 32:\n this.$ = {\n stmt: \"click\",\n id: $$[$0 - 3],\n url: $$[$0 - 2],\n tooltip: $$[$0 - 1]\n };\n break;\n case 33:\n this.$ = {\n stmt: \"click\",\n id: $$[$0 - 3],\n url: $$[$0 - 1],\n tooltip: \"\"\n };\n break;\n case 34:\n case 35:\n this.$ = { stmt: \"classDef\", id: $$[$0 - 1].trim(), classes: $$[$0].trim() };\n break;\n case 36:\n this.$ = { stmt: \"style\", id: $$[$0 - 1].trim(), styleClass: $$[$0].trim() };\n break;\n case 37:\n this.$ = { stmt: \"applyClass\", id: $$[$0 - 1].trim(), styleClass: $$[$0].trim() };\n break;\n case 38:\n yy.setDirection(\"TB\");\n this.$ = { stmt: \"dir\", value: \"TB\" };\n break;\n case 39:\n yy.setDirection(\"BT\");\n this.$ = { stmt: \"dir\", value: \"BT\" };\n break;\n case 40:\n yy.setDirection(\"RL\");\n this.$ = { stmt: \"dir\", value: \"RL\" };\n break;\n case 41:\n yy.setDirection(\"LR\");\n this.$ = { stmt: \"dir\", value: \"LR\" };\n break;\n case 44:\n case 45:\n this.$ = { stmt: \"state\", id: $$[$0].trim(), type: \"default\", description: \"\" };\n break;\n case 46:\n this.$ = { stmt: \"state\", id: $$[$0 - 2].trim(), classes: [$$[$0].trim()], type: \"default\", description: \"\" };\n break;\n case 47:\n this.$ = { stmt: \"state\", id: $$[$0 - 2].trim(), classes: [$$[$0].trim()], type: \"default\", description: \"\" };\n break;\n }\n }, \"anonymous\"),\n table: [{ 3: 1, 4: $V0, 5: $V1, 6: $V2 }, { 1: [3] }, { 3: 5, 4: $V0, 5: $V1, 6: $V2 }, { 3: 6, 4: $V0, 5: $V1, 6: $V2 }, o([1, 4, 5, 16, 17, 19, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 41, 45, 48, 51, 52, 53, 54, 57], $V3, { 7: 7 }), { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 3], 4: $V4, 5: $V5, 8: 8, 9: 10, 10: 12, 11: 13, 12: 14, 13: 15, 16: $V6, 17: $V7, 19: $V8, 22: $V9, 24: $Va, 25: $Vb, 26: $Vc, 27: $Vd, 28: $Ve, 29: $Vf, 32: 25, 33: $Vg, 35: $Vh, 37: $Vi, 38: $Vj, 41: $Vk, 45: $Vl, 48: $Vm, 51: $Vn, 52: $Vo, 53: $Vp, 54: $Vq, 57: $Vr }, o($Vs, [2, 5]), { 9: 39, 10: 12, 11: 13, 12: 14, 13: 15, 16: $V6, 17: $V7, 19: $V8, 22: $V9, 24: $Va, 25: $Vb, 26: $Vc, 27: $Vd, 28: $Ve, 29: $Vf, 32: 25, 33: $Vg, 35: $Vh, 37: $Vi, 38: $Vj, 41: $Vk, 45: $Vl, 48: $Vm, 51: $Vn, 52: $Vo, 53: $Vp, 54: $Vq, 57: $Vr }, o($Vs, [2, 7]), o($Vs, [2, 8]), o($Vs, [2, 9]), o($Vs, [2, 10]), o($Vs, [2, 11]), o($Vs, [2, 12], { 14: [1, 40], 15: [1, 41] }), o($Vs, [2, 16]), { 18: [1, 42] }, o($Vs, [2, 18], { 20: [1, 43] }), { 23: [1, 44] }, o($Vs, [2, 22]), o($Vs, [2, 23]), o($Vs, [2, 24]), o($Vs, [2, 25]), { 30: 45, 31: [1, 46], 59: [1, 47], 60: [1, 48] }, o($Vs, [2, 28]), { 34: [1, 49] }, { 36: [1, 50] }, o($Vs, [2, 31]), { 13: 51, 24: $Va, 57: $Vr }, { 42: [1, 52], 44: [1, 53] }, { 46: [1, 54] }, { 49: [1, 55] }, o($Vt, [2, 44], { 58: [1, 56] }), o($Vt, [2, 45], { 58: [1, 57] }), o($Vs, [2, 38]), o($Vs, [2, 39]), o($Vs, [2, 40]), o($Vs, [2, 41]), o($Vs, [2, 6]), o($Vs, [2, 13]), { 13: 58, 24: $Va, 57: $Vr }, o($Vs, [2, 17]), o($Vu, $V3, { 7: 59 }), { 24: [1, 60] }, { 24: [1, 61] }, { 23: [1, 62] }, { 24: [2, 48] }, { 24: [2, 49] }, o($Vs, [2, 29]), o($Vs, [2, 30]), { 39: [1, 63], 40: [1, 64] }, { 43: [1, 65] }, { 43: [1, 66] }, { 47: [1, 67] }, { 50: [1, 68] }, { 24: [1, 69] }, { 24: [1, 70] }, o($Vs, [2, 14], { 14: [1, 71] }), { 4: $V4, 5: $V5, 8: 8, 9: 10, 10: 12, 11: 13, 12: 14, 13: 15, 16: $V6, 17: $V7, 19: $V8, 21: [1, 72], 22: $V9, 24: $Va, 25: $Vb, 26: $Vc, 27: $Vd, 28: $Ve, 29: $Vf, 32: 25, 33: $Vg, 35: $Vh, 37: $Vi, 38: $Vj, 41: $Vk, 45: $Vl, 48: $Vm, 51: $Vn, 52: $Vo, 53: $Vp, 54: $Vq, 57: $Vr }, o($Vs, [2, 20], { 20: [1, 73] }), { 31: [1, 74] }, { 24: [1, 75] }, { 39: [1, 76] }, { 39: [1, 77] }, o($Vs, [2, 34]), o($Vs, [2, 35]), o($Vs, [2, 36]), o($Vs, [2, 37]), o($Vt, [2, 46]), o($Vt, [2, 47]), o($Vs, [2, 15]), o($Vs, [2, 19]), o($Vu, $V3, { 7: 78 }), o($Vs, [2, 26]), o($Vs, [2, 27]), { 5: [1, 79] }, { 5: [1, 80] }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 10: 12, 11: 13, 12: 14, 13: 15, 16: $V6, 17: $V7, 19: $V8, 21: [1, 81], 22: $V9, 24: $Va, 25: $Vb, 26: $Vc, 27: $Vd, 28: $Ve, 29: $Vf, 32: 25, 33: $Vg, 35: $Vh, 37: $Vi, 38: $Vj, 41: $Vk, 45: $Vl, 48: $Vm, 51: $Vn, 52: $Vo, 53: $Vp, 54: $Vq, 57: $Vr }, o($Vs, [2, 32]), o($Vs, [2, 33]), o($Vs, [2, 21])],\n defaultActions: { 5: [2, 1], 6: [2, 2], 47: [2, 48], 48: [2, 49] },\n parseError: /* @__PURE__ */ __name(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 }, \"parseError\"),\n parse: /* @__PURE__ */ __name(function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, recovering = 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 popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n __name(popStack, \"popStack\");\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 __name(lex, \"lex\");\n var symbol, preErrorSymbol, state, action, a, 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 if (!preErrorSymbol) {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n if (recovering > 0) {\n recovering--;\n }\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\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 }, \"parse\")\n };\n var lexer = /* @__PURE__ */ function() {\n var lexer2 = {\n EOF: 1,\n parseError: /* @__PURE__ */ __name(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 }, \"parseError\"),\n // resets the lexer, sets new input\n setInput: /* @__PURE__ */ __name(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 }, \"setInput\"),\n // consumes and returns one char from the input\n input: /* @__PURE__ */ __name(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 }, \"input\"),\n // unshifts one char (or a string) into the input\n unput: /* @__PURE__ */ __name(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 }, \"unput\"),\n // When called from action, caches matched text and appends it on next action\n more: /* @__PURE__ */ __name(function() {\n this._more = true;\n return this;\n }, \"more\"),\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: /* @__PURE__ */ __name(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 }, \"reject\"),\n // retain first n characters of the match\n less: /* @__PURE__ */ __name(function(n) {\n this.unput(this.match.slice(n));\n }, \"less\"),\n // displays already matched input, i.e. for error messages\n pastInput: /* @__PURE__ */ __name(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 }, \"pastInput\"),\n // displays upcoming input, i.e. for error messages\n upcomingInput: /* @__PURE__ */ __name(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 }, \"upcomingInput\"),\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: /* @__PURE__ */ __name(function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n }, \"showPosition\"),\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: /* @__PURE__ */ __name(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 }, \"test_match\"),\n // return next match in input\n next: /* @__PURE__ */ __name(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 }, \"next\"),\n // return next match that has a token\n lex: /* @__PURE__ */ __name(function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n }, \"lex\"),\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: /* @__PURE__ */ __name(function begin(condition) {\n this.conditionStack.push(condition);\n }, \"begin\"),\n // pop the previously active lexer condition state off the condition stack\n popState: /* @__PURE__ */ __name(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 }, \"popState\"),\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: /* @__PURE__ */ __name(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 }, \"_currentRules\"),\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: /* @__PURE__ */ __name(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 }, \"topState\"),\n // alias for begin(condition)\n pushState: /* @__PURE__ */ __name(function pushState(condition) {\n this.begin(condition);\n }, \"pushState\"),\n // return the number of states currently on the stack\n stateStackSize: /* @__PURE__ */ __name(function stateStackSize() {\n return this.conditionStack.length;\n }, \"stateStackSize\"),\n options: { \"case-insensitive\": true },\n performAction: /* @__PURE__ */ __name(function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n var YYSTATE = YY_START;\n switch ($avoiding_name_collisions) {\n case 0:\n return 38;\n break;\n case 1:\n return 40;\n break;\n case 2:\n return 39;\n break;\n case 3:\n return 44;\n break;\n case 4:\n return 51;\n break;\n case 5:\n return 52;\n break;\n case 6:\n return 53;\n break;\n case 7:\n return 54;\n break;\n case 8:\n break;\n case 9:\n {\n }\n break;\n case 10:\n return 5;\n break;\n case 11:\n break;\n case 12:\n break;\n case 13:\n break;\n case 14:\n break;\n case 15:\n this.pushState(\"SCALE\");\n return 17;\n break;\n case 16:\n return 18;\n break;\n case 17:\n this.popState();\n break;\n case 18:\n this.begin(\"acc_title\");\n return 33;\n break;\n case 19:\n this.popState();\n return \"acc_title_value\";\n break;\n case 20:\n this.begin(\"acc_descr\");\n return 35;\n break;\n case 21:\n this.popState();\n return \"acc_descr_value\";\n break;\n case 22:\n this.begin(\"acc_descr_multiline\");\n break;\n case 23:\n this.popState();\n break;\n case 24:\n return \"acc_descr_multiline_value\";\n break;\n case 25:\n this.pushState(\"CLASSDEF\");\n return 41;\n break;\n case 26:\n this.popState();\n this.pushState(\"CLASSDEFID\");\n return \"DEFAULT_CLASSDEF_ID\";\n break;\n case 27:\n this.popState();\n this.pushState(\"CLASSDEFID\");\n return 42;\n break;\n case 28:\n this.popState();\n return 43;\n break;\n case 29:\n this.pushState(\"CLASS\");\n return 48;\n break;\n case 30:\n this.popState();\n this.pushState(\"CLASS_STYLE\");\n return 49;\n break;\n case 31:\n this.popState();\n return 50;\n break;\n case 32:\n this.pushState(\"STYLE\");\n return 45;\n break;\n case 33:\n this.popState();\n this.pushState(\"STYLEDEF_STYLES\");\n return 46;\n break;\n case 34:\n this.popState();\n return 47;\n break;\n case 35:\n this.pushState(\"SCALE\");\n return 17;\n break;\n case 36:\n return 18;\n break;\n case 37:\n this.popState();\n break;\n case 38:\n this.pushState(\"STATE\");\n break;\n case 39:\n this.popState();\n yy_.yytext = yy_.yytext.slice(0, -8).trim();\n return 25;\n break;\n case 40:\n this.popState();\n yy_.yytext = yy_.yytext.slice(0, -8).trim();\n return 26;\n break;\n case 41:\n this.popState();\n yy_.yytext = yy_.yytext.slice(0, -10).trim();\n return 27;\n break;\n case 42:\n this.popState();\n yy_.yytext = yy_.yytext.slice(0, -8).trim();\n return 25;\n break;\n case 43:\n this.popState();\n yy_.yytext = yy_.yytext.slice(0, -8).trim();\n return 26;\n break;\n case 44:\n this.popState();\n yy_.yytext = yy_.yytext.slice(0, -10).trim();\n return 27;\n break;\n case 45:\n return 51;\n break;\n case 46:\n return 52;\n break;\n case 47:\n return 53;\n break;\n case 48:\n return 54;\n break;\n case 49:\n this.pushState(\"STATE_STRING\");\n break;\n case 50:\n this.pushState(\"STATE_ID\");\n return \"AS\";\n break;\n case 51:\n this.popState();\n return \"ID\";\n break;\n case 52:\n this.popState();\n break;\n case 53:\n return \"STATE_DESCR\";\n break;\n case 54:\n return 19;\n break;\n case 55:\n this.popState();\n break;\n case 56:\n this.popState();\n this.pushState(\"struct\");\n return 20;\n break;\n case 57:\n break;\n case 58:\n this.popState();\n return 21;\n break;\n case 59:\n break;\n case 60:\n this.begin(\"NOTE\");\n return 29;\n break;\n case 61:\n this.popState();\n this.pushState(\"NOTE_ID\");\n return 59;\n break;\n case 62:\n this.popState();\n this.pushState(\"NOTE_ID\");\n return 60;\n break;\n case 63:\n this.popState();\n this.pushState(\"FLOATING_NOTE\");\n break;\n case 64:\n this.popState();\n this.pushState(\"FLOATING_NOTE_ID\");\n return \"AS\";\n break;\n case 65:\n break;\n case 66:\n return \"NOTE_TEXT\";\n break;\n case 67:\n this.popState();\n return \"ID\";\n break;\n case 68:\n this.popState();\n this.pushState(\"NOTE_TEXT\");\n return 24;\n break;\n case 69:\n this.popState();\n yy_.yytext = yy_.yytext.substr(2).trim();\n return 31;\n break;\n case 70:\n this.popState();\n yy_.yytext = yy_.yytext.slice(0, -8).trim();\n return 31;\n break;\n case 71:\n return 6;\n break;\n case 72:\n return 6;\n break;\n case 73:\n return 16;\n break;\n case 74:\n return 57;\n break;\n case 75:\n return 24;\n break;\n case 76:\n yy_.yytext = yy_.yytext.trim();\n return 14;\n break;\n case 77:\n return 15;\n break;\n case 78:\n return 28;\n break;\n case 79:\n return 58;\n break;\n case 80:\n return 5;\n break;\n case 81:\n return \"INVALID\";\n break;\n }\n }, \"anonymous\"),\n rules: [/^(?:click\\b)/i, /^(?:href\\b)/i, /^(?:\"[^\"]*\")/i, /^(?:default\\b)/i, /^(?:.*direction\\s+TB[^\\n]*)/i, /^(?:.*direction\\s+BT[^\\n]*)/i, /^(?:.*direction\\s+RL[^\\n]*)/i, /^(?:.*direction\\s+LR[^\\n]*)/i, /^(?:%%(?!\\{)[^\\n]*)/i, /^(?:[^\\}]%%[^\\n]*)/i, /^(?:[\\n]+)/i, /^(?:[\\s]+)/i, /^(?:((?!\\n)\\s)+)/i, /^(?:#[^\\n]*)/i, /^(?:%[^\\n]*)/i, /^(?:scale\\s+)/i, /^(?:\\d+)/i, /^(?:\\s+width\\b)/i, /^(?:accTitle\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*\\{\\s*)/i, /^(?:[\\}])/i, /^(?:[^\\}]*)/i, /^(?:classDef\\s+)/i, /^(?:DEFAULT\\s+)/i, /^(?:\\w+\\s+)/i, /^(?:[^\\n]*)/i, /^(?:class\\s+)/i, /^(?:(\\w+)+((,\\s*\\w+)*))/i, /^(?:[^\\n]*)/i, /^(?:style\\s+)/i, /^(?:[\\w,]+\\s+)/i, /^(?:[^\\n]*)/i, /^(?:scale\\s+)/i, /^(?:\\d+)/i, /^(?:\\s+width\\b)/i, /^(?:state\\s+)/i, /^(?:.*<<fork>>)/i, /^(?:.*<<join>>)/i, /^(?:.*<<choice>>)/i, /^(?:.*\\[\\[fork\\]\\])/i, /^(?:.*\\[\\[join\\]\\])/i, /^(?:.*\\[\\[choice\\]\\])/i, /^(?:.*direction\\s+TB[^\\n]*)/i, /^(?:.*direction\\s+BT[^\\n]*)/i, /^(?:.*direction\\s+RL[^\\n]*)/i, /^(?:.*direction\\s+LR[^\\n]*)/i, /^(?:[\"])/i, /^(?:\\s*as\\s+)/i, /^(?:[^\\n\\{]*)/i, /^(?:[\"])/i, /^(?:[^\"]*)/i, /^(?:[^\\n\\s\\{]+)/i, /^(?:\\n)/i, /^(?:\\{)/i, /^(?:%%(?!\\{)[^\\n]*)/i, /^(?:\\})/i, /^(?:[\\n])/i, /^(?:note\\s+)/i, /^(?:left of\\b)/i, /^(?:right of\\b)/i, /^(?:\")/i, /^(?:\\s*as\\s*)/i, /^(?:[\"])/i, /^(?:[^\"]*)/i, /^(?:[^\\n]*)/i, /^(?:\\s*[^:\\n\\s\\-]+)/i, /^(?:\\s*:[^:\\n;]+)/i, /^(?:[\\s\\S]*?end note\\b)/i, /^(?:stateDiagram\\s+)/i, /^(?:stateDiagram-v2\\s+)/i, /^(?:hide empty description\\b)/i, /^(?:\\[\\*\\])/i, /^(?:[^:\\n\\s\\-\\{]+)/i, /^(?:\\s*:[^:\\n;]+)/i, /^(?:-->)/i, /^(?:--)/i, /^(?::::)/i, /^(?:$)/i, /^(?:.)/i],\n conditions: { \"LINE\": { \"rules\": [12, 13], \"inclusive\": false }, \"struct\": { \"rules\": [12, 13, 25, 29, 32, 38, 45, 46, 47, 48, 57, 58, 59, 60, 74, 75, 76, 77, 78], \"inclusive\": false }, \"FLOATING_NOTE_ID\": { \"rules\": [67], \"inclusive\": false }, \"FLOATING_NOTE\": { \"rules\": [64, 65, 66], \"inclusive\": false }, \"NOTE_TEXT\": { \"rules\": [69, 70], \"inclusive\": false }, \"NOTE_ID\": { \"rules\": [68], \"inclusive\": false }, \"NOTE\": { \"rules\": [61, 62, 63], \"inclusive\": false }, \"STYLEDEF_STYLEOPTS\": { \"rules\": [], \"inclusive\": false }, \"STYLEDEF_STYLES\": { \"rules\": [34], \"inclusive\": false }, \"STYLE_IDS\": { \"rules\": [], \"inclusive\": false }, \"STYLE\": { \"rules\": [33], \"inclusive\": false }, \"CLASS_STYLE\": { \"rules\": [31], \"inclusive\": false }, \"CLASS\": { \"rules\": [30], \"inclusive\": false }, \"CLASSDEFID\": { \"rules\": [28], \"inclusive\": false }, \"CLASSDEF\": { \"rules\": [26, 27], \"inclusive\": false }, \"acc_descr_multiline\": { \"rules\": [23, 24], \"inclusive\": false }, \"acc_descr\": { \"rules\": [21], \"inclusive\": false }, \"acc_title\": { \"rules\": [19], \"inclusive\": false }, \"SCALE\": { \"rules\": [16, 17, 36, 37], \"inclusive\": false }, \"ALIAS\": { \"rules\": [], \"inclusive\": false }, \"STATE_ID\": { \"rules\": [51], \"inclusive\": false }, \"STATE_STRING\": { \"rules\": [52, 53], \"inclusive\": false }, \"FORK_STATE\": { \"rules\": [], \"inclusive\": false }, \"STATE\": { \"rules\": [12, 13, 39, 40, 41, 42, 43, 44, 49, 50, 54, 55, 56], \"inclusive\": false }, \"ID\": { \"rules\": [12, 13], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 18, 20, 22, 25, 29, 32, 35, 38, 56, 60, 71, 72, 73, 74, 75, 76, 77, 79, 80, 81], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n __name(Parser, \"Parser\");\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nvar stateDiagram_default = parser;\n\n// src/diagrams/state/stateCommon.ts\nvar DEFAULT_DIAGRAM_DIRECTION = \"TB\";\nvar DEFAULT_NESTED_DOC_DIR = \"TB\";\nvar STMT_DIRECTION = \"dir\";\nvar STMT_STATE = \"state\";\nvar STMT_ROOT = \"root\";\nvar STMT_RELATION = \"relation\";\nvar STMT_CLASSDEF = \"classDef\";\nvar STMT_STYLEDEF = \"style\";\nvar STMT_APPLYCLASS = \"applyClass\";\nvar DEFAULT_STATE_TYPE = \"default\";\nvar DIVIDER_TYPE = \"divider\";\nvar G_EDGE_STYLE = \"fill:none\";\nvar G_EDGE_ARROWHEADSTYLE = \"fill: #333\";\nvar G_EDGE_LABELPOS = \"c\";\nvar G_EDGE_LABELTYPE = \"text\";\nvar G_EDGE_THICKNESS = \"normal\";\nvar SHAPE_STATE = \"rect\";\nvar SHAPE_STATE_WITH_DESC = \"rectWithTitle\";\nvar SHAPE_START = \"stateStart\";\nvar SHAPE_END = \"stateEnd\";\nvar SHAPE_DIVIDER = \"divider\";\nvar SHAPE_GROUP = \"roundedWithTitle\";\nvar SHAPE_NOTE = \"note\";\nvar SHAPE_NOTEGROUP = \"noteGroup\";\nvar CSS_DIAGRAM = \"statediagram\";\nvar CSS_STATE = \"state\";\nvar CSS_DIAGRAM_STATE = `${CSS_DIAGRAM}-${CSS_STATE}`;\nvar CSS_EDGE = \"transition\";\nvar CSS_NOTE = \"note\";\nvar CSS_NOTE_EDGE = \"note-edge\";\nvar CSS_EDGE_NOTE_EDGE = `${CSS_EDGE} ${CSS_NOTE_EDGE}`;\nvar CSS_DIAGRAM_NOTE = `${CSS_DIAGRAM}-${CSS_NOTE}`;\nvar CSS_CLUSTER = \"cluster\";\nvar CSS_DIAGRAM_CLUSTER = `${CSS_DIAGRAM}-${CSS_CLUSTER}`;\nvar CSS_CLUSTER_ALT = \"cluster-alt\";\nvar CSS_DIAGRAM_CLUSTER_ALT = `${CSS_DIAGRAM}-${CSS_CLUSTER_ALT}`;\nvar PARENT = \"parent\";\nvar NOTE = \"note\";\nvar DOMID_STATE = \"state\";\nvar DOMID_TYPE_SPACER = \"----\";\nvar NOTE_ID = `${DOMID_TYPE_SPACER}${NOTE}`;\nvar PARENT_ID = `${DOMID_TYPE_SPACER}${PARENT}`;\n\n// src/diagrams/state/stateRenderer-v3-unified.ts\nvar getDir = /* @__PURE__ */ __name((parsedItem, defaultDir = DEFAULT_NESTED_DOC_DIR) => {\n if (!parsedItem.doc) {\n return defaultDir;\n }\n let dir = defaultDir;\n for (const parsedItemDoc of parsedItem.doc) {\n if (parsedItemDoc.stmt === \"dir\") {\n dir = parsedItemDoc.value;\n }\n }\n return dir;\n}, \"getDir\");\nvar getClasses = /* @__PURE__ */ __name(function(text, diagramObj) {\n return diagramObj.db.getClasses();\n}, \"getClasses\");\nvar draw = /* @__PURE__ */ __name(async function(text, id, _version, diag) {\n log.info(\"REF0:\");\n log.info(\"Drawing state diagram (v2)\", id);\n const { securityLevel, state: conf, layout } = getConfig();\n diag.db.extract(diag.db.getRootDocV2());\n const data4Layout = diag.db.getData();\n const svg = getDiagramElement(id, securityLevel);\n data4Layout.type = diag.type;\n data4Layout.layoutAlgorithm = layout;\n data4Layout.nodeSpacing = conf?.nodeSpacing || 50;\n data4Layout.rankSpacing = conf?.rankSpacing || 50;\n data4Layout.markers = [\"barb\"];\n data4Layout.diagramId = id;\n await render(data4Layout, svg);\n const padding = 8;\n try {\n const links = typeof diag.db.getLinks === \"function\" ? diag.db.getLinks() : /* @__PURE__ */ new Map();\n links.forEach((linkInfo, key) => {\n const stateId = typeof key === \"string\" ? key : typeof key?.id === \"string\" ? key.id : \"\";\n if (!stateId) {\n log.warn(\"\\u26A0\\uFE0F Invalid or missing stateId from key:\", JSON.stringify(key));\n return;\n }\n const allNodes = svg.node()?.querySelectorAll(\"g\");\n let matchedElem;\n allNodes?.forEach((g) => {\n const text2 = g.textContent?.trim();\n if (text2 === stateId) {\n matchedElem = g;\n }\n });\n if (!matchedElem) {\n log.warn(\"\\u26A0\\uFE0F Could not find node matching text:\", stateId);\n return;\n }\n const parent = matchedElem.parentNode;\n if (!parent) {\n log.warn(\"\\u26A0\\uFE0F Node has no parent, cannot wrap:\", stateId);\n return;\n }\n const a = document.createElementNS(\"http://www.w3.org/2000/svg\", \"a\");\n const cleanedUrl = linkInfo.url.replace(/^\"+|\"+$/g, \"\");\n a.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"xlink:href\", cleanedUrl);\n a.setAttribute(\"target\", \"_blank\");\n if (linkInfo.tooltip) {\n const tooltip = linkInfo.tooltip.replace(/^\"+|\"+$/g, \"\");\n a.setAttribute(\"title\", tooltip);\n }\n parent.replaceChild(a, matchedElem);\n a.appendChild(matchedElem);\n log.info(\"\\u{1F517} Wrapped node in <a> tag for:\", stateId, linkInfo.url);\n });\n } catch (err) {\n log.error(\"\\u274C Error injecting clickable links:\", err);\n }\n utils_default.insertTitle(\n svg,\n \"statediagramTitleText\",\n conf?.titleTopMargin ?? 25,\n diag.db.getDiagramTitle()\n );\n setupViewPortForSVG(svg, padding, CSS_DIAGRAM, conf?.useMaxWidth ?? true);\n}, \"draw\");\nvar stateRenderer_v3_unified_default = {\n getClasses,\n draw,\n getDir\n};\n\n// src/diagrams/state/dataFetcher.ts\nvar nodeDb = /* @__PURE__ */ new Map();\nvar graphItemCount = 0;\nfunction stateDomId(itemId = \"\", counter = 0, type = \"\", typeSpacer = DOMID_TYPE_SPACER) {\n const typeStr = type !== null && type.length > 0 ? `${typeSpacer}${type}` : \"\";\n return `${DOMID_STATE}-${itemId}${typeStr}-${counter}`;\n}\n__name(stateDomId, \"stateDomId\");\nvar setupDoc = /* @__PURE__ */ __name((parentParsedItem, doc, diagramStates, nodes, edges, altFlag, look, classes) => {\n log.trace(\"items\", doc);\n doc.forEach((item) => {\n switch (item.stmt) {\n case STMT_STATE:\n dataFetcher(parentParsedItem, item, diagramStates, nodes, edges, altFlag, look, classes);\n break;\n case DEFAULT_STATE_TYPE:\n dataFetcher(parentParsedItem, item, diagramStates, nodes, edges, altFlag, look, classes);\n break;\n case STMT_RELATION:\n {\n dataFetcher(\n parentParsedItem,\n item.state1,\n diagramStates,\n nodes,\n edges,\n altFlag,\n look,\n classes\n );\n dataFetcher(\n parentParsedItem,\n item.state2,\n diagramStates,\n nodes,\n edges,\n altFlag,\n look,\n classes\n );\n const edgeData = {\n id: \"edge\" + graphItemCount,\n start: item.state1.id,\n end: item.state2.id,\n arrowhead: \"normal\",\n arrowTypeEnd: \"arrow_barb\",\n style: G_EDGE_STYLE,\n labelStyle: \"\",\n label: common_default.sanitizeText(item.description ?? \"\", getConfig()),\n arrowheadStyle: G_EDGE_ARROWHEADSTYLE,\n labelpos: G_EDGE_LABELPOS,\n labelType: G_EDGE_LABELTYPE,\n thickness: G_EDGE_THICKNESS,\n classes: CSS_EDGE,\n look\n };\n edges.push(edgeData);\n graphItemCount++;\n }\n break;\n }\n });\n}, \"setupDoc\");\nvar getDir2 = /* @__PURE__ */ __name((parsedItem, defaultDir = DEFAULT_NESTED_DOC_DIR) => {\n let dir = defaultDir;\n if (parsedItem.doc) {\n for (const parsedItemDoc of parsedItem.doc) {\n if (parsedItemDoc.stmt === \"dir\") {\n dir = parsedItemDoc.value;\n }\n }\n }\n return dir;\n}, \"getDir\");\nfunction insertOrUpdateNode(nodes, nodeData, classes) {\n if (!nodeData.id || nodeData.id === \"</join></fork>\" || nodeData.id === \"</choice>\") {\n return;\n }\n if (nodeData.cssClasses) {\n if (!Array.isArray(nodeData.cssCompiledStyles)) {\n nodeData.cssCompiledStyles = [];\n }\n nodeData.cssClasses.split(\" \").forEach((cssClass) => {\n const classDef = classes.get(cssClass);\n if (classDef) {\n nodeData.cssCompiledStyles = [...nodeData.cssCompiledStyles ?? [], ...classDef.styles];\n }\n });\n }\n const existingNodeData = nodes.find((node) => node.id === nodeData.id);\n if (existingNodeData) {\n Object.assign(existingNodeData, nodeData);\n } else {\n nodes.push(nodeData);\n }\n}\n__name(insertOrUpdateNode, \"insertOrUpdateNode\");\nfunction getClassesFromDbInfo(dbInfoItem) {\n return dbInfoItem?.classes?.join(\" \") ?? \"\";\n}\n__name(getClassesFromDbInfo, \"getClassesFromDbInfo\");\nfunction getStylesFromDbInfo(dbInfoItem) {\n return dbInfoItem?.styles ?? [];\n}\n__name(getStylesFromDbInfo, \"getStylesFromDbInfo\");\nvar dataFetcher = /* @__PURE__ */ __name((parent, parsedItem, diagramStates, nodes, edges, altFlag, look, classes) => {\n const itemId = parsedItem.id;\n const dbState = diagramStates.get(itemId);\n const classStr = getClassesFromDbInfo(dbState);\n const style = getStylesFromDbInfo(dbState);\n const config = getConfig();\n log.info(\"dataFetcher parsedItem\", parsedItem, dbState, style);\n if (itemId !== \"root\") {\n let shape = SHAPE_STATE;\n if (parsedItem.start === true) {\n shape = SHAPE_START;\n } else if (parsedItem.start === false) {\n shape = SHAPE_END;\n }\n if (parsedItem.type !== DEFAULT_STATE_TYPE) {\n shape = parsedItem.type;\n }\n if (!nodeDb.get(itemId)) {\n nodeDb.set(itemId, {\n id: itemId,\n shape,\n description: common_default.sanitizeText(itemId, config),\n cssClasses: `${classStr} ${CSS_DIAGRAM_STATE}`,\n cssStyles: style\n });\n }\n const newNode = nodeDb.get(itemId);\n if (parsedItem.description) {\n if (Array.isArray(newNode.description)) {\n newNode.shape = SHAPE_STATE_WITH_DESC;\n newNode.description.push(parsedItem.description);\n } else {\n if (newNode.description?.length && newNode.description.length > 0) {\n newNode.shape = SHAPE_STATE_WITH_DESC;\n if (newNode.description === itemId) {\n newNode.description = [parsedItem.description];\n } else {\n newNode.description = [newNode.description, parsedItem.description];\n }\n } else {\n newNode.shape = SHAPE_STATE;\n newNode.description = parsedItem.description;\n }\n }\n newNode.description = common_default.sanitizeTextOrArray(newNode.description, config);\n }\n if (newNode.description?.length === 1 && newNode.shape === SHAPE_STATE_WITH_DESC) {\n if (newNode.type === \"group\") {\n newNode.shape = SHAPE_GROUP;\n } else {\n newNode.shape = SHAPE_STATE;\n }\n }\n if (!newNode.type && parsedItem.doc) {\n log.info(\"Setting cluster for XCX\", itemId, getDir2(parsedItem));\n newNode.type = \"group\";\n newNode.isGroup = true;\n newNode.dir = getDir2(parsedItem);\n newNode.shape = parsedItem.type === DIVIDER_TYPE ? SHAPE_DIVIDER : SHAPE_GROUP;\n newNode.cssClasses = `${newNode.cssClasses} ${CSS_DIAGRAM_CLUSTER} ${altFlag ? CSS_DIAGRAM_CLUSTER_ALT : \"\"}`;\n }\n const nodeData = {\n labelStyle: \"\",\n shape: newNode.shape,\n label: newNode.description,\n cssClasses: newNode.cssClasses,\n cssCompiledStyles: [],\n cssStyles: newNode.cssStyles,\n id: itemId,\n dir: newNode.dir,\n domId: stateDomId(itemId, graphItemCount),\n type: newNode.type,\n isGroup: newNode.type === \"group\",\n padding: 8,\n rx: 10,\n ry: 10,\n look\n };\n if (nodeData.shape === SHAPE_DIVIDER) {\n nodeData.label = \"\";\n }\n if (parent && parent.id !== \"root\") {\n log.trace(\"Setting node \", itemId, \" to be child of its parent \", parent.id);\n nodeData.parentId = parent.id;\n }\n nodeData.centerLabel = true;\n if (parsedItem.note) {\n const noteData = {\n labelStyle: \"\",\n shape: SHAPE_NOTE,\n label: parsedItem.note.text,\n cssClasses: CSS_DIAGRAM_NOTE,\n // useHtmlLabels: false,\n cssStyles: [],\n cssCompiledStyles: [],\n id: itemId + NOTE_ID + \"-\" + graphItemCount,\n domId: stateDomId(itemId, graphItemCount, NOTE),\n type: newNode.type,\n isGroup: newNode.type === \"group\",\n padding: config.flowchart?.padding,\n look,\n position: parsedItem.note.position\n };\n const parentNodeId = itemId + PARENT_ID;\n const groupData = {\n labelStyle: \"\",\n shape: SHAPE_NOTEGROUP,\n label: parsedItem.note.text,\n cssClasses: newNode.cssClasses,\n cssStyles: [],\n id: itemId + PARENT_ID,\n domId: stateDomId(itemId, graphItemCount, PARENT),\n type: \"group\",\n isGroup: true,\n padding: 16,\n //getConfig().flowchart.padding\n look,\n position: parsedItem.note.position\n };\n graphItemCount++;\n groupData.id = parentNodeId;\n noteData.parentId = parentNodeId;\n insertOrUpdateNode(nodes, groupData, classes);\n insertOrUpdateNode(nodes, noteData, classes);\n insertOrUpdateNode(nodes, nodeData, classes);\n let from = itemId;\n let to = noteData.id;\n if (parsedItem.note.position === \"left of\") {\n from = noteData.id;\n to = itemId;\n }\n edges.push({\n id: from + \"-\" + to,\n start: from,\n end: to,\n arrowhead: \"none\",\n arrowTypeEnd: \"\",\n style: G_EDGE_STYLE,\n labelStyle: \"\",\n classes: CSS_EDGE_NOTE_EDGE,\n arrowheadStyle: G_EDGE_ARROWHEADSTYLE,\n labelpos: G_EDGE_LABELPOS,\n labelType: G_EDGE_LABELTYPE,\n thickness: G_EDGE_THICKNESS,\n look\n });\n } else {\n insertOrUpdateNode(nodes, nodeData, classes);\n }\n }\n if (parsedItem.doc) {\n log.trace(\"Adding nodes children \");\n setupDoc(parsedItem, parsedItem.doc, diagramStates, nodes, edges, !altFlag, look, classes);\n }\n}, \"dataFetcher\");\nvar reset = /* @__PURE__ */ __name(() => {\n nodeDb.clear();\n graphItemCount = 0;\n}, \"reset\");\n\n// src/diagrams/state/stateDb.ts\nvar CONSTANTS = {\n START_NODE: \"[*]\",\n START_TYPE: \"start\",\n END_NODE: \"[*]\",\n END_TYPE: \"end\",\n COLOR_KEYWORD: \"color\",\n FILL_KEYWORD: \"fill\",\n BG_FILL: \"bgFill\",\n STYLECLASS_SEP: \",\"\n};\nvar newClassesList = /* @__PURE__ */ __name(() => /* @__PURE__ */ new Map(), \"newClassesList\");\nvar newDoc = /* @__PURE__ */ __name(() => ({\n relations: [],\n states: /* @__PURE__ */ new Map(),\n documents: {}\n}), \"newDoc\");\nvar clone = /* @__PURE__ */ __name((o) => JSON.parse(JSON.stringify(o)), \"clone\");\nvar StateDB = class {\n constructor(version) {\n this.version = version;\n this.nodes = [];\n this.edges = [];\n this.rootDoc = [];\n this.classes = newClassesList();\n this.documents = { root: newDoc() };\n this.currentDocument = this.documents.root;\n this.startEndCount = 0;\n this.dividerCnt = 0;\n this.links = /* @__PURE__ */ new Map();\n this.getAccTitle = getAccTitle;\n this.setAccTitle = setAccTitle;\n this.getAccDescription = getAccDescription;\n this.setAccDescription = setAccDescription;\n this.setDiagramTitle = setDiagramTitle;\n this.getDiagramTitle = getDiagramTitle;\n this.clear();\n this.setRootDoc = this.setRootDoc.bind(this);\n this.getDividerId = this.getDividerId.bind(this);\n this.setDirection = this.setDirection.bind(this);\n this.trimColon = this.trimColon.bind(this);\n }\n static {\n __name(this, \"StateDB\");\n }\n static {\n this.relationType = {\n AGGREGATION: 0,\n EXTENSION: 1,\n COMPOSITION: 2,\n DEPENDENCY: 3\n };\n }\n /**\n * Convert all of the statements (stmts) that were parsed into states and relationships.\n * This is done because a state diagram may have nested sections,\n * where each section is a 'document' and has its own set of statements.\n * Ex: the section within a fork has its own statements, and incoming and outgoing statements\n * refer to the fork as a whole (document).\n * See the parser grammar: the definition of a document is a document then a 'line', where a line can be a statement.\n * This will push the statement into the list of statements for the current document.\n */\n extract(statements) {\n this.clear(true);\n for (const item of Array.isArray(statements) ? statements : statements.doc) {\n switch (item.stmt) {\n case STMT_STATE:\n this.addState(item.id.trim(), item.type, item.doc, item.description, item.note);\n break;\n case STMT_RELATION:\n this.addRelation(item.state1, item.state2, item.description);\n break;\n case STMT_CLASSDEF:\n this.addStyleClass(item.id.trim(), item.classes);\n break;\n case STMT_STYLEDEF:\n this.handleStyleDef(item);\n break;\n case STMT_APPLYCLASS:\n this.setCssClass(item.id.trim(), item.styleClass);\n break;\n case \"click\":\n this.addLink(item.id, item.url, item.tooltip);\n break;\n }\n }\n const diagramStates = this.getStates();\n const config = getConfig();\n reset();\n dataFetcher(\n void 0,\n this.getRootDocV2(),\n diagramStates,\n this.nodes,\n this.edges,\n true,\n config.look,\n this.classes\n );\n for (const node of this.nodes) {\n if (!Array.isArray(node.label)) {\n continue;\n }\n node.description = node.label.slice(1);\n if (node.isGroup && node.description.length > 0) {\n throw new Error(\n `Group nodes can only have label. Remove the additional description for node [${node.id}]`\n );\n }\n node.label = node.label[0];\n }\n }\n handleStyleDef(item) {\n const ids = item.id.trim().split(\",\");\n const styles = item.styleClass.split(\",\");\n for (const id of ids) {\n let state = this.getState(id);\n if (!state) {\n const trimmedId = id.trim();\n this.addState(trimmedId);\n state = this.getState(trimmedId);\n }\n if (state) {\n state.styles = styles.map((s) => s.replace(/;/g, \"\")?.trim());\n }\n }\n }\n setRootDoc(o) {\n log.info(\"Setting root doc\", o);\n this.rootDoc = o;\n if (this.version === 1) {\n this.extract(o);\n } else {\n this.extract(this.getRootDocV2());\n }\n }\n docTranslator(parent, node, first) {\n if (node.stmt === STMT_RELATION) {\n this.docTranslator(parent, node.state1, true);\n this.docTranslator(parent, node.state2, false);\n return;\n }\n if (node.stmt === STMT_STATE) {\n if (node.id === CONSTANTS.START_NODE) {\n node.id = parent.id + (first ? \"_start\" : \"_end\");\n node.start = first;\n } else {\n node.id = node.id.trim();\n }\n }\n if (node.stmt !== STMT_ROOT && node.stmt !== STMT_STATE || !node.doc) {\n return;\n }\n const doc = [];\n let currentDoc = [];\n for (const stmt of node.doc) {\n if (stmt.type === DIVIDER_TYPE) {\n const newNode = clone(stmt);\n newNode.doc = clone(currentDoc);\n doc.push(newNode);\n currentDoc = [];\n } else {\n currentDoc.push(stmt);\n }\n }\n if (doc.length > 0 && currentDoc.length > 0) {\n const newNode = {\n stmt: STMT_STATE,\n id: generateId(),\n type: \"divider\",\n doc: clone(currentDoc)\n };\n doc.push(clone(newNode));\n node.doc = doc;\n }\n node.doc.forEach((docNode) => this.docTranslator(node, docNode, true));\n }\n getRootDocV2() {\n this.docTranslator(\n { id: STMT_ROOT, stmt: STMT_ROOT },\n { id: STMT_ROOT, stmt: STMT_ROOT, doc: this.rootDoc },\n true\n );\n return { id: STMT_ROOT, doc: this.rootDoc };\n }\n /**\n * Function called by parser when a node definition has been found.\n *\n * @param descr - description for the state. Can be a string or a list or strings\n * @param classes - class styles to apply to this state. Can be a string (1 style) or an array of styles. If it's just 1 class, convert it to an array of that 1 class.\n * @param styles - styles to apply to this state. Can be a string (1 style) or an array of styles. If it's just 1 style, convert it to an array of that 1 style.\n * @param textStyles - text styles to apply to this state. Can be a string (1 text test) or an array of text styles. If it's just 1 text style, convert it to an array of that 1 text style.\n */\n addState(id, type = DEFAULT_STATE_TYPE, doc = void 0, descr = void 0, note = void 0, classes = void 0, styles = void 0, textStyles = void 0) {\n const trimmedId = id?.trim();\n if (!this.currentDocument.states.has(trimmedId)) {\n log.info(\"Adding state \", trimmedId, descr);\n this.currentDocument.states.set(trimmedId, {\n stmt: STMT_STATE,\n id: trimmedId,\n descriptions: [],\n type,\n doc,\n note,\n classes: [],\n styles: [],\n textStyles: []\n });\n } else {\n const state = this.currentDocument.states.get(trimmedId);\n if (!state) {\n throw new Error(`State not found: ${trimmedId}`);\n }\n if (!state.doc) {\n state.doc = doc;\n }\n if (!state.type) {\n state.type = type;\n }\n }\n if (descr) {\n log.info(\"Setting state description\", trimmedId, descr);\n const descriptions = Array.isArray(descr) ? descr : [descr];\n descriptions.forEach((des) => this.addDescription(trimmedId, des.trim()));\n }\n if (note) {\n const doc2 = this.currentDocument.states.get(trimmedId);\n if (!doc2) {\n throw new Error(`State not found: ${trimmedId}`);\n }\n doc2.note = note;\n doc2.note.text = common_default.sanitizeText(doc2.note.text, getConfig());\n }\n if (classes) {\n log.info(\"Setting state classes\", trimmedId, classes);\n const classesList = Array.isArray(classes) ? classes : [classes];\n classesList.forEach((cssClass) => this.setCssClass(trimmedId, cssClass.trim()));\n }\n if (styles) {\n log.info(\"Setting state styles\", trimmedId, styles);\n const stylesList = Array.isArray(styles) ? styles : [styles];\n stylesList.forEach((style) => this.setStyle(trimmedId, style.trim()));\n }\n if (textStyles) {\n log.info(\"Setting state styles\", trimmedId, styles);\n const textStylesList = Array.isArray(textStyles) ? textStyles : [textStyles];\n textStylesList.forEach((textStyle) => this.setTextStyle(trimmedId, textStyle.trim()));\n }\n }\n clear(saveCommon) {\n this.nodes = [];\n this.edges = [];\n this.documents = { root: newDoc() };\n this.currentDocument = this.documents.root;\n this.startEndCount = 0;\n this.classes = newClassesList();\n if (!saveCommon) {\n this.links = /* @__PURE__ */ new Map();\n clear();\n }\n }\n getState(id) {\n return this.currentDocument.states.get(id);\n }\n getStates() {\n return this.currentDocument.states;\n }\n logDocuments() {\n log.info(\"Documents = \", this.documents);\n }\n getRelations() {\n return this.currentDocument.relations;\n }\n /**\n * Adds a clickable link to a state.\n */\n addLink(stateId, url, tooltip) {\n this.links.set(stateId, { url, tooltip });\n log.warn(\"Adding link\", stateId, url, tooltip);\n }\n /**\n * Get all registered links.\n */\n getLinks() {\n return this.links;\n }\n /**\n * If the id is a start node ( [*] ), then return a new id constructed from\n * the start node name and the current start node count.\n * else return the given id\n */\n startIdIfNeeded(id = \"\") {\n if (id === CONSTANTS.START_NODE) {\n this.startEndCount++;\n return `${CONSTANTS.START_TYPE}${this.startEndCount}`;\n }\n return id;\n }\n /**\n * If the id is a start node ( [*] ), then return the start type ('start')\n * else return the given type\n */\n startTypeIfNeeded(id = \"\", type = DEFAULT_STATE_TYPE) {\n return id === CONSTANTS.START_NODE ? CONSTANTS.START_TYPE : type;\n }\n /**\n * If the id is an end node ( [*] ), then return a new id constructed from\n * the end node name and the current start_end node count.\n * else return the given id\n */\n endIdIfNeeded(id = \"\") {\n if (id === CONSTANTS.END_NODE) {\n this.startEndCount++;\n return `${CONSTANTS.END_TYPE}${this.startEndCount}`;\n }\n return id;\n }\n /**\n * If the id is an end node ( [*] ), then return the end type\n * else return the given type\n *\n */\n endTypeIfNeeded(id = \"\", type = DEFAULT_STATE_TYPE) {\n return id === CONSTANTS.END_NODE ? CONSTANTS.END_TYPE : type;\n }\n addRelationObjs(item1, item2, relationTitle = \"\") {\n const id1 = this.startIdIfNeeded(item1.id.trim());\n const type1 = this.startTypeIfNeeded(item1.id.trim(), item1.type);\n const id2 = this.startIdIfNeeded(item2.id.trim());\n const type2 = this.startTypeIfNeeded(item2.id.trim(), item2.type);\n this.addState(\n id1,\n type1,\n item1.doc,\n item1.description,\n item1.note,\n item1.classes,\n item1.styles,\n item1.textStyles\n );\n this.addState(\n id2,\n type2,\n item2.doc,\n item2.description,\n item2.note,\n item2.classes,\n item2.styles,\n item2.textStyles\n );\n this.currentDocument.relations.push({\n id1,\n id2,\n relationTitle: common_default.sanitizeText(relationTitle, getConfig())\n });\n }\n /**\n * Add a relation between two items. The items may be full objects or just the string id of a state.\n */\n addRelation(item1, item2, title) {\n if (typeof item1 === \"object\" && typeof item2 === \"object\") {\n this.addRelationObjs(item1, item2, title);\n } else if (typeof item1 === \"string\" && typeof item2 === \"string\") {\n const id1 = this.startIdIfNeeded(item1.trim());\n const type1 = this.startTypeIfNeeded(item1);\n const id2 = this.endIdIfNeeded(item2.trim());\n const type2 = this.endTypeIfNeeded(item2);\n this.addState(id1, type1);\n this.addState(id2, type2);\n this.currentDocument.relations.push({\n id1,\n id2,\n relationTitle: title ? common_default.sanitizeText(title, getConfig()) : void 0\n });\n }\n }\n addDescription(id, descr) {\n const theState = this.currentDocument.states.get(id);\n const _descr = descr.startsWith(\":\") ? descr.replace(\":\", \"\").trim() : descr;\n theState?.descriptions?.push(common_default.sanitizeText(_descr, getConfig()));\n }\n cleanupLabel(label) {\n return label.startsWith(\":\") ? label.slice(2).trim() : label.trim();\n }\n getDividerId() {\n this.dividerCnt++;\n return `divider-id-${this.dividerCnt}`;\n }\n /**\n * Called when the parser comes across a (style) class definition\n * @example classDef my-style fill:#f96;\n *\n * @param id - the id of this (style) class\n * @param styleAttributes - the string with 1 or more style attributes (each separated by a comma)\n */\n addStyleClass(id, styleAttributes = \"\") {\n if (!this.classes.has(id)) {\n this.classes.set(id, { id, styles: [], textStyles: [] });\n }\n const foundClass = this.classes.get(id);\n if (styleAttributes && foundClass) {\n styleAttributes.split(CONSTANTS.STYLECLASS_SEP).forEach((attrib) => {\n const fixedAttrib = attrib.replace(/([^;]*);/, \"$1\").trim();\n if (RegExp(CONSTANTS.COLOR_KEYWORD).exec(attrib)) {\n const newStyle1 = fixedAttrib.replace(CONSTANTS.FILL_KEYWORD, CONSTANTS.BG_FILL);\n const newStyle2 = newStyle1.replace(CONSTANTS.COLOR_KEYWORD, CONSTANTS.FILL_KEYWORD);\n foundClass.textStyles.push(newStyle2);\n }\n foundClass.styles.push(fixedAttrib);\n });\n }\n }\n getClasses() {\n return this.classes;\n }\n /**\n * Add a (style) class or css class to a state with the given id.\n * If the state isn't already in the list of known states, add it.\n * Might be called by parser when a style class or CSS class should be applied to a state\n *\n * @param itemIds - The id or a list of ids of the item(s) to apply the css class to\n * @param cssClassName - CSS class name\n */\n setCssClass(itemIds, cssClassName) {\n itemIds.split(\",\").forEach((id) => {\n let foundState = this.getState(id);\n if (!foundState) {\n const trimmedId = id.trim();\n this.addState(trimmedId);\n foundState = this.getState(trimmedId);\n }\n foundState?.classes?.push(cssClassName);\n });\n }\n /**\n * Add a style to a state with the given id.\n * @example style stateId fill:#f9f,stroke:#333,stroke-width:4px\n * where 'style' is the keyword\n * stateId is the id of a state\n * the rest of the string is the styleText (all of the attributes to be applied to the state)\n *\n * @param itemId - The id of item to apply the style to\n * @param styleText - the text of the attributes for the style\n */\n setStyle(itemId, styleText) {\n this.getState(itemId)?.styles?.push(styleText);\n }\n /**\n * Add a text style to a state with the given id\n *\n * @param itemId - The id of item to apply the css class to\n * @param cssClassName - CSS class name\n */\n setTextStyle(itemId, cssClassName) {\n this.getState(itemId)?.textStyles?.push(cssClassName);\n }\n /**\n * Finds the direction statement in the root document.\n * @returns the direction statement if present\n */\n getDirectionStatement() {\n return this.rootDoc.find((doc) => doc.stmt === STMT_DIRECTION);\n }\n getDirection() {\n return this.getDirectionStatement()?.value ?? DEFAULT_DIAGRAM_DIRECTION;\n }\n setDirection(dir) {\n const doc = this.getDirectionStatement();\n if (doc) {\n doc.value = dir;\n } else {\n this.rootDoc.unshift({ stmt: STMT_DIRECTION, value: dir });\n }\n }\n trimColon(str) {\n return str.startsWith(\":\") ? str.slice(1).trim() : str.trim();\n }\n getData() {\n const config = getConfig();\n return {\n nodes: this.nodes,\n edges: this.edges,\n other: {},\n config,\n direction: getDir(this.getRootDocV2())\n };\n }\n getConfig() {\n return getConfig().state;\n }\n};\n\n// src/diagrams/state/styles.js\nvar getStyles = /* @__PURE__ */ __name((options) => `\ndefs #statediagram-barbEnd {\n fill: ${options.transitionColor};\n stroke: ${options.transitionColor};\n }\ng.stateGroup text {\n fill: ${options.nodeBorder};\n stroke: none;\n font-size: 10px;\n}\ng.stateGroup text {\n fill: ${options.textColor};\n stroke: none;\n font-size: 10px;\n\n}\ng.stateGroup .state-title {\n font-weight: bolder;\n fill: ${options.stateLabelColor};\n}\n\ng.stateGroup rect {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n}\n\ng.stateGroup line {\n stroke: ${options.lineColor};\n stroke-width: 1;\n}\n\n.transition {\n stroke: ${options.transitionColor};\n stroke-width: 1;\n fill: none;\n}\n\n.stateGroup .composit {\n fill: ${options.background};\n border-bottom: 1px\n}\n\n.stateGroup .alt-composit {\n fill: #e0e0e0;\n border-bottom: 1px\n}\n\n.state-note {\n stroke: ${options.noteBorderColor};\n fill: ${options.noteBkgColor};\n\n text {\n fill: ${options.noteTextColor};\n stroke: none;\n font-size: 10px;\n }\n}\n\n.stateLabel .box {\n stroke: none;\n stroke-width: 0;\n fill: ${options.mainBkg};\n opacity: 0.5;\n}\n\n.edgeLabel .label rect {\n fill: ${options.labelBackgroundColor};\n opacity: 0.5;\n}\n.edgeLabel {\n background-color: ${options.edgeLabelBackground};\n p {\n background-color: ${options.edgeLabelBackground};\n }\n rect {\n opacity: 0.5;\n background-color: ${options.edgeLabelBackground};\n fill: ${options.edgeLabelBackground};\n }\n text-align: center;\n}\n.edgeLabel .label text {\n fill: ${options.transitionLabelColor || options.tertiaryTextColor};\n}\n.label div .edgeLabel {\n color: ${options.transitionLabelColor || options.tertiaryTextColor};\n}\n\n.stateLabel text {\n fill: ${options.stateLabelColor};\n font-size: 10px;\n font-weight: bold;\n}\n\n.node circle.state-start {\n fill: ${options.specialStateColor};\n stroke: ${options.specialStateColor};\n}\n\n.node .fork-join {\n fill: ${options.specialStateColor};\n stroke: ${options.specialStateColor};\n}\n\n.node circle.state-end {\n fill: ${options.innerEndBackground};\n stroke: ${options.background};\n stroke-width: 1.5\n}\n.end-state-inner {\n fill: ${options.compositeBackground || options.background};\n // stroke: ${options.background};\n stroke-width: 1.5\n}\n\n.node rect {\n fill: ${options.stateBkg || options.mainBkg};\n stroke: ${options.stateBorder || options.nodeBorder};\n stroke-width: 1px;\n}\n.node polygon {\n fill: ${options.mainBkg};\n stroke: ${options.stateBorder || options.nodeBorder};;\n stroke-width: 1px;\n}\n#statediagram-barbEnd {\n fill: ${options.lineColor};\n}\n\n.statediagram-cluster rect {\n fill: ${options.compositeTitleBackground};\n stroke: ${options.stateBorder || options.nodeBorder};\n stroke-width: 1px;\n}\n\n.cluster-label, .nodeLabel {\n color: ${options.stateLabelColor};\n // line-height: 1;\n}\n\n.statediagram-cluster rect.outer {\n rx: 5px;\n ry: 5px;\n}\n.statediagram-state .divider {\n stroke: ${options.stateBorder || options.nodeBorder};\n}\n\n.statediagram-state .title-state {\n rx: 5px;\n ry: 5px;\n}\n.statediagram-cluster.statediagram-cluster .inner {\n fill: ${options.compositeBackground || options.background};\n}\n.statediagram-cluster.statediagram-cluster-alt .inner {\n fill: ${options.altBackground ? options.altBackground : \"#efefef\"};\n}\n\n.statediagram-cluster .inner {\n rx:0;\n ry:0;\n}\n\n.statediagram-state rect.basic {\n rx: 5px;\n ry: 5px;\n}\n.statediagram-state rect.divider {\n stroke-dasharray: 10,10;\n fill: ${options.altBackground ? options.altBackground : \"#efefef\"};\n}\n\n.note-edge {\n stroke-dasharray: 5;\n}\n\n.statediagram-note rect {\n fill: ${options.noteBkgColor};\n stroke: ${options.noteBorderColor};\n stroke-width: 1px;\n rx: 0;\n ry: 0;\n}\n.statediagram-note rect {\n fill: ${options.noteBkgColor};\n stroke: ${options.noteBorderColor};\n stroke-width: 1px;\n rx: 0;\n ry: 0;\n}\n\n.statediagram-note text {\n fill: ${options.noteTextColor};\n}\n\n.statediagram-note .nodeLabel {\n color: ${options.noteTextColor};\n}\n.statediagram .edgeLabel {\n color: red; // ${options.noteTextColor};\n}\n\n#dependencyStart, #dependencyEnd {\n fill: ${options.lineColor};\n stroke: ${options.lineColor};\n stroke-width: 1;\n}\n\n.statediagramTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${options.textColor};\n}\n`, \"getStyles\");\nvar styles_default = getStyles;\n\nexport {\n stateDiagram_default,\n stateRenderer_v3_unified_default,\n StateDB,\n styles_default\n};\n"],"names":["getDiagramElement","id","securityLevel","sandboxElement","nodes","contentDocument","body","select","setupViewPortForSVG","svg","padding","cssDiagram","useMaxWidth","attr","width","height","x","y","calculateDimensionsWithPadding","viewBox","createViewBox","debug","bounds","node","getBBox","parser","o","k","v","o2","l","length","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","$Vb","$Vc","$Vd","$Ve","$Vf","$Vg","$Vh","$Vi","$Vj","$Vk","$Vl","$Vm","$Vn","$Vo","$Vp","$Vq","$Vr","$Vs","$Vt","$Vu","parser2","trace","yy","symbols_","terminals_","productions_","performAction","yytext","yyleng","yylineno","yystate","$$","_$","$0","setRootDoc","this","$","push","stateStmt","description","trimColon","stmt","state1","state2","relDescription","type","doc","trim","match","parts","split","getDividerId","note","position","text","setAccTitle","setAccDescription","url","tooltip","classes","styleClass","setDirection","value","table","defaultActions","parseError","str","hash","recoverable","error","Error","parse","input","self","stack","tstack","vstack","lstack","recovering","args","slice","call","arguments","lexer2","Object","create","lexer","sharedState","prototype","hasOwnProperty","setInput","yylloc","yyloc","ranges","options","lex","token","pop","Array","getPrototypeOf","n","symbol","preErrorSymbol","state","action","r","p","len","newState","expected","yyval","errStr","showPosition","join","line","loc","first_line","last_line","first_column","last_column","range","apply","concat","EOF","_input","_more","_backtrack","done","matched","conditionStack","offset","ch","unput","lines","substr","oldLines","more","reject","backtrack_lexer","less","pastInput","past","replace","upcomingInput","next","pre","c","test_match","indexed_rule","backup","matches","tempMatch","index","rules","_currentRules","i","flex","begin","condition","popState","conditions","topState","Math","abs","pushState","stateStackSize","yy_","$avoiding_name_collisions","YY_START","Parser","stateDiagram_default","STMT_STATE","STMT_ROOT","STMT_RELATION","DEFAULT_STATE_TYPE","DIVIDER_TYPE","G_EDGE_STYLE","G_EDGE_ARROWHEADSTYLE","G_EDGE_LABELTYPE","G_EDGE_THICKNESS","SHAPE_STATE","SHAPE_STATE_WITH_DESC","SHAPE_DIVIDER","SHAPE_GROUP","CSS_DIAGRAM","CSS_DIAGRAM_STATE","CSS_EDGE","CSS_EDGE_NOTE_EDGE","CSS_DIAGRAM_NOTE","CSS_DIAGRAM_CLUSTER","CSS_DIAGRAM_CLUSTER_ALT","PARENT","NOTE","DOMID_TYPE_SPACER","NOTE_ID","PARENT_ID","getDir","parsedItem","defaultDir","dir","parsedItemDoc","stateRenderer_v3_unified_default","getClasses","diagramObj","db","draw","async","_version","diag","info","conf","layout","extract","getRootDocV2","data4Layout","getData","layoutAlgorithm","nodeSpacing","rankSpacing","markers","diagramId","getLinks","Map","forEach","linkInfo","key","stateId","warn","JSON","stringify","allNodes","querySelectorAll","matchedElem","g","text2","textContent","parent","parentNode","a","document","createElementNS","cleanedUrl","setAttributeNS","setAttribute","replaceChild","appendChild","err","insertTitle","titleTopMargin","getDiagramTitle","nodeDb","graphItemCount","stateDomId","itemId","counter","typeSpacer","setupDoc","parentParsedItem","diagramStates","edges","altFlag","look","item","dataFetcher","edgeData","start","end","arrowhead","arrowTypeEnd","style","labelStyle","label","sanitizeText","arrowheadStyle","labelpos","labelType","thickness","getDir2","insertOrUpdateNode","nodeData","cssClasses","isArray","cssCompiledStyles","cssClass","classDef","get","styles","existingNodeData","find","assign","getClassesFromDbInfo","dbInfoItem","getStylesFromDbInfo","dbState","classStr","config","shape","set","cssStyles","newNode","sanitizeTextOrArray","isGroup","domId","rx","ry","parentId","centerLabel","noteData","flowchart","parentNodeId","groupData","from","to","reset","clear","CONSTANTS","newClassesList","newDoc","relations","states","documents","clone","StateDB","constructor","version","rootDoc","root","currentDocument","startEndCount","dividerCnt","links","getAccTitle","getAccDescription","setDiagramTitle","bind","relationType","AGGREGATION","EXTENSION","COMPOSITION","DEPENDENCY","statements","addState","addRelation","addStyleClass","handleStyleDef","setCssClass","addLink","getStates","ids","getState","trimmedId","map","s","docTranslator","first","currentDoc","docNode","descr","textStyles","has","descriptions","des","addDescription","doc2","setStyle","textStyle","setTextStyle","saveCommon","logDocuments","getRelations","startIdIfNeeded","startTypeIfNeeded","endIdIfNeeded","endTypeIfNeeded","addRelationObjs","item1","item2","relationTitle","id1","type1","id2","type2","title","theState","_descr","startsWith","cleanupLabel","styleAttributes","foundClass","attrib","fixedAttrib","RegExp","exec","newStyle2","itemIds","cssClassName","foundState","styleText","getDirectionStatement","getDirection","unshift","other","direction","getConfig","styles_default","transitionColor","nodeBorder","textColor","stateLabelColor","mainBkg","lineColor","background","noteBorderColor","noteBkgColor","noteTextColor","labelBackgroundColor","edgeLabelBackground","transitionLabelColor","tertiaryTextColor","specialStateColor","innerEndBackground","compositeBackground","stateBkg","stateBorder","compositeTitleBackground","altBackground"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(globalThis.webpackChunk_next_bricks_markdown=globalThis.webpackChunk_next_bricks_markdown||[]).push([[8588],{3960:(e,t,a)=>{function l(e,t){e.accDescr&&t.setAccDescription?.(e.accDescr),e.accTitle&&t.setAccTitle?.(e.accTitle),e.title&&t.setDiagramTitle?.(e.title)}a.d(t,{S:()=>l}),(0,a(8084).K2)(l,"populateCommonDb")},5994:(e,t,a)=>{a.d(t,{P:()=>s});var l=a(8084),s=(0,l.K2)(((e,t,a,s)=>{e.attr("class",a);const{width:i,height:o,x:c,y:d}=r(e,t);(0,l.a$)(e,o,i,s);const p=n(c,d,i,o,t);e.attr("viewBox",p),l.Rm.debug(`viewBox configured: ${p} with padding: ${t}`)}),"setupViewPortForSVG"),r=(0,l.K2)(((e,t)=>{const a=e.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:a.width+2*t,height:a.height+2*t,x:a.x,y:a.y}}),"calculateDimensionsWithPadding"),n=(0,l.K2)(((e,t,a,l,s)=>`${e-s} ${t-s} ${a} ${l}`),"createViewBox")},8588:(e,t,a)=>{a.d(t,{diagram:()=>x});var l=a(5994),s=a(7996),r=a(3960),n=a(5323),i=a(5162),o=a(8084),c=a(3744),d=a(3213),p=class{constructor(){this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.setAccTitle=o.SV,this.getAccTitle=o.iN,this.setDiagramTitle=o.ke,this.getDiagramTitle=o.ab,this.getAccDescription=o.m7,this.setAccDescription=o.EI}static{(0,o.K2)(this,"TreeMapDB")}getNodes(){return this.nodes}getConfig(){const e=o.UI,t=(0,o.zj)();return(0,n.$t)({...e.treemap,...t.treemap??{}})}addNode(e,t){this.nodes.push(e),this.levels.set(e,t),0===t&&(this.outerNodes.push(e),this.root??=e)}getRoot(){return{name:"",children:this.outerNodes}}addClass(e,t){const a=this.classes.get(e)??{id:e,styles:[],textStyles:[]},l=t.replace(/\\,/g,"§§§").replace(/,/g,";").replace(/§§§/g,",").split(";");l&&l.forEach((e=>{(0,s.KX)(e)&&(a?.textStyles?a.textStyles.push(e):a.textStyles=[e]),a?.styles?a.styles.push(e):a.styles=[e]})),this.classes.set(e,a)}getClasses(){return this.classes}getStylesForClass(e){return this.classes.get(e)?.styles??[]}clear(){(0,o.IU)(),this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.root=void 0}};function h(e){if(!e.length)return[];const t=[],a=[];return e.forEach((e=>{const l={name:e.name,children:"Leaf"===e.type?void 0:[]};for(l.classSelector=e?.classSelector,e?.cssCompiledStyles&&(l.cssCompiledStyles=[e.cssCompiledStyles]),"Leaf"===e.type&&void 0!==e.value&&(l.value=e.value);a.length>0&&a[a.length-1].level>=e.level;)a.pop();if(0===a.length)t.push(l);else{const e=a[a.length-1].node;e.children?e.children.push(l):e.children=[l]}"Leaf"!==e.type&&a.push({node:l,level:e.level})})),t}(0,o.K2)(h,"buildHierarchy");var m=(0,o.K2)(((e,t)=>{(0,r.S)(e,t);const a=[];for(const a of e.TreemapRows??[])"ClassDefStatement"===a.$type&&t.addClass(a.className??"",a.styleText??"");for(const l of e.TreemapRows??[]){const e=l.item;if(!e)continue;const s=l.indent?parseInt(l.indent):0,r=y(e),n=e.classSelector?t.getStylesForClass(e.classSelector):[],i=n.length>0?n.join(";"):void 0,o={level:s,name:r,type:e.$type,value:e.value,classSelector:e.classSelector,cssCompiledStyles:i};a.push(o)}const l=h(a),s=(0,o.K2)(((e,a)=>{for(const l of e)t.addNode(l,a),l.children&&l.children.length>0&&s(l.children,a+1)}),"addNodesRecursively");s(l,0)}),"populate"),y=(0,o.K2)((e=>e.name?String(e.name):""),"getItemName"),u={parser:{yy:void 0},parse:(0,o.K2)((async e=>{try{const t=c.qg,a=await t("treemap",e);o.Rm.debug("Treemap AST:",a);const l=u.parser?.yy;if(!(l instanceof p))throw new Error("parser.parser?.yy was not a TreemapDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");m(a,l)}catch(e){throw o.Rm.error("Error parsing treemap:",e),e}}),"parse")},f={draw:(0,o.K2)(((e,t,a,r)=>{const n=r.db,c=n.getConfig(),p=c.padding??10,h=n.getDiagramTitle(),m=n.getRoot(),{themeVariables:y}=(0,o.zj)();if(!m)return;const u=h?30:0,f=(0,i.D)(t),g=c.nodeWidth?10*c.nodeWidth:960,S=c.nodeHeight?10*c.nodeHeight:500,x=g,b=S+u;let v;f.attr("viewBox",`0 0 ${x} ${b}`),(0,o.a$)(f,b,x,c.useMaxWidth);try{const e=c.valueFormat||",";if("$0,0"===e)v=(0,o.K2)((e=>"$"+(0,d.GPZ)(",")(e)),"valueFormat");else if(e.startsWith("$")&&e.includes(",")){const t=/\.\d+/.exec(e),a=t?t[0]:"";v=(0,o.K2)((e=>"$"+(0,d.GPZ)(","+a)(e)),"valueFormat")}else if(e.startsWith("$")){const t=e.substring(1);v=(0,o.K2)((e=>"$"+(0,d.GPZ)(t||"")(e)),"valueFormat")}else v=(0,d.GPZ)(e)}catch(e){o.Rm.error("Error creating format function:",e),v=(0,d.GPZ)(",")}const $=(0,d.UMr)().range(["transparent",y.cScale0,y.cScale1,y.cScale2,y.cScale3,y.cScale4,y.cScale5,y.cScale6,y.cScale7,y.cScale8,y.cScale9,y.cScale10,y.cScale11]),w=(0,d.UMr)().range(["transparent",y.cScalePeer0,y.cScalePeer1,y.cScalePeer2,y.cScalePeer3,y.cScalePeer4,y.cScalePeer5,y.cScalePeer6,y.cScalePeer7,y.cScalePeer8,y.cScalePeer9,y.cScalePeer10,y.cScalePeer11]),C=(0,d.UMr)().range([y.cScaleLabel0,y.cScaleLabel1,y.cScaleLabel2,y.cScaleLabel3,y.cScaleLabel4,y.cScaleLabel5,y.cScaleLabel6,y.cScaleLabel7,y.cScaleLabel8,y.cScaleLabel9,y.cScaleLabel10,y.cScaleLabel11]);h&&f.append("text").attr("x",x/2).attr("y",u/2).attr("class","treemapTitle").attr("text-anchor","middle").attr("dominant-baseline","middle").text(h);const k=f.append("g").attr("transform",`translate(0, ${u})`).attr("class","treemapContainer"),L=(0,d.Sk5)(m).sum((e=>e.value??0)).sort(((e,t)=>(t.value??0)-(e.value??0))),T=(0,d.hkb)().size([g,S]).paddingTop((e=>e.children&&e.children.length>0?35:0)).paddingInner(p).paddingLeft((e=>e.children&&e.children.length>0?10:0)).paddingRight((e=>e.children&&e.children.length>0?10:0)).paddingBottom((e=>e.children&&e.children.length>0?10:0)).round(!0)(L),M=T.descendants().filter((e=>e.children&&e.children.length>0)),P=k.selectAll(".treemapSection").data(M).enter().append("g").attr("class","treemapSection").attr("transform",(e=>`translate(${e.x0},${e.y0})`));P.append("rect").attr("width",(e=>e.x1-e.x0)).attr("height",25).attr("class","treemapSectionHeader").attr("fill","none").attr("fill-opacity",.6).attr("stroke-width",.6).attr("style",(e=>0===e.depth?"display: none;":"")),P.append("clipPath").attr("id",((e,a)=>`clip-section-${t}-${a}`)).append("rect").attr("width",(e=>Math.max(0,e.x1-e.x0-12))).attr("height",25),P.append("rect").attr("width",(e=>e.x1-e.x0)).attr("height",(e=>e.y1-e.y0)).attr("class",((e,t)=>`treemapSection section${t}`)).attr("fill",(e=>$(e.data.name))).attr("fill-opacity",.6).attr("stroke",(e=>w(e.data.name))).attr("stroke-width",2).attr("stroke-opacity",.4).attr("style",(e=>{if(0===e.depth)return"display: none;";const t=(0,s.GX)({cssCompiledStyles:e.data.cssCompiledStyles});return t.nodeStyles+";"+t.borderStyles.join(";")})),P.append("text").attr("class","treemapSectionLabel").attr("x",6).attr("y",12.5).attr("dominant-baseline","middle").text((e=>0===e.depth?"":e.data.name)).attr("font-weight","bold").attr("style",(e=>0===e.depth?"display: none;":"dominant-baseline: middle; font-size: 12px; fill:"+C(e.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;"+(0,s.GX)({cssCompiledStyles:e.data.cssCompiledStyles}).labelStyles.replace("color:","fill:"))).each((function(e){if(0===e.depth)return;const t=(0,d.Ltv)(this),a=e.data.name;t.text(a);const l=e.x1-e.x0;let s;s=!1!==c.showValues&&e.value?l-10-30-10-6:l-6-6;const r=Math.max(15,s),n=t.node();if(n.getComputedTextLength()>r){const e="...";let l=a;for(;l.length>0;){if(l=a.substring(0,l.length-1),0===l.length){t.text(e),n.getComputedTextLength()>r&&t.text("");break}if(t.text(l+e),n.getComputedTextLength()<=r)break}}})),!1!==c.showValues&&P.append("text").attr("class","treemapSectionValue").attr("x",(e=>e.x1-e.x0-10)).attr("y",12.5).attr("text-anchor","end").attr("dominant-baseline","middle").text((e=>e.value?v(e.value):"")).attr("font-style","italic").attr("style",(e=>0===e.depth?"display: none;":"text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:"+C(e.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;"+(0,s.GX)({cssCompiledStyles:e.data.cssCompiledStyles}).labelStyles.replace("color:","fill:")));const z=T.leaves(),F=k.selectAll(".treemapLeafGroup").data(z).enter().append("g").attr("class",((e,t)=>`treemapNode treemapLeafGroup leaf${t}${e.data.classSelector?` ${e.data.classSelector}`:""}x`)).attr("transform",(e=>`translate(${e.x0},${e.y0})`));F.append("rect").attr("width",(e=>e.x1-e.x0)).attr("height",(e=>e.y1-e.y0)).attr("class","treemapLeaf").attr("fill",(e=>e.parent?$(e.parent.data.name):$(e.data.name))).attr("style",(e=>(0,s.GX)({cssCompiledStyles:e.data.cssCompiledStyles}).nodeStyles)).attr("fill-opacity",.3).attr("stroke",(e=>e.parent?$(e.parent.data.name):$(e.data.name))).attr("stroke-width",3),F.append("clipPath").attr("id",((e,a)=>`clip-${t}-${a}`)).append("rect").attr("width",(e=>Math.max(0,e.x1-e.x0-4))).attr("height",(e=>Math.max(0,e.y1-e.y0-4))),F.append("text").attr("class","treemapLabel").attr("x",(e=>(e.x1-e.x0)/2)).attr("y",(e=>(e.y1-e.y0)/2)).attr("style",(e=>"text-anchor: middle; dominant-baseline: middle; font-size: 38px;fill:"+C(e.data.name)+";"+(0,s.GX)({cssCompiledStyles:e.data.cssCompiledStyles}).labelStyles.replace("color:","fill:"))).attr("clip-path",((e,a)=>`url(#clip-${t}-${a})`)).text((e=>e.data.name)).each((function(e){const t=(0,d.Ltv)(this),a=e.x1-e.x0,l=e.y1-e.y0,s=t.node(),r=a-8,n=l-8;if(r<10||n<10)return void t.style("display","none");let i=parseInt(t.style("font-size"),10);for(;s.getComputedTextLength()>r&&i>8;)i--,t.style("font-size",`${i}px`);let o=Math.max(6,Math.min(28,Math.round(.6*i))),c=i+2+o;for(;c>n&&i>8&&(i--,o=Math.max(6,Math.min(28,Math.round(.6*i))),!(o<6&&8===i));)t.style("font-size",`${i}px`),c=i+2+o;t.style("font-size",`${i}px`),(s.getComputedTextLength()>r||i<8||n<i)&&t.style("display","none")})),!1!==c.showValues&&F.append("text").attr("class","treemapValue").attr("x",(e=>(e.x1-e.x0)/2)).attr("y",(function(e){return(e.y1-e.y0)/2})).attr("style",(e=>"text-anchor: middle; dominant-baseline: hanging; font-size: 28px;fill:"+C(e.data.name)+";"+(0,s.GX)({cssCompiledStyles:e.data.cssCompiledStyles}).labelStyles.replace("color:","fill:"))).attr("clip-path",((e,a)=>`url(#clip-${t}-${a})`)).text((e=>e.value?v(e.value):"")).each((function(e){const t=(0,d.Ltv)(this),a=this.parentNode;if(!a)return void t.style("display","none");const l=(0,d.Ltv)(a).select(".treemapLabel");if(l.empty()||"none"===l.style("display"))return void t.style("display","none");const s=parseFloat(l.style("font-size")),r=Math.max(6,Math.min(28,Math.round(.6*s)));t.style("font-size",`${r}px`);const n=(e.y1-e.y0)/2+s/2+2;t.attr("y",n);const i=e.x1-e.x0,o=e.y1-e.y0-4,c=i-8;t.node().getComputedTextLength()>c||n+r>o||r<6?t.style("display","none"):t.style("display",null)}));const K=c.diagramPadding??8;(0,l.P)(f,K,"flowchart",c?.useMaxWidth||!1)}),"draw"),getClasses:(0,o.K2)((function(e,t){return t.db.getClasses()}),"getClasses")},g={sectionStrokeColor:"black",sectionStrokeWidth:"1",sectionFillColor:"#efefef",leafStrokeColor:"black",leafStrokeWidth:"1",leafFillColor:"#efefef",labelColor:"black",labelFontSize:"12px",valueFontSize:"10px",valueColor:"black",titleColor:"black",titleFontSize:"14px"},S=(0,o.K2)((({treemap:e}={})=>{const t=(0,n.$t)(g,e);return`\n .treemapNode.section {\n stroke: ${t.sectionStrokeColor};\n stroke-width: ${t.sectionStrokeWidth};\n fill: ${t.sectionFillColor};\n }\n .treemapNode.leaf {\n stroke: ${t.leafStrokeColor};\n stroke-width: ${t.leafStrokeWidth};\n fill: ${t.leafFillColor};\n }\n .treemapLabel {\n fill: ${t.labelColor};\n font-size: ${t.labelFontSize};\n }\n .treemapValue {\n fill: ${t.valueColor};\n font-size: ${t.valueFontSize};\n }\n .treemapTitle {\n fill: ${t.titleColor};\n font-size: ${t.titleFontSize};\n }\n `}),"getStyles"),x={parser:u,get db(){return new p},renderer:f,styles:S}}}]);
|
|
2
|
+
//# sourceMappingURL=8588.40a68a26.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunks/8588.40a68a26.js","mappings":"0IAKA,SAASA,EAAiBC,EAAKC,GACzBD,EAAIE,UACND,EAAGE,oBAAoBH,EAAIE,UAEzBF,EAAII,UACNH,EAAGI,cAAcL,EAAII,UAEnBJ,EAAIM,OACNL,EAAGM,kBAAkBP,EAAIM,MAE7B,C,kBACA,E,QAAA,IAAOP,EAAkB,mB,gDCTrBS,GAAsC,SAAO,CAACC,EAAKC,EAASC,EAAYC,KAC1EH,EAAII,KAAK,QAASF,GAClB,MAAM,MAAEG,EAAK,OAAEC,EAAM,EAAEC,EAAC,EAAEC,GAAMC,EAA+BT,EAAKC,IACpE,QAAiBD,EAAKM,EAAQD,EAAOF,GACrC,MAAMO,EAAUC,EAAcJ,EAAGC,EAAGH,EAAOC,EAAQL,GACnDD,EAAII,KAAK,UAAWM,GACpB,KAAIE,MAAM,uBAAuBF,mBAAyBT,IAAU,GACnE,uBACCQ,GAAiD,SAAO,CAACT,EAAKC,KAChE,MAAMY,EAASb,EAAIc,QAAQC,WAAa,CAAEV,MAAO,EAAGC,OAAQ,EAAGC,EAAG,EAAGC,EAAG,GACxE,MAAO,CACLH,MAAOQ,EAAOR,MAAkB,EAAVJ,EACtBK,OAAQO,EAAOP,OAAmB,EAAVL,EACxBM,EAAGM,EAAON,EACVC,EAAGK,EAAOL,EACX,GACA,kCACCG,GAAgC,SAAO,CAACJ,EAAGC,EAAGH,EAAOC,EAAQL,IACxD,GAAGM,EAAIN,KAAWO,EAAIP,KAAWI,KAASC,KAChD,gB,4HCMCU,EAAY,MACd,WAAAC,GACEC,KAAKC,MAAQ,GACbD,KAAKE,OAAyB,IAAIC,IAClCH,KAAKI,WAAa,GAClBJ,KAAKK,QAA0B,IAAIF,IACnCH,KAAKtB,YAAc,KACnBsB,KAAKM,YAAc,KACnBN,KAAKpB,gBAAkB,KACvBoB,KAAKO,gBAAkB,KACvBP,KAAKQ,kBAAoB,KACzBR,KAAKxB,kBAAoB,IAC3B,SAEE,QAAOwB,KAAM,YACf,CACA,QAAAS,GACE,OAAOT,KAAKC,KACd,CACA,SAAAS,GACE,MAAMC,EAAgB,KAChBC,GAAa,UACnB,OAAO,QAAc,IAChBD,EAAcE,WACdD,EAAWC,SAAW,CAAC,GAE9B,CACA,OAAAC,CAAQlB,EAAMmB,GACZf,KAAKC,MAAMe,KAAKpB,GAChBI,KAAKE,OAAOe,IAAIrB,EAAMmB,GACR,IAAVA,IACFf,KAAKI,WAAWY,KAAKpB,GACrBI,KAAKkB,OAAStB,EAElB,CACA,OAAAuB,GACE,MAAO,CAAEC,KAAM,GAAIC,SAAUrB,KAAKI,WACpC,CACA,QAAAkB,CAASC,EAAIC,GACX,MAAMC,EAAazB,KAAKK,QAAQqB,IAAIH,IAAO,CAAEA,KAAII,OAAQ,GAAIC,WAAY,IACnED,EAASH,EAAOK,QAAQ,OAAQ,OAAgBA,QAAQ,KAAM,KAAKA,QAAQ,OAAQ,KAAKC,MAAM,KAChGH,GACFA,EAAOI,SAASC,KACV,QAAaA,KACXP,GAAYG,WACdH,EAAWG,WAAWZ,KAAKgB,GAE3BP,EAAWG,WAAa,CAACI,IAGzBP,GAAYE,OACdF,EAAWE,OAAOX,KAAKgB,GAEvBP,EAAWE,OAAS,CAACK,EACvB,IAGJhC,KAAKK,QAAQY,IAAIM,EAAIE,EACvB,CACA,UAAAQ,GACE,OAAOjC,KAAKK,OACd,CACA,iBAAA6B,CAAkBC,GAChB,OAAOnC,KAAKK,QAAQqB,IAAIS,IAAgBR,QAAU,EACpD,CACA,KAAAS,IACE,UACApC,KAAKC,MAAQ,GACbD,KAAKE,OAAyB,IAAIC,IAClCH,KAAKI,WAAa,GAClBJ,KAAKK,QAA0B,IAAIF,IACnCH,KAAKkB,UAAO,CACd,GAOF,SAASmB,EAAeC,GACtB,IAAKA,EAAMC,OACT,MAAO,GAET,MAAMrB,EAAO,GACPsB,EAAQ,GA8Bd,OA7BAF,EAAMP,SAASU,IACb,MAAM7C,EAAO,CACXwB,KAAMqB,EAAKrB,KACXC,SAAwB,SAAdoB,EAAKC,UAAkB,EAAS,IAS5C,IAPA9C,EAAKuC,cAAgBM,GAAMN,cACvBM,GAAME,oBACR/C,EAAK+C,kBAAoB,CAACF,EAAKE,oBAEf,SAAdF,EAAKC,WAAkC,IAAfD,EAAKG,QAC/BhD,EAAKgD,MAAQH,EAAKG,OAEbJ,EAAMD,OAAS,GAAKC,EAAMA,EAAMD,OAAS,GAAGxB,OAAS0B,EAAK1B,OAC/DyB,EAAMK,MAER,GAAqB,IAAjBL,EAAMD,OACRrB,EAAKF,KAAKpB,OACL,CACL,MAAMkD,EAASN,EAAMA,EAAMD,OAAS,GAAG3C,KACnCkD,EAAOzB,SACTyB,EAAOzB,SAASL,KAAKpB,GAErBkD,EAAOzB,SAAW,CAACzB,EAEvB,CACkB,SAAd6C,EAAKC,MACPF,EAAMxB,KAAK,CAAEpB,OAAMmB,MAAO0B,EAAK1B,OACjC,IAEKG,CACT,EACA,QAAOmB,EAAgB,kBAGvB,IAAIU,GAA2B,SAAO,CAAC1E,EAAKC,MAC1C,OAAiBD,EAAKC,GACtB,MAAMgE,EAAQ,GACd,IAAK,MAAMU,KAAO3E,EAAI4E,aAAe,GACjB,sBAAdD,EAAIE,OACN5E,EAAGgD,SAAS0B,EAAIG,WAAa,GAAIH,EAAII,WAAa,IAGtD,IAAK,MAAMJ,KAAO3E,EAAI4E,aAAe,GAAI,CACvC,MAAMR,EAAOO,EAAIP,KACjB,IAAKA,EACH,SAEF,MAAM1B,EAAQiC,EAAIK,OAASC,SAASN,EAAIK,QAAU,EAC5CjC,EAAOmC,EAAYd,GACnBd,EAASc,EAAKN,cAAgB7D,EAAG4D,kBAAkBO,EAAKN,eAAiB,GACzEQ,EAAoBhB,EAAOY,OAAS,EAAIZ,EAAO6B,KAAK,UAAO,EAC3DC,EAAW,CACf1C,QACAK,OACAsB,KAAMD,EAAKS,MACXN,MAAOH,EAAKG,MACZT,cAAeM,EAAKN,cACpBQ,qBAEFL,EAAMtB,KAAKyC,EACb,CACA,MAAMC,EAAiBrB,EAAeC,GAChCqB,GAAsC,SAAO,CAAC1D,EAAOc,KACzD,IAAK,MAAMnB,KAAQK,EACjB3B,EAAGwC,QAAQlB,EAAMmB,GACbnB,EAAKyB,UAAYzB,EAAKyB,SAASkB,OAAS,GAC1CoB,EAAoB/D,EAAKyB,SAAUN,EAAQ,EAE/C,GACC,uBACH4C,EAAoBD,EAAgB,EAAE,GACrC,YACCH,GAA8B,SAAQd,GACjCA,EAAKrB,KAAOwC,OAAOnB,EAAKrB,MAAQ,IACtC,eACCyC,EAAS,CAEXA,OAAQ,CAAEC,QAAI,GACdC,OAAuB,SAAOC,MAAOC,IACnC,IACE,MAAMC,EAAY,KACZ7F,QAAY6F,EAAU,UAAWD,GACvC,KAAIvE,MAAM,eAAgBrB,GAC1B,MAAMC,EAAKuF,EAAOA,QAAQC,GAC1B,KAAMxF,aAAcwB,GAClB,MAAM,IAAIqE,MACR,yJAGJpB,EAAS1E,EAAKC,EAChB,CAAE,MAAO8F,GAEP,MADA,KAAIA,MAAM,yBAA0BA,GAC9BA,CACR,IACC,UAmSDC,EAAW,CAAEC,MA3RU,SAAO,CAACC,EAAOhD,EAAIiD,EAAUC,KACtD,MAAMC,EAAYD,EAASnG,GACrBqG,EAASD,EAAUhE,YACnBkE,EAAsBD,EAAO5F,SANT,GAOpBJ,EAAQ+F,EAAUnE,kBAClBW,EAAOwD,EAAUvD,WACjB,eAAE0D,IAAmB,UAC3B,IAAK3D,EACH,OAEF,MAAM4D,EAAcnG,EAAQ,GAAK,EAC3BG,GAAM,OAAiByC,GACvBpC,EAAQwF,EAAOI,UAdK,GAcOJ,EAAOI,UAAoC,IACtE3F,EAASuF,EAAOK,WAfI,GAeSL,EAAOK,WAAqC,IACzEC,EAAW9F,EACX+F,EAAY9F,EAAS0F,EAG3B,IAAIK,EAFJrG,EAAII,KAAK,UAAW,OAAO+F,KAAYC,MACvC,QAAiBpG,EAAKoG,EAAWD,EAAUN,EAAO1F,aAElD,IACE,MAAMmG,EAAYT,EAAOQ,aAAe,IACxC,GAAkB,SAAdC,EACFD,GAA8B,SAAQvC,GAAU,KAAM,SAAO,IAAP,CAAYA,IAAQ,oBACrE,GAAIwC,EAAUC,WAAW,MAAQD,EAAUE,SAAS,KAAM,CAC/D,MAAMC,EAAY,QAAQC,KAAKJ,GACzBK,EAAeF,EAAYA,EAAU,GAAK,GAChDJ,GAA8B,SAAQvC,GAAU,KAAM,SAAO,IAAM6C,EAAb,CAA2B7C,IAAQ,cAC3F,MAAO,GAAIwC,EAAUC,WAAW,KAAM,CACpC,MAAMK,EAAeN,EAAUO,UAAU,GACzCR,GAA8B,SAAQvC,GAAU,KAAM,SAAO8C,GAAgB,GAAvB,CAA2B9C,IAAQ,cAC3F,MACEuC,GAAc,SAAOC,EAEzB,CAAE,MAAOhB,GACP,KAAIA,MAAM,kCAAmCA,GAC7Ce,GAAc,SAAO,IACvB,CACA,MAAMS,GAAa,WAAeC,MAAM,CACtC,cACAhB,EAAeiB,QACfjB,EAAekB,QACflB,EAAemB,QACfnB,EAAeoB,QACfpB,EAAeqB,QACfrB,EAAesB,QACftB,EAAeuB,QACfvB,EAAewB,QACfxB,EAAeyB,QACfzB,EAAe0B,QACf1B,EAAe2B,SACf3B,EAAe4B,WAEXC,GAAiB,WAAeb,MAAM,CAC1C,cACAhB,EAAe8B,YACf9B,EAAe+B,YACf/B,EAAegC,YACfhC,EAAeiC,YACfjC,EAAekC,YACflC,EAAemC,YACfnC,EAAeoC,YACfpC,EAAeqC,YACfrC,EAAesC,YACftC,EAAeuC,YACfvC,EAAewC,aACfxC,EAAeyC,eAEXC,GAAkB,WAAe1B,MAAM,CAC3ChB,EAAe2C,aACf3C,EAAe4C,aACf5C,EAAe6C,aACf7C,EAAe8C,aACf9C,EAAe+C,aACf/C,EAAegD,aACfhD,EAAeiD,aACfjD,EAAekD,aACflD,EAAemD,aACfnD,EAAeoD,aACfpD,EAAeqD,cACfrD,EAAesD,gBAEbxJ,GACFG,EAAIsJ,OAAO,QAAQlJ,KAAK,IAAK+F,EAAW,GAAG/F,KAAK,IAAK4F,EAAc,GAAG5F,KAAK,QAAS,gBAAgBA,KAAK,cAAe,UAAUA,KAAK,oBAAqB,UAAU+E,KAAKtF,GAE7K,MAAM0J,EAAIvJ,EAAIsJ,OAAO,KAAKlJ,KAAK,YAAa,gBAAgB4F,MAAgB5F,KAAK,QAAS,oBACpFoJ,GAAgB,SAAUpH,GAAMqH,KAAKC,GAAMA,EAAE5F,OAAS,IAAG6F,MAAK,CAACC,EAAGC,KAAOA,EAAE/F,OAAS,IAAM8F,EAAE9F,OAAS,KAIrGgG,GAHgB,WAAUC,KAAK,CAAC1J,EAAOC,IAAS0J,YACnDN,GAAMA,EAAEnH,UAAYmH,EAAEnH,SAASkB,OAAS,EAAIwG,GAAgD,IAC7FC,aAAapE,GAAqBqE,aAAaT,GAAMA,EAAEnH,UAAYmH,EAAEnH,SAASkB,OAAS,EA1F/D,GA0F2F,IAAG2G,cAAcV,GAAMA,EAAEnH,UAAYmH,EAAEnH,SAASkB,OAAS,EA1FpJ,GA0FgL,IAAG4G,eAAeX,GAAMA,EAAEnH,UAAYmH,EAAEnH,SAASkB,OAAS,EA1F1O,GA0FsQ,IAAG6G,OAAM,EACrRC,CAAcf,GAC5BgB,EAAcV,EAAYW,cAAcC,QAAQhB,GAAMA,EAAEnH,UAAYmH,EAAEnH,SAASkB,OAAS,IACxFkH,EAAWpB,EAAEqB,UAAU,mBAAmBC,KAAKL,GAAaM,QAAQxB,OAAO,KAAKlJ,KAAK,QAAS,kBAAkBA,KAAK,aAAcsJ,GAAM,aAAaA,EAAEqB,MAAMrB,EAAEsB,QACtKL,EAASrB,OAAO,QAAQlJ,KAAK,SAAUsJ,GAAMA,EAAEuB,GAAKvB,EAAEqB,KAAI3K,KAAK,SA7FrC,IA6FsEA,KAAK,QAAS,wBAAwBA,KAAK,OAAQ,QAAQA,KAAK,eAAgB,IAAKA,KAAK,eAAgB,IAAKA,KAAK,SAAUsJ,GAC5M,IAAZA,EAAEwB,MACG,iBAEF,KAETP,EAASrB,OAAO,YAAYlJ,KAAK,MAAM,CAAC+K,EAAIC,IAAM,gBAAgB3I,KAAM2I,MAAK9B,OAAO,QAAQlJ,KAAK,SAAUsJ,GAAM2B,KAAKC,IAAI,EAAG5B,EAAEuB,GAAKvB,EAAEqB,GAAK,MAAK3K,KAAK,SAnG3H,IAoG1BuK,EAASrB,OAAO,QAAQlJ,KAAK,SAAUsJ,GAAMA,EAAEuB,GAAKvB,EAAEqB,KAAI3K,KAAK,UAAWsJ,GAAMA,EAAE6B,GAAK7B,EAAEsB,KAAI5K,KAAK,SAAS,CAAC+K,EAAIC,IACvG,yBAAyBA,MAC/BhL,KAAK,QAASsJ,GAAM5C,EAAW4C,EAAEmB,KAAKvI,QAAOlC,KAAK,eAAgB,IAAKA,KAAK,UAAWsJ,GAAM9B,EAAe8B,EAAEmB,KAAKvI,QAAOlC,KAAK,eAAgB,GAAGA,KAAK,iBAAkB,IAAKA,KAAK,SAAUsJ,IAC9L,GAAgB,IAAZA,EAAEwB,MACJ,MAAO,iBAET,MAAMrI,GAAS,QAAc,CAAEgB,kBAAmB6F,EAAEmB,KAAKhH,oBACzD,OAAOhB,EAAO2I,WAAa,IAAM3I,EAAO4I,aAAa/G,KAAK,IAAI,IAEhEiG,EAASrB,OAAO,QAAQlJ,KAAK,QAAS,uBAAuBA,KAAK,IAAK,GAAGA,KAAK,IAAK6J,MAA2B7J,KAAK,oBAAqB,UAAU+E,MAAMuE,GAAkB,IAAZA,EAAEwB,MAAc,GAAKxB,EAAEmB,KAAKvI,OAAMlC,KAAK,cAAe,QAAQA,KAAK,SAAUsJ,GAC1N,IAAZA,EAAEwB,MACG,iBAEW,oDAAsDzC,EAAgBiB,EAAEmB,KAAKvI,MAAQ,qEAC1F,QAAc,CAAEuB,kBAAmB6F,EAAEmB,KAAKhH,oBAC7B6H,YAAY3I,QAAQ,SAAU,WACzD4I,MAAK,SAASjC,GACf,GAAgB,IAAZA,EAAEwB,MACJ,OAEF,MAAMU,GAAO,SAAO1K,MACd2K,EAAenC,EAAEmB,KAAKvI,KAC5BsJ,EAAKzG,KAAK0G,GACV,MAAMC,EAAmBpC,EAAEuB,GAAKvB,EAAEqB,GAElC,IAAIgB,EAMFA,GALwB,IAAtBlG,EAAOmG,YAAwBtC,EAAE5F,MACNgI,EAAmB,GACV,GACN,GALX,EAUCA,EAVD,EASQ,EAG/B,MACMG,EAAuBZ,KAAKC,IADJ,GAC+BS,GACvDG,EAAWN,EAAK9K,OAEtB,GADiCoL,EAASC,wBACXF,EAAsB,CACnD,MAAMG,EAAW,MACjB,IAAIC,EAAuBR,EAC3B,KAAOQ,EAAqB5I,OAAS,GAAG,CAEtC,GADA4I,EAAuBR,EAAahF,UAAU,EAAGwF,EAAqB5I,OAAS,GAC3C,IAAhC4I,EAAqB5I,OAAc,CACrCmI,EAAKzG,KAAKiH,GACNF,EAASC,wBAA0BF,GACrCL,EAAKzG,KAAK,IAEZ,KACF,CAEA,GADAyG,EAAKzG,KAAKkH,EAAuBD,GAC7BF,EAASC,yBAA2BF,EACtC,KAEJ,CACF,CACF,KAC0B,IAAtBpG,EAAOmG,YACTrB,EAASrB,OAAO,QAAQlJ,KAAK,QAAS,uBAAuBA,KAAK,KAAMsJ,GAAMA,EAAEuB,GAAKvB,EAAEqB,GAAK,KAAI3K,KAAK,IAAK6J,MAA2B7J,KAAK,cAAe,OAAOA,KAAK,oBAAqB,UAAU+E,MAAMuE,GAAMA,EAAE5F,MAAQuC,EAAYqD,EAAE5F,OAAS,KAAI1D,KAAK,aAAc,UAAUA,KAAK,SAAUsJ,GAC/Q,IAAZA,EAAEwB,MACG,iBAEW,sEAAwEzC,EAAgBiB,EAAEmB,KAAKvI,MAAQ,qEAC5G,QAAc,CAAEuB,kBAAmB6F,EAAEmB,KAAKhH,oBAC7B6H,YAAY3I,QAAQ,SAAU,WAG9D,MAAMuJ,EAAYxC,EAAYyC,SACxBC,EAAOjD,EAAEqB,UAAU,qBAAqBC,KAAKyB,GAAWxB,QAAQxB,OAAO,KAAKlJ,KAAK,SAAS,CAACsJ,EAAG0B,IAC3F,oCAAoCA,IAAI1B,EAAEmB,KAAKxH,cAAgB,IAAIqG,EAAEmB,KAAKxH,gBAAkB,QAClGjD,KAAK,aAAcsJ,GAAM,aAAaA,EAAEqB,MAAMrB,EAAEsB,QACnDwB,EAAKlD,OAAO,QAAQlJ,KAAK,SAAUsJ,GAAMA,EAAEuB,GAAKvB,EAAEqB,KAAI3K,KAAK,UAAWsJ,GAAMA,EAAE6B,GAAK7B,EAAEsB,KAAI5K,KAAK,QAAS,eAAeA,KAAK,QAASsJ,GAC3HA,EAAE1F,OAAS8C,EAAW4C,EAAE1F,OAAO6G,KAAKvI,MAAQwE,EAAW4C,EAAEmB,KAAKvI,QACpElC,KAAK,SAAUsJ,IACD,QAAc,CAAE7F,kBAAmB6F,EAAEmB,KAAKhH,oBAC3C2H,aACbpL,KAAK,eAAgB,IAAKA,KAAK,UAAWsJ,GACpCA,EAAE1F,OAAS8C,EAAW4C,EAAE1F,OAAO6G,KAAKvI,MAAQwE,EAAW4C,EAAEmB,KAAKvI,QACpElC,KAAK,eAAgB,GACxBoM,EAAKlD,OAAO,YAAYlJ,KAAK,MAAM,CAAC+K,EAAIC,IAAM,QAAQ3I,KAAM2I,MAAK9B,OAAO,QAAQlJ,KAAK,SAAUsJ,GAAM2B,KAAKC,IAAI,EAAG5B,EAAEuB,GAAKvB,EAAEqB,GAAK,KAAI3K,KAAK,UAAWsJ,GAAM2B,KAAKC,IAAI,EAAG5B,EAAE6B,GAAK7B,EAAEsB,GAAK,KAChKwB,EAAKlD,OAAO,QAAQlJ,KAAK,QAAS,gBAAgBA,KAAK,KAAMsJ,IAAOA,EAAEuB,GAAKvB,EAAEqB,IAAM,IAAG3K,KAAK,KAAMsJ,IAAOA,EAAE6B,GAAK7B,EAAEsB,IAAM,IAAG5K,KAAK,SAAUsJ,GACtI,wEAA0EjB,EAAgBiB,EAAEmB,KAAKvI,MAAQ,KAC9G,QAAc,CAAEuB,kBAAmB6F,EAAEmB,KAAKhH,oBAC7B6H,YAAY3I,QAAQ,SAAU,WACzD3C,KAAK,aAAa,CAAC+K,EAAIC,IAAM,aAAa3I,KAAM2I,OAAMjG,MAAMuE,GAAMA,EAAEmB,KAAKvI,OACjEqJ,MAAK,SAASjC,GACvB,MAAMkC,GAAO,SAAO1K,MACd+E,EAAYyD,EAAEuB,GAAKvB,EAAEqB,GACrB7E,EAAawD,EAAE6B,GAAK7B,EAAEsB,GACtBkB,EAAWN,EAAK9K,OAEhB2L,EAAiBxG,EAAY,EAC7ByG,EAAkBxG,EAAa,EACrC,GAAIuG,EAAiB,IAAMC,EAAkB,GAE3C,YADAd,EAAKe,MAAM,UAAW,QAGxB,IAAIC,EAAuBpI,SAASoH,EAAKe,MAAM,aAAc,IAM7D,KAAOT,EAASC,wBAA0BM,GAAkBG,EALnC,GAMvBA,IACAhB,EAAKe,MAAM,YAAa,GAAGC,OAE7B,IAAIC,EAA2BxB,KAAKC,IANX,EAQvBD,KAAKyB,IAV0B,GAUIzB,KAAKf,MATjB,GASuBsC,KAE5CG,EAAiBH,EATe,EASsCC,EAC1E,KAAOE,EAAiBL,GAAmBE,EAdlB,IAevBA,IACAC,EAA2BxB,KAAKC,IAbT,EAerBD,KAAKyB,IAjBwB,GAiBMzB,KAAKf,MAhBnB,GAgByBsC,OAE5CC,EAjBmB,GAHA,IAoB4BD,KAGnDhB,EAAKe,MAAM,YAAa,GAAGC,OAC3BG,EAAiBH,EApBiB,EAoBoCC,EAIxEjB,EAAKe,MAAM,YAAa,GAAGC,QACvBV,EAASC,wBAA0BM,GAAkBG,EA7BhC,GA6B2EF,EAAkBE,IACpHhB,EAAKe,MAAM,UAAW,OAE1B,KAC0B,IAAtB9G,EAAOmG,YACUQ,EAAKlD,OAAO,QAAQlJ,KAAK,QAAS,gBAAgBA,KAAK,KAAMsJ,IAAOA,EAAEuB,GAAKvB,EAAEqB,IAAM,IAAG3K,KAAK,KAAK,SAASsJ,GAC1H,OAAQA,EAAE6B,GAAK7B,EAAEsB,IAAM,CACzB,IAAG5K,KAAK,SAAUsJ,GACI,yEAA2EjB,EAAgBiB,EAAEmB,KAAKvI,MAAQ,KAC/G,QAAc,CAAEuB,kBAAmB6F,EAAEmB,KAAKhH,oBAC7B6H,YAAY3I,QAAQ,SAAU,WACzD3C,KAAK,aAAa,CAAC+K,EAAIC,IAAM,aAAa3I,KAAM2I,OAAMjG,MAAMuE,GAAMA,EAAE5F,MAAQuC,EAAYqD,EAAE5F,OAAS,KAC3F6H,MAAK,SAASjC,GACvB,MAAMsD,GAAmB,SAAO9L,MAC1B+L,EAAiB/L,KAAKgM,WAC5B,IAAKD,EAEH,YADAD,EAAiBL,MAAM,UAAW,QAGpC,MAAMQ,GAAe,SAAOF,GAAgBG,OAAO,iBACnD,GAAID,EAAaE,SAA6C,SAAlCF,EAAaR,MAAM,WAE7C,YADAK,EAAiBL,MAAM,UAAW,QAGpC,MAAMW,EAAqBC,WAAWJ,EAAaR,MAAM,cAKnDa,EAAsBnC,KAAKC,IAFR,EAIvBD,KAAKyB,IANuB,GAMIzB,KAAKf,MALd,GAKoBgD,KAE7CN,EAAiBL,MAAM,YAAa,GAAGa,OACvC,MACMC,GADgB/D,EAAE6B,GAAK7B,EAAEsB,IAAM,EACEsC,EAAqB,EAPxB,EAQpCN,EAAiB5M,KAAK,IAAKqN,GAC3B,MAAMxH,EAAYyD,EAAEuB,GAAKvB,EAAEqB,GAGrB2C,EAFkBhE,EAAE6B,GAAK7B,EAAEsB,GACP,EAEpB2C,EAAyB1H,EAAY,EACvC+G,EAAiBlM,OAAOqL,wBAA0BwB,GAA0BF,EAAkBD,EAAsBE,GAAmBF,EAflH,EAgBvBR,EAAiBL,MAAM,UAAW,QAElCK,EAAiBL,MAAM,UAAW,KAEtC,IAEF,MAAMiB,EAAiB/H,EAAO+H,gBAAkB,GAChD,OAAoB5N,EAAK4N,EAAgB,YAAa/H,GAAQ1F,cAAe,EAAM,GAClF,QAIoBgD,YAHU,SAAO,SAASsC,EAAOoI,GACtD,OAAOA,EAAWrO,GAAG2D,YACvB,GAAG,eAIC2K,EAA6B,CAC/BC,mBAAoB,QACpBC,mBAAoB,IACpBC,iBAAkB,UAClBC,gBAAiB,QACjBC,gBAAiB,IACjBC,cAAe,UACfC,WAAY,QACZC,cAAe,OACfC,cAAe,OACfC,WAAY,QACZC,WAAY,QACZC,cAAe,QA+BbC,GA7B4B,SAAO,EACrC5M,QAAS6M,GACP,CAAC,KACH,MAAMC,GAAU,QAAcf,EAA4Bc,GAC1D,MAAO,2CAEKC,EAAQd,0CACFc,EAAQb,kCAChBa,EAAQZ,8DAGNY,EAAQX,uCACFW,EAAQV,+BAChBU,EAAQT,qDAGRS,EAAQR,+BACHQ,EAAQP,qDAGbO,EAAQL,+BACHK,EAAQN,qDAGbM,EAAQJ,+BACHI,EAAQH,yBAEtB,GACA,aAICI,EAAU,CACZ/J,SACA,MAAIvF,GACF,OAAO,IAAIwB,CACb,EACAuE,WACA1C,OAAQ8L,E","sources":["webpack:///../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-353BL4L5.mjs","webpack:///../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-SKB7J2MH.mjs","webpack:///../../node_modules/mermaid/dist/chunks/mermaid.core/diagram-VMROVX33.mjs"],"sourcesContent":["import {\n __name\n} from \"./chunk-3XYRH5AP.mjs\";\n\n// src/diagrams/common/populateCommonDb.ts\nfunction populateCommonDb(ast, db) {\n if (ast.accDescr) {\n db.setAccDescription?.(ast.accDescr);\n }\n if (ast.accTitle) {\n db.setAccTitle?.(ast.accTitle);\n }\n if (ast.title) {\n db.setDiagramTitle?.(ast.title);\n }\n}\n__name(populateCommonDb, \"populateCommonDb\");\n\nexport {\n populateCommonDb\n};\n","import {\n __name,\n configureSvgSize,\n log\n} from \"./chunk-3XYRH5AP.mjs\";\n\n// src/rendering-util/setupViewPortForSVG.ts\nvar setupViewPortForSVG = /* @__PURE__ */ __name((svg, padding, cssDiagram, useMaxWidth) => {\n svg.attr(\"class\", cssDiagram);\n const { width, height, x, y } = calculateDimensionsWithPadding(svg, padding);\n configureSvgSize(svg, height, width, useMaxWidth);\n const viewBox = createViewBox(x, y, width, height, padding);\n svg.attr(\"viewBox\", viewBox);\n log.debug(`viewBox configured: ${viewBox} with padding: ${padding}`);\n}, \"setupViewPortForSVG\");\nvar calculateDimensionsWithPadding = /* @__PURE__ */ __name((svg, padding) => {\n const bounds = svg.node()?.getBBox() || { width: 0, height: 0, x: 0, y: 0 };\n return {\n width: bounds.width + padding * 2,\n height: bounds.height + padding * 2,\n x: bounds.x,\n y: bounds.y\n };\n}, \"calculateDimensionsWithPadding\");\nvar createViewBox = /* @__PURE__ */ __name((x, y, width, height, padding) => {\n return `${x - padding} ${y - padding} ${width} ${height}`;\n}, \"createViewBox\");\n\nexport {\n setupViewPortForSVG\n};\n","import {\n setupViewPortForSVG\n} from \"./chunk-SKB7J2MH.mjs\";\nimport {\n isLabelStyle,\n styles2String\n} from \"./chunk-UWXLY5YG.mjs\";\nimport {\n populateCommonDb\n} from \"./chunk-353BL4L5.mjs\";\nimport {\n cleanAndMerge\n} from \"./chunk-55PJQP7W.mjs\";\nimport {\n selectSvgElement\n} from \"./chunk-P3VETL53.mjs\";\nimport {\n __name,\n clear,\n configureSvgSize,\n defaultConfig_default,\n getAccDescription,\n getAccTitle,\n getConfig,\n getDiagramTitle,\n log,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-3XYRH5AP.mjs\";\n\n// src/diagrams/treemap/db.ts\nvar TreeMapDB = class {\n constructor() {\n this.nodes = [];\n this.levels = /* @__PURE__ */ new Map();\n this.outerNodes = [];\n this.classes = /* @__PURE__ */ new Map();\n this.setAccTitle = setAccTitle;\n this.getAccTitle = getAccTitle;\n this.setDiagramTitle = setDiagramTitle;\n this.getDiagramTitle = getDiagramTitle;\n this.getAccDescription = getAccDescription;\n this.setAccDescription = setAccDescription;\n }\n static {\n __name(this, \"TreeMapDB\");\n }\n getNodes() {\n return this.nodes;\n }\n getConfig() {\n const defaultConfig = defaultConfig_default;\n const userConfig = getConfig();\n return cleanAndMerge({\n ...defaultConfig.treemap,\n ...userConfig.treemap ?? {}\n });\n }\n addNode(node, level) {\n this.nodes.push(node);\n this.levels.set(node, level);\n if (level === 0) {\n this.outerNodes.push(node);\n this.root ??= node;\n }\n }\n getRoot() {\n return { name: \"\", children: this.outerNodes };\n }\n addClass(id, _style) {\n const styleClass = this.classes.get(id) ?? { id, styles: [], textStyles: [] };\n const styles = _style.replace(/\\\\,/g, \"\\xA7\\xA7\\xA7\").replace(/,/g, \";\").replace(/§§§/g, \",\").split(\";\");\n if (styles) {\n styles.forEach((s) => {\n if (isLabelStyle(s)) {\n if (styleClass?.textStyles) {\n styleClass.textStyles.push(s);\n } else {\n styleClass.textStyles = [s];\n }\n }\n if (styleClass?.styles) {\n styleClass.styles.push(s);\n } else {\n styleClass.styles = [s];\n }\n });\n }\n this.classes.set(id, styleClass);\n }\n getClasses() {\n return this.classes;\n }\n getStylesForClass(classSelector) {\n return this.classes.get(classSelector)?.styles ?? [];\n }\n clear() {\n clear();\n this.nodes = [];\n this.levels = /* @__PURE__ */ new Map();\n this.outerNodes = [];\n this.classes = /* @__PURE__ */ new Map();\n this.root = void 0;\n }\n};\n\n// src/diagrams/treemap/parser.ts\nimport { parse } from \"@mermaid-js/parser\";\n\n// src/diagrams/treemap/utils.ts\nfunction buildHierarchy(items) {\n if (!items.length) {\n return [];\n }\n const root = [];\n const stack = [];\n items.forEach((item) => {\n const node = {\n name: item.name,\n children: item.type === \"Leaf\" ? void 0 : []\n };\n node.classSelector = item?.classSelector;\n if (item?.cssCompiledStyles) {\n node.cssCompiledStyles = [item.cssCompiledStyles];\n }\n if (item.type === \"Leaf\" && item.value !== void 0) {\n node.value = item.value;\n }\n while (stack.length > 0 && stack[stack.length - 1].level >= item.level) {\n stack.pop();\n }\n if (stack.length === 0) {\n root.push(node);\n } else {\n const parent = stack[stack.length - 1].node;\n if (parent.children) {\n parent.children.push(node);\n } else {\n parent.children = [node];\n }\n }\n if (item.type !== \"Leaf\") {\n stack.push({ node, level: item.level });\n }\n });\n return root;\n}\n__name(buildHierarchy, \"buildHierarchy\");\n\n// src/diagrams/treemap/parser.ts\nvar populate = /* @__PURE__ */ __name((ast, db) => {\n populateCommonDb(ast, db);\n const items = [];\n for (const row of ast.TreemapRows ?? []) {\n if (row.$type === \"ClassDefStatement\") {\n db.addClass(row.className ?? \"\", row.styleText ?? \"\");\n }\n }\n for (const row of ast.TreemapRows ?? []) {\n const item = row.item;\n if (!item) {\n continue;\n }\n const level = row.indent ? parseInt(row.indent) : 0;\n const name = getItemName(item);\n const styles = item.classSelector ? db.getStylesForClass(item.classSelector) : [];\n const cssCompiledStyles = styles.length > 0 ? styles.join(\";\") : void 0;\n const itemData = {\n level,\n name,\n type: item.$type,\n value: item.value,\n classSelector: item.classSelector,\n cssCompiledStyles\n };\n items.push(itemData);\n }\n const hierarchyNodes = buildHierarchy(items);\n const addNodesRecursively = /* @__PURE__ */ __name((nodes, level) => {\n for (const node of nodes) {\n db.addNode(node, level);\n if (node.children && node.children.length > 0) {\n addNodesRecursively(node.children, level + 1);\n }\n }\n }, \"addNodesRecursively\");\n addNodesRecursively(hierarchyNodes, 0);\n}, \"populate\");\nvar getItemName = /* @__PURE__ */ __name((item) => {\n return item.name ? String(item.name) : \"\";\n}, \"getItemName\");\nvar parser = {\n // @ts-expect-error - TreeMapDB is not assignable to DiagramDB\n parser: { yy: void 0 },\n parse: /* @__PURE__ */ __name(async (text) => {\n try {\n const parseFunc = parse;\n const ast = await parseFunc(\"treemap\", text);\n log.debug(\"Treemap AST:\", ast);\n const db = parser.parser?.yy;\n if (!(db instanceof TreeMapDB)) {\n throw new Error(\n \"parser.parser?.yy was not a TreemapDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.\"\n );\n }\n populate(ast, db);\n } catch (error) {\n log.error(\"Error parsing treemap:\", error);\n throw error;\n }\n }, \"parse\")\n};\n\n// src/diagrams/treemap/renderer.ts\nimport { scaleOrdinal, treemap, hierarchy, format, select } from \"d3\";\nvar DEFAULT_INNER_PADDING = 10;\nvar SECTION_INNER_PADDING = 10;\nvar SECTION_HEADER_HEIGHT = 25;\nvar draw = /* @__PURE__ */ __name((_text, id, _version, diagram2) => {\n const treemapDb = diagram2.db;\n const config = treemapDb.getConfig();\n const treemapInnerPadding = config.padding ?? DEFAULT_INNER_PADDING;\n const title = treemapDb.getDiagramTitle();\n const root = treemapDb.getRoot();\n const { themeVariables } = getConfig();\n if (!root) {\n return;\n }\n const titleHeight = title ? 30 : 0;\n const svg = selectSvgElement(id);\n const width = config.nodeWidth ? config.nodeWidth * SECTION_INNER_PADDING : 960;\n const height = config.nodeHeight ? config.nodeHeight * SECTION_INNER_PADDING : 500;\n const svgWidth = width;\n const svgHeight = height + titleHeight;\n svg.attr(\"viewBox\", `0 0 ${svgWidth} ${svgHeight}`);\n configureSvgSize(svg, svgHeight, svgWidth, config.useMaxWidth);\n let valueFormat;\n try {\n const formatStr = config.valueFormat || \",\";\n if (formatStr === \"$0,0\") {\n valueFormat = /* @__PURE__ */ __name((value) => \"$\" + format(\",\")(value), \"valueFormat\");\n } else if (formatStr.startsWith(\"$\") && formatStr.includes(\",\")) {\n const precision = /\\.\\d+/.exec(formatStr);\n const precisionStr = precision ? precision[0] : \"\";\n valueFormat = /* @__PURE__ */ __name((value) => \"$\" + format(\",\" + precisionStr)(value), \"valueFormat\");\n } else if (formatStr.startsWith(\"$\")) {\n const restOfFormat = formatStr.substring(1);\n valueFormat = /* @__PURE__ */ __name((value) => \"$\" + format(restOfFormat || \"\")(value), \"valueFormat\");\n } else {\n valueFormat = format(formatStr);\n }\n } catch (error) {\n log.error(\"Error creating format function:\", error);\n valueFormat = format(\",\");\n }\n const colorScale = scaleOrdinal().range([\n \"transparent\",\n themeVariables.cScale0,\n themeVariables.cScale1,\n themeVariables.cScale2,\n themeVariables.cScale3,\n themeVariables.cScale4,\n themeVariables.cScale5,\n themeVariables.cScale6,\n themeVariables.cScale7,\n themeVariables.cScale8,\n themeVariables.cScale9,\n themeVariables.cScale10,\n themeVariables.cScale11\n ]);\n const colorScalePeer = scaleOrdinal().range([\n \"transparent\",\n themeVariables.cScalePeer0,\n themeVariables.cScalePeer1,\n themeVariables.cScalePeer2,\n themeVariables.cScalePeer3,\n themeVariables.cScalePeer4,\n themeVariables.cScalePeer5,\n themeVariables.cScalePeer6,\n themeVariables.cScalePeer7,\n themeVariables.cScalePeer8,\n themeVariables.cScalePeer9,\n themeVariables.cScalePeer10,\n themeVariables.cScalePeer11\n ]);\n const colorScaleLabel = scaleOrdinal().range([\n themeVariables.cScaleLabel0,\n themeVariables.cScaleLabel1,\n themeVariables.cScaleLabel2,\n themeVariables.cScaleLabel3,\n themeVariables.cScaleLabel4,\n themeVariables.cScaleLabel5,\n themeVariables.cScaleLabel6,\n themeVariables.cScaleLabel7,\n themeVariables.cScaleLabel8,\n themeVariables.cScaleLabel9,\n themeVariables.cScaleLabel10,\n themeVariables.cScaleLabel11\n ]);\n if (title) {\n svg.append(\"text\").attr(\"x\", svgWidth / 2).attr(\"y\", titleHeight / 2).attr(\"class\", \"treemapTitle\").attr(\"text-anchor\", \"middle\").attr(\"dominant-baseline\", \"middle\").text(title);\n }\n const g = svg.append(\"g\").attr(\"transform\", `translate(0, ${titleHeight})`).attr(\"class\", \"treemapContainer\");\n const hierarchyRoot = hierarchy(root).sum((d) => d.value ?? 0).sort((a, b) => (b.value ?? 0) - (a.value ?? 0));\n const treemapLayout = treemap().size([width, height]).paddingTop(\n (d) => d.children && d.children.length > 0 ? SECTION_HEADER_HEIGHT + SECTION_INNER_PADDING : 0\n ).paddingInner(treemapInnerPadding).paddingLeft((d) => d.children && d.children.length > 0 ? SECTION_INNER_PADDING : 0).paddingRight((d) => d.children && d.children.length > 0 ? SECTION_INNER_PADDING : 0).paddingBottom((d) => d.children && d.children.length > 0 ? SECTION_INNER_PADDING : 0).round(true);\n const treemapData = treemapLayout(hierarchyRoot);\n const branchNodes = treemapData.descendants().filter((d) => d.children && d.children.length > 0);\n const sections = g.selectAll(\".treemapSection\").data(branchNodes).enter().append(\"g\").attr(\"class\", \"treemapSection\").attr(\"transform\", (d) => `translate(${d.x0},${d.y0})`);\n sections.append(\"rect\").attr(\"width\", (d) => d.x1 - d.x0).attr(\"height\", SECTION_HEADER_HEIGHT).attr(\"class\", \"treemapSectionHeader\").attr(\"fill\", \"none\").attr(\"fill-opacity\", 0.6).attr(\"stroke-width\", 0.6).attr(\"style\", (d) => {\n if (d.depth === 0) {\n return \"display: none;\";\n }\n return \"\";\n });\n sections.append(\"clipPath\").attr(\"id\", (_d, i) => `clip-section-${id}-${i}`).append(\"rect\").attr(\"width\", (d) => Math.max(0, d.x1 - d.x0 - 12)).attr(\"height\", SECTION_HEADER_HEIGHT);\n sections.append(\"rect\").attr(\"width\", (d) => d.x1 - d.x0).attr(\"height\", (d) => d.y1 - d.y0).attr(\"class\", (_d, i) => {\n return `treemapSection section${i}`;\n }).attr(\"fill\", (d) => colorScale(d.data.name)).attr(\"fill-opacity\", 0.6).attr(\"stroke\", (d) => colorScalePeer(d.data.name)).attr(\"stroke-width\", 2).attr(\"stroke-opacity\", 0.4).attr(\"style\", (d) => {\n if (d.depth === 0) {\n return \"display: none;\";\n }\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return styles.nodeStyles + \";\" + styles.borderStyles.join(\";\");\n });\n sections.append(\"text\").attr(\"class\", \"treemapSectionLabel\").attr(\"x\", 6).attr(\"y\", SECTION_HEADER_HEIGHT / 2).attr(\"dominant-baseline\", \"middle\").text((d) => d.depth === 0 ? \"\" : d.data.name).attr(\"font-weight\", \"bold\").attr(\"style\", (d) => {\n if (d.depth === 0) {\n return \"display: none;\";\n }\n const labelStyles = \"dominant-baseline: middle; font-size: 12px; fill:\" + colorScaleLabel(d.data.name) + \"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\";\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return labelStyles + styles.labelStyles.replace(\"color:\", \"fill:\");\n }).each(function(d) {\n if (d.depth === 0) {\n return;\n }\n const self = select(this);\n const originalText = d.data.name;\n self.text(originalText);\n const totalHeaderWidth = d.x1 - d.x0;\n const labelXPosition = 6;\n let spaceForTextContent;\n if (config.showValues !== false && d.value) {\n const valueEndsAtXRelative = totalHeaderWidth - 10;\n const estimatedValueTextActualWidth = 30;\n const gapBetweenLabelAndValue = 10;\n const labelMustEndBeforeX = valueEndsAtXRelative - estimatedValueTextActualWidth - gapBetweenLabelAndValue;\n spaceForTextContent = labelMustEndBeforeX - labelXPosition;\n } else {\n const labelOwnRightPadding = 6;\n spaceForTextContent = totalHeaderWidth - labelXPosition - labelOwnRightPadding;\n }\n const minimumWidthToDisplay = 15;\n const actualAvailableWidth = Math.max(minimumWidthToDisplay, spaceForTextContent);\n const textNode = self.node();\n const currentTextContentLength = textNode.getComputedTextLength();\n if (currentTextContentLength > actualAvailableWidth) {\n const ellipsis = \"...\";\n let currentTruncatedText = originalText;\n while (currentTruncatedText.length > 0) {\n currentTruncatedText = originalText.substring(0, currentTruncatedText.length - 1);\n if (currentTruncatedText.length === 0) {\n self.text(ellipsis);\n if (textNode.getComputedTextLength() > actualAvailableWidth) {\n self.text(\"\");\n }\n break;\n }\n self.text(currentTruncatedText + ellipsis);\n if (textNode.getComputedTextLength() <= actualAvailableWidth) {\n break;\n }\n }\n }\n });\n if (config.showValues !== false) {\n sections.append(\"text\").attr(\"class\", \"treemapSectionValue\").attr(\"x\", (d) => d.x1 - d.x0 - 10).attr(\"y\", SECTION_HEADER_HEIGHT / 2).attr(\"text-anchor\", \"end\").attr(\"dominant-baseline\", \"middle\").text((d) => d.value ? valueFormat(d.value) : \"\").attr(\"font-style\", \"italic\").attr(\"style\", (d) => {\n if (d.depth === 0) {\n return \"display: none;\";\n }\n const labelStyles = \"text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:\" + colorScaleLabel(d.data.name) + \"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\";\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return labelStyles + styles.labelStyles.replace(\"color:\", \"fill:\");\n });\n }\n const leafNodes = treemapData.leaves();\n const cell = g.selectAll(\".treemapLeafGroup\").data(leafNodes).enter().append(\"g\").attr(\"class\", (d, i) => {\n return `treemapNode treemapLeafGroup leaf${i}${d.data.classSelector ? ` ${d.data.classSelector}` : \"\"}x`;\n }).attr(\"transform\", (d) => `translate(${d.x0},${d.y0})`);\n cell.append(\"rect\").attr(\"width\", (d) => d.x1 - d.x0).attr(\"height\", (d) => d.y1 - d.y0).attr(\"class\", \"treemapLeaf\").attr(\"fill\", (d) => {\n return d.parent ? colorScale(d.parent.data.name) : colorScale(d.data.name);\n }).attr(\"style\", (d) => {\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return styles.nodeStyles;\n }).attr(\"fill-opacity\", 0.3).attr(\"stroke\", (d) => {\n return d.parent ? colorScale(d.parent.data.name) : colorScale(d.data.name);\n }).attr(\"stroke-width\", 3);\n cell.append(\"clipPath\").attr(\"id\", (_d, i) => `clip-${id}-${i}`).append(\"rect\").attr(\"width\", (d) => Math.max(0, d.x1 - d.x0 - 4)).attr(\"height\", (d) => Math.max(0, d.y1 - d.y0 - 4));\n const leafLabels = cell.append(\"text\").attr(\"class\", \"treemapLabel\").attr(\"x\", (d) => (d.x1 - d.x0) / 2).attr(\"y\", (d) => (d.y1 - d.y0) / 2).attr(\"style\", (d) => {\n const labelStyles = \"text-anchor: middle; dominant-baseline: middle; font-size: 38px;fill:\" + colorScaleLabel(d.data.name) + \";\";\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return labelStyles + styles.labelStyles.replace(\"color:\", \"fill:\");\n }).attr(\"clip-path\", (_d, i) => `url(#clip-${id}-${i})`).text((d) => d.data.name);\n leafLabels.each(function(d) {\n const self = select(this);\n const nodeWidth = d.x1 - d.x0;\n const nodeHeight = d.y1 - d.y0;\n const textNode = self.node();\n const padding = 4;\n const availableWidth = nodeWidth - 2 * padding;\n const availableHeight = nodeHeight - 2 * padding;\n if (availableWidth < 10 || availableHeight < 10) {\n self.style(\"display\", \"none\");\n return;\n }\n let currentLabelFontSize = parseInt(self.style(\"font-size\"), 10);\n const minLabelFontSize = 8;\n const originalValueRelFontSize = 28;\n const valueScaleFactor = 0.6;\n const minValueFontSize = 6;\n const spacingBetweenLabelAndValue = 2;\n while (textNode.getComputedTextLength() > availableWidth && currentLabelFontSize > minLabelFontSize) {\n currentLabelFontSize--;\n self.style(\"font-size\", `${currentLabelFontSize}px`);\n }\n let prospectiveValueFontSize = Math.max(\n minValueFontSize,\n Math.min(originalValueRelFontSize, Math.round(currentLabelFontSize * valueScaleFactor))\n );\n let combinedHeight = currentLabelFontSize + spacingBetweenLabelAndValue + prospectiveValueFontSize;\n while (combinedHeight > availableHeight && currentLabelFontSize > minLabelFontSize) {\n currentLabelFontSize--;\n prospectiveValueFontSize = Math.max(\n minValueFontSize,\n Math.min(originalValueRelFontSize, Math.round(currentLabelFontSize * valueScaleFactor))\n );\n if (prospectiveValueFontSize < minValueFontSize && currentLabelFontSize === minLabelFontSize) {\n break;\n }\n self.style(\"font-size\", `${currentLabelFontSize}px`);\n combinedHeight = currentLabelFontSize + spacingBetweenLabelAndValue + prospectiveValueFontSize;\n if (prospectiveValueFontSize <= minValueFontSize && combinedHeight > availableHeight) {\n }\n }\n self.style(\"font-size\", `${currentLabelFontSize}px`);\n if (textNode.getComputedTextLength() > availableWidth || currentLabelFontSize < minLabelFontSize || availableHeight < currentLabelFontSize) {\n self.style(\"display\", \"none\");\n }\n });\n if (config.showValues !== false) {\n const leafValues = cell.append(\"text\").attr(\"class\", \"treemapValue\").attr(\"x\", (d) => (d.x1 - d.x0) / 2).attr(\"y\", function(d) {\n return (d.y1 - d.y0) / 2;\n }).attr(\"style\", (d) => {\n const labelStyles = \"text-anchor: middle; dominant-baseline: hanging; font-size: 28px;fill:\" + colorScaleLabel(d.data.name) + \";\";\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return labelStyles + styles.labelStyles.replace(\"color:\", \"fill:\");\n }).attr(\"clip-path\", (_d, i) => `url(#clip-${id}-${i})`).text((d) => d.value ? valueFormat(d.value) : \"\");\n leafValues.each(function(d) {\n const valueTextElement = select(this);\n const parentCellNode = this.parentNode;\n if (!parentCellNode) {\n valueTextElement.style(\"display\", \"none\");\n return;\n }\n const labelElement = select(parentCellNode).select(\".treemapLabel\");\n if (labelElement.empty() || labelElement.style(\"display\") === \"none\") {\n valueTextElement.style(\"display\", \"none\");\n return;\n }\n const finalLabelFontSize = parseFloat(labelElement.style(\"font-size\"));\n const originalValueFontSize = 28;\n const valueScaleFactor = 0.6;\n const minValueFontSize = 6;\n const spacingBetweenLabelAndValue = 2;\n const actualValueFontSize = Math.max(\n minValueFontSize,\n Math.min(originalValueFontSize, Math.round(finalLabelFontSize * valueScaleFactor))\n );\n valueTextElement.style(\"font-size\", `${actualValueFontSize}px`);\n const labelCenterY = (d.y1 - d.y0) / 2;\n const valueTopActualY = labelCenterY + finalLabelFontSize / 2 + spacingBetweenLabelAndValue;\n valueTextElement.attr(\"y\", valueTopActualY);\n const nodeWidth = d.x1 - d.x0;\n const nodeTotalHeight = d.y1 - d.y0;\n const cellBottomPadding = 4;\n const maxValueBottomY = nodeTotalHeight - cellBottomPadding;\n const availableWidthForValue = nodeWidth - 2 * 4;\n if (valueTextElement.node().getComputedTextLength() > availableWidthForValue || valueTopActualY + actualValueFontSize > maxValueBottomY || actualValueFontSize < minValueFontSize) {\n valueTextElement.style(\"display\", \"none\");\n } else {\n valueTextElement.style(\"display\", null);\n }\n });\n }\n const diagramPadding = config.diagramPadding ?? 8;\n setupViewPortForSVG(svg, diagramPadding, \"flowchart\", config?.useMaxWidth || false);\n}, \"draw\");\nvar getClasses = /* @__PURE__ */ __name(function(_text, diagramObj) {\n return diagramObj.db.getClasses();\n}, \"getClasses\");\nvar renderer = { draw, getClasses };\n\n// src/diagrams/treemap/styles.ts\nvar defaultTreemapStyleOptions = {\n sectionStrokeColor: \"black\",\n sectionStrokeWidth: \"1\",\n sectionFillColor: \"#efefef\",\n leafStrokeColor: \"black\",\n leafStrokeWidth: \"1\",\n leafFillColor: \"#efefef\",\n labelColor: \"black\",\n labelFontSize: \"12px\",\n valueFontSize: \"10px\",\n valueColor: \"black\",\n titleColor: \"black\",\n titleFontSize: \"14px\"\n};\nvar getStyles = /* @__PURE__ */ __name(({\n treemap: treemap2\n} = {}) => {\n const options = cleanAndMerge(defaultTreemapStyleOptions, treemap2);\n return `\n .treemapNode.section {\n stroke: ${options.sectionStrokeColor};\n stroke-width: ${options.sectionStrokeWidth};\n fill: ${options.sectionFillColor};\n }\n .treemapNode.leaf {\n stroke: ${options.leafStrokeColor};\n stroke-width: ${options.leafStrokeWidth};\n fill: ${options.leafFillColor};\n }\n .treemapLabel {\n fill: ${options.labelColor};\n font-size: ${options.labelFontSize};\n }\n .treemapValue {\n fill: ${options.valueColor};\n font-size: ${options.valueFontSize};\n }\n .treemapTitle {\n fill: ${options.titleColor};\n font-size: ${options.titleFontSize};\n }\n `;\n}, \"getStyles\");\nvar styles_default = getStyles;\n\n// src/diagrams/treemap/diagram.ts\nvar diagram = {\n parser,\n get db() {\n return new TreeMapDB();\n },\n renderer,\n styles: styles_default\n};\nexport {\n diagram\n};\n"],"names":["populateCommonDb","ast","db","accDescr","setAccDescription","accTitle","setAccTitle","title","setDiagramTitle","setupViewPortForSVG","svg","padding","cssDiagram","useMaxWidth","attr","width","height","x","y","calculateDimensionsWithPadding","viewBox","createViewBox","debug","bounds","node","getBBox","TreeMapDB","constructor","this","nodes","levels","Map","outerNodes","classes","getAccTitle","getDiagramTitle","getAccDescription","getNodes","getConfig","defaultConfig","userConfig","treemap","addNode","level","push","set","root","getRoot","name","children","addClass","id","_style","styleClass","get","styles","textStyles","replace","split","forEach","s","getClasses","getStylesForClass","classSelector","clear","buildHierarchy","items","length","stack","item","type","cssCompiledStyles","value","pop","parent","populate","row","TreemapRows","$type","className","styleText","indent","parseInt","getItemName","join","itemData","hierarchyNodes","addNodesRecursively","String","parser","yy","parse","async","text","parseFunc","Error","error","renderer","draw","_text","_version","diagram2","treemapDb","config","treemapInnerPadding","themeVariables","titleHeight","nodeWidth","nodeHeight","svgWidth","svgHeight","valueFormat","formatStr","startsWith","includes","precision","exec","precisionStr","restOfFormat","substring","colorScale","range","cScale0","cScale1","cScale2","cScale3","cScale4","cScale5","cScale6","cScale7","cScale8","cScale9","cScale10","cScale11","colorScalePeer","cScalePeer0","cScalePeer1","cScalePeer2","cScalePeer3","cScalePeer4","cScalePeer5","cScalePeer6","cScalePeer7","cScalePeer8","cScalePeer9","cScalePeer10","cScalePeer11","colorScaleLabel","cScaleLabel0","cScaleLabel1","cScaleLabel2","cScaleLabel3","cScaleLabel4","cScaleLabel5","cScaleLabel6","cScaleLabel7","cScaleLabel8","cScaleLabel9","cScaleLabel10","cScaleLabel11","append","g","hierarchyRoot","sum","d","sort","a","b","treemapData","size","paddingTop","SECTION_HEADER_HEIGHT","paddingInner","paddingLeft","paddingRight","paddingBottom","round","treemapLayout","branchNodes","descendants","filter","sections","selectAll","data","enter","x0","y0","x1","depth","_d","i","Math","max","y1","nodeStyles","borderStyles","labelStyles","each","self","originalText","totalHeaderWidth","spaceForTextContent","showValues","actualAvailableWidth","textNode","getComputedTextLength","ellipsis","currentTruncatedText","leafNodes","leaves","cell","availableWidth","availableHeight","style","currentLabelFontSize","prospectiveValueFontSize","min","combinedHeight","valueTextElement","parentCellNode","parentNode","labelElement","select","empty","finalLabelFontSize","parseFloat","actualValueFontSize","valueTopActualY","maxValueBottomY","availableWidthForValue","diagramPadding","diagramObj","defaultTreemapStyleOptions","sectionStrokeColor","sectionStrokeWidth","sectionFillColor","leafStrokeColor","leafStrokeWidth","leafFillColor","labelColor","labelFontSize","valueFontSize","valueColor","titleColor","titleFontSize","styles_default","treemap2","options","diagram"],"sourceRoot":""}
|