@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,130 @@
|
|
|
1
|
+
import{g as Pe}from"./chunk-5VM5RSS4-CjFDq_cq.js";import{aD as Fe,aE as ye,aF as Me,aG as Ke,aH as Ye,aI as We,aJ as Ve,aK as Ue,aL as He,aM as Xe,aN as je,aO as Ge,aP as qe,aQ as Je,aR as Ze,aS as Qe,aT as $e,aU as et,aV as tt,aW as st,aX as rt,aY as it,aZ as at,a_ as nt,a$ as ot,_ as g,y as j,j as J,b0 as ct,d as lt,l as m,p as ut,r as gt,c as me,Q as ht,az as dt,ay as pt,aA as ft,k as St,b1 as xt,ag as be,ah as Lt}from"./mermaid.core-ExHG1WnM.js";import{c as yt}from"./channel-BfWO3B41.js";import"./index-DoR97Zqf.js";function mt(e){return Array.isArray(e)}function bt(e){if(Fe(e))return e;const n=ye(e);if(!wt(e))return{};if(mt(e)){const s=Array.from(e);return e.length>0&&typeof e[0]=="string"&&Object.hasOwn(e,"index")&&(s.index=e.index,s.input=e.input),s}if(Me(e)){const s=e,c=s.constructor;return new c(s.buffer,s.byteOffset,s.length)}if(n==="[object ArrayBuffer]")return new ArrayBuffer(e.byteLength);if(n==="[object DataView]"){const s=e,c=s.buffer,p=s.byteOffset,r=s.byteLength,d=new ArrayBuffer(r),x=new Uint8Array(c,p,r);return new Uint8Array(d).set(x),new DataView(d)}if(n==="[object Boolean]"||n==="[object Number]"||n==="[object String]"){const s=e.constructor,c=new s(e.valueOf());return n==="[object String]"?_t(c,e):re(c,e),c}if(n==="[object Date]")return new Date(Number(e));if(n==="[object RegExp]"){const s=e,c=new RegExp(s.source,s.flags);return c.lastIndex=s.lastIndex,c}if(n==="[object Symbol]")return Object(Symbol.prototype.valueOf.call(e));if(n==="[object Map]"){const s=e,c=new Map;return s.forEach((p,r)=>{c.set(r,p)}),c}if(n==="[object Set]"){const s=e,c=new Set;return s.forEach(p=>{c.add(p)}),c}if(n==="[object Arguments]"){const s=e,c={};return re(c,s),c.length=s.length,c[Symbol.iterator]=s[Symbol.iterator],c}const l={};return Dt(l,e),re(l,e),Et(l,e),l}function wt(e){switch(ye(e)){case ot:case nt:case at:case it:case rt:case st:case tt:case et:case $e:case Qe:case Ze:case Je:case qe:case Ge:case je:case Xe:case He:case Ue:case Ve:case We:case Ye:case Ke:return!0;default:return!1}}function re(e,n){for(const l in n)Object.hasOwn(n,l)&&(e[l]=n[l])}function Et(e,n){const l=Object.getOwnPropertySymbols(n);for(let s=0;s<l.length;s++){const c=l[s];Object.prototype.propertyIsEnumerable.call(n,c)&&(e[c]=n[c])}}function _t(e,n){const l=n.valueOf().length;for(const s in n)Object.hasOwn(n,s)&&(Number.isNaN(Number(s))||Number(s)>=l)&&(e[s]=n[s])}function Dt(e,n){const l=Object.getPrototypeOf(n);l!==null&&typeof n.constructor=="function"&&Object.setPrototypeOf(e,l)}var ae=(function(){var e=g(function(T,h,i,o){for(i=i||{},o=T.length;o--;i[T[o]]=h);return i},"o"),n=[1,15],l=[1,7],s=[1,13],c=[1,14],p=[1,19],r=[1,16],d=[1,17],x=[1,18],y=[8,30],S=[8,10,21,28,29,30,31,39,43,46],E=[1,23],z=[1,24],A=[8,10,15,16,21,28,29,30,31,39,43,46],_=[8,10,15,16,21,27,28,29,30,31,39,43,46],N=[1,49],I={trace:g(function(){},"trace"),yy:{},symbols_:{error:2,spaceLines:3,SPACELINE:4,NL:5,separator:6,SPACE:7,EOF:8,start:9,BLOCK_DIAGRAM_KEY:10,document:11,stop:12,statement:13,link:14,LINK:15,START_LINK:16,LINK_LABEL:17,STR:18,nodeStatement:19,columnsStatement:20,SPACE_BLOCK:21,blockStatement:22,classDefStatement:23,cssClassStatement:24,styleStatement:25,node:26,SIZE:27,COLUMNS:28,"id-block":29,end:30,NODE_ID:31,nodeShapeNLabel:32,dirList:33,DIR:34,NODE_DSTART:35,NODE_DEND:36,BLOCK_ARROW_START:37,BLOCK_ARROW_END:38,classDef:39,CLASSDEF_ID:40,CLASSDEF_STYLEOPTS:41,DEFAULT:42,class:43,CLASSENTITY_IDS:44,STYLECLASS:45,style:46,STYLE_ENTITY_IDS:47,STYLE_DEFINITION_DATA:48,$accept:0,$end:1},terminals_:{2:"error",4:"SPACELINE",5:"NL",7:"SPACE",8:"EOF",10:"BLOCK_DIAGRAM_KEY",15:"LINK",16:"START_LINK",17:"LINK_LABEL",18:"STR",21:"SPACE_BLOCK",27:"SIZE",28:"COLUMNS",29:"id-block",30:"end",31:"NODE_ID",34:"DIR",35:"NODE_DSTART",36:"NODE_DEND",37:"BLOCK_ARROW_START",38:"BLOCK_ARROW_END",39:"classDef",40:"CLASSDEF_ID",41:"CLASSDEF_STYLEOPTS",42:"DEFAULT",43:"class",44:"CLASSENTITY_IDS",45:"STYLECLASS",46:"style",47:"STYLE_ENTITY_IDS",48:"STYLE_DEFINITION_DATA"},productions_:[0,[3,1],[3,2],[3,2],[6,1],[6,1],[6,1],[9,3],[12,1],[12,1],[12,2],[12,2],[11,1],[11,2],[14,1],[14,4],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[19,3],[19,2],[19,1],[20,1],[22,4],[22,3],[26,1],[26,2],[33,1],[33,2],[32,3],[32,4],[23,3],[23,3],[24,3],[25,3]],performAction:g(function(h,i,o,u,L,t,O){var a=t.length-1;switch(L){case 4:u.getLogger().debug("Rule: separator (NL) ");break;case 5:u.getLogger().debug("Rule: separator (Space) ");break;case 6:u.getLogger().debug("Rule: separator (EOF) ");break;case 7:u.getLogger().debug("Rule: hierarchy: ",t[a-1]),u.setHierarchy(t[a-1]);break;case 8:u.getLogger().debug("Stop NL ");break;case 9:u.getLogger().debug("Stop EOF ");break;case 10:u.getLogger().debug("Stop NL2 ");break;case 11:u.getLogger().debug("Stop EOF2 ");break;case 12:u.getLogger().debug("Rule: statement: ",t[a]),typeof t[a].length=="number"?this.$=t[a]:this.$=[t[a]];break;case 13:u.getLogger().debug("Rule: statement #2: ",t[a-1]),this.$=[t[a-1]].concat(t[a]);break;case 14:u.getLogger().debug("Rule: link: ",t[a],h),this.$={edgeTypeStr:t[a],label:""};break;case 15:u.getLogger().debug("Rule: LABEL link: ",t[a-3],t[a-1],t[a]),this.$={edgeTypeStr:t[a],label:t[a-1]};break;case 18:const f=parseInt(t[a]),w=u.generateId();this.$={id:w,type:"space",label:"",width:f,children:[]};break;case 23:u.getLogger().debug("Rule: (nodeStatement link node) ",t[a-2],t[a-1],t[a]," typestr: ",t[a-1].edgeTypeStr);const C=u.edgeStrToEdgeData(t[a-1].edgeTypeStr),M=u.edgeStrToEdgeStartData(t[a-1].edgeTypeStr),K=u.edgeStrToThickness(t[a-1].edgeTypeStr),b=u.edgeStrToPattern(t[a-1].edgeTypeStr);this.$=[{id:t[a-2].id,label:t[a-2].label,type:t[a-2].type,directions:t[a-2].directions},{id:t[a-2].id+"-"+t[a].id,start:t[a-2].id,end:t[a].id,label:t[a-1].label,type:"edge",thickness:K,pattern:b,directions:t[a].directions,arrowTypeEnd:C,arrowTypeStart:M},{id:t[a].id,label:t[a].label,type:u.typeStr2Type(t[a].typeStr),directions:t[a].directions}];break;case 24:u.getLogger().debug("Rule: nodeStatement (abc88 node size) ",t[a-1],t[a]),this.$={id:t[a-1].id,label:t[a-1].label,type:u.typeStr2Type(t[a-1].typeStr),directions:t[a-1].directions,widthInColumns:parseInt(t[a],10)};break;case 25:u.getLogger().debug("Rule: nodeStatement (node) ",t[a]),this.$={id:t[a].id,label:t[a].label,type:u.typeStr2Type(t[a].typeStr),directions:t[a].directions,widthInColumns:1};break;case 26:u.getLogger().debug("APA123",this?this:"na"),u.getLogger().debug("COLUMNS: ",t[a]),this.$={type:"column-setting",columns:t[a]==="auto"?-1:parseInt(t[a])};break;case 27:u.getLogger().debug("Rule: id-block statement : ",t[a-2],t[a-1]),u.generateId(),this.$={...t[a-2],type:"composite",children:t[a-1]};break;case 28:u.getLogger().debug("Rule: blockStatement : ",t[a-2],t[a-1],t[a]);const R=u.generateId();this.$={id:R,type:"composite",label:"",children:t[a-1]};break;case 29:u.getLogger().debug("Rule: node (NODE_ID separator): ",t[a]),this.$={id:t[a]};break;case 30:u.getLogger().debug("Rule: node (NODE_ID nodeShapeNLabel separator): ",t[a-1],t[a]),this.$={id:t[a-1],label:t[a].label,typeStr:t[a].typeStr,directions:t[a].directions};break;case 31:u.getLogger().debug("Rule: dirList: ",t[a]),this.$=[t[a]];break;case 32:u.getLogger().debug("Rule: dirList: ",t[a-1],t[a]),this.$=[t[a-1]].concat(t[a]);break;case 33:u.getLogger().debug("Rule: nodeShapeNLabel: ",t[a-2],t[a-1],t[a]),this.$={typeStr:t[a-2]+t[a],label:t[a-1]};break;case 34:u.getLogger().debug("Rule: BLOCK_ARROW nodeShapeNLabel: ",t[a-3],t[a-2]," #3:",t[a-1],t[a]),this.$={typeStr:t[a-3]+t[a],label:t[a-2],directions:t[a-1]};break;case 35:case 36:this.$={type:"classDef",id:t[a-1].trim(),css:t[a].trim()};break;case 37:this.$={type:"applyClass",id:t[a-1].trim(),styleClass:t[a].trim()};break;case 38:this.$={type:"applyStyles",id:t[a-1].trim(),stylesStr:t[a].trim()};break}},"anonymous"),table:[{9:1,10:[1,2]},{1:[3]},{10:n,11:3,13:4,19:5,20:6,21:l,22:8,23:9,24:10,25:11,26:12,28:s,29:c,31:p,39:r,43:d,46:x},{8:[1,20]},e(y,[2,12],{13:4,19:5,20:6,22:8,23:9,24:10,25:11,26:12,11:21,10:n,21:l,28:s,29:c,31:p,39:r,43:d,46:x}),e(S,[2,16],{14:22,15:E,16:z}),e(S,[2,17]),e(S,[2,18]),e(S,[2,19]),e(S,[2,20]),e(S,[2,21]),e(S,[2,22]),e(A,[2,25],{27:[1,25]}),e(S,[2,26]),{19:26,26:12,31:p},{10:n,11:27,13:4,19:5,20:6,21:l,22:8,23:9,24:10,25:11,26:12,28:s,29:c,31:p,39:r,43:d,46:x},{40:[1,28],42:[1,29]},{44:[1,30]},{47:[1,31]},e(_,[2,29],{32:32,35:[1,33],37:[1,34]}),{1:[2,7]},e(y,[2,13]),{26:35,31:p},{31:[2,14]},{17:[1,36]},e(A,[2,24]),{10:n,11:37,13:4,14:22,15:E,16:z,19:5,20:6,21:l,22:8,23:9,24:10,25:11,26:12,28:s,29:c,31:p,39:r,43:d,46:x},{30:[1,38]},{41:[1,39]},{41:[1,40]},{45:[1,41]},{48:[1,42]},e(_,[2,30]),{18:[1,43]},{18:[1,44]},e(A,[2,23]),{18:[1,45]},{30:[1,46]},e(S,[2,28]),e(S,[2,35]),e(S,[2,36]),e(S,[2,37]),e(S,[2,38]),{36:[1,47]},{33:48,34:N},{15:[1,50]},e(S,[2,27]),e(_,[2,33]),{38:[1,51]},{33:52,34:N,38:[2,31]},{31:[2,15]},e(_,[2,34]),{38:[2,32]}],defaultActions:{20:[2,7],23:[2,14],50:[2,15],52:[2,32]},parseError:g(function(h,i){if(i.recoverable)this.trace(h);else{var o=new Error(h);throw o.hash=i,o}},"parseError"),parse:g(function(h){var i=this,o=[0],u=[],L=[null],t=[],O=this.table,a="",f=0,w=0,C=2,M=1,K=t.slice.call(arguments,1),b=Object.create(this.lexer),R={yy:{}};for(var Y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Y)&&(R.yy[Y]=this.yy[Y]);b.setInput(h,R.yy),R.yy.lexer=b,R.yy.parser=this,typeof b.yylloc>"u"&&(b.yylloc={});var H=b.yylloc;t.push(H);var ee=b.options&&b.options.ranges;typeof R.yy.parseError=="function"?this.parseError=R.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ke(k){o.length=o.length-2*k,L.length=L.length-k,t.length=t.length-k}g(ke,"popStack");function pe(){var k;return k=u.pop()||b.lex()||M,typeof k!="number"&&(k instanceof Array&&(u=k,k=u.pop()),k=i.symbols_[k]||k),k}g(pe,"lex");for(var B,V,P,te,U={},G,W,fe,q;;){if(V=o[o.length-1],this.defaultActions[V]?P=this.defaultActions[V]:((B===null||typeof B>"u")&&(B=pe()),P=O[V]&&O[V][B]),typeof P>"u"||!P.length||!P[0]){var se="";q=[];for(G in O[V])this.terminals_[G]&&G>C&&q.push("'"+this.terminals_[G]+"'");b.showPosition?se="Parse error on line "+(f+1)+`:
|
|
2
|
+
`+b.showPosition()+`
|
|
3
|
+
Expecting `+q.join(", ")+", got '"+(this.terminals_[B]||B)+"'":se="Parse error on line "+(f+1)+": Unexpected "+(B==M?"end of input":"'"+(this.terminals_[B]||B)+"'"),this.parseError(se,{text:b.match,token:this.terminals_[B]||B,line:b.yylineno,loc:H,expected:q})}if(P[0]instanceof Array&&P.length>1)throw new Error("Parse Error: multiple actions possible at state: "+V+", token: "+B);switch(P[0]){case 1:o.push(B),L.push(b.yytext),t.push(b.yylloc),o.push(P[1]),B=null,w=b.yyleng,a=b.yytext,f=b.yylineno,H=b.yylloc;break;case 2:if(W=this.productions_[P[1]][1],U.$=L[L.length-W],U._$={first_line:t[t.length-(W||1)].first_line,last_line:t[t.length-1].last_line,first_column:t[t.length-(W||1)].first_column,last_column:t[t.length-1].last_column},ee&&(U._$.range=[t[t.length-(W||1)].range[0],t[t.length-1].range[1]]),te=this.performAction.apply(U,[a,w,f,R.yy,P[1],L,t].concat(K)),typeof te<"u")return te;W&&(o=o.slice(0,-1*W*2),L=L.slice(0,-1*W),t=t.slice(0,-1*W)),o.push(this.productions_[P[1]][0]),L.push(U.$),t.push(U._$),fe=O[o[o.length-2]][o[o.length-1]],o.push(fe);break;case 3:return!0}}return!0},"parse")},D=(function(){var T={EOF:1,parseError:g(function(i,o){if(this.yy.parser)this.yy.parser.parseError(i,o);else throw new Error(i)},"parseError"),setInput:g(function(h,i){return this.yy=i||this.yy||{},this._input=h,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:g(function(){var h=this._input[0];this.yytext+=h,this.yyleng++,this.offset++,this.match+=h,this.matched+=h;var i=h.match(/(?:\r\n?|\n).*/g);return i?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),h},"input"),unput:g(function(h){var i=h.length,o=h.split(/(?:\r\n?|\n)/g);this._input=h+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-i),this.offset-=i;var u=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),o.length-1&&(this.yylineno-=o.length-1);var L=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:o?(o.length===u.length?this.yylloc.first_column:0)+u[u.length-o.length].length-o[0].length:this.yylloc.first_column-i},this.options.ranges&&(this.yylloc.range=[L[0],L[0]+this.yyleng-i]),this.yyleng=this.yytext.length,this},"unput"),more:g(function(){return this._more=!0,this},"more"),reject:g(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
|
|
4
|
+
`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:g(function(h){this.unput(this.match.slice(h))},"less"),pastInput:g(function(){var h=this.matched.substr(0,this.matched.length-this.match.length);return(h.length>20?"...":"")+h.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:g(function(){var h=this.match;return h.length<20&&(h+=this._input.substr(0,20-h.length)),(h.substr(0,20)+(h.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:g(function(){var h=this.pastInput(),i=new Array(h.length+1).join("-");return h+this.upcomingInput()+`
|
|
5
|
+
`+i+"^"},"showPosition"),test_match:g(function(h,i){var o,u,L;if(this.options.backtrack_lexer&&(L={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(L.yylloc.range=this.yylloc.range.slice(0))),u=h[0].match(/(?:\r\n?|\n).*/g),u&&(this.yylineno+=u.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:u?u[u.length-1].length-u[u.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+h[0].length},this.yytext+=h[0],this.match+=h[0],this.matches=h,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(h[0].length),this.matched+=h[0],o=this.performAction.call(this,this.yy,this,i,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),o)return o;if(this._backtrack){for(var t in L)this[t]=L[t];return!1}return!1},"test_match"),next:g(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var h,i,o,u;this._more||(this.yytext="",this.match="");for(var L=this._currentRules(),t=0;t<L.length;t++)if(o=this._input.match(this.rules[L[t]]),o&&(!i||o[0].length>i[0].length)){if(i=o,u=t,this.options.backtrack_lexer){if(h=this.test_match(o,L[t]),h!==!1)return h;if(this._backtrack){i=!1;continue}else return!1}else if(!this.options.flex)break}return i?(h=this.test_match(i,L[u]),h!==!1?h:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
|
|
6
|
+
`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:g(function(){var i=this.next();return i||this.lex()},"lex"),begin:g(function(i){this.conditionStack.push(i)},"begin"),popState:g(function(){var i=this.conditionStack.length-1;return i>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:g(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:g(function(i){return i=this.conditionStack.length-1-Math.abs(i||0),i>=0?this.conditionStack[i]:"INITIAL"},"topState"),pushState:g(function(i){this.begin(i)},"pushState"),stateStackSize:g(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:g(function(i,o,u,L){switch(u){case 0:return i.getLogger().debug("Found block-beta"),10;case 1:return i.getLogger().debug("Found id-block"),29;case 2:return i.getLogger().debug("Found block"),10;case 3:i.getLogger().debug(".",o.yytext);break;case 4:i.getLogger().debug("_",o.yytext);break;case 5:return 5;case 6:return o.yytext=-1,28;case 7:return o.yytext=o.yytext.replace(/columns\s+/,""),i.getLogger().debug("COLUMNS (LEX)",o.yytext),28;case 8:this.pushState("md_string");break;case 9:return"MD_STR";case 10:this.popState();break;case 11:this.pushState("string");break;case 12:i.getLogger().debug("LEX: POPPING STR:",o.yytext),this.popState();break;case 13:return i.getLogger().debug("LEX: STR end:",o.yytext),"STR";case 14:return o.yytext=o.yytext.replace(/space\:/,""),i.getLogger().debug("SPACE NUM (LEX)",o.yytext),21;case 15:return o.yytext="1",i.getLogger().debug("COLUMNS (LEX)",o.yytext),21;case 16:return 42;case 17:return"LINKSTYLE";case 18:return"INTERPOLATE";case 19:return this.pushState("CLASSDEF"),39;case 20:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";case 21:return this.popState(),this.pushState("CLASSDEFID"),40;case 22:return this.popState(),41;case 23:return this.pushState("CLASS"),43;case 24:return this.popState(),this.pushState("CLASS_STYLE"),44;case 25:return this.popState(),45;case 26:return this.pushState("STYLE_STMNT"),46;case 27:return this.popState(),this.pushState("STYLE_DEFINITION"),47;case 28:return this.popState(),48;case 29:return this.pushState("acc_title"),"acc_title";case 30:return this.popState(),"acc_title_value";case 31:return this.pushState("acc_descr"),"acc_descr";case 32:return this.popState(),"acc_descr_value";case 33:this.pushState("acc_descr_multiline");break;case 34:this.popState();break;case 35:return"acc_descr_multiline_value";case 36:return 30;case 37:return this.popState(),i.getLogger().debug("Lex: (("),"NODE_DEND";case 38:return this.popState(),i.getLogger().debug("Lex: (("),"NODE_DEND";case 39:return this.popState(),i.getLogger().debug("Lex: ))"),"NODE_DEND";case 40:return this.popState(),i.getLogger().debug("Lex: (("),"NODE_DEND";case 41:return this.popState(),i.getLogger().debug("Lex: (("),"NODE_DEND";case 42:return this.popState(),i.getLogger().debug("Lex: (-"),"NODE_DEND";case 43:return this.popState(),i.getLogger().debug("Lex: -)"),"NODE_DEND";case 44:return this.popState(),i.getLogger().debug("Lex: (("),"NODE_DEND";case 45:return this.popState(),i.getLogger().debug("Lex: ]]"),"NODE_DEND";case 46:return this.popState(),i.getLogger().debug("Lex: ("),"NODE_DEND";case 47:return this.popState(),i.getLogger().debug("Lex: ])"),"NODE_DEND";case 48:return this.popState(),i.getLogger().debug("Lex: /]"),"NODE_DEND";case 49:return this.popState(),i.getLogger().debug("Lex: /]"),"NODE_DEND";case 50:return this.popState(),i.getLogger().debug("Lex: )]"),"NODE_DEND";case 51:return this.popState(),i.getLogger().debug("Lex: )"),"NODE_DEND";case 52:return this.popState(),i.getLogger().debug("Lex: ]>"),"NODE_DEND";case 53:return this.popState(),i.getLogger().debug("Lex: ]"),"NODE_DEND";case 54:return i.getLogger().debug("Lexa: -)"),this.pushState("NODE"),35;case 55:return i.getLogger().debug("Lexa: (-"),this.pushState("NODE"),35;case 56:return i.getLogger().debug("Lexa: ))"),this.pushState("NODE"),35;case 57:return i.getLogger().debug("Lexa: )"),this.pushState("NODE"),35;case 58:return i.getLogger().debug("Lex: ((("),this.pushState("NODE"),35;case 59:return i.getLogger().debug("Lexa: )"),this.pushState("NODE"),35;case 60:return i.getLogger().debug("Lexa: )"),this.pushState("NODE"),35;case 61:return i.getLogger().debug("Lexa: )"),this.pushState("NODE"),35;case 62:return i.getLogger().debug("Lexc: >"),this.pushState("NODE"),35;case 63:return i.getLogger().debug("Lexa: (["),this.pushState("NODE"),35;case 64:return i.getLogger().debug("Lexa: )"),this.pushState("NODE"),35;case 65:return this.pushState("NODE"),35;case 66:return this.pushState("NODE"),35;case 67:return this.pushState("NODE"),35;case 68:return this.pushState("NODE"),35;case 69:return this.pushState("NODE"),35;case 70:return this.pushState("NODE"),35;case 71:return this.pushState("NODE"),35;case 72:return i.getLogger().debug("Lexa: ["),this.pushState("NODE"),35;case 73:return this.pushState("BLOCK_ARROW"),i.getLogger().debug("LEX ARR START"),37;case 74:return i.getLogger().debug("Lex: NODE_ID",o.yytext),31;case 75:return i.getLogger().debug("Lex: EOF",o.yytext),8;case 76:this.pushState("md_string");break;case 77:this.pushState("md_string");break;case 78:return"NODE_DESCR";case 79:this.popState();break;case 80:i.getLogger().debug("Lex: Starting string"),this.pushState("string");break;case 81:i.getLogger().debug("LEX ARR: Starting string"),this.pushState("string");break;case 82:return i.getLogger().debug("LEX: NODE_DESCR:",o.yytext),"NODE_DESCR";case 83:i.getLogger().debug("LEX POPPING"),this.popState();break;case 84:i.getLogger().debug("Lex: =>BAE"),this.pushState("ARROW_DIR");break;case 85:return o.yytext=o.yytext.replace(/^,\s*/,""),i.getLogger().debug("Lex (right): dir:",o.yytext),"DIR";case 86:return o.yytext=o.yytext.replace(/^,\s*/,""),i.getLogger().debug("Lex (left):",o.yytext),"DIR";case 87:return o.yytext=o.yytext.replace(/^,\s*/,""),i.getLogger().debug("Lex (x):",o.yytext),"DIR";case 88:return o.yytext=o.yytext.replace(/^,\s*/,""),i.getLogger().debug("Lex (y):",o.yytext),"DIR";case 89:return o.yytext=o.yytext.replace(/^,\s*/,""),i.getLogger().debug("Lex (up):",o.yytext),"DIR";case 90:return o.yytext=o.yytext.replace(/^,\s*/,""),i.getLogger().debug("Lex (down):",o.yytext),"DIR";case 91:return o.yytext="]>",i.getLogger().debug("Lex (ARROW_DIR end):",o.yytext),this.popState(),this.popState(),"BLOCK_ARROW_END";case 92:return i.getLogger().debug("Lex: LINK","#"+o.yytext+"#"),15;case 93:return i.getLogger().debug("Lex: LINK",o.yytext),15;case 94:return i.getLogger().debug("Lex: LINK",o.yytext),15;case 95:return i.getLogger().debug("Lex: LINK",o.yytext),15;case 96:return i.getLogger().debug("Lex: START_LINK",o.yytext),this.pushState("LLABEL"),16;case 97:return i.getLogger().debug("Lex: START_LINK",o.yytext),this.pushState("LLABEL"),16;case 98:return i.getLogger().debug("Lex: START_LINK",o.yytext),this.pushState("LLABEL"),16;case 99:this.pushState("md_string");break;case 100:return i.getLogger().debug("Lex: Starting string"),this.pushState("string"),"LINK_LABEL";case 101:return this.popState(),i.getLogger().debug("Lex: LINK","#"+o.yytext+"#"),15;case 102:return this.popState(),i.getLogger().debug("Lex: LINK",o.yytext),15;case 103:return this.popState(),i.getLogger().debug("Lex: LINK",o.yytext),15;case 104:return i.getLogger().debug("Lex: COLON",o.yytext),o.yytext=o.yytext.slice(1),27}},"anonymous"),rules:[/^(?:block-beta\b)/,/^(?:block:)/,/^(?:block\b)/,/^(?:[\s]+)/,/^(?:[\n]+)/,/^(?:((\u000D\u000A)|(\u000A)))/,/^(?:columns\s+auto\b)/,/^(?:columns\s+[\d]+)/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:space[:]\d+)/,/^(?:space\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\s+)/,/^(?:DEFAULT\s+)/,/^(?:\w+\s+)/,/^(?:[^\n]*)/,/^(?:class\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:style\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:end\b\s*)/,/^(?:\(\(\()/,/^(?:\)\)\))/,/^(?:[\)]\))/,/^(?:\}\})/,/^(?:\})/,/^(?:\(-)/,/^(?:-\))/,/^(?:\(\()/,/^(?:\]\])/,/^(?:\()/,/^(?:\]\))/,/^(?:\\\])/,/^(?:\/\])/,/^(?:\)\])/,/^(?:[\)])/,/^(?:\]>)/,/^(?:[\]])/,/^(?:-\))/,/^(?:\(-)/,/^(?:\)\))/,/^(?:\))/,/^(?:\(\(\()/,/^(?:\(\()/,/^(?:\{\{)/,/^(?:\{)/,/^(?:>)/,/^(?:\(\[)/,/^(?:\()/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\[\\)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:\[)/,/^(?:<\[)/,/^(?:[^\(\[\n\-\)\{\}\s\<\>:=]+)/,/^(?:$)/,/^(?:["][`])/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:\]>\s*\()/,/^(?:,?\s*right\s*)/,/^(?:,?\s*left\s*)/,/^(?:,?\s*x\s*)/,/^(?:,?\s*y\s*)/,/^(?:,?\s*up\s*)/,/^(?:,?\s*down\s*)/,/^(?:\)\s*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*~~[\~]+\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:["][`])/,/^(?:["])/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?::\d+)/],conditions:{STYLE_DEFINITION:{rules:[28],inclusive:!1},STYLE_STMNT:{rules:[27],inclusive:!1},CLASSDEFID:{rules:[22],inclusive:!1},CLASSDEF:{rules:[20,21],inclusive:!1},CLASS_STYLE:{rules:[25],inclusive:!1},CLASS:{rules:[24],inclusive:!1},LLABEL:{rules:[99,100,101,102,103],inclusive:!1},ARROW_DIR:{rules:[85,86,87,88,89,90,91],inclusive:!1},BLOCK_ARROW:{rules:[76,81,84],inclusive:!1},NODE:{rules:[37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,77,80],inclusive:!1},md_string:{rules:[9,10,78,79],inclusive:!1},space:{rules:[],inclusive:!1},string:{rules:[12,13,82,83],inclusive:!1},acc_descr_multiline:{rules:[34,35],inclusive:!1},acc_descr:{rules:[32],inclusive:!1},acc_title:{rules:[30],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,11,14,15,16,17,18,19,23,26,29,31,33,36,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,92,93,94,95,96,97,98,104],inclusive:!0}}};return T})();I.lexer=D;function v(){this.yy={}}return g(v,"Parser"),v.prototype=I,I.Parser=v,new v})();ae.parser=ae;var Tt=ae,F=new Map,ce=[],ne=new Map,Se="color",xe="fill",Nt="bgFill",we=",",Z=new Map,le="",It=g(e=>St.sanitizeText(e,me()),"sanitizeText"),Ot=g(function(e,n=""){let l=Z.get(e);l||(l={id:e,styles:[],textStyles:[]},Z.set(e,l)),n!=null&&n.split(we).forEach(s=>{const c=s.replace(/([^;]*);/,"$1").trim();if(RegExp(Se).exec(s)){const r=c.replace(xe,Nt).replace(Se,xe);l.textStyles.push(r)}l.styles.push(c)})},"addStyleClass"),Ct=g(function(e,n=""){const l=F.get(e);n!=null&&(l.styles=n.split(we))},"addStyle2Node"),vt=g(function(e,n){e.split(",").forEach(function(l){let s=F.get(l);if(s===void 0){const c=l.trim();s={id:c,type:"na",children:[]},F.set(c,s)}s.classes||(s.classes=[]),s.classes.push(n)})},"setCssClass"),Ee=g((e,n)=>{const l=e.flat(),s=[],c=l.find(r=>(r==null?void 0:r.type)==="column-setting"),p=(c==null?void 0:c.columns)??-1;for(const r of l){if(typeof p=="number"&&p>0&&r.type!=="column-setting"&&typeof r.widthInColumns=="number"&&r.widthInColumns>p&&m.warn(`Block ${r.id} width ${r.widthInColumns} exceeds configured column width ${p}`),r.label&&(r.label=It(r.label)),r.type==="classDef"){Ot(r.id,r.css);continue}if(r.type==="applyClass"){vt(r.id,(r==null?void 0:r.styleClass)??"");continue}if(r.type==="applyStyles"){r!=null&&r.stylesStr&&Ct(r.id,r==null?void 0:r.stylesStr);continue}if(r.type==="column-setting")n.columns=r.columns??-1;else if(r.type==="edge"){const d=(ne.get(r.id)??0)+1;ne.set(r.id,d),r.id=d+"-"+r.id,ce.push(r)}else{r.label||(r.type==="composite"?r.label="":r.label=r.id);const d=F.get(r.id);if(d===void 0?F.set(r.id,r):(r.type!=="na"&&(d.type=r.type),r.label!==r.id&&(d.label=r.label)),r.children&&Ee(r.children,r),r.type==="space"){const x=r.width??1;for(let y=0;y<x;y++){const S=bt(r);S.id=S.id+"-"+y,F.set(S.id,S),s.push(S)}}else d===void 0&&s.push(r)}}n.children=s},"populateBlockDatabase"),ue=[],X={id:"root",type:"composite",children:[],columns:-1},zt=g(()=>{m.debug("Clear called"),ut(),X={id:"root",type:"composite",children:[],columns:-1},F=new Map([["root",X]]),ue=[],Z=new Map,ce=[],ne=new Map,le=""},"clear");function _e(e){switch(m.debug("typeStr2Type",e),e){case"[]":return"square";case"()":return m.debug("we have a round"),"round";case"(())":return"circle";case">]":return"rect_left_inv_arrow";case"{}":return"diamond";case"{{}}":return"hexagon";case"([])":return"stadium";case"[[]]":return"subroutine";case"[()]":return"cylinder";case"((()))":return"doublecircle";case"[//]":return"lean_right";case"[\\\\]":return"lean_left";case"[/\\]":return"trapezoid";case"[\\/]":return"inv_trapezoid";case"<[]>":return"block_arrow";default:return"na"}}g(_e,"typeStr2Type");function De(e){switch(m.debug("typeStr2Type",e),e){case"==":return"thick";default:return"normal"}}g(De,"edgeTypeStr2Type");function Te(e){switch(e.trim().slice(-1)){case"x":return"arrow_cross";case"o":return"arrow_circle";case">":return"arrow_point";default:return""}}g(Te,"edgeStrToEdgeData");function Ne(e){switch(e.trim().charAt(0)){case"x":return"arrow_cross";case"o":return"arrow_circle";case"<":return"arrow_point";default:return"arrow_open"}}g(Ne,"edgeStrToEdgeStartData");function Ie(e){return e.includes("==")?"thick":"normal"}g(Ie,"edgeStrToThickness");function Oe(e){return e.includes(".-")?"dotted":"solid"}g(Oe,"edgeStrToPattern");var Le=0,At=g(()=>(Le++,"id-"+Math.random().toString(36).substr(2,12)+"-"+Le),"generateId"),Bt=g(e=>{X.children=e,Ee(e,X),ue=X.children},"setHierarchy"),Rt=g(e=>{const n=F.get(e);return n?n.columns?n.columns:n.children?n.children.length:-1:-1},"getColumns"),kt=g(()=>[...F.values()],"getBlocksFlat"),Pt=g(()=>ue||[],"getBlocks"),Ft=g(()=>ce,"getEdges"),Mt=g(e=>F.get(e),"getBlock"),Kt=g(e=>{F.set(e.id,e)},"setBlock"),Yt=g(e=>{le=e},"setDiagramId"),Wt=g(()=>le,"getDiagramId"),Vt=g(()=>m,"getLogger"),Ut=g(function(){return Z},"getClasses"),Ht={getConfig:g(()=>j().block,"getConfig"),typeStr2Type:_e,edgeTypeStr2Type:De,edgeStrToEdgeData:Te,edgeStrToEdgeStartData:Ne,edgeStrToThickness:Ie,edgeStrToPattern:Oe,getLogger:Vt,getBlocksFlat:kt,getBlocks:Pt,getEdges:Ft,setHierarchy:Bt,getBlock:Mt,setBlock:Kt,getColumns:Rt,getClasses:Ut,clear:zt,generateId:At,setDiagramId:Yt,getDiagramId:Wt},Xt=Ht,ie=g((e,n)=>{const l=yt,s=l(e,"r"),c=l(e,"g"),p=l(e,"b");return gt(s,c,p,n)},"fade"),jt=g(e=>`.label {
|
|
7
|
+
font-family: ${e.fontFamily};
|
|
8
|
+
color: ${e.nodeTextColor||e.textColor};
|
|
9
|
+
}
|
|
10
|
+
.cluster-label text {
|
|
11
|
+
fill: ${e.titleColor};
|
|
12
|
+
}
|
|
13
|
+
.cluster-label span {
|
|
14
|
+
color: ${e.titleColor};
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
.label text,span {
|
|
20
|
+
fill: ${e.nodeTextColor||e.textColor};
|
|
21
|
+
color: ${e.nodeTextColor||e.textColor};
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.node rect,
|
|
25
|
+
.node circle,
|
|
26
|
+
.node ellipse,
|
|
27
|
+
.node polygon,
|
|
28
|
+
.node path {
|
|
29
|
+
fill: ${e.mainBkg};
|
|
30
|
+
stroke: ${e.nodeBorder};
|
|
31
|
+
stroke-width: 1px;
|
|
32
|
+
}
|
|
33
|
+
.flowchart-label text {
|
|
34
|
+
text-anchor: middle;
|
|
35
|
+
}
|
|
36
|
+
// .flowchart-label .text-outer-tspan {
|
|
37
|
+
// text-anchor: middle;
|
|
38
|
+
// }
|
|
39
|
+
// .flowchart-label .text-inner-tspan {
|
|
40
|
+
// text-anchor: start;
|
|
41
|
+
// }
|
|
42
|
+
|
|
43
|
+
.node .label {
|
|
44
|
+
text-align: center;
|
|
45
|
+
}
|
|
46
|
+
.node.clickable {
|
|
47
|
+
cursor: pointer;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.arrowheadPath {
|
|
51
|
+
fill: ${e.arrowheadColor};
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.edgePaths .path {
|
|
55
|
+
stroke: ${e.lineColor};
|
|
56
|
+
stroke-width: 2.0px;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.flowchart-link {
|
|
60
|
+
stroke: ${e.lineColor};
|
|
61
|
+
fill: none;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.edgeLabel {
|
|
65
|
+
background-color: ${e.edgeLabelBackground};
|
|
66
|
+
/*
|
|
67
|
+
* This is for backward compatibility with existing code that didn't
|
|
68
|
+
* add a \`<p>\` around edge labels.
|
|
69
|
+
*
|
|
70
|
+
* TODO: We should probably remove this in a future release.
|
|
71
|
+
*/
|
|
72
|
+
p {
|
|
73
|
+
margin: 0;
|
|
74
|
+
padding: 0;
|
|
75
|
+
display: inline;
|
|
76
|
+
}
|
|
77
|
+
rect {
|
|
78
|
+
opacity: 0.5;
|
|
79
|
+
background-color: ${e.edgeLabelBackground};
|
|
80
|
+
fill: ${e.edgeLabelBackground};
|
|
81
|
+
}
|
|
82
|
+
text-align: center;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/* For html labels only */
|
|
86
|
+
.labelBkg {
|
|
87
|
+
background-color: ${e.edgeLabelBackground};
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.node .cluster {
|
|
91
|
+
// fill: ${ie(e.mainBkg,.5)};
|
|
92
|
+
fill: ${ie(e.clusterBkg,.5)};
|
|
93
|
+
stroke: ${ie(e.clusterBorder,.2)};
|
|
94
|
+
box-shadow: rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px;
|
|
95
|
+
stroke-width: 1px;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.cluster text {
|
|
99
|
+
fill: ${e.titleColor};
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.cluster span {
|
|
103
|
+
color: ${e.titleColor};
|
|
104
|
+
}
|
|
105
|
+
/* .cluster div {
|
|
106
|
+
color: ${e.titleColor};
|
|
107
|
+
} */
|
|
108
|
+
|
|
109
|
+
div.mermaidTooltip {
|
|
110
|
+
position: absolute;
|
|
111
|
+
text-align: center;
|
|
112
|
+
max-width: 200px;
|
|
113
|
+
padding: 2px;
|
|
114
|
+
font-family: ${e.fontFamily};
|
|
115
|
+
font-size: 12px;
|
|
116
|
+
background: ${e.tertiaryColor};
|
|
117
|
+
border: 1px solid ${e.border2};
|
|
118
|
+
border-radius: 2px;
|
|
119
|
+
pointer-events: none;
|
|
120
|
+
z-index: 100;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
.flowchartTitleText {
|
|
124
|
+
text-anchor: middle;
|
|
125
|
+
font-size: 18px;
|
|
126
|
+
fill: ${e.textColor};
|
|
127
|
+
}
|
|
128
|
+
${Pe()}
|
|
129
|
+
`,"getStyles"),Gt=jt;function oe(e,n){if(e===0||!Number.isInteger(e))throw new Error("Columns must be an integer !== 0.");if(n<0||!Number.isInteger(n))throw new Error("Position must be a non-negative integer."+n);if(e<0)return{px:n,py:0};if(e===1)return{px:0,py:n};const l=n%e,s=Math.floor(n/e);return{px:l,py:s}}g(oe,"calculateBlockPosition");var qt=g(e=>{let n=0,l=0;for(const s of e.children){const{width:c,height:p,x:r,y:d}=s.size??{width:0,height:0,x:0,y:0};if(m.debug("getMaxChildSize abc95 child:",s.id,"width:",c,"height:",p,"x:",r,"y:",d,s.type),s.type==="space")continue;const x=c/(s.widthInColumns??1);x>n&&(n=x),p>l&&(l=p)}return{width:n,height:l}},"getMaxChildSize");function Q(e,n,l=0,s=0,c=8){var d,x,y,S,E,z,A,_,N,I,D;m.debug("setBlockSizes abc95 (start)",e.id,(d=e==null?void 0:e.size)==null?void 0:d.x,"block width =",e==null?void 0:e.size,"siblingWidth",l),(x=e==null?void 0:e.size)!=null&&x.width||(e.size={width:l,height:s,x:0,y:0});let p=0,r=0;if(((y=e.children)==null?void 0:y.length)>0){for(const t of e.children)Q(t,n,0,0,c);const v=qt(e);p=v.width,r=v.height,m.debug("setBlockSizes abc95 maxWidth of",e.id,":s children is ",p,r);for(const t of e.children)t.size&&(m.debug(`abc95 Setting size of children of ${e.id} id=${t.id} ${p} ${r} ${JSON.stringify(t.size)}`),t.size.width=p*(t.widthInColumns??1)+c*((t.widthInColumns??1)-1),t.size.height=r,t.size.x=0,t.size.y=0,m.debug(`abc95 updating size of ${e.id} children child:${t.id} maxWidth:${p} maxHeight:${r}`));for(const t of e.children)Q(t,n,p,r,c);const T=e.columns??-1;let h=0;for(const t of e.children)h+=t.widthInColumns??1;let i=e.children.length;T>0&&T<h&&(i=T);const o=Math.ceil(h/i);let u=i*(p+c)+c,L=o*(r+c)+c;if(u<l){m.debug(`Detected to small sibling: abc95 ${e.id} siblingWidth ${l} siblingHeight ${s} width ${u}`),u=l,L=s;const t=(l-i*c-c)/i,O=(s-o*c-c)/o;m.debug("Size indata abc88",e.id,"childWidth",t,"maxWidth",p),m.debug("Size indata abc88",e.id,"childHeight",O,"maxHeight",r),m.debug("Size indata abc88 xSize",i,"padding",c);for(const a of e.children)a.size&&(a.size.width=t,a.size.height=O,a.size.x=0,a.size.y=0)}if(m.debug(`abc95 (finale calc) ${e.id} xSize ${i} ySize ${o} columns ${T}${e.children.length} width=${Math.max(u,((S=e.size)==null?void 0:S.width)||0)}`),u<(((E=e==null?void 0:e.size)==null?void 0:E.width)||0)){u=((z=e==null?void 0:e.size)==null?void 0:z.width)||0;const t=T>0?Math.min(e.children.length,T):e.children.length;if(t>0){const O=(u-t*c-c)/t;m.debug("abc95 (growing to fit) width",e.id,u,(A=e.size)==null?void 0:A.width,O);for(const a of e.children)a.size&&(a.size.width=O)}}e.size={width:u,height:L,x:0,y:0}}m.debug("setBlockSizes abc94 (done)",e.id,(_=e==null?void 0:e.size)==null?void 0:_.x,(N=e==null?void 0:e.size)==null?void 0:N.width,(I=e==null?void 0:e.size)==null?void 0:I.y,(D=e==null?void 0:e.size)==null?void 0:D.height)}g(Q,"setBlockSizes");function ge(e,n,l=8){var c,p,r,d,x,y,S,E,z,A,_,N,I,D,v,T,h;m.debug(`abc85 layout blocks (=>layoutBlocks) ${e.id} x: ${(c=e==null?void 0:e.size)==null?void 0:c.x} y: ${(p=e==null?void 0:e.size)==null?void 0:p.y} width: ${(r=e==null?void 0:e.size)==null?void 0:r.width}`);const s=e.columns??-1;if(m.debug("layoutBlocks columns abc95",e.id,"=>",s,e),e.children&&e.children.length>0){const i=((x=(d=e==null?void 0:e.children[0])==null?void 0:d.size)==null?void 0:x.width)??0,o=e.children.length*i+(e.children.length-1)*l;m.debug("widthOfChildren 88",o,"posX");const u=new Map;{let f=0;for(const w of e.children){if(!w.size)continue;const{py:C}=oe(s,f),M=u.get(C)??0;w.size.height>M&&u.set(C,w.size.height);let K=(w==null?void 0:w.widthInColumns)??1;s>0&&(K=Math.min(K,s-f%s)),f+=K}}const L=new Map;{let f=0;const w=[...u.keys()].sort((C,M)=>C-M);for(const C of w)L.set(C,f),f+=(u.get(C)??0)+l}let t=0;m.debug("abc91 block?.size?.x",e.id,(y=e==null?void 0:e.size)==null?void 0:y.x);let O=(S=e==null?void 0:e.size)!=null&&S.x?((E=e==null?void 0:e.size)==null?void 0:E.x)+(-((z=e==null?void 0:e.size)==null?void 0:z.width)/2||0):-l,a=0;for(const f of e.children){const w=e;if(!f.size)continue;const{width:C,height:M}=f.size,{px:K,py:b}=oe(s,t);if(b!=a&&(a=b,O=(A=e==null?void 0:e.size)!=null&&A.x?((_=e==null?void 0:e.size)==null?void 0:_.x)+(-((N=e==null?void 0:e.size)==null?void 0:N.width)/2||0):-l,m.debug("New row in layout for block",e.id," and child ",f.id,a)),m.debug(`abc89 layout blocks (child) id: ${f.id} Pos: ${t} (px, py) ${K},${b} (${(I=w==null?void 0:w.size)==null?void 0:I.x},${(D=w==null?void 0:w.size)==null?void 0:D.y}) parent: ${w.id} width: ${C}${l}`),w.size){const Y=C/2;f.size.x=O+l+Y,m.debug(`abc91 layout blocks (calc) px, pyid:${f.id} startingPos=X${O} new startingPosX${f.size.x} ${Y} padding=${l} width=${C} halfWidth=${Y} => x:${f.size.x} y:${f.size.y} ${f.widthInColumns} (width * (child?.w || 1)) / 2 ${C*((f==null?void 0:f.widthInColumns)??1)/2}`),O=f.size.x+Y;const H=L.get(b)??0,ee=u.get(b)??M;f.size.y=w.size.y-w.size.height/2+H+ee/2+l,m.debug(`abc88 layout blocks (calc) px, pyid:${f.id}startingPosX${O}${l}${Y}=>x:${f.size.x}y:${f.size.y}${f.widthInColumns}(width * (child?.w || 1)) / 2${C*((f==null?void 0:f.widthInColumns)??1)/2}`)}f.children&&ge(f,n,l);let R=(f==null?void 0:f.widthInColumns)??1;s>0&&(R=Math.min(R,s-t%s)),t+=R,m.debug("abc88 columnsPos",f,t)}}m.debug(`layout blocks (<==layoutBlocks) ${e.id} x: ${(v=e==null?void 0:e.size)==null?void 0:v.x} y: ${(T=e==null?void 0:e.size)==null?void 0:T.y} width: ${(h=e==null?void 0:e.size)==null?void 0:h.width}`)}g(ge,"layoutBlocks");function he(e,{minX:n,minY:l,maxX:s,maxY:c}={minX:0,minY:0,maxX:0,maxY:0}){if(e.size&&e.id!=="root"){const{x:p,y:r,width:d,height:x}=e.size;p-d/2<n&&(n=p-d/2),r-x/2<l&&(l=r-x/2),p+d/2>s&&(s=p+d/2),r+x/2>c&&(c=r+x/2)}if(e.children)for(const p of e.children)({minX:n,minY:l,maxX:s,maxY:c}=he(p,{minX:n,minY:l,maxX:s,maxY:c}));return{minX:n,minY:l,maxX:s,maxY:c}}g(he,"findBounds");function Ce(e){var y,S;const n=e.getBlock("root");if(!n)return;const l=((S=(y=me())==null?void 0:y.block)==null?void 0:S.padding)??8;Q(n,e,0,0,l),ge(n,e,l),m.debug("getBlocks",JSON.stringify(n,null,2));const{minX:s,minY:c,maxX:p,maxY:r}=he(n),d=r-c,x=p-s;return{x:s,y:c,width:x,height:d}}g(Ce,"layout");function de(e,n,l=!1){var _,N,I;const s=e;let c="default";(((_=s==null?void 0:s.classes)==null?void 0:_.length)||0)>0&&(c=((s==null?void 0:s.classes)??[]).join(" ")),c=c+" flowchart-label";const p=((s==null?void 0:s.classes)??[]).flatMap(D=>{var v;return((v=n.getClasses().get(D))==null?void 0:v.styles)??[]});let r=0,d="rect",x;switch(s.type){case"round":r=5,d="rect";break;case"composite":r=0,d="composite",x=0;break;case"square":d="rect";break;case"diamond":d="question";break;case"hexagon":d="hexagon";break;case"block_arrow":d="block_arrow";break;case"odd":d="rect_left_inv_arrow";break;case"lean_right":d="lean_right";break;case"lean_left":d="lean_left";break;case"trapezoid":d="trapezoid";break;case"inv_trapezoid":d="inv_trapezoid";break;case"rect_left_inv_arrow":d="rect_left_inv_arrow";break;case"circle":d="circle";break;case"ellipse":d="ellipse";break;case"stadium":d="stadium";break;case"subroutine":d="subroutine";break;case"cylinder":d="cylinder";break;case"group":d="rect";break;case"doublecircle":d="doublecircle";break;default:d="rect"}const y=xt((s==null?void 0:s.styles)??[]),S=s.label,E=s.size??{width:0,height:0,x:0,y:0},z=n.getDiagramId();return{labelStyle:y.labelStyle,shape:d,label:S,labelText:S,rx:r,ry:r,class:c,cssClasses:c,cssStyles:(s==null?void 0:s.styles)??[],cssCompiledStyles:p,style:y.style,id:s.id,domId:z?`${z}-${s.id}`:s.id,isGroup:!1,directions:s.directions,width:E.width||void 0,height:E.height||void 0,wrappingWidth:E.width||Number.POSITIVE_INFINITY,x:E.x,y:E.y,positioned:l,intersect:void 0,padding:x??((I=(N=j())==null?void 0:N.block)==null?void 0:I.padding)??0,widthInColumns:s.widthInColumns??1}}g(de,"getNodeFromBlock");async function ve(e,n,l){var x;const s=de(n,l,!1);if(n.type==="group")return;const c=j(),p=await be(e,s,{config:c}),r=((x=p.node())==null?void 0:x.getBBox())??{width:0,height:0},d=l.getBlock(s.id);d.size={width:r.width,height:r.height,x:0,y:0,node:p},l.setBlock(d),p.remove()}g(ve,"calculateBlockSize");async function ze(e,n,l){const s=de(n,l,!0);if(l.getBlock(s.id).type!=="space"){const p=j();await be(e,s,{config:p}),n.intersect=s==null?void 0:s.intersect,Lt(s)}}g(ze,"insertBlockPositioned");async function $(e,n,l,s){for(const c of n)await s(e,c,l),c.children&&await $(e,c.children,l,s)}g($,"performOperations");async function Ae(e,n,l){await $(e,n,l,ve)}g(Ae,"calculateBlockSizes");async function Be(e,n,l){await $(e,n,l,ze)}g(Be,"insertBlocks");async function Re(e,n,l,s,c){const p=new ht({multigraph:!0,compound:!0});p.setGraph({rankdir:"TB",nodesep:10,ranksep:10,marginx:8,marginy:8});for(const r of l)r.size&&p.setNode(r.id,{width:r.size.width,height:r.size.height,intersect:r.intersect});for(const r of n)if(r.start&&r.end){const d=s.getBlock(r.start),x=s.getBlock(r.end);if(d!=null&&d.size&&(x!=null&&x.size)){const y=d.size,S=x.size,E=[{x:y.x,y:y.y},{x:y.x+(S.x-y.x)/2,y:y.y+(S.y-y.y)/2},{x:S.x,y:S.y}],z=c?`${c}-${r.id}`:r.id,A=r.thickness==="thick"?"edge-thickness-thick":"edge-thickness-normal",_=r.pattern==="dotted"?"edge-pattern-dotted":"edge-pattern-solid",N=`${A} ${_} flowchart-link LS-a1 LE-b1`;dt(e,{...r,id:z,arrowTypeEnd:r.arrowTypeEnd,arrowTypeStart:r.arrowTypeStart,points:E,classes:N},{},"block",p.node(r.start),p.node(r.end),c),r.label&&(await pt(e,{...r,label:r.label,labelStyle:"stroke: #333; stroke-width: 1.5px;fill:none;",arrowTypeEnd:r.arrowTypeEnd,arrowTypeStart:r.arrowTypeStart,points:E,classes:N}),ft({...r,x:E[1].x,y:E[1].y},{originalPath:E}))}}}g(Re,"insertEdges");var Jt=g(function(e,n){return n.db.getClasses()},"getClasses"),Zt=g(async function(e,n,l,s){var v;const{securityLevel:c,block:p}=j(),r=s.db;r.setDiagramId(n);let d;c==="sandbox"&&(d=J("#i"+n));const x=c==="sandbox"?J(d.nodes()[0].contentDocument.body):J("body"),y=c==="sandbox"?x.select(`[id="${n}"]`):J(`[id="${n}"]`);ct(y,["point","circle","cross"],s.type,n);const E=r.getBlocks(),z=r.getBlocksFlat(),A=r.getEdges(),_=y.insert("g").attr("class","block");await Ae(_,E,r);const N=Ce(r);await Be(_,E,r),await Re(_,A,z,r,n);const I=(v=_.node())==null?void 0:v.getBBox(),D=I&&Number.isFinite(I.width)&&Number.isFinite(I.height)?I:N;if(D){const T=Math.max(1,Math.round(.125*(D.width/D.height))),h=D.height+T+10,i=D.width+10,{useMaxWidth:o}=p;lt(y,h,i,!!o),m.debug("Here Bounds",N,D),y.attr("viewBox",`${D.x-5} ${D.y-5} ${D.width+10} ${D.height+10}`)}},"draw"),Qt={draw:Zt,getClasses:Jt},rs={parser:Tt,db:Xt,renderer:Qt,styles:Gt};export{rs as diagram};
|
|
130
|
+
//# sourceMappingURL=blockDiagram-I7D4REHJ-172V7R5o.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blockDiagram-I7D4REHJ-172V7R5o.js","sources":["../../../../node_modules/.pnpm/es-toolkit@1.52.0/node_modules/es-toolkit/dist/compat/predicate/isArray.mjs","../../../../node_modules/.pnpm/es-toolkit@1.52.0/node_modules/es-toolkit/dist/compat/object/clone.mjs","../../../../node_modules/.pnpm/mermaid@11.17.2/node_modules/mermaid/dist/chunks/mermaid.core/blockDiagram-I7D4REHJ.mjs"],"sourcesContent":["//#region src/compat/predicate/isArray.ts\n/**\n* Checks if the given value is an array.\n*\n* This function tests whether the provided value is an array or not.\n* It returns `true` if the value is an array, and `false` otherwise.\n*\n* This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to an array.\n*\n* @param value - The value to test if it is an array.\n* @returns `true` if the value is an array, `false` otherwise.\n*\n* @example\n* const value1 = [1, 2, 3];\n* const value2 = 'abc';\n* const value3 = () => {};\n*\n* console.log(isArray(value1)); // true\n* console.log(isArray(value2)); // false\n* console.log(isArray(value3)); // false\n*/\nfunction isArray(value) {\n\treturn Array.isArray(value);\n}\n//#endregion\nexport { isArray };\n","import { isPrimitive } from \"../../predicate/isPrimitive.mjs\";\nimport { getTag } from \"../_internal/getTag.mjs\";\nimport { argumentsTag, arrayBufferTag, arrayTag, booleanTag, dataViewTag, dateTag, float32ArrayTag, float64ArrayTag, int16ArrayTag, int32ArrayTag, int8ArrayTag, mapTag, numberTag, objectTag, regexpTag, setTag, stringTag, symbolTag, uint16ArrayTag, uint32ArrayTag, uint8ArrayTag, uint8ClampedArrayTag } from \"../_internal/tags.mjs\";\nimport { isArray } from \"../predicate/isArray.mjs\";\nimport { isTypedArray } from \"../predicate/isTypedArray.mjs\";\n//#region src/compat/object/clone.ts\n/**\n* Creates a shallow clone of the given object.\n*\n* @template T - The type of the object.\n* @param obj - The object to clone.\n* @returns A shallow clone of the given object.\n*\n* @example\n* // Clone a primitive object\n* const num = 29;\n* const clonedNum = clone(num);\n* console.log(clonedNum); // 29\n* console.log(clonedNum === num); // true\n*\n* @example\n* // Clone an array\n* const arr = [1, 2, 3];\n* const clonedArr = clone(arr);\n* console.log(clonedArr); // [1, 2, 3]\n* console.log(clonedArr === arr); // false\n*\n* @example\n* // Clone an object\n* const obj = { a: 1, b: 'es-toolkit', c: [1, 2, 3] };\n* const clonedObj = clone(obj);\n* console.log(clonedObj); // { a: 1, b: 'es-toolkit', c: [1, 2, 3] }\n* console.log(clonedObj === obj); // false\n*/\nfunction clone(obj) {\n\tif (isPrimitive(obj)) return obj;\n\tconst tag = getTag(obj);\n\tif (!isCloneableObject(obj)) return {};\n\tif (isArray(obj)) {\n\t\tconst result = Array.from(obj);\n\t\tif (obj.length > 0 && typeof obj[0] === \"string\" && Object.hasOwn(obj, \"index\")) {\n\t\t\tresult.index = obj.index;\n\t\t\tresult.input = obj.input;\n\t\t}\n\t\treturn result;\n\t}\n\tif (isTypedArray(obj)) {\n\t\tconst typedArray = obj;\n\t\tconst Ctor = typedArray.constructor;\n\t\treturn new Ctor(typedArray.buffer, typedArray.byteOffset, typedArray.length);\n\t}\n\tif (tag === \"[object ArrayBuffer]\") return new ArrayBuffer(obj.byteLength);\n\tif (tag === \"[object DataView]\") {\n\t\tconst dataView = obj;\n\t\tconst buffer = dataView.buffer;\n\t\tconst byteOffset = dataView.byteOffset;\n\t\tconst byteLength = dataView.byteLength;\n\t\tconst clonedBuffer = new ArrayBuffer(byteLength);\n\t\tconst srcView = new Uint8Array(buffer, byteOffset, byteLength);\n\t\tnew Uint8Array(clonedBuffer).set(srcView);\n\t\treturn new DataView(clonedBuffer);\n\t}\n\tif (tag === \"[object Boolean]\" || tag === \"[object Number]\" || tag === \"[object String]\") {\n\t\tconst Ctor = obj.constructor;\n\t\tconst clone = new Ctor(obj.valueOf());\n\t\tif (tag === \"[object String]\") cloneStringObjectProperties(clone, obj);\n\t\telse copyOwnProperties(clone, obj);\n\t\treturn clone;\n\t}\n\tif (tag === \"[object Date]\") return new Date(Number(obj));\n\tif (tag === \"[object RegExp]\") {\n\t\tconst regExp = obj;\n\t\tconst clone = new RegExp(regExp.source, regExp.flags);\n\t\tclone.lastIndex = regExp.lastIndex;\n\t\treturn clone;\n\t}\n\tif (tag === \"[object Symbol]\") return Object(Symbol.prototype.valueOf.call(obj));\n\tif (tag === \"[object Map]\") {\n\t\tconst map = obj;\n\t\tconst result = /* @__PURE__ */ new Map();\n\t\tmap.forEach((obj, key) => {\n\t\t\tresult.set(key, obj);\n\t\t});\n\t\treturn result;\n\t}\n\tif (tag === \"[object Set]\") {\n\t\tconst set = obj;\n\t\tconst result = /* @__PURE__ */ new Set();\n\t\tset.forEach((obj) => {\n\t\t\tresult.add(obj);\n\t\t});\n\t\treturn result;\n\t}\n\tif (tag === \"[object Arguments]\") {\n\t\tconst args = obj;\n\t\tconst result = {};\n\t\tcopyOwnProperties(result, args);\n\t\tresult.length = args.length;\n\t\tresult[Symbol.iterator] = args[Symbol.iterator];\n\t\treturn result;\n\t}\n\tconst result = {};\n\tcopyPrototype(result, obj);\n\tcopyOwnProperties(result, obj);\n\tcopySymbolProperties(result, obj);\n\treturn result;\n}\nfunction isCloneableObject(object) {\n\tswitch (getTag(object)) {\n\t\tcase argumentsTag:\n\t\tcase arrayTag:\n\t\tcase arrayBufferTag:\n\t\tcase dataViewTag:\n\t\tcase booleanTag:\n\t\tcase dateTag:\n\t\tcase float32ArrayTag:\n\t\tcase float64ArrayTag:\n\t\tcase int8ArrayTag:\n\t\tcase int16ArrayTag:\n\t\tcase int32ArrayTag:\n\t\tcase mapTag:\n\t\tcase numberTag:\n\t\tcase objectTag:\n\t\tcase regexpTag:\n\t\tcase setTag:\n\t\tcase stringTag:\n\t\tcase symbolTag:\n\t\tcase uint8ArrayTag:\n\t\tcase uint8ClampedArrayTag:\n\t\tcase uint16ArrayTag:\n\t\tcase uint32ArrayTag: return true;\n\t\tdefault: return false;\n\t}\n}\nfunction copyOwnProperties(target, source) {\n\tfor (const key in source) if (Object.hasOwn(source, key)) target[key] = source[key];\n}\nfunction copySymbolProperties(target, source) {\n\tconst symbols = Object.getOwnPropertySymbols(source);\n\tfor (let i = 0; i < symbols.length; i++) {\n\t\tconst symbol = symbols[i];\n\t\tif (Object.prototype.propertyIsEnumerable.call(source, symbol)) target[symbol] = source[symbol];\n\t}\n}\nfunction cloneStringObjectProperties(target, source) {\n\tconst stringLength = source.valueOf().length;\n\tfor (const key in source) if (Object.hasOwn(source, key) && (Number.isNaN(Number(key)) || Number(key) >= stringLength)) target[key] = source[key];\n}\nfunction copyPrototype(target, source) {\n\tconst proto = Object.getPrototypeOf(source);\n\tif (proto !== null) {\n\t\tif (typeof source.constructor === \"function\") Object.setPrototypeOf(target, proto);\n\t}\n}\n//#endregion\nexport { clone };\n","import {\n getIconStyles\n} from \"./chunk-5VM5RSS4.mjs\";\nimport {\n insertEdge,\n insertEdgeLabel,\n markers_default,\n positionEdgeLabel\n} from \"./chunk-OSK3NFVY.mjs\";\nimport {\n insertNode,\n positionNode\n} from \"./chunk-GVQU2GXP.mjs\";\nimport \"./chunk-4HAMMTFA.mjs\";\nimport \"./chunk-P2QGCYS3.mjs\";\nimport \"./chunk-GMAD6QVW.mjs\";\nimport \"./chunk-PWAF6VOD.mjs\";\nimport {\n getStylesFromArray\n} from \"./chunk-75Z2AOVW.mjs\";\nimport {\n clear,\n common_default,\n configureSvgSize,\n getConfig,\n getConfig2\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/block/parser/block.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, 15], $V1 = [1, 7], $V2 = [1, 13], $V3 = [1, 14], $V4 = [1, 19], $V5 = [1, 16], $V6 = [1, 17], $V7 = [1, 18], $V8 = [8, 30], $V9 = [8, 10, 21, 28, 29, 30, 31, 39, 43, 46], $Va = [1, 23], $Vb = [1, 24], $Vc = [8, 10, 15, 16, 21, 28, 29, 30, 31, 39, 43, 46], $Vd = [8, 10, 15, 16, 21, 27, 28, 29, 30, 31, 39, 43, 46], $Ve = [1, 49];\n var parser2 = {\n trace: /* @__PURE__ */ __name(function trace() {\n }, \"trace\"),\n yy: {},\n symbols_: { \"error\": 2, \"spaceLines\": 3, \"SPACELINE\": 4, \"NL\": 5, \"separator\": 6, \"SPACE\": 7, \"EOF\": 8, \"start\": 9, \"BLOCK_DIAGRAM_KEY\": 10, \"document\": 11, \"stop\": 12, \"statement\": 13, \"link\": 14, \"LINK\": 15, \"START_LINK\": 16, \"LINK_LABEL\": 17, \"STR\": 18, \"nodeStatement\": 19, \"columnsStatement\": 20, \"SPACE_BLOCK\": 21, \"blockStatement\": 22, \"classDefStatement\": 23, \"cssClassStatement\": 24, \"styleStatement\": 25, \"node\": 26, \"SIZE\": 27, \"COLUMNS\": 28, \"id-block\": 29, \"end\": 30, \"NODE_ID\": 31, \"nodeShapeNLabel\": 32, \"dirList\": 33, \"DIR\": 34, \"NODE_DSTART\": 35, \"NODE_DEND\": 36, \"BLOCK_ARROW_START\": 37, \"BLOCK_ARROW_END\": 38, \"classDef\": 39, \"CLASSDEF_ID\": 40, \"CLASSDEF_STYLEOPTS\": 41, \"DEFAULT\": 42, \"class\": 43, \"CLASSENTITY_IDS\": 44, \"STYLECLASS\": 45, \"style\": 46, \"STYLE_ENTITY_IDS\": 47, \"STYLE_DEFINITION_DATA\": 48, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 4: \"SPACELINE\", 5: \"NL\", 7: \"SPACE\", 8: \"EOF\", 10: \"BLOCK_DIAGRAM_KEY\", 15: \"LINK\", 16: \"START_LINK\", 17: \"LINK_LABEL\", 18: \"STR\", 21: \"SPACE_BLOCK\", 27: \"SIZE\", 28: \"COLUMNS\", 29: \"id-block\", 30: \"end\", 31: \"NODE_ID\", 34: \"DIR\", 35: \"NODE_DSTART\", 36: \"NODE_DEND\", 37: \"BLOCK_ARROW_START\", 38: \"BLOCK_ARROW_END\", 39: \"classDef\", 40: \"CLASSDEF_ID\", 41: \"CLASSDEF_STYLEOPTS\", 42: \"DEFAULT\", 43: \"class\", 44: \"CLASSENTITY_IDS\", 45: \"STYLECLASS\", 46: \"style\", 47: \"STYLE_ENTITY_IDS\", 48: \"STYLE_DEFINITION_DATA\" },\n productions_: [0, [3, 1], [3, 2], [3, 2], [6, 1], [6, 1], [6, 1], [9, 3], [12, 1], [12, 1], [12, 2], [12, 2], [11, 1], [11, 2], [14, 1], [14, 4], [13, 1], [13, 1], [13, 1], [13, 1], [13, 1], [13, 1], [13, 1], [19, 3], [19, 2], [19, 1], [20, 1], [22, 4], [22, 3], [26, 1], [26, 2], [33, 1], [33, 2], [32, 3], [32, 4], [23, 3], [23, 3], [24, 3], [25, 3]],\n performAction: /* @__PURE__ */ __name(function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 4:\n yy.getLogger().debug(\"Rule: separator (NL) \");\n break;\n case 5:\n yy.getLogger().debug(\"Rule: separator (Space) \");\n break;\n case 6:\n yy.getLogger().debug(\"Rule: separator (EOF) \");\n break;\n case 7:\n yy.getLogger().debug(\"Rule: hierarchy: \", $$[$0 - 1]);\n yy.setHierarchy($$[$0 - 1]);\n break;\n case 8:\n yy.getLogger().debug(\"Stop NL \");\n break;\n case 9:\n yy.getLogger().debug(\"Stop EOF \");\n break;\n case 10:\n yy.getLogger().debug(\"Stop NL2 \");\n break;\n case 11:\n yy.getLogger().debug(\"Stop EOF2 \");\n break;\n case 12:\n yy.getLogger().debug(\"Rule: statement: \", $$[$0]);\n typeof $$[$0].length === \"number\" ? this.$ = $$[$0] : this.$ = [$$[$0]];\n break;\n case 13:\n yy.getLogger().debug(\"Rule: statement #2: \", $$[$0 - 1]);\n this.$ = [$$[$0 - 1]].concat($$[$0]);\n break;\n case 14:\n yy.getLogger().debug(\"Rule: link: \", $$[$0], yytext);\n this.$ = { edgeTypeStr: $$[$0], label: \"\" };\n break;\n case 15:\n yy.getLogger().debug(\"Rule: LABEL link: \", $$[$0 - 3], $$[$0 - 1], $$[$0]);\n this.$ = { edgeTypeStr: $$[$0], label: $$[$0 - 1] };\n break;\n case 18:\n const num = parseInt($$[$0]);\n const spaceId = yy.generateId();\n this.$ = { id: spaceId, type: \"space\", label: \"\", width: num, children: [] };\n break;\n case 23:\n yy.getLogger().debug(\"Rule: (nodeStatement link node) \", $$[$0 - 2], $$[$0 - 1], $$[$0], \" typestr: \", $$[$0 - 1].edgeTypeStr);\n const edgeData = yy.edgeStrToEdgeData($$[$0 - 1].edgeTypeStr);\n const startEdgeData = yy.edgeStrToEdgeStartData($$[$0 - 1].edgeTypeStr);\n const lineThickness = yy.edgeStrToThickness($$[$0 - 1].edgeTypeStr);\n const linePattern = yy.edgeStrToPattern($$[$0 - 1].edgeTypeStr);\n this.$ = [\n { id: $$[$0 - 2].id, label: $$[$0 - 2].label, type: $$[$0 - 2].type, directions: $$[$0 - 2].directions },\n { id: $$[$0 - 2].id + \"-\" + $$[$0].id, start: $$[$0 - 2].id, end: $$[$0].id, label: $$[$0 - 1].label, type: \"edge\", thickness: lineThickness, pattern: linePattern, directions: $$[$0].directions, arrowTypeEnd: edgeData, arrowTypeStart: startEdgeData },\n { id: $$[$0].id, label: $$[$0].label, type: yy.typeStr2Type($$[$0].typeStr), directions: $$[$0].directions }\n ];\n break;\n case 24:\n yy.getLogger().debug(\"Rule: nodeStatement (abc88 node size) \", $$[$0 - 1], $$[$0]);\n this.$ = { id: $$[$0 - 1].id, label: $$[$0 - 1].label, type: yy.typeStr2Type($$[$0 - 1].typeStr), directions: $$[$0 - 1].directions, widthInColumns: parseInt($$[$0], 10) };\n break;\n case 25:\n yy.getLogger().debug(\"Rule: nodeStatement (node) \", $$[$0]);\n this.$ = { id: $$[$0].id, label: $$[$0].label, type: yy.typeStr2Type($$[$0].typeStr), directions: $$[$0].directions, widthInColumns: 1 };\n break;\n case 26:\n yy.getLogger().debug(\"APA123\", this ? this : \"na\");\n yy.getLogger().debug(\"COLUMNS: \", $$[$0]);\n this.$ = { type: \"column-setting\", columns: $$[$0] === \"auto\" ? -1 : parseInt($$[$0]) };\n break;\n case 27:\n yy.getLogger().debug(\"Rule: id-block statement : \", $$[$0 - 2], $$[$0 - 1]);\n const id2 = yy.generateId();\n this.$ = { ...$$[$0 - 2], type: \"composite\", children: $$[$0 - 1] };\n break;\n case 28:\n yy.getLogger().debug(\"Rule: blockStatement : \", $$[$0 - 2], $$[$0 - 1], $$[$0]);\n const id = yy.generateId();\n this.$ = { id, type: \"composite\", label: \"\", children: $$[$0 - 1] };\n break;\n case 29:\n yy.getLogger().debug(\"Rule: node (NODE_ID separator): \", $$[$0]);\n this.$ = { id: $$[$0] };\n break;\n case 30:\n yy.getLogger().debug(\"Rule: node (NODE_ID nodeShapeNLabel separator): \", $$[$0 - 1], $$[$0]);\n this.$ = { id: $$[$0 - 1], label: $$[$0].label, typeStr: $$[$0].typeStr, directions: $$[$0].directions };\n break;\n case 31:\n yy.getLogger().debug(\"Rule: dirList: \", $$[$0]);\n this.$ = [$$[$0]];\n break;\n case 32:\n yy.getLogger().debug(\"Rule: dirList: \", $$[$0 - 1], $$[$0]);\n this.$ = [$$[$0 - 1]].concat($$[$0]);\n break;\n case 33:\n yy.getLogger().debug(\"Rule: nodeShapeNLabel: \", $$[$0 - 2], $$[$0 - 1], $$[$0]);\n this.$ = { typeStr: $$[$0 - 2] + $$[$0], label: $$[$0 - 1] };\n break;\n case 34:\n yy.getLogger().debug(\"Rule: BLOCK_ARROW nodeShapeNLabel: \", $$[$0 - 3], $$[$0 - 2], \" #3:\", $$[$0 - 1], $$[$0]);\n this.$ = { typeStr: $$[$0 - 3] + $$[$0], label: $$[$0 - 2], directions: $$[$0 - 1] };\n break;\n case 35:\n case 36:\n this.$ = { type: \"classDef\", id: $$[$0 - 1].trim(), css: $$[$0].trim() };\n break;\n case 37:\n this.$ = { type: \"applyClass\", id: $$[$0 - 1].trim(), styleClass: $$[$0].trim() };\n break;\n case 38:\n this.$ = { type: \"applyStyles\", id: $$[$0 - 1].trim(), stylesStr: $$[$0].trim() };\n break;\n }\n }, \"anonymous\"),\n table: [{ 9: 1, 10: [1, 2] }, { 1: [3] }, { 10: $V0, 11: 3, 13: 4, 19: 5, 20: 6, 21: $V1, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 28: $V2, 29: $V3, 31: $V4, 39: $V5, 43: $V6, 46: $V7 }, { 8: [1, 20] }, o($V8, [2, 12], { 13: 4, 19: 5, 20: 6, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 11: 21, 10: $V0, 21: $V1, 28: $V2, 29: $V3, 31: $V4, 39: $V5, 43: $V6, 46: $V7 }), o($V9, [2, 16], { 14: 22, 15: $Va, 16: $Vb }), o($V9, [2, 17]), o($V9, [2, 18]), o($V9, [2, 19]), o($V9, [2, 20]), o($V9, [2, 21]), o($V9, [2, 22]), o($Vc, [2, 25], { 27: [1, 25] }), o($V9, [2, 26]), { 19: 26, 26: 12, 31: $V4 }, { 10: $V0, 11: 27, 13: 4, 19: 5, 20: 6, 21: $V1, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 28: $V2, 29: $V3, 31: $V4, 39: $V5, 43: $V6, 46: $V7 }, { 40: [1, 28], 42: [1, 29] }, { 44: [1, 30] }, { 47: [1, 31] }, o($Vd, [2, 29], { 32: 32, 35: [1, 33], 37: [1, 34] }), { 1: [2, 7] }, o($V8, [2, 13]), { 26: 35, 31: $V4 }, { 31: [2, 14] }, { 17: [1, 36] }, o($Vc, [2, 24]), { 10: $V0, 11: 37, 13: 4, 14: 22, 15: $Va, 16: $Vb, 19: 5, 20: 6, 21: $V1, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 28: $V2, 29: $V3, 31: $V4, 39: $V5, 43: $V6, 46: $V7 }, { 30: [1, 38] }, { 41: [1, 39] }, { 41: [1, 40] }, { 45: [1, 41] }, { 48: [1, 42] }, o($Vd, [2, 30]), { 18: [1, 43] }, { 18: [1, 44] }, o($Vc, [2, 23]), { 18: [1, 45] }, { 30: [1, 46] }, o($V9, [2, 28]), o($V9, [2, 35]), o($V9, [2, 36]), o($V9, [2, 37]), o($V9, [2, 38]), { 36: [1, 47] }, { 33: 48, 34: $Ve }, { 15: [1, 50] }, o($V9, [2, 27]), o($Vd, [2, 33]), { 38: [1, 51] }, { 33: 52, 34: $Ve, 38: [2, 31] }, { 31: [2, 15] }, o($Vd, [2, 34]), { 38: [2, 32] }],\n defaultActions: { 20: [2, 7], 23: [2, 14], 50: [2, 15], 52: [2, 32] },\n parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n }, \"parseError\"),\n parse: /* @__PURE__ */ __name(function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n __name(popStack, \"popStack\");\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n __name(lex, \"lex\");\n var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n if (recovering > 0) {\n recovering--;\n }\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }, \"parse\")\n };\n var lexer = /* @__PURE__ */ (function() {\n var lexer2 = {\n EOF: 1,\n parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n }, \"parseError\"),\n // resets the lexer, sets new input\n setInput: /* @__PURE__ */ __name(function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n }, \"setInput\"),\n // consumes and returns one char from the input\n input: /* @__PURE__ */ __name(function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n }, \"input\"),\n // unshifts one char (or a string) into the input\n unput: /* @__PURE__ */ __name(function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n }, \"unput\"),\n // When called from action, caches matched text and appends it on next action\n more: /* @__PURE__ */ __name(function() {\n this._more = true;\n return this;\n }, \"more\"),\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: /* @__PURE__ */ __name(function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n }, \"reject\"),\n // retain first n characters of the match\n less: /* @__PURE__ */ __name(function(n) {\n this.unput(this.match.slice(n));\n }, \"less\"),\n // displays already matched input, i.e. for error messages\n pastInput: /* @__PURE__ */ __name(function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n }, \"pastInput\"),\n // displays upcoming input, i.e. for error messages\n upcomingInput: /* @__PURE__ */ __name(function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n }, \"upcomingInput\"),\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: /* @__PURE__ */ __name(function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n }, \"showPosition\"),\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: /* @__PURE__ */ __name(function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n }, \"test_match\"),\n // return next match in input\n next: /* @__PURE__ */ __name(function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n }, \"next\"),\n // return next match that has a token\n lex: /* @__PURE__ */ __name(function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n }, \"lex\"),\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: /* @__PURE__ */ __name(function begin(condition) {\n this.conditionStack.push(condition);\n }, \"begin\"),\n // pop the previously active lexer condition state off the condition stack\n popState: /* @__PURE__ */ __name(function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n }, \"popState\"),\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: /* @__PURE__ */ __name(function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n }, \"_currentRules\"),\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: /* @__PURE__ */ __name(function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n }, \"topState\"),\n // alias for begin(condition)\n pushState: /* @__PURE__ */ __name(function pushState(condition) {\n this.begin(condition);\n }, \"pushState\"),\n // return the number of states currently on the stack\n stateStackSize: /* @__PURE__ */ __name(function stateStackSize() {\n return this.conditionStack.length;\n }, \"stateStackSize\"),\n options: {},\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 yy.getLogger().debug(\"Found block-beta\");\n return 10;\n break;\n case 1:\n yy.getLogger().debug(\"Found id-block\");\n return 29;\n break;\n case 2:\n yy.getLogger().debug(\"Found block\");\n return 10;\n break;\n case 3:\n yy.getLogger().debug(\".\", yy_.yytext);\n break;\n case 4:\n yy.getLogger().debug(\"_\", yy_.yytext);\n break;\n case 5:\n return 5;\n break;\n case 6:\n yy_.yytext = -1;\n return 28;\n break;\n case 7:\n yy_.yytext = yy_.yytext.replace(/columns\\s+/, \"\");\n yy.getLogger().debug(\"COLUMNS (LEX)\", yy_.yytext);\n return 28;\n break;\n case 8:\n this.pushState(\"md_string\");\n break;\n case 9:\n return \"MD_STR\";\n break;\n case 10:\n this.popState();\n break;\n case 11:\n this.pushState(\"string\");\n break;\n case 12:\n yy.getLogger().debug(\"LEX: POPPING STR:\", yy_.yytext);\n this.popState();\n break;\n case 13:\n yy.getLogger().debug(\"LEX: STR end:\", yy_.yytext);\n return \"STR\";\n break;\n case 14:\n yy_.yytext = yy_.yytext.replace(/space\\:/, \"\");\n yy.getLogger().debug(\"SPACE NUM (LEX)\", yy_.yytext);\n return 21;\n break;\n case 15:\n yy_.yytext = \"1\";\n yy.getLogger().debug(\"COLUMNS (LEX)\", yy_.yytext);\n return 21;\n break;\n case 16:\n return 42;\n break;\n case 17:\n return \"LINKSTYLE\";\n break;\n case 18:\n return \"INTERPOLATE\";\n break;\n case 19:\n this.pushState(\"CLASSDEF\");\n return 39;\n break;\n case 20:\n this.popState();\n this.pushState(\"CLASSDEFID\");\n return \"DEFAULT_CLASSDEF_ID\";\n break;\n case 21:\n this.popState();\n this.pushState(\"CLASSDEFID\");\n return 40;\n break;\n case 22:\n this.popState();\n return 41;\n break;\n case 23:\n this.pushState(\"CLASS\");\n return 43;\n break;\n case 24:\n this.popState();\n this.pushState(\"CLASS_STYLE\");\n return 44;\n break;\n case 25:\n this.popState();\n return 45;\n break;\n case 26:\n this.pushState(\"STYLE_STMNT\");\n return 46;\n break;\n case 27:\n this.popState();\n this.pushState(\"STYLE_DEFINITION\");\n return 47;\n break;\n case 28:\n this.popState();\n return 48;\n break;\n case 29:\n this.pushState(\"acc_title\");\n return \"acc_title\";\n break;\n case 30:\n this.popState();\n return \"acc_title_value\";\n break;\n case 31:\n this.pushState(\"acc_descr\");\n return \"acc_descr\";\n break;\n case 32:\n this.popState();\n return \"acc_descr_value\";\n break;\n case 33:\n this.pushState(\"acc_descr_multiline\");\n break;\n case 34:\n this.popState();\n break;\n case 35:\n return \"acc_descr_multiline_value\";\n break;\n case 36:\n return 30;\n break;\n case 37:\n this.popState();\n yy.getLogger().debug(\"Lex: ((\");\n return \"NODE_DEND\";\n break;\n case 38:\n this.popState();\n yy.getLogger().debug(\"Lex: ((\");\n return \"NODE_DEND\";\n break;\n case 39:\n this.popState();\n yy.getLogger().debug(\"Lex: ))\");\n return \"NODE_DEND\";\n break;\n case 40:\n this.popState();\n yy.getLogger().debug(\"Lex: ((\");\n return \"NODE_DEND\";\n break;\n case 41:\n this.popState();\n yy.getLogger().debug(\"Lex: ((\");\n return \"NODE_DEND\";\n break;\n case 42:\n this.popState();\n yy.getLogger().debug(\"Lex: (-\");\n return \"NODE_DEND\";\n break;\n case 43:\n this.popState();\n yy.getLogger().debug(\"Lex: -)\");\n return \"NODE_DEND\";\n break;\n case 44:\n this.popState();\n yy.getLogger().debug(\"Lex: ((\");\n return \"NODE_DEND\";\n break;\n case 45:\n this.popState();\n yy.getLogger().debug(\"Lex: ]]\");\n return \"NODE_DEND\";\n break;\n case 46:\n this.popState();\n yy.getLogger().debug(\"Lex: (\");\n return \"NODE_DEND\";\n break;\n case 47:\n this.popState();\n yy.getLogger().debug(\"Lex: ])\");\n return \"NODE_DEND\";\n break;\n case 48:\n this.popState();\n yy.getLogger().debug(\"Lex: /]\");\n return \"NODE_DEND\";\n break;\n case 49:\n this.popState();\n yy.getLogger().debug(\"Lex: /]\");\n return \"NODE_DEND\";\n break;\n case 50:\n this.popState();\n yy.getLogger().debug(\"Lex: )]\");\n return \"NODE_DEND\";\n break;\n case 51:\n this.popState();\n yy.getLogger().debug(\"Lex: )\");\n return \"NODE_DEND\";\n break;\n case 52:\n this.popState();\n yy.getLogger().debug(\"Lex: ]>\");\n return \"NODE_DEND\";\n break;\n case 53:\n this.popState();\n yy.getLogger().debug(\"Lex: ]\");\n return \"NODE_DEND\";\n break;\n case 54:\n yy.getLogger().debug(\"Lexa: -)\");\n this.pushState(\"NODE\");\n return 35;\n break;\n case 55:\n yy.getLogger().debug(\"Lexa: (-\");\n this.pushState(\"NODE\");\n return 35;\n break;\n case 56:\n yy.getLogger().debug(\"Lexa: ))\");\n this.pushState(\"NODE\");\n return 35;\n break;\n case 57:\n yy.getLogger().debug(\"Lexa: )\");\n this.pushState(\"NODE\");\n return 35;\n break;\n case 58:\n yy.getLogger().debug(\"Lex: (((\");\n this.pushState(\"NODE\");\n return 35;\n break;\n case 59:\n yy.getLogger().debug(\"Lexa: )\");\n this.pushState(\"NODE\");\n return 35;\n break;\n case 60:\n yy.getLogger().debug(\"Lexa: )\");\n this.pushState(\"NODE\");\n return 35;\n break;\n case 61:\n yy.getLogger().debug(\"Lexa: )\");\n this.pushState(\"NODE\");\n return 35;\n break;\n case 62:\n yy.getLogger().debug(\"Lexc: >\");\n this.pushState(\"NODE\");\n return 35;\n break;\n case 63:\n yy.getLogger().debug(\"Lexa: ([\");\n this.pushState(\"NODE\");\n return 35;\n break;\n case 64:\n yy.getLogger().debug(\"Lexa: )\");\n this.pushState(\"NODE\");\n return 35;\n break;\n case 65:\n this.pushState(\"NODE\");\n return 35;\n break;\n case 66:\n this.pushState(\"NODE\");\n return 35;\n break;\n case 67:\n this.pushState(\"NODE\");\n return 35;\n break;\n case 68:\n this.pushState(\"NODE\");\n return 35;\n break;\n case 69:\n this.pushState(\"NODE\");\n return 35;\n break;\n case 70:\n this.pushState(\"NODE\");\n return 35;\n break;\n case 71:\n this.pushState(\"NODE\");\n return 35;\n break;\n case 72:\n yy.getLogger().debug(\"Lexa: [\");\n this.pushState(\"NODE\");\n return 35;\n break;\n case 73:\n this.pushState(\"BLOCK_ARROW\");\n yy.getLogger().debug(\"LEX ARR START\");\n return 37;\n break;\n case 74:\n yy.getLogger().debug(\"Lex: NODE_ID\", yy_.yytext);\n return 31;\n break;\n case 75:\n yy.getLogger().debug(\"Lex: EOF\", yy_.yytext);\n return 8;\n break;\n case 76:\n this.pushState(\"md_string\");\n break;\n case 77:\n this.pushState(\"md_string\");\n break;\n case 78:\n return \"NODE_DESCR\";\n break;\n case 79:\n this.popState();\n break;\n case 80:\n yy.getLogger().debug(\"Lex: Starting string\");\n this.pushState(\"string\");\n break;\n case 81:\n yy.getLogger().debug(\"LEX ARR: Starting string\");\n this.pushState(\"string\");\n break;\n case 82:\n yy.getLogger().debug(\"LEX: NODE_DESCR:\", yy_.yytext);\n return \"NODE_DESCR\";\n break;\n case 83:\n yy.getLogger().debug(\"LEX POPPING\");\n this.popState();\n break;\n case 84:\n yy.getLogger().debug(\"Lex: =>BAE\");\n this.pushState(\"ARROW_DIR\");\n break;\n case 85:\n yy_.yytext = yy_.yytext.replace(/^,\\s*/, \"\");\n yy.getLogger().debug(\"Lex (right): dir:\", yy_.yytext);\n return \"DIR\";\n break;\n case 86:\n yy_.yytext = yy_.yytext.replace(/^,\\s*/, \"\");\n yy.getLogger().debug(\"Lex (left):\", yy_.yytext);\n return \"DIR\";\n break;\n case 87:\n yy_.yytext = yy_.yytext.replace(/^,\\s*/, \"\");\n yy.getLogger().debug(\"Lex (x):\", yy_.yytext);\n return \"DIR\";\n break;\n case 88:\n yy_.yytext = yy_.yytext.replace(/^,\\s*/, \"\");\n yy.getLogger().debug(\"Lex (y):\", yy_.yytext);\n return \"DIR\";\n break;\n case 89:\n yy_.yytext = yy_.yytext.replace(/^,\\s*/, \"\");\n yy.getLogger().debug(\"Lex (up):\", yy_.yytext);\n return \"DIR\";\n break;\n case 90:\n yy_.yytext = yy_.yytext.replace(/^,\\s*/, \"\");\n yy.getLogger().debug(\"Lex (down):\", yy_.yytext);\n return \"DIR\";\n break;\n case 91:\n yy_.yytext = \"]>\";\n yy.getLogger().debug(\"Lex (ARROW_DIR end):\", yy_.yytext);\n this.popState();\n this.popState();\n return \"BLOCK_ARROW_END\";\n break;\n case 92:\n yy.getLogger().debug(\"Lex: LINK\", \"#\" + yy_.yytext + \"#\");\n return 15;\n break;\n case 93:\n yy.getLogger().debug(\"Lex: LINK\", yy_.yytext);\n return 15;\n break;\n case 94:\n yy.getLogger().debug(\"Lex: LINK\", yy_.yytext);\n return 15;\n break;\n case 95:\n yy.getLogger().debug(\"Lex: LINK\", yy_.yytext);\n return 15;\n break;\n case 96:\n yy.getLogger().debug(\"Lex: START_LINK\", yy_.yytext);\n this.pushState(\"LLABEL\");\n return 16;\n break;\n case 97:\n yy.getLogger().debug(\"Lex: START_LINK\", yy_.yytext);\n this.pushState(\"LLABEL\");\n return 16;\n break;\n case 98:\n yy.getLogger().debug(\"Lex: START_LINK\", yy_.yytext);\n this.pushState(\"LLABEL\");\n return 16;\n break;\n case 99:\n this.pushState(\"md_string\");\n break;\n case 100:\n yy.getLogger().debug(\"Lex: Starting string\");\n this.pushState(\"string\");\n return \"LINK_LABEL\";\n break;\n case 101:\n this.popState();\n yy.getLogger().debug(\"Lex: LINK\", \"#\" + yy_.yytext + \"#\");\n return 15;\n break;\n case 102:\n this.popState();\n yy.getLogger().debug(\"Lex: LINK\", yy_.yytext);\n return 15;\n break;\n case 103:\n this.popState();\n yy.getLogger().debug(\"Lex: LINK\", yy_.yytext);\n return 15;\n break;\n case 104:\n yy.getLogger().debug(\"Lex: COLON\", yy_.yytext);\n yy_.yytext = yy_.yytext.slice(1);\n return 27;\n break;\n }\n }, \"anonymous\"),\n rules: [/^(?:block-beta\\b)/, /^(?:block:)/, /^(?:block\\b)/, /^(?:[\\s]+)/, /^(?:[\\n]+)/, /^(?:((\\u000D\\u000A)|(\\u000A)))/, /^(?:columns\\s+auto\\b)/, /^(?:columns\\s+[\\d]+)/, /^(?:[\"][`])/, /^(?:[^`\"]+)/, /^(?:[`][\"])/, /^(?:[\"])/, /^(?:[\"])/, /^(?:[^\"]*)/, /^(?:space[:]\\d+)/, /^(?:space\\b)/, /^(?:default\\b)/, /^(?:linkStyle\\b)/, /^(?:interpolate\\b)/, /^(?:classDef\\s+)/, /^(?:DEFAULT\\s+)/, /^(?:\\w+\\s+)/, /^(?:[^\\n]*)/, /^(?:class\\s+)/, /^(?:(\\w+)+((,\\s*\\w+)*))/, /^(?:[^\\n]*)/, /^(?:style\\s+)/, /^(?:(\\w+)+((,\\s*\\w+)*))/, /^(?:[^\\n]*)/, /^(?:accTitle\\s*:\\s*)/, /^(?:(?!\\n||)*[^\\n]*)/, /^(?:accDescr\\s*:\\s*)/, /^(?:(?!\\n||)*[^\\n]*)/, /^(?:accDescr\\s*\\{\\s*)/, /^(?:[\\}])/, /^(?:[^\\}]*)/, /^(?:end\\b\\s*)/, /^(?:\\(\\(\\()/, /^(?:\\)\\)\\))/, /^(?:[\\)]\\))/, /^(?:\\}\\})/, /^(?:\\})/, /^(?:\\(-)/, /^(?:-\\))/, /^(?:\\(\\()/, /^(?:\\]\\])/, /^(?:\\()/, /^(?:\\]\\))/, /^(?:\\\\\\])/, /^(?:\\/\\])/, /^(?:\\)\\])/, /^(?:[\\)])/, /^(?:\\]>)/, /^(?:[\\]])/, /^(?:-\\))/, /^(?:\\(-)/, /^(?:\\)\\))/, /^(?:\\))/, /^(?:\\(\\(\\()/, /^(?:\\(\\()/, /^(?:\\{\\{)/, /^(?:\\{)/, /^(?:>)/, /^(?:\\(\\[)/, /^(?:\\()/, /^(?:\\[\\[)/, /^(?:\\[\\|)/, /^(?:\\[\\()/, /^(?:\\)\\)\\))/, /^(?:\\[\\\\)/, /^(?:\\[\\/)/, /^(?:\\[\\\\)/, /^(?:\\[)/, /^(?:<\\[)/, /^(?:[^\\(\\[\\n\\-\\)\\{\\}\\s\\<\\>:=]+)/, /^(?:$)/, /^(?:[\"][`])/, /^(?:[\"][`])/, /^(?:[^`\"]+)/, /^(?:[`][\"])/, /^(?:[\"])/, /^(?:[\"])/, /^(?:[^\"]+)/, /^(?:[\"])/, /^(?:\\]>\\s*\\()/, /^(?:,?\\s*right\\s*)/, /^(?:,?\\s*left\\s*)/, /^(?:,?\\s*x\\s*)/, /^(?:,?\\s*y\\s*)/, /^(?:,?\\s*up\\s*)/, /^(?:,?\\s*down\\s*)/, /^(?:\\)\\s*)/, /^(?:\\s*[xo<]?--+[-xo>]\\s*)/, /^(?:\\s*[xo<]?==+[=xo>]\\s*)/, /^(?:\\s*[xo<]?-?\\.+-[xo>]?\\s*)/, /^(?:\\s*~~[\\~]+\\s*)/, /^(?:\\s*[xo<]?--\\s*)/, /^(?:\\s*[xo<]?==\\s*)/, /^(?:\\s*[xo<]?-\\.\\s*)/, /^(?:[\"][`])/, /^(?:[\"])/, /^(?:\\s*[xo<]?--+[-xo>]\\s*)/, /^(?:\\s*[xo<]?==+[=xo>]\\s*)/, /^(?:\\s*[xo<]?-?\\.+-[xo>]?\\s*)/, /^(?::\\d+)/],\n conditions: { \"STYLE_DEFINITION\": { \"rules\": [28], \"inclusive\": false }, \"STYLE_STMNT\": { \"rules\": [27], \"inclusive\": false }, \"CLASSDEFID\": { \"rules\": [22], \"inclusive\": false }, \"CLASSDEF\": { \"rules\": [20, 21], \"inclusive\": false }, \"CLASS_STYLE\": { \"rules\": [25], \"inclusive\": false }, \"CLASS\": { \"rules\": [24], \"inclusive\": false }, \"LLABEL\": { \"rules\": [99, 100, 101, 102, 103], \"inclusive\": false }, \"ARROW_DIR\": { \"rules\": [85, 86, 87, 88, 89, 90, 91], \"inclusive\": false }, \"BLOCK_ARROW\": { \"rules\": [76, 81, 84], \"inclusive\": false }, \"NODE\": { \"rules\": [37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 77, 80], \"inclusive\": false }, \"md_string\": { \"rules\": [9, 10, 78, 79], \"inclusive\": false }, \"space\": { \"rules\": [], \"inclusive\": false }, \"string\": { \"rules\": [12, 13, 82, 83], \"inclusive\": false }, \"acc_descr_multiline\": { \"rules\": [34, 35], \"inclusive\": false }, \"acc_descr\": { \"rules\": [32], \"inclusive\": false }, \"acc_title\": { \"rules\": [30], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 2, 3, 4, 5, 6, 7, 8, 11, 14, 15, 16, 17, 18, 19, 23, 26, 29, 31, 33, 36, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 92, 93, 94, 95, 96, 97, 98, 104], \"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 block_default = parser;\n\n// src/diagrams/block/blockDB.ts\nimport { clone } from \"es-toolkit/compat\";\nvar blockDatabase = /* @__PURE__ */ new Map();\nvar edgeList = [];\nvar edgeCount = /* @__PURE__ */ new Map();\nvar COLOR_KEYWORD = \"color\";\nvar FILL_KEYWORD = \"fill\";\nvar BG_FILL = \"bgFill\";\nvar STYLECLASS_SEP = \",\";\nvar classes = /* @__PURE__ */ new Map();\nvar diagramId = \"\";\nvar sanitizeText = /* @__PURE__ */ __name((txt) => common_default.sanitizeText(txt, getConfig2()), \"sanitizeText\");\nvar addStyleClass = /* @__PURE__ */ __name(function(id, styleAttributes = \"\") {\n let foundClass = classes.get(id);\n if (!foundClass) {\n foundClass = { id, styles: [], textStyles: [] };\n classes.set(id, foundClass);\n }\n if (styleAttributes !== void 0 && styleAttributes !== null) {\n styleAttributes.split(STYLECLASS_SEP).forEach((attrib) => {\n const fixedAttrib = attrib.replace(/([^;]*);/, \"$1\").trim();\n if (RegExp(COLOR_KEYWORD).exec(attrib)) {\n const newStyle1 = fixedAttrib.replace(FILL_KEYWORD, BG_FILL);\n const newStyle2 = newStyle1.replace(COLOR_KEYWORD, FILL_KEYWORD);\n foundClass.textStyles.push(newStyle2);\n }\n foundClass.styles.push(fixedAttrib);\n });\n }\n}, \"addStyleClass\");\nvar addStyle2Node = /* @__PURE__ */ __name(function(id, styles = \"\") {\n const foundBlock = blockDatabase.get(id);\n if (styles !== void 0 && styles !== null) {\n foundBlock.styles = styles.split(STYLECLASS_SEP);\n }\n}, \"addStyle2Node\");\nvar setCssClass = /* @__PURE__ */ __name(function(itemIds, cssClassName) {\n itemIds.split(\",\").forEach(function(id) {\n let foundBlock = blockDatabase.get(id);\n if (foundBlock === void 0) {\n const trimmedId = id.trim();\n foundBlock = { id: trimmedId, type: \"na\", children: [] };\n blockDatabase.set(trimmedId, foundBlock);\n }\n if (!foundBlock.classes) {\n foundBlock.classes = [];\n }\n foundBlock.classes.push(cssClassName);\n });\n}, \"setCssClass\");\nvar populateBlockDatabase = /* @__PURE__ */ __name((_blockList, parent) => {\n const blockList = _blockList.flat();\n const children = [];\n const columnSettingBlock = blockList.find((b) => b?.type === \"column-setting\");\n const column = columnSettingBlock?.columns ?? -1;\n for (const block of blockList) {\n if (typeof column === \"number\" && column > 0 && block.type !== \"column-setting\" && typeof block.widthInColumns === \"number\" && block.widthInColumns > column) {\n log.warn(\n `Block ${block.id} width ${block.widthInColumns} exceeds configured column width ${column}`\n );\n }\n if (block.label) {\n block.label = sanitizeText(block.label);\n }\n if (block.type === \"classDef\") {\n addStyleClass(block.id, block.css);\n continue;\n }\n if (block.type === \"applyClass\") {\n setCssClass(block.id, block?.styleClass ?? \"\");\n continue;\n }\n if (block.type === \"applyStyles\") {\n if (block?.stylesStr) {\n addStyle2Node(block.id, block?.stylesStr);\n }\n continue;\n }\n if (block.type === \"column-setting\") {\n parent.columns = block.columns ?? -1;\n } else if (block.type === \"edge\") {\n const count = (edgeCount.get(block.id) ?? 0) + 1;\n edgeCount.set(block.id, count);\n block.id = count + \"-\" + block.id;\n edgeList.push(block);\n } else {\n if (!block.label) {\n if (block.type === \"composite\") {\n block.label = \"\";\n } else {\n block.label = block.id;\n }\n }\n const existingBlock = blockDatabase.get(block.id);\n if (existingBlock === void 0) {\n blockDatabase.set(block.id, block);\n } else {\n if (block.type !== \"na\") {\n existingBlock.type = block.type;\n }\n if (block.label !== block.id) {\n existingBlock.label = block.label;\n }\n }\n if (block.children) {\n populateBlockDatabase(block.children, block);\n }\n if (block.type === \"space\") {\n const w = block.width ?? 1;\n for (let j = 0; j < w; j++) {\n const newBlock = clone(block);\n newBlock.id = newBlock.id + \"-\" + j;\n blockDatabase.set(newBlock.id, newBlock);\n children.push(newBlock);\n }\n } else if (existingBlock === void 0) {\n children.push(block);\n }\n }\n }\n parent.children = children;\n}, \"populateBlockDatabase\");\nvar blocks = [];\nvar rootBlock = { id: \"root\", type: \"composite\", children: [], columns: -1 };\nvar clear2 = /* @__PURE__ */ __name(() => {\n log.debug(\"Clear called\");\n clear();\n rootBlock = { id: \"root\", type: \"composite\", children: [], columns: -1 };\n blockDatabase = /* @__PURE__ */ new Map([[\"root\", rootBlock]]);\n blocks = [];\n classes = /* @__PURE__ */ new Map();\n edgeList = [];\n edgeCount = /* @__PURE__ */ new Map();\n diagramId = \"\";\n}, \"clear\");\nfunction typeStr2Type(typeStr) {\n log.debug(\"typeStr2Type\", typeStr);\n switch (typeStr) {\n case \"[]\":\n return \"square\";\n case \"()\":\n log.debug(\"we have a round\");\n return \"round\";\n case \"(())\":\n return \"circle\";\n case \">]\":\n return \"rect_left_inv_arrow\";\n case \"{}\":\n return \"diamond\";\n case \"{{}}\":\n return \"hexagon\";\n case \"([])\":\n return \"stadium\";\n case \"[[]]\":\n return \"subroutine\";\n case \"[()]\":\n return \"cylinder\";\n case \"((()))\":\n return \"doublecircle\";\n case \"[//]\":\n return \"lean_right\";\n case \"[\\\\\\\\]\":\n return \"lean_left\";\n case \"[/\\\\]\":\n return \"trapezoid\";\n case \"[\\\\/]\":\n return \"inv_trapezoid\";\n case \"<[]>\":\n return \"block_arrow\";\n default:\n return \"na\";\n }\n}\n__name(typeStr2Type, \"typeStr2Type\");\nfunction edgeTypeStr2Type(typeStr) {\n log.debug(\"typeStr2Type\", typeStr);\n switch (typeStr) {\n case \"==\":\n return \"thick\";\n default:\n return \"normal\";\n }\n}\n__name(edgeTypeStr2Type, \"edgeTypeStr2Type\");\nfunction edgeStrToEdgeData(typeStr) {\n const lastChar = typeStr.trim().slice(-1);\n switch (lastChar) {\n case \"x\":\n return \"arrow_cross\";\n case \"o\":\n return \"arrow_circle\";\n case \">\":\n return \"arrow_point\";\n default:\n return \"\";\n }\n}\n__name(edgeStrToEdgeData, \"edgeStrToEdgeData\");\nfunction edgeStrToEdgeStartData(typeStr) {\n const firstChar = typeStr.trim().charAt(0);\n switch (firstChar) {\n case \"x\":\n return \"arrow_cross\";\n case \"o\":\n return \"arrow_circle\";\n case \"<\":\n return \"arrow_point\";\n default:\n return \"arrow_open\";\n }\n}\n__name(edgeStrToEdgeStartData, \"edgeStrToEdgeStartData\");\nfunction edgeStrToThickness(typeStr) {\n return typeStr.includes(\"==\") ? \"thick\" : \"normal\";\n}\n__name(edgeStrToThickness, \"edgeStrToThickness\");\nfunction edgeStrToPattern(typeStr) {\n if (typeStr.includes(\".-\")) {\n return \"dotted\";\n }\n return \"solid\";\n}\n__name(edgeStrToPattern, \"edgeStrToPattern\");\nvar cnt = 0;\nvar generateId = /* @__PURE__ */ __name(() => {\n cnt++;\n return \"id-\" + Math.random().toString(36).substr(2, 12) + \"-\" + cnt;\n}, \"generateId\");\nvar setHierarchy = /* @__PURE__ */ __name((block) => {\n rootBlock.children = block;\n populateBlockDatabase(block, rootBlock);\n blocks = rootBlock.children;\n}, \"setHierarchy\");\nvar getColumns = /* @__PURE__ */ __name((blockId) => {\n const block = blockDatabase.get(blockId);\n if (!block) {\n return -1;\n }\n if (block.columns) {\n return block.columns;\n }\n if (!block.children) {\n return -1;\n }\n return block.children.length;\n}, \"getColumns\");\nvar getBlocksFlat = /* @__PURE__ */ __name(() => {\n return [...blockDatabase.values()];\n}, \"getBlocksFlat\");\nvar getBlocks = /* @__PURE__ */ __name(() => {\n return blocks || [];\n}, \"getBlocks\");\nvar getEdges = /* @__PURE__ */ __name(() => {\n return edgeList;\n}, \"getEdges\");\nvar getBlock = /* @__PURE__ */ __name((id) => {\n return blockDatabase.get(id);\n}, \"getBlock\");\nvar setBlock = /* @__PURE__ */ __name((block) => {\n blockDatabase.set(block.id, block);\n}, \"setBlock\");\nvar setDiagramId = /* @__PURE__ */ __name((id) => {\n diagramId = id;\n}, \"setDiagramId\");\nvar getDiagramId = /* @__PURE__ */ __name(() => diagramId, \"getDiagramId\");\nvar getLogger = /* @__PURE__ */ __name(() => log, \"getLogger\");\nvar getClasses = /* @__PURE__ */ __name(function() {\n return classes;\n}, \"getClasses\");\nvar db = {\n getConfig: /* @__PURE__ */ __name(() => getConfig().block, \"getConfig\"),\n typeStr2Type,\n edgeTypeStr2Type,\n edgeStrToEdgeData,\n edgeStrToEdgeStartData,\n edgeStrToThickness,\n edgeStrToPattern,\n getLogger,\n getBlocksFlat,\n getBlocks,\n getEdges,\n setHierarchy,\n getBlock,\n setBlock,\n getColumns,\n getClasses,\n clear: clear2,\n generateId,\n setDiagramId,\n getDiagramId\n};\nvar blockDB_default = db;\n\n// src/diagrams/block/styles.ts\nimport * as khroma from \"khroma\";\nvar fade = /* @__PURE__ */ __name((color, opacity) => {\n const channel2 = khroma.channel;\n const r = channel2(color, \"r\");\n const g = channel2(color, \"g\");\n const b = channel2(color, \"b\");\n return khroma.rgba(r, g, b, opacity);\n}, \"fade\");\nvar getStyles = /* @__PURE__ */ __name((options) => `.label {\n font-family: ${options.fontFamily};\n color: ${options.nodeTextColor || options.textColor};\n }\n .cluster-label text {\n fill: ${options.titleColor};\n }\n .cluster-label span {\n color: ${options.titleColor};\n }\n\n\n\n .label text,span {\n fill: ${options.nodeTextColor || options.textColor};\n color: ${options.nodeTextColor || options.textColor};\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n stroke-width: 1px;\n }\n .flowchart-label text {\n text-anchor: middle;\n }\n // .flowchart-label .text-outer-tspan {\n // text-anchor: middle;\n // }\n // .flowchart-label .text-inner-tspan {\n // text-anchor: start;\n // }\n\n .node .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n .arrowheadPath {\n fill: ${options.arrowheadColor};\n }\n\n .edgePaths .path {\n stroke: ${options.lineColor};\n stroke-width: 2.0px;\n }\n\n .flowchart-link {\n stroke: ${options.lineColor};\n fill: none;\n }\n\n .edgeLabel {\n background-color: ${options.edgeLabelBackground};\n /*\n * This is for backward compatibility with existing code that didn't\n * add a \\`<p>\\` around edge labels.\n *\n * TODO: We should probably remove this in a future release.\n */\n p {\n margin: 0;\n padding: 0;\n display: inline;\n }\n rect {\n opacity: 0.5;\n background-color: ${options.edgeLabelBackground};\n fill: ${options.edgeLabelBackground};\n }\n text-align: center;\n }\n\n /* For html labels only */\n .labelBkg {\n background-color: ${options.edgeLabelBackground};\n }\n\n .node .cluster {\n // fill: ${fade(options.mainBkg, 0.5)};\n fill: ${fade(options.clusterBkg, 0.5)};\n stroke: ${fade(options.clusterBorder, 0.2)};\n box-shadow: rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px;\n stroke-width: 1px;\n }\n\n .cluster text {\n fill: ${options.titleColor};\n }\n\n .cluster span {\n color: ${options.titleColor};\n }\n /* .cluster div {\n color: ${options.titleColor};\n } */\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: ${options.fontFamily};\n font-size: 12px;\n background: ${options.tertiaryColor};\n border: 1px solid ${options.border2};\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n }\n\n .flowchartTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${options.textColor};\n }\n ${getIconStyles()}\n`, \"getStyles\");\nvar styles_default = getStyles;\n\n// src/diagrams/block/blockRenderer.ts\nimport { select as d3select } from \"d3\";\n\n// src/diagrams/block/layout.ts\nfunction calculateBlockPosition(columns, position) {\n if (columns === 0 || !Number.isInteger(columns)) {\n throw new Error(\"Columns must be an integer !== 0.\");\n }\n if (position < 0 || !Number.isInteger(position)) {\n throw new Error(\"Position must be a non-negative integer.\" + position);\n }\n if (columns < 0) {\n return { px: position, py: 0 };\n }\n if (columns === 1) {\n return { px: 0, py: position };\n }\n const px = position % columns;\n const py = Math.floor(position / columns);\n return { px, py };\n}\n__name(calculateBlockPosition, \"calculateBlockPosition\");\nvar getMaxChildSize = /* @__PURE__ */ __name((block) => {\n let maxWidth = 0;\n let maxHeight = 0;\n for (const child of block.children) {\n const { width, height, x, y } = child.size ?? { width: 0, height: 0, x: 0, y: 0 };\n log.debug(\n \"getMaxChildSize abc95 child:\",\n child.id,\n \"width:\",\n width,\n \"height:\",\n height,\n \"x:\",\n x,\n \"y:\",\n y,\n child.type\n );\n if (child.type === \"space\") {\n continue;\n }\n const normalizedWidth = width / (child.widthInColumns ?? 1);\n if (normalizedWidth > maxWidth) {\n maxWidth = normalizedWidth;\n }\n if (height > maxHeight) {\n maxHeight = height;\n }\n }\n return { width: maxWidth, height: maxHeight };\n}, \"getMaxChildSize\");\nfunction setBlockSizes(block, db2, siblingWidth = 0, siblingHeight = 0, padding = 8) {\n log.debug(\n \"setBlockSizes abc95 (start)\",\n block.id,\n block?.size?.x,\n \"block width =\",\n block?.size,\n \"siblingWidth\",\n siblingWidth\n );\n if (!block?.size?.width) {\n block.size = {\n width: siblingWidth,\n height: siblingHeight,\n x: 0,\n y: 0\n };\n }\n let maxWidth = 0;\n let maxHeight = 0;\n if (block.children?.length > 0) {\n for (const child of block.children) {\n setBlockSizes(child, db2, 0, 0, padding);\n }\n const childSize = getMaxChildSize(block);\n maxWidth = childSize.width;\n maxHeight = childSize.height;\n log.debug(\"setBlockSizes abc95 maxWidth of\", block.id, \":s children is \", maxWidth, maxHeight);\n for (const child of block.children) {\n if (child.size) {\n log.debug(\n `abc95 Setting size of children of ${block.id} id=${child.id} ${maxWidth} ${maxHeight} ${JSON.stringify(child.size)}`\n );\n child.size.width = maxWidth * (child.widthInColumns ?? 1) + padding * ((child.widthInColumns ?? 1) - 1);\n child.size.height = maxHeight;\n child.size.x = 0;\n child.size.y = 0;\n log.debug(\n `abc95 updating size of ${block.id} children child:${child.id} maxWidth:${maxWidth} maxHeight:${maxHeight}`\n );\n }\n }\n for (const child of block.children) {\n setBlockSizes(child, db2, maxWidth, maxHeight, padding);\n }\n const columns = block.columns ?? -1;\n let numItems = 0;\n for (const child of block.children) {\n numItems += child.widthInColumns ?? 1;\n }\n let xSize = block.children.length;\n if (columns > 0 && columns < numItems) {\n xSize = columns;\n }\n const ySize = Math.ceil(numItems / xSize);\n let width = xSize * (maxWidth + padding) + padding;\n let height = ySize * (maxHeight + padding) + padding;\n if (width < siblingWidth) {\n log.debug(\n `Detected to small sibling: abc95 ${block.id} siblingWidth ${siblingWidth} siblingHeight ${siblingHeight} width ${width}`\n );\n width = siblingWidth;\n height = siblingHeight;\n const childWidth = (siblingWidth - xSize * padding - padding) / xSize;\n const childHeight = (siblingHeight - ySize * padding - padding) / ySize;\n log.debug(\"Size indata abc88\", block.id, \"childWidth\", childWidth, \"maxWidth\", maxWidth);\n log.debug(\"Size indata abc88\", block.id, \"childHeight\", childHeight, \"maxHeight\", maxHeight);\n log.debug(\"Size indata abc88 xSize\", xSize, \"padding\", padding);\n for (const child of block.children) {\n if (child.size) {\n child.size.width = childWidth;\n child.size.height = childHeight;\n child.size.x = 0;\n child.size.y = 0;\n }\n }\n }\n log.debug(\n `abc95 (finale calc) ${block.id} xSize ${xSize} ySize ${ySize} columns ${columns}${block.children.length} width=${Math.max(width, block.size?.width || 0)}`\n );\n if (width < (block?.size?.width || 0)) {\n width = block?.size?.width || 0;\n const num = columns > 0 ? Math.min(block.children.length, columns) : block.children.length;\n if (num > 0) {\n const childWidth = (width - num * padding - padding) / num;\n log.debug(\"abc95 (growing to fit) width\", block.id, width, block.size?.width, childWidth);\n for (const child of block.children) {\n if (child.size) {\n child.size.width = childWidth;\n }\n }\n }\n }\n block.size = {\n width,\n height,\n x: 0,\n y: 0\n };\n }\n log.debug(\n \"setBlockSizes abc94 (done)\",\n block.id,\n block?.size?.x,\n block?.size?.width,\n block?.size?.y,\n block?.size?.height\n );\n}\n__name(setBlockSizes, \"setBlockSizes\");\nfunction layoutBlocks(block, db2, padding = 8) {\n log.debug(\n `abc85 layout blocks (=>layoutBlocks) ${block.id} x: ${block?.size?.x} y: ${block?.size?.y} width: ${block?.size?.width}`\n );\n const columns = block.columns ?? -1;\n log.debug(\"layoutBlocks columns abc95\", block.id, \"=>\", columns, block);\n if (block.children && // find max width of children\n block.children.length > 0) {\n const width = block?.children[0]?.size?.width ?? 0;\n const widthOfChildren = block.children.length * width + (block.children.length - 1) * padding;\n log.debug(\"widthOfChildren 88\", widthOfChildren, \"posX\");\n const rowHeights = /* @__PURE__ */ new Map();\n {\n let colPos = 0;\n for (const child of block.children) {\n if (!child.size) {\n continue;\n }\n const { py } = calculateBlockPosition(columns, colPos);\n const currentMax = rowHeights.get(py) ?? 0;\n if (child.size.height > currentMax) {\n rowHeights.set(py, child.size.height);\n }\n let filled = child?.widthInColumns ?? 1;\n if (columns > 0) {\n filled = Math.min(filled, columns - colPos % columns);\n }\n colPos += filled;\n }\n }\n const rowYOffsets = /* @__PURE__ */ new Map();\n {\n let offset = 0;\n const rows = [...rowHeights.keys()].sort((a, b) => a - b);\n for (const row of rows) {\n rowYOffsets.set(row, offset);\n offset += (rowHeights.get(row) ?? 0) + padding;\n }\n }\n let columnPos = 0;\n log.debug(\"abc91 block?.size?.x\", block.id, block?.size?.x);\n let startingPosX = block?.size?.x ? block?.size?.x + (-block?.size?.width / 2 || 0) : -padding;\n let rowPos = 0;\n for (const child of block.children) {\n const parent = block;\n if (!child.size) {\n continue;\n }\n const { width: width2, height } = child.size;\n const { px, py } = calculateBlockPosition(columns, columnPos);\n if (py != rowPos) {\n rowPos = py;\n startingPosX = block?.size?.x ? block?.size?.x + (-block?.size?.width / 2 || 0) : -padding;\n log.debug(\"New row in layout for block\", block.id, \" and child \", child.id, rowPos);\n }\n log.debug(\n `abc89 layout blocks (child) id: ${child.id} Pos: ${columnPos} (px, py) ${px},${py} (${parent?.size?.x},${parent?.size?.y}) parent: ${parent.id} width: ${width2}${padding}`\n );\n if (parent.size) {\n const halfWidth = width2 / 2;\n child.size.x = startingPosX + padding + halfWidth;\n log.debug(\n `abc91 layout blocks (calc) px, pyid:${child.id} startingPos=X${startingPosX} new startingPosX${child.size.x} ${halfWidth} padding=${padding} width=${width2} halfWidth=${halfWidth} => x:${child.size.x} y:${child.size.y} ${child.widthInColumns} (width * (child?.w || 1)) / 2 ${width2 * (child?.widthInColumns ?? 1) / 2}`\n );\n startingPosX = child.size.x + halfWidth;\n const rowYOffset = rowYOffsets.get(py) ?? 0;\n const rowHeight = rowHeights.get(py) ?? height;\n child.size.y = parent.size.y - parent.size.height / 2 + rowYOffset + rowHeight / 2 + padding;\n log.debug(\n `abc88 layout blocks (calc) px, pyid:${child.id}startingPosX${startingPosX}${padding}${halfWidth}=>x:${child.size.x}y:${child.size.y}${child.widthInColumns}(width * (child?.w || 1)) / 2${width2 * (child?.widthInColumns ?? 1) / 2}`\n );\n }\n if (child.children) {\n layoutBlocks(child, db2, padding);\n }\n let columnsFilled = child?.widthInColumns ?? 1;\n if (columns > 0) {\n columnsFilled = Math.min(columnsFilled, columns - columnPos % columns);\n }\n columnPos += columnsFilled;\n log.debug(\"abc88 columnsPos\", child, columnPos);\n }\n }\n log.debug(\n `layout blocks (<==layoutBlocks) ${block.id} x: ${block?.size?.x} y: ${block?.size?.y} width: ${block?.size?.width}`\n );\n}\n__name(layoutBlocks, \"layoutBlocks\");\nfunction findBounds(block, { minX, minY, maxX, maxY } = { minX: 0, minY: 0, maxX: 0, maxY: 0 }) {\n if (block.size && block.id !== \"root\") {\n const { x, y, width, height } = block.size;\n if (x - width / 2 < minX) {\n minX = x - width / 2;\n }\n if (y - height / 2 < minY) {\n minY = y - height / 2;\n }\n if (x + width / 2 > maxX) {\n maxX = x + width / 2;\n }\n if (y + height / 2 > maxY) {\n maxY = y + height / 2;\n }\n }\n if (block.children) {\n for (const child of block.children) {\n ({ minX, minY, maxX, maxY } = findBounds(child, { minX, minY, maxX, maxY }));\n }\n }\n return { minX, minY, maxX, maxY };\n}\n__name(findBounds, \"findBounds\");\nfunction layout(db2) {\n const root = db2.getBlock(\"root\");\n if (!root) {\n return;\n }\n const padding = getConfig2()?.block?.padding ?? 8;\n setBlockSizes(root, db2, 0, 0, padding);\n layoutBlocks(root, db2, padding);\n log.debug(\"getBlocks\", JSON.stringify(root, null, 2));\n const { minX, minY, maxX, maxY } = findBounds(root);\n const height = maxY - minY;\n const width = maxX - minX;\n return { x: minX, y: minY, width, height };\n}\n__name(layout, \"layout\");\n\n// src/diagrams/block/renderHelpers.ts\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nfunction getNodeFromBlock(block, db2, positioned = false) {\n const vertex = block;\n let classStr = \"default\";\n if ((vertex?.classes?.length || 0) > 0) {\n classStr = (vertex?.classes ?? []).join(\" \");\n }\n classStr = classStr + \" flowchart-label\";\n const cssCompiledStyles = (vertex?.classes ?? []).flatMap(\n (className) => db2.getClasses().get(className)?.styles ?? []\n );\n let radius = 0;\n let shape = \"rect\";\n let padding;\n switch (vertex.type) {\n case \"round\":\n radius = 5;\n shape = \"rect\";\n break;\n case \"composite\":\n radius = 0;\n shape = \"composite\";\n padding = 0;\n break;\n case \"square\":\n shape = \"rect\";\n break;\n case \"diamond\":\n shape = \"question\";\n break;\n case \"hexagon\":\n shape = \"hexagon\";\n break;\n case \"block_arrow\":\n shape = \"block_arrow\";\n break;\n case \"odd\":\n shape = \"rect_left_inv_arrow\";\n break;\n case \"lean_right\":\n shape = \"lean_right\";\n break;\n case \"lean_left\":\n shape = \"lean_left\";\n break;\n case \"trapezoid\":\n shape = \"trapezoid\";\n break;\n case \"inv_trapezoid\":\n shape = \"inv_trapezoid\";\n break;\n case \"rect_left_inv_arrow\":\n shape = \"rect_left_inv_arrow\";\n break;\n case \"circle\":\n shape = \"circle\";\n break;\n case \"ellipse\":\n shape = \"ellipse\";\n break;\n case \"stadium\":\n shape = \"stadium\";\n break;\n case \"subroutine\":\n shape = \"subroutine\";\n break;\n case \"cylinder\":\n shape = \"cylinder\";\n break;\n case \"group\":\n shape = \"rect\";\n break;\n case \"doublecircle\":\n shape = \"doublecircle\";\n break;\n default:\n shape = \"rect\";\n }\n const styles = getStylesFromArray(vertex?.styles ?? []);\n const vertexText = vertex.label;\n const bounds = vertex.size ?? { width: 0, height: 0, x: 0, y: 0 };\n const dbDiagramId = db2.getDiagramId();\n const node = {\n labelStyle: styles.labelStyle,\n shape,\n label: vertexText,\n labelText: vertexText,\n rx: radius,\n ry: radius,\n class: classStr,\n cssClasses: classStr,\n cssStyles: vertex?.styles ?? [],\n cssCompiledStyles,\n style: styles.style,\n id: vertex.id,\n domId: dbDiagramId ? `${dbDiagramId}-${vertex.id}` : vertex.id,\n isGroup: false,\n directions: vertex.directions,\n width: bounds.width || void 0,\n height: bounds.height || void 0,\n wrappingWidth: bounds.width || Number.POSITIVE_INFINITY,\n x: bounds.x,\n y: bounds.y,\n positioned,\n intersect: void 0,\n padding: padding ?? getConfig()?.block?.padding ?? 0,\n widthInColumns: vertex.widthInColumns ?? 1\n };\n return node;\n}\n__name(getNodeFromBlock, \"getNodeFromBlock\");\nasync function calculateBlockSize(elem, block, db2) {\n const node = getNodeFromBlock(block, db2, false);\n if (block.type === \"group\") {\n return;\n }\n const config = getConfig();\n const nodeEl = await insertNode(elem, node, { config });\n const boundingBox = nodeEl.node()?.getBBox() ?? { width: 0, height: 0 };\n const obj = db2.getBlock(node.id);\n obj.size = { width: boundingBox.width, height: boundingBox.height, x: 0, y: 0, node: nodeEl };\n db2.setBlock(obj);\n nodeEl.remove();\n}\n__name(calculateBlockSize, \"calculateBlockSize\");\nasync function insertBlockPositioned(elem, block, db2) {\n const node = getNodeFromBlock(block, db2, true);\n const obj = db2.getBlock(node.id);\n if (obj.type !== \"space\") {\n const config = getConfig();\n await insertNode(elem, node, { config });\n block.intersect = node?.intersect;\n positionNode(node);\n }\n}\n__name(insertBlockPositioned, \"insertBlockPositioned\");\nasync function performOperations(elem, blocks2, db2, operation) {\n for (const block of blocks2) {\n await operation(elem, block, db2);\n if (block.children) {\n await performOperations(elem, block.children, db2, operation);\n }\n }\n}\n__name(performOperations, \"performOperations\");\nasync function calculateBlockSizes(elem, blocks2, db2) {\n await performOperations(elem, blocks2, db2, calculateBlockSize);\n}\n__name(calculateBlockSizes, \"calculateBlockSizes\");\nasync function insertBlocks(elem, blocks2, db2) {\n await performOperations(elem, blocks2, db2, insertBlockPositioned);\n}\n__name(insertBlocks, \"insertBlocks\");\nasync function insertEdges(elem, edges, blocks2, db2, id) {\n const g = new graphlib.Graph({\n multigraph: true,\n compound: true\n });\n g.setGraph({\n rankdir: \"TB\",\n nodesep: 10,\n ranksep: 10,\n marginx: 8,\n marginy: 8\n });\n for (const block of blocks2) {\n if (block.size) {\n g.setNode(block.id, {\n width: block.size.width,\n height: block.size.height,\n intersect: block.intersect\n });\n }\n }\n for (const edge of edges) {\n if (edge.start && edge.end) {\n const startBlock = db2.getBlock(edge.start);\n const endBlock = db2.getBlock(edge.end);\n if (startBlock?.size && endBlock?.size) {\n const start = startBlock.size;\n const end = endBlock.size;\n const points = [\n { x: start.x, y: start.y },\n { x: start.x + (end.x - start.x) / 2, y: start.y + (end.y - start.y) / 2 },\n { x: end.x, y: end.y }\n ];\n const prefixedEdgeId = id ? `${id}-${edge.id}` : edge.id;\n const thicknessClass = edge.thickness === \"thick\" ? \"edge-thickness-thick\" : \"edge-thickness-normal\";\n const patternClass = edge.pattern === \"dotted\" ? \"edge-pattern-dotted\" : \"edge-pattern-solid\";\n const dynamicClasses = `${thicknessClass} ${patternClass} flowchart-link LS-a1 LE-b1`;\n insertEdge(\n elem,\n {\n ...edge,\n id: prefixedEdgeId,\n arrowTypeEnd: edge.arrowTypeEnd,\n arrowTypeStart: edge.arrowTypeStart,\n points,\n classes: dynamicClasses\n },\n {},\n \"block\",\n g.node(edge.start),\n g.node(edge.end),\n id\n );\n if (edge.label) {\n await insertEdgeLabel(elem, {\n ...edge,\n label: edge.label,\n labelStyle: \"stroke: #333; stroke-width: 1.5px;fill:none;\",\n arrowTypeEnd: edge.arrowTypeEnd,\n arrowTypeStart: edge.arrowTypeStart,\n points,\n classes: dynamicClasses\n });\n positionEdgeLabel(\n { ...edge, x: points[1].x, y: points[1].y },\n {\n originalPath: points\n }\n );\n }\n }\n }\n }\n}\n__name(insertEdges, \"insertEdges\");\n\n// src/diagrams/block/blockRenderer.ts\nvar getClasses2 = /* @__PURE__ */ __name(function(text, diagObj) {\n return diagObj.db.getClasses();\n}, \"getClasses\");\nvar draw = /* @__PURE__ */ __name(async function(text, id, _version, diagObj) {\n const { securityLevel, block: conf } = getConfig();\n const db2 = diagObj.db;\n db2.setDiagramId(id);\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = d3select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? d3select(sandboxElement.nodes()[0].contentDocument.body) : d3select(\"body\");\n const svg = securityLevel === \"sandbox\" ? root.select(`[id=\"${id}\"]`) : d3select(`[id=\"${id}\"]`);\n const markers = [\"point\", \"circle\", \"cross\"];\n markers_default(svg, markers, diagObj.type, id);\n const bl = db2.getBlocks();\n const blArr = db2.getBlocksFlat();\n const edges = db2.getEdges();\n const nodes = svg.insert(\"g\").attr(\"class\", \"block\");\n await calculateBlockSizes(nodes, bl, db2);\n const bounds = layout(db2);\n await insertBlocks(nodes, bl, db2);\n await insertEdges(nodes, edges, blArr, db2, id);\n const renderedBounds = nodes.node()?.getBBox();\n const bounds2 = renderedBounds && Number.isFinite(renderedBounds.width) && Number.isFinite(renderedBounds.height) ? renderedBounds : bounds;\n if (bounds2) {\n const magicFactor = Math.max(1, Math.round(0.125 * (bounds2.width / bounds2.height)));\n const height = bounds2.height + magicFactor + 10;\n const width = bounds2.width + 10;\n const { useMaxWidth } = conf;\n configureSvgSize(svg, height, width, !!useMaxWidth);\n log.debug(\"Here Bounds\", bounds, bounds2);\n svg.attr(\n \"viewBox\",\n `${bounds2.x - 5} ${bounds2.y - 5} ${bounds2.width + 10} ${bounds2.height + 10}`\n );\n }\n}, \"draw\");\nvar blockRenderer_default = {\n draw,\n getClasses: getClasses2\n};\n\n// src/diagrams/block/blockDiagram.ts\nvar diagram = {\n parser: block_default,\n db: blockDB_default,\n renderer: blockRenderer_default,\n styles: styles_default\n};\nexport {\n diagram\n};\n"],"names":["isArray","value","clone","obj","isPrimitive","tag","getTag","isCloneableObject","result","isTypedArray","typedArray","Ctor","dataView","buffer","byteOffset","byteLength","clonedBuffer","srcView","cloneStringObjectProperties","copyOwnProperties","regExp","map","key","set","args","copyPrototype","copySymbolProperties","object","argumentsTag","arrayTag","arrayBufferTag","dataViewTag","booleanTag","dateTag","float32ArrayTag","float64ArrayTag","int8ArrayTag","int16ArrayTag","int32ArrayTag","mapTag","numberTag","objectTag","regexpTag","setTag","stringTag","symbolTag","uint8ArrayTag","uint8ClampedArrayTag","uint16ArrayTag","uint32ArrayTag","target","source","symbols","i","symbol","stringLength","proto","parser","o","__name","k","v","o2","l","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","$Vb","$Vc","$Vd","$Ve","parser2","yytext","yyleng","yylineno","yy","yystate","$$","_$","$0","num","spaceId","edgeData","startEdgeData","lineThickness","linePattern","id","str","hash","error","input","self","stack","tstack","vstack","lstack","table","TERROR","EOF","lexer2","sharedState","yyloc","ranges","popStack","n","lex","token","state","action","r","yyval","p","len","newState","expected","errStr","lexer","ch","lines","oldLines","past","next","pre","c","match","indexed_rule","backup","tempMatch","index","rules","condition","yy_","$avoiding_name_collisions","YY_START","Parser","block_default","blockDatabase","edgeList","edgeCount","COLOR_KEYWORD","FILL_KEYWORD","BG_FILL","STYLECLASS_SEP","classes","diagramId","sanitizeText","txt","common_default","getConfig2","addStyleClass","styleAttributes","foundClass","attrib","fixedAttrib","newStyle2","addStyle2Node","styles","foundBlock","setCssClass","itemIds","cssClassName","trimmedId","populateBlockDatabase","_blockList","parent","blockList","children","columnSettingBlock","b","column","block","log","count","existingBlock","w","j","newBlock","blocks","rootBlock","clear2","clear","typeStr2Type","typeStr","edgeTypeStr2Type","edgeStrToEdgeData","edgeStrToEdgeStartData","edgeStrToThickness","edgeStrToPattern","cnt","generateId","setHierarchy","getColumns","blockId","getBlocksFlat","getBlocks","getEdges","getBlock","setBlock","setDiagramId","getDiagramId","getLogger","getClasses","db","getConfig","blockDB_default","fade","color","opacity","channel2","khroma.channel","g","khroma.rgba","getStyles","options","getIconStyles","styles_default","calculateBlockPosition","columns","position","px","py","getMaxChildSize","maxWidth","maxHeight","child","width","height","x","y","normalizedWidth","setBlockSizes","db2","siblingWidth","siblingHeight","padding","_a","_b","_c","childSize","numItems","xSize","ySize","childWidth","childHeight","_d","_e","_f","_g","_h","_i","_j","_k","layoutBlocks","widthOfChildren","rowHeights","colPos","currentMax","filled","rowYOffsets","offset","rows","a","row","columnPos","startingPosX","rowPos","width2","_l","_m","_n","halfWidth","rowYOffset","rowHeight","columnsFilled","_o","_p","_q","findBounds","minX","minY","maxX","maxY","layout","root","getNodeFromBlock","positioned","vertex","classStr","cssCompiledStyles","className","radius","shape","getStylesFromArray","vertexText","bounds","dbDiagramId","calculateBlockSize","elem","node","config","nodeEl","insertNode","boundingBox","insertBlockPositioned","positionNode","performOperations","blocks2","operation","calculateBlockSizes","insertBlocks","insertEdges","edges","graphlib.Graph","edge","startBlock","endBlock","start","end","points","prefixedEdgeId","thicknessClass","patternClass","dynamicClasses","insertEdge","insertEdgeLabel","positionEdgeLabel","getClasses2","text","diagObj","draw","_version","securityLevel","conf","sandboxElement","d3select","svg","markers_default","bl","blArr","nodes","renderedBounds","bounds2","magicFactor","useMaxWidth","configureSvgSize","blockRenderer_default","diagram"],"mappings":"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","x_google_ignoreList":[0,1,2]}
|