@mir-code/specs-platform 1.0.1
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/LICENSE +21 -0
- package/README.md +460 -0
- package/assets/specs-usage-statusline.sh +77 -0
- package/assets/template/.agents/README.md +123 -0
- package/assets/template/.agents/RUNTIME.md +64 -0
- package/assets/template/.agents/agents/discovery-agent.md +15 -0
- package/assets/template/.agents/agents/drawing-agent.md +15 -0
- package/assets/template/.agents/agents/feature-runner.md +15 -0
- package/assets/template/.agents/agents/refinement-runner.md +15 -0
- package/assets/template/.agents/agents/refinement.md +15 -0
- package/assets/template/.agents/project.md +158 -0
- package/assets/template/.agents/scripts/check-commit.mjs +70 -0
- package/assets/template/.agents/scripts/validate-spec.mjs +345 -0
- package/assets/template/.agents/skills/discovery-agent/SKILL.md +80 -0
- package/assets/template/.agents/skills/discovery-writing/SKILL.md +76 -0
- package/assets/template/.agents/skills/drawing-agent/SKILL.md +85 -0
- package/assets/template/.agents/skills/drawing-writing/SKILL.md +100 -0
- package/assets/template/.agents/skills/execution-protocol/SKILL.md +110 -0
- package/assets/template/.agents/skills/execution-protocol/references/git.md +104 -0
- package/assets/template/.agents/skills/execution-protocol/references/relatorio-halt.md +103 -0
- package/assets/template/.agents/skills/feature-runner/SKILL.md +81 -0
- package/assets/template/.agents/skills/feature-runner/references/divergencias.md +38 -0
- package/assets/template/.agents/skills/feature-runner/references/implementar.md +80 -0
- package/assets/template/.agents/skills/feature-runner/references/localizar.md +46 -0
- package/assets/template/.agents/skills/mermaid-diagramming/SKILL.md +198 -0
- package/assets/template/.agents/skills/prototype-check/SKILL.md +90 -0
- package/assets/template/.agents/skills/refinement/SKILL.md +136 -0
- package/assets/template/.agents/skills/refinement/references/estrutura.md +27 -0
- package/assets/template/.agents/skills/refinement/references/mapear-terreno.md +46 -0
- package/assets/template/.agents/skills/refinement/references/validar-renderizacao.md +29 -0
- package/assets/template/.agents/skills/refinement-runner/SKILL.md +145 -0
- package/assets/template/.agents/skills/requirements-closure/SKILL.md +236 -0
- package/assets/template/.agents/skills/spec-writing/SKILL.md +258 -0
- package/assets/template/.agents/skills/test-strategy/SKILL.md +176 -0
- package/assets/template/.agents/skills/verification/SKILL.md +143 -0
- package/assets/template/.specs/config.json +39 -0
- package/assets/template/.specs/discoveries/meta.json +4 -0
- package/assets/template/.specs/drawings/meta.json +4 -0
- package/assets/template/.specs/specs/_templates/task-backend.md +75 -0
- package/assets/template/.specs/specs/_templates/task-frontend.md +89 -0
- package/assets/template/.specs/specs/_templates/task-integracao.md +72 -0
- package/assets/template/.specs/specs/exemplo/feat-exemplo-primeira-task.md +82 -0
- package/assets/template/.specs/specs/exemplo/meta.json +8 -0
- package/assets/template/.specs/specs/exemplo/overview.md +45 -0
- package/assets/template/.specs/specs/meta.json +4 -0
- package/assets/template/SPECS.md +213 -0
- package/dist/chunk-SOOETS3N.js +3490 -0
- package/dist/chunk-SOOETS3N.js.map +1 -0
- package/dist/cli.js +15 -0
- package/dist/cli.js.map +1 -0
- package/dist/index.d.ts +69 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/dist/ui/assets/abnfDiagram-VCTEODGH-DYXtkHNq.js +2 -0
- package/dist/ui/assets/abnfDiagram-VCTEODGH-DYXtkHNq.js.map +1 -0
- package/dist/ui/assets/arc-CJs0gz4E.js +2 -0
- package/dist/ui/assets/arc-CJs0gz4E.js.map +1 -0
- package/dist/ui/assets/architectureDiagram-5GKGNRK7-Br7ZNRfe.js +37 -0
- package/dist/ui/assets/architectureDiagram-5GKGNRK7-Br7ZNRfe.js.map +1 -0
- package/dist/ui/assets/blockDiagram-I7D4REHJ-172V7R5o.js +130 -0
- package/dist/ui/assets/blockDiagram-I7D4REHJ-172V7R5o.js.map +1 -0
- package/dist/ui/assets/c4Diagram-7LVT6UL2-B4AYFhRs.js +39 -0
- package/dist/ui/assets/c4Diagram-7LVT6UL2-B4AYFhRs.js.map +1 -0
- package/dist/ui/assets/channel-BfWO3B41.js +2 -0
- package/dist/ui/assets/channel-BfWO3B41.js.map +1 -0
- package/dist/ui/assets/chunk-2Q5K7J3B-B-u7gtZN.js +2 -0
- package/dist/ui/assets/chunk-2Q5K7J3B-B-u7gtZN.js.map +1 -0
- package/dist/ui/assets/chunk-5VM5RSS4-CjFDq_cq.js +16 -0
- package/dist/ui/assets/chunk-5VM5RSS4-CjFDq_cq.js.map +1 -0
- package/dist/ui/assets/chunk-F27PBJKO-BDYeB7B8.js +2 -0
- package/dist/ui/assets/chunk-F27PBJKO-BDYeB7B8.js.map +1 -0
- package/dist/ui/assets/chunk-IMKFNOWR-y2kXPnac.js +232 -0
- package/dist/ui/assets/chunk-IMKFNOWR-y2kXPnac.js.map +1 -0
- package/dist/ui/assets/chunk-JWPE2WC7-DyCryvDN.js +2 -0
- package/dist/ui/assets/chunk-JWPE2WC7-DyCryvDN.js.map +1 -0
- package/dist/ui/assets/chunk-POPQ4Y6H-DeaxKHvR.js +2 -0
- package/dist/ui/assets/chunk-POPQ4Y6H-DeaxKHvR.js.map +1 -0
- package/dist/ui/assets/chunk-SVP7TREG-CmcZEncL.js +89 -0
- package/dist/ui/assets/chunk-SVP7TREG-CmcZEncL.js.map +1 -0
- package/dist/ui/assets/chunk-TICWLB2K-Df1RRXWR.js +207 -0
- package/dist/ui/assets/chunk-TICWLB2K-Df1RRXWR.js.map +1 -0
- package/dist/ui/assets/chunk-XXDRQBXY-ClTat8Q0.js +2 -0
- package/dist/ui/assets/chunk-XXDRQBXY-ClTat8Q0.js.map +1 -0
- package/dist/ui/assets/classDiagram-ZZMXUADV-YTUiu8rF.js +2 -0
- package/dist/ui/assets/classDiagram-ZZMXUADV-YTUiu8rF.js.map +1 -0
- package/dist/ui/assets/classDiagram-v2-VYDZK3BY-YTUiu8rF.js +2 -0
- package/dist/ui/assets/classDiagram-v2-VYDZK3BY-YTUiu8rF.js.map +1 -0
- package/dist/ui/assets/cose-bilkent-JH36ORCC-QvqQLoy5.js +2 -0
- package/dist/ui/assets/cose-bilkent-JH36ORCC-QvqQLoy5.js.map +1 -0
- package/dist/ui/assets/cynefin-OW5HDTMX-BY6w3pAQ.js +179 -0
- package/dist/ui/assets/cynefin-OW5HDTMX-BY6w3pAQ.js.map +1 -0
- package/dist/ui/assets/cynefinDiagram-5FMLGOSQ-luPP4ha1.js +63 -0
- package/dist/ui/assets/cynefinDiagram-5FMLGOSQ-luPP4ha1.js.map +1 -0
- package/dist/ui/assets/cytoscape.esm-Ix0LnXOy.js +332 -0
- package/dist/ui/assets/cytoscape.esm-Ix0LnXOy.js.map +1 -0
- package/dist/ui/assets/dagre-GXQ25YYZ-DhpPwKqq.js +5 -0
- package/dist/ui/assets/dagre-GXQ25YYZ-DhpPwKqq.js.map +1 -0
- package/dist/ui/assets/defaultLocale-DX6XiGOO.js +2 -0
- package/dist/ui/assets/defaultLocale-DX6XiGOO.js.map +1 -0
- package/dist/ui/assets/diagram-S7CK7UJ4-B9wvQM0w.js +31 -0
- package/dist/ui/assets/diagram-S7CK7UJ4-B9wvQM0w.js.map +1 -0
- package/dist/ui/assets/diagram-UQ7AKVKN-gm1M_iZS.js +42 -0
- package/dist/ui/assets/diagram-UQ7AKVKN-gm1M_iZS.js.map +1 -0
- package/dist/ui/assets/diagram-VSXAHHWV-DkEB6nEx.js +4 -0
- package/dist/ui/assets/diagram-VSXAHHWV-DkEB6nEx.js.map +1 -0
- package/dist/ui/assets/diagram-VX7I27RA-Ce2F1bHi.js +25 -0
- package/dist/ui/assets/diagram-VX7I27RA-Ce2F1bHi.js.map +1 -0
- package/dist/ui/assets/diagram-Z3DM3KII-B5ArCh-E.js +25 -0
- package/dist/ui/assets/diagram-Z3DM3KII-B5ArCh-E.js.map +1 -0
- package/dist/ui/assets/ebnfDiagram-PWID7BFC-DgBM80MD.js +2 -0
- package/dist/ui/assets/ebnfDiagram-PWID7BFC-DgBM80MD.js.map +1 -0
- package/dist/ui/assets/erDiagram-RLTQ6QDP-C161af8G.js +100 -0
- package/dist/ui/assets/erDiagram-RLTQ6QDP-C161af8G.js.map +1 -0
- package/dist/ui/assets/flowDiagram-HODETNUW-B8N_WyW5.js +169 -0
- package/dist/ui/assets/flowDiagram-HODETNUW-B8N_WyW5.js.map +1 -0
- package/dist/ui/assets/ganttDiagram-EL5Y4UJY-CD2RJpTb.js +293 -0
- package/dist/ui/assets/ganttDiagram-EL5Y4UJY-CD2RJpTb.js.map +1 -0
- package/dist/ui/assets/gitGraphDiagram-WWUBYQGX-BrDAzeFT.js +107 -0
- package/dist/ui/assets/gitGraphDiagram-WWUBYQGX-BrDAzeFT.js.map +1 -0
- package/dist/ui/assets/index-CVWRdirI.css +32 -0
- package/dist/ui/assets/index-DoR97Zqf.js +408 -0
- package/dist/ui/assets/index-DoR97Zqf.js.map +1 -0
- package/dist/ui/assets/infoDiagram-27XIBGKW-HYGaMzrA.js +3 -0
- package/dist/ui/assets/infoDiagram-27XIBGKW-HYGaMzrA.js.map +1 -0
- package/dist/ui/assets/init-Gi6I4Gst.js +2 -0
- package/dist/ui/assets/init-Gi6I4Gst.js.map +1 -0
- package/dist/ui/assets/ishikawaDiagram-5VMMS53U-DXTLlBiw.js +71 -0
- package/dist/ui/assets/ishikawaDiagram-5VMMS53U-DXTLlBiw.js.map +1 -0
- package/dist/ui/assets/journeyDiagram-3NMN7TZE-DSJ8QN1S.js +140 -0
- package/dist/ui/assets/journeyDiagram-3NMN7TZE-DSJ8QN1S.js.map +1 -0
- package/dist/ui/assets/kanban-definition-UXKFOSKX-Bm5iz0k3.js +90 -0
- package/dist/ui/assets/kanban-definition-UXKFOSKX-Bm5iz0k3.js.map +1 -0
- package/dist/ui/assets/katex-C5jXJg4s.js +258 -0
- package/dist/ui/assets/katex-C5jXJg4s.js.map +1 -0
- package/dist/ui/assets/layout-DfJgW6eG.js +2 -0
- package/dist/ui/assets/layout-DfJgW6eG.js.map +1 -0
- package/dist/ui/assets/linear-B_kyVotV.js +2 -0
- package/dist/ui/assets/linear-B_kyVotV.js.map +1 -0
- package/dist/ui/assets/mermaid-block-CUJSBQFx.js +2 -0
- package/dist/ui/assets/mermaid-block-CUJSBQFx.js.map +1 -0
- package/dist/ui/assets/mermaid.core-ExHG1WnM.js +313 -0
- package/dist/ui/assets/mermaid.core-ExHG1WnM.js.map +1 -0
- package/dist/ui/assets/mindmap-definition-YA3MSWOX-B1Hh9dQz.js +97 -0
- package/dist/ui/assets/mindmap-definition-YA3MSWOX-B1Hh9dQz.js.map +1 -0
- package/dist/ui/assets/ordinal-Cboi1Yqb.js +2 -0
- package/dist/ui/assets/ordinal-Cboi1Yqb.js.map +1 -0
- package/dist/ui/assets/pegDiagram-XKGWAZYB-x242yOd7.js +2 -0
- package/dist/ui/assets/pegDiagram-XKGWAZYB-x242yOd7.js.map +1 -0
- package/dist/ui/assets/pieDiagram-E7YTZNPT-Dl-YP7Xs.js +40 -0
- package/dist/ui/assets/pieDiagram-E7YTZNPT-Dl-YP7Xs.js.map +1 -0
- package/dist/ui/assets/quadrantDiagram-AXDQQJYC-CMJ920V9.js +8 -0
- package/dist/ui/assets/quadrantDiagram-AXDQQJYC-CMJ920V9.js.map +1 -0
- package/dist/ui/assets/railroadDiagram-O6MQD6OU-1kV83y5t.js +2 -0
- package/dist/ui/assets/railroadDiagram-O6MQD6OU-1kV83y5t.js.map +1 -0
- package/dist/ui/assets/requirementDiagram-BXWQKSXE-BFd8ZZD3.js +85 -0
- package/dist/ui/assets/requirementDiagram-BXWQKSXE-BFd8ZZD3.js.map +1 -0
- package/dist/ui/assets/sankeyDiagram-P5KCCOFB-C0LZevnf.js +41 -0
- package/dist/ui/assets/sankeyDiagram-P5KCCOFB-C0LZevnf.js.map +1 -0
- package/dist/ui/assets/sequenceDiagram-WJ2MYXX4-BasIXLJ0.js +163 -0
- package/dist/ui/assets/sequenceDiagram-WJ2MYXX4-BasIXLJ0.js.map +1 -0
- package/dist/ui/assets/sizeCapture-INFHLROL-qAtnqB7N.js +2 -0
- package/dist/ui/assets/sizeCapture-INFHLROL-qAtnqB7N.js.map +1 -0
- package/dist/ui/assets/stateDiagram-D77RDMKH-CllWDWZP.js +2 -0
- package/dist/ui/assets/stateDiagram-D77RDMKH-CllWDWZP.js.map +1 -0
- package/dist/ui/assets/stateDiagram-v2-MP3YSRHH-Dwntf8Tk.js +2 -0
- package/dist/ui/assets/stateDiagram-v2-MP3YSRHH-Dwntf8Tk.js.map +1 -0
- package/dist/ui/assets/swimlanes-42K2YHIH-Bgt0KslH.js +2 -0
- package/dist/ui/assets/swimlanes-42K2YHIH-Bgt0KslH.js.map +1 -0
- package/dist/ui/assets/swimlanesDiagram-VR7AAH4N-C9abicdw.js +9 -0
- package/dist/ui/assets/swimlanesDiagram-VR7AAH4N-C9abicdw.js.map +1 -0
- package/dist/ui/assets/timeline-definition-24CTP7MA-BYO2h9Qr.js +121 -0
- package/dist/ui/assets/timeline-definition-24CTP7MA-BYO2h9Qr.js.map +1 -0
- package/dist/ui/assets/vennDiagram-4TSXK5OY-ZzyiwIUi.js +35 -0
- package/dist/ui/assets/vennDiagram-4TSXK5OY-ZzyiwIUi.js.map +1 -0
- package/dist/ui/assets/wardleyDiagram-VM6X3IG4-DfjKCK0N.js +79 -0
- package/dist/ui/assets/wardleyDiagram-VM6X3IG4-DfjKCK0N.js.map +1 -0
- package/dist/ui/assets/xychartDiagram-S5SC5T6Z-Z7daOfmM.js +8 -0
- package/dist/ui/assets/xychartDiagram-S5SC5T6Z-Z7daOfmM.js.map +1 -0
- package/dist/ui/favicon.svg +6 -0
- package/dist/ui/index.html +21 -0
- package/package.json +70 -0
- package/scripts/copy-ui.mjs +21 -0
- package/scripts/fix-node-pty-perms.cjs +73 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"c4Diagram-7LVT6UL2-B4AYFhRs.js","sources":["../../../../node_modules/.pnpm/mermaid@11.17.2/node_modules/mermaid/dist/chunks/mermaid.core/c4Diagram-7LVT6UL2.mjs"],"sourcesContent":["import {\n drawRect\n} from \"./chunk-F27PBJKO.mjs\";\nimport {\n shapes\n} from \"./chunk-4HAMMTFA.mjs\";\nimport \"./chunk-P2QGCYS3.mjs\";\nimport \"./chunk-GMAD6QVW.mjs\";\nimport \"./chunk-PWAF6VOD.mjs\";\nimport {\n calculateTextHeight,\n calculateTextWidth,\n wrapLabel\n} from \"./chunk-75Z2AOVW.mjs\";\nimport {\n assignWithDepth_default,\n common_default,\n configureSvgSize,\n getAccDescription,\n getAccTitle,\n getConfig2 as getConfig,\n sanitizeText,\n setAccDescription,\n setAccTitle\n} from \"./chunk-DU6HZSFF.mjs\";\nimport {\n log\n} from \"./chunk-X3CZISLH.mjs\";\nimport {\n __name\n} from \"./chunk-Y2CYZVJY.mjs\";\n\n// src/diagrams/c4/parser/c4Diagram.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, 24], $V1 = [1, 25], $V2 = [1, 26], $V3 = [1, 27], $V4 = [1, 28], $V5 = [1, 63], $V6 = [1, 64], $V7 = [1, 65], $V8 = [1, 66], $V9 = [1, 67], $Va = [1, 68], $Vb = [1, 69], $Vc = [1, 29], $Vd = [1, 30], $Ve = [1, 31], $Vf = [1, 32], $Vg = [1, 33], $Vh = [1, 34], $Vi = [1, 35], $Vj = [1, 36], $Vk = [1, 37], $Vl = [1, 38], $Vm = [1, 39], $Vn = [1, 40], $Vo = [1, 41], $Vp = [1, 42], $Vq = [1, 43], $Vr = [1, 44], $Vs = [1, 45], $Vt = [1, 46], $Vu = [1, 47], $Vv = [1, 48], $Vw = [1, 50], $Vx = [1, 51], $Vy = [1, 52], $Vz = [1, 53], $VA = [1, 54], $VB = [1, 55], $VC = [1, 56], $VD = [1, 57], $VE = [1, 58], $VF = [1, 59], $VG = [1, 60], $VH = [14, 42], $VI = [14, 34, 36, 37, 38, 39, 40, 41, 42, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74], $VJ = [12, 14, 34, 36, 37, 38, 39, 40, 41, 42, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74], $VK = [1, 82], $VL = [1, 83], $VM = [1, 84], $VN = [1, 85], $VO = [12, 14, 42], $VP = [12, 14, 33, 42], $VQ = [12, 14, 33, 42, 76, 77, 79, 80], $VR = [12, 33], $VS = [34, 36, 37, 38, 39, 40, 41, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74];\n var parser2 = {\n trace: /* @__PURE__ */ __name(function trace() {\n }, \"trace\"),\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"mermaidDoc\": 4, \"direction\": 5, \"direction_tb\": 6, \"direction_bt\": 7, \"direction_rl\": 8, \"direction_lr\": 9, \"graphConfig\": 10, \"C4_CONTEXT\": 11, \"NEWLINE\": 12, \"statements\": 13, \"EOF\": 14, \"C4_CONTAINER\": 15, \"C4_COMPONENT\": 16, \"C4_DYNAMIC\": 17, \"C4_DEPLOYMENT\": 18, \"otherStatements\": 19, \"diagramStatements\": 20, \"otherStatement\": 21, \"title\": 22, \"accDescription\": 23, \"acc_title\": 24, \"acc_title_value\": 25, \"acc_descr\": 26, \"acc_descr_value\": 27, \"acc_descr_multiline_value\": 28, \"boundaryStatement\": 29, \"boundaryStartStatement\": 30, \"boundaryStopStatement\": 31, \"boundaryStart\": 32, \"LBRACE\": 33, \"ENTERPRISE_BOUNDARY\": 34, \"attributes\": 35, \"SYSTEM_BOUNDARY\": 36, \"BOUNDARY\": 37, \"CONTAINER_BOUNDARY\": 38, \"NODE\": 39, \"NODE_L\": 40, \"NODE_R\": 41, \"RBRACE\": 42, \"diagramStatement\": 43, \"PERSON\": 44, \"PERSON_EXT\": 45, \"SYSTEM\": 46, \"SYSTEM_DB\": 47, \"SYSTEM_QUEUE\": 48, \"SYSTEM_EXT\": 49, \"SYSTEM_EXT_DB\": 50, \"SYSTEM_EXT_QUEUE\": 51, \"CONTAINER\": 52, \"CONTAINER_DB\": 53, \"CONTAINER_QUEUE\": 54, \"CONTAINER_EXT\": 55, \"CONTAINER_EXT_DB\": 56, \"CONTAINER_EXT_QUEUE\": 57, \"COMPONENT\": 58, \"COMPONENT_DB\": 59, \"COMPONENT_QUEUE\": 60, \"COMPONENT_EXT\": 61, \"COMPONENT_EXT_DB\": 62, \"COMPONENT_EXT_QUEUE\": 63, \"REL\": 64, \"BIREL\": 65, \"REL_U\": 66, \"REL_D\": 67, \"REL_L\": 68, \"REL_R\": 69, \"REL_B\": 70, \"REL_INDEX\": 71, \"UPDATE_EL_STYLE\": 72, \"UPDATE_REL_STYLE\": 73, \"UPDATE_LAYOUT_CONFIG\": 74, \"attribute\": 75, \"STR\": 76, \"STR_KEY\": 77, \"STR_VALUE\": 78, \"ATTRIBUTE\": 79, \"ATTRIBUTE_EMPTY\": 80, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 6: \"direction_tb\", 7: \"direction_bt\", 8: \"direction_rl\", 9: \"direction_lr\", 11: \"C4_CONTEXT\", 12: \"NEWLINE\", 14: \"EOF\", 15: \"C4_CONTAINER\", 16: \"C4_COMPONENT\", 17: \"C4_DYNAMIC\", 18: \"C4_DEPLOYMENT\", 22: \"title\", 23: \"accDescription\", 24: \"acc_title\", 25: \"acc_title_value\", 26: \"acc_descr\", 27: \"acc_descr_value\", 28: \"acc_descr_multiline_value\", 33: \"LBRACE\", 34: \"ENTERPRISE_BOUNDARY\", 36: \"SYSTEM_BOUNDARY\", 37: \"BOUNDARY\", 38: \"CONTAINER_BOUNDARY\", 39: \"NODE\", 40: \"NODE_L\", 41: \"NODE_R\", 42: \"RBRACE\", 44: \"PERSON\", 45: \"PERSON_EXT\", 46: \"SYSTEM\", 47: \"SYSTEM_DB\", 48: \"SYSTEM_QUEUE\", 49: \"SYSTEM_EXT\", 50: \"SYSTEM_EXT_DB\", 51: \"SYSTEM_EXT_QUEUE\", 52: \"CONTAINER\", 53: \"CONTAINER_DB\", 54: \"CONTAINER_QUEUE\", 55: \"CONTAINER_EXT\", 56: \"CONTAINER_EXT_DB\", 57: \"CONTAINER_EXT_QUEUE\", 58: \"COMPONENT\", 59: \"COMPONENT_DB\", 60: \"COMPONENT_QUEUE\", 61: \"COMPONENT_EXT\", 62: \"COMPONENT_EXT_DB\", 63: \"COMPONENT_EXT_QUEUE\", 64: \"REL\", 65: \"BIREL\", 66: \"REL_U\", 67: \"REL_D\", 68: \"REL_L\", 69: \"REL_R\", 70: \"REL_B\", 71: \"REL_INDEX\", 72: \"UPDATE_EL_STYLE\", 73: \"UPDATE_REL_STYLE\", 74: \"UPDATE_LAYOUT_CONFIG\", 76: \"STR\", 77: \"STR_KEY\", 78: \"STR_VALUE\", 79: \"ATTRIBUTE\", 80: \"ATTRIBUTE_EMPTY\" },\n productions_: [0, [3, 1], [3, 1], [5, 1], [5, 1], [5, 1], [5, 1], [4, 1], [10, 4], [10, 4], [10, 4], [10, 4], [10, 4], [13, 1], [13, 1], [13, 2], [19, 1], [19, 2], [19, 3], [21, 1], [21, 1], [21, 2], [21, 2], [21, 1], [29, 3], [30, 3], [30, 3], [30, 4], [32, 2], [32, 2], [32, 2], [32, 2], [32, 2], [32, 2], [32, 2], [31, 1], [20, 1], [20, 2], [20, 3], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 1], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [35, 1], [35, 2], [75, 1], [75, 2], [75, 1], [75, 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.setDirection(\"TB\");\n break;\n case 4:\n yy.setDirection(\"BT\");\n break;\n case 5:\n yy.setDirection(\"RL\");\n break;\n case 6:\n yy.setDirection(\"LR\");\n break;\n case 8:\n case 9:\n case 10:\n case 11:\n case 12:\n yy.setC4Type($$[$0 - 3]);\n break;\n case 19:\n yy.setTitle($$[$0].substring(6));\n this.$ = $$[$0].substring(6);\n break;\n case 20:\n yy.setAccDescription($$[$0].substring(15));\n this.$ = $$[$0].substring(15);\n break;\n case 21:\n this.$ = $$[$0].trim();\n yy.setTitle(this.$);\n break;\n case 22:\n case 23:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 28:\n $$[$0].splice(2, 0, \"ENTERPRISE\");\n yy.addPersonOrSystemBoundary(...$$[$0]);\n this.$ = $$[$0];\n break;\n case 29:\n $$[$0].splice(2, 0, \"SYSTEM\");\n yy.addPersonOrSystemBoundary(...$$[$0]);\n this.$ = $$[$0];\n break;\n case 30:\n yy.addPersonOrSystemBoundary(...$$[$0]);\n this.$ = $$[$0];\n break;\n case 31:\n $$[$0].splice(2, 0, \"CONTAINER\");\n yy.addContainerBoundary(...$$[$0]);\n this.$ = $$[$0];\n break;\n case 32:\n yy.addDeploymentNode(\"node\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 33:\n yy.addDeploymentNode(\"nodeL\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 34:\n yy.addDeploymentNode(\"nodeR\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 35:\n yy.popBoundaryParseStack();\n break;\n case 39:\n yy.addPersonOrSystem(\"person\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 40:\n yy.addPersonOrSystem(\"external_person\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 41:\n yy.addPersonOrSystem(\"system\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 42:\n yy.addPersonOrSystem(\"system_db\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 43:\n yy.addPersonOrSystem(\"system_queue\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 44:\n yy.addPersonOrSystem(\"external_system\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 45:\n yy.addPersonOrSystem(\"external_system_db\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 46:\n yy.addPersonOrSystem(\"external_system_queue\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 47:\n yy.addContainer(\"container\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 48:\n yy.addContainer(\"container_db\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 49:\n yy.addContainer(\"container_queue\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 50:\n yy.addContainer(\"external_container\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 51:\n yy.addContainer(\"external_container_db\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 52:\n yy.addContainer(\"external_container_queue\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 53:\n yy.addComponent(\"component\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 54:\n yy.addComponent(\"component_db\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 55:\n yy.addComponent(\"component_queue\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 56:\n yy.addComponent(\"external_component\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 57:\n yy.addComponent(\"external_component_db\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 58:\n yy.addComponent(\"external_component_queue\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 60:\n yy.addRel(\"rel\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 61:\n yy.addRel(\"birel\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 62:\n yy.addRel(\"rel_u\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 63:\n yy.addRel(\"rel_d\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 64:\n yy.addRel(\"rel_l\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 65:\n yy.addRel(\"rel_r\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 66:\n yy.addRel(\"rel_b\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 67:\n $$[$0].splice(0, 1);\n yy.addRel(\"rel\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 68:\n yy.updateElStyle(\"update_el_style\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 69:\n yy.updateRelStyle(\"update_rel_style\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 70:\n yy.updateLayoutConfig(\"update_layout_config\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 71:\n this.$ = [$$[$0]];\n break;\n case 72:\n $$[$0].unshift($$[$0 - 1]);\n this.$ = $$[$0];\n break;\n case 73:\n case 75:\n this.$ = $$[$0].trim();\n break;\n case 74:\n let kv = {};\n kv[$$[$0 - 1].trim()] = $$[$0].trim();\n this.$ = kv;\n break;\n case 76:\n this.$ = \"\";\n break;\n }\n }, \"anonymous\"),\n table: [{ 3: 1, 4: 2, 5: 3, 6: [1, 5], 7: [1, 6], 8: [1, 7], 9: [1, 8], 10: 4, 11: [1, 9], 15: [1, 10], 16: [1, 11], 17: [1, 12], 18: [1, 13] }, { 1: [3] }, { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 7] }, { 1: [2, 3] }, { 1: [2, 4] }, { 1: [2, 5] }, { 1: [2, 6] }, { 12: [1, 14] }, { 12: [1, 15] }, { 12: [1, 16] }, { 12: [1, 17] }, { 12: [1, 18] }, { 13: 19, 19: 20, 20: 21, 21: 22, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 13: 70, 19: 20, 20: 21, 21: 22, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 13: 71, 19: 20, 20: 21, 21: 22, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 13: 72, 19: 20, 20: 21, 21: 22, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 13: 73, 19: 20, 20: 21, 21: 22, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 14: [1, 74] }, o($VH, [2, 13], { 43: 23, 29: 49, 30: 61, 32: 62, 20: 75, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }), o($VH, [2, 14]), o($VI, [2, 16], { 12: [1, 76] }), o($VH, [2, 36], { 12: [1, 77] }), o($VJ, [2, 19]), o($VJ, [2, 20]), { 25: [1, 78] }, { 27: [1, 79] }, o($VJ, [2, 23]), { 35: 80, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 86, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 87, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 88, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 89, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 90, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 91, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 92, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 93, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 94, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 95, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 96, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 97, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 98, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 99, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 100, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 101, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 102, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 103, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 104, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, o($VO, [2, 59]), { 35: 105, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 106, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 107, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 108, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 109, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 110, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 111, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 112, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 113, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 114, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 115, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 20: 116, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 12: [1, 118], 33: [1, 117] }, { 35: 119, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 120, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 121, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 122, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 123, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 124, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 125, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 14: [1, 126] }, { 14: [1, 127] }, { 14: [1, 128] }, { 14: [1, 129] }, { 1: [2, 8] }, o($VH, [2, 15]), o($VI, [2, 17], { 21: 22, 19: 130, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4 }), o($VH, [2, 37], { 19: 20, 20: 21, 21: 22, 43: 23, 29: 49, 30: 61, 32: 62, 13: 131, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }), o($VJ, [2, 21]), o($VJ, [2, 22]), o($VO, [2, 39]), o($VP, [2, 71], { 75: 81, 35: 132, 76: $VK, 77: $VL, 79: $VM, 80: $VN }), o($VQ, [2, 73]), { 78: [1, 133] }, o($VQ, [2, 75]), o($VQ, [2, 76]), o($VO, [2, 40]), o($VO, [2, 41]), o($VO, [2, 42]), o($VO, [2, 43]), o($VO, [2, 44]), o($VO, [2, 45]), o($VO, [2, 46]), o($VO, [2, 47]), o($VO, [2, 48]), o($VO, [2, 49]), o($VO, [2, 50]), o($VO, [2, 51]), o($VO, [2, 52]), o($VO, [2, 53]), o($VO, [2, 54]), o($VO, [2, 55]), o($VO, [2, 56]), o($VO, [2, 57]), o($VO, [2, 58]), o($VO, [2, 60]), o($VO, [2, 61]), o($VO, [2, 62]), o($VO, [2, 63]), o($VO, [2, 64]), o($VO, [2, 65]), o($VO, [2, 66]), o($VO, [2, 67]), o($VO, [2, 68]), o($VO, [2, 69]), o($VO, [2, 70]), { 31: 134, 42: [1, 135] }, { 12: [1, 136] }, { 33: [1, 137] }, o($VR, [2, 28]), o($VR, [2, 29]), o($VR, [2, 30]), o($VR, [2, 31]), o($VR, [2, 32]), o($VR, [2, 33]), o($VR, [2, 34]), { 1: [2, 9] }, { 1: [2, 10] }, { 1: [2, 11] }, { 1: [2, 12] }, o($VI, [2, 18]), o($VH, [2, 38]), o($VP, [2, 72]), o($VQ, [2, 74]), o($VO, [2, 24]), o($VO, [2, 35]), o($VS, [2, 25]), o($VS, [2, 26], { 12: [1, 138] }), o($VS, [2, 27])],\n defaultActions: { 2: [2, 1], 3: [2, 2], 4: [2, 7], 5: [2, 3], 6: [2, 4], 7: [2, 5], 8: [2, 6], 74: [2, 8], 126: [2, 9], 127: [2, 10], 128: [2, 11], 129: [2, 12] },\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 c2 = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c2 + \"^\";\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: {},\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 6;\n break;\n case 1:\n return 7;\n break;\n case 2:\n return 8;\n break;\n case 3:\n return 9;\n break;\n case 4:\n return 22;\n break;\n case 5:\n return 23;\n break;\n case 6:\n this.begin(\"acc_title\");\n return 24;\n break;\n case 7:\n this.popState();\n return \"acc_title_value\";\n break;\n case 8:\n this.begin(\"acc_descr\");\n return 26;\n break;\n case 9:\n this.popState();\n return \"acc_descr_value\";\n break;\n case 10:\n this.begin(\"acc_descr_multiline\");\n break;\n case 11:\n this.popState();\n break;\n case 12:\n return \"acc_descr_multiline_value\";\n break;\n case 13:\n break;\n case 14:\n c;\n break;\n case 15:\n return 12;\n break;\n case 16:\n break;\n case 17:\n return 11;\n break;\n case 18:\n return 15;\n break;\n case 19:\n return 16;\n break;\n case 20:\n return 17;\n break;\n case 21:\n return 18;\n break;\n case 22:\n this.begin(\"person_ext\");\n return 45;\n break;\n case 23:\n this.begin(\"person\");\n return 44;\n break;\n case 24:\n this.begin(\"system_ext_queue\");\n return 51;\n break;\n case 25:\n this.begin(\"system_ext_db\");\n return 50;\n break;\n case 26:\n this.begin(\"system_ext\");\n return 49;\n break;\n case 27:\n this.begin(\"system_queue\");\n return 48;\n break;\n case 28:\n this.begin(\"system_db\");\n return 47;\n break;\n case 29:\n this.begin(\"system\");\n return 46;\n break;\n case 30:\n this.begin(\"boundary\");\n return 37;\n break;\n case 31:\n this.begin(\"enterprise_boundary\");\n return 34;\n break;\n case 32:\n this.begin(\"system_boundary\");\n return 36;\n break;\n case 33:\n this.begin(\"container_ext_queue\");\n return 57;\n break;\n case 34:\n this.begin(\"container_ext_db\");\n return 56;\n break;\n case 35:\n this.begin(\"container_ext\");\n return 55;\n break;\n case 36:\n this.begin(\"container_queue\");\n return 54;\n break;\n case 37:\n this.begin(\"container_db\");\n return 53;\n break;\n case 38:\n this.begin(\"container\");\n return 52;\n break;\n case 39:\n this.begin(\"container_boundary\");\n return 38;\n break;\n case 40:\n this.begin(\"component_ext_queue\");\n return 63;\n break;\n case 41:\n this.begin(\"component_ext_db\");\n return 62;\n break;\n case 42:\n this.begin(\"component_ext\");\n return 61;\n break;\n case 43:\n this.begin(\"component_queue\");\n return 60;\n break;\n case 44:\n this.begin(\"component_db\");\n return 59;\n break;\n case 45:\n this.begin(\"component\");\n return 58;\n break;\n case 46:\n this.begin(\"node\");\n return 39;\n break;\n case 47:\n this.begin(\"node\");\n return 39;\n break;\n case 48:\n this.begin(\"node_l\");\n return 40;\n break;\n case 49:\n this.begin(\"node_r\");\n return 41;\n break;\n case 50:\n this.begin(\"rel\");\n return 64;\n break;\n case 51:\n this.begin(\"birel\");\n return 65;\n break;\n case 52:\n this.begin(\"rel_u\");\n return 66;\n break;\n case 53:\n this.begin(\"rel_u\");\n return 66;\n break;\n case 54:\n this.begin(\"rel_d\");\n return 67;\n break;\n case 55:\n this.begin(\"rel_d\");\n return 67;\n break;\n case 56:\n this.begin(\"rel_l\");\n return 68;\n break;\n case 57:\n this.begin(\"rel_l\");\n return 68;\n break;\n case 58:\n this.begin(\"rel_r\");\n return 69;\n break;\n case 59:\n this.begin(\"rel_r\");\n return 69;\n break;\n case 60:\n this.begin(\"rel_b\");\n return 70;\n break;\n case 61:\n this.begin(\"rel_index\");\n return 71;\n break;\n case 62:\n this.begin(\"update_el_style\");\n return 72;\n break;\n case 63:\n this.begin(\"update_rel_style\");\n return 73;\n break;\n case 64:\n this.begin(\"update_layout_config\");\n return 74;\n break;\n case 65:\n return \"EOF_IN_STRUCT\";\n break;\n case 66:\n this.begin(\"attribute\");\n return \"ATTRIBUTE_EMPTY\";\n break;\n case 67:\n this.begin(\"attribute\");\n break;\n case 68:\n this.popState();\n this.popState();\n break;\n case 69:\n return 80;\n break;\n case 70:\n break;\n case 71:\n return 80;\n break;\n case 72:\n this.begin(\"string\");\n break;\n case 73:\n this.popState();\n break;\n case 74:\n return \"STR\";\n break;\n case 75:\n this.begin(\"string_kv\");\n break;\n case 76:\n this.begin(\"string_kv_key\");\n return \"STR_KEY\";\n break;\n case 77:\n this.popState();\n this.begin(\"string_kv_value\");\n break;\n case 78:\n return \"STR_VALUE\";\n break;\n case 79:\n this.popState();\n this.popState();\n break;\n case 80:\n return \"STR\";\n break;\n case 81:\n return \"LBRACE\";\n break;\n case 82:\n return \"RBRACE\";\n break;\n case 83:\n return \"SPACE\";\n break;\n case 84:\n return \"EOL\";\n break;\n case 85:\n return 14;\n break;\n }\n }, \"anonymous\"),\n rules: [/^(?:.*direction\\s+TB[^\\n]*)/, /^(?:.*direction\\s+BT[^\\n]*)/, /^(?:.*direction\\s+RL[^\\n]*)/, /^(?:.*direction\\s+LR[^\\n]*)/, /^(?:title\\s[^#\\n;]+)/, /^(?:accDescription\\s[^#\\n;]+)/, /^(?:accTitle\\s*:\\s*)/, /^(?:(?!\\n||)*[^\\n]*)/, /^(?:accDescr\\s*:\\s*)/, /^(?:(?!\\n||)*[^\\n]*)/, /^(?:accDescr\\s*\\{\\s*)/, /^(?:[\\}])/, /^(?:[^\\}]*)/, /^(?:%%(?!\\{)*[^\\n]*(\\r?\\n?)+)/, /^(?:%%[^\\n]*(\\r?\\n)*)/, /^(?:\\s*(\\r?\\n)+)/, /^(?:\\s+)/, /^(?:C4Context\\b)/, /^(?:C4Container\\b)/, /^(?:C4Component\\b)/, /^(?:C4Dynamic\\b)/, /^(?:C4Deployment\\b)/, /^(?:Person_Ext\\b)/, /^(?:Person\\b)/, /^(?:SystemQueue_Ext\\b)/, /^(?:SystemDb_Ext\\b)/, /^(?:System_Ext\\b)/, /^(?:SystemQueue\\b)/, /^(?:SystemDb\\b)/, /^(?:System\\b)/, /^(?:Boundary\\b)/, /^(?:Enterprise_Boundary\\b)/, /^(?:System_Boundary\\b)/, /^(?:ContainerQueue_Ext\\b)/, /^(?:ContainerDb_Ext\\b)/, /^(?:Container_Ext\\b)/, /^(?:ContainerQueue\\b)/, /^(?:ContainerDb\\b)/, /^(?:Container\\b)/, /^(?:Container_Boundary\\b)/, /^(?:ComponentQueue_Ext\\b)/, /^(?:ComponentDb_Ext\\b)/, /^(?:Component_Ext\\b)/, /^(?:ComponentQueue\\b)/, /^(?:ComponentDb\\b)/, /^(?:Component\\b)/, /^(?:Deployment_Node\\b)/, /^(?:Node\\b)/, /^(?:Node_L\\b)/, /^(?:Node_R\\b)/, /^(?:Rel\\b)/, /^(?:BiRel\\b)/, /^(?:Rel_Up\\b)/, /^(?:Rel_U\\b)/, /^(?:Rel_Down\\b)/, /^(?:Rel_D\\b)/, /^(?:Rel_Left\\b)/, /^(?:Rel_L\\b)/, /^(?:Rel_Right\\b)/, /^(?:Rel_R\\b)/, /^(?:Rel_Back\\b)/, /^(?:RelIndex\\b)/, /^(?:UpdateElementStyle\\b)/, /^(?:UpdateRelStyle\\b)/, /^(?:UpdateLayoutConfig\\b)/, /^(?:$)/, /^(?:[(][ ]*[,])/, /^(?:[(])/, /^(?:[)])/, /^(?:,,)/, /^(?:,)/, /^(?:[ ]*[\"][\"])/, /^(?:[ ]*[\"])/, /^(?:[\"])/, /^(?:[^\"]*)/, /^(?:[ ]*[\\$])/, /^(?:[^=]*)/, /^(?:[=][ ]*[\"])/, /^(?:[^\"]+)/, /^(?:[\"])/, /^(?:[^,]+)/, /^(?:\\{)/, /^(?:\\})/, /^(?:[\\s]+)/, /^(?:[\\n\\r]+)/, /^(?:$)/],\n conditions: { \"acc_descr_multiline\": { \"rules\": [11, 12], \"inclusive\": false }, \"acc_descr\": { \"rules\": [9], \"inclusive\": false }, \"acc_title\": { \"rules\": [7], \"inclusive\": false }, \"string_kv_value\": { \"rules\": [78, 79], \"inclusive\": false }, \"string_kv_key\": { \"rules\": [77], \"inclusive\": false }, \"string_kv\": { \"rules\": [76], \"inclusive\": false }, \"string\": { \"rules\": [73, 74], \"inclusive\": false }, \"attribute\": { \"rules\": [68, 69, 70, 71, 72, 75, 80], \"inclusive\": false }, \"update_layout_config\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"update_rel_style\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"update_el_style\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"rel_b\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"rel_r\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"rel_l\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"rel_d\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"rel_u\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"rel_bi\": { \"rules\": [], \"inclusive\": false }, \"rel\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"node_r\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"node_l\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"node\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"index\": { \"rules\": [], \"inclusive\": false }, \"rel_index\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"component_ext_queue\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"component_ext_db\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"component_ext\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"component_queue\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"component_db\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"component\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"container_boundary\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"container_ext_queue\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"container_ext_db\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"container_ext\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"container_queue\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"container_db\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"container\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"birel\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"system_boundary\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"enterprise_boundary\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"boundary\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"system_ext_queue\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"system_ext_db\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"system_ext\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"system_queue\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"system_db\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"system\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"person_ext\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"person\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 2, 3, 4, 5, 6, 8, 10, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 81, 82, 83, 84, 85], \"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 c4Diagram_default = parser;\n\n// src/diagram-api/requiredConfig.ts\nvar getRequiredConfig = /* @__PURE__ */ __name((section) => getConfig()[section], \"getRequiredConfig\");\n\n// src/diagrams/c4/c4Db.ts\nvar assignAttributes = /* @__PURE__ */ __name((bag, attrs) => {\n for (const [field, value] of Object.entries(attrs)) {\n if (value === void 0) {\n continue;\n }\n if (typeof value === \"object\") {\n const [key, val] = Object.entries(value)[0];\n bag[key] = val;\n } else {\n bag[field] = value;\n }\n }\n}, \"assignAttributes\");\nvar createGlobalBoundary = /* @__PURE__ */ __name(() => ({\n alias: \"global\",\n label: { text: \"global\" },\n type: { text: \"global\" },\n tags: null,\n link: null,\n parentBoundary: \"\"\n // The layout fields are populated later by the renderer.\n}), \"createGlobalBoundary\");\nvar c4ShapeArray = [];\nvar boundaryParseStack = [\"\"];\nvar currentBoundaryParse = \"global\";\nvar parentBoundaryParse = \"\";\nvar boundaries = [createGlobalBoundary()];\nvar rels = [];\nvar title = \"\";\nvar wrapEnabled = false;\nvar c4ShapeInRow = 4;\nvar c4BoundaryInRow = 2;\nvar c4Type;\nvar getC4Type = /* @__PURE__ */ __name(function() {\n return c4Type;\n}, \"getC4Type\");\nvar setC4Type = /* @__PURE__ */ __name(function(c4TypeParam) {\n const sanitizedText = sanitizeText(c4TypeParam, getConfig());\n c4Type = sanitizedText;\n}, \"setC4Type\");\nvar addRel = /* @__PURE__ */ __name(function(type, from, to, label, techn, descr, sprite, tags, link) {\n if (type === void 0 || type === null || from === void 0 || from === null || to === void 0 || to === null || label === void 0 || label === null) {\n return;\n }\n let rel = {};\n const old = rels.find((rel2) => rel2.from === from && rel2.to === to);\n if (old) {\n rel = old;\n } else {\n rels.push(rel);\n }\n rel.type = type;\n rel.from = from;\n rel.to = to;\n rel.label = { text: label };\n if (techn === void 0 || techn === null) {\n rel.techn = { text: \"\" };\n } else {\n if (typeof techn === \"object\") {\n const [key, value] = Object.entries(techn)[0];\n rel[key] = { text: value };\n } else {\n rel.techn = { text: techn };\n }\n }\n if (descr === void 0 || descr === null) {\n rel.descr = { text: \"\" };\n } else {\n if (typeof descr === \"object\") {\n const [key, value] = Object.entries(descr)[0];\n rel[key] = { text: value };\n } else {\n rel.descr = { text: descr };\n }\n }\n assignAttributes(rel, { sprite, tags, link });\n rel.wrap = autoWrap();\n}, \"addRel\");\nvar addPersonOrSystem = /* @__PURE__ */ __name(function(typeC4Shape, alias, label, descr, sprite, tags, link) {\n if (alias === null || label === null) {\n return;\n }\n let personOrSystem = {};\n const old = c4ShapeArray.find((personOrSystem2) => personOrSystem2.alias === alias);\n if (old && alias === old.alias) {\n personOrSystem = old;\n } else {\n personOrSystem.alias = alias;\n c4ShapeArray.push(personOrSystem);\n }\n if (label === void 0 || label === null) {\n personOrSystem.label = { text: \"\" };\n } else {\n personOrSystem.label = { text: label };\n }\n if (descr === void 0 || descr === null) {\n personOrSystem.descr = { text: \"\" };\n } else {\n if (typeof descr === \"object\") {\n const [key, value] = Object.entries(descr)[0];\n personOrSystem[key] = { text: value };\n } else {\n personOrSystem.descr = { text: descr };\n }\n }\n assignAttributes(personOrSystem, { sprite, tags, link });\n personOrSystem.typeC4Shape = { text: typeC4Shape };\n personOrSystem.parentBoundary = currentBoundaryParse;\n personOrSystem.wrap = autoWrap();\n}, \"addPersonOrSystem\");\nvar addContainer = /* @__PURE__ */ __name(function(typeC4Shape, alias, label, techn, descr, sprite, tags, link) {\n if (alias === null || label === null) {\n return;\n }\n let container = {};\n const old = c4ShapeArray.find((container2) => container2.alias === alias);\n if (old && alias === old.alias) {\n container = old;\n } else {\n container.alias = alias;\n c4ShapeArray.push(container);\n }\n if (label === void 0 || label === null) {\n container.label = { text: \"\" };\n } else {\n container.label = { text: label };\n }\n if (techn === void 0 || techn === null) {\n container.techn = { text: \"\" };\n } else {\n if (typeof techn === \"object\") {\n const [key, value] = Object.entries(techn)[0];\n container[key] = { text: value };\n } else {\n container.techn = { text: techn };\n }\n }\n if (descr === void 0 || descr === null) {\n container.descr = { text: \"\" };\n } else {\n if (typeof descr === \"object\") {\n const [key, value] = Object.entries(descr)[0];\n container[key] = { text: value };\n } else {\n container.descr = { text: descr };\n }\n }\n assignAttributes(container, { sprite, tags, link });\n container.wrap = autoWrap();\n container.typeC4Shape = { text: typeC4Shape };\n container.parentBoundary = currentBoundaryParse;\n}, \"addContainer\");\nvar addComponent = /* @__PURE__ */ __name(function(typeC4Shape, alias, label, techn, descr, sprite, tags, link) {\n if (alias === null || label === null) {\n return;\n }\n let component = {};\n const old = c4ShapeArray.find((component2) => component2.alias === alias);\n if (old && alias === old.alias) {\n component = old;\n } else {\n component.alias = alias;\n c4ShapeArray.push(component);\n }\n if (label === void 0 || label === null) {\n component.label = { text: \"\" };\n } else {\n component.label = { text: label };\n }\n if (techn === void 0 || techn === null) {\n component.techn = { text: \"\" };\n } else {\n if (typeof techn === \"object\") {\n const [key, value] = Object.entries(techn)[0];\n component[key] = { text: value };\n } else {\n component.techn = { text: techn };\n }\n }\n if (descr === void 0 || descr === null) {\n component.descr = { text: \"\" };\n } else {\n if (typeof descr === \"object\") {\n const [key, value] = Object.entries(descr)[0];\n component[key] = { text: value };\n } else {\n component.descr = { text: descr };\n }\n }\n assignAttributes(component, { sprite, tags, link });\n component.wrap = autoWrap();\n component.typeC4Shape = { text: typeC4Shape };\n component.parentBoundary = currentBoundaryParse;\n}, \"addComponent\");\nvar addPersonOrSystemBoundary = /* @__PURE__ */ __name(function(alias, label, type, tags, link) {\n if (alias === null || label === null) {\n return;\n }\n let boundary = {};\n const old = boundaries.find((boundary2) => boundary2.alias === alias);\n if (old && alias === old.alias) {\n boundary = old;\n } else {\n boundary.alias = alias;\n boundaries.push(boundary);\n }\n if (label === void 0 || label === null) {\n boundary.label = { text: \"\" };\n } else {\n boundary.label = { text: label };\n }\n if (type === void 0 || type === null) {\n boundary.type = { text: \"system\" };\n } else {\n if (typeof type === \"object\") {\n const [key, value] = Object.entries(type)[0];\n boundary[key] = { text: value };\n } else {\n boundary.type = { text: type };\n }\n }\n assignAttributes(boundary, { tags, link });\n boundary.parentBoundary = currentBoundaryParse;\n boundary.wrap = autoWrap();\n parentBoundaryParse = currentBoundaryParse;\n currentBoundaryParse = alias;\n boundaryParseStack.push(parentBoundaryParse);\n}, \"addPersonOrSystemBoundary\");\nvar addContainerBoundary = /* @__PURE__ */ __name(function(alias, label, type, tags, link) {\n if (alias === null || label === null) {\n return;\n }\n let boundary = {};\n const old = boundaries.find((boundary2) => boundary2.alias === alias);\n if (old && alias === old.alias) {\n boundary = old;\n } else {\n boundary.alias = alias;\n boundaries.push(boundary);\n }\n if (label === void 0 || label === null) {\n boundary.label = { text: \"\" };\n } else {\n boundary.label = { text: label };\n }\n if (type === void 0 || type === null) {\n boundary.type = { text: \"container\" };\n } else {\n if (typeof type === \"object\") {\n const [key, value] = Object.entries(type)[0];\n boundary[key] = { text: value };\n } else {\n boundary.type = { text: type };\n }\n }\n assignAttributes(boundary, { tags, link });\n boundary.parentBoundary = currentBoundaryParse;\n boundary.wrap = autoWrap();\n parentBoundaryParse = currentBoundaryParse;\n currentBoundaryParse = alias;\n boundaryParseStack.push(parentBoundaryParse);\n}, \"addContainerBoundary\");\nvar addDeploymentNode = /* @__PURE__ */ __name(function(nodeType, alias, label, type, descr, sprite, tags, link) {\n if (alias === null || label === null) {\n return;\n }\n let boundary = {};\n const old = boundaries.find((boundary2) => boundary2.alias === alias);\n if (old && alias === old.alias) {\n boundary = old;\n } else {\n boundary.alias = alias;\n boundaries.push(boundary);\n }\n if (label === void 0 || label === null) {\n boundary.label = { text: \"\" };\n } else {\n boundary.label = { text: label };\n }\n if (type === void 0 || type === null) {\n boundary.type = { text: \"node\" };\n } else {\n if (typeof type === \"object\") {\n const [key, value] = Object.entries(type)[0];\n boundary[key] = { text: value };\n } else {\n boundary.type = { text: type };\n }\n }\n if (descr === void 0 || descr === null) {\n boundary.descr = { text: \"\" };\n } else {\n if (typeof descr === \"object\") {\n const [key, value] = Object.entries(descr)[0];\n boundary[key] = { text: value };\n } else {\n boundary.descr = { text: descr };\n }\n }\n assignAttributes(boundary, { tags, link });\n boundary.nodeType = nodeType;\n boundary.parentBoundary = currentBoundaryParse;\n boundary.wrap = autoWrap();\n parentBoundaryParse = currentBoundaryParse;\n currentBoundaryParse = alias;\n boundaryParseStack.push(parentBoundaryParse);\n}, \"addDeploymentNode\");\nvar popBoundaryParseStack = /* @__PURE__ */ __name(function() {\n currentBoundaryParse = parentBoundaryParse;\n boundaryParseStack.pop();\n parentBoundaryParse = boundaryParseStack.pop();\n boundaryParseStack.push(parentBoundaryParse);\n}, \"popBoundaryParseStack\");\nvar updateElStyle = /* @__PURE__ */ __name(function(typeC4Shape, elementName, bgColor, fontColor, borderColor, shadowing, shape, sprite, techn, legendText, legendSprite) {\n let old = c4ShapeArray.find(\n (element) => element.alias === elementName\n );\n if (old === void 0) {\n old = boundaries.find((element) => element.alias === elementName);\n if (old === void 0) {\n return;\n }\n }\n if (bgColor !== void 0 && bgColor !== null) {\n if (typeof bgColor === \"object\") {\n const [key, value] = Object.entries(bgColor)[0];\n old[key] = value;\n } else {\n old.bgColor = bgColor;\n }\n }\n if (fontColor !== void 0 && fontColor !== null) {\n if (typeof fontColor === \"object\") {\n const [key, value] = Object.entries(fontColor)[0];\n old[key] = value;\n } else {\n old.fontColor = fontColor;\n }\n }\n if (borderColor !== void 0 && borderColor !== null) {\n if (typeof borderColor === \"object\") {\n const [key, value] = Object.entries(borderColor)[0];\n old[key] = value;\n } else {\n old.borderColor = borderColor;\n }\n }\n if (shadowing !== void 0 && shadowing !== null) {\n if (typeof shadowing === \"object\") {\n const [key, value] = Object.entries(shadowing)[0];\n old[key] = value;\n } else {\n old.shadowing = shadowing;\n }\n }\n if (shape !== void 0 && shape !== null) {\n if (typeof shape === \"object\") {\n const [key, value] = Object.entries(shape)[0];\n old[key] = value;\n } else {\n old.shape = shape;\n }\n }\n if (sprite !== void 0 && sprite !== null) {\n if (typeof sprite === \"object\") {\n const [key, value] = Object.entries(sprite)[0];\n old[key] = value;\n } else {\n old.sprite = sprite;\n }\n }\n if (techn !== void 0 && techn !== null) {\n if (typeof techn === \"object\") {\n const [key, value] = Object.entries(techn)[0];\n old[key] = value;\n } else {\n old.techn = techn;\n }\n }\n if (legendText !== void 0 && legendText !== null) {\n if (typeof legendText === \"object\") {\n const [key, value] = Object.entries(legendText)[0];\n old[key] = value;\n } else {\n old.legendText = legendText;\n }\n }\n if (legendSprite !== void 0 && legendSprite !== null) {\n if (typeof legendSprite === \"object\") {\n const [key, value] = Object.entries(legendSprite)[0];\n old[key] = value;\n } else {\n old.legendSprite = legendSprite;\n }\n }\n}, \"updateElStyle\");\nvar updateRelStyle = /* @__PURE__ */ __name(function(typeC4Shape, from, to, textColor, lineColor, offsetX, offsetY) {\n const old = rels.find((rel) => rel.from === from && rel.to === to);\n if (old === void 0) {\n return;\n }\n if (textColor !== void 0 && textColor !== null) {\n if (typeof textColor === \"object\") {\n const [key, value] = Object.entries(textColor)[0];\n old[key] = value;\n } else {\n old.textColor = textColor;\n }\n }\n if (lineColor !== void 0 && lineColor !== null) {\n if (typeof lineColor === \"object\") {\n const [key, value] = Object.entries(lineColor)[0];\n old[key] = value;\n } else {\n old.lineColor = lineColor;\n }\n }\n if (offsetX !== void 0 && offsetX !== null) {\n if (typeof offsetX === \"object\") {\n const [key, value] = Object.entries(offsetX)[0];\n old[key] = parseInt(value);\n } else {\n old.offsetX = parseInt(offsetX);\n }\n }\n if (offsetY !== void 0 && offsetY !== null) {\n if (typeof offsetY === \"object\") {\n const [key, value] = Object.entries(offsetY)[0];\n old[key] = parseInt(value);\n } else {\n old.offsetY = parseInt(offsetY);\n }\n }\n}, \"updateRelStyle\");\nvar updateLayoutConfig = /* @__PURE__ */ __name(function(typeC4Shape, c4ShapeInRowParam, c4BoundaryInRowParam) {\n let c4ShapeInRowValue = c4ShapeInRow;\n let c4BoundaryInRowValue = c4BoundaryInRow;\n if (typeof c4ShapeInRowParam === \"object\") {\n const value = Object.values(c4ShapeInRowParam)[0];\n c4ShapeInRowValue = parseInt(value);\n } else {\n c4ShapeInRowValue = parseInt(c4ShapeInRowParam);\n }\n if (typeof c4BoundaryInRowParam === \"object\") {\n const value = Object.values(c4BoundaryInRowParam)[0];\n c4BoundaryInRowValue = parseInt(value);\n } else {\n c4BoundaryInRowValue = parseInt(c4BoundaryInRowParam);\n }\n if (c4ShapeInRowValue >= 1) {\n c4ShapeInRow = c4ShapeInRowValue;\n }\n if (c4BoundaryInRowValue >= 1) {\n c4BoundaryInRow = c4BoundaryInRowValue;\n }\n}, \"updateLayoutConfig\");\nvar getC4ShapeInRow = /* @__PURE__ */ __name(function() {\n return c4ShapeInRow;\n}, \"getC4ShapeInRow\");\nvar getC4BoundaryInRow = /* @__PURE__ */ __name(function() {\n return c4BoundaryInRow;\n}, \"getC4BoundaryInRow\");\nvar getCurrentBoundaryParse = /* @__PURE__ */ __name(function() {\n return currentBoundaryParse;\n}, \"getCurrentBoundaryParse\");\nvar getParentBoundaryParse = /* @__PURE__ */ __name(function() {\n return parentBoundaryParse;\n}, \"getParentBoundaryParse\");\nvar getC4ShapeArray = /* @__PURE__ */ __name(function(parentBoundary) {\n if (parentBoundary === void 0 || parentBoundary === null) {\n return c4ShapeArray;\n } else {\n return c4ShapeArray.filter((personOrSystem) => {\n return personOrSystem.parentBoundary === parentBoundary;\n });\n }\n}, \"getC4ShapeArray\");\nvar getC4Shape = /* @__PURE__ */ __name(function(alias) {\n return c4ShapeArray.find((personOrSystem) => personOrSystem.alias === alias);\n}, \"getC4Shape\");\nvar getC4ShapeKeys = /* @__PURE__ */ __name(function(parentBoundary) {\n return Object.keys(getC4ShapeArray(parentBoundary));\n}, \"getC4ShapeKeys\");\nvar getBoundaries = /* @__PURE__ */ __name(function(parentBoundary) {\n if (parentBoundary === void 0 || parentBoundary === null) {\n return boundaries;\n } else {\n return boundaries.filter((boundary) => boundary.parentBoundary === parentBoundary);\n }\n}, \"getBoundaries\");\nvar getBoundarys = getBoundaries;\nvar getRels = /* @__PURE__ */ __name(function() {\n return rels;\n}, \"getRels\");\nvar getTitle = /* @__PURE__ */ __name(function() {\n return title;\n}, \"getTitle\");\nvar setWrap = /* @__PURE__ */ __name(function(wrapSetting) {\n wrapEnabled = wrapSetting;\n}, \"setWrap\");\nvar autoWrap = /* @__PURE__ */ __name(function() {\n return wrapEnabled;\n}, \"autoWrap\");\nvar clear = /* @__PURE__ */ __name(function() {\n c4ShapeArray = [];\n boundaries = [createGlobalBoundary()];\n parentBoundaryParse = \"\";\n currentBoundaryParse = \"global\";\n boundaryParseStack = [\"\"];\n rels = [];\n boundaryParseStack = [\"\"];\n title = \"\";\n wrapEnabled = false;\n c4ShapeInRow = 4;\n c4BoundaryInRow = 2;\n}, \"clear\");\nvar LINETYPE = {\n SOLID: 0,\n DOTTED: 1,\n NOTE: 2,\n SOLID_CROSS: 3,\n DOTTED_CROSS: 4,\n SOLID_OPEN: 5,\n DOTTED_OPEN: 6,\n LOOP_START: 10,\n LOOP_END: 11,\n ALT_START: 12,\n ALT_ELSE: 13,\n ALT_END: 14,\n OPT_START: 15,\n OPT_END: 16,\n ACTIVE_START: 17,\n ACTIVE_END: 18,\n PAR_START: 19,\n PAR_AND: 20,\n PAR_END: 21,\n RECT_START: 22,\n RECT_END: 23,\n SOLID_POINT: 24,\n DOTTED_POINT: 25\n};\nvar ARROWTYPE = {\n FILLED: 0,\n OPEN: 1\n};\nvar PLACEMENT = {\n LEFTOF: 0,\n RIGHTOF: 1,\n OVER: 2\n};\nvar setTitle = /* @__PURE__ */ __name(function(txt) {\n const sanitizedText = sanitizeText(txt, getConfig());\n title = sanitizedText;\n}, \"setTitle\");\nvar c4Db_default = {\n addPersonOrSystem,\n addPersonOrSystemBoundary,\n addContainer,\n addContainerBoundary,\n addComponent,\n addDeploymentNode,\n popBoundaryParseStack,\n addRel,\n updateElStyle,\n updateRelStyle,\n updateLayoutConfig,\n autoWrap,\n setWrap,\n getC4ShapeArray,\n getC4Shape,\n getC4ShapeKeys,\n getBoundaries,\n getBoundarys,\n getCurrentBoundaryParse,\n getParentBoundaryParse,\n getRels,\n getTitle,\n getC4Type,\n getC4ShapeInRow,\n getC4BoundaryInRow,\n setAccTitle,\n getAccTitle,\n getAccDescription,\n setAccDescription,\n getConfig: /* @__PURE__ */ __name(() => getRequiredConfig(\"c4\"), \"getConfig\"),\n clear,\n LINETYPE,\n ARROWTYPE,\n PLACEMENT,\n setTitle,\n setC4Type\n // apply,\n};\n\n// src/diagrams/c4/svgDraw.ts\nvar drawRect2 = /* @__PURE__ */ __name(function(elem, rectData) {\n return drawRect(elem, rectData);\n}, \"drawRect\");\nvar drawRels = /* @__PURE__ */ __name((elem, rels2, conf2, diagramId) => {\n const relsElem = elem.append(\"g\");\n let i = 0;\n for (const rel of rels2) {\n const textColor = rel.textColor ? rel.textColor : \"#444444\";\n const strokeColor = rel.lineColor ? rel.lineColor : \"#444444\";\n const offsetX = rel.offsetX ? parseInt(String(rel.offsetX)) : 0;\n const offsetY = rel.offsetY ? parseInt(String(rel.offsetY)) : 0;\n const url = \"\";\n if (i === 0) {\n const line = relsElem.append(\"line\");\n line.attr(\"x1\", rel.startPoint.x);\n line.attr(\"y1\", rel.startPoint.y);\n line.attr(\"x2\", rel.endPoint.x);\n line.attr(\"y2\", rel.endPoint.y);\n line.attr(\"stroke-width\", \"1\");\n line.attr(\"stroke\", strokeColor);\n line.style(\"fill\", \"none\");\n if (rel.type !== \"rel_b\") {\n line.attr(\"marker-end\", \"url(\" + url + \"#\" + diagramId + \"-arrowhead)\");\n }\n if (rel.type === \"birel\" || rel.type === \"rel_b\") {\n line.attr(\"marker-start\", \"url(\" + url + \"#\" + diagramId + \"-arrowend)\");\n }\n i = -1;\n } else {\n const line = relsElem.append(\"path\");\n line.attr(\"fill\", \"none\").attr(\"stroke-width\", \"1\").attr(\"stroke\", strokeColor).attr(\n \"d\",\n \"Mstartx,starty Qcontrolx,controly stopx,stopy \".replaceAll(\"startx\", rel.startPoint.x).replaceAll(\"starty\", rel.startPoint.y).replaceAll(\n \"controlx\",\n rel.startPoint.x + (rel.endPoint.x - rel.startPoint.x) / 2 - (rel.endPoint.x - rel.startPoint.x) / 4\n ).replaceAll(\n \"controly\",\n rel.startPoint.y + (rel.endPoint.y - rel.startPoint.y) / 2\n ).replaceAll(\"stopx\", rel.endPoint.x).replaceAll(\"stopy\", rel.endPoint.y)\n );\n if (rel.type !== \"rel_b\") {\n line.attr(\"marker-end\", \"url(\" + url + \"#\" + diagramId + \"-arrowhead)\");\n }\n if (rel.type === \"birel\" || rel.type === \"rel_b\") {\n line.attr(\"marker-start\", \"url(\" + url + \"#\" + diagramId + \"-arrowend)\");\n }\n }\n const labelWidth = rel.label.width;\n let messageConf = conf2.messageFont();\n _drawTextCandidateFunc(conf2)(\n rel.label.text,\n relsElem,\n Math.min(rel.startPoint.x, rel.endPoint.x) + Math.abs(rel.endPoint.x - rel.startPoint.x) / 2 + offsetX,\n Math.min(rel.startPoint.y, rel.endPoint.y) + Math.abs(rel.endPoint.y - rel.startPoint.y) / 2 + offsetY,\n labelWidth,\n rel.label.height,\n { fill: textColor },\n messageConf\n );\n if (rel.techn && rel.techn.text !== \"\") {\n messageConf = conf2.messageFont();\n _drawTextCandidateFunc(conf2)(\n \"[\" + rel.techn.text + \"]\",\n relsElem,\n Math.min(rel.startPoint.x, rel.endPoint.x) + Math.abs(rel.endPoint.x - rel.startPoint.x) / 2 + offsetX,\n Math.min(rel.startPoint.y, rel.endPoint.y) + Math.abs(rel.endPoint.y - rel.startPoint.y) / 2 + conf2.messageFontSize + 5 + offsetY,\n Math.max(labelWidth, rel.techn.width),\n rel.techn.height,\n { fill: textColor, \"font-style\": \"italic\" },\n messageConf\n );\n }\n }\n}, \"drawRels\");\nvar drawBoundary = /* @__PURE__ */ __name(function(elem, boundary, conf2) {\n const boundaryElem = elem.append(\"g\");\n const fillColor = boundary.bgColor ? boundary.bgColor : \"none\";\n const strokeColor = boundary.borderColor ? boundary.borderColor : \"#444444\";\n const fontColor = boundary.fontColor ? boundary.fontColor : \"black\";\n let attrsValue = {\n \"stroke-width\": 1,\n \"stroke-dasharray\": \"7.0,7.0\"\n };\n if (boundary.nodeType) {\n attrsValue = { \"stroke-width\": 1 };\n }\n const rectData = {\n x: boundary.x,\n y: boundary.y,\n fill: fillColor,\n stroke: strokeColor,\n width: boundary.width,\n height: boundary.height,\n rx: 2.5,\n ry: 2.5,\n attrs: attrsValue\n };\n drawRect2(boundaryElem, rectData);\n let boundaryConf = conf2.boundaryFont();\n boundaryConf.fontWeight = \"bold\";\n boundaryConf.fontSize = boundaryConf.fontSize + 2;\n boundaryConf.fontColor = fontColor;\n _drawTextCandidateFunc(conf2)(\n boundary.label.text,\n boundaryElem,\n boundary.x,\n boundary.y + boundary.label.Y,\n boundary.width,\n boundary.height,\n { fill: \"#444444\" },\n boundaryConf\n );\n if (boundary.type && boundary.type.text !== \"\") {\n boundaryConf = conf2.boundaryFont();\n boundaryConf.fontColor = fontColor;\n _drawTextCandidateFunc(conf2)(\n boundary.type.text,\n boundaryElem,\n boundary.x,\n boundary.y + boundary.type.Y,\n boundary.width,\n boundary.height,\n { fill: \"#444444\" },\n boundaryConf\n );\n }\n if (boundary.descr && boundary.descr.text !== \"\") {\n boundaryConf = conf2.boundaryFont();\n boundaryConf.fontSize = boundaryConf.fontSize - 2;\n boundaryConf.fontColor = fontColor;\n _drawTextCandidateFunc(conf2)(\n boundary.descr.text,\n boundaryElem,\n boundary.x,\n boundary.y + boundary.descr.Y,\n boundary.width,\n boundary.height,\n { fill: \"#444444\" },\n boundaryConf\n );\n }\n}, \"drawBoundary\");\nvar insertDatabaseIcon = /* @__PURE__ */ __name(function(elem, id) {\n elem.append(\"defs\").append(\"symbol\").attr(\"id\", id + \"-database\").attr(\"fill-rule\", \"evenodd\").attr(\"clip-rule\", \"evenodd\").append(\"path\").attr(\"transform\", \"scale(.5)\").attr(\n \"d\",\n \"M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z\"\n );\n}, \"insertDatabaseIcon\");\nvar insertComputerIcon = /* @__PURE__ */ __name(function(elem, id) {\n elem.append(\"defs\").append(\"symbol\").attr(\"id\", id + \"-computer\").attr(\"width\", \"24\").attr(\"height\", \"24\").append(\"path\").attr(\"transform\", \"scale(.5)\").attr(\n \"d\",\n \"M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z\"\n );\n}, \"insertComputerIcon\");\nvar insertClockIcon = /* @__PURE__ */ __name(function(elem, id) {\n elem.append(\"defs\").append(\"symbol\").attr(\"id\", id + \"-clock\").attr(\"width\", \"24\").attr(\"height\", \"24\").append(\"path\").attr(\"transform\", \"scale(.5)\").attr(\n \"d\",\n \"M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z\"\n );\n}, \"insertClockIcon\");\nvar insertArrowHead = /* @__PURE__ */ __name(function(elem, id) {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"-arrowhead\").attr(\"refX\", 9).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 12).attr(\"markerHeight\", 12).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 0 0 L 10 5 L 0 10 z\");\n}, \"insertArrowHead\");\nvar insertArrowEnd = /* @__PURE__ */ __name(function(elem, id) {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"-arrowend\").attr(\"refX\", 1).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 12).attr(\"markerHeight\", 12).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 10 0 L 0 5 L 10 10 z\");\n}, \"insertArrowEnd\");\nvar insertArrowFilledHead = /* @__PURE__ */ __name(function(elem, id) {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"-filled-head\").attr(\"refX\", 18).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L14,7 L9,1 Z\");\n}, \"insertArrowFilledHead\");\nvar insertArrowCrossHead = /* @__PURE__ */ __name(function(elem, id) {\n const defs = elem.append(\"defs\");\n const marker = defs.append(\"marker\").attr(\"id\", id + \"-crosshead\").attr(\"markerWidth\", 15).attr(\"markerHeight\", 8).attr(\"orient\", \"auto\").attr(\"refX\", 16).attr(\"refY\", 4);\n marker.append(\"path\").attr(\"fill\", \"black\").attr(\"stroke\", \"#000000\").style(\"stroke-dasharray\", \"0, 0\").attr(\"stroke-width\", \"1px\").attr(\"d\", \"M 9,2 V 6 L16,4 Z\");\n marker.append(\"path\").attr(\"fill\", \"none\").attr(\"stroke\", \"#000000\").style(\"stroke-dasharray\", \"0, 0\").attr(\"stroke-width\", \"1px\").attr(\"d\", \"M 0,1 L 6,7 M 6,1 L 0,7\");\n}, \"insertArrowCrossHead\");\nvar _drawTextCandidateFunc = /* @__PURE__ */ (function() {\n function byText(content, g, x, y, width, height, textAttrs) {\n const text = g.append(\"text\").attr(\"x\", x + width / 2).attr(\"y\", y + height / 2 + 5).style(\"text-anchor\", \"middle\").text(content);\n _setTextAttrs(text, textAttrs);\n }\n __name(byText, \"byText\");\n function byTspan(content, g, x, y, width, height, textAttrs, conf2) {\n const { fontSize, fontFamily, fontWeight } = conf2;\n const lines = content.split(common_default.lineBreakRegex);\n for (let i = 0; i < lines.length; i++) {\n const dy = i * fontSize - fontSize * (lines.length - 1) / 2;\n const text = g.append(\"text\").attr(\"x\", x + width / 2).attr(\"y\", y).style(\"text-anchor\", \"middle\").attr(\"dominant-baseline\", \"middle\").style(\"font-size\", fontSize).style(\"font-weight\", fontWeight).style(\"font-family\", fontFamily);\n text.append(\"tspan\").attr(\"dy\", dy).text(lines[i]).attr(\"alignment-baseline\", \"mathematical\");\n _setTextAttrs(text, textAttrs);\n }\n }\n __name(byTspan, \"byTspan\");\n function byFo(content, g, x, y, width, height, textAttrs, conf2) {\n const s = g.append(\"switch\");\n const f = s.append(\"foreignObject\").attr(\"x\", x).attr(\"y\", y).attr(\"width\", width).attr(\"height\", height);\n const text = f.append(\"xhtml:div\").style(\"display\", \"table\").style(\"height\", \"100%\").style(\"width\", \"100%\");\n text.append(\"div\").style(\"display\", \"table-cell\").style(\"text-align\", \"center\").style(\"vertical-align\", \"middle\").text(content);\n byTspan(content, s, x, y, width, height, textAttrs, conf2);\n _setTextAttrs(text, textAttrs);\n }\n __name(byFo, \"byFo\");\n function _setTextAttrs(toText, fromTextAttrsDict) {\n for (const key in fromTextAttrsDict) {\n if (fromTextAttrsDict.hasOwnProperty(key)) {\n toText.attr(key, fromTextAttrsDict[key]);\n }\n }\n }\n __name(_setTextAttrs, \"_setTextAttrs\");\n return function(conf2) {\n return conf2.textPlacement === \"fo\" ? byFo : conf2.textPlacement === \"old\" ? byText : byTspan;\n };\n})();\nvar svgDraw_default = {\n drawRect: drawRect2,\n drawBoundary,\n drawRels,\n insertArrowHead,\n insertArrowEnd,\n insertArrowFilledHead,\n insertArrowCrossHead,\n insertDatabaseIcon,\n insertComputerIcon,\n insertClockIcon\n};\n\n// src/utils/diagramRoot.ts\nimport { select } from \"d3\";\nvar getDiagramRoot = /* @__PURE__ */ __name((id, securityLevel) => {\n if (securityLevel === \"sandbox\") {\n const sandboxElement = select(\"#i\" + id);\n const doc = sandboxElement.node()?.contentDocument;\n if (!doc) {\n throw new Error(`Sandbox iframe #i${id} is missing its content document`);\n }\n return { root: select(doc.body), doc };\n }\n return { root: select(\"body\"), doc: document };\n}, \"getDiagramRoot\");\n\n// src/diagrams/c4/c4ShapeAdapter.ts\nvar QUEUE_SHAPES = /* @__PURE__ */ new Set([\n \"system_queue\",\n \"external_system_queue\",\n \"container_queue\",\n \"external_container_queue\",\n \"component_queue\",\n \"external_component_queue\"\n]);\nvar DB_SHAPES = /* @__PURE__ */ new Set([\n \"system_db\",\n \"external_system_db\",\n \"container_db\",\n \"external_container_db\",\n \"component_db\",\n \"external_component_db\"\n]);\nvar SHAPE_KEYWORDS = {\n person: \"person\",\n box: \"rounded\",\n rounded: \"rounded\",\n cylinder: \"cylinder\",\n database: \"cylinder\",\n db: \"cylinder\",\n queue: \"h-cyl\",\n pipe: \"h-cyl\",\n component: \"fr-rect\"\n};\nvar keywordShape = /* @__PURE__ */ __name((value) => value ? SHAPE_KEYWORDS[value.toLowerCase()] : void 0, \"keywordShape\");\nvar resolveNodeShape = /* @__PURE__ */ __name((shape) => {\n const explicit = keywordShape(shape.shape) ?? keywordShape(shape.sprite);\n if (explicit) {\n return explicit;\n }\n if (shape.tags) {\n for (const tag of shape.tags.split(\",\")) {\n const tagged = keywordShape(tag.trim());\n if (tagged) {\n return tagged;\n }\n }\n }\n const typeC4Shape = shape.typeC4Shape.text;\n if (typeC4Shape === \"person\" || typeC4Shape === \"external_person\") {\n return \"person\";\n }\n if (DB_SHAPES.has(typeC4Shape)) {\n return \"cylinder\";\n }\n if (QUEUE_SHAPES.has(typeC4Shape)) {\n return \"h-cyl\";\n }\n return \"rounded\";\n}, \"resolveNodeShape\");\nvar STEREOTYPE_NAMES = {\n person: \"Person\",\n system: \"Software System\",\n container: \"Container\",\n component: \"Component\"\n};\nvar stereotypeLabel = /* @__PURE__ */ __name((typeC4Shape) => {\n const base = typeC4Shape.replace(/^external_/, \"\").replace(/_(db|queue)$/, \"\");\n return STEREOTYPE_NAMES[base] ?? base.replace(/_/g, \" \");\n}, \"stereotypeLabel\");\nvar isExternal = /* @__PURE__ */ __name((typeC4Shape) => typeC4Shape.startsWith(\"external_\"), \"isExternal\");\nvar stereotypeText = /* @__PURE__ */ __name((shape) => {\n const stereotype = stereotypeLabel(shape.typeC4Shape.text);\n return shape.techn?.text ? `[${stereotype}: ${shape.techn.text}]` : `[${stereotype}]`;\n}, \"stereotypeText\");\nvar C4_ELEMENT_TYPES = [\n \"person\",\n \"system\",\n \"system_db\",\n \"system_queue\",\n \"container\",\n \"container_db\",\n \"container_queue\",\n \"component\",\n \"component_db\",\n \"component_queue\"\n].flatMap((type) => [type, `external_${type}`]);\nvar C4_ELEMENT_TYPE_SET = new Set(C4_ELEMENT_TYPES);\nvar isC4ElementType = /* @__PURE__ */ __name((value) => C4_ELEMENT_TYPE_SET.has(value), \"isC4ElementType\");\nvar elementCssStyles = /* @__PURE__ */ __name((shape, config) => {\n const elementType = shape.typeC4Shape.text;\n const fill = shape.bgColor ?? (isC4ElementType(elementType) && config[`${elementType}_bg_color`]);\n const stroke = shape.borderColor ?? (isC4ElementType(elementType) && config[`${elementType}_border_color`]);\n const styles = [];\n if (fill) {\n styles.push(`fill:${fill}`);\n }\n if (stroke) {\n styles.push(`stroke:${stroke}`);\n }\n styles.push(`color:${shape.fontColor ?? \"#FFFFFF\"}`);\n return styles;\n}, \"elementCssStyles\");\nvar buildC4Node = /* @__PURE__ */ __name((shape, config, padding, look, elementWidth) => {\n const typeC4Shape = shape.typeC4Shape.text;\n const cssClasses = [\"c4-shape\", `c4-${typeC4Shape}`];\n if (isExternal(typeC4Shape)) {\n cssClasses.push(\"c4-external\");\n }\n const nodeShape = resolveNodeShape(shape);\n const cssStyles = elementCssStyles(shape, config);\n if (nodeShape === \"rounded\" || nodeShape === \"fr-rect\") {\n cssStyles.push(\"rx:12px\", \"ry:12px\");\n }\n return {\n id: shape.alias,\n label: shape.label.text,\n stereotype: stereotypeText(shape),\n description: shape.descr?.text ? [shape.descr.text] : void 0,\n labelType: \"string\",\n isGroup: false,\n shape: nodeShape,\n cssClasses: cssClasses.join(\" \"),\n cssStyles,\n padding,\n look,\n useHtmlLabels: false,\n width: elementWidth\n };\n}, \"buildC4Node\");\n\n// src/diagrams/c4/c4Renderer.ts\nvar globalBoundaryMaxX = 0;\nvar globalBoundaryMaxY = 0;\nvar c4ShapeInRow2 = 4;\nvar c4BoundaryInRow2 = 2;\nparser.yy = c4Db_default;\nvar conf = {};\nvar Bounds = class {\n static {\n __name(this, \"Bounds\");\n }\n constructor(diagObj) {\n this.name = \"\";\n this.data = {};\n this.data.startx = void 0;\n this.data.stopx = void 0;\n this.data.starty = void 0;\n this.data.stopy = void 0;\n this.data.widthLimit = void 0;\n this.nextData = {};\n this.nextData.startx = void 0;\n this.nextData.stopx = void 0;\n this.nextData.starty = void 0;\n this.nextData.stopy = void 0;\n this.nextData.cnt = 0;\n setConf(diagObj.db.getConfig());\n }\n setData(startx, stopx, starty, stopy) {\n this.nextData.startx = this.data.startx = startx;\n this.nextData.stopx = this.data.stopx = stopx;\n this.nextData.starty = this.data.starty = starty;\n this.nextData.stopy = this.data.stopy = stopy;\n }\n updateVal(obj, key, val, fun) {\n if (obj[key] === void 0) {\n obj[key] = val;\n } else {\n obj[key] = fun(val, obj[key]);\n }\n }\n insert(c4Shape) {\n this.nextData.cnt = this.nextData.cnt + 1;\n const nextStopx = this.nextData.stopx;\n const widthLimit = this.data.widthLimit;\n let _startx = this.nextData.startx === this.nextData.stopx ? nextStopx + c4Shape.margin : nextStopx + c4Shape.margin * 2;\n let _stopx = _startx + c4Shape.width;\n let _starty = this.nextData.starty + c4Shape.margin * 2;\n let _stopy = _starty + c4Shape.height;\n if (_startx >= widthLimit || _stopx >= widthLimit || this.nextData.cnt > c4ShapeInRow2) {\n _startx = this.nextData.startx + c4Shape.margin + conf.nextLinePaddingX;\n _starty = this.nextData.stopy + c4Shape.margin * 2;\n this.nextData.stopx = _stopx = _startx + c4Shape.width;\n this.nextData.starty = this.nextData.stopy;\n this.nextData.stopy = _stopy = _starty + c4Shape.height;\n this.nextData.cnt = 1;\n }\n c4Shape.x = _startx;\n c4Shape.y = _starty;\n this.updateVal(this.data, \"startx\", _startx, Math.min);\n this.updateVal(this.data, \"starty\", _starty, Math.min);\n this.updateVal(this.data, \"stopx\", _stopx, Math.max);\n this.updateVal(this.data, \"stopy\", _stopy, Math.max);\n this.updateVal(this.nextData, \"startx\", _startx, Math.min);\n this.updateVal(this.nextData, \"starty\", _starty, Math.min);\n this.updateVal(this.nextData, \"stopx\", _stopx, Math.max);\n this.updateVal(this.nextData, \"stopy\", _stopy, Math.max);\n }\n init(diagObj) {\n this.name = \"\";\n this.data = {\n startx: void 0,\n stopx: void 0,\n starty: void 0,\n stopy: void 0,\n widthLimit: void 0\n };\n this.nextData = {\n startx: void 0,\n stopx: void 0,\n starty: void 0,\n stopy: void 0,\n cnt: 0\n };\n setConf(diagObj.db.getConfig());\n }\n bumpLastMargin(margin) {\n this.data.stopx += margin;\n this.data.stopy += margin;\n }\n};\nvar setConf = /* @__PURE__ */ __name(function(cnf) {\n assignWithDepth_default(conf, cnf);\n if (cnf?.fontFamily) {\n conf.personFontFamily = conf.systemFontFamily = conf.messageFontFamily = cnf.fontFamily;\n }\n if (cnf?.fontSize) {\n conf.personFontSize = conf.systemFontSize = conf.messageFontSize = cnf.fontSize;\n }\n if (cnf?.fontWeight) {\n conf.personFontWeight = conf.systemFontWeight = conf.messageFontWeight = cnf.fontWeight;\n }\n}, \"setConf\");\nvar boundaryFont = /* @__PURE__ */ __name((cnf) => {\n return {\n fontFamily: cnf.boundaryFontFamily,\n fontSize: cnf.boundaryFontSize,\n fontWeight: cnf.boundaryFontWeight\n };\n}, \"boundaryFont\");\nvar messageFont = /* @__PURE__ */ __name((cnf) => {\n return {\n fontFamily: cnf.messageFontFamily,\n fontSize: cnf.messageFontSize,\n fontWeight: cnf.messageFontWeight\n };\n}, \"messageFont\");\nfunction calcC4ShapeTextWH(textType, c4Shape, c4ShapeTextWrap, textConf, textLimitWidth) {\n const textElement = c4Shape[textType];\n if (!textElement.width) {\n if (c4ShapeTextWrap) {\n textElement.text = wrapLabel(\n textElement.text,\n textLimitWidth,\n textConf\n );\n textElement.textLines = textElement.text.split(common_default.lineBreakRegex).length;\n textElement.width = textLimitWidth;\n textElement.height = calculateTextHeight(textElement.text, textConf);\n } else {\n const lines = textElement.text.split(common_default.lineBreakRegex);\n textElement.textLines = lines.length;\n let lineHeight = 0;\n textElement.height = 0;\n textElement.width = 0;\n for (const line of lines) {\n textElement.width = Math.max(\n calculateTextWidth(line, textConf),\n textElement.width\n );\n lineHeight = calculateTextHeight(line, textConf);\n textElement.height = textElement.height + lineHeight;\n }\n }\n }\n return textElement;\n}\n__name(calcC4ShapeTextWH, \"calcC4ShapeTextWH\");\nvar drawBoundary2 = /* @__PURE__ */ __name(function(diagram2, boundary, bounds) {\n const startx = bounds.data.startx;\n const starty = bounds.data.starty;\n boundary.x = startx;\n boundary.y = starty;\n boundary.width = bounds.data.stopx - startx;\n boundary.height = bounds.data.stopy - starty;\n boundary.label.y = conf.c4ShapeMargin - 35;\n const boundaryTextWrap = boundary.wrap && conf.wrap;\n const boundaryLabelConf = boundaryFont(conf);\n boundaryLabelConf.fontSize = boundaryLabelConf.fontSize + 2;\n boundaryLabelConf.fontWeight = \"bold\";\n const textLimitWidth = calculateTextWidth(\n boundary.label.text,\n boundaryLabelConf\n );\n calcC4ShapeTextWH(\"label\", boundary, boundaryTextWrap, boundaryLabelConf, textLimitWidth);\n svgDraw_default.drawBoundary(diagram2, boundary, conf);\n}, \"drawBoundary\");\nvar drawC4ShapeArray = /* @__PURE__ */ __name(async function(currentBounds, diagram2, c4ShapeArray2, c4ShapeKeys) {\n const mermaidConfig = getConfig();\n const look = mermaidConfig.look ?? \"classic\";\n const renderOptions = { config: mermaidConfig };\n const diagramId = diagram2.attr(\"id\") ?? \"\";\n const c4Shapes = c4ShapeKeys.map((key) => c4ShapeArray2[Number(key)]);\n const shapeHandlerFor = /* @__PURE__ */ __name((node) => {\n const handler = node.shape ? shapes[node.shape] : void 0;\n if (!handler) {\n throw new Error(`C4: no shape handler for \"${node.shape}\"`);\n }\n return handler;\n }, \"shapeHandlerFor\");\n await Promise.all(\n c4Shapes.map(async (c4Shape) => {\n const node = buildC4Node(c4Shape, conf, conf.c4ShapePadding, look, conf.width);\n node.domId = `${diagramId}-${node.id}`;\n const measured = await shapeHandlerFor(node)(diagram2, node, renderOptions);\n c4Shape.width = node.width ?? conf.width;\n c4Shape.height = node.height ?? conf.height;\n c4Shape.margin = conf.c4ShapeMargin;\n measured.remove();\n })\n );\n for (const c4Shape of c4Shapes) {\n currentBounds.insert(c4Shape);\n }\n await Promise.all(\n c4Shapes.map(async (c4Shape) => {\n const node = buildC4Node(c4Shape, conf, conf.c4ShapePadding, look, conf.width);\n node.domId = `${diagramId}-${node.id}`;\n node.x = c4Shape.x + c4Shape.width / 2;\n node.y = c4Shape.y + c4Shape.height / 2;\n const positioned = diagram2.append(\"g\").attr(\n \"transform\",\n `translate(${c4Shape.x + c4Shape.width / 2}, ${c4Shape.y + c4Shape.height / 2})`\n );\n await shapeHandlerFor(node)(positioned, node, renderOptions);\n c4Shape.intersect = node.intersect;\n })\n );\n currentBounds.bumpLastMargin(conf.c4ShapeMargin);\n}, \"drawC4ShapeArray\");\nvar Point = class {\n static {\n __name(this, \"Point\");\n }\n constructor(x, y) {\n this.x = x;\n this.y = y;\n }\n};\nvar getIntersectPoint = /* @__PURE__ */ __name(function(fromNode, endPoint) {\n if (!fromNode.intersect) {\n throw new Error(\n `C4 shape \"${fromNode.alias}\" has no intersect function. Please report this to https://github.com/mermaid-js/mermaid/issues`\n );\n }\n const { x, y } = fromNode.intersect(endPoint);\n return new Point(x, y);\n}, \"getIntersectPoint\");\nvar getIntersectPoints = /* @__PURE__ */ __name(function(fromNode, endNode) {\n const endIntersectPoint = { x: 0, y: 0 };\n endIntersectPoint.x = endNode.x + endNode.width / 2;\n endIntersectPoint.y = endNode.y + endNode.height / 2;\n const startPoint = getIntersectPoint(fromNode, endIntersectPoint);\n endIntersectPoint.x = fromNode.x + fromNode.width / 2;\n endIntersectPoint.y = fromNode.y + fromNode.height / 2;\n const endPoint = getIntersectPoint(endNode, endIntersectPoint);\n return { startPoint, endPoint };\n}, \"getIntersectPoints\");\nvar drawRels2 = /* @__PURE__ */ __name(function(diagram2, rels2, getC4ShapeObj, diagObj, diagramId) {\n const diagramType = diagObj.db.getC4Type();\n let i = 0;\n for (const rel of rels2) {\n i = i + 1;\n const relTextWrap = rel.wrap && conf.wrap;\n const relConf = messageFont(conf);\n if (diagramType === \"C4Dynamic\") {\n rel.label.text = i + \": \" + rel.label.text;\n }\n let textLimitWidth = calculateTextWidth(rel.label.text, relConf);\n calcC4ShapeTextWH(\"label\", rel, relTextWrap, relConf, textLimitWidth);\n if (rel.techn && rel.techn.text !== \"\") {\n textLimitWidth = calculateTextWidth(rel.techn.text, relConf);\n calcC4ShapeTextWH(\"techn\", rel, relTextWrap, relConf, textLimitWidth);\n }\n if (rel.descr && rel.descr.text !== \"\") {\n textLimitWidth = calculateTextWidth(rel.descr.text, relConf);\n calcC4ShapeTextWH(\"descr\", rel, relTextWrap, relConf, textLimitWidth);\n }\n const fromNode = getC4ShapeObj(rel.from);\n const endNode = getC4ShapeObj(rel.to);\n if (!fromNode || !endNode) {\n throw new Error(`C4 rel \"${rel.from}\" -> \"${rel.to}\" references an unknown shape`);\n }\n const points = getIntersectPoints(fromNode, endNode);\n if (!points.startPoint || !points.endPoint) {\n throw new Error(\n `Could not calculate intersection points for rel \"${rel.from}\" -> \"${rel.to}\"`\n );\n }\n rel.startPoint = points.startPoint;\n rel.endPoint = points.endPoint;\n }\n svgDraw_default.drawRels(diagram2, rels2, conf, diagramId);\n}, \"drawRels\");\nasync function drawInsideBoundary(diagram2, parentBoundaryAlias, parentBounds, currentBoundaries, diagObj) {\n const db = diagObj.db;\n const currentBounds = new Bounds(diagObj);\n currentBounds.data.widthLimit = parentBounds.data.widthLimit / Math.min(c4BoundaryInRow2, currentBoundaries.length);\n for (const [i, currentBoundary] of currentBoundaries.entries()) {\n let Y = 0;\n currentBoundary.image = { width: 0, height: 0, Y: 0 };\n if (currentBoundary.sprite) {\n currentBoundary.image.width = 48;\n currentBoundary.image.height = 48;\n currentBoundary.image.Y = Y;\n Y = currentBoundary.image.Y + currentBoundary.image.height;\n }\n const currentBoundaryTextWrap = currentBoundary.wrap && conf.wrap;\n const currentBoundaryLabelConf = boundaryFont(conf);\n currentBoundaryLabelConf.fontSize = currentBoundaryLabelConf.fontSize + 2;\n currentBoundaryLabelConf.fontWeight = \"bold\";\n const label = calcC4ShapeTextWH(\n \"label\",\n currentBoundary,\n currentBoundaryTextWrap,\n currentBoundaryLabelConf,\n currentBounds.data.widthLimit\n );\n label.Y = Y + 8;\n Y = label.Y + label.height;\n if (currentBoundary.type && currentBoundary.type.text !== \"\") {\n currentBoundary.type.text = \"[\" + currentBoundary.type.text + \"]\";\n const currentBoundaryTypeConf = boundaryFont(conf);\n const type = calcC4ShapeTextWH(\n \"type\",\n currentBoundary,\n currentBoundaryTextWrap,\n currentBoundaryTypeConf,\n currentBounds.data.widthLimit\n );\n type.Y = Y + 5;\n Y = type.Y + type.height;\n }\n if (currentBoundary.descr && currentBoundary.descr.text !== \"\") {\n const currentBoundaryDescrConf = boundaryFont(conf);\n currentBoundaryDescrConf.fontSize = currentBoundaryDescrConf.fontSize - 2;\n const descr = calcC4ShapeTextWH(\n \"descr\",\n currentBoundary,\n currentBoundaryTextWrap,\n currentBoundaryDescrConf,\n currentBounds.data.widthLimit\n );\n descr.Y = Y + 20;\n Y = descr.Y + descr.height;\n }\n if (i == 0 || i % c4BoundaryInRow2 === 0) {\n const _x = parentBounds.data.startx + conf.diagramMarginX;\n const _y = parentBounds.data.stopy + conf.diagramMarginY + Y;\n currentBounds.setData(_x, _x, _y, _y);\n } else {\n const _x = currentBounds.data.stopx !== currentBounds.data.startx ? currentBounds.data.stopx + conf.diagramMarginX : currentBounds.data.startx;\n const _y = currentBounds.data.starty;\n currentBounds.setData(_x, _x, _y, _y);\n }\n currentBounds.name = currentBoundary.alias;\n const currentPersonOrSystemArray = db.getC4ShapeArray(currentBoundary.alias);\n const currentPersonOrSystemKeys = db.getC4ShapeKeys(currentBoundary.alias);\n if (currentPersonOrSystemKeys.length > 0) {\n await drawC4ShapeArray(\n currentBounds,\n diagram2,\n currentPersonOrSystemArray,\n currentPersonOrSystemKeys\n );\n }\n parentBoundaryAlias = currentBoundary.alias;\n const nextCurrentBoundaries = db.getBoundaries(parentBoundaryAlias);\n if (nextCurrentBoundaries.length > 0) {\n await drawInsideBoundary(\n diagram2,\n parentBoundaryAlias,\n currentBounds,\n nextCurrentBoundaries,\n diagObj\n );\n }\n if (currentBoundary.alias !== \"global\") {\n drawBoundary2(diagram2, currentBoundary, currentBounds);\n }\n parentBounds.data.stopy = Math.max(\n currentBounds.data.stopy + conf.c4ShapeMargin,\n parentBounds.data.stopy\n );\n parentBounds.data.stopx = Math.max(\n currentBounds.data.stopx + conf.c4ShapeMargin,\n parentBounds.data.stopx\n );\n globalBoundaryMaxX = Math.max(globalBoundaryMaxX, parentBounds.data.stopx);\n globalBoundaryMaxY = Math.max(globalBoundaryMaxY, parentBounds.data.stopy);\n }\n}\n__name(drawInsideBoundary, \"drawInsideBoundary\");\nvar draw = /* @__PURE__ */ __name(async function(_text, id, _version, diagObj) {\n conf = getRequiredConfig(\"c4\");\n const securityLevel = getConfig().securityLevel;\n const { root } = getDiagramRoot(id, securityLevel);\n const db = diagObj.db;\n db.setWrap(conf.wrap);\n c4ShapeInRow2 = db.getC4ShapeInRow();\n c4BoundaryInRow2 = db.getC4BoundaryInRow();\n log.debug(`C:${JSON.stringify(conf, null, 2)}`);\n const diagram2 = root.select(`[id=\"${id}\"]`);\n svgDraw_default.insertComputerIcon(diagram2, id);\n svgDraw_default.insertDatabaseIcon(diagram2, id);\n svgDraw_default.insertClockIcon(diagram2, id);\n const screenBounds = new Bounds(diagObj);\n screenBounds.setData(\n conf.diagramMarginX,\n conf.diagramMarginX,\n conf.diagramMarginY,\n conf.diagramMarginY\n );\n screenBounds.data.widthLimit = screen.availWidth;\n globalBoundaryMaxX = conf.diagramMarginX;\n globalBoundaryMaxY = conf.diagramMarginY;\n const title2 = db.getTitle();\n const currentBoundaries = db.getBoundaries(\"\");\n await drawInsideBoundary(diagram2, \"\", screenBounds, currentBoundaries, diagObj);\n svgDraw_default.insertArrowHead(diagram2, id);\n svgDraw_default.insertArrowEnd(diagram2, id);\n svgDraw_default.insertArrowCrossHead(diagram2, id);\n svgDraw_default.insertArrowFilledHead(diagram2, id);\n drawRels2(diagram2, db.getRels(), db.getC4Shape, diagObj, id);\n screenBounds.data.stopx = globalBoundaryMaxX;\n screenBounds.data.stopy = globalBoundaryMaxY;\n const box = screenBounds.data;\n const boxStartx = box.startx;\n const boxStarty = box.starty;\n const boxHeight = globalBoundaryMaxY - boxStarty;\n const height = boxHeight + 2 * conf.diagramMarginY;\n const boxWidth = globalBoundaryMaxX - boxStartx;\n const width = boxWidth + 2 * conf.diagramMarginX;\n if (title2) {\n diagram2.append(\"text\").text(title2).attr(\"x\", boxWidth / 2 - 4 * conf.diagramMarginX).attr(\"y\", boxStarty + conf.diagramMarginY);\n }\n configureSvgSize(diagram2, height, width, conf.useMaxWidth);\n const extraVertForTitle = title2 ? 60 : 0;\n diagram2.attr(\n \"viewBox\",\n boxStartx - conf.diagramMarginX + \" -\" + (conf.diagramMarginY + extraVertForTitle) + \" \" + width + \" \" + (height + extraVertForTitle)\n );\n log.debug(`models:`, box);\n}, \"draw\");\nvar c4Renderer_default = {\n drawPersonOrSystemArray: drawC4ShapeArray,\n drawBoundary: drawBoundary2,\n setConf,\n draw\n};\n\n// src/diagrams/c4/styles.js\nvar elementFontStyles = /* @__PURE__ */ __name(() => {\n const c4 = getConfig().c4 ?? {};\n const sheet = new CSSStyleSheet();\n for (const type of C4_ELEMENT_TYPES) {\n const rule = sheet.cssRules[sheet.insertRule(`.c4-shape.c4-${type} .label {}`, sheet.cssRules.length)];\n const fontFamily = c4[`${type}FontFamily`];\n const fontSize = c4[`${type}FontSize`];\n const fontWeight = c4[`${type}FontWeight`];\n if (fontFamily) {\n rule.style.setProperty(\"font-family\", fontFamily);\n }\n if (fontSize) {\n rule.style.setProperty(\n \"font-size\",\n typeof fontSize === \"number\" ? `${fontSize}px` : fontSize\n );\n }\n if (fontWeight) {\n rule.style.setProperty(\"font-weight\", String(fontWeight));\n }\n }\n return [...sheet.cssRules].filter((rule) => rule.style.length > 0).map((rule) => ` ${rule.cssText}`).join(\"\\n\");\n}, \"elementFontStyles\");\nvar getStyles = /* @__PURE__ */ __name((options) => `.person {\n stroke: ${options.personBorder};\n fill: ${options.personBkg};\n }\n${elementFontStyles()}\n\n /* The element font colour is set inline per element (default white); the\n label text takes it via currentColor. */\n .c4-shape .label,\n .c4-shape .label text {\n color: inherit;\n fill: currentColor;\n }\n /* Structurizr typography: bold name, smaller stereotype/type and description lines. */\n .c4-shape .label .c4-name {\n font-weight: bold;\n }\n .c4-shape .label .c4-type {\n font-size: 0.75em;\n }\n .c4-shape .label .c4-descr {\n font-size: 0.82em;\n }\n .c4-shape .basic,\n .c4-shape rect,\n .c4-shape path,\n .c4-shape circle,\n .c4-shape ellipse,\n .c4-shape line {\n stroke-width: 2px;\n }\n`, \"getStyles\");\nvar styles_default = getStyles;\n\n// src/diagrams/c4/c4Diagram.ts\nvar diagram = {\n parser: c4Diagram_default,\n db: c4Db_default,\n renderer: c4Renderer_default,\n styles: styles_default,\n init: /* @__PURE__ */ __name(({ c4, wrap }) => {\n c4Renderer_default.setConf(c4);\n c4Db_default.setWrap(wrap);\n }, \"init\")\n};\nexport {\n diagram\n};\n"],"names":["parser","o","__name","k","v","o2","l","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","$Vb","$Vc","$Vd","$Ve","$Vf","$Vg","$Vh","$Vi","$Vj","$Vk","$Vl","$Vm","$Vn","$Vo","$Vp","$Vq","$Vr","$Vs","$Vt","$Vu","$Vv","$Vw","$Vx","$Vy","$Vz","$VA","$VB","$VC","$VD","$VE","$VF","$VG","$VH","$VI","$VJ","$VK","$VL","$VM","$VN","$VO","$VP","$VQ","$VR","$VS","parser2","yytext","yyleng","yylineno","yy","yystate","$$","_$","$0","kv","str","hash","error","input","self","stack","tstack","vstack","lstack","table","TERROR","EOF","args","lexer2","sharedState","yyloc","ranges","popStack","n","lex","token","symbol","state","action","r","yyval","p","len","newState","expected","errStr","lexer","ch","lines","oldLines","past","next","pre","c2","match","indexed_rule","backup","tempMatch","index","rules","condition","yy_","$avoiding_name_collisions","YY_START","Parser","c4Diagram_default","getRequiredConfig","section","getConfig","assignAttributes","bag","attrs","field","value","key","val","createGlobalBoundary","c4ShapeArray","boundaryParseStack","currentBoundaryParse","parentBoundaryParse","boundaries","rels","title","wrapEnabled","c4ShapeInRow","c4BoundaryInRow","c4Type","getC4Type","setC4Type","c4TypeParam","sanitizeText","addRel","type","from","to","label","techn","descr","sprite","tags","link","rel","old","rel2","autoWrap","addPersonOrSystem","typeC4Shape","alias","personOrSystem","personOrSystem2","addContainer","container","container2","addComponent","component","component2","addPersonOrSystemBoundary","boundary","boundary2","addContainerBoundary","addDeploymentNode","nodeType","popBoundaryParseStack","updateElStyle","elementName","bgColor","fontColor","borderColor","shadowing","shape","legendText","legendSprite","element","updateRelStyle","textColor","lineColor","offsetX","offsetY","updateLayoutConfig","c4ShapeInRowParam","c4BoundaryInRowParam","c4ShapeInRowValue","c4BoundaryInRowValue","getC4ShapeInRow","getC4BoundaryInRow","getCurrentBoundaryParse","getParentBoundaryParse","getC4ShapeArray","parentBoundary","getC4Shape","getC4ShapeKeys","getBoundaries","getBoundarys","getRels","getTitle","setWrap","wrapSetting","clear","LINETYPE","ARROWTYPE","PLACEMENT","setTitle","txt","c4Db_default","setAccTitle","getAccTitle","getAccDescription","setAccDescription","drawRect2","elem","rectData","drawRect","drawRels","rels2","conf2","diagramId","relsElem","i","strokeColor","url","line","labelWidth","messageConf","_drawTextCandidateFunc","drawBoundary","boundaryElem","fillColor","attrsValue","boundaryConf","insertDatabaseIcon","id","insertComputerIcon","insertClockIcon","insertArrowHead","insertArrowEnd","insertArrowFilledHead","insertArrowCrossHead","marker","byText","content","g","x","y","width","height","textAttrs","text","_setTextAttrs","byTspan","fontSize","fontFamily","fontWeight","common_default","dy","byFo","s","toText","fromTextAttrsDict","svgDraw_default","getDiagramRoot","securityLevel","doc","_a","select","QUEUE_SHAPES","DB_SHAPES","SHAPE_KEYWORDS","keywordShape","resolveNodeShape","explicit","tag","tagged","STEREOTYPE_NAMES","stereotypeLabel","base","isExternal","stereotypeText","stereotype","C4_ELEMENT_TYPES","C4_ELEMENT_TYPE_SET","isC4ElementType","elementCssStyles","config","elementType","fill","stroke","styles","buildC4Node","padding","look","elementWidth","cssClasses","nodeShape","cssStyles","globalBoundaryMaxX","globalBoundaryMaxY","c4ShapeInRow2","c4BoundaryInRow2","conf","Bounds","diagObj","setConf","startx","stopx","starty","stopy","obj","fun","c4Shape","nextStopx","widthLimit","_startx","_stopx","_starty","_stopy","margin","cnf","assignWithDepth_default","boundaryFont","messageFont","calcC4ShapeTextWH","textType","c4ShapeTextWrap","textConf","textLimitWidth","textElement","wrapLabel","calculateTextHeight","lineHeight","calculateTextWidth","drawBoundary2","diagram2","bounds","boundaryTextWrap","boundaryLabelConf","drawC4ShapeArray","currentBounds","c4ShapeArray2","c4ShapeKeys","mermaidConfig","renderOptions","c4Shapes","shapeHandlerFor","node","handler","shapes","measured","positioned","Point","getIntersectPoint","fromNode","endPoint","getIntersectPoints","endNode","endIntersectPoint","startPoint","drawRels2","getC4ShapeObj","diagramType","relTextWrap","relConf","points","drawInsideBoundary","parentBoundaryAlias","parentBounds","currentBoundaries","db","currentBoundary","Y","currentBoundaryTextWrap","currentBoundaryLabelConf","currentBoundaryTypeConf","currentBoundaryDescrConf","_x","_y","currentPersonOrSystemArray","currentPersonOrSystemKeys","nextCurrentBoundaries","draw","_text","_version","root","log","screenBounds","title2","box","boxStartx","boxStarty","boxWidth","configureSvgSize","extraVertForTitle","c4Renderer_default","elementFontStyles","c4","sheet","rule","getStyles","options","styles_default","diagram","wrap"],"mappings":"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AI,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAIhE,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,EAAG,EAAI,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI1C,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,EAAG,EAAI,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI1C,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,EAAG,EAAI,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI1C,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,EAAG,EAAI,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI1C,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAIC,EAAK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AAC,EAAG1D,EAAE0D,GAAK,CAAC,EAAG,EAAE,CAAC,EAAG1D,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EA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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channel-BfWO3B41.js","sources":["../../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/channel.js"],"sourcesContent":["/* IMPORT */\nimport _ from '../utils/index.js';\nimport Color from '../color/index.js';\n/* MAIN */\nconst channel = (color, channel) => {\n return _.lang.round(Color.parse(color)[channel]);\n};\n/* EXPORT */\nexport default channel;\n"],"names":["channel","color","_","Color"],"mappings":"wDAIK,MAACA,EAAU,CAACC,EAAOD,IACbE,EAAE,KAAK,MAAMC,EAAM,MAAMF,CAAK,EAAED,CAAO,CAAC","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk-2Q5K7J3B-B-u7gtZN.js","sources":["../../../../node_modules/.pnpm/mermaid@11.17.2/node_modules/mermaid/dist/chunks/mermaid.core/chunk-2Q5K7J3B.mjs"],"sourcesContent":["import {\n __name\n} from \"./chunk-Y2CYZVJY.mjs\";\n\n// src/utils/imperativeState.ts\nvar ImperativeState = class {\n /**\n * @param init - Function that creates the default state.\n */\n constructor(init) {\n this.init = init;\n this.records = this.init();\n }\n static {\n __name(this, \"ImperativeState\");\n }\n reset() {\n this.records = this.init();\n }\n};\n\nexport {\n ImperativeState\n};\n"],"names":["ImperativeState","_a","init","__name"],"mappings":"qDAKIA,GAAkBC,EAAA,KAAM,CAI1B,YAAYC,EAAM,CAChB,KAAK,KAAOA,EACZ,KAAK,QAAU,KAAK,KAAI,CAC1B,CAIA,OAAQ,CACN,KAAK,QAAU,KAAK,KAAI,CAC1B,CACF,EALIC,EAAOF,EAAM,iBAAiB,EATZA","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import{_ as e}from"./mermaid.core-ExHG1WnM.js";var l=e(()=>`
|
|
2
|
+
/* Font Awesome icon styling - consolidated */
|
|
3
|
+
.label-icon {
|
|
4
|
+
display: inline-block;
|
|
5
|
+
height: 1em;
|
|
6
|
+
overflow: visible;
|
|
7
|
+
vertical-align: -0.125em;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.node .label-icon path {
|
|
11
|
+
fill: currentColor;
|
|
12
|
+
stroke: revert;
|
|
13
|
+
stroke-width: revert;
|
|
14
|
+
}
|
|
15
|
+
`,"getIconStyles");export{l as g};
|
|
16
|
+
//# sourceMappingURL=chunk-5VM5RSS4-CjFDq_cq.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk-5VM5RSS4-CjFDq_cq.js","sources":["../../../../node_modules/.pnpm/mermaid@11.17.2/node_modules/mermaid/dist/chunks/mermaid.core/chunk-5VM5RSS4.mjs"],"sourcesContent":["import {\n __name\n} from \"./chunk-Y2CYZVJY.mjs\";\n\n// src/diagrams/globalStyles.ts\nvar getIconStyles = /* @__PURE__ */ __name(() => `\n /* Font Awesome icon styling - consolidated */\n .label-icon {\n display: inline-block;\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n }\n \n .node .label-icon path {\n fill: currentColor;\n stroke: revert;\n stroke-width: revert;\n }\n`, \"getIconStyles\");\n\nexport {\n getIconStyles\n};\n"],"names":["getIconStyles","__name"],"mappings":"+CAKG,IAACA,EAAgCC,EAAO,IAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAc9C,eAAe","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{_ as i,j as l,U as d,G as o}from"./mermaid.core-ExHG1WnM.js";var x=i((r,t)=>{const e=r.append("rect");if(e.attr("x",t.x),e.attr("y",t.y),e.attr("fill",t.fill),e.attr("stroke",t.stroke),e.attr("width",t.width),e.attr("height",t.height),t.name&&e.attr("name",t.name),t.rx&&e.attr("rx",t.rx),t.ry&&e.attr("ry",t.ry),t.attrs!==void 0)for(const s in t.attrs)e.attr(s,t.attrs[s]);return t.class&&e.attr("class",t.class),e},"drawRect"),p=i((r,t)=>{const e={x:t.startx,y:t.starty,width:t.stopx-t.startx,height:t.stopy-t.starty,fill:t.fill,stroke:t.stroke,class:"rect"};x(r,e).lower()},"drawBackgroundRect"),y=i((r,t)=>{const e=t.text.replace(d," "),s=r.append("text");s.attr("x",t.x),s.attr("y",t.y),s.attr("class","legend"),s.style("text-anchor",t.anchor),t.class&&s.attr("class",t.class);const a=s.append("tspan");return a.attr("x",t.x+t.textMargin*2),a.text(e),s},"drawText"),m=i((r,t,e,s)=>{const a=r.append("image");a.attr("x",t),a.attr("y",e);const n=o.sanitizeUrl(s);a.attr("xlink:href",n)},"drawImage"),g=i((r,t,e,s)=>{const a=r.append("use");a.attr("x",t),a.attr("y",e);const n=o.sanitizeUrl(s);a.attr("xlink:href",`#${n}`)},"drawEmbeddedImage"),h=i(()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),"getNoteRect"),f=i(()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0}),"getTextObj"),w=i(()=>{let r=l(".mermaidTooltip");return r.empty()&&(r=l("body").append("div").attr("class","mermaidTooltip").style("opacity",0).style("position","absolute").style("text-align","center").style("max-width","200px").style("padding","2px").style("font-size","12px").style("background","#ffffde").style("border","1px solid #333").style("border-radius","2px").style("pointer-events","none").style("z-index","100")),r},"createTooltip");export{p as a,h as b,g as c,x as d,m as e,w as f,f as g,y as h};
|
|
2
|
+
//# sourceMappingURL=chunk-F27PBJKO-BDYeB7B8.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk-F27PBJKO-BDYeB7B8.js","sources":["../../../../node_modules/.pnpm/mermaid@11.17.2/node_modules/mermaid/dist/chunks/mermaid.core/chunk-F27PBJKO.mjs"],"sourcesContent":["import {\n lineBreakRegex\n} from \"./chunk-DU6HZSFF.mjs\";\nimport {\n __name\n} from \"./chunk-Y2CYZVJY.mjs\";\n\n// src/diagrams/common/svgDrawCommon.ts\nimport { sanitizeUrl } from \"@braintree/sanitize-url\";\nimport { select } from \"d3\";\nvar drawRect = /* @__PURE__ */ __name((element, rectData) => {\n const rectElement = element.append(\"rect\");\n rectElement.attr(\"x\", rectData.x);\n rectElement.attr(\"y\", rectData.y);\n rectElement.attr(\"fill\", rectData.fill);\n rectElement.attr(\"stroke\", rectData.stroke);\n rectElement.attr(\"width\", rectData.width);\n rectElement.attr(\"height\", rectData.height);\n if (rectData.name) {\n rectElement.attr(\"name\", rectData.name);\n }\n if (rectData.rx) {\n rectElement.attr(\"rx\", rectData.rx);\n }\n if (rectData.ry) {\n rectElement.attr(\"ry\", rectData.ry);\n }\n if (rectData.attrs !== void 0) {\n for (const attrKey in rectData.attrs) {\n rectElement.attr(attrKey, rectData.attrs[attrKey]);\n }\n }\n if (rectData.class) {\n rectElement.attr(\"class\", rectData.class);\n }\n return rectElement;\n}, \"drawRect\");\nvar drawBackgroundRect = /* @__PURE__ */ __name((element, bounds) => {\n const rectData = {\n x: bounds.startx,\n y: bounds.starty,\n width: bounds.stopx - bounds.startx,\n height: bounds.stopy - bounds.starty,\n fill: bounds.fill,\n stroke: bounds.stroke,\n class: \"rect\"\n };\n const rectElement = drawRect(element, rectData);\n rectElement.lower();\n}, \"drawBackgroundRect\");\nvar drawText = /* @__PURE__ */ __name((element, textData) => {\n const nText = textData.text.replace(lineBreakRegex, \" \");\n const textElem = element.append(\"text\");\n textElem.attr(\"x\", textData.x);\n textElem.attr(\"y\", textData.y);\n textElem.attr(\"class\", \"legend\");\n textElem.style(\"text-anchor\", textData.anchor);\n if (textData.class) {\n textElem.attr(\"class\", textData.class);\n }\n const tspan = textElem.append(\"tspan\");\n tspan.attr(\"x\", textData.x + textData.textMargin * 2);\n tspan.text(nText);\n return textElem;\n}, \"drawText\");\nvar drawImage = /* @__PURE__ */ __name((elem, x, y, link) => {\n const imageElement = elem.append(\"image\");\n imageElement.attr(\"x\", x);\n imageElement.attr(\"y\", y);\n const sanitizedLink = sanitizeUrl(link);\n imageElement.attr(\"xlink:href\", sanitizedLink);\n}, \"drawImage\");\nvar drawEmbeddedImage = /* @__PURE__ */ __name((element, x, y, link) => {\n const imageElement = element.append(\"use\");\n imageElement.attr(\"x\", x);\n imageElement.attr(\"y\", y);\n const sanitizedLink = sanitizeUrl(link);\n imageElement.attr(\"xlink:href\", `#${sanitizedLink}`);\n}, \"drawEmbeddedImage\");\nvar getNoteRect = /* @__PURE__ */ __name(() => {\n const noteRectData = {\n x: 0,\n y: 0,\n width: 100,\n height: 100,\n fill: \"#EDF2AE\",\n stroke: \"#666\",\n anchor: \"start\",\n rx: 0,\n ry: 0\n };\n return noteRectData;\n}, \"getNoteRect\");\nvar getTextObj = /* @__PURE__ */ __name(() => {\n const testObject = {\n x: 0,\n y: 0,\n width: 100,\n height: 100,\n \"text-anchor\": \"start\",\n style: \"#666\",\n textMargin: 0,\n rx: 0,\n ry: 0,\n tspan: true\n };\n return testObject;\n}, \"getTextObj\");\nvar createTooltip = /* @__PURE__ */ __name(() => {\n let tooltipElem = select(\".mermaidTooltip\");\n if (tooltipElem.empty()) {\n tooltipElem = select(\"body\").append(\"div\").attr(\"class\", \"mermaidTooltip\").style(\"opacity\", 0).style(\"position\", \"absolute\").style(\"text-align\", \"center\").style(\"max-width\", \"200px\").style(\"padding\", \"2px\").style(\"font-size\", \"12px\").style(\"background\", \"#ffffde\").style(\"border\", \"1px solid #333\").style(\"border-radius\", \"2px\").style(\"pointer-events\", \"none\").style(\"z-index\", \"100\");\n }\n return tooltipElem;\n}, \"createTooltip\");\n\nexport {\n drawRect,\n drawBackgroundRect,\n drawText,\n drawImage,\n drawEmbeddedImage,\n getNoteRect,\n getTextObj,\n createTooltip\n};\n"],"names":["drawRect","__name","element","rectData","rectElement","attrKey","drawBackgroundRect","bounds","drawText","textData","nText","lineBreakRegex","textElem","tspan","drawImage","elem","x","y","link","imageElement","sanitizedLink","sanitizeUrl","drawEmbeddedImage","getNoteRect","getTextObj","createTooltip","tooltipElem","select"],"mappings":"oEAUG,IAACA,EAA2BC,EAAO,CAACC,EAASC,IAAa,CAC3D,MAAMC,EAAcF,EAAQ,OAAO,MAAM,EAgBzC,GAfAE,EAAY,KAAK,IAAKD,EAAS,CAAC,EAChCC,EAAY,KAAK,IAAKD,EAAS,CAAC,EAChCC,EAAY,KAAK,OAAQD,EAAS,IAAI,EACtCC,EAAY,KAAK,SAAUD,EAAS,MAAM,EAC1CC,EAAY,KAAK,QAASD,EAAS,KAAK,EACxCC,EAAY,KAAK,SAAUD,EAAS,MAAM,EACtCA,EAAS,MACXC,EAAY,KAAK,OAAQD,EAAS,IAAI,EAEpCA,EAAS,IACXC,EAAY,KAAK,KAAMD,EAAS,EAAE,EAEhCA,EAAS,IACXC,EAAY,KAAK,KAAMD,EAAS,EAAE,EAEhCA,EAAS,QAAU,OACrB,UAAWE,KAAWF,EAAS,MAC7BC,EAAY,KAAKC,EAASF,EAAS,MAAME,CAAO,CAAC,EAGrD,OAAIF,EAAS,OACXC,EAAY,KAAK,QAASD,EAAS,KAAK,EAEnCC,CACT,EAAG,UAAU,EACTE,EAAqCL,EAAO,CAACC,EAASK,IAAW,CACnE,MAAMJ,EAAW,CACf,EAAGI,EAAO,OACV,EAAGA,EAAO,OACV,MAAOA,EAAO,MAAQA,EAAO,OAC7B,OAAQA,EAAO,MAAQA,EAAO,OAC9B,KAAMA,EAAO,KACb,OAAQA,EAAO,OACf,MAAO,MACX,EACsBP,EAASE,EAASC,CAAQ,EAClC,MAAK,CACnB,EAAG,oBAAoB,EACnBK,EAA2BP,EAAO,CAACC,EAASO,IAAa,CAC3D,MAAMC,EAAQD,EAAS,KAAK,QAAQE,EAAgB,GAAG,EACjDC,EAAWV,EAAQ,OAAO,MAAM,EACtCU,EAAS,KAAK,IAAKH,EAAS,CAAC,EAC7BG,EAAS,KAAK,IAAKH,EAAS,CAAC,EAC7BG,EAAS,KAAK,QAAS,QAAQ,EAC/BA,EAAS,MAAM,cAAeH,EAAS,MAAM,EACzCA,EAAS,OACXG,EAAS,KAAK,QAASH,EAAS,KAAK,EAEvC,MAAMI,EAAQD,EAAS,OAAO,OAAO,EACrC,OAAAC,EAAM,KAAK,IAAKJ,EAAS,EAAIA,EAAS,WAAa,CAAC,EACpDI,EAAM,KAAKH,CAAK,EACTE,CACT,EAAG,UAAU,EACTE,EAA4Bb,EAAO,CAACc,EAAMC,EAAGC,EAAGC,IAAS,CAC3D,MAAMC,EAAeJ,EAAK,OAAO,OAAO,EACxCI,EAAa,KAAK,IAAKH,CAAC,EACxBG,EAAa,KAAK,IAAKF,CAAC,EACxB,MAAMG,EAAgBC,EAAAA,YAAYH,CAAI,EACtCC,EAAa,KAAK,aAAcC,CAAa,CAC/C,EAAG,WAAW,EACVE,EAAoCrB,EAAO,CAACC,EAASc,EAAGC,EAAGC,IAAS,CACtE,MAAMC,EAAejB,EAAQ,OAAO,KAAK,EACzCiB,EAAa,KAAK,IAAKH,CAAC,EACxBG,EAAa,KAAK,IAAKF,CAAC,EACxB,MAAMG,EAAgBC,EAAAA,YAAYH,CAAI,EACtCC,EAAa,KAAK,aAAc,IAAIC,CAAa,EAAE,CACrD,EAAG,mBAAmB,EAClBG,EAA8BtB,EAAO,KAClB,CACnB,EAAG,EACH,EAAG,EACH,MAAO,IACP,OAAQ,IACR,KAAM,UACN,OAAQ,OACR,OAAQ,QACR,GAAI,EACJ,GAAI,CACR,GAEG,aAAa,EACZuB,EAA6BvB,EAAO,KACnB,CACjB,EAAG,EACH,EAAG,EACH,MAAO,IACP,OAAQ,IACR,cAAe,QACf,MAAO,OACP,WAAY,EACZ,GAAI,EACJ,GAAI,EACJ,MAAO,EACX,GAEG,YAAY,EACXwB,EAAgCxB,EAAO,IAAM,CAC/C,IAAIyB,EAAcC,EAAO,iBAAiB,EAC1C,OAAID,EAAY,UACdA,EAAcC,EAAO,MAAM,EAAE,OAAO,KAAK,EAAE,KAAK,QAAS,gBAAgB,EAAE,MAAM,UAAW,CAAC,EAAE,MAAM,WAAY,UAAU,EAAE,MAAM,aAAc,QAAQ,EAAE,MAAM,YAAa,OAAO,EAAE,MAAM,UAAW,KAAK,EAAE,MAAM,YAAa,MAAM,EAAE,MAAM,aAAc,SAAS,EAAE,MAAM,SAAU,gBAAgB,EAAE,MAAM,gBAAiB,KAAK,EAAE,MAAM,iBAAkB,MAAM,EAAE,MAAM,UAAW,KAAK,GAE1XD,CACT,EAAG,eAAe","x_google_ignoreList":[0]}
|