@ours.network/messenger-server 0.1.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 +98 -0
- package/README.md +225 -0
- package/dist/chunks/chunk-UW6DWUXJ.js +91 -0
- package/dist/chunks/server-BXJKKJP6.js +13854 -0
- package/dist/cli.js +142 -0
- package/dist/web/assets/abnfDiagram-N423BO3Z-Ct0MgGTC.js +2 -0
- package/dist/web/assets/abnfDiagram-N423BO3Z-Ct0MgGTC.js.map +1 -0
- package/dist/web/assets/arc-DkAjpDRH.js +2 -0
- package/dist/web/assets/arc-DkAjpDRH.js.map +1 -0
- package/dist/web/assets/architectureDiagram-T3A2C74G-CQbNIUjF.js +37 -0
- package/dist/web/assets/architectureDiagram-T3A2C74G-CQbNIUjF.js.map +1 -0
- package/dist/web/assets/blockDiagram-VBNYF7ZC-CZeLN8UY.js +133 -0
- package/dist/web/assets/blockDiagram-VBNYF7ZC-CZeLN8UY.js.map +1 -0
- package/dist/web/assets/browser-BE8bTUfE.js +9 -0
- package/dist/web/assets/browser-BE8bTUfE.js.map +1 -0
- package/dist/web/assets/c4Diagram-5PPSVZJV-CIhfUxeH.js +11 -0
- package/dist/web/assets/c4Diagram-5PPSVZJV-CIhfUxeH.js.map +1 -0
- package/dist/web/assets/channel-BZKtZ9zx.js +2 -0
- package/dist/web/assets/channel-BZKtZ9zx.js.map +1 -0
- package/dist/web/assets/chunk-2GRJ4B5K-D3TYelbp.js +2 -0
- package/dist/web/assets/chunk-2GRJ4B5K-D3TYelbp.js.map +1 -0
- package/dist/web/assets/chunk-2Q5K7J3B-BiZeOFrG.js +2 -0
- package/dist/web/assets/chunk-2Q5K7J3B-BiZeOFrG.js.map +1 -0
- package/dist/web/assets/chunk-5RXB4S5H-CJfZ1dPC.js +232 -0
- package/dist/web/assets/chunk-5RXB4S5H-CJfZ1dPC.js.map +1 -0
- package/dist/web/assets/chunk-5VM5RSS4-Vmzi7LBN.js +16 -0
- package/dist/web/assets/chunk-5VM5RSS4-Vmzi7LBN.js.map +1 -0
- package/dist/web/assets/chunk-6Q2QTUOP-B2h9pd0z.js +89 -0
- package/dist/web/assets/chunk-6Q2QTUOP-B2h9pd0z.js.map +1 -0
- package/dist/web/assets/chunk-GF5L2VYU-C4KJO4_l.js +207 -0
- package/dist/web/assets/chunk-GF5L2VYU-C4KJO4_l.js.map +1 -0
- package/dist/web/assets/chunk-JWPE2WC7-CVR7-I8U.js +2 -0
- package/dist/web/assets/chunk-JWPE2WC7-CVR7-I8U.js.map +1 -0
- package/dist/web/assets/chunk-KBJHAD2P-DJiYvgrH.js +2 -0
- package/dist/web/assets/chunk-KBJHAD2P-DJiYvgrH.js.map +1 -0
- package/dist/web/assets/chunk-RYQCIY6F-B9pd0kEE.js +2 -0
- package/dist/web/assets/chunk-RYQCIY6F-B9pd0kEE.js.map +1 -0
- package/dist/web/assets/chunk-XXDRQBXY-LhL86vIO.js +2 -0
- package/dist/web/assets/chunk-XXDRQBXY-LhL86vIO.js.map +1 -0
- package/dist/web/assets/classDiagram-JCYQIIEL-DXETV2D8.js +2 -0
- package/dist/web/assets/classDiagram-JCYQIIEL-DXETV2D8.js.map +1 -0
- package/dist/web/assets/classDiagram-v2-OCEON4UE-DXETV2D8.js +2 -0
- package/dist/web/assets/classDiagram-v2-OCEON4UE-DXETV2D8.js.map +1 -0
- package/dist/web/assets/cose-bilkent-JH36ORCC-BvO6F98R.js +2 -0
- package/dist/web/assets/cose-bilkent-JH36ORCC-BvO6F98R.js.map +1 -0
- package/dist/web/assets/cynefin-VYW2F7L2-B-e6msie.js +179 -0
- package/dist/web/assets/cynefin-VYW2F7L2-B-e6msie.js.map +1 -0
- package/dist/web/assets/cynefinDiagram-MW4NZA55-dEt_pguc.js +63 -0
- package/dist/web/assets/cynefinDiagram-MW4NZA55-dEt_pguc.js.map +1 -0
- package/dist/web/assets/cytoscape.esm-BvX2Lq_V.js +332 -0
- package/dist/web/assets/cytoscape.esm-BvX2Lq_V.js.map +1 -0
- package/dist/web/assets/dagre-VZM6K2ZE-CAXYH_6z.js +5 -0
- package/dist/web/assets/dagre-VZM6K2ZE-CAXYH_6z.js.map +1 -0
- package/dist/web/assets/defaultLocale-DX6XiGOO.js +2 -0
- package/dist/web/assets/defaultLocale-DX6XiGOO.js.map +1 -0
- package/dist/web/assets/diagram-7IWD3JNH-DS6SYGQO.js +31 -0
- package/dist/web/assets/diagram-7IWD3JNH-DS6SYGQO.js.map +1 -0
- package/dist/web/assets/diagram-B4RE2ZJO-2nKd6p2f.js +4 -0
- package/dist/web/assets/diagram-B4RE2ZJO-2nKd6p2f.js.map +1 -0
- package/dist/web/assets/diagram-LBJQPF4R-Brh5t1Yq.js +25 -0
- package/dist/web/assets/diagram-LBJQPF4R-Brh5t1Yq.js.map +1 -0
- package/dist/web/assets/diagram-Q27KOJAE-YOwnQ8kk.js +25 -0
- package/dist/web/assets/diagram-Q27KOJAE-YOwnQ8kk.js.map +1 -0
- package/dist/web/assets/diagram-UB23O5K3-BLSDWDQP.js +42 -0
- package/dist/web/assets/diagram-UB23O5K3-BLSDWDQP.js.map +1 -0
- package/dist/web/assets/ebnfDiagram-BXEA7PRR-CxT-sneC.js +2 -0
- package/dist/web/assets/ebnfDiagram-BXEA7PRR-CxT-sneC.js.map +1 -0
- package/dist/web/assets/erDiagram-JOGREHBK-CEYu1DWL.js +86 -0
- package/dist/web/assets/erDiagram-JOGREHBK-CEYu1DWL.js.map +1 -0
- package/dist/web/assets/flowDiagram-UKHOOZJN-CGCtZwTp.js +157 -0
- package/dist/web/assets/flowDiagram-UKHOOZJN-CGCtZwTp.js.map +1 -0
- package/dist/web/assets/fraunces-latin-ext-wght-normal-Ca2vKHc0.woff2 +0 -0
- package/dist/web/assets/fraunces-latin-wght-normal-ukD16Tqj.woff2 +0 -0
- package/dist/web/assets/fraunces-vietnamese-wght-normal-CnvboYUG.woff2 +0 -0
- package/dist/web/assets/ganttDiagram-PKOTCBZU-B9YOo1yU.js +293 -0
- package/dist/web/assets/ganttDiagram-PKOTCBZU-B9YOo1yU.js.map +1 -0
- package/dist/web/assets/gitGraphDiagram-DS77QQ5N-32_lkB3m.js +107 -0
- package/dist/web/assets/gitGraphDiagram-DS77QQ5N-32_lkB3m.js.map +1 -0
- package/dist/web/assets/graph-gxHQN9-b.js +2 -0
- package/dist/web/assets/graph-gxHQN9-b.js.map +1 -0
- package/dist/web/assets/index-Cce6sBBo.js +317 -0
- package/dist/web/assets/index-Cce6sBBo.js.map +1 -0
- package/dist/web/assets/index-DukxAC__.css +1 -0
- package/dist/web/assets/infoDiagram-6WML65LV-Diwcibc2.js +3 -0
- package/dist/web/assets/infoDiagram-6WML65LV-Diwcibc2.js.map +1 -0
- package/dist/web/assets/init-Gi6I4Gst.js +2 -0
- package/dist/web/assets/init-Gi6I4Gst.js.map +1 -0
- package/dist/web/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2 +0 -0
- package/dist/web/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2 +0 -0
- package/dist/web/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2 +0 -0
- package/dist/web/assets/inter-greek-wght-normal-CkhJZR-_.woff2 +0 -0
- package/dist/web/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2 +0 -0
- package/dist/web/assets/inter-latin-wght-normal-Dx4kXJAl.woff2 +0 -0
- package/dist/web/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2 +0 -0
- package/dist/web/assets/ishikawaDiagram-WSZJBQD7-DUghzz6A.js +71 -0
- package/dist/web/assets/ishikawaDiagram-WSZJBQD7-DUghzz6A.js.map +1 -0
- package/dist/web/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2 +0 -0
- package/dist/web/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2 +0 -0
- package/dist/web/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2 +0 -0
- package/dist/web/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2 +0 -0
- package/dist/web/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2 +0 -0
- package/dist/web/assets/journeyDiagram-NVQOT4AX-CEMc0cFh.js +140 -0
- package/dist/web/assets/journeyDiagram-NVQOT4AX-CEMc0cFh.js.map +1 -0
- package/dist/web/assets/jsQR-DNCbBmIv.js +2 -0
- package/dist/web/assets/jsQR-DNCbBmIv.js.map +1 -0
- package/dist/web/assets/kanban-definition-27J2QSJJ-C60H4z4j.js +90 -0
- package/dist/web/assets/kanban-definition-27J2QSJJ-C60H4z4j.js.map +1 -0
- package/dist/web/assets/katex-HP8lGamR.js +258 -0
- package/dist/web/assets/katex-HP8lGamR.js.map +1 -0
- package/dist/web/assets/layout-CpcJW2by.js +2 -0
- package/dist/web/assets/layout-CpcJW2by.js.map +1 -0
- package/dist/web/assets/linear-BRdw4K7J.js +2 -0
- package/dist/web/assets/linear-BRdw4K7J.js.map +1 -0
- package/dist/web/assets/map-CKPHyBGT.js +2 -0
- package/dist/web/assets/map-CKPHyBGT.js.map +1 -0
- package/dist/web/assets/mermaid.core-DTdyJUyZ.js +315 -0
- package/dist/web/assets/mermaid.core-DTdyJUyZ.js.map +1 -0
- package/dist/web/assets/mindmap-definition-FAOFIHXS-Ctd1Avoh.js +97 -0
- package/dist/web/assets/mindmap-definition-FAOFIHXS-Ctd1Avoh.js.map +1 -0
- package/dist/web/assets/ordinal-Cboi1Yqb.js +2 -0
- package/dist/web/assets/ordinal-Cboi1Yqb.js.map +1 -0
- package/dist/web/assets/pegDiagram-VL7TDLO6-CIJ0TF6e.js +2 -0
- package/dist/web/assets/pegDiagram-VL7TDLO6-CIJ0TF6e.js.map +1 -0
- package/dist/web/assets/pieDiagram-7S7Q4E2Y-PFIMn7nc.js +40 -0
- package/dist/web/assets/pieDiagram-7S7Q4E2Y-PFIMn7nc.js.map +1 -0
- package/dist/web/assets/quadrantDiagram-CIZ2JOQS-CX4UzzKN.js +8 -0
- package/dist/web/assets/quadrantDiagram-CIZ2JOQS-CX4UzzKN.js.map +1 -0
- package/dist/web/assets/railroadDiagram-AXF67PYL-DOjwFK86.js +2 -0
- package/dist/web/assets/railroadDiagram-AXF67PYL-DOjwFK86.js.map +1 -0
- package/dist/web/assets/requirementDiagram-LRYGKXZP-BmoMDpuG.js +85 -0
- package/dist/web/assets/requirementDiagram-LRYGKXZP-BmoMDpuG.js.map +1 -0
- package/dist/web/assets/sankeyDiagram-W5VNT64P-BxsyY7C0.js +41 -0
- package/dist/web/assets/sankeyDiagram-W5VNT64P-BxsyY7C0.js.map +1 -0
- package/dist/web/assets/sequenceDiagram-SI44F4Z6-Dvv3O0Rc.js +163 -0
- package/dist/web/assets/sequenceDiagram-SI44F4Z6-Dvv3O0Rc.js.map +1 -0
- package/dist/web/assets/sizeCapture-X5ZJPWSS-CS4OfTKV.js +2 -0
- package/dist/web/assets/sizeCapture-X5ZJPWSS-CS4OfTKV.js.map +1 -0
- package/dist/web/assets/stateDiagram-OKZ733FA-DLx4cUCx.js +2 -0
- package/dist/web/assets/stateDiagram-OKZ733FA-DLx4cUCx.js.map +1 -0
- package/dist/web/assets/stateDiagram-v2-UEYNNEHI-CGTS_71O.js +2 -0
- package/dist/web/assets/stateDiagram-v2-UEYNNEHI-CGTS_71O.js.map +1 -0
- package/dist/web/assets/swimlanes-SLNWSIFB-CfboUePX.js +3 -0
- package/dist/web/assets/swimlanes-SLNWSIFB-CfboUePX.js.map +1 -0
- package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-DC39ekbl.js +9 -0
- package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-DC39ekbl.js.map +1 -0
- package/dist/web/assets/timeline-definition-Z64GVDOM-BEMGCQrU.js +121 -0
- package/dist/web/assets/timeline-definition-Z64GVDOM-BEMGCQrU.js.map +1 -0
- package/dist/web/assets/vennDiagram-T6HMQDX7-y2pz9Wz-.js +35 -0
- package/dist/web/assets/vennDiagram-T6HMQDX7-y2pz9Wz-.js.map +1 -0
- package/dist/web/assets/wardleyDiagram-T6FBY63Y-CQ-4d_jJ.js +79 -0
- package/dist/web/assets/wardleyDiagram-T6FBY63Y-CQ-4d_jJ.js.map +1 -0
- package/dist/web/assets/xychartDiagram-ELKLHX3M-BDr2YKTM.js +8 -0
- package/dist/web/assets/xychartDiagram-ELKLHX3M-BDr2YKTM.js.map +1 -0
- package/dist/web/icons/apple-touch-icon.png +0 -0
- package/dist/web/icons/favicon-16.png +0 -0
- package/dist/web/icons/favicon-32.png +0 -0
- package/dist/web/icons/icon-192-maskable.png +0 -0
- package/dist/web/icons/icon-192.png +0 -0
- package/dist/web/icons/icon-512-maskable.png +0 -0
- package/dist/web/icons/icon-512.png +0 -0
- package/dist/web/index.html +19 -0
- package/dist/web/manifest.webmanifest +17 -0
- package/dist/web/sw.js +181 -0
- package/dist/web/version.json +1 -0
- package/package.json +78 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import{_ as e}from"./mermaid.core-DTdyJUyZ.js";var l=e(()=>`
|
|
2
|
+
/* Font Awesome icon styling - consolidated */
|
|
3
|
+
.label-icon {
|
|
4
|
+
display: inline-block;
|
|
5
|
+
height: 1em;
|
|
6
|
+
overflow: visible;
|
|
7
|
+
vertical-align: -0.125em;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.node .label-icon path {
|
|
11
|
+
fill: currentColor;
|
|
12
|
+
stroke: revert;
|
|
13
|
+
stroke-width: revert;
|
|
14
|
+
}
|
|
15
|
+
`,"getIconStyles");export{l as g};
|
|
16
|
+
//# sourceMappingURL=chunk-5VM5RSS4-Vmzi7LBN.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk-5VM5RSS4-Vmzi7LBN.js","sources":["../../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-5VM5RSS4.mjs"],"sourcesContent":["import {\n __name\n} from \"./chunk-Y2CYZVJY.mjs\";\n\n// src/diagrams/globalStyles.ts\nvar getIconStyles = /* @__PURE__ */ __name(() => `\n /* Font Awesome icon styling - consolidated */\n .label-icon {\n display: inline-block;\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n }\n \n .node .label-icon path {\n fill: currentColor;\n stroke: revert;\n stroke-width: revert;\n }\n`, \"getIconStyles\");\n\nexport {\n getIconStyles\n};\n"],"names":["getIconStyles","__name"],"mappings":"+CAKG,IAACA,EAAgCC,EAAO,IAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAc9C,eAAe","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import{_ as p,l as w,D as L,y as E,p as I,E as X,e as H,i as q,c as G}from"./mermaid.core-DTdyJUyZ.js";var z="",b="",N="",A=[],R=new Map,k=p(e=>q(e,G()),"sanitizeText"),F=p(e=>{switch(e.type){case"terminal":return{...e,value:k(e.value)};case"nonterminal":return{...e,name:k(e.name)};case"sequence":return{...e,elements:e.elements.map(F)};case"choice":return{...e,alternatives:e.alternatives.map(F)};case"optional":return{...e,element:F(e.element)};case"repetition":return{...e,element:F(e.element),separator:e.separator?F(e.separator):void 0};case"special":return{...e,text:k(e.text)}}},"sanitizeAstNode"),U=p(()=>{z="",b="",N="",A.length=0,R.clear(),I(),w.debug("[Railroad] Database cleared")},"clear"),_=p(e=>{z=k(e),w.debug("[Railroad] Title set:",e)},"setTitle"),W=p(()=>z,"getTitle"),j=p(e=>{const i={...e,name:k(e.name),definition:F(e.definition),comment:e.comment?k(e.comment):void 0};w.debug("[Railroad] Adding rule:",i.name),R.has(i.name)&&w.warn(`[Railroad] Rule '${i.name}' is already defined. Overwriting.`),A.push(i),R.set(i.name,i)},"addRule"),K=p(()=>A,"getRules"),J=p(e=>R.get(e),"getRule"),Q=p(e=>{b=k(e).replace(/^\s+/g,""),w.debug("[Railroad] Accessibility title set:",e)},"setAccTitle"),Z=p(()=>b,"getAccTitle"),V=p(e=>{N=k(e).replace(/\n\s+/g,`
|
|
2
|
+
`),w.debug("[Railroad] Accessibility description set:",e)},"setAccDescription"),ee=p(()=>N,"getAccDescription"),te=_,re=W,ie={clear:U,setTitle:_,getTitle:W,addRule:j,getRules:K,getRule:J,setAccTitle:Q,getAccTitle:Z,setAccDescription:V,getAccDescription:ee,setDiagramTitle:te,getDiagramTitle:re},g={compactMode:!1,padding:10,verticalSeparation:8,horizontalSeparation:10,arcRadius:10,fontSize:14,fontFamily:"monospace",terminalFill:"#FFFFC0",terminalStroke:"#000000",terminalTextColor:"#000000",nonTerminalFill:"#FFFFFF",nonTerminalStroke:"#000000",nonTerminalTextColor:"#000000",lineColor:"#000000",strokeWidth:2,markerFill:"#000000",commentFill:"#E8E8E8",commentStroke:"#888888",commentTextColor:"#666666",specialFill:"#F0E0FF",specialStroke:"#8800CC",ruleNameColor:"#000066",showMarkers:!0,markerRadius:5},ne=/^#(?:[\da-f]{3,4}|[\da-f]{6}|[\da-f]{8})$|^(?:rgb|rgba|hsl|hsla|hwb|lab|lch|oklab|oklch)\([\d\s%+,./-]+\)$|^[a-z]+$/i,ae=/^[\w "',.-]+$/,oe=new Set(["compactMode","padding","verticalSeparation","horizontalSeparation","arcRadius","fontSize","fontFamily","terminalFill","terminalStroke","terminalTextColor","nonTerminalFill","nonTerminalStroke","nonTerminalTextColor","lineColor","strokeWidth","markerFill","commentFill","commentStroke","commentTextColor","specialFill","specialStroke","ruleNameColor","showMarkers","markerRadius"]),B=p(e=>e?Object.keys(e).every(i=>i==="railroad"||oe.has(i)):!1,"isRailroadStyleOptions"),le=p(e=>e?"railroad"in e&&e.railroad?e.railroad:B(e)?e:{}:{},"extractRailroadOverrides"),se=p(e=>{if(!e||B(e))return{};const{railroad:i,svgId:a,theme:r,look:t,...n}=e;return n},"extractThemeOverrides"),m=p((e,i)=>{if(typeof e!="string")return i;const a=e.trim();return ne.test(a)?a:i},"sanitizeColorValue"),Y=p((e,i)=>{if(typeof e!="string")return i;const a=e.trim();return ae.test(a)?a:i},"sanitizeFontFamilyValue"),S=p((e,i)=>{const a=typeof e=="number"?e:typeof e=="string"?Number.parseFloat(e):Number.NaN;return Number.isFinite(a)&&a>=0?a:i},"sanitizeNumberValue"),de=p(e=>{const i=typeof e=="number"?e:typeof e=="string"?Number.parseFloat(e):Number.NaN;return Number.isFinite(i)&&i>0?i:void 0},"parseThemeFontSize"),ce=p(e=>{const i=Y(e.fontFamily,g.fontFamily),a=de(e.fontSize)??g.fontSize;return{...g,fontFamily:i,fontSize:a,terminalFill:m(e.secondBkg??e.secondaryColor,g.terminalFill),terminalStroke:m(e.secondaryBorderColor??e.lineColor,g.terminalStroke),terminalTextColor:m(e.secondaryTextColor??e.textColor,g.terminalTextColor),nonTerminalFill:m(e.mainBkg??e.background,g.nonTerminalFill),nonTerminalStroke:m(e.primaryBorderColor??e.lineColor,g.nonTerminalStroke),nonTerminalTextColor:m(e.primaryTextColor??e.textColor,g.nonTerminalTextColor),lineColor:m(e.lineColor,g.lineColor),markerFill:m(e.lineColor,g.markerFill),commentFill:m(e.labelBackground??e.tertiaryColor,g.commentFill),commentStroke:m(e.tertiaryBorderColor??e.lineColor,g.commentStroke),commentTextColor:m(e.tertiaryTextColor??e.textColor,g.commentTextColor),specialFill:m(e.tertiaryColor??e.secondaryColor,g.specialFill),specialStroke:m(e.tertiaryBorderColor??e.secondaryBorderColor,g.specialStroke),ruleNameColor:m(e.titleColor??e.textColor,g.ruleNameColor)}},"buildThemeDefaults"),M=p(e=>{const i=E(),a={...X(),...i.themeVariables??{},...se(e)},r=ce(a),t={...i.railroad??{},...le(e)};return{compactMode:t.compactMode??r.compactMode,padding:S(t.padding,r.padding),verticalSeparation:S(t.verticalSeparation,r.verticalSeparation),horizontalSeparation:S(t.horizontalSeparation,r.horizontalSeparation),arcRadius:S(t.arcRadius,r.arcRadius),fontSize:S(t.fontSize,r.fontSize),fontFamily:Y(t.fontFamily,r.fontFamily),terminalFill:m(t.terminalFill,r.terminalFill),terminalStroke:m(t.terminalStroke,r.terminalStroke),terminalTextColor:m(t.terminalTextColor,r.terminalTextColor),nonTerminalFill:m(t.nonTerminalFill,r.nonTerminalFill),nonTerminalStroke:m(t.nonTerminalStroke,r.nonTerminalStroke),nonTerminalTextColor:m(t.nonTerminalTextColor,r.nonTerminalTextColor),lineColor:m(t.lineColor,r.lineColor),strokeWidth:S(t.strokeWidth,r.strokeWidth),markerFill:m(t.markerFill,r.markerFill),commentFill:m(t.commentFill,r.commentFill),commentStroke:m(t.commentStroke,r.commentStroke),commentTextColor:m(t.commentTextColor,r.commentTextColor),specialFill:m(t.specialFill,r.specialFill),specialStroke:m(t.specialStroke,r.specialStroke),ruleNameColor:m(t.ruleNameColor,r.ruleNameColor),showMarkers:t.showMarkers??r.showMarkers,markerRadius:S(t.markerRadius,r.markerRadius)}},"buildRailroadStyleOptions"),ue=p(e=>{const{fontFamily:i,fontSize:a,terminalFill:r,terminalStroke:t,terminalTextColor:n,nonTerminalFill:h,nonTerminalStroke:s,nonTerminalTextColor:o,lineColor:u,strokeWidth:c,markerFill:d,commentFill:x,commentStroke:l,commentTextColor:f,specialFill:y,specialStroke:v,ruleNameColor:C}=M(e);return`
|
|
3
|
+
.railroad-diagram {
|
|
4
|
+
font-family: ${i};
|
|
5
|
+
font-size: ${a}px;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.railroad-terminal rect {
|
|
9
|
+
fill: ${r};
|
|
10
|
+
stroke: ${t};
|
|
11
|
+
stroke-width: ${c}px;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.railroad-terminal text {
|
|
15
|
+
fill: ${n};
|
|
16
|
+
font-family: ${i};
|
|
17
|
+
font-size: ${a}px;
|
|
18
|
+
text-anchor: middle;
|
|
19
|
+
dominant-baseline: middle;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.railroad-nonterminal rect {
|
|
23
|
+
fill: ${h};
|
|
24
|
+
stroke: ${s};
|
|
25
|
+
stroke-width: ${c}px;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.railroad-nonterminal text {
|
|
29
|
+
fill: ${o};
|
|
30
|
+
font-family: ${i};
|
|
31
|
+
font-size: ${a}px;
|
|
32
|
+
text-anchor: middle;
|
|
33
|
+
dominant-baseline: middle;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.railroad-line {
|
|
37
|
+
stroke: ${u};
|
|
38
|
+
stroke-width: ${c}px;
|
|
39
|
+
fill: none;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.railroad-start circle,
|
|
43
|
+
.railroad-end circle {
|
|
44
|
+
fill: ${d};
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.railroad-comment ellipse {
|
|
48
|
+
fill: ${x};
|
|
49
|
+
stroke: ${l};
|
|
50
|
+
stroke-width: ${c}px;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.railroad-comment text {
|
|
54
|
+
fill: ${f};
|
|
55
|
+
font-style: italic;
|
|
56
|
+
font-family: ${i};
|
|
57
|
+
font-size: ${a}px;
|
|
58
|
+
text-anchor: middle;
|
|
59
|
+
dominant-baseline: middle;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.railroad-special rect {
|
|
63
|
+
fill: ${y};
|
|
64
|
+
stroke: ${v};
|
|
65
|
+
stroke-width: ${c}px;
|
|
66
|
+
stroke-dasharray: 5,3;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.railroad-special text {
|
|
70
|
+
fill: ${o};
|
|
71
|
+
font-family: ${i};
|
|
72
|
+
font-size: ${a}px;
|
|
73
|
+
text-anchor: middle;
|
|
74
|
+
dominant-baseline: middle;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.railroad-rule-name {
|
|
78
|
+
font-weight: bold;
|
|
79
|
+
fill: ${C};
|
|
80
|
+
font-family: ${i};
|
|
81
|
+
font-size: ${a}px;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.railroad-group {
|
|
85
|
+
/* Grouping container, no specific styles */
|
|
86
|
+
}
|
|
87
|
+
`},"getStyles"),T=class{constructor(){this.d=""}static{p(this,"PathBuilder")}moveTo(e,i){return this.d+=`M ${e} ${i} `,this}lineTo(e,i){return this.d+=`L ${e} ${i} `,this}horizontalTo(e){return this.d+=`H ${e} `,this}verticalTo(e){return this.d+=`V ${e} `,this}arcTo(e,i,a,r,t,n,h){return this.d+=`A ${e} ${i} ${a} ${r?1:0} ${t?1:0} ${n} ${h} `,this}build(){return this.d.trim()}},me=class{constructor(e,i=M()){this.textCache=new Map,this.svg=e,this.config=i}static{p(this,"RailroadRenderer")}measureText(e){if(this.textCache.has(e))return this.textCache.get(e);const i=this.svg.append("text").attr("font-family",this.config.fontFamily).attr("font-size",this.config.fontSize).text(e),a=i.node().getBBox(),r={width:a.width,height:a.height};return i.remove(),this.textCache.set(e,r),r}renderTerminal(e,i){const a=this.measureText(i),r=a.width+this.config.padding*2,t=a.height+this.config.padding*2,n=e.append("g").attr("class","railroad-terminal");return n.append("rect").attr("x",0).attr("y",0).attr("width",r).attr("height",t).attr("rx",10).attr("ry",10),n.append("text").attr("x",r/2).attr("y",t/2).text(i),{element:n.node(),dimensions:{width:r,height:t,up:t/2,down:t/2}}}renderNonTerminal(e,i){const a=this.measureText(i),r=a.width+this.config.padding*2,t=a.height+this.config.padding*2,n=e.append("g").attr("class","railroad-nonterminal");return n.append("rect").attr("x",0).attr("y",0).attr("width",r).attr("height",t),n.append("text").attr("x",r/2).attr("y",t/2).text(i),{element:n.node(),dimensions:{width:r,height:t,up:t/2,down:t/2}}}renderSequence(e,i){const a=i.map(o=>this.renderExpression(e,o));let r=0,t=0,n=0;for(const o of a)r+=o.dimensions.width,t=Math.max(t,o.dimensions.up),n=Math.max(n,o.dimensions.down);r+=(a.length-1)*this.config.horizontalSeparation;const h=e.append("g").attr("class","railroad-sequence");let s=0;for(let o=0;o<a.length;o++){const u=a[o],c=t-u.dimensions.up;if(h.node().appendChild(u.element).setAttribute("transform",`translate(${s}, ${c})`),o<a.length-1){const x=s+u.dimensions.width,l=x+this.config.horizontalSeparation,f=t;h.append("path").attr("class","railroad-line").attr("d",new T().moveTo(x,f).lineTo(l,f).build())}s+=u.dimensions.width+this.config.horizontalSeparation}return{element:h.node(),dimensions:{width:r,height:t+n,up:t,down:n}}}renderChoice(e,i){const a=i.map(d=>this.renderExpression(e,d));let r=0,t=0;for(const d of a)r=Math.max(r,d.dimensions.width),t+=d.dimensions.height;t+=(a.length-1)*this.config.verticalSeparation;const n=this.config.arcRadius,h=n*4,s=r+h,o=e.append("g").attr("class","railroad-choice");let u=0;const c=t/2;for(const d of a){const x=u,l=x+d.dimensions.up,f=n*2+(r-d.dimensions.width)/2;o.node().appendChild(d.element).setAttribute("transform",`translate(${f}, ${x})`);const v=new T,C=l>c;l===c?v.moveTo(0,c).lineTo(f,l):v.moveTo(0,c).arcTo(n,n,0,!1,C,n,c+(C?n:-n)).lineTo(n,l-(C?n:-n)).arcTo(n,n,0,!1,!C,n*2,l).lineTo(f,l),o.append("path").attr("class","railroad-line").attr("d",v.build());const $=new T,O=f+d.dimensions.width,P=s-n*2;l===c?$.moveTo(O,l).lineTo(s,c):$.moveTo(O,l).lineTo(P,l).arcTo(n,n,0,!1,!C,s-n,l+(C?-n:n)).lineTo(s-n,c+(C?n:-n)).arcTo(n,n,0,!1,C,s,c),o.append("path").attr("class","railroad-line").attr("d",$.build()),u+=d.dimensions.height+this.config.verticalSeparation}return{element:o.node(),dimensions:{width:s,height:t,up:c,down:t-c}}}renderOptional(e,i){const a=this.renderExpression(e,i),r=this.config.arcRadius,t=r*2,n=a.dimensions.width+r*4,h=a.dimensions.height+t,s=e.append("g").attr("class","railroad-optional"),o=r*2,u=t;s.node().appendChild(a.element).setAttribute("transform",`translate(${o}, ${u})`);const d=u+a.dimensions.up,x=new T().moveTo(0,d).lineTo(r*2,d);s.append("path").attr("class","railroad-line").attr("d",x.build());const l=new T().moveTo(o+a.dimensions.width,d).lineTo(n,d);s.append("path").attr("class","railroad-line").attr("d",l.build());const f=new T().moveTo(0,d).arcTo(r,r,0,!1,!1,r,d-r).lineTo(r,r).arcTo(r,r,0,!1,!0,r*2,0).lineTo(n-r*2,0).arcTo(r,r,0,!1,!0,n-r,r).lineTo(n-r,d-r).arcTo(r,r,0,!1,!1,n,d);return s.append("path").attr("class","railroad-line").attr("d",f.build()),{element:s.node(),dimensions:{width:n,height:h,up:d,down:h-d}}}renderRepetition(e,i,a){const r=this.renderExpression(e,i),t=this.config.arcRadius,n=t*2,h=r.dimensions.width+t*4,s=a===0,o=r.dimensions.height+n+(s?n:0),u=e.append("g").attr("class","railroad-repetition"),c=t*2,d=s?n:0;u.node().appendChild(r.element).setAttribute("transform",`translate(${c}, ${d})`);const l=d+r.dimensions.up;u.append("path").attr("class","railroad-line").attr("d",new T().moveTo(0,l).lineTo(t*2,l).build()),u.append("path").attr("class","railroad-line").attr("d",new T().moveTo(c+r.dimensions.width,l).lineTo(h,l).build());const f=d+r.dimensions.height+t,y=new T().moveTo(c+r.dimensions.width,l).arcTo(t,t,0,!1,!0,c+r.dimensions.width+t,l+t).lineTo(c+r.dimensions.width+t,f).arcTo(t,t,0,!1,!0,c+r.dimensions.width,f+t).lineTo(t*2,f+t).arcTo(t,t,0,!1,!0,t,f).lineTo(t,l+t).arcTo(t,t,0,!1,!0,t*2,l);if(u.append("path").attr("class","railroad-line").attr("d",y.build()),s){const v=new T().moveTo(0,l).arcTo(t,t,0,!1,!1,t,l-t).lineTo(t,t).arcTo(t,t,0,!1,!0,t*2,0).lineTo(h-t*2,0).arcTo(t,t,0,!1,!0,h-t,t).lineTo(h-t,l-t).arcTo(t,t,0,!1,!1,h,l);u.append("path").attr("class","railroad-line").attr("d",v.build())}return{element:u.node(),dimensions:{width:h,height:o,up:l,down:o-l}}}renderSpecial(e,i){const a=this.measureText("? "+i+" ?"),r=a.width+this.config.padding*2,t=a.height+this.config.padding*2,n=e.append("g").attr("class","railroad-special");return n.append("rect").attr("x",0).attr("y",0).attr("width",r).attr("height",t),n.append("text").attr("x",r/2).attr("y",t/2).text("? "+i+" ?"),{element:n.node(),dimensions:{width:r,height:t,up:t/2,down:t/2}}}renderExpression(e,i){switch(i.type){case"terminal":return this.renderTerminal(e,i.value);case"nonterminal":return this.renderNonTerminal(e,i.name);case"sequence":return this.renderSequence(e,i.elements);case"choice":return this.renderChoice(e,i.alternatives);case"optional":return this.renderOptional(e,i.element);case"repetition":return this.renderRepetition(e,i.element,i.min);case"special":return this.renderSpecial(e,i.text);default:throw new Error(`Unknown node type: ${i.type}`)}}renderRule(e,i){const a=this.svg.append("g").attr("class","railroad-rule").attr("transform",`translate(0, ${i})`),r=e.name+" =",t=this.measureText(r).width+20,n=t+20,h=a.append("g"),s=this.renderExpression(h,e.definition),o=Math.max(20,s.dimensions.up),u=o-s.dimensions.up;return h.attr("transform",`translate(${n}, ${u})`),a.append("g").attr("class","railroad-rule-name-group").append("text").attr("class","railroad-rule-name").attr("x",0).attr("y",o).text(r),a.append("g").attr("class","railroad-start").append("circle").attr("cx",t).attr("cy",o).attr("r",this.config.markerRadius),a.append("g").attr("class","railroad-end").append("circle").attr("cx",n+s.dimensions.width+10).attr("cy",o).attr("r",this.config.markerRadius),a.append("path").attr("class","railroad-line").attr("d",new T().moveTo(t+this.config.markerRadius,o).lineTo(n,o).build()),a.append("path").attr("class","railroad-line").attr("d",new T().moveTo(n+s.dimensions.width,o).lineTo(n+s.dimensions.width+10-this.config.markerRadius,o).build()),{height:Math.max(40,u+s.dimensions.height+this.config.padding*2),width:n+s.dimensions.width+10+this.config.markerRadius}}renderDiagram(e){let i=this.config.padding,a=0;for(const r of e){const t=this.renderRule(r,i);i+=t.height+this.config.verticalSeparation,a=Math.max(a,t.width)}return{width:a+this.config.padding*2,height:i+this.config.padding}}},D=p((e,i,a)=>{H(e,i.height,i.width,a),e.attr("viewBox",`0 0 ${i.width} ${i.height}`)},"configureRailroadSvgSize"),he=p((e,i,a)=>{w.debug(`[Railroad] Rendering diagram
|
|
88
|
+
`+e);try{const r=L(i);r.attr("class","railroad-diagram");const n=E().railroad?.useMaxWidth??!0,h=ie.getRules();if(w.debug(`[Railroad] Rendering ${h.length} rules`),h.length===0){w.warn("[Railroad] No rules to render"),D(r,{height:100,width:200},n);return}const o=new me(r,M()).renderDiagram(h);D(r,o,n),w.debug("[Railroad] Render complete")}catch(r){throw w.error("[Railroad] Render error:",r),r}},"draw"),ge={draw:he};export{ie as d,ue as g,ge as r};
|
|
89
|
+
//# sourceMappingURL=chunk-6Q2QTUOP-B2h9pd0z.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk-6Q2QTUOP-B2h9pd0z.js","sources":["../../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-6Q2QTUOP.mjs"],"sourcesContent":["import {\n selectSvgElement\n} from \"./chunk-3NCLNEKW.mjs\";\nimport {\n clear,\n configureSvgSize,\n getConfig,\n getConfig2,\n getThemeVariables,\n sanitizeText\n} from \"./chunk-I66GZJ75.mjs\";\nimport {\n log\n} from \"./chunk-X3CZISLH.mjs\";\nimport {\n __name\n} from \"./chunk-Y2CYZVJY.mjs\";\n\n// src/diagrams/railroad/railroadDb.ts\nvar diagramTitle = \"\";\nvar accTitle = \"\";\nvar accDescription = \"\";\nvar rules = [];\nvar ruleMap = /* @__PURE__ */ new Map();\nvar sanitizeText2 = /* @__PURE__ */ __name((text) => {\n return sanitizeText(text, getConfig2());\n}, \"sanitizeText\");\nvar sanitizeAstNode = /* @__PURE__ */ __name((node) => {\n switch (node.type) {\n case \"terminal\":\n return { ...node, value: sanitizeText2(node.value) };\n case \"nonterminal\":\n return { ...node, name: sanitizeText2(node.name) };\n case \"sequence\":\n return { ...node, elements: node.elements.map(sanitizeAstNode) };\n case \"choice\":\n return { ...node, alternatives: node.alternatives.map(sanitizeAstNode) };\n case \"optional\":\n return { ...node, element: sanitizeAstNode(node.element) };\n case \"repetition\":\n return {\n ...node,\n element: sanitizeAstNode(node.element),\n separator: node.separator ? sanitizeAstNode(node.separator) : void 0\n };\n case \"special\":\n return { ...node, text: sanitizeText2(node.text) };\n }\n}, \"sanitizeAstNode\");\nvar clear2 = /* @__PURE__ */ __name(() => {\n diagramTitle = \"\";\n accTitle = \"\";\n accDescription = \"\";\n rules.length = 0;\n ruleMap.clear();\n clear();\n log.debug(\"[Railroad] Database cleared\");\n}, \"clear\");\nvar setTitle = /* @__PURE__ */ __name((text) => {\n diagramTitle = sanitizeText2(text);\n log.debug(\"[Railroad] Title set:\", text);\n}, \"setTitle\");\nvar getTitle = /* @__PURE__ */ __name(() => {\n return diagramTitle;\n}, \"getTitle\");\nvar addRule = /* @__PURE__ */ __name((rule) => {\n const sanitizedRule = {\n ...rule,\n name: sanitizeText2(rule.name),\n definition: sanitizeAstNode(rule.definition),\n comment: rule.comment ? sanitizeText2(rule.comment) : void 0\n };\n log.debug(\"[Railroad] Adding rule:\", sanitizedRule.name);\n if (ruleMap.has(sanitizedRule.name)) {\n log.warn(`[Railroad] Rule '${sanitizedRule.name}' is already defined. Overwriting.`);\n }\n rules.push(sanitizedRule);\n ruleMap.set(sanitizedRule.name, sanitizedRule);\n}, \"addRule\");\nvar getRules = /* @__PURE__ */ __name(() => {\n return rules;\n}, \"getRules\");\nvar getRule = /* @__PURE__ */ __name((name) => {\n return ruleMap.get(name);\n}, \"getRule\");\nvar setAccTitle = /* @__PURE__ */ __name((text) => {\n accTitle = sanitizeText2(text).replace(/^\\s+/g, \"\");\n log.debug(\"[Railroad] Accessibility title set:\", text);\n}, \"setAccTitle\");\nvar getAccTitle = /* @__PURE__ */ __name(() => {\n return accTitle;\n}, \"getAccTitle\");\nvar setAccDescription = /* @__PURE__ */ __name((text) => {\n accDescription = sanitizeText2(text).replace(/\\n\\s+/g, \"\\n\");\n log.debug(\"[Railroad] Accessibility description set:\", text);\n}, \"setAccDescription\");\nvar getAccDescription = /* @__PURE__ */ __name(() => {\n return accDescription;\n}, \"getAccDescription\");\nvar setDiagramTitle = setTitle;\nvar getDiagramTitle = getTitle;\nvar db = {\n clear: clear2,\n setTitle,\n getTitle,\n addRule,\n getRules,\n getRule,\n setAccTitle,\n getAccTitle,\n setAccDescription,\n getAccDescription,\n setDiagramTitle,\n getDiagramTitle\n};\n\n// src/diagrams/railroad/railroadTypes.ts\nvar DEFAULT_RAILROAD_CONFIG = {\n // Layout\n compactMode: false,\n // Spacing\n padding: 10,\n verticalSeparation: 8,\n horizontalSeparation: 10,\n arcRadius: 10,\n // Typography\n fontSize: 14,\n fontFamily: \"monospace\",\n // Colors - Terminal\n terminalFill: \"#FFFFC0\",\n terminalStroke: \"#000000\",\n terminalTextColor: \"#000000\",\n // Colors - Non-terminal\n nonTerminalFill: \"#FFFFFF\",\n nonTerminalStroke: \"#000000\",\n nonTerminalTextColor: \"#000000\",\n // Colors - Lines\n lineColor: \"#000000\",\n strokeWidth: 2,\n // Colors - Markers\n markerFill: \"#000000\",\n // Colors - Comment\n commentFill: \"#E8E8E8\",\n commentStroke: \"#888888\",\n commentTextColor: \"#666666\",\n // Colors - Special\n specialFill: \"#F0E0FF\",\n specialStroke: \"#8800CC\",\n // Other\n ruleNameColor: \"#000066\",\n showMarkers: true,\n markerRadius: 5\n};\n\n// src/diagrams/railroad/styles.ts\nvar COLOR_VALUE_PATTERN = /^#(?:[\\da-f]{3,4}|[\\da-f]{6}|[\\da-f]{8})$|^(?:rgb|rgba|hsl|hsla|hwb|lab|lch|oklab|oklch)\\([\\d\\s%+,./-]+\\)$|^[a-z]+$/i;\nvar FONT_FAMILY_PATTERN = /^[\\w \"',.-]+$/;\nvar RAILROAD_STYLE_OPTION_KEYS = /* @__PURE__ */ new Set([\n \"compactMode\",\n \"padding\",\n \"verticalSeparation\",\n \"horizontalSeparation\",\n \"arcRadius\",\n \"fontSize\",\n \"fontFamily\",\n \"terminalFill\",\n \"terminalStroke\",\n \"terminalTextColor\",\n \"nonTerminalFill\",\n \"nonTerminalStroke\",\n \"nonTerminalTextColor\",\n \"lineColor\",\n \"strokeWidth\",\n \"markerFill\",\n \"commentFill\",\n \"commentStroke\",\n \"commentTextColor\",\n \"specialFill\",\n \"specialStroke\",\n \"ruleNameColor\",\n \"showMarkers\",\n \"markerRadius\"\n]);\nvar isRailroadStyleOptions = /* @__PURE__ */ __name((options) => {\n if (!options) {\n return false;\n }\n return Object.keys(options).every(\n (key) => key === \"railroad\" || RAILROAD_STYLE_OPTION_KEYS.has(key)\n );\n}, \"isRailroadStyleOptions\");\nvar extractRailroadOverrides = /* @__PURE__ */ __name((options) => {\n if (!options) {\n return {};\n }\n if (\"railroad\" in options && options.railroad) {\n return options.railroad;\n }\n return isRailroadStyleOptions(options) ? options : {};\n}, \"extractRailroadOverrides\");\nvar extractThemeOverrides = /* @__PURE__ */ __name((options) => {\n if (!options || isRailroadStyleOptions(options)) {\n return {};\n }\n const {\n railroad: _railroad,\n svgId: _svgId,\n theme: _theme,\n look: _look,\n ...themeOverrides\n } = options;\n return themeOverrides;\n}, \"extractThemeOverrides\");\nvar sanitizeColorValue = /* @__PURE__ */ __name((value, fallback) => {\n if (typeof value !== \"string\") {\n return fallback;\n }\n const normalized = value.trim();\n return COLOR_VALUE_PATTERN.test(normalized) ? normalized : fallback;\n}, \"sanitizeColorValue\");\nvar sanitizeFontFamilyValue = /* @__PURE__ */ __name((value, fallback) => {\n if (typeof value !== \"string\") {\n return fallback;\n }\n const normalized = value.trim();\n return FONT_FAMILY_PATTERN.test(normalized) ? normalized : fallback;\n}, \"sanitizeFontFamilyValue\");\nvar sanitizeNumberValue = /* @__PURE__ */ __name((value, fallback) => {\n const parsed = typeof value === \"number\" ? value : typeof value === \"string\" ? Number.parseFloat(value) : Number.NaN;\n return Number.isFinite(parsed) && parsed >= 0 ? parsed : fallback;\n}, \"sanitizeNumberValue\");\nvar parseThemeFontSize = /* @__PURE__ */ __name((value) => {\n const parsed = typeof value === \"number\" ? value : typeof value === \"string\" ? Number.parseFloat(value) : Number.NaN;\n return Number.isFinite(parsed) && parsed > 0 ? parsed : void 0;\n}, \"parseThemeFontSize\");\nvar buildThemeDefaults = /* @__PURE__ */ __name((themeVariables) => {\n const fontFamily = sanitizeFontFamilyValue(\n themeVariables.fontFamily,\n DEFAULT_RAILROAD_CONFIG.fontFamily\n );\n const fontSize = parseThemeFontSize(themeVariables.fontSize) ?? DEFAULT_RAILROAD_CONFIG.fontSize;\n return {\n ...DEFAULT_RAILROAD_CONFIG,\n fontFamily,\n fontSize,\n terminalFill: sanitizeColorValue(\n themeVariables.secondBkg ?? themeVariables.secondaryColor,\n DEFAULT_RAILROAD_CONFIG.terminalFill\n ),\n terminalStroke: sanitizeColorValue(\n themeVariables.secondaryBorderColor ?? themeVariables.lineColor,\n DEFAULT_RAILROAD_CONFIG.terminalStroke\n ),\n terminalTextColor: sanitizeColorValue(\n themeVariables.secondaryTextColor ?? themeVariables.textColor,\n DEFAULT_RAILROAD_CONFIG.terminalTextColor\n ),\n nonTerminalFill: sanitizeColorValue(\n themeVariables.mainBkg ?? themeVariables.background,\n DEFAULT_RAILROAD_CONFIG.nonTerminalFill\n ),\n nonTerminalStroke: sanitizeColorValue(\n themeVariables.primaryBorderColor ?? themeVariables.lineColor,\n DEFAULT_RAILROAD_CONFIG.nonTerminalStroke\n ),\n nonTerminalTextColor: sanitizeColorValue(\n themeVariables.primaryTextColor ?? themeVariables.textColor,\n DEFAULT_RAILROAD_CONFIG.nonTerminalTextColor\n ),\n lineColor: sanitizeColorValue(themeVariables.lineColor, DEFAULT_RAILROAD_CONFIG.lineColor),\n markerFill: sanitizeColorValue(themeVariables.lineColor, DEFAULT_RAILROAD_CONFIG.markerFill),\n commentFill: sanitizeColorValue(\n themeVariables.labelBackground ?? themeVariables.tertiaryColor,\n DEFAULT_RAILROAD_CONFIG.commentFill\n ),\n commentStroke: sanitizeColorValue(\n themeVariables.tertiaryBorderColor ?? themeVariables.lineColor,\n DEFAULT_RAILROAD_CONFIG.commentStroke\n ),\n commentTextColor: sanitizeColorValue(\n themeVariables.tertiaryTextColor ?? themeVariables.textColor,\n DEFAULT_RAILROAD_CONFIG.commentTextColor\n ),\n specialFill: sanitizeColorValue(\n themeVariables.tertiaryColor ?? themeVariables.secondaryColor,\n DEFAULT_RAILROAD_CONFIG.specialFill\n ),\n specialStroke: sanitizeColorValue(\n themeVariables.tertiaryBorderColor ?? themeVariables.secondaryBorderColor,\n DEFAULT_RAILROAD_CONFIG.specialStroke\n ),\n ruleNameColor: sanitizeColorValue(\n themeVariables.titleColor ?? themeVariables.textColor,\n DEFAULT_RAILROAD_CONFIG.ruleNameColor\n )\n };\n}, \"buildThemeDefaults\");\nvar buildRailroadStyleOptions = /* @__PURE__ */ __name((options) => {\n const currentConfig = getConfig();\n const themeVariables = {\n ...getThemeVariables(),\n ...currentConfig.themeVariables ?? {},\n ...extractThemeOverrides(options)\n };\n const themeDefaults = buildThemeDefaults(themeVariables);\n const railroadOptions = {\n ...currentConfig.railroad ?? {},\n ...extractRailroadOverrides(options)\n };\n return {\n compactMode: railroadOptions.compactMode ?? themeDefaults.compactMode,\n padding: sanitizeNumberValue(railroadOptions.padding, themeDefaults.padding),\n verticalSeparation: sanitizeNumberValue(\n railroadOptions.verticalSeparation,\n themeDefaults.verticalSeparation\n ),\n horizontalSeparation: sanitizeNumberValue(\n railroadOptions.horizontalSeparation,\n themeDefaults.horizontalSeparation\n ),\n arcRadius: sanitizeNumberValue(railroadOptions.arcRadius, themeDefaults.arcRadius),\n fontSize: sanitizeNumberValue(railroadOptions.fontSize, themeDefaults.fontSize),\n fontFamily: sanitizeFontFamilyValue(railroadOptions.fontFamily, themeDefaults.fontFamily),\n terminalFill: sanitizeColorValue(railroadOptions.terminalFill, themeDefaults.terminalFill),\n terminalStroke: sanitizeColorValue(\n railroadOptions.terminalStroke,\n themeDefaults.terminalStroke\n ),\n terminalTextColor: sanitizeColorValue(\n railroadOptions.terminalTextColor,\n themeDefaults.terminalTextColor\n ),\n nonTerminalFill: sanitizeColorValue(\n railroadOptions.nonTerminalFill,\n themeDefaults.nonTerminalFill\n ),\n nonTerminalStroke: sanitizeColorValue(\n railroadOptions.nonTerminalStroke,\n themeDefaults.nonTerminalStroke\n ),\n nonTerminalTextColor: sanitizeColorValue(\n railroadOptions.nonTerminalTextColor,\n themeDefaults.nonTerminalTextColor\n ),\n lineColor: sanitizeColorValue(railroadOptions.lineColor, themeDefaults.lineColor),\n strokeWidth: sanitizeNumberValue(railroadOptions.strokeWidth, themeDefaults.strokeWidth),\n markerFill: sanitizeColorValue(railroadOptions.markerFill, themeDefaults.markerFill),\n commentFill: sanitizeColorValue(railroadOptions.commentFill, themeDefaults.commentFill),\n commentStroke: sanitizeColorValue(railroadOptions.commentStroke, themeDefaults.commentStroke),\n commentTextColor: sanitizeColorValue(\n railroadOptions.commentTextColor,\n themeDefaults.commentTextColor\n ),\n specialFill: sanitizeColorValue(railroadOptions.specialFill, themeDefaults.specialFill),\n specialStroke: sanitizeColorValue(railroadOptions.specialStroke, themeDefaults.specialStroke),\n ruleNameColor: sanitizeColorValue(railroadOptions.ruleNameColor, themeDefaults.ruleNameColor),\n showMarkers: railroadOptions.showMarkers ?? themeDefaults.showMarkers,\n markerRadius: sanitizeNumberValue(railroadOptions.markerRadius, themeDefaults.markerRadius)\n };\n}, \"buildRailroadStyleOptions\");\nvar getStyles = /* @__PURE__ */ __name((options) => {\n const {\n fontFamily,\n fontSize,\n terminalFill,\n terminalStroke,\n terminalTextColor,\n nonTerminalFill,\n nonTerminalStroke,\n nonTerminalTextColor,\n lineColor,\n strokeWidth,\n markerFill,\n commentFill,\n commentStroke,\n commentTextColor,\n specialFill,\n specialStroke,\n ruleNameColor\n } = buildRailroadStyleOptions(options);\n return `\n .railroad-diagram {\n font-family: ${fontFamily};\n font-size: ${fontSize}px;\n }\n\n .railroad-terminal rect {\n fill: ${terminalFill};\n stroke: ${terminalStroke};\n stroke-width: ${strokeWidth}px;\n }\n\n .railroad-terminal text {\n fill: ${terminalTextColor};\n font-family: ${fontFamily};\n font-size: ${fontSize}px;\n text-anchor: middle;\n dominant-baseline: middle;\n }\n\n .railroad-nonterminal rect {\n fill: ${nonTerminalFill};\n stroke: ${nonTerminalStroke};\n stroke-width: ${strokeWidth}px;\n }\n\n .railroad-nonterminal text {\n fill: ${nonTerminalTextColor};\n font-family: ${fontFamily};\n font-size: ${fontSize}px;\n text-anchor: middle;\n dominant-baseline: middle;\n }\n\n .railroad-line {\n stroke: ${lineColor};\n stroke-width: ${strokeWidth}px;\n fill: none;\n }\n\n .railroad-start circle,\n .railroad-end circle {\n fill: ${markerFill};\n }\n\n .railroad-comment ellipse {\n fill: ${commentFill};\n stroke: ${commentStroke};\n stroke-width: ${strokeWidth}px;\n }\n\n .railroad-comment text {\n fill: ${commentTextColor};\n font-style: italic;\n font-family: ${fontFamily};\n font-size: ${fontSize}px;\n text-anchor: middle;\n dominant-baseline: middle;\n }\n\n .railroad-special rect {\n fill: ${specialFill};\n stroke: ${specialStroke};\n stroke-width: ${strokeWidth}px;\n stroke-dasharray: 5,3;\n }\n\n .railroad-special text {\n fill: ${nonTerminalTextColor};\n font-family: ${fontFamily};\n font-size: ${fontSize}px;\n text-anchor: middle;\n dominant-baseline: middle;\n }\n\n .railroad-rule-name {\n font-weight: bold;\n fill: ${ruleNameColor};\n font-family: ${fontFamily};\n font-size: ${fontSize}px;\n }\n\n .railroad-group {\n /* Grouping container, no specific styles */\n }\n`;\n}, \"getStyles\");\n\n// src/diagrams/railroad/railroadRenderer.ts\nvar PathBuilder = class {\n constructor() {\n this.d = \"\";\n }\n static {\n __name(this, \"PathBuilder\");\n }\n moveTo(x, y) {\n this.d += `M ${x} ${y} `;\n return this;\n }\n lineTo(x, y) {\n this.d += `L ${x} ${y} `;\n return this;\n }\n horizontalTo(x) {\n this.d += `H ${x} `;\n return this;\n }\n verticalTo(y) {\n this.d += `V ${y} `;\n return this;\n }\n arcTo(rx, ry, rotation, largeArc, sweep, x, y) {\n this.d += `A ${rx} ${ry} ${rotation} ${largeArc ? 1 : 0} ${sweep ? 1 : 0} ${x} ${y} `;\n return this;\n }\n build() {\n return this.d.trim();\n }\n};\nvar RailroadRenderer = class {\n constructor(svg, config = buildRailroadStyleOptions()) {\n this.textCache = /* @__PURE__ */ new Map();\n this.svg = svg;\n this.config = config;\n }\n static {\n __name(this, \"RailroadRenderer\");\n }\n /**\n * Measure text dimensions\n */\n measureText(text) {\n if (this.textCache.has(text)) {\n return this.textCache.get(text);\n }\n const tempText = this.svg.append(\"text\").attr(\"font-family\", this.config.fontFamily).attr(\"font-size\", this.config.fontSize).text(text);\n const bbox = tempText.node().getBBox();\n const dimensions = { width: bbox.width, height: bbox.height };\n tempText.remove();\n this.textCache.set(text, dimensions);\n return dimensions;\n }\n /**\n * Render terminal symbol (rounded rectangle)\n */\n renderTerminal(parent, value) {\n const textDim = this.measureText(value);\n const width = textDim.width + this.config.padding * 2;\n const height = textDim.height + this.config.padding * 2;\n const group = parent.append(\"g\").attr(\"class\", \"railroad-terminal\");\n group.append(\"rect\").attr(\"x\", 0).attr(\"y\", 0).attr(\"width\", width).attr(\"height\", height).attr(\"rx\", 10).attr(\"ry\", 10);\n group.append(\"text\").attr(\"x\", width / 2).attr(\"y\", height / 2).text(value);\n return {\n element: group.node(),\n dimensions: {\n width,\n height,\n up: height / 2,\n down: height / 2\n }\n };\n }\n /**\n * Render non-terminal symbol (rectangle)\n */\n renderNonTerminal(parent, name) {\n const textDim = this.measureText(name);\n const width = textDim.width + this.config.padding * 2;\n const height = textDim.height + this.config.padding * 2;\n const group = parent.append(\"g\").attr(\"class\", \"railroad-nonterminal\");\n group.append(\"rect\").attr(\"x\", 0).attr(\"y\", 0).attr(\"width\", width).attr(\"height\", height);\n group.append(\"text\").attr(\"x\", width / 2).attr(\"y\", height / 2).text(name);\n return {\n element: group.node(),\n dimensions: {\n width,\n height,\n up: height / 2,\n down: height / 2\n }\n };\n }\n /**\n * Render sequence (horizontal concatenation)\n */\n renderSequence(parent, elements) {\n const rendered = elements.map((e) => this.renderExpression(parent, e));\n let totalWidth = 0;\n let maxUp = 0;\n let maxDown = 0;\n for (const r of rendered) {\n totalWidth += r.dimensions.width;\n maxUp = Math.max(maxUp, r.dimensions.up);\n maxDown = Math.max(maxDown, r.dimensions.down);\n }\n totalWidth += (rendered.length - 1) * this.config.horizontalSeparation;\n const group = parent.append(\"g\").attr(\"class\", \"railroad-sequence\");\n let x = 0;\n for (let i = 0; i < rendered.length; i++) {\n const r = rendered[i];\n const y = maxUp - r.dimensions.up;\n const elem = group.node().appendChild(r.element);\n elem.setAttribute(\"transform\", `translate(${x}, ${y})`);\n if (i < rendered.length - 1) {\n const lineX1 = x + r.dimensions.width;\n const lineX2 = lineX1 + this.config.horizontalSeparation;\n const lineY = maxUp;\n group.append(\"path\").attr(\"class\", \"railroad-line\").attr(\"d\", new PathBuilder().moveTo(lineX1, lineY).lineTo(lineX2, lineY).build());\n }\n x += r.dimensions.width + this.config.horizontalSeparation;\n }\n return {\n element: group.node(),\n dimensions: {\n width: totalWidth,\n height: maxUp + maxDown,\n up: maxUp,\n down: maxDown\n }\n };\n }\n /**\n * Render choice (vertical alternatives)\n */\n renderChoice(parent, alternatives) {\n const rendered = alternatives.map((a) => this.renderExpression(parent, a));\n let maxWidth = 0;\n let totalHeight = 0;\n for (const r of rendered) {\n maxWidth = Math.max(maxWidth, r.dimensions.width);\n totalHeight += r.dimensions.height;\n }\n totalHeight += (rendered.length - 1) * this.config.verticalSeparation;\n const arcRadius = this.config.arcRadius;\n const arcWidth = arcRadius * 4;\n const totalWidth = maxWidth + arcWidth;\n const group = parent.append(\"g\").attr(\"class\", \"railroad-choice\");\n let y = 0;\n const centerY = totalHeight / 2;\n for (const r of rendered) {\n const elemY = y;\n const elemCenterY = elemY + r.dimensions.up;\n const elemX = arcRadius * 2 + (maxWidth - r.dimensions.width) / 2;\n const elem = group.node().appendChild(r.element);\n elem.setAttribute(\"transform\", `translate(${elemX}, ${elemY})`);\n const leftPath = new PathBuilder();\n const isBelowCenter = elemCenterY > centerY;\n if (elemCenterY === centerY) {\n leftPath.moveTo(0, centerY).lineTo(elemX, elemCenterY);\n } else {\n leftPath.moveTo(0, centerY).arcTo(\n arcRadius,\n arcRadius,\n 0,\n false,\n isBelowCenter,\n arcRadius,\n centerY + (isBelowCenter ? arcRadius : -arcRadius)\n ).lineTo(arcRadius, elemCenterY - (isBelowCenter ? arcRadius : -arcRadius)).arcTo(arcRadius, arcRadius, 0, false, !isBelowCenter, arcRadius * 2, elemCenterY).lineTo(elemX, elemCenterY);\n }\n group.append(\"path\").attr(\"class\", \"railroad-line\").attr(\"d\", leftPath.build());\n const rightPath = new PathBuilder();\n const rightStart = elemX + r.dimensions.width;\n const rightLaneX = totalWidth - arcRadius * 2;\n if (elemCenterY === centerY) {\n rightPath.moveTo(rightStart, elemCenterY).lineTo(totalWidth, centerY);\n } else {\n rightPath.moveTo(rightStart, elemCenterY).lineTo(rightLaneX, elemCenterY).arcTo(\n arcRadius,\n arcRadius,\n 0,\n false,\n !isBelowCenter,\n totalWidth - arcRadius,\n elemCenterY + (isBelowCenter ? -arcRadius : arcRadius)\n ).lineTo(totalWidth - arcRadius, centerY + (isBelowCenter ? arcRadius : -arcRadius)).arcTo(arcRadius, arcRadius, 0, false, isBelowCenter, totalWidth, centerY);\n }\n group.append(\"path\").attr(\"class\", \"railroad-line\").attr(\"d\", rightPath.build());\n y += r.dimensions.height + this.config.verticalSeparation;\n }\n return {\n element: group.node(),\n dimensions: {\n width: totalWidth,\n height: totalHeight,\n up: centerY,\n down: totalHeight - centerY\n }\n };\n }\n /**\n * Render optional (bypass path above)\n */\n renderOptional(parent, element) {\n const inner = this.renderExpression(parent, element);\n const arcRadius = this.config.arcRadius;\n const arcHeight = arcRadius * 2;\n const totalWidth = inner.dimensions.width + arcRadius * 4;\n const totalHeight = inner.dimensions.height + arcHeight;\n const group = parent.append(\"g\").attr(\"class\", \"railroad-optional\");\n const elemX = arcRadius * 2;\n const elemY = arcHeight;\n const elem = group.node().appendChild(inner.element);\n elem.setAttribute(\"transform\", `translate(${elemX}, ${elemY})`);\n const centerY = elemY + inner.dimensions.up;\n const lowerPath = new PathBuilder().moveTo(0, centerY).lineTo(arcRadius * 2, centerY);\n group.append(\"path\").attr(\"class\", \"railroad-line\").attr(\"d\", lowerPath.build());\n const lowerPath2 = new PathBuilder().moveTo(elemX + inner.dimensions.width, centerY).lineTo(totalWidth, centerY);\n group.append(\"path\").attr(\"class\", \"railroad-line\").attr(\"d\", lowerPath2.build());\n const bypassPath = new PathBuilder().moveTo(0, centerY).arcTo(arcRadius, arcRadius, 0, false, false, arcRadius, centerY - arcRadius).lineTo(arcRadius, arcRadius).arcTo(arcRadius, arcRadius, 0, false, true, arcRadius * 2, 0).lineTo(totalWidth - arcRadius * 2, 0).arcTo(arcRadius, arcRadius, 0, false, true, totalWidth - arcRadius, arcRadius).lineTo(totalWidth - arcRadius, centerY - arcRadius).arcTo(arcRadius, arcRadius, 0, false, false, totalWidth, centerY);\n group.append(\"path\").attr(\"class\", \"railroad-line\").attr(\"d\", bypassPath.build());\n return {\n element: group.node(),\n dimensions: {\n width: totalWidth,\n height: totalHeight,\n up: centerY,\n down: totalHeight - centerY\n }\n };\n }\n /**\n * Render repetition (loop back path)\n */\n renderRepetition(parent, element, min) {\n const inner = this.renderExpression(parent, element);\n const arcRadius = this.config.arcRadius;\n const arcHeight = arcRadius * 2;\n const totalWidth = inner.dimensions.width + arcRadius * 4;\n const hasBypass = min === 0;\n const totalHeight = inner.dimensions.height + arcHeight + (hasBypass ? arcHeight : 0);\n const group = parent.append(\"g\").attr(\"class\", \"railroad-repetition\");\n const elemX = arcRadius * 2;\n const elemY = hasBypass ? arcHeight : 0;\n const elem = group.node().appendChild(inner.element);\n elem.setAttribute(\"transform\", `translate(${elemX}, ${elemY})`);\n const centerY = elemY + inner.dimensions.up;\n group.append(\"path\").attr(\"class\", \"railroad-line\").attr(\n \"d\",\n new PathBuilder().moveTo(0, centerY).lineTo(arcRadius * 2, centerY).build()\n );\n group.append(\"path\").attr(\"class\", \"railroad-line\").attr(\n \"d\",\n new PathBuilder().moveTo(elemX + inner.dimensions.width, centerY).lineTo(totalWidth, centerY).build()\n );\n const loopY = elemY + inner.dimensions.height + arcRadius;\n const loopPath = new PathBuilder().moveTo(elemX + inner.dimensions.width, centerY).arcTo(\n arcRadius,\n arcRadius,\n 0,\n false,\n true,\n elemX + inner.dimensions.width + arcRadius,\n centerY + arcRadius\n ).lineTo(elemX + inner.dimensions.width + arcRadius, loopY).arcTo(\n arcRadius,\n arcRadius,\n 0,\n false,\n true,\n elemX + inner.dimensions.width,\n loopY + arcRadius\n ).lineTo(arcRadius * 2, loopY + arcRadius).arcTo(arcRadius, arcRadius, 0, false, true, arcRadius, loopY).lineTo(arcRadius, centerY + arcRadius).arcTo(arcRadius, arcRadius, 0, false, true, arcRadius * 2, centerY);\n group.append(\"path\").attr(\"class\", \"railroad-line\").attr(\"d\", loopPath.build());\n if (hasBypass) {\n const bypassPath = new PathBuilder().moveTo(0, centerY).arcTo(arcRadius, arcRadius, 0, false, false, arcRadius, centerY - arcRadius).lineTo(arcRadius, arcRadius).arcTo(arcRadius, arcRadius, 0, false, true, arcRadius * 2, 0).lineTo(totalWidth - arcRadius * 2, 0).arcTo(arcRadius, arcRadius, 0, false, true, totalWidth - arcRadius, arcRadius).lineTo(totalWidth - arcRadius, centerY - arcRadius).arcTo(arcRadius, arcRadius, 0, false, false, totalWidth, centerY);\n group.append(\"path\").attr(\"class\", \"railroad-line\").attr(\"d\", bypassPath.build());\n }\n return {\n element: group.node(),\n dimensions: {\n width: totalWidth,\n height: totalHeight,\n up: centerY,\n down: totalHeight - centerY\n }\n };\n }\n /**\n * Render special sequence\n */\n renderSpecial(parent, text) {\n const textDim = this.measureText(\"? \" + text + \" ?\");\n const width = textDim.width + this.config.padding * 2;\n const height = textDim.height + this.config.padding * 2;\n const group = parent.append(\"g\").attr(\"class\", \"railroad-special\");\n group.append(\"rect\").attr(\"x\", 0).attr(\"y\", 0).attr(\"width\", width).attr(\"height\", height);\n group.append(\"text\").attr(\"x\", width / 2).attr(\"y\", height / 2).text(\"? \" + text + \" ?\");\n return {\n element: group.node(),\n dimensions: {\n width,\n height,\n up: height / 2,\n down: height / 2\n }\n };\n }\n /**\n * Render an expression (recursive)\n */\n renderExpression(parent, node) {\n switch (node.type) {\n case \"terminal\":\n return this.renderTerminal(parent, node.value);\n case \"nonterminal\":\n return this.renderNonTerminal(parent, node.name);\n case \"sequence\":\n return this.renderSequence(parent, node.elements);\n case \"choice\":\n return this.renderChoice(parent, node.alternatives);\n case \"optional\":\n return this.renderOptional(parent, node.element);\n case \"repetition\":\n return this.renderRepetition(parent, node.element, node.min);\n case \"special\":\n return this.renderSpecial(parent, node.text);\n default:\n throw new Error(`Unknown node type: ${node.type}`);\n }\n }\n /**\n * Render a single rule\n */\n renderRule(rule, y) {\n const group = this.svg.append(\"g\").attr(\"class\", \"railroad-rule\").attr(\"transform\", `translate(0, ${y})`);\n const ruleName = rule.name + \" =\";\n const nameWidth = this.measureText(ruleName).width + 20;\n const definitionX = nameWidth + 20;\n const defGroup = group.append(\"g\");\n const result = this.renderExpression(defGroup, rule.definition);\n const baselineY = Math.max(20, result.dimensions.up);\n const definitionY = baselineY - result.dimensions.up;\n defGroup.attr(\"transform\", `translate(${definitionX}, ${definitionY})`);\n const nameGroup = group.append(\"g\").attr(\"class\", \"railroad-rule-name-group\");\n nameGroup.append(\"text\").attr(\"class\", \"railroad-rule-name\").attr(\"x\", 0).attr(\"y\", baselineY).text(ruleName);\n const startMarker = group.append(\"g\").attr(\"class\", \"railroad-start\");\n startMarker.append(\"circle\").attr(\"cx\", nameWidth).attr(\"cy\", baselineY).attr(\"r\", this.config.markerRadius);\n const endMarker = group.append(\"g\").attr(\"class\", \"railroad-end\");\n endMarker.append(\"circle\").attr(\"cx\", definitionX + result.dimensions.width + 10).attr(\"cy\", baselineY).attr(\"r\", this.config.markerRadius);\n group.append(\"path\").attr(\"class\", \"railroad-line\").attr(\n \"d\",\n new PathBuilder().moveTo(nameWidth + this.config.markerRadius, baselineY).lineTo(definitionX, baselineY).build()\n );\n group.append(\"path\").attr(\"class\", \"railroad-line\").attr(\n \"d\",\n new PathBuilder().moveTo(definitionX + result.dimensions.width, baselineY).lineTo(definitionX + result.dimensions.width + 10 - this.config.markerRadius, baselineY).build()\n );\n return {\n height: Math.max(40, definitionY + result.dimensions.height + this.config.padding * 2),\n width: definitionX + result.dimensions.width + 10 + this.config.markerRadius\n };\n }\n /**\n * Render all rules\n */\n renderDiagram(rules2) {\n let y = this.config.padding;\n let maxWidth = 0;\n for (const rule of rules2) {\n const result = this.renderRule(rule, y);\n y += result.height + this.config.verticalSeparation;\n maxWidth = Math.max(maxWidth, result.width);\n }\n return {\n width: maxWidth + this.config.padding * 2,\n height: y + this.config.padding\n };\n }\n};\nvar configureRailroadSvgSize = /* @__PURE__ */ __name((svg, dimensions, useMaxWidth) => {\n configureSvgSize(svg, dimensions.height, dimensions.width, useMaxWidth);\n svg.attr(\"viewBox\", `0 0 ${dimensions.width} ${dimensions.height}`);\n}, \"configureRailroadSvgSize\");\nvar draw = /* @__PURE__ */ __name((text, id, _version) => {\n log.debug(\"[Railroad] Rendering diagram\\n\" + text);\n try {\n const svg = selectSvgElement(id);\n svg.attr(\"class\", \"railroad-diagram\");\n const railroadConfig = getConfig().railroad;\n const useMaxWidth = railroadConfig?.useMaxWidth ?? true;\n const rules2 = db.getRules();\n log.debug(`[Railroad] Rendering ${rules2.length} rules`);\n if (rules2.length === 0) {\n log.warn(\"[Railroad] No rules to render\");\n configureRailroadSvgSize(svg, { height: 100, width: 200 }, useMaxWidth);\n return;\n }\n const renderer2 = new RailroadRenderer(svg, buildRailroadStyleOptions());\n const dimensions = renderer2.renderDiagram(rules2);\n configureRailroadSvgSize(svg, dimensions, useMaxWidth);\n log.debug(\"[Railroad] Render complete\");\n } catch (error) {\n log.error(\"[Railroad] Render error:\", error);\n throw error;\n }\n}, \"draw\");\nvar renderer = { draw };\n\nexport {\n db,\n getStyles,\n renderer\n};\n"],"names":["diagramTitle","accTitle","accDescription","rules","ruleMap","sanitizeText2","__name","text","sanitizeText","getConfig2","sanitizeAstNode","node","clear2","clear","log","setTitle","getTitle","addRule","rule","sanitizedRule","getRules","getRule","name","setAccTitle","getAccTitle","setAccDescription","getAccDescription","setDiagramTitle","getDiagramTitle","db","DEFAULT_RAILROAD_CONFIG","COLOR_VALUE_PATTERN","FONT_FAMILY_PATTERN","RAILROAD_STYLE_OPTION_KEYS","isRailroadStyleOptions","options","key","extractRailroadOverrides","extractThemeOverrides","_railroad","_svgId","_theme","_look","themeOverrides","sanitizeColorValue","value","fallback","normalized","sanitizeFontFamilyValue","sanitizeNumberValue","parsed","parseThemeFontSize","buildThemeDefaults","themeVariables","fontFamily","fontSize","buildRailroadStyleOptions","currentConfig","getConfig","getThemeVariables","themeDefaults","railroadOptions","getStyles","terminalFill","terminalStroke","terminalTextColor","nonTerminalFill","nonTerminalStroke","nonTerminalTextColor","lineColor","strokeWidth","markerFill","commentFill","commentStroke","commentTextColor","specialFill","specialStroke","ruleNameColor","PathBuilder","x","y","rx","ry","rotation","largeArc","sweep","RailroadRenderer","svg","config","tempText","bbox","dimensions","parent","textDim","width","height","group","elements","rendered","e","totalWidth","maxUp","maxDown","r","i","lineX1","lineX2","lineY","alternatives","a","maxWidth","totalHeight","arcRadius","arcWidth","centerY","elemY","elemCenterY","elemX","leftPath","isBelowCenter","rightPath","rightStart","rightLaneX","element","inner","arcHeight","lowerPath","lowerPath2","bypassPath","min","hasBypass","loopY","loopPath","ruleName","nameWidth","definitionX","defGroup","result","baselineY","definitionY","rules2","configureRailroadSvgSize","useMaxWidth","configureSvgSize","draw","id","_version","selectSvgElement","error","renderer"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
import{g as tt}from"./chunk-5VM5RSS4-Vmzi7LBN.js";import{g as st}from"./chunk-XXDRQBXY-LhL86vIO.js";import{s as it}from"./chunk-KBJHAD2P-DJiYvgrH.js";import{_ as f,l as Ie,c as F,u as at,v as nt,x as Oe,d as de,N as rt,b as ut,a as lt,s as ct,g as ot,n as ht,o as dt,k as I,p as pt,q as At,i as ft,O as G}from"./mermaid.core-DTdyJUyZ.js";import{f as gt}from"./chunk-2GRJ4B5K-D3TYelbp.js";var we=function(){var t=f(function(O,o,h,p){for(h=h||{},p=O.length;p--;h[O[p]]=o);return h},"o"),i=[1,18],a=[1,19],n=[1,20],r=[1,41],c=[1,26],u=[1,42],d=[1,24],m=[1,25],g=[1,32],N=[1,33],Ae=[1,34],b=[1,45],fe=[1,35],ge=[1,36],me=[1,37],Ce=[1,38],be=[1,27],ke=[1,28],Ee=[1,29],Te=[1,30],ye=[1,31],k=[1,44],E=[1,46],T=[1,43],y=[1,47],De=[1,9],A=[1,8,9],Z=[1,58],$=[1,59],ee=[1,60],te=[1,61],se=[1,62],Fe=[1,63],Be=[1,64],_=[1,8,9,41],Pe=[1,77],M=[1,8,9,12,13,22,39,41,44,46,68,69,70,71,72,73,74,79,81],ie=[1,8,9,12,13,18,20,22,39,41,44,46,47,60,68,69,70,71,72,73,74,79,81,86,100,102,103],ae=[13,60,86,100,102,103],U=[13,60,73,74,86,100,102,103],Me=[13,60,68,69,70,71,72,86,100,102,103],ne=[1,103],z=[1,121],Y=[1,117],K=[1,113],W=[1,119],Q=[1,114],j=[1,115],X=[1,116],q=[1,118],H=[1,120],Re=[22,50,60,61,82,86,87,88,89,90],Ge=[1,128],re=[12,39],_e=[1,8,9,39,41,44,46],ue=[1,8,9,22],Ue=[1,153],ze=[1,8,9,61],x=[1,8,9,22,50,60,61,82,86,87,88,89,90],Se={trace:f(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mermaidDoc:4,statements:5,graphConfig:6,CLASS_DIAGRAM:7,NEWLINE:8,EOF:9,statement:10,classLabel:11,SQS:12,STR:13,SQE:14,namespaceName:15,alphaNumToken:16,classLiteralName:17,DOT:18,className:19,GENERICTYPE:20,relationStatement:21,LABEL:22,namespaceStatement:23,classStatement:24,memberStatement:25,annotationStatement:26,clickStatement:27,styleStatement:28,cssClassStatement:29,noteStatement:30,classDefStatement:31,direction:32,acc_title:33,acc_title_value:34,acc_descr:35,acc_descr_value:36,acc_descr_multiline_value:37,namespaceIdentifier:38,STRUCT_START:39,classStatements:40,STRUCT_STOP:41,NAMESPACE:42,classIdentifier:43,STYLE_SEPARATOR:44,members:45,ANNOTATION_START:46,ANNOTATION_END:47,CLASS:48,emptyBody:49,SPACE:50,MEMBER:51,SEPARATOR:52,relation:53,NOTE_FOR:54,noteText:55,NOTE:56,CLASSDEF:57,classList:58,stylesOpt:59,ALPHA:60,COMMA:61,direction_tb:62,direction_bt:63,direction_rl:64,direction_lr:65,relationType:66,lineType:67,AGGREGATION:68,EXTENSION:69,COMPOSITION:70,DEPENDENCY:71,LOLLIPOP:72,LINE:73,DOTTED_LINE:74,CALLBACK:75,LINK:76,LINK_TARGET:77,CLICK:78,CALLBACK_NAME:79,CALLBACK_ARGS:80,HREF:81,STYLE:82,CSSCLASS:83,style:84,styleComponent:85,NUM:86,COLON:87,UNIT:88,BRKT:89,PCT:90,commentToken:91,textToken:92,graphCodeTokens:93,textNoTagsToken:94,TAGSTART:95,TAGEND:96,"==":97,"--":98,DEFAULT:99,MINUS:100,keywords:101,UNICODE_TEXT:102,BQUOTE_STR:103,$accept:0,$end:1},terminals_:{2:"error",7:"CLASS_DIAGRAM",8:"NEWLINE",9:"EOF",12:"SQS",13:"STR",14:"SQE",18:"DOT",20:"GENERICTYPE",22:"LABEL",33:"acc_title",34:"acc_title_value",35:"acc_descr",36:"acc_descr_value",37:"acc_descr_multiline_value",39:"STRUCT_START",41:"STRUCT_STOP",42:"NAMESPACE",44:"STYLE_SEPARATOR",46:"ANNOTATION_START",47:"ANNOTATION_END",48:"CLASS",50:"SPACE",51:"MEMBER",52:"SEPARATOR",54:"NOTE_FOR",56:"NOTE",57:"CLASSDEF",60:"ALPHA",61:"COMMA",62:"direction_tb",63:"direction_bt",64:"direction_rl",65:"direction_lr",68:"AGGREGATION",69:"EXTENSION",70:"COMPOSITION",71:"DEPENDENCY",72:"LOLLIPOP",73:"LINE",74:"DOTTED_LINE",75:"CALLBACK",76:"LINK",77:"LINK_TARGET",78:"CLICK",79:"CALLBACK_NAME",80:"CALLBACK_ARGS",81:"HREF",82:"STYLE",83:"CSSCLASS",86:"NUM",87:"COLON",88:"UNIT",89:"BRKT",90:"PCT",93:"graphCodeTokens",95:"TAGSTART",96:"TAGEND",97:"==",98:"--",99:"DEFAULT",100:"MINUS",101:"keywords",102:"UNICODE_TEXT",103:"BQUOTE_STR"},productions_:[0,[3,1],[3,1],[4,1],[6,4],[5,1],[5,2],[5,3],[11,3],[15,1],[15,1],[15,3],[15,2],[19,1],[19,3],[19,1],[19,2],[19,2],[19,2],[10,1],[10,2],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,2],[10,1],[23,4],[23,5],[38,2],[38,3],[40,1],[40,2],[40,3],[40,1],[40,2],[40,3],[40,1],[40,2],[40,3],[24,1],[24,3],[24,4],[24,3],[24,6],[24,4],[24,7],[24,6],[43,2],[43,3],[49,0],[49,2],[49,2],[26,4],[45,1],[45,2],[25,1],[25,2],[25,1],[25,1],[21,3],[21,4],[21,4],[21,5],[30,3],[30,2],[31,3],[58,1],[58,3],[32,1],[32,1],[32,1],[32,1],[53,3],[53,2],[53,2],[53,1],[66,1],[66,1],[66,1],[66,1],[66,1],[67,1],[67,1],[27,3],[27,4],[27,3],[27,4],[27,4],[27,5],[27,3],[27,4],[27,4],[27,5],[27,4],[27,5],[27,5],[27,6],[28,3],[29,3],[59,1],[59,3],[84,1],[84,2],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[91,1],[91,1],[92,1],[92,1],[92,1],[92,1],[92,1],[92,1],[92,1],[94,1],[94,1],[94,1],[94,1],[16,1],[16,1],[16,1],[16,1],[17,1],[55,1]],performAction:f(function(o,h,p,l,C,e,J){var s=e.length-1;switch(C){case 8:this.$=e[s-1];break;case 9:case 10:case 13:case 15:this.$=e[s];break;case 11:case 14:this.$=e[s-2]+"."+e[s];break;case 12:case 16:this.$=e[s-1]+e[s];break;case 17:case 18:this.$=e[s-1]+"~"+e[s]+"~";break;case 19:l.addRelation(e[s]);break;case 20:e[s-1].title=l.cleanupLabel(e[s]),l.addRelation(e[s-1]);break;case 31:this.$=e[s].trim(),l.setAccTitle(this.$);break;case 32:case 33:this.$=e[s].trim(),l.setAccDescription(this.$);break;case 34:l.addClassesToNamespace(e[s-3],e[s-1][0],e[s-1][1]),l.popNamespace();break;case 35:l.addClassesToNamespace(e[s-4],e[s-1][0],e[s-1][1]),l.popNamespace();break;case 36:this.$=l.addNamespace(e[s]);break;case 37:this.$=l.addNamespace(e[s-1],e[s]);break;case 38:this.$=[[e[s]],[]];break;case 39:this.$=[[e[s-1]],[]];break;case 40:e[s][0].unshift(e[s-2]),this.$=e[s];break;case 41:this.$=[[],[e[s]]];break;case 42:this.$=[[],[e[s-1]]];break;case 43:e[s][1].unshift(e[s-2]),this.$=e[s];break;case 44:case 45:this.$=[[],[]];break;case 46:this.$=e[s];break;case 48:l.setCssClass(e[s-2],e[s]);break;case 49:l.addMembers(e[s-3],e[s-1]);break;case 51:l.setCssClass(e[s-5],e[s-3]),l.addMembers(e[s-5],e[s-1]);break;case 52:l.addAnnotation(e[s-3],e[s-1]);break;case 53:l.addAnnotation(e[s-6],e[s-4]),l.addMembers(e[s-6],e[s-1]);break;case 54:l.addAnnotation(e[s-5],e[s-3]);break;case 55:this.$=e[s],l.addClass(e[s]);break;case 56:this.$=e[s-1],l.addClass(e[s-1]),l.setClassLabel(e[s-1],e[s]);break;case 60:l.addAnnotation(e[s],e[s-2]);break;case 61:case 74:this.$=[e[s]];break;case 62:e[s].push(e[s-1]),this.$=e[s];break;case 63:break;case 64:l.addMember(e[s-1],l.cleanupLabel(e[s]));break;case 65:break;case 66:break;case 67:this.$={id1:e[s-2],id2:e[s],relation:e[s-1],relationTitle1:"none",relationTitle2:"none"};break;case 68:this.$={id1:e[s-3],id2:e[s],relation:e[s-1],relationTitle1:e[s-2],relationTitle2:"none"};break;case 69:this.$={id1:e[s-3],id2:e[s],relation:e[s-2],relationTitle1:"none",relationTitle2:e[s-1]};break;case 70:this.$={id1:e[s-4],id2:e[s],relation:e[s-2],relationTitle1:e[s-3],relationTitle2:e[s-1]};break;case 71:this.$=l.addNote(e[s],e[s-1]);break;case 72:this.$=l.addNote(e[s]);break;case 73:this.$=e[s-2],l.defineClass(e[s-1],e[s]);break;case 75:this.$=e[s-2].concat([e[s]]);break;case 76:l.setDirection("TB");break;case 77:l.setDirection("BT");break;case 78:l.setDirection("RL");break;case 79:l.setDirection("LR");break;case 80:this.$={type1:e[s-2],type2:e[s],lineType:e[s-1]};break;case 81:this.$={type1:"none",type2:e[s],lineType:e[s-1]};break;case 82:this.$={type1:e[s-1],type2:"none",lineType:e[s]};break;case 83:this.$={type1:"none",type2:"none",lineType:e[s]};break;case 84:this.$=l.relationType.AGGREGATION;break;case 85:this.$=l.relationType.EXTENSION;break;case 86:this.$=l.relationType.COMPOSITION;break;case 87:this.$=l.relationType.DEPENDENCY;break;case 88:this.$=l.relationType.LOLLIPOP;break;case 89:this.$=l.lineType.LINE;break;case 90:this.$=l.lineType.DOTTED_LINE;break;case 91:case 97:this.$=e[s-2],l.setClickEvent(e[s-1],e[s]);break;case 92:case 98:this.$=e[s-3],l.setClickEvent(e[s-2],e[s-1]),l.setTooltip(e[s-2],e[s]);break;case 93:this.$=e[s-2],l.setLink(e[s-1],e[s]);break;case 94:this.$=e[s-3],l.setLink(e[s-2],e[s-1],e[s]);break;case 95:this.$=e[s-3],l.setLink(e[s-2],e[s-1]),l.setTooltip(e[s-2],e[s]);break;case 96:this.$=e[s-4],l.setLink(e[s-3],e[s-2],e[s]),l.setTooltip(e[s-3],e[s-1]);break;case 99:this.$=e[s-3],l.setClickEvent(e[s-2],e[s-1],e[s]);break;case 100:this.$=e[s-4],l.setClickEvent(e[s-3],e[s-2],e[s-1]),l.setTooltip(e[s-3],e[s]);break;case 101:this.$=e[s-3],l.setLink(e[s-2],e[s]);break;case 102:this.$=e[s-4],l.setLink(e[s-3],e[s-1],e[s]);break;case 103:this.$=e[s-4],l.setLink(e[s-3],e[s-1]),l.setTooltip(e[s-3],e[s]);break;case 104:this.$=e[s-5],l.setLink(e[s-4],e[s-2],e[s]),l.setTooltip(e[s-4],e[s-1]);break;case 105:this.$=e[s-2],l.setCssStyle(e[s-1],e[s]);break;case 106:l.setCssClass(e[s-1],e[s]);break;case 107:this.$=[e[s]];break;case 108:e[s-2].push(e[s]),this.$=e[s-2];break;case 110:this.$=e[s-1]+e[s];break}},"anonymous"),table:[{3:1,4:2,5:3,6:4,7:[1,6],10:5,16:39,17:40,19:21,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,33:i,35:a,37:n,38:22,42:r,43:23,46:c,48:u,51:d,52:m,54:g,56:N,57:Ae,60:b,62:fe,63:ge,64:me,65:Ce,75:be,76:ke,78:Ee,82:Te,83:ye,86:k,100:E,102:T,103:y},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},t(De,[2,5],{8:[1,48]}),{8:[1,49]},t(A,[2,19],{22:[1,50]}),t(A,[2,21]),t(A,[2,22]),t(A,[2,23]),t(A,[2,24]),t(A,[2,25]),t(A,[2,26]),t(A,[2,27]),t(A,[2,28]),t(A,[2,29]),t(A,[2,30]),{34:[1,51]},{36:[1,52]},t(A,[2,33]),t(A,[2,63],{53:53,66:56,67:57,13:[1,54],22:[1,55],68:Z,69:$,70:ee,71:te,72:se,73:Fe,74:Be}),{39:[1,65]},t(_,[2,47],{39:[1,67],44:[1,66],46:[1,68]}),t(A,[2,65]),t(A,[2,66]),{16:69,60:b,86:k,100:E,102:T},{16:39,17:40,19:70,60:b,86:k,100:E,102:T,103:y},{16:39,17:40,19:71,60:b,86:k,100:E,102:T,103:y},{16:39,17:40,19:72,60:b,86:k,100:E,102:T,103:y},{60:[1,73]},{13:[1,74]},{16:39,17:40,19:75,60:b,86:k,100:E,102:T,103:y},{13:Pe,55:76},{58:78,60:[1,79]},t(A,[2,76]),t(A,[2,77]),t(A,[2,78]),t(A,[2,79]),t(M,[2,13],{16:39,17:40,19:81,18:[1,80],20:[1,82],60:b,86:k,100:E,102:T,103:y}),t(M,[2,15],{20:[1,83]}),{15:84,16:85,17:86,60:b,86:k,100:E,102:T,103:y},{16:39,17:40,19:87,60:b,86:k,100:E,102:T,103:y},t(ie,[2,133]),t(ie,[2,134]),t(ie,[2,135]),t(ie,[2,136]),t([1,8,9,12,13,20,22,39,41,44,46,68,69,70,71,72,73,74,79,81],[2,137]),t(De,[2,6],{10:5,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,19:21,38:22,43:23,16:39,17:40,5:88,33:i,35:a,37:n,42:r,46:c,48:u,51:d,52:m,54:g,56:N,57:Ae,60:b,62:fe,63:ge,64:me,65:Ce,75:be,76:ke,78:Ee,82:Te,83:ye,86:k,100:E,102:T,103:y}),{5:89,10:5,16:39,17:40,19:21,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,33:i,35:a,37:n,38:22,42:r,43:23,46:c,48:u,51:d,52:m,54:g,56:N,57:Ae,60:b,62:fe,63:ge,64:me,65:Ce,75:be,76:ke,78:Ee,82:Te,83:ye,86:k,100:E,102:T,103:y},t(A,[2,20]),t(A,[2,31]),t(A,[2,32]),{13:[1,91],16:39,17:40,19:90,60:b,86:k,100:E,102:T,103:y},{53:92,66:56,67:57,68:Z,69:$,70:ee,71:te,72:se,73:Fe,74:Be},t(A,[2,64]),{67:93,73:Fe,74:Be},t(ae,[2,83],{66:94,68:Z,69:$,70:ee,71:te,72:se}),t(U,[2,84]),t(U,[2,85]),t(U,[2,86]),t(U,[2,87]),t(U,[2,88]),t(Me,[2,89]),t(Me,[2,90]),{8:[1,96],23:99,24:97,30:98,38:22,40:95,42:r,43:23,48:u,54:g,56:N},{16:100,60:b,86:k,100:E,102:T},{41:[1,102],45:101,51:ne},{16:104,60:b,86:k,100:E,102:T},{47:[1,105]},{13:[1,106]},{13:[1,107]},{79:[1,108],81:[1,109]},{22:z,50:Y,59:110,60:K,82:W,84:111,85:112,86:Q,87:j,88:X,89:q,90:H},{60:[1,122]},{13:Pe,55:123},t(_,[2,72]),t(_,[2,138]),{22:z,50:Y,59:124,60:K,61:[1,125],82:W,84:111,85:112,86:Q,87:j,88:X,89:q,90:H},t(Re,[2,74]),{16:39,17:40,19:126,60:b,86:k,100:E,102:T,103:y},t(M,[2,16]),t(M,[2,17]),t(M,[2,18]),{11:127,12:Ge,39:[2,36]},t(re,[2,9],{16:85,17:86,15:130,18:[1,129],60:b,86:k,100:E,102:T,103:y}),t(re,[2,10]),t(_e,[2,55],{11:131,12:Ge}),t(De,[2,7]),{9:[1,132]},t(ue,[2,67]),{16:39,17:40,19:133,60:b,86:k,100:E,102:T,103:y},{13:[1,135],16:39,17:40,19:134,60:b,86:k,100:E,102:T,103:y},t(ae,[2,82],{66:136,68:Z,69:$,70:ee,71:te,72:se}),t(ae,[2,81]),{41:[1,137]},{23:99,24:97,30:98,38:22,40:138,42:r,43:23,48:u,54:g,56:N},{8:[1,139],41:[2,38]},{8:[1,140],41:[2,41]},{8:[1,141],41:[2,44]},t(_,[2,48],{39:[1,142]}),{41:[1,143]},t(_,[2,50]),{41:[2,61],45:144,51:ne},{47:[1,145]},{16:39,17:40,19:146,60:b,86:k,100:E,102:T,103:y},t(A,[2,91],{13:[1,147]}),t(A,[2,93],{13:[1,149],77:[1,148]}),t(A,[2,97],{13:[1,150],80:[1,151]}),{13:[1,152]},t(A,[2,105],{61:Ue}),t(ze,[2,107],{85:154,22:z,50:Y,60:K,82:W,86:Q,87:j,88:X,89:q,90:H}),t(x,[2,109]),t(x,[2,111]),t(x,[2,112]),t(x,[2,113]),t(x,[2,114]),t(x,[2,115]),t(x,[2,116]),t(x,[2,117]),t(x,[2,118]),t(x,[2,119]),t(A,[2,106]),t(_,[2,71]),t(A,[2,73],{61:Ue}),{60:[1,155]},t(M,[2,14]),{39:[2,37]},{13:[1,156]},{15:157,16:85,17:86,60:b,86:k,100:E,102:T,103:y},t(re,[2,12]),t(_e,[2,56]),{1:[2,4]},t(ue,[2,69]),t(ue,[2,68]),{16:39,17:40,19:158,60:b,86:k,100:E,102:T,103:y},t(ae,[2,80]),t(_,[2,34]),{41:[1,159]},{23:99,24:97,30:98,38:22,40:160,41:[2,39],42:r,43:23,48:u,54:g,56:N},{23:99,24:97,30:98,38:22,40:161,41:[2,42],42:r,43:23,48:u,54:g,56:N},{23:99,24:97,30:98,38:22,40:162,41:[2,45],42:r,43:23,48:u,54:g,56:N},{45:163,51:ne},t(_,[2,49]),{41:[2,62]},t(_,[2,52],{39:[1,164]}),t(A,[2,60]),t(A,[2,92]),t(A,[2,94]),t(A,[2,95],{77:[1,165]}),t(A,[2,98]),t(A,[2,99],{13:[1,166]}),t(A,[2,101],{13:[1,168],77:[1,167]}),{22:z,50:Y,60:K,82:W,84:169,85:112,86:Q,87:j,88:X,89:q,90:H},t(x,[2,110]),t(Re,[2,75]),{14:[1,170]},t(re,[2,11]),t(ue,[2,70]),t(_,[2,35]),{41:[2,40]},{41:[2,43]},{41:[2,46]},{41:[1,171]},{41:[1,173],45:172,51:ne},t(A,[2,96]),t(A,[2,100]),t(A,[2,102]),t(A,[2,103],{77:[1,174]}),t(ze,[2,108],{85:154,22:z,50:Y,60:K,82:W,86:Q,87:j,88:X,89:q,90:H}),t(_e,[2,8]),t(_,[2,51]),{41:[1,175]},t(_,[2,54]),t(A,[2,104]),t(_,[2,53])],defaultActions:{2:[2,1],3:[2,2],4:[2,3],127:[2,37],132:[2,4],144:[2,62],160:[2,40],161:[2,43],162:[2,46]},parseError:f(function(o,h){if(h.recoverable)this.trace(o);else{var p=new Error(o);throw p.hash=h,p}},"parseError"),parse:f(function(o){var h=this,p=[0],l=[],C=[null],e=[],J=this.table,s="",ce=0,Ye=0,Je=2,Ke=1,Ze=e.slice.call(arguments,1),D=Object.create(this.lexer),w={yy:{}};for(var Ne in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Ne)&&(w.yy[Ne]=this.yy[Ne]);D.setInput(o,w.yy),w.yy.lexer=D,w.yy.parser=this,typeof D.yylloc>"u"&&(D.yylloc={});var Le=D.yylloc;e.push(Le);var $e=D.options&&D.options.ranges;typeof w.yy.parseError=="function"?this.parseError=w.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function et(S){p.length=p.length-2*S,C.length=C.length-S,e.length=e.length-S}f(et,"popStack");function We(){var S;return S=l.pop()||D.lex()||Ke,typeof S!="number"&&(S instanceof Array&&(l=S,S=l.pop()),S=h.symbols_[S]||S),S}f(We,"lex");for(var B,V,L,xe,R={},oe,v,Qe,he;;){if(V=p[p.length-1],this.defaultActions[V]?L=this.defaultActions[V]:((B===null||typeof B>"u")&&(B=We()),L=J[V]&&J[V][B]),typeof L>"u"||!L.length||!L[0]){var ve="";he=[];for(oe in J[V])this.terminals_[oe]&&oe>Je&&he.push("'"+this.terminals_[oe]+"'");D.showPosition?ve="Parse error on line "+(ce+1)+`:
|
|
2
|
+
`+D.showPosition()+`
|
|
3
|
+
Expecting `+he.join(", ")+", got '"+(this.terminals_[B]||B)+"'":ve="Parse error on line "+(ce+1)+": Unexpected "+(B==Ke?"end of input":"'"+(this.terminals_[B]||B)+"'"),this.parseError(ve,{text:D.match,token:this.terminals_[B]||B,line:D.yylineno,loc:Le,expected:he})}if(L[0]instanceof Array&&L.length>1)throw new Error("Parse Error: multiple actions possible at state: "+V+", token: "+B);switch(L[0]){case 1:p.push(B),C.push(D.yytext),e.push(D.yylloc),p.push(L[1]),B=null,Ye=D.yyleng,s=D.yytext,ce=D.yylineno,Le=D.yylloc;break;case 2:if(v=this.productions_[L[1]][1],R.$=C[C.length-v],R._$={first_line:e[e.length-(v||1)].first_line,last_line:e[e.length-1].last_line,first_column:e[e.length-(v||1)].first_column,last_column:e[e.length-1].last_column},$e&&(R._$.range=[e[e.length-(v||1)].range[0],e[e.length-1].range[1]]),xe=this.performAction.apply(R,[s,Ye,ce,w.yy,L[1],C,e].concat(Ze)),typeof xe<"u")return xe;v&&(p=p.slice(0,-1*v*2),C=C.slice(0,-1*v),e=e.slice(0,-1*v)),p.push(this.productions_[L[1]][0]),C.push(R.$),e.push(R._$),Qe=J[p[p.length-2]][p[p.length-1]],p.push(Qe);break;case 3:return!0}}return!0},"parse")},He=function(){var O={EOF:1,parseError:f(function(h,p){if(this.yy.parser)this.yy.parser.parseError(h,p);else throw new Error(h)},"parseError"),setInput:f(function(o,h){return this.yy=h||this.yy||{},this._input=o,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:f(function(){var o=this._input[0];this.yytext+=o,this.yyleng++,this.offset++,this.match+=o,this.matched+=o;var h=o.match(/(?:\r\n?|\n).*/g);return h?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),o},"input"),unput:f(function(o){var h=o.length,p=o.split(/(?:\r\n?|\n)/g);this._input=o+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-h),this.offset-=h;var l=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),p.length-1&&(this.yylineno-=p.length-1);var C=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:p?(p.length===l.length?this.yylloc.first_column:0)+l[l.length-p.length].length-p[0].length:this.yylloc.first_column-h},this.options.ranges&&(this.yylloc.range=[C[0],C[0]+this.yyleng-h]),this.yyleng=this.yytext.length,this},"unput"),more:f(function(){return this._more=!0,this},"more"),reject:f(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:f(function(o){this.unput(this.match.slice(o))},"less"),pastInput:f(function(){var o=this.matched.substr(0,this.matched.length-this.match.length);return(o.length>20?"...":"")+o.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:f(function(){var o=this.match;return o.length<20&&(o+=this._input.substr(0,20-o.length)),(o.substr(0,20)+(o.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:f(function(){var o=this.pastInput(),h=new Array(o.length+1).join("-");return o+this.upcomingInput()+`
|
|
5
|
+
`+h+"^"},"showPosition"),test_match:f(function(o,h){var p,l,C;if(this.options.backtrack_lexer&&(C={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&&(C.yylloc.range=this.yylloc.range.slice(0))),l=o[0].match(/(?:\r\n?|\n).*/g),l&&(this.yylineno+=l.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:l?l[l.length-1].length-l[l.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+o[0].length},this.yytext+=o[0],this.match+=o[0],this.matches=o,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(o[0].length),this.matched+=o[0],p=this.performAction.call(this,this.yy,this,h,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),p)return p;if(this._backtrack){for(var e in C)this[e]=C[e];return!1}return!1},"test_match"),next:f(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var o,h,p,l;this._more||(this.yytext="",this.match="");for(var C=this._currentRules(),e=0;e<C.length;e++)if(p=this._input.match(this.rules[C[e]]),p&&(!h||p[0].length>h[0].length)){if(h=p,l=e,this.options.backtrack_lexer){if(o=this.test_match(p,C[e]),o!==!1)return o;if(this._backtrack){h=!1;continue}else return!1}else if(!this.options.flex)break}return h?(o=this.test_match(h,C[l]),o!==!1?o:!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:f(function(){var h=this.next();return h||this.lex()},"lex"),begin:f(function(h){this.conditionStack.push(h)},"begin"),popState:f(function(){var h=this.conditionStack.length-1;return h>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:f(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:f(function(h){return h=this.conditionStack.length-1-Math.abs(h||0),h>=0?this.conditionStack[h]:"INITIAL"},"topState"),pushState:f(function(h){this.begin(h)},"pushState"),stateStackSize:f(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:f(function(h,p,l,C){switch(l){case 0:return 62;case 1:return 63;case 2:return 64;case 3:return 65;case 4:break;case 5:break;case 6:return this.begin("acc_title"),33;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),35;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 8;case 14:break;case 15:return 7;case 16:return 7;case 17:return"EDGE_STATE";case 18:this.begin("callback_name");break;case 19:this.popState();break;case 20:this.popState(),this.begin("callback_args");break;case 21:return 79;case 22:this.popState();break;case 23:return 80;case 24:this.popState();break;case 25:return"STR";case 26:this.begin("string");break;case 27:return 82;case 28:return 57;case 29:return this.begin("namespace"),42;case 30:return this.popState(),8;case 31:break;case 32:return this.begin("namespace-body"),39;case 33:this.popState(),this.less(0);break;case 34:return this.popState(),41;case 35:return"EOF_IN_STRUCT";case 36:return 8;case 37:break;case 38:return"EDGE_STATE";case 39:return this.begin("class"),48;case 40:return this.popState(),8;case 41:break;case 42:return this.popState(),this.popState(),41;case 43:return this.begin("class-body"),39;case 44:return this.popState(),41;case 45:return"EOF_IN_STRUCT";case 46:return"EDGE_STATE";case 47:return"OPEN_IN_STRUCT";case 48:break;case 49:return"MEMBER";case 50:return 83;case 51:return 75;case 52:return 76;case 53:return 78;case 54:return 54;case 55:return 56;case 56:return 46;case 57:return 47;case 58:return 81;case 59:this.popState();break;case 60:return"GENERICTYPE";case 61:this.begin("generic");break;case 62:this.popState();break;case 63:return"BQUOTE_STR";case 64:this.begin("bqstring");break;case 65:return 77;case 66:return 77;case 67:return 77;case 68:return 77;case 69:return 69;case 70:return 69;case 71:return 71;case 72:return 71;case 73:return 70;case 74:return 68;case 75:return 72;case 76:return 73;case 77:return 74;case 78:return 22;case 79:return 44;case 80:return 100;case 81:return 18;case 82:return"PLUS";case 83:return 87;case 84:return 61;case 85:return 89;case 86:return 89;case 87:return 90;case 88:return"EQUALS";case 89:return"EQUALS";case 90:return 60;case 91:return 12;case 92:return 14;case 93:return"PUNCTUATION";case 94:return 86;case 95:return 102;case 96:return 50;case 97:return 50;case 98:return 9}},"anonymous"),rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:classDiagram-v2\b)/,/^(?:classDiagram\b)/,/^(?:\[\*\])/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:["])/,/^(?:[^"]*)/,/^(?:["])/,/^(?:style\b)/,/^(?:classDef\b)/,/^(?:namespace\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[{])/,/^(?:[}])/,/^(?:[}])/,/^(?:$)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:\[\*\])/,/^(?:class\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[}])/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\[\*\])/,/^(?:[{])/,/^(?:[\n])/,/^(?:[^{}\n]*)/,/^(?:cssClass\b)/,/^(?:callback\b)/,/^(?:link\b)/,/^(?:click\b)/,/^(?:note for\b)/,/^(?:note\b)/,/^(?:<<)/,/^(?:>>)/,/^(?:href\b)/,/^(?:[~])/,/^(?:[^~]*)/,/^(?:~)/,/^(?:[`])/,/^(?:[^`]+)/,/^(?:[`])/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:\s*<\|)/,/^(?:\s*\|>)/,/^(?:\s*>)/,/^(?:\s*<)/,/^(?:\s*\*)/,/^(?:\s*o\b)/,/^(?:\s*\(\))/,/^(?:--)/,/^(?:\.\.)/,/^(?::{1}[^:\n;]+)/,/^(?::{3})/,/^(?:-)/,/^(?:\.)/,/^(?:\+)/,/^(?::)/,/^(?:,)/,/^(?:#)/,/^(?:#)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:\w+)/,/^(?:\[)/,/^(?:\])/,/^(?:[!"#$%&'*+,-.`?\\/])/,/^(?:[0-9]+)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\s)/,/^(?:\s)/,/^(?:$)/],conditions:{"namespace-body":{rules:[26,29,34,35,36,37,38,39,50,51,52,53,54,55,56,57,58,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,87,88,89,90,91,92,93,94,95,96,98],inclusive:!1},namespace:{rules:[26,29,30,31,32,33,50,51,52,53,54,55,56,57,58,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,87,88,89,90,91,92,93,94,95,96,98],inclusive:!1},"class-body":{rules:[26,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,87,88,89,90,91,92,93,94,95,96,98],inclusive:!1},class:{rules:[26,40,41,42,43,50,51,52,53,54,55,56,57,58,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,87,88,89,90,91,92,93,94,95,96,98],inclusive:!1},acc_descr_multiline:{rules:[11,12,26,50,51,52,53,54,55,56,57,58,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,87,88,89,90,91,92,93,94,95,96,98],inclusive:!1},acc_descr:{rules:[9,26,50,51,52,53,54,55,56,57,58,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,87,88,89,90,91,92,93,94,95,96,98],inclusive:!1},acc_title:{rules:[7,26,50,51,52,53,54,55,56,57,58,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,87,88,89,90,91,92,93,94,95,96,98],inclusive:!1},callback_args:{rules:[22,23,26,50,51,52,53,54,55,56,57,58,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,87,88,89,90,91,92,93,94,95,96,98],inclusive:!1},callback_name:{rules:[19,20,21,26,50,51,52,53,54,55,56,57,58,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,87,88,89,90,91,92,93,94,95,96,98],inclusive:!1},href:{rules:[26,50,51,52,53,54,55,56,57,58,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,87,88,89,90,91,92,93,94,95,96,98],inclusive:!1},struct:{rules:[26,50,51,52,53,54,55,56,57,58,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,87,88,89,90,91,92,93,94,95,96,98],inclusive:!1},generic:{rules:[26,50,51,52,53,54,55,56,57,58,59,60,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,87,88,89,90,91,92,93,94,95,96,98],inclusive:!1},bqstring:{rules:[26,50,51,52,53,54,55,56,57,58,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,87,88,89,90,91,92,93,94,95,96,98],inclusive:!1},string:{rules:[24,25,26,50,51,52,53,54,55,56,57,58,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,87,88,89,90,91,92,93,94,95,96,98],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,26,27,28,29,39,50,51,52,53,54,55,56,57,58,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98],inclusive:!0}}};return O}();Se.lexer=He;function le(){this.yy={}}return f(le,"Parser"),le.prototype=Se,Se.Parser=le,new le}();we.parser=we;var Bt=we,je=["#","+","~","-",""],Xe=class{static{f(this,"ClassMember")}constructor(t,i){this.memberType=i,this.visibility="",this.classifier="",this.text="";const a=ft(t,F());this.parseMember(a)}getDisplayDetails(){let t=this.visibility+G(this.id);this.memberType==="method"&&(t+=`(${G(this.parameters.trim())})`,this.returnType&&(t+=" : "+G(this.returnType))),t=t.trim();const i=this.parseClassifier();return{displayText:t,cssStyle:i}}parseMember(t){let i="";if(this.memberType==="method"){const r=/([#+~-])?(.+)\((.*)\)([\s$*])?(.*)([$*])?/.exec(t);if(r){const c=r[1]?r[1].trim():"";if(je.includes(c)&&(this.visibility=c),this.id=r[2],this.parameters=r[3]?r[3].trim():"",i=r[4]?r[4].trim():"",this.returnType=r[5]?r[5].trim():"",i===""){const u=this.returnType.substring(this.returnType.length-1);/[$*]/.exec(u)&&(i=u,this.returnType=this.returnType.substring(0,this.returnType.length-1))}}}else{const n=t.length,r=t.substring(0,1),c=t.substring(n-1);je.includes(r)&&(this.visibility=r),/[$*]/.exec(c)&&(i=c),this.id=t.substring(this.visibility===""?0:1,i===""?n:n-1)}this.classifier=i,this.id=this.id.startsWith(" ")?" "+this.id.trim():this.id.trim();const a=`${this.visibility?"\\"+this.visibility:""}${G(this.id)}${this.memberType==="method"?`(${G(this.parameters)})${this.returnType?" : "+G(this.returnType):""}`:""}`;this.text=a.replaceAll("<","<").replaceAll(">",">"),this.text.startsWith("\\<")&&(this.text=this.text.replace("\\<","~"))}parseClassifier(){switch(this.classifier){case"*":return"font-style:italic;";case"$":return"text-decoration:underline;";default:return""}}},pe="classId-",qe=0,P=f(t=>I.sanitizeText(t,F()),"sanitizeText"),_t=class Ve{constructor(){this.relations=[],this.classes=new Map,this.styleClasses=new Map,this.notes=new Map,this.interfaces=[],this.namespaces=new Map,this.namespaceCounter=0,this.namespaceStack=[],this.diagramId="",this.functions=[],this.lineType={LINE:0,DOTTED_LINE:1},this.relationType={AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3,LOLLIPOP:4},this.setupToolTips=f(i=>{const a=gt();de(i).select("svg").selectAll("g").filter(function(){return de(this).attr("title")!==null}).on("mouseover",c=>{const u=de(c.currentTarget),d=u.attr("title");if(!d)return;const m=c.currentTarget.getBoundingClientRect();a.transition().duration(200).style("opacity",".9"),a.html(rt.sanitize(d)).style("left",`${window.scrollX+m.left+m.width/2}px`).style("top",`${window.scrollY+m.bottom+4}px`),u.classed("hover",!0)}).on("mouseout",c=>{a.transition().duration(500).style("opacity",0),de(c.currentTarget).classed("hover",!1)})},"setupToolTips"),this.direction="TB",this.setAccTitle=ut,this.getAccTitle=lt,this.setAccDescription=ct,this.getAccDescription=ot,this.setDiagramTitle=ht,this.getDiagramTitle=dt,this.getConfig=f(()=>F().class,"getConfig"),this.functions.push(this.setupToolTips.bind(this)),this.clear(),this.addRelation=this.addRelation.bind(this),this.addClassesToNamespace=this.addClassesToNamespace.bind(this),this.addNamespace=this.addNamespace.bind(this),this.popNamespace=this.popNamespace.bind(this),this.setCssClass=this.setCssClass.bind(this),this.addMembers=this.addMembers.bind(this),this.addClass=this.addClass.bind(this),this.setClassLabel=this.setClassLabel.bind(this),this.addAnnotation=this.addAnnotation.bind(this),this.addMember=this.addMember.bind(this),this.cleanupLabel=this.cleanupLabel.bind(this),this.addNote=this.addNote.bind(this),this.defineClass=this.defineClass.bind(this),this.setDirection=this.setDirection.bind(this),this.setLink=this.setLink.bind(this),this.bindFunctions=this.bindFunctions.bind(this),this.clear=this.clear.bind(this),this.setTooltip=this.setTooltip.bind(this),this.setClickEvent=this.setClickEvent.bind(this),this.setCssStyle=this.setCssStyle.bind(this)}static{f(this,"ClassDB")}splitClassNameAndType(i){const a=I.sanitizeText(i,F());let n="",r=a;if(a.indexOf("~")>0){const c=a.split("~");r=P(c[0]),n=P(c[1])}return{className:r,type:n}}setClassLabel(i,a){const n=I.sanitizeText(i,F());a&&(a=P(a));const{className:r}=this.splitClassNameAndType(n);this.classes.get(r).label=a,this.classes.get(r).text=`${a}${this.classes.get(r).type?`<${this.classes.get(r).type}>`:""}`}addClass(i){const a=I.sanitizeText(i,F()),{className:n,type:r}=this.splitClassNameAndType(a);if(this.classes.has(n))return;const c=I.sanitizeText(n,F());this.classes.set(c,{id:c,type:r,label:c,text:`${c}${r?`<${r}>`:""}`,shape:"classBox",cssClasses:"default",methods:[],members:[],annotations:[],styles:[],domId:pe+c+"-"+qe}),qe++}addInterface(i,a){const n={id:`interface${this.interfaces.length}`,label:i,classId:a};this.interfaces.push(n)}setDiagramId(i){this.diagramId=i}lookUpDomId(i){const a=I.sanitizeText(i,F());if(this.classes.has(a)){const n=this.classes.get(a).domId;return this.diagramId?`${this.diagramId}-${n}`:n}throw new Error("Class not found: "+a)}clear(){this.relations=[],this.classes=new Map,this.notes=new Map,this.interfaces=[],this.functions=[],this.functions.push(this.setupToolTips.bind(this)),this.namespaces=new Map,this.namespaceCounter=0,this.namespaceStack=[],this.diagramId="",this.direction="TB",pt()}getClass(i){return this.classes.get(i)}getClasses(){return this.classes}getRelations(){return this.relations}getNote(i){const a=typeof i=="number"?`note${i}`:i;return this.notes.get(a)}getNotes(){return this.notes}addRelation(i){Ie.debug("Adding relation: "+JSON.stringify(i));const a=[this.relationType.LOLLIPOP,this.relationType.AGGREGATION,this.relationType.COMPOSITION,this.relationType.DEPENDENCY,this.relationType.EXTENSION];i.relation.type1===this.relationType.LOLLIPOP&&!a.includes(i.relation.type2)?(this.addClass(i.id2),this.addInterface(i.id1,i.id2),i.id1=`interface${this.interfaces.length-1}`):i.relation.type2===this.relationType.LOLLIPOP&&!a.includes(i.relation.type1)?(this.addClass(i.id1),this.addInterface(i.id2,i.id1),i.id2=`interface${this.interfaces.length-1}`):(this.addClass(i.id1),this.addClass(i.id2)),i.id1=this.splitClassNameAndType(i.id1).className,i.id2=this.splitClassNameAndType(i.id2).className,i.relationTitle1=I.sanitizeText(i.relationTitle1.trim(),F()),i.relationTitle2=I.sanitizeText(i.relationTitle2.trim(),F()),this.relations.push(i)}addAnnotation(i,a){const n=this.splitClassNameAndType(i).className;this.classes.get(n).annotations.push(a)}addMember(i,a){this.addClass(i);const n=this.splitClassNameAndType(i).className,r=this.classes.get(n);if(typeof a=="string"){const c=a.trim();c.startsWith("<<")&&c.endsWith(">>")?r.annotations.push(P(c.substring(2,c.length-2))):c.indexOf(")")>0?r.methods.push(new Xe(c,"method")):c&&r.members.push(new Xe(c,"attribute"))}}addMembers(i,a){Array.isArray(a)&&(a.reverse(),a.forEach(n=>this.addMember(i,n)))}addNote(i,a){const n=this.notes.size,r={id:`note${n}`,class:a,text:i,index:n};return this.notes.set(r.id,r),r.id}cleanupLabel(i){return i.startsWith(":")&&(i=i.substring(1)),P(i.trim())}setCssClass(i,a){i.split(",").forEach(n=>{let r=n;/\d/.exec(n[0])&&(r=pe+r),r=this.splitClassNameAndType(r).className;const c=this.classes.get(r);c&&(c.cssClasses+=" "+a)})}defineClass(i,a){for(const n of i){let r=this.styleClasses.get(n);r===void 0&&(r={id:n,styles:[],textStyles:[]},this.styleClasses.set(n,r)),a&&a.forEach(c=>{if(/color/.exec(c)){const u=c.replace("fill","bgFill");r.textStyles.push(u)}r.styles.push(c)}),this.classes.forEach(c=>{c.cssClasses.includes(n)&&c.styles.push(...a.flatMap(u=>u.split(",")))})}}setTooltip(i,a){i.split(",").forEach(n=>{if(a!==void 0){const r=this.splitClassNameAndType(n).className,c=this.classes.get(r);c&&(c.tooltip=P(a))}})}getTooltip(i,a){return a&&this.namespaces.has(a)?this.namespaces.get(a).classes.get(i).tooltip:this.classes.get(i).tooltip}setLink(i,a,n){const r=F();i.split(",").forEach(c=>{let u=c;/\d/.exec(c[0])&&(u=pe+u),u=this.splitClassNameAndType(u).className;const d=this.classes.get(u);d&&(d.link=Oe.formatUrl(a,r),r.securityLevel==="sandbox"?d.linkTarget="_top":typeof n=="string"?d.linkTarget=P(n):d.linkTarget="_blank")}),this.setCssClass(i,"clickable")}setClickEvent(i,a,n){i.split(",").forEach(r=>{this.setClickFunc(r,a,n);const c=this.splitClassNameAndType(r).className,u=this.classes.get(c);u&&(u.haveCallback=!0)}),this.setCssClass(i,"clickable")}setClickFunc(i,a,n){const r=I.sanitizeText(i,F());if(F().securityLevel!=="loose"||a===void 0)return;const u=this.splitClassNameAndType(r).className;if(this.classes.has(u)){let d=[];if(typeof n=="string"){d=n.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let m=0;m<d.length;m++){let g=d[m].trim();g.startsWith('"')&&g.endsWith('"')&&(g=g.substr(1,g.length-2)),d[m]=g}}d.length===0&&d.push(u),this.functions.push(()=>{const m=this.lookUpDomId(u),g=document.querySelector(`[id="${m}"]`);g!==null&&g.addEventListener("click",()=>{Oe.runFunc(a,...d)},!1)})}}bindFunctions(i){this.functions.forEach(a=>{a(i)})}escapeHtml(i){return i.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}getDirection(){return this.direction}setDirection(i){this.direction=i}static resolveQualifiedId(i,a){const n=a.at(-1);return n?`${n}.${i}`:i}static getAncestorIds(i){const a=i.split("."),n=new Array(a.length);n[0]=a[0];for(let r=1;r<a.length;r++)n[r]=`${n[r-1]}.${a[r]}`;return n}createNamespaceNode(i,a,n,r=!1){return{id:i,label:a,classes:new Map,notes:new Map,children:new Map,domId:pe+i+"-"+this.namespaceCounter++,parent:n,explicit:r}}linkParentChild(i,a){const n=this.namespaces.get(i),r=this.namespaces.get(a);!n||!r||(n.children.has(a)||n.children.set(a,r),r.parent??=i)}addNamespace(i,a){const n=Ve.resolveQualifiedId(i,this.namespaceStack);if(this.namespaceStack.push(n),this.namespaces.has(n)){const u=this.namespaces.get(n);return u.explicit=!0,a&&(u.label=a),n}const r=n.split("."),c=Ve.getAncestorIds(n);for(let u=0;u<c.length;u++){const d=c[u],m=u>0?c[u-1]:void 0,g=u===c.length-1,N=g&&a?a:r[u];this.namespaces.has(d)?g&&(this.namespaces.get(d).explicit=!0):this.namespaces.set(d,this.createNamespaceNode(d,N,m,g)),m&&this.linkParentChild(m,d)}return n}popNamespace(){this.namespaceStack.pop()}getNamespace(i){return this.namespaces.get(i)}getNamespaces(){return this.namespaces}addClassesToNamespace(i,a,n){if(this.namespaces.has(i)){for(const r of a){const{className:c}=this.splitClassNameAndType(r),u=this.getClass(c);u.parent=i,this.namespaces.get(i).classes.set(c,u)}for(const r of n){const c=this.getNote(r);c.parent=i,this.namespaces.get(i).notes.set(r,c)}}}setCssStyle(i,a){const n=this.classes.get(i);if(!(!a||!n))for(const r of a)r.includes(",")?n.styles.push(...r.split(",")):n.styles.push(r)}getArrowMarker(i){let a;switch(i){case 0:a="aggregation";break;case 1:a="extension";break;case 2:a="composition";break;case 3:a="dependency";break;case 4:a="lollipop";break;default:a="none"}return a}resolveExplicitAncestor(i){let a=i;for(;a;){const n=this.namespaces.get(a);if(!n)return;if(n.explicit)return a;a=n.parent}}getData(){const i=[],a=[],n=F(),r=n.class?.hierarchicalNamespaces??!0;for(const u of this.namespaces.values()){if(!r&&!u.explicit)continue;const d={id:u.id,label:r?u.label:u.id,isGroup:!0,padding:n.class.padding??16,shape:"rect",cssStyles:[],look:n.look,parentId:r?u.parent:void 0};i.push(d)}for(const u of this.classes.values()){const d=r?u.parent:this.resolveExplicitAncestor(u.parent),m={...u,type:void 0,isGroup:!1,parentId:d,look:n.look};i.push(m)}for(const u of this.notes.values()){const d=r?u.parent:this.resolveExplicitAncestor(u.parent),m={id:u.id,label:u.text,isGroup:!1,shape:"note",padding:n.class.padding??6,cssStyles:["text-align: left","white-space: nowrap",`fill: ${n.themeVariables.noteBkgColor}`,`stroke: ${n.themeVariables.noteBorderColor}`],look:n.look,parentId:d,labelType:"markdown"};i.push(m);const g=this.classes.get(u.class)?.id;if(g){const N={id:`edgeNote${u.index}`,start:u.id,end:g,type:"normal",thickness:"normal",classes:"relation",arrowTypeStart:"none",arrowTypeEnd:"none",arrowheadStyle:"",labelStyle:[""],style:["fill: none"],pattern:"dotted",look:n.look};a.push(N)}}for(const u of this.interfaces){const d={id:u.id,label:u.label,isGroup:!1,shape:"rect",cssStyles:["opacity: 0;"],look:n.look};i.push(d)}let c=0;for(const u of this.relations){c++;const d={id:At(u.id1,u.id2,{prefix:"id",counter:c}),start:u.id1,end:u.id2,type:"normal",label:u.title,labelpos:"c",thickness:"normal",classes:"relation",arrowTypeStart:this.getArrowMarker(u.relation.type1),arrowTypeEnd:this.getArrowMarker(u.relation.type2),startLabelRight:u.relationTitle1==="none"?"":u.relationTitle1,endLabelLeft:u.relationTitle2==="none"?"":u.relationTitle2,arrowheadStyle:"",labelStyle:["display: inline-block"],style:u.style||"",pattern:u.relation.lineType==1?"dashed":"solid",look:n.look,labelType:"markdown"};a.push(d)}return{nodes:i,edges:a,other:{},config:n,direction:this.getDirection()}}},mt=f(t=>`g.classGroup text {
|
|
7
|
+
fill: ${t.nodeBorder||t.classText};
|
|
8
|
+
stroke: none;
|
|
9
|
+
font-family: ${t.fontFamily};
|
|
10
|
+
font-size: 10px;
|
|
11
|
+
|
|
12
|
+
.title {
|
|
13
|
+
font-weight: bolder;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.cluster-label text {
|
|
19
|
+
fill: ${t.titleColor};
|
|
20
|
+
}
|
|
21
|
+
.cluster-label span {
|
|
22
|
+
color: ${t.titleColor};
|
|
23
|
+
}
|
|
24
|
+
.cluster-label span p {
|
|
25
|
+
background-color: transparent;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.cluster rect {
|
|
29
|
+
fill: ${t.clusterBkg};
|
|
30
|
+
stroke: ${t.clusterBorder};
|
|
31
|
+
stroke-width: 1px;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.cluster text {
|
|
35
|
+
fill: ${t.titleColor};
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.cluster span {
|
|
39
|
+
color: ${t.titleColor};
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.nodeLabel, .edgeLabel {
|
|
43
|
+
color: ${t.classText};
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.noteLabel .nodeLabel, .noteLabel .edgeLabel {
|
|
47
|
+
color: ${t.noteTextColor};
|
|
48
|
+
}
|
|
49
|
+
.edgeLabel .label rect {
|
|
50
|
+
fill: ${t.mainBkg};
|
|
51
|
+
}
|
|
52
|
+
.label text {
|
|
53
|
+
fill: ${t.classText};
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.labelBkg {
|
|
57
|
+
background: ${t.mainBkg};
|
|
58
|
+
}
|
|
59
|
+
.edgeLabel .label span {
|
|
60
|
+
background: ${t.mainBkg};
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.classTitle {
|
|
64
|
+
font-weight: bolder;
|
|
65
|
+
}
|
|
66
|
+
.node rect,
|
|
67
|
+
.node circle,
|
|
68
|
+
.node ellipse,
|
|
69
|
+
.node polygon,
|
|
70
|
+
.node path {
|
|
71
|
+
fill: ${t.mainBkg};
|
|
72
|
+
stroke: ${t.nodeBorder};
|
|
73
|
+
stroke-width: ${t.strokeWidth};
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
.divider {
|
|
78
|
+
stroke: ${t.nodeBorder};
|
|
79
|
+
stroke-width: 1;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
g.clickable {
|
|
83
|
+
cursor: pointer;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
g.classGroup rect {
|
|
87
|
+
fill: ${t.mainBkg};
|
|
88
|
+
stroke: ${t.nodeBorder};
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
g.classGroup line {
|
|
92
|
+
stroke: ${t.nodeBorder};
|
|
93
|
+
stroke-width: 1;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.classLabel .box {
|
|
97
|
+
stroke: none;
|
|
98
|
+
stroke-width: 0;
|
|
99
|
+
fill: ${t.mainBkg};
|
|
100
|
+
opacity: 0.5;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
.classLabel .label {
|
|
104
|
+
fill: ${t.nodeBorder};
|
|
105
|
+
font-size: 10px;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.relation {
|
|
109
|
+
stroke: ${t.lineColor};
|
|
110
|
+
stroke-width: ${t.strokeWidth};
|
|
111
|
+
fill: none;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.dashed-line{
|
|
115
|
+
stroke-dasharray: 3;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.dotted-line{
|
|
119
|
+
stroke-dasharray: 1 2;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
[id$="-compositionStart"], .composition {
|
|
123
|
+
fill: ${t.lineColor} !important;
|
|
124
|
+
stroke: ${t.lineColor} !important;
|
|
125
|
+
stroke-width: 1;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
[id$="-compositionEnd"], .composition {
|
|
129
|
+
fill: ${t.lineColor} !important;
|
|
130
|
+
stroke: ${t.lineColor} !important;
|
|
131
|
+
stroke-width: 1;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
[id$="-dependencyStart"], .dependency {
|
|
135
|
+
fill: ${t.lineColor} !important;
|
|
136
|
+
stroke: ${t.lineColor} !important;
|
|
137
|
+
stroke-width: 1;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
[id$="-dependencyEnd"], .dependency {
|
|
141
|
+
fill: ${t.lineColor} !important;
|
|
142
|
+
stroke: ${t.lineColor} !important;
|
|
143
|
+
stroke-width: 1;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
[id$="-extensionStart"], .extension {
|
|
147
|
+
fill: transparent !important;
|
|
148
|
+
stroke: ${t.lineColor} !important;
|
|
149
|
+
stroke-width: 1;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
[id$="-extensionEnd"], .extension {
|
|
153
|
+
fill: transparent !important;
|
|
154
|
+
stroke: ${t.lineColor} !important;
|
|
155
|
+
stroke-width: 1;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
[id$="-aggregationStart"], .aggregation {
|
|
159
|
+
fill: transparent !important;
|
|
160
|
+
stroke: ${t.lineColor} !important;
|
|
161
|
+
stroke-width: 1;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
[id$="-aggregationEnd"], .aggregation {
|
|
165
|
+
fill: transparent !important;
|
|
166
|
+
stroke: ${t.lineColor} !important;
|
|
167
|
+
stroke-width: 1;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
[id$="-lollipopStart"], .lollipop {
|
|
171
|
+
fill: ${t.mainBkg} !important;
|
|
172
|
+
stroke: ${t.lineColor} !important;
|
|
173
|
+
stroke-width: 1;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
[id$="-lollipopEnd"], .lollipop {
|
|
177
|
+
fill: ${t.mainBkg} !important;
|
|
178
|
+
stroke: ${t.lineColor} !important;
|
|
179
|
+
stroke-width: 1;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
.edgeTerminals {
|
|
183
|
+
font-size: 11px;
|
|
184
|
+
line-height: initial;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
.classTitleText {
|
|
188
|
+
text-anchor: middle;
|
|
189
|
+
font-size: 18px;
|
|
190
|
+
fill: ${t.textColor};
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
.edgeLabel[data-look="neo"] {
|
|
194
|
+
background-color: ${t.edgeLabelBackground};
|
|
195
|
+
p {
|
|
196
|
+
background-color: ${t.edgeLabelBackground};
|
|
197
|
+
}
|
|
198
|
+
rect {
|
|
199
|
+
opacity: 0.5;
|
|
200
|
+
background-color: ${t.edgeLabelBackground};
|
|
201
|
+
fill: ${t.edgeLabelBackground};
|
|
202
|
+
}
|
|
203
|
+
text-align: center;
|
|
204
|
+
}
|
|
205
|
+
${tt()}
|
|
206
|
+
`,"getStyles"),St=mt,Ct=f((t,i="TB")=>{if(!t.doc)return i;let a=i;for(const n of t.doc)n.stmt==="dir"&&(a=n.value);return a},"getDir"),bt=f(function(t,i){return i.db.getClasses()},"getClasses"),kt=f(async function(t,i,a,n){Ie.info("REF0:"),Ie.info("Drawing class diagram (v3)",i);const{securityLevel:r,state:c,layout:u}=F();n.db.setDiagramId(i);const d=n.db.getData(),m=st(i,r);d.type=n.type,d.layoutAlgorithm=at(u),d.nodeSpacing=c?.nodeSpacing||50,d.rankSpacing=c?.rankSpacing||50,d.markers=["aggregation","extension","composition","dependency","lollipop"],d.diagramId=i,await nt(d,m);const g=8;Oe.insertTitle(m,"classDiagramTitleText",c?.titleTopMargin??25,n.db.getDiagramTitle()),it(m,g,"classDiagram",c?.useMaxWidth??!0)},"draw"),Nt={getClasses:bt,draw:kt,getDir:Ct};export{_t as C,Bt as a,Nt as c,St as s};
|
|
207
|
+
//# sourceMappingURL=chunk-GF5L2VYU-C4KJO4_l.js.map
|