@hardikg/mdview 0.10.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/CHANGELOG.md +63 -0
  2. package/README.md +52 -10
  3. package/bin/chunk-RBYD2HWV.mjs +196 -0
  4. package/bin/chunk-WWM6JNAS.mjs +209 -0
  5. package/bin/chunk-XFRQFZZ4.mjs +20 -0
  6. package/bin/mdview.mjs +521 -1323
  7. package/bin/regex-worker.mjs +52 -0
  8. package/bin/server-KALIU7HM.mjs +1854 -0
  9. package/bin/shiki-5SFVA32N.mjs +13 -0
  10. package/dist/client/assets/23I4SOAX-BN9xvzna.js +2 -0
  11. package/dist/client/assets/26H2HVXD-Cu1OTMxT.js +2 -0
  12. package/dist/client/assets/2IZ5MNOH-DMjMO3_9.js +1 -0
  13. package/dist/client/assets/2P3CZEXH-D-4BP7dg.js +2 -0
  14. package/dist/client/assets/3E5HRNYT-DUYblpdl.js +5 -0
  15. package/dist/client/assets/3JIRLDUO-C1CwW1Ha.js +1 -0
  16. package/dist/client/assets/5MJ3UKSG-DtT76qKq.js +2 -0
  17. package/dist/client/assets/5THPTBWS-Ce_hS451.js +1 -0
  18. package/dist/client/assets/7WLXJQOR-D6QVYUu9.js +1 -0
  19. package/dist/client/assets/A255FCTW-woaH7Mj_.js +1 -0
  20. package/dist/client/assets/AM43MQ64-CsWC_OQH.js +2 -0
  21. package/dist/client/assets/AOZTNTMC-BIehUQHD.js +5 -0
  22. package/dist/client/assets/AQNLM6KG-DIUuJgPm.js +4 -0
  23. package/dist/client/assets/BNU2RHQB-DeXpwU5k.js +2 -0
  24. package/dist/client/assets/C5HTQT3I-7U13x70S.js +4 -0
  25. package/dist/client/assets/CPKRWH5G-CRxaqyOs.js +12 -0
  26. package/dist/client/assets/CUVCMPQX-JTGMOfG2.js +1 -0
  27. package/dist/client/assets/D4V2MWCI-CytzCr6g.js +1 -0
  28. package/dist/client/assets/DHKBVIA3-CVnlqiEq.js +1 -0
  29. package/dist/client/assets/DKTLEL5E-DciMwFJ1.js +1 -0
  30. package/dist/client/assets/DUZNPW7S-D3pifVNb.js +2 -0
  31. package/dist/client/assets/E3FWOBN4-D5m5o2g0.js +4 -0
  32. package/dist/client/assets/E65FQMJL-Bg5F0Zo8.js +1 -0
  33. package/dist/client/assets/FTXIJQGB-CggtIYAM.js +1 -0
  34. package/dist/client/assets/G3MDBVQH-BZmnMkFw.js +1 -0
  35. package/dist/client/assets/G3OATVW2-VpVvT5i2.js +8 -0
  36. package/dist/client/assets/IV52FOAS-DgPxxRI4.js +5 -0
  37. package/dist/client/assets/JTJEEBDN-Bl0iUT_r.js +2 -0
  38. package/dist/client/assets/K7FUICZ3-DgoihkiR.js +2 -0
  39. package/dist/client/assets/LHH2HHRB-BXHTnBD0.js +2 -0
  40. package/dist/client/assets/MSPQPZZY-DQg7F6a8.js +4 -0
  41. package/dist/client/assets/OB6ZFVKF-UHmC8m-y.js +2 -0
  42. package/dist/client/assets/PLTZDMI2-C1ZAoc-e.js +1 -0
  43. package/dist/client/assets/R7EPXMMD-ChI1SqjJ.js +5 -0
  44. package/dist/client/assets/RVARI57O-CgA1WoRv.js +1 -0
  45. package/dist/client/assets/SPBWZ4VS-EqfCsJ5V.js +1 -0
  46. package/dist/client/assets/SR7OOV3Q-CFnFs0kL.js +4 -0
  47. package/dist/client/assets/STAXBNH4-D4c13Xlj.js +2 -0
  48. package/dist/client/assets/SXFARSFO-CkFSkgdi.js +1 -0
  49. package/dist/client/assets/TC77ISAL--WP0GBo0.js +2 -0
  50. package/dist/client/assets/TYIQQHVC-B67pCpxM.js +13 -0
  51. package/dist/client/assets/TZUXETIT-BFD9W5hl.js +2 -0
  52. package/dist/client/assets/U7N72BGE-Do3829la.js +6 -0
  53. package/dist/client/assets/UFPIB6EZ-DTs_MyQv.js +3 -0
  54. package/dist/client/assets/UO52YEYL-DN1qbGwF.js +3 -0
  55. package/dist/client/assets/VIK3ONSK-DC8mR2sZ.js +2 -0
  56. package/dist/client/assets/VVVO4ZVP-DAtGLbxR.js +2 -0
  57. package/dist/client/assets/WRGXZO53-D30IuREw.js +3 -0
  58. package/dist/client/assets/X5SG7MGC-CdjdoL_s.js +2 -0
  59. package/dist/client/assets/XLHPVVFU-BFP9ID9p.js +2 -0
  60. package/dist/client/assets/XXYPNCD5-DqCewu_S.js +5 -0
  61. package/dist/client/assets/Z6WRYFJC-BEt1KCoU.js +7 -0
  62. package/dist/client/assets/ZI2QNEGF-VzC4uHcW.js +8 -0
  63. package/dist/client/assets/index-B96jWJTi.css +1 -0
  64. package/dist/client/assets/index-DCU09WmS.js +2 -0
  65. package/dist/client/assets/katex-C0xaXAD4.js +257 -0
  66. package/dist/client/assets/katex.min-3X1qOa03.js +1 -0
  67. package/dist/client/assets/katex.min-DMey5pMQ.css +1 -0
  68. package/dist/client/assets/lazy-DaMZI1F7.js +45 -0
  69. package/dist/client/index.html +2 -2
  70. package/package.json +32 -27
  71. package/dist/client/assets/2DXBBFLN-BxPqHNSN.js +0 -5
  72. package/dist/client/assets/46IJ22JX-u_jvQJNg.js +0 -2
  73. package/dist/client/assets/4TTDE5I4-BgbNAVNj.js +0 -3
  74. package/dist/client/assets/4UF3HTLV-DNbPxlOE.js +0 -2
  75. package/dist/client/assets/5THPTBWS-D57irc_4.js +0 -1
  76. package/dist/client/assets/7WLXJQOR-CHhKreq0.js +0 -1
  77. package/dist/client/assets/AAXQQPKT-CsAJqrOC.js +0 -5
  78. package/dist/client/assets/AKE5O7KZ-MSuBOjCG.js +0 -2
  79. package/dist/client/assets/BNMLP6AG-Ca3zyKQY.js +0 -3
  80. package/dist/client/assets/DKTLEL5E-B7ILCVTH.js +0 -1
  81. package/dist/client/assets/DR6PKOQU-Bw7cHvYp.js +0 -2
  82. package/dist/client/assets/E4RJ7UJB-CYB5C4K7.js +0 -2
  83. package/dist/client/assets/ELSXBIJH-DG0MW5dC.js +0 -1
  84. package/dist/client/assets/ERTIBQVS-BMWumWfk.js +0 -2
  85. package/dist/client/assets/F653G4FO-FI8M9Mc0.js +0 -12
  86. package/dist/client/assets/FKCDD66M-BPFkyrwI.js +0 -1
  87. package/dist/client/assets/FP7KDXVC-BLEBNkCO.js +0 -2
  88. package/dist/client/assets/FT5I3RHX-j5YoMicq.js +0 -6
  89. package/dist/client/assets/FTXIJQGB-nrHdCfp7.js +0 -1
  90. package/dist/client/assets/G3MDBVQH-EkdejvdW.js +0 -1
  91. package/dist/client/assets/GY35JXOZ-3ovTGxgz.js +0 -2
  92. package/dist/client/assets/H5EEJPP2-CNVQBEB3.js +0 -1
  93. package/dist/client/assets/HWDLEDTA-C_JcdBMO.js +0 -1
  94. package/dist/client/assets/JZWSX6AR-OwVPptYv.js +0 -1
  95. package/dist/client/assets/KQOEJWJY-DKTXya68.js +0 -2
  96. package/dist/client/assets/KS3BB3KE-QkpqVdmA.js +0 -1
  97. package/dist/client/assets/KXJRRZHI-BQRjeGWj.js +0 -2
  98. package/dist/client/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  99. package/dist/client/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  100. package/dist/client/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  101. package/dist/client/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  102. package/dist/client/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  103. package/dist/client/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  104. package/dist/client/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  105. package/dist/client/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  106. package/dist/client/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  107. package/dist/client/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  108. package/dist/client/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  109. package/dist/client/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  110. package/dist/client/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  111. package/dist/client/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  112. package/dist/client/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  113. package/dist/client/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  114. package/dist/client/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  115. package/dist/client/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  116. package/dist/client/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  117. package/dist/client/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  118. package/dist/client/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  119. package/dist/client/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  120. package/dist/client/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  121. package/dist/client/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  122. package/dist/client/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  123. package/dist/client/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  124. package/dist/client/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  125. package/dist/client/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  126. package/dist/client/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  127. package/dist/client/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  128. package/dist/client/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  129. package/dist/client/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  130. package/dist/client/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  131. package/dist/client/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  132. package/dist/client/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  133. package/dist/client/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  134. package/dist/client/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  135. package/dist/client/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  136. package/dist/client/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  137. package/dist/client/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  138. package/dist/client/assets/MFVI5XKI-DrRaRE9X.js +0 -1
  139. package/dist/client/assets/MWY2J62P-AbEgJnzK.js +0 -12
  140. package/dist/client/assets/MXGNCBL2-DG3CZR8g.js +0 -2
  141. package/dist/client/assets/N6DAJLIZ-BsZQKTyT.js +0 -3
  142. package/dist/client/assets/NU5M23IW-CvtpIovv.js +0 -2
  143. package/dist/client/assets/NV4XNBIS-nS8wAx3h.js +0 -8
  144. package/dist/client/assets/OGLU4SIR-DoTUWhkz.js +0 -2
  145. package/dist/client/assets/OUNS5N76-BwVLonT4.js +0 -8
  146. package/dist/client/assets/PU4ISKXV-BYX7eA_r.js +0 -2
  147. package/dist/client/assets/PUZGS23X-n6IKOr7S.js +0 -1
  148. package/dist/client/assets/Q3IYVLG5-hWt1rVyh.js +0 -4
  149. package/dist/client/assets/QYHQDLKZ-CjGeJM7R.js +0 -4
  150. package/dist/client/assets/RVARI57O-CXmrUIiS.js +0 -1
  151. package/dist/client/assets/RZSVICHU-BiwjruZZ.js +0 -4
  152. package/dist/client/assets/UEXXS2NB-Dkz_tz-N.js +0 -2
  153. package/dist/client/assets/UHTQJXKL-lvl-7QeT.js +0 -5
  154. package/dist/client/assets/URA2L2QI-B8pYKxOk.js +0 -1
  155. package/dist/client/assets/UXCHDUKG-BGy3ZRLM.js +0 -2
  156. package/dist/client/assets/VKNV3BUX-DZnoX4IV.js +0 -5
  157. package/dist/client/assets/VMV7XPHP-6QkisQwm.js +0 -4
  158. package/dist/client/assets/WEVWDWVA-nohBBhTA.js +0 -2
  159. package/dist/client/assets/XRRJ35LF-BE7gSN1k.js +0 -2
  160. package/dist/client/assets/YFKBLVVN-CVTPpei6.js +0 -6
  161. package/dist/client/assets/YHRE5QGZ-Bs7dUKjj.js +0 -4
  162. package/dist/client/assets/ZF3OVT4B-6LaC6iLs.js +0 -3
  163. package/dist/client/assets/index-392ivruk.js +0 -2
  164. package/dist/client/assets/index-CGQuEJ_w.css +0 -1
  165. package/dist/client/assets/jetbrains-mono-cyrillic-400-normal-ugxPyKxw.woff +0 -0
  166. package/dist/client/assets/jetbrains-mono-cyrillic-600-normal-8K4wrrwR.woff +0 -0
  167. package/dist/client/assets/jetbrains-mono-greek-400-normal-B9oWc5Lo.woff +0 -0
  168. package/dist/client/assets/jetbrains-mono-greek-600-normal-mc2nkWzM.woff +0 -0
  169. package/dist/client/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff +0 -0
  170. package/dist/client/assets/jetbrains-mono-latin-600-normal-BfsvjouI.woff +0 -0
  171. package/dist/client/assets/jetbrains-mono-latin-ext-400-normal-fXTG6kC5.woff +0 -0
  172. package/dist/client/assets/jetbrains-mono-latin-ext-600-normal-DObL3zCW.woff +0 -0
  173. package/dist/client/assets/jetbrains-mono-vietnamese-400-normal-CqNFfHCs.woff +0 -0
  174. package/dist/client/assets/jetbrains-mono-vietnamese-600-normal-OWROknRo.woff +0 -0
  175. package/dist/client/assets/katex-C5jXJg4s.js +0 -257
  176. package/dist/client/assets/katex.min-BYZTj3zW.css +0 -1
  177. package/dist/client/assets/katex.min-DXaO1tdm.js +0 -1
  178. package/dist/client/assets/lazy-CKqR1774.js +0 -43
@@ -1,8 +0,0 @@
1
- var je=Object.defineProperty;var Ye=(r,a,o)=>a in r?je(r,a,{enumerable:!0,configurable:!0,writable:!0,value:o}):r[a]=o;var U=(r,a,o)=>Ye(r,typeof a!="symbol"?a+"":a,o);import{a as qe,i as ze}from"./FTXIJQGB-nrHdCfp7.js";import{q as Qe,x as le,e as K,L as _e,i as $e,H as Ze,$ as Je}from"./lazy-CKqR1774.js";import{h as et}from"./7WLXJQOR-CHhKreq0.js";import{x as tt,h as rt,y as st,C as at}from"./ELSXBIJH-DG0MW5dC.js";import{b as Le,d as Ie,m as it,p as lt}from"./FKCDD66M-BPFkyrwI.js";import{A as Ke,H as nt,M as ot,L as dt,O as ct,N as ut}from"./JZWSX6AR-OwVPptYv.js";import{j as ft,P as ht,O as pt,E as gt,R as de,B as Ne}from"./URA2L2QI-B8pYKxOk.js";import{m as bt,c as yt,p as kt,h as De}from"./DKTLEL5E-B7ILCVTH.js";import{L as wt,w as ce,F as mt,D as Re,S as vt,v as Tt}from"./HWDLEDTA-C_JcdBMO.js";import{g as Me,_ as ue,h as Oe,y as fe,a as St,x as W,f as ye,b as he,$ as Et}from"./RZSVICHU-BiwjruZZ.js";function ke(r){return r==="markdown"||r==="string"||r==="text"?r:"markdown"}function Ge(r){return r.startsWith('"')&&r.endsWith('"')?r.substring(1,r.length-1):r}function xt(r,a){let o=0;for(let i=0;i<a.length;i++)a[i]===r&&o++;return o}function At(r){let a=r.trim(),o="arrow_open";switch(a[0]){case"<":o="arrow_point",a=a.slice(1);break;case"x":o="arrow_cross",a=a.slice(1);break;case"o":o="arrow_circle",a=a.slice(1);break}let i="normal";return a.includes("=")&&(i="thick"),a.includes(".")&&(i="dotted"),{type:o,stroke:i}}function Ct(r){let a=r.trim(),o=a.slice(0,-1),i="arrow_open";switch(a.slice(-1)){case"x":i="arrow_cross",a.startsWith("x")&&(i="double_"+i,o=o.slice(1));break;case">":i="arrow_point",a.startsWith("<")&&(i="double_"+i,o=o.slice(1));break;case"o":i="arrow_circle",a.startsWith("o")&&(i="double_"+i,o=o.slice(1));break}let f="normal",m=o.length-1;o.startsWith("=")&&(f="thick"),o.startsWith("~")&&(f="invisible");let s=xt(".",o);return s&&(f="dotted",m=s),{type:i,stroke:f,length:m}}var _t=class{constructor(r={}){U(this,"type","flowchart");U(this,"direction");U(this,"nodes",new Map);U(this,"edges",[]);U(this,"subgraphs",[]);U(this,"classes",new Map);U(this,"tooltips",new Map);U(this,"defaultEdgeStyle");U(this,"defaultInterpolate");U(this,"title");U(this,"accTitle");U(this,"accDescr");U(this,"subgraphLookup",new Map);U(this,"members",new Set);U(this,"edgeById",new Map);U(this,"pairCount",new Map);U(this,"subCount",0);U(this,"options");this.options=r}addVertex(r,a,o,i,f,m,s={},e){var D,C;if(!r||r.trim().length===0)return;let p;if(e!==void 0){let _=e.includes(`
2
- `)?e+`
3
- `:`{
4
- `+e+`
5
- }`,V;try{V=Qe(_)}catch(u){throw new le(`Metadata of "${r}" is not valid YAML. ${u.message}`,"syntax",{type:"flowchart"})}p=V!==null&&typeof V=="object"&&!Array.isArray(V)?V:void 0}let v=this.subgraphLookup.get(r);if(v&&p){v.metadata={...v.metadata,...p};return}let I=this.edgeById.get(r);if(I){(p==null?void 0:p.animate)!==void 0&&(I.animate=p.animate),(p==null?void 0:p.animation)!==void 0&&(I.animation=p.animation),(p==null?void 0:p.curve)!==void 0&&(I.interpolate=p.curve);return}let k=this.nodes.get(r);if(k===void 0&&(a===void 0&&o===void 0&&i!==void 0&&i!==null&&((C=(D=this.options).warn)==null||C.call(D,`Style applied to unknown node "${r}". This may indicate a typo. The node will be created automatically.`)),k={id:r,labelType:"text",styles:[],classes:[]},this.nodes.set(r,k)),a!==void 0?(k.labelType=a.type,k.text=Ge(a.text.trim())):k.text===void 0&&(k.text=r),o!==void 0&&(k.type=o),i!=null)for(let _ of i)k.styles.push(_);if(f!=null)for(let _ of f)k.classes.push(_);if(m!==void 0&&(k.dir=m),k.props===void 0?k.props=s:s!==void 0&&Object.assign(k.props,s),p===void 0)return;if(p.shape){let _=String(p.shape);if(_!==_.toLowerCase()||_.includes("_"))throw new le(`No such shape: ${_}. Shape names should be lowercase.`,"semantic",{type:"flowchart"});if(!qe(_))throw new le(`No such shape: ${_}.`,"semantic",{type:"flowchart"});k.type=_}let M=typeof p.label=="string"?p.label:void 0;p.label&&(k.text=String(p.label),k.labelType=ke(p.labelType)),p.icon&&(k.icon=String(p.icon),!(M!=null&&M.trim())&&k.text===r&&(k.text="")),p.form&&(k.form=String(p.form)),p.pos&&(k.pos=String(p.pos)),p.img&&(k.img=String(p.img),!(M!=null&&M.trim())&&k.text===r&&(k.text="")),p.constraint&&(k.constraint=String(p.constraint)),p.w&&(k.assetWidth=Number(p.w)),p.h&&(k.assetHeight=Number(p.h))}addSingleLink(r,a,o,i){let f={start:r,end:a,type:void 0,text:"",labelType:"text",classes:[],isUserDefinedId:!1,interpolate:this.defaultInterpolate},m=o==null?void 0:o.text;if(m!==void 0&&(f.text=Ge(m.text.trim()),f.labelType=ke(m.type)),o!==void 0&&(f.type=o.type,f.stroke=o.stroke,f.length=o.length>10?10:o.length),i&&!this.edgeById.has(i))f.id=i,f.isUserDefinedId=!0;else{let p=this.pairCount.get(r+"\0"+a)??0;f.id=`L_${r}_${a}_${p===0?0:p+1}`}let s=this.options.maxEdges;if(s!==void 0&&this.edges.length>=s)throw new le(`Edge limit exceeded. ${this.edges.length} edges found, but the limit is ${s}.`,"limit",{type:"flowchart"});this.edges.push(f);let e=r+"\0"+a;this.pairCount.set(e,(this.pairCount.get(e)??0)+1),this.edgeById.has(f.id)||this.edgeById.set(f.id,f)}addLink(r,a,o){let i=typeof(o==null?void 0:o.id)=="string"?o.id.replace("@",""):void 0,f=r[r.length-1],m=a[0];for(let s of r)for(let e of a)this.addSingleLink(s,e,o,s===f&&e===m?i:void 0)}updateLinkInterpolate(r,a){for(let o of r)o==="default"?this.defaultInterpolate=a:this.edgeAt(o).interpolate=a}updateLink(r,a){for(let o of r){if(o==="default"){this.defaultEdgeStyle=a;continue}let i=this.edgeAt(o);i.style=a,a.length>0&&!a.some(f=>f==null?void 0:f.startsWith("fill"))&&a.push("fill:none")}}edgeAt(r){let a=this.edges[Number(r)];if(a===void 0)throw new le(`The index ${r} for linkStyle is out of bounds. Valid indices for linkStyle are between 0 and ${this.edges.length-1}. (Help: Ensure that the index is within the range of existing edges.)`,"semantic",{type:"flowchart"});return a}addClass(r,a){let o=a.join().replace(/\\,/g,"§§§").replace(/,/g,";").replace(/§§§/g,",").split(";");for(let i of r.split(",")){let f=this.classes.get(i);f===void 0&&(f={id:i,styles:[],textStyles:[]},this.classes.set(i,f));for(let m of o)m.includes("color")&&f.textStyles.push(m.replace("fill","bgFill")),f.styles.push(m)}}setDirection(r){let a=r.trim();a.includes("<")&&(a="RL"),a.includes("^")&&(a="BT"),a.includes(">")&&(a="LR"),a.includes("v")&&(a="TB"),a==="TD"&&(a="TB"),this.direction=a}setClass(r,a){var o,i,f;for(let m of r.split(","))(o=this.nodes.get(m))==null||o.classes.push(a),(i=this.edgeById.get(m))==null||i.classes.push(a),(f=this.subgraphLookup.get(m))==null||f.classes.push(a)}setTooltip(r,a){if(a!==void 0)for(let o of r.split(","))this.tooltips.set(o,a)}setLink(r,a,o){let i=a.trim();for(let f of r.split(",")){let m=this.nodes.get(f);m!==void 0&&(m.link=i?Ke(i):void 0,m.linkTarget=o)}this.setClass(r,"clickable")}setClickEvent(r,a,o){this.setClass(r,"clickable")}setAccTitle(r){this.accTitle=r.replace(/^\s+/g,"")}setAccDescription(r){this.accDescr=r.replace(/\n\s+/g,`
6
- `)}addSubGraph(r,a,o){let i=r==null?void 0:r.text.trim(),f=(o==null?void 0:o.text)??"";r!==void 0&&r===o&&/\s/.test(f)&&(i=void 0);let m=new Set,s=[],e;for(let k of a)if(typeof k=="string")k.trim()!==""&&!m.has(k)&&(m.add(k),s.push(k));else if(Array.isArray(k))for(let M of k)M.trim()!==""&&!m.has(M)&&(m.add(M),s.push(M));else e=k.value;e??(e=this.options.inheritDir?this.direction??this.options.direction:void 0),i??(i="subGraph"+this.subCount),f=f||"",this.subCount++;let p={id:i,nodes:s,title:f.trim(),classes:[],dir:e,labelType:ke(o==null?void 0:o.type)},v=this.members;p.nodes=s.filter(k=>!v.has(k)&&k!==i);for(let k of p.nodes)v.add(k);let I=this.subgraphLookup.get(i);if(I)for(let k of p.nodes)I.nodes.push(k);else this.subgraphs.push(p);return this.subgraphLookup.set(i,I??p),i}exists(r,a){for(let o of r)if(o.nodes.includes(a))return!0;return!1}makeUniq(r,a){let o=new Set;for(let i of a)for(let f of i.nodes)o.add(f);return{nodes:r.nodes.filter(i=>!o.has(i))}}destructLink(r,a){let o=Ct(r);if(!a)return o;let i=At(a);if(i.stroke!==o.stroke)return{type:"INVALID",stroke:"INVALID"};if(i.type==="arrow_open")i.type=o.type;else{if(i.type!==o.type)return{type:"INVALID",stroke:"INVALID"};i.type="double_"+i.type}return i.type==="double_arrow"&&(i.type="double_arrow_point"),i.length=o.length,i}subgraph(r){return this.subgraphLookup.get(r)}},Ve=["$end","INVALID","acc_title","acc_title_value","acc_descr","acc_descr_value","acc_descr_multiline_value","SHAPE_DATA","CALLBACKNAME","CALLBACKARGS","MD_STR","STR","STYLE","DEFAULT","LINKSTYLE","INTERPOLATE","CLASSDEF","CLASS","HREF","CLICK","GRAPH","subgraph","end","LINK_TARGET","NODIR","DIR","direction_tb","direction_bt","direction_rl","direction_lr","direction_td","LINK_ID","NUM","BRKT","STYLE_SEPARATOR","COLON","AMP","SEMI","COMMA","MULT","LINK","START_LINK","EDGE_TEXT","-)","TEXT","(-","STADIUMEND","STADIUMSTART","SUBROUTINEEND","SUBROUTINESTART","VERTEX_WITH_PROPS_START","TAGEND","CYLINDEREND","CYLINDERSTART","DOUBLECIRCLEEND","DOUBLECIRCLESTART","TRAPEND","INVTRAPEND","TRAPSTART","INVTRAPSTART","TAGSTART","UP","SEP","DOWN","NODE_STRING","MINUS","UNICODE_TEXT","PIPE","PE","PS","SQE","SQS","DIAMOND_STOP","DIAMOND_START","NEWLINE","SPACE","EOF"],Xe=new Uint8Array(128);for(let r of"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!\"#$%&'*+.`?\\_/")Xe[r.charCodeAt(0)]=1;var $t=/accTitle\s*:\s*/y,Lt=/accDescr\s*:\s*/y,It=/accDescr\s*\{\s*/y,Nt=/call\s+/y,Dt=/click\s+/y,Rt=/(?:\r?\n)*\s*\n/y,Mt=/\s*(?:LR|RL|TB|BT|TD|BR)\b/y,Ot=/\s*[<>^]/y,Gt=/\s*v\b/y,Vt=[/.*direction\s+TB[^\n]*/y,/.*direction\s+BT[^\n]*/y,/.*direction\s+RL[^\n]*/y,/.*direction\s+LR[^\n]*/y,/.*direction\s+TD[^\n]*/y],we=/[\n\r\u2028\u2029]/g,Pe=/\s*[xo<]?--+[-xo>]\s*/y,Pt=/\s*[xo<]?--\s*/y,We=/\s*[xo<]?==+[=xo>]\s*/y,Wt=/\s*[xo<]?==\s*/y,me=/\s*[xo<]?-?\.+-[xo>]?\s*/y,Bt=/\s*[xo<]?-\.\s*/y,Be=/\s*~~~+\s*/y,Ut=/(?:\r?\n)+/y,Ft=/[^\S\n\r]+/y,Ht=/\(\s*\)/y,Kt=/\n\s*/g;function Xt(r){let a=r.length,o=[],i=[],f=[],m=[],s=0,e=0,p=!0,v=r.indexOf("direction"),I=r.indexOf("@"),k=-1,M=0,D=0,C=-1,_=-1,V=-1,u=(t,d,l)=>{o.push(t),i.push(r.slice(d,l)),f.push(d),e=l},w=t=>{m.push(s),s=t},L=()=>{m.length>0&&(s=m.pop())},$=(t,d)=>(t.lastIndex=d,t.test(r)?t.lastIndex:-1),c=t=>r.startsWith(t,e)&&!$e(r.charCodeAt(e+t.length)),b=t=>{let d=t;if(t>=_&&t<=V)d=V;else if(K(r.charCodeAt(t))){for(;d<a&&K(r.charCodeAt(d));)d++;_=t,V=d}let l=r.charCodeAt(d);return l===120||l===111||l===60?r.charCodeAt(d+1):l},E=t=>{let d=t;if(t>=_&&t<=V)d=V;else if(K(r.charCodeAt(t))){for(;d<a&&K(r.charCodeAt(d));)d++;_=t,V=d}return r.charCodeAt(d)===126},T=()=>{r.charCodeAt(e+1)===96?(w(2),e+=2):(w(1),e++)},R=()=>{if(!E(e))return!1;let t=$(Be,e);return t<0?!1:(u(40,e,t),!0)},O=t=>{let d=r.charCodeAt(e+1);return t===40?(d===45?(w(8),u(45,e,e+2)):d===91?(w(7),u(47,e,e+2)):d===40&&r.charCodeAt(e+2)===40?(w(7),u(55,e,e+3)):(w(7),u(69,e,e+1)),!0):t===91?(d===91?(w(7),u(49,e,e+2)):d===40?(w(7),u(53,e,e+2)):d===47?(w(9),u(58,e,e+2)):d===92?(w(9),u(59,e,e+2)):(w(7),u(71,e,e+1)),!0):t===124?(w(7),u(67,e,e+1),!0):t===123?(w(7),u(73,e,e+1),!0):!1},Q=t=>{p&&(p=!1,w(6)),u(20,e,e+t)},j=()=>{let t=e;for(;t<a;){let d=r.charCodeAt(t);if(d<128&&Xe[d]===1)t++;else if(d===45&&t+1<a){let l=r.charCodeAt(t+1);if(l===62||l===45||l===46)break;t++}else break}return t===e?!1:(u(64,e,t),!0)},te=t=>{let d=b(e),l;if(d===45){if((l=$(Pe,e))>=0)return u(40,e,l),!0;if((l=$(Pt,e))>=0)return w(10),u(41,e,l),!0;if((l=$(me,e))>=0)return u(40,e,l),!0;if((l=$(Bt,e))>=0)return w(12),u(41,e,l),!0}else if(d===61){if((l=$(We,e))>=0)return u(40,e,l),!0;if((l=$(Wt,e))>=0)return w(11),u(41,e,l),!0}else if(d===46&&(l=$(me,e))>=0)return u(40,e,l),!0;return t!==45&&t!==61&&t!==46&&R()},ie=t=>{let d;switch(t){case 97:if(r.startsWith("acc",e)){if((d=$($t,e))>=0)return w(3),u(2,e,d),!0;if((d=$(Lt,e))>=0)return w(4),u(4,e,d),!0;if((d=$(It,e))>=0)return w(5),e=d,!0}break;case 64:if(r.charCodeAt(e+1)===123)return w(16),o.push(7),i.push(""),f.push(e),e+=2,!0;break;case 99:if((d=$(Nt,e))>=0)return w(14),e=d,!0;if(c("classDef"))return u(16,e,e+8),!0;if(c("class"))return u(17,e,e+5),!0;if((d=$(Dt,e))>=0)return w(13),e=d,!0;break;case 34:return T(),!0;case 115:if(c("style"))return u(12,e,e+5),!0;if(c("swimlane-beta"))return Q(13),!0;if(c("subgraph"))return u(21,e,e+8),!0;break;case 100:if(c("default"))return u(13,e,e+7),!0;break;case 108:if(c("linkStyle"))return u(14,e,e+9),!0;break;case 105:if(c("interpolate"))return u(15,e,e+11),!0;break;case 104:if(r.startsWith("href",e)&&K(r.charCodeAt(e+4)))return u(18,e,e+5),!0;break;case 102:if(c("flowchart-elk"))return Q(13),!0;if(c("flowchart"))return Q(9),!0;break;case 103:if(c("graph"))return Q(5),!0;break;case 101:if(c("end")){for(d=e+3;d<a&&K(r.charCodeAt(d));)d++;return u(22,e,d),!0}break;case 95:if(c("_self"))return u(23,e,e+5),!0;if(c("_blank"))return u(23,e,e+6),!0;if(c("_parent"))return u(23,e,e+7),!0;if(c("_top"))return u(23,e,e+4),!0;break}if(v!==-1&&e>=M&&(v<e&&(v=r.indexOf("direction",e)),v!==-1&&(k<e&&(we.lastIndex=e,k=we.test(r)?we.lastIndex-1:a),v<k))){for(let l=0;l<5;l++)if((d=$(Vt[l],e))>=0)return u(26+l,e,d),!0;M=k}if(I!==-1&&t!==34&&!K(t)){if(e>=D){I<e&&(I=r.indexOf("@",e));let l=e;for(;l<a;){let g=r.charCodeAt(l);if(g===34||K(g))break;l++}if(D=l,C=-1,I!==-1&&I<l)for(let g=Math.min(l,a-1)-1;g>=I;g--){if(r.charCodeAt(g)!==64)continue;let x=r.charCodeAt(g+1);if(x!==123&&x!==34){C=g;break}}}if(C>e)return u(31,e,C+1),!0}if(t>=48&&t<=57){let l=e+1;for(;l<a;){let g=r.charCodeAt(l);if(g<48||g>57)break;l++}return u(32,e,l),!0}switch(t){case 35:return u(33,e,e+1),!0;case 58:return r.charCodeAt(e+1)===58&&r.charCodeAt(e+2)===58?u(34,e,e+3):u(35,e,e+1),!0;case 38:return u(36,e,e+1),!0;case 59:return u(37,e,e+1),!0;case 44:return u(38,e,e+1),!0;case 42:return u(39,e,e+1),!0;case 120:case 111:return te(t)||j();case 60:return te(t)||u(60,e,e+1),!0;case 45:return te(t)||j()||u(65,e,e+1),!0;case 61:return te(t);case 46:return te(t)||j();case 126:return R();case 40:return O(t);case 91:return r.charCodeAt(e+1)===124?(u(50,e,e+2),!0):O(t);case 124:case 123:return O(t);case 62:return w(7),u(51,e,e+1),!0;case 94:return u(61,e,e+1),!0;case 92:return r.charCodeAt(e+1)===124?(u(62,e,e+2),!0):j();case 118:return $e(r.charCodeAt(e+1))?j():(u(63,e,e+1),!0)}return K(t)?te(t)?!0:(d=$(Ut,e))>=0?(u(74,e,d),!0):(d=$(Ft,e))>=0?(u(75,e,d),!0):!1:t<128?j():et(t)?(u(66,e,e+1),!0):!1},n=(t,d,l,g)=>{if(t===34)return T(),!0;let x=b(e);if(x===l||x===g){let q=$(d,e);if(q>=0)return L(),u(40,e,q),!0}if(t===l&&(l!==45||r.charCodeAt(e+1)===45))return!1;let J=e+1;for(;J<a;){let q=r.charCodeAt(J);if(q===34)break;if(q===l){if(l!==45||r.charCodeAt(J+1)===45)break}else if(q===120||q===111||q===60||q===g||K(q)){let se=b(J);if((se===l||se===g)&&$(d,J)>=0)break}J++}return u(42,e,J),!0};e:for(;;){if(e>=a){let l=-1;switch(s){case 0:l=76;break;case 3:l=3;break;case 4:l=5;break;case 5:l=6;break;case 13:l=19;break;case 14:l=8;break;case 15:l=9;break}l!==-1&&u(l,a,a);break}let t=r.charCodeAt(e),d=!0;switch(s){case 0:d=ie(t);break;case 1:if(t===34)r.charCodeAt(e+1)===96?(w(2),e+=2):(L(),e++);else{let l=r.indexOf('"',e);u(11,e,l===-1?a:l)}break;case 2:if(t===96)r.charCodeAt(e+1)===34?(L(),e+=2):d=!1;else if(t===34)T();else{let l=e+1;for(;l<a;){let g=r.charCodeAt(l);if(g===96||g===34)break;l++}u(10,e,l)}break;case 3:case 4:{let l=r.indexOf(`
7
- `,e);l===-1&&(l=a);let g=s===3?3:5;L(),u(g,e,l);break}case 5:if(t===125)L(),e++;else{let l=r.indexOf("}",e);l===-1&&(l=a),u(6,e,l)}break;case 6:{let l;t===34?T():(l=$(Rt,e))>=0?(L(),u(24,e,l)):(l=$(Mt,e))>=0||(l=$(Ot,e))>=0||(l=$(Gt,e))>=0?(L(),u(25,e,l)):d=R()||O(t);break}case 7:{let l=r.charCodeAt(e+1);switch(t){case 34:T();break;case 40:case 91:case 123:O(t);break;case 93:L(),l===41?u(46,e,e+2):l===93?u(48,e,e+2):u(70,e,e+1);break;case 41:L(),l===93?u(52,e,e+2):l===41&&r.charCodeAt(e+2)===41?u(54,e,e+3):u(68,e,e+1);break;case 124:L(),u(67,e,e+1);break;case 125:L(),u(72,e,e+1);break;default:{if((t===126||K(t))&&R())break;let g=e+1;for(;g<a;){let x=r.charCodeAt(g);if(x===91||x===93||x===40||x===41||x===123||x===125||x===124||x===34)break;g++}u(44,e,g)}}break}case 8:{let l=r.charCodeAt(e+1);if(t===34)T();else{if((t===126||K(t))&&R())break;if((t===45||t===47||t===41)&&l===41)L(),u(43,e,e+2);else if(t===40||t===91||t===123)O(t);else if(t===41||t===93||t===125)d=!1;else{let g=e+1;for(;g<a;){let x=r.charCodeAt(g);if(x===34||x===40||x===41||x===91||x===93||x===123||x===125||(x===45||x===47)&&r.charCodeAt(g+1)===41||(x===126||K(x))&&E(g)&&$(Be,g)>=0)break;g++}u(44,e,g)}}break}case 9:{let l=r.charCodeAt(e+1);if(t===34){T();break}if((t===126||K(t))&&R())break;switch(t){case 40:l===45||l===91||l===40&&r.charCodeAt(e+2)===40?O(t):l===93?(L(),u(56,e,e+2)):O(t);break;case 91:case 123:O(t);break;case 92:l===93?(L(),u(56,e,e+2)):u(44,e,e+1);break;case 47:l===93?(L(),u(57,e,e+2)):u(44,e,e+1);break;case 93:case 41:l===93?(L(),u(56,e,e+2)):d=!1;break;case 125:d=!1;break;default:{if((t===63||t===61)&&l===93){L(),u(56,e,e+2);break}let g=e+1;for(;g<a;){let x=r.charCodeAt(g);if(x===92||x===91||x===93||x===40||x===41||x===123||x===125||x===47)break;g++}u(44,e,g)}}break}case 10:d=n(t,Pe,45,-1);break;case 11:d=n(t,We,61,-1);break;case 12:d=n(t,me,46,45);break;case 13:if(t===34)T();else if(K(t))L(),e++;else{let l=e+1;for(;l<a&&!K(r.charCodeAt(l));)l++;u(19,e,l)}break;case 14:if(t===40){let l=$(Ht,e);L(),l>=0?e=l:(w(15),e++)}else{let l=r.indexOf("(",e);l===-1&&(l=a),u(8,e,l)}break;case 15:if(t===41)L(),e++;else{let l=r.indexOf(")",e);l===-1&&(l=a),u(9,e,l)}break;case 16:if(t===34)w(17),u(7,e,e+1);else if(t===125)L(),e++;else if(t===94)d=!1;else{let l=e+1;for(;l<a;){let g=r.charCodeAt(l);if(g===125||g===94||g===34)break;l++}u(7,e,l)}break;case 17:if(t===34)L(),u(7,e,e+1);else{let l=r.indexOf('"',e);l===-1&&(l=a),o.push(7),i.push(r.slice(e,l).replace(Kt,"<br/>")),f.push(e),e=l}break}if(!d)return o.push(1),i.push(""),f.push(e),{types:o,texts:i,starts:f};continue e}return o.push(0),i.push(""),f.push(a),{types:o,texts:i,starts:f}}var pe=new Uint8Array(77);for(let r of[32,64,63,65,13,38,35,36,33,39,66])pe[r]=1;var Ee=new Uint8Array(77);for(let r of[32,66,64,25,63,65,38,35,36,33,39])Ee[r]=1;var xe=new Uint8Array(77);for(let r of[32,64,75,65,36,66,35,39,33,12,14,16,17,19,20,25,21,22,63,61,41])xe[r]=1;var Ae=new Uint8Array(77);for(let r of[32,64,35,75,33,12])Ae[r]=1;var Ue="'UNICODE_TEXT', 'TEXT', 'TAGSTART'",ne=[],jt=/}\s*\n/g;function Yt(r,a){let o=r.includes("}")?r.replace(jt,`}
8
- `):r,{types:i,texts:f,starts:m}=Xt(o),s=0,e,p=n=>{let t=i[s];throw t===1?_e("flowchart",o,m[s],"",!0):_e("flowchart",o,m[s],`Expecting ${n}, got '${Ve[t]}'`)},v=(n,t="")=>(i[s]!==n&&p(`'${Ve[n]}'${t?", "+t:""}`),f[s++]),I=()=>{let n=i[s];n!==74&&n!==37&&n!==76&&p("'SEMI', 'NEWLINE', 'EOF'"),s++},k=()=>{pe[i[s]]===0&&p("'NODE_STRING'");let n=f[s++];for(;pe[i[s]]===1;)n+=f[s++];return n},M=()=>{Ee[i[s]]===0&&p("'NODE_STRING'");let n=f[s++];for(;Ee[i[s]]===1;)n+=f[s++];return n},D=()=>{let n=i[s],t;if(n===11)t="string";else if(n===10)t="markdown";else if(n===44||n===60||n===51||n===66)t="text";else return p(`${Ue}, 'TAGEND', 'STR', 'MD_STR'`);let d=f[s++];for(;;){let l=i[s];if(l!==44&&l!==60&&l!==51&&l!==66)break;d+=f[s++]}return{text:d,type:t}},C=n=>{v(n,Ue)},_=()=>{let n=i[s],t;if(n===11)t="string";else if(n===10)t="markdown";else if(n===42||n===66)t="text";else return p("'EDGE_TEXT', 'STR', 'MD_STR'");let d=f[s++];for(;i[s]===42||i[s]===66;)d+=f[s++];return{text:d,type:t}},V=()=>{let n=i[s],t;if(n===11)t="text";else if(n===10)t="markdown";else if(xe[n]===1)t="text";else return p("'NODE_STRING', 'STR', 'MD_STR'");let d=f[s++];for(;xe[i[s]]===1;)d+=f[s++];return{text:d,type:t}},u=()=>{let n=f[s++];for(;i[s]===7;)n+=f[s++];return n},w=()=>{let n=k(),t;switch(i[s]){case 71:s++,t=D(),C(70),a.addVertex(n,t,"square");break;case 55:s++,t=D(),C(54),a.addVertex(n,t,"doublecircle");break;case 69:s++,i[s]===69?(s++,t=D(),C(68),v(68),a.addVertex(n,t,"circle")):(t=D(),C(68),a.addVertex(n,t,"round"));break;case 45:s++,t=D(),C(43),a.addVertex(n,t,"ellipse");break;case 47:s++,t=D(),C(46),a.addVertex(n,t,"stadium");break;case 49:s++,t=D(),C(48),a.addVertex(n,t,"subroutine");break;case 50:{s++;let d=v(64);v(35);let l=v(64);v(67),t=D(),C(70),a.addVertex(n,t,"rect",void 0,void 0,void 0,{[d]:l});break}case 53:s++,t=D(),C(52),a.addVertex(n,t,"cylinder");break;case 73:s++,i[s]===73?(s++,t=D(),C(72),v(72),a.addVertex(n,t,"hexagon")):(t=D(),C(72),a.addVertex(n,t,"diamond"));break;case 51:s++,t=D(),C(70),a.addVertex(n,t,"odd");break;case 58:s++,t=D(),i[s]===57?(s++,a.addVertex(n,t,"lean_right")):(C(56),a.addVertex(n,t,"trapezoid"));break;case 59:s++,t=D(),i[s]===56?(s++,a.addVertex(n,t,"lean_left")):(C(57),a.addVertex(n,t,"inv_trapezoid"));break;default:a.addVertex(n)}return n},L=()=>{let n=w();return i[s]===34&&(s++,a.setClass(n,k())),n},$=()=>{let n=[L()];for(e=void 0;;){let t=i[s]===7?u():void 0;if(i[s]!==75)return e=t,n;do s++;while(i[s]===75);if(i[s]!==36)return t!==void 0&&p("'AMP'"),n;s++,i[s]!==75&&p("'SPACE'");do s++;while(i[s]===75);let d=L();t!==void 0&&a.addVertex(n[n.length-1],void 0,void 0,void 0,void 0,void 0,void 0,t),n.push(d)}},c=()=>{let n;if(i[s]===31&&(n=f[s++]),i[s]===40){let t=a.destructLink(f[s++]);return n!==void 0&&(t.id=n),i[s]===67&&(s++,t.text=D(),C(67),i[s]===75&&s++),t}if(i[s]===41){let t=f[s++],d=_(),l=v(40,"'EDGE_TEXT'"),g=a.destructLink(l,t);return g.text=d,n!==void 0&&(g.id=n),g}return p("'LINK', 'START_LINK'")},b=()=>{let n=$();e!==void 0&&a.addVertex(n[n.length-1],void 0,void 0,void 0,void 0,void 0,void 0,e);let t=n;for(;;){let d=i[s];if(d!==40&&d!==41&&d!==31)return t;let l=c(),g=$();e!==void 0&&a.addVertex(g[g.length-1],void 0,void 0,void 0,void 0,void 0,void 0,e),a.addLink(n,g,l),t=g.concat(t),n=g}},E=()=>{Ae[i[s]]===0&&p("'NODE_STRING', 'NUM', 'COLON', 'BRKT'");let n=f[s++];for(;Ae[i[s]]===1;)n+=f[s++];return n},T=()=>{let n=[E()];for(;i[s]===38;)s++,n.push(E());return n},R=()=>{s++,v(75);let n;if(i[s]===13)n=[f[s++]];else for(n=[v(32,"'DEFAULT'")];i[s]===38;)s++,n.push(v(32));if(v(75),i[s]!==15){a.updateLink(n,T());return}s++,v(75);let t=M();if(i[s]===75){s++;let d=T();a.updateLinkInterpolate(n,t),a.updateLink(n,d)}else a.updateLinkInterpolate(n,t)},O=(n,t)=>{if(i[s]!==75){a.setLink(n,t);return}if(s++,i[s]===23){a.setLink(n,t,f[s++]);return}let d=v(11,"'LINK_TARGET'");i[s]===75?(s++,a.setLink(n,t,v(23))):a.setLink(n,t),a.setTooltip(n,d)},Q=()=>{let n=f[s++];switch(i[s]){case 8:{let t=f[s++],d=i[s]===9,l=d?f[s++]:void 0,g;i[s]===75&&(s++,g=v(11)),d?a.setClickEvent(n,t,l):a.setClickEvent(n,t),g!==void 0&&a.setTooltip(n,g);return}case 18:s++,O(n,v(11));return;case 11:O(n,f[s++]);return;default:{let t=M();if(i[s]===75){s++;let d=v(11);a.setClickEvent(n,t),a.setTooltip(n,d)}else a.setClickEvent(n,t)}}},j=()=>{s++;let n=i[s];if(n===74||n===37||n===76)return s++,{id:void 0,title:void 0,list:[],collect:!1};v(75,"'SEMI', 'NEWLINE', 'EOF'");let t=V(),d=t;return i[s]===71&&(s++,d=D(),C(70)),n=i[s],n!==74&&n!==37&&n!==76&&p("'SEMI', 'NEWLINE', 'EOF', 'SQS'"),s++,{id:t,title:d,list:[],collect:!1}},te=()=>{let n=i[s];switch(n){case 12:{s++,v(75);let t=k();return v(75),a.addVertex(t,void 0,void 0,T()),I(),ne}case 14:return R(),I(),ne;case 16:{s++,v(75);let t=k();return v(75),a.addClass(t,T()),I(),ne}case 17:{s++,v(75);let t=k();return v(75),a.setClass(t,k()),I(),ne}case 19:return Q(),I(),ne;case 26:case 27:case 28:case 29:case 30:return s++,{stmt:"dir",value:qt[n-26]};case 2:{s++;let t=v(3).trim();return a.setAccTitle(t),t}case 4:{s++;let t=v(5).trim();return a.setAccDescription(t),t}case 6:{let t=f[s++].trim();return a.setAccDescription(t),t}default:{pe[n]===0&&p(Fe);let t=b();return I(),t}}},ie=()=>{let n=[],t=[],d=!1;for(;;){let l=i[s];if(l===0)break;if(l===22){let g=n.pop();if(g===void 0)break;s++;let x=a.addSubGraph(g.id,t,g.title);t=g.list,d=g.collect,d&&t.push(x)}else if(l===37||l===74||l===75||l===76)d&&t.push(f[s]),s++;else if(l===21){let g=j();g.list=t,g.collect=d,n.push(g),t=[],d=!0}else{let g=te();d&&(!Array.isArray(g)||g.length>0)&&t.push(g)}}n.length>0&&p("'end'")};for(;i[s]===75||i[s]===74;)s++;if(v(20,"'SPACE', 'NEWLINE'"),i[s]===24)s++,a.setDirection("TB");else{let n=v(25,"'NODIR'"),t=i[s];if(t===75){do s++;while(i[s]===75);t=i[s],t!==74&&p("'NEWLINE', 'SPACE'")}else t!==37&&t!==74&&p("'SEMI', 'NEWLINE', 'SPACE'");s++,a.setDirection(n)}ie(),i[s]!==0&&p(Fe)}var qt=["TB","BT","RL","LR","TD"],Fe="'SEMI', 'NEWLINE', 'SPACE', 'EOF', 'subgraph', 'acc_title', 'acc_descr', 'acc_descr_multiline_value', 'STYLE', 'LINKSTYLE', 'CLASSDEF', 'CLASS', 'CLICK', 'NODE_STRING'";function zt(r){if(r.img)return"imageSquare";if(r.icon)return r.form==="circle"?"iconCircle":r.form==="square"?"iconSquare":r.form==="rounded"?"iconRounded":"icon";switch(r.type){case"square":case void 0:return"squareRect";case"round":return"roundedRect";default:return r.type}}function Qt(r){switch(r){case"arrow_point":case"arrow_circle":case"arrow_cross":return["none",r];case"double_arrow_point":case"double_arrow_circle":case"double_arrow_cross":{let a=r.replace("double_","");return[a,a]}}return["none","arrow_point"]}function Zt(r,a){var L,$;let o=[],i=[],f=r.subgraphs,m=c=>{let b=[];for(let E of c){let T=r.classes.get(E);T!=null&&T.styles&&(b=[...b,...T.styles].map(R=>R.trim())),T!=null&&T.textStyles&&(b=[...b,...T.textStyles].map(R=>R.trim()))}return b},s=new Map;for(let c of f)for(let b of c.nodes)r.subgraph(b)&&s.set(b,c.id);let e=new Map,p=new Map;for(let c of f){let b=s.get(c.id);if(b===void 0)continue;let E=p.get(b);E?E.push(c.id):p.set(b,[c.id])}let v=0;for(let c of f){if(s.has(c.id))continue;let b=[c.id];for(;b.length>0;){let E=b.pop();if(e.has(E))continue;e.set(E,v++);let T=p.get(E);if(T)for(let R=T.length-1;R>=0;R--)b.push(T[R])}}let I=c=>{var b,E;return((E=(b=r.subgraph(c))==null?void 0:b.metadata)==null?void 0:E.view)==="collapsed"},k=!1;for(let c of f)((L=c.metadata)==null?void 0:L.view)==="collapsed"&&(k=!0);let M=new Map,D=c=>{let b=[],E=new Set,T=c;for(;T!==void 0&&!M.has(T)&&!E.has(T);)E.add(T),b.push(T),T=s.get(T);let R=T!==void 0?M.get(T):void 0;for(let O=b.length-1;O>=0;O--)R===void 0&&I(b[O])&&(R=b[O]),M.set(b[O],R);return R},C=new Set,_=new Map;for(let c of k?f:[]){let b=D(c.id);if(b!==void 0){c.id!==b&&(C.add(c.id),_.set(c.id,b));for(let E of c.nodes)E!==b&&(C.add(E),_.set(E,b))}}let V=new Map,u=new Set;for(let c=f.length-1;c>=0;c--){let b=f[c];if(!C.has(b.id)){b.nodes.length>0&&u.add(b.id);for(let E of b.nodes)V.set(E,b.id)}}let w=new Map;for(let c=f.length-1;c>=0;c--){let b=f[c];if(C.has(b.id))continue;let E=(($=b.metadata)==null?void 0:$.view)==="collapsed",T={id:b.id,label:b.title,labelType:b.labelType,parentId:V.get(b.id),cssStyles:[],cssCompiledStyles:m(b.classes),cssClasses:b.classes.join(" "),shape:E?"collapsedGroup":"rect",dir:b.dir,isGroup:!E,colorIndex:e.get(b.id)};E||(T.metadata=b.metadata),o.push(T),w.set(b.id,T)}for(let c of r.nodes.values()){if(C.has(c.id))continue;let b=w.get(c.id);if(b){b.cssStyles=c.styles,b.cssCompiledStyles=m(c.classes),b.cssClasses=c.classes.join(" ");continue}let E=u.has(c.id),T={id:c.id,label:c.text,labelType:c.labelType,parentId:V.get(c.id),cssStyles:c.styles,cssCompiledStyles:m(["default","node",...c.classes]),cssClasses:"default "+c.classes.join(" "),dir:c.dir,link:c.link,linkTarget:c.linkTarget,tooltip:r.tooltips.get(c.id),icon:c.icon,pos:c.pos,img:c.img,assetWidth:c.assetWidth,assetHeight:c.assetHeight,constraint:c.constraint,isGroup:E,shape:E?"rect":zt(c)};o.push(T),w.set(c.id,T)}return r.edges.forEach((c,b)=>{let E=_.get(c.start)??c.start,T=_.get(c.end)??c.end;if(E===T&&(_.has(c.start)||_.has(c.end)))return;let[R,O]=Qt(c.type),Q=[...r.defaultEdgeStyle??[]];c.style&&Q.push(...c.style);let j=c.stroke==="invisible"||c.type==="arrow_open";i.push({id:c.id||`L_${E}_${T}_${b}`,isUserDefinedId:c.isUserDefinedId,start:E,end:T,type:c.type??"normal",label:c.text,labelType:c.labelType,thickness:c.stroke,pattern:c.stroke,minlen:c.length,classes:c.stroke==="invisible"?"":"edge-thickness-normal edge-pattern-solid flowchart-link",arrowTypeStart:j?"none":R,arrowTypeEnd:j?"none":O,cssCompiledStyles:m(c.classes),style:Q,animate:c.animate,animation:c.animation,curve:c.interpolate||r.defaultInterpolate||a})}),{nodes:o,edges:i}}var Jt=40,er=16,tr=48,He=20,ve=26,Te=' fill="var(--_s)" stroke="var(--_b)"',rr=' stroke="var(--_b)"';function Se(r,a,o){let i=r[a];return typeof i=="number"&&i>0?Math.min(i,2e3):o}function oe(r,a){return r!==void 0&&r>0&&r<=4e3?r:a}function sr(r,a,o,i){let f=m=>kt(o,s=>ar(r,a,o,i,m,s));return bt(r.direction)?yt(o,f):f(!1)}function ar(r,a,o,i,f,m){let s=m?12:He,e=i?a[i.type]:void 0,p=typeof e=="object"&&e!==null&&!Array.isArray(e)?e:a.flowchart??{},v=Zt(r,typeof p.curve=="string"?p.curve:void 0);i==null||i.prepare(v);let I=o.fontSize??16,k=Math.round(I*.875),M=o.measurer??Ze(o.fontFamily),D=Math.min(Se(p,"wrappingWidth",200),i&&m?100:1/0),C=o.padding??8,_=o.icons,V=new Map,u=[],w=[];v.nodes.forEach((y,h)=>V.set(y.id,h));for(let y of v.nodes){let h=Me(y.cssStyles.length>0?y.cssCompiledStyles.concat(y.cssStyles):y.cssCompiledStyles),A=(h.bold?1:0)|(h.italic?2:0),S=y.labelType==="markdown",H=h.fontSize??I,Z,P;if(y.isGroup){let G=ue(y.label,S,M,H,i&&m?Math.max(80,De(o)/2):4e3,A);Z={node:y,style:h,label:G,shape:"group",w:0,h:0,dy:0,loops:0},P=Ie(0,0),P.isGroup=!0,P.dir=y.dir?Le(y.dir):void 0,P.padX=s,P.padTop=G.height>0?G.height+16:He,P.padBottom=s,P.minW=G.width+2*s-12}else{let G=ze(y.shape),ae=y.img||y.icon||ft(G)?y.label:void 0,F=ue(ae,S,M,H,D,A),ee,B,X=0;if(y.img||y.icon){let N=y.img?80:48,Y=oe(y.assetWidth,N),z=oe(y.assetHeight,N);ee=Math.max(Y,F.width+8),B=z+(F.height>0?F.height+6:0),X=y.pos==="t"?-z/2:z/2,F.height===0&&(X=0)}else{let N=ht(G,F.width,F.height);ee=N.w,B=N.h,X=N.dy}Z={node:y,style:h,label:F,shape:G,w:ee,h:B,dy:X,loops:0},P=Ie(ee,B)}P.seq=u.length,u.push(Z),w.push(P)}v.nodes.forEach((y,h)=>{w[h].parent=y.parentId!==void 0?V.get(y.parentId)??-1:-1});let L=f?"TB":Le(r.direction),$=y=>{let h;for(let A=w[y].parent,S=0;A>=0&&h===void 0&&S<1e4;A=w[A].parent,S++)h=w[A].dir;return h??(h=L),h==="LR"||h==="RL"};u.forEach((y,h)=>{y.node.isGroup?w[h].span=1/0:!y.node.img&&!y.node.icon&&(w[h].span=pt(y.shape,y.w,y.h,$(h)))});let c=[],b=[],E=[];for(let y of v.edges){let h=V.get(y.start),A=V.get(y.end);if(h===void 0||A===void 0)continue;let S=ue(y.label,y.labelType==="markdown",M,k,D);h===A&&(u[h].loops++,$(h)?w[h].h+=2*(ve+(S.height>0?S.height+8:0)):w[h].w+=2*(ve+(S.width>0?S.width+12:0))),E.push(y),b.push(S),c.push({src:h,dst:A,minlen:y.minlen??1,labelW:S.width>0?S.width+12:0,labelH:S.height>0?S.height+4:0,route:[],labelX:0,labelY:0})}let T={nodeSep:Se(p,"nodeSpacing",Jt)*(m?.5:1),edgeSep:er,rankSep:Se(p,"rankSpacing",tr)*(m?.75:1),portSep:20,tracks:typeof p.curve=="string"&&/^step/.test(p.curve),straight:p.curve==="linear",headRoom:ce("arrow_point")},R=i?i.layout(w,c,L,T,m):it(w,c,L,T),O=ue(r.title,!1,M,I,m?De(o):4e3,1),Q=O.height>0?O.height+12:0,j=Math.max(R.width,O.width),te=C+(j-R.width)/2,ie=C+Q;lt(w,c,te,ie);let n=Math.ceil(j+2*C),t=Math.ceil(R.height+Q+2*C),d=[],l=new Map,g=!1;for(let y of w)y.isGroup&&(g=!0);if(g)for(let y of c)tt(l,y.route);let x="",J="",q="";for(let y=0;y<u.length;y++){let h=u[y],A=w[y],S=h.node,H=A.x,Z=A.y,P=Oe(S.cssClasses.replace(/^default\s?/,"")),G=fe(S.id);if(A.isGroup&&(i!=null&&i.drawGroup)&&A.parent<0){x+=i.drawGroup(A,h.label,h.style,P,G,L,_);continue}if(A.isGroup){let N=rt(A,h.label.width,l,s),Y=Z-A.h/2+8+h.label.height/2,z=` class="pele-cluster-label" fill="var(--_m)"${h.style.text}`,re=st(A,h.label.width,N,l);re&&(J+=at(h.label,N,Y,z,G,w,y,_)),x+=`<g class="pele-cluster${P}" data-id="${G}"><rect x="${W(H-A.w/2)}" y="${W(Z-A.h/2)}" width="${W(A.w)}" height="${W(A.h)}" rx="${St}" fill="var(--_a)" fill-opacity="0.5" stroke="var(--_b)"${h.style.shape}/>`+(re?"":ye(h.label,N,Y,z,_))+"</g>";continue}let ae=h.w,F=h.h,ee;if(S.img){let N=oe(S.assetWidth,80),Y=oe(S.assetHeight,80),z=h.label.height>0?S.pos==="t"?F/2-Y:-F/2:-Y/2,re=nt(Ke(S.img),o);ee=re===void 0?"":`<image href="${he(re)}" x="${W(-N/2)}" y="${W(z)}" width="${W(N)}" height="${W(Y)}" preserveAspectRatio="${S.constraint==="on"?"xMidYMid meet":"none"}"/>`}else if(S.icon){let N=oe(S.assetHeight,48),Y=h.label.height>0?S.pos==="t"?F/2-N:-F/2:-N/2,z=S.shape==="icon"?"":S.shape==="iconCircle"?`<circle cy="${W(Y+N/2)}" r="${W(N/2)}"${Te}${h.style.shape}/>`:`<rect x="${W(-N/2)}" y="${W(Y)}" width="${W(N)}" height="${W(N)}" rx="${S.shape==="iconRounded"?8:0}"${Te}${h.style.shape}/>`,re=N*.6;ee=z+`<svg class="pele-icon" data-icon="${fe(S.icon)}" x="${W(-re/2)}" y="${W(Y+(N-re)/2)}" width="${W(re)}" height="${W(re)}" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">${(_==null?void 0:_(S.icon))??""}</svg>`}else ee=gt(h.shape,ae,F,Te+h.style.shape,rr+h.style.line);let B=ye(h.label,0,h.dy,` class="pele-label"${h.style.text}`,_);if(/ internal-link(?: |$)/.test(P+" ")&&S.label&&o.links!==!1){let N=Je(S.label),Y=ot(dt(N),o)!==void 0,z=he(N);B=`<a class="internal-link"${Y?` href="${z}"${ct(o)}`:""} data-href="${z}">${B}</a>`,d.push({id:S.id,href:N,internal:!0})}let X=ee+B;S.tooltip&&(X=`<title>${fe(S.tooltip)}</title>`+X),S.link&&(X=ut(X,S.link,S.id,d,o,S.linkTarget?` target="${he(S.linkTarget)}"`:"")),q+=`<g class="pele-node pele-shape-${h.shape}${P}" data-id="${G}" transform="translate(${W(H)},${W(Z)})">${X}</g>`}let se=Tt();for(let y=0;y<c.length;y++){let h=c[y];h.src===h.dst||E[y].thickness==="invisible"||h.route.length<6||(se.add(h.src,de(h.route,0,w[h.src]),E[y].arrowTypeStart),se.add(h.dst,de(h.route,h.route.length-3,w[h.dst]),E[y].arrowTypeEnd))}let ge="",be="",Ce=new Map;for(let y=0;y<c.length;y++){let h=c[y],A=E[y],S=b[y],H=A.style.length>0||A.cssCompiledStyles.length>0?Me(A.cssCompiledStyles.concat(A.style)):void 0;if(A.thickness!=="invisible"){let Z=A.arrowTypeStart,P=A.arrowTypeEnd,G;if(h.src===h.dst){let B=u[h.src],X=Ce.get(h.src)??0;Ce.set(h.src,X+1),G=wt(w[h.src],B.w,B.h,X,$(h.src),ve,ce(P),h)}else{let B=h.route.slice(),X=se.of(h.src,de(B,0,w[h.src])),N=se.of(h.dst,de(B,B.length-3,w[h.dst]));Ne(B,0,u[h.src],w[h.src]),Ne(B,B.length-3,u[h.dst],w[h.dst]),G=mt(B,A.curve,ce(Z),ce(P),X,N)}let ae=H!=null&&H.stroke&&A.thickness!=="invisible"?he(H.stroke):"var(--_l)",F="";A.thickness==="thick"?F+=' stroke-width="2.5"':A.thickness==="dotted"&&(F+=' stroke-dasharray="3 4"');let ee=Oe(A.classes.replace(/edge-thickness-normal|edge-pattern-solid|flowchart-link/g,""));ge+=`<g class="pele-edge${ee}" data-id="${fe(A.id)}"${(H==null?void 0:H.line)??""}><path d="${G.d}"${F}/>`+Re(Z,G.sx,G.sy,G.sdx,G.sdy,ae)+Re(P,G.ex,G.ey,G.edx,G.edy,ae)+"</g>"}if(S.width>0){let Z=h.labelX,P=h.labelY;be+=vt(A.id,S,Z,P,(H==null?void 0:H.text)??"",_)}}return{svg:Et((i==null?void 0:i.type)??"flowchart",n,t,I,o,r,ye(O,n/2,C+O.height/2,' class="pele-title" font-weight="var(--_tw)"')+(x?`<g class="pele-clusters">${x}</g>`:"")+(ge?`<g class="pele-edges" fill="none" stroke="var(--_l)" stroke-linecap="round">${ge}</g>`:"")+(J?`<g class="pele-cluster-titles">${J}</g>`:"")+(be?`<g class="pele-edge-labels" font-size="${k}">${be}</g>`:"")+`<g class="pele-nodes">${q}</g>`),width:n,height:t,links:d}}var ir={type:"flowchart",parse(r,a,o,i,f){let m=a.flowchart??{},s=new _t({inheritDir:m.inheritDir===!0,maxEdges:f.maxEdges});return o&&(s.title=o),Yt(r,s),s},render:sr};const yr=Object.freeze(Object.defineProperty({__proto__:null,flowchart:ir},Symbol.toStringTag,{value:"Module"}));export{ir as G,yr as N,sr as y};
@@ -1,2 +0,0 @@
1
- import{s as ye}from"./UEXXS2NB-Dkz_tz-N.js";import{c as Pe}from"./DKTLEL5E-B7ILCVTH.js";import{x as De,D as Fe,M as Ne,$ as Oe,v as Ve,w as qe,V as Ye,W as ze,G as Ke,O as je,P as Ue,Y as Je,z as Qe,U as Xe,H as Ze,j as xe}from"./VMV7XPHP-6QkisQwm.js";import{m as se,y as ke,a as We,x as o,f as te,_ as et,$ as tt}from"./RZSVICHU-BiwjruZZ.js";import{H as at,x as rt}from"./lazy-CKqR1774.js";import"./index-392ivruk.js";var v={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4};function B(a){throw new rt(a,"semantic",{type:"gitGraph"})}function ve(a){return a==="REVERSE"?v.REVERSE:a==="HIGHLIGHT"?v.HIGHLIGHT:v.NORMAL}function it(a,e){a.dir&&e.setDirection(a.dir);for(let c of a.statements)nt(c,e)}function nt(a,e){var c;switch(a.$type){case"Commit":e.commit({id:a.id,msg:a.message??"",type:a.type!==void 0?ve(a.type):v.NORMAL,tags:a.tags??void 0});break;case"Branch":e.branch({name:a.name,order:a.order??0});break;case"Merge":e.merge({branch:a.branch,id:a.id??"",type:a.type!==void 0?ve(a.type):void 0,tags:a.tags??void 0});break;case"Checkout":e.checkout(a.branch);break;case"CherryPicking":e.cherryPick({id:a.id,targetId:"",tags:((c=a.tags)==null?void 0:c.length)===0?void 0:a.tags,parent:a.parent});break}}function lt(a,e,c){let p=e.gitGraph,R=typeof(p==null?void 0:p.mainBranchName)=="string"?p.mainBranchName:"main",G=typeof(p==null?void 0:p.mainBranchOrder)=="number"?p.mainBranchOrder:0,x=new Map,h=new Map([[R,null]]),Q=new Map([[R,G]]),ie=[],T=null,C=R,y="LR",D=0,j=()=>{for(let i=D+1;;i+=2654435761){let f=`${D}-${(Math.imul(i,2654435761)>>>0).toString(16).padStart(8,"0").slice(0,7)}`;if(!x.has(f))return f}},F=i=>{T=i,x.set(i.id,i),h.set(C,i.id)},X=i=>{h.has(i)||B(`Trying to checkout branch which is not yet created. (Help try using "branch ${i}")`),C=i;let f=h.get(i);T=f?x.get(f)??null:null};it(a,{setDirection(i){y=i},commit({msg:i,id:f,type:A,tags:_}){let k={id:f||j(),message:i,seq:D++,type:A??v.NORMAL,tags:_?[..._]:[],parents:T===null?[]:[T.id],branch:C};x.has(k.id)&&ie.push(`Commit ID ${k.id} already exists`),F(k)},branch({name:i,order:f}){h.has(i)&&B(`Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout ${i}")`),h.set(i,T!==null?T.id:null),Q.set(i,f),X(i)},merge({branch:i,id:f,type:A,tags:_}){let k=h.get(C),S=h.get(i),N=k?x.get(k):void 0,U=S?x.get(S):void 0;N&&U&&N.branch===i&&B(`Cannot merge branch '${i}' into itself.`),C===i&&B('Incorrect usage of "merge". Cannot merge a branch to itself'),N===void 0&&B(`Incorrect usage of "merge". Current branch (${C})has no commits`),h.has(i)||B(`Incorrect usage of "merge". Branch to be merged (${i}) does not exist`),U===void 0&&B(`Incorrect usage of "merge". Branch to be merged (${i}) has no commits`),N===U&&B('Incorrect usage of "merge". Both branches have same head'),f&&x.has(f)&&B(`Incorrect usage of "merge". Commit with id:${f} already exists, use different custom id`),F({id:f||j(),message:`merged branch ${i} into ${C}`,seq:D++,parents:T===null?[]:[T.id,S||""],branch:C,type:v.MERGE,customType:A,customId:!!f,tags:_?[..._]:[]})},cherryPick({id:i,targetId:f,tags:A,parent:_}){let k=i?x.get(i):void 0;if(k===void 0&&B('Incorrect usage of "cherryPick". Source commit id should exist and provided'),_&&!k.parents.includes(_)&&B("Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit."),k.type===v.MERGE&&!_&&B("Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified."),f&&x.has(f))return;k.branch===C&&B('Incorrect usage of "cherryPick". Source commit is already on current branch');let S=h.get(C);(!S||!x.has(S))&&B(`Incorrect usage of "cherry-pick". Current branch (${C})has no commits`),F({id:j(),message:`cherry-picked ${k.message} into ${C}`,seq:D++,parents:T===null?[]:[T.id,k.id],branch:C,type:v.CHERRY_PICK,tags:A?A.filter(Boolean):[`cherry-pick:${k.id}${k.type===v.MERGE?`|parent:${_}`:""}`]})},checkout:X});let ne=[...Q].map(([i,f],A)=>({name:i,order:f??parseFloat(`0.${A}`)})).sort((i,f)=>i.order-f.order).map(i=>i.name);return{type:"gitGraph",title:a.title||c,accTitle:a.accTitle?a.accTitle.replace(/^\s+/g,""):void 0,accDescr:a.accDescr?a.accDescr.replace(/\n\s+/g,`
2
- `):void 0,direction:y,commits:x,branches:h,lanes:ne,currentBranch:C,head:T,warnings:ie}}var Te={name:"REFERENCE",pattern:/\w([-\./\w]*[-\w])?/y},_e=[Te];function P(a){return{name:a,pattern:a,longer:_e}}var Ge=[P("cherry-pick"),{name:"gitGraph:",pattern:"gitGraph:"},P("HIGHLIGHT"),{...Ze("gitGraph"),longer:_e},P("checkout"),P("REVERSE"),{name:"parent:",pattern:"parent:"},P("commit"),P("NORMAL"),P("branch"),{name:"order:",pattern:"order:"},P("switch"),{name:"type:",pattern:"type:"},P("merge"),{name:"msg:",pattern:"msg:"},{name:"tag:",pattern:"tag:"},{name:"id:",pattern:"id:"},P("LR"),P("TB"),P("BT"),{name:":",pattern:":"},{...Ne,opener:/[\t ]*accDescr\s*{/y},Oe,Ve,{name:"INT",pattern:/0|[1-9][0-9]*(?!\.)/y},qe,Ye,ze,Ke,je,Ue,Te];function st(a){let e=new De(Fe(a,Ge,"gitGraph"),Ge,"gitGraph"),c={$type:"GitGraph",statements:[]},p=()=>{if(e.kind!==-1)for(e.kind!==26&&e.fail("a line break or the end of input");e.kind===26;)e.i++},R=()=>e.kind===31?e.take():e.kind===25?xe(e.take()):e.fail("a branch name"),G=()=>xe(e.expect(25)),x=()=>(e.kind!==8&&e.kind!==5&&e.kind!==2&&e.fail("NORMAL, REVERSE, or HIGHLIGHT"),e.take());for(;e.kind===26;)e.i++;if(!e.accept(1)){e.expect(3);let h=e.kinds[e.i+1];(e.kind===17||e.kind===18||e.kind===19)&&h===20?(c.$type="Direction",c.dir=e.take(),e.i++):e.accept(20)}for(;e.kind!==-1;)switch(e.kind){case 26:e.i++;break;case 21:c.accDescr=Xe(e.take()),p();break;case 22:c.accTitle=Qe(e.take()),p();break;case 23:c.title=Je(e.take()),p();break;case 7:{e.i++;let h={$type:"Commit",tags:[]};for(;;)if(e.accept(16))h.id=G();else if(e.accept(15))h.tags.push(G());else if(e.accept(12))h.type=x();else if(e.accept(14)||e.kinds[e.i]===25)h.message=G();else break;p(),c.statements.push(h);break}case 9:{e.i++;let h={$type:"Branch",name:R()};e.accept(10)&&(h.order=parseInt(e.expect(24))),p(),c.statements.push(h);break}case 13:{e.i++;let h={$type:"Merge",branch:R(),tags:[]};for(;;)if(e.accept(16))h.id=G();else if(e.accept(15))h.tags.push(G());else if(e.accept(12))h.type=x();else break;p(),c.statements.push(h);break}case 4:case 11:{e.i++;let h={$type:"Checkout",branch:R()};p(),c.statements.push(h);break}case 0:{e.i++;let h={$type:"CherryPicking",tags:[]};for(;;)if(e.accept(16))h.id=G();else if(e.accept(15))h.tags.push(G());else if(e.accept(6))h.parent=G();else break;p(),c.statements.push(h);break}default:e.fail("a statement, a title, or a line break")}return c}var w=7,ct=44,ot=44,ce=36,oe=8,ae=20,re=7,Ie=6,be=Math.SQRT1_2,Ce=["normal","reverse","highlight","merge","cherry-pick"];function he(a,e,c){var R;let p=(R=a.gitGraph)==null?void 0:R[e];return typeof p=="boolean"?p:c}function Le(a){return re+4+a.width+6}function ht(a,e,c,p){let R=`cx="${o(e)}" cy="${o(c)}"`;if(a===v.HIGHLIGHT)return`<rect x="${o(e-w-1)}" y="${o(c-w-1)}" width="${2*w+2}" height="${2*w+2}" rx="2" fill="${p}"/>`;if(a===v.MERGE)return`<circle ${R} r="${w-1}" fill="var(--_bg)" stroke="${p}" stroke-width="2"/><circle ${R} r="2.5" fill="${p}"/>`;let G=`<circle ${R} r="${w}" fill="${p}"/>`;return a===v.REVERSE?G+`<path d="M${o(e-3)},${o(c-3)}l6,6M${o(e-3)},${o(c+3)}l6,-6" fill="none" stroke="var(--_bg)" stroke-width="1.5" stroke-linecap="round"/>`:a===v.CHERRY_PICK?G+`<path d="M${o(e-2.6)},${o(c+1)}L${o(e+.8)},${o(c-4.2)}L${o(e+2.6)},${o(c+1)}" fill="none" stroke="var(--_bg)" stroke-linejoin="round"/><circle cx="${o(e-2.6)}" cy="${o(c+2.2)}" r="1.8" fill="var(--_bg)"/><circle cx="${o(e+2.6)}" cy="${o(c+2.2)}" r="1.8" fill="var(--_bg)"/>`:G}function mt(a,e,c){return a.direction!=="LR"?He(a,e,c,a.direction):Pe(c,p=>He(a,e,c,p?"TB":"LR"))}function He(a,e,c,p){let R=c.fontSize??16,G=Math.round(R*.75),x=c.measurer??at(c.fontFamily),h=c.padding??8,Q=he(e,"showBranches",!0),ie=he(e,"showCommitLabel",!0),T=he(e,"rotateCommitLabel",!0),C=he(e,"parallelCommits",!1),y=p!=="LR",D=p==="BT",j=new Map;a.lanes.forEach((t,r)=>j.set(t,r));let F=a.lanes.length,X=Math.round(R*.875),ne=a.lanes.map(t=>ye(Q?t:"",x,X,4e3)),i=[],f=new Map;for(let t of[...a.commits.values()].sort((r,n)=>r.seq-n.seq)){let r=ie&&t.type!==v.CHERRY_PICK&&(t.type!==v.MERGE||t.customId===!0),n=[];for(let s of t.tags){let m=ye(s,x,G,4e3);m.lines.length>0&&n.push(m)}let l={commit:t,index:i.length,lane:j.get(t.branch)??0,m:0,label:r?ye(t.id,x,G,4e3):void 0,tags:n};i.push(l),f.set(t.id,l)}let A=new Float64Array(i.length),_=new Float64Array(i.length),k=new Float64Array(F).fill(w),S=new Float64Array(F).fill(w);i.forEach((t,r)=>{let{label:n,tags:l}=t,s=0,m=0;for(let d of l){let I=Le(d);y?(s=Math.max(s,d.height),m+=I+4):(s=Math.max(s,I),m+=d.height+3)}let b=0,g=0;n!==void 0&&n.lines.length>0&&(T?g=3+be*(n.width+n.height):(b=y?n.height:n.width,g=6+(y?n.width:n.height))),A[r]=Math.max(w,s/2,b/2),_[r]=s/2;let L=w+(l.length>0?Ie+m:0),K=w+g,u=t.lane;k[u]=Math.max(k[u],y?K:L),S[u]=Math.max(S[u],y?L:K)});let N=new Float64Array(i.length);y||i.forEach((t,r)=>{if(_[r]!==0)for(let n of t.commit.parents){let l=f.get(n);l!==void 0&&l.lane<t.lane&&(N[r]=_[r]+4)}});let U=(t,r)=>Math.max(ct,A[t]+A[r]+oe,N[r]>0?A[t]+ce+N[r]:0);i.forEach((t,r)=>{if(!C){t.m=r===0?0:i[r-1].m+U(r-1,r);return}let n=0;for(let l of t.commit.parents){let s=f.get(l);s===void 0||s.index>=r||(n=Math.max(n,s.m+U(s.index,r)))}t.m=n});let V=0;for(let t of i)V=Math.max(V,t.m);let q=new Float64Array(F);for(let t=0;t<F;t++){let r=ne[t],n=r.lines.length===0?0:y?r.width/2+8:r.height/2+2;k[t]=Math.max(k[t],n),S[t]=Math.max(S[t],n),t>0&&(q[t]=q[t-1]+Math.max(ot,S[t-1]+k[t]+oe))}let Y=(t,r)=>y?r:t,z=(t,r)=>y?D?-t:t:r,E=(t,r)=>`${o(Y(t,r))},${o(z(t,r))}`,J=1/0,le=1/0,Z=-1/0,me=-1/0,O=(t,r,n,l)=>{t<J&&(J=t),r<le&&(le=r),n>Z&&(Z=n),l>me&&(me=l)},W="";if(Q)for(let t=0;t<F;t++){let r=ne[t],n=se(t),l=q[t],s=r.width+16,m=r.height+4,b=r.lines.length===0?-20:-20-(y?m:s),g=Y(b+(y?m:s)/2,l),L=z(b+(y?m:s)/2,l);O(Y(-20,l),z(-20,l),Y(-20,l),z(-20,l)),O(Y(V+ae,l),z(V+ae,l),Y(V+ae,l),z(V+ae,l)),W+=`<g class="pele-branch" data-id="${ke(a.lanes[t])}"><path class="pele-lane" d="M${E(-20,l)}L${E(V+ae,l)}" stroke="${n}" stroke-dasharray="2 4"/>`,r.lines.length>0&&(O(g-s/2,L-m/2,g+s/2,L+m/2),W+=`<rect x="${o(g-s/2)}" y="${o(L-m/2)}" width="${o(s)}" height="${o(m)}" rx="${We}" fill="${n}"/>`+te(r,g,L,' class="pele-label" fill="var(--_bg)"')),W+="</g>"}let ge=Array.from({length:F},()=>[]);for(let t of i)ge[t.lane].push(t.m);if(C)for(let t of ge)t.sort((r,n)=>r-n);let Me=(t,r,n)=>{let l=ge[t],s=0,m=l.length;for(;s<m;){let b=s+m>>1;l[b]<=r?s=b+1:m=b}return s<l.length&&l[s]<n},pe="",de="";for(let t of i){let{commit:r}=t,n=q[t.lane],l=t.m;for(let s=0;s<r.parents.length;s++){let m=f.get(r.parents[s]);if(m===void 0||m===t)continue;let b=q[m.lane],g=m.m;if(m.lane===t.lane){de+=`<path class="pele-edge" d="M${E(g,b)}L${E(l,n)}" stroke="${se(t.lane)}"/>`;continue}let L=s>0&&r.type===v.MERGE,K=s>0&&!L,u=`M${E(g,b)}`;if(l<=g){let d=(g+l)/2;u+=`C${E(d,b)} ${E(d,n)} ${E(l,n)}`}else if(!L&&!Me(t.lane,g,l)){let d=Math.min(ce,l-g);u+=`C${E(g+d/2,b)} ${E(g+d/2,n)} ${E(g+d,n)}L${E(l,n)}`}else{let d=m.lane<t.lane&&l-N[t.index]>g?l-N[t.index]:l,I=Math.min(ce,d-g),$=b;(!L||Me(m.lane,g,l))&&($=b>n?n+S[t.lane]+oe/2:n-k[t.lane]-oe/2,I=Math.min(ce,(d-g)/2),u+=`C${E(g+I/2,b)} ${E(g+I/2,$)} ${E(g+I,$)}`),u+=`L${E(d-I,$)}C${E(d-I/2,$)} ${E(d-I/2,n)} ${E(d,n)}`,d<l&&(u+=`L${E(l,n)}`)}pe+=`<path class="pele-edge${L?" pele-edge-merge":K?" pele-edge-cherry-pick":""}" d="${u}" stroke="${se(L?m.lane:t.lane)}"${K?' stroke-dasharray="4 3"':""}/>`}}let fe="";for(let t of i){let{commit:r,label:n,tags:l}=t,s=Y(t.m,q[t.lane]),m=z(t.m,q[t.lane]),b=r.customType??r.type;O(s-w-1,m-w-1,s+w+1,m+w+1);let g=r.type<v.MERGE&&r.message!==""?`<title>${ke(r.message)}</title>`:"";if(g+=ht(b,s,m,se(t.lane)),n!==void 0&&n.lines.length>0){let u=n.width,d=n.height,I=($,M)=>`<rect x="${o($-u/2-2)}" y="${o(M-d/2+2)}" width="${o(u+4)}" height="${o(d-4)}" rx="3" fill="var(--_bg)"/>`;if(T){let $=be*d/2,M=y?s-w-3-$:s+3,H=y?m:m+w+3+$,ue=be*u+$;O(M-ue,D?H-ue:H-$,M+$,D?H+$:H+ue),g+=`<g class="pele-commit-label" transform="rotate(${D?45:-45} ${o(M)} ${o(H)})">`+I(M-u/2,H)+te(n,M-u/2,H,"")+"</g>"}else{let $=y?s-w-6-u/2:s,M=y?m:m+w+6+d/2;O($-u/2,M-d/2,$+u/2,M+d/2),g+=`<g class="pele-commit-label">${I($,M)}${te(n,$,M,"")}</g>`}}let L=w+Ie;for(let u=y?0:l.length-1;u>=0&&u<l.length;u+=y?1:-1){let d=l[u],I=Le(d),$=d.height,M=y?s+L:s-I/2,H=y?m:m-L-$/2;L+=y?I+4:$+3,O(M,H-$/2,M+I,H+$/2),g+=`<g class="pele-tag"><path d="M${o(M)},${o(H)}L${o(M+re)},${o(H-$/2)}H${o(M+I)}V${o(H+$/2)}H${o(M+re)}Z" fill="var(--_s)" stroke="var(--_b)" stroke-linejoin="round"/><circle cx="${o(M+re)}" cy="${o(H)}" r="1.5" fill="var(--_b)"/>`+te(d,M+re+4+d.width/2,H,' fill="var(--_fg)"')+"</g>"}let K=r.type===v.MERGE&&b!==v.MERGE?" pele-commit-merge":"";fe+=`<g class="pele-commit pele-commit-${Ce[b]??Ce[0]}${K}" data-id="${ke(r.id)}">${g}</g>`}J>Z&&O(0,0,0,0);let ee=et(a.title,!1,x,R,4e3,1),Ee=ee.height>0?ee.height+16:0,we=Math.max(Z-J,ee.width),$e=Math.ceil(we+2*h),Re=Math.ceil(me-le+Ee+2*h),Be=h-J+(we-(Z-J))/2,Ae=h+Ee-le,Se=te(ee,$e/2,h+ee.height/2,' class="pele-title" font-weight="var(--_tw)"')+`<g transform="translate(${o(Be)},${o(Ae)})">`+(W?`<g class="pele-branches" fill="none" font-size="${X}">${W}</g>`:"")+(pe||de?`<g class="pele-edges" fill="none" stroke-width="2" stroke-linecap="round">${pe}${de}</g>`:"")+(fe?`<g class="pele-commits" font-size="${G}" fill="var(--_m)">${fe}</g>`:"")+"</g>";return{svg:tt("gitGraph",$e,Re,R,c,a,Se),width:$e,height:Re,links:[]}}var yt={type:"gitGraph",parse:(a,e,c)=>lt(st(a),e,c),render:mt};export{yt as gitGraph};
@@ -1,8 +0,0 @@
1
- var ys=Object.defineProperty;var bs=(e,t,a)=>t in e?ys(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a;var Ct=(e,t,a)=>bs(e,typeof t!="symbol"?t+"":t,a);import{x as $s}from"./ELSXBIJH-DG0MW5dC.js";import{b as gs,d as mt,m as As,p as Cs}from"./FKCDD66M-BPFkyrwI.js";import{H as ms,r as $e,t as z,u as St,a as Ss,x as Ke}from"./lazy-CKqR1774.js";import{m as Es,c as Ts}from"./DKTLEL5E-B7ILCVTH.js";import{F as ws,S as Rs,D as xs,w as Is}from"./HWDLEDTA-C_JcdBMO.js";import{g as Et,_ as Pt,h as Tt,y as at,x as g,f as q,a as je,b as _s,$ as Os}from"./RZSVICHU-BiwjruZZ.js";import"./index-392ivruk.js";var Gt="EOF USECASE ACTOR SYSTEM_BOUNDARY END DIRECTION TD TB BT LR RL NOTE FOR JSON CLASS_DEF CLASS STYLE INCLUDE EXTEND TRUE FALSE IDENTIFIER NUMBER AT COMMA COLON HASH_COLOR CSS_IDENTIFIER CSS_ESCAPED_COMMA DASH DOT PERCENT CSS_PUNCTUATION LABEL_PUNCTUATION LABEL_SYMBOL PLAIN_STRING MARKDOWN_STRING UNCLOSED_MARKDOWN_STRING COMMENT NEWLINE ACC_DESCR_BLOCK ACC_TITLE_LINE ACC_DESCR_LINE JSON_DECLARATION_START JSON_OBJECT_LITERAL UNCLOSED_JSON_OBJECT_LITERAL GENERALIZATION DEPENDENCY_ARROW STEREOTYPE_START STEREOTYPE_END STEREOTYPE_TEXT UNCLOSED_STEREOTYPE_TEXT CLASS_SEPARATOR FORWARD_SOLID BACKWARD_SOLID FORWARD_CIRCLE BACKWARD_CIRCLE FORWARD_CROSS BACKWARD_CROSS MARKERLESS_SOLID METADATA_START LBRACE RBRACE LBRACKET RBRACKET LPAREN RPAREN".split(" "),we=1,Ht=2,le=new Uint8Array(128);for(let e=48;e<=57;e++)le[e]=we;for(let e=65;e<=90;e++)le[e]=le[e+32]=we;le[95]=we;for(let e of"!#$&*+/=?^|~")le[e.charCodeAt(0)]=Ht;var wt=[0,12,5,14,3,9,2,2,2,2,2,4,3,4,8,5,5,7,6,4,5];function Le(e){return e<128&&(le[e]&we)!==0}function ze(e,t,a){for(let r=0;r<a.length;r++)if((e.charCodeAt(t+r)|32)!==a.charCodeAt(r))return!1;return!0}function ks(e,t,a){switch(a){case 97:return e.startsWith("actor",t)?2:0;case 115:return e.startsWith("systemBoundary",t)?3:e.startsWith("style",t)?16:0;case 101:return e.startsWith("end",t)?4:ze(e,t,"extend")?18:0;case 69:return ze(e,t,"extend")?18:0;case 100:return e.startsWith("direction",t)?5:0;case 84:return e.startsWith("TD",t)?6:e.startsWith("TB",t)?7:0;case 66:return e.startsWith("BT",t)?8:0;case 76:return e.startsWith("LR",t)?9:0;case 82:return e.startsWith("RL",t)?10:0;case 110:return e.startsWith("note",t)?11:0;case 102:return e.startsWith("for",t)?12:e.startsWith("false",t)?20:0;case 106:return e.startsWith("json",t)?13:0;case 99:return e.startsWith("classDef",t)?14:e.startsWith("class",t)?15:0;case 105:case 73:return ze(e,t,"include")?17:0;case 116:return e.startsWith("true",t)?19:0;case 117:return e.startsWith("usecase-beta",t)?1:0;default:return 0}}function Re(e,t){let a=1,r=0;for(let n=0;n<t;n++){let l=e.charCodeAt(n);l!==10&&l!==13||(l===13&&n+1<t&&e.charCodeAt(n+1)===10&&n++,a++,r=n+1)}return[a,t-r+1]}function Ns(e,t,a){let[r,n]=Re(e,t);return`line ${r}, column ${n} [${t},${a})`}function Kt(e,t,a){for(let r=t+1;r<e.length;r++){let n=e.charCodeAt(r);if(n===a)return r+1;if(n===10||n===13)return-1}return-1}function vs(e,t){let a=e.charCodeAt(t);return a!==34&&a!==39?!0:a===34&&e.charCodeAt(t+1)===96||Kt(e,t,a)!==-1}function Rt(e,t,a){let[r,n]=Re(e,t);return new Ke(`Error lexing usecase diagram: unexpected character: ->${e.charAt(t)}<- at offset: ${t}, skipped ${a} characters. at line ${r}, column ${n} [${t},${t+a})`,"syntax",{type:"usecase",line:r,column:n})}function Ls(e){let t=[],a=[],r=[],n=e.length,l=0,u=!0,y=!1;for(;l<n;){let h=e.charCodeAt(l);if(h===32||h===9){l++;continue}let f,d=l+1,w=!1;if(h<128&&(le[h]&we)!==0){if(f=0,h===97&&u&&e.startsWith("acc",l)){let i=e.startsWith("Descr",l+3);if(i||e.startsWith("Title",l+3)){let A=l+8;for(;$e(e.charCodeAt(A));)A++;let k=e.charCodeAt(A);if(k===58)for(f=i?42:41,d=A+1;d<n&&e.charCodeAt(d)!==10&&e.charCodeAt(d)!==13;)d++;else if(k===123&&i&&!y){let _=e.indexOf("}",A+1);_===-1?y=!0:(f=40,d=_+1)}}}else if(h===106&&e.startsWith("json",l)&&$e(e.charCodeAt(l+4))){let i=l+5;for(;$e(e.charCodeAt(i));)i++;let A=i;for(;Le(e.charCodeAt(i));)i++;if(i>A){for(;$e(e.charCodeAt(i));)i++;if(e.charCodeAt(i)===64){for(i++;$e(e.charCodeAt(i));)i++;if(e.charCodeAt(i)===123){t.push(43),a.push(l),r.push(i),l=i;let k=0,_=!1,v=!1,R=i;for(;R<n;R++){let W=e.charCodeAt(R);if(_)v?v=!1:W===92?v=!0:W===34&&(_=!1);else if(W===34)_=!0;else if(W===123)k++;else if(W===125&&--k===0)break}t.push(R<n?44:45),a.push(i),l=R<n?R+1:n,r.push(l),u=!1;continue}}}}if(f===0){for(;d<n&&Le(e.charCodeAt(d));)d++;let i=ks(e,l,h);if(i!==0)i===1||d-l===wt[i]?(f=i,d=l+wt[i]):f=21;else if((h===111||h===120)&&e.charCodeAt(l+1)===45&&e.charCodeAt(l+2)===45)f=h===111?56:58,d=l+3;else if(z(h)){let A=l+1;for(;z(e.charCodeAt(A));)A++;if(e.charCodeAt(A)===46&&z(e.charCodeAt(A+1))){for(f=22,d=A+2;z(e.charCodeAt(d));)d++;for(;St(e.charCodeAt(d));)d++}else f=21}else for(f=21;e.charCodeAt(d)===45&&Le(e.charCodeAt(d+1));)for(f=27,d+=2;Le(e.charCodeAt(d));)d++}}else if(h===10)f=39,w=!0;else if(h===13)f=39,w=!0,e.charCodeAt(d)===10&&d++;else if(h===34||h===39){if(h===34&&e.charCodeAt(l+1)===96){let i=e.indexOf('`"',l+2);f=i===-1?37:36,d=i===-1?n:i+2}else if(f=35,d=Kt(e,l,h),d===-1){let i=l+1;for(;i<n&&!vs(e,i);)i++;throw Rt(e,l,i-l)}}else if(h===37)if(u&&e.charCodeAt(d)===37)for(f=38;d<n&&e.charCodeAt(d)!==10&&e.charCodeAt(d)!==13;)d++;else f=31;else if(h===45)if(e.charCodeAt(d)!==45)f=29;else{for(;e.charCodeAt(d)===45;)d++;let i=e.charCodeAt(d),A=d-l===2;A&&i===124&&e.charCodeAt(d+1)===62?(f=46,d+=2):i===62?(f=53,d++):A&&(i===111||i===120)?(f=i===111?55:57,d++):f=59}else if(h===46){let i=e.charCodeAt(d);if(i===46&&e.charCodeAt(d+1)===62)f=47,d+=2;else if(z(i)){for(f=22;z(e.charCodeAt(d));)d++;for(;St(e.charCodeAt(d));)d++}else f=30}else if(h===60)if(e.charCodeAt(d)===60){if(t.push(48),a.push(l),r.push(l+2),u=!1,l+=2,l>=n)break;if(e.charCodeAt(l)===62&&e.charCodeAt(l+1)===62)f=49,d=l+2;else{let i=l,A=!1;for(;i<n;i++){let k=e.charCodeAt(i);if(k===10||k===13)break;if(k===62&&e.charCodeAt(i+1)===62){A=!0;break}}if(A&&e.slice(l,i).trim()!=="")t.push(50),a.push(l),r.push(i),f=49,l=i,d=i+2;else{for(;i<n&&e.charCodeAt(i)!==10&&e.charCodeAt(i)!==13;)i++;if(i===l){for(;i<n&&(e.charCodeAt(i)===10||e.charCodeAt(i)===13);)i++;throw Rt(e,l,i-l)}f=51,d=i}}}else if(e.charCodeAt(d)===45&&e.charCodeAt(d+1)===45)for(f=54,d+=2;e.charCodeAt(d)===45;)d++;else f=33;else if(h===58)e.charCodeAt(d)===58&&e.charCodeAt(d+1)===58?(f=52,d+=2):f=25;else if(h===64)e.charCodeAt(d)===123?(f=60,d++):f=23;else if(h===123)f=61;else if(h===125)f=62;else if(h===91)f=63;else if(h===93)f=64;else if(h===40)f=65;else if(h===41)f=66;else if(h===44)f=24;else if(h===35){for(;Ss(e.charCodeAt(d));)d++;f=d>l+1?26:32}else if(h===92)e.charCodeAt(d)===44?(f=28,d++):f=33;else if(h<127&&h>32)f=(le[h]&Ht)!==0?32:33;else for(f=34;d<n;){let i=e.charCodeAt(d);if(i>=32&&i<127||i===9||i===10||i===13)break;d++}t.push(f),a.push(l),r.push(d),l=d,u=w}for(let h=0;h<3;h++)t.push(0),a.push(n),r.push(n);return{types:t,starts:a,ends:r}}function Ds(){return{type:"usecase",actors:new Map,useCases:new Map,systemBoundaries:new Map,relationships:[],notes:new Map,jsonNodes:new Map,classDefs:new Map,direction:"LR",title:void 0,accTitle:"",accDescr:"",accDescription:"",source:"",headerSpan:[0,0],statements:[]}}function Ms(){return{elements:[],boundaries:[],jsons:[],relationships:[],notes:[],metadata:[],classes:[],styles:[],classDefs:[],direction:void 0,accTitle:"",accDescription:""}}function Ve(e,t){if(t.length===0)return;let a=new Set(e);for(let r of t)a.has(r)||(a.add(r),e.push(r))}function Ws(e){let t=new Set(["actor","usecase","boundary","edge"]);for(let{key:a,value:r}of e)if(a==="icon")t.clear(),t.add("actor");else if(a==="animate"||a==="animation")t.clear(),t.add("edge");else if(a==="type")t.clear(),r==="rect"||r==="package"?t.add("boundary"):(r==="normal"||r==="hollow"||r==="awesome")&&t.add("actor");else if(a==="business")t.delete("boundary"),t.delete("edge");else return;return t.size===1?[...t][0]:void 0}function Bs(e,t,a,r,n){var D;let l=Ds(),{actors:u,useCases:y,systemBoundaries:h}=l,f=new Map,d=new Map,w=new Map,i=new Map,A=new Map,k=s=>Ns(e,s[0],s[1]),_=(s,c)=>{let[o,b]=Re(e,c[0]);return new Ke(s,"semantic",{type:"usecase",line:o,column:b})},v=(s,c)=>{throw _(`${s} at ${k(c)}`,c)},R=(s,c,o,b,m)=>{let E=N=>N===void 0?"":` (label "${N}")`;throw _(`${s} at ${k(c)}${E(b)}; previous declaration at ${k(o)}${E(m)}`,c)},W=(s,c,o)=>v(`Metadata property '${o.key}' is invalid for ${c} '${s}'`,o.keySpan),Y=(s,c)=>{let o=A.get(s);(o===void 0||c<o)&&A.set(s,c)},te=s=>[...s].sort((c,o)=>(A.get(c.id)??0)-(A.get(o.id)??0)),pe=(s,c)=>{f.set(s.id,{kind:c,span:s.span,generated:s.generated,label:s.label.text})},he=(s,c)=>{let o=f.get(s.id);if(!o)return;let b=s.generated?s.label.text:void 0,m=o.generated?o.label:void 0;o.kind!==c&&R(`ID '${s.id}' is declared as both ${o.kind} and ${c}`,s.span,o.span,b,m),(o.generated||s.generated)&&R(`Generated ID '${s.id}' collides with another declaration`,s.span,o.span,b,m)},xe=(s,c,o)=>{let b=f.get(s);b&&R(`ID '${s}' is declared more than once (${b.kind} and ${c})`,o,b.span,void 0,b.generated?b.label:void 0),f.set(s,{kind:c,span:o,generated:!1})},Xe=(s,c,o)=>{let{key:b,value:m}=c,E=N=>{!o&&N!==void 0&&N!==m&&R(`Actor '${s.id}' has conflicting ${b} metadata`,c.keySpan,s.span)};b==="type"&&(m==="normal"||m==="hollow"||m==="awesome")?(E(s.actorType),s.actorType=m):b==="icon"&&typeof m=="string"?(E(s.icon),s.icon=m):b==="business"&&typeof m=="boolean"?(E(s.business),s.business=m):W(s.id,"actor",c)},ne=(s,c,o)=>{for(let b of c??[])s.kind==="actor"?Xe(s,b,o):b.key==="business"&&typeof b.value=="boolean"?(!o&&s.business!==void 0&&s.business!==b.value&&R(`Use case '${s.id}' has conflicting business metadata`,b.keySpan,s.span),s.business=b.value):W(s.id,"usecase",b)},de=s=>{var o,b,m;let c;if(s.kind==="actor"){y.delete(s.id);let E={id:s.id,label:s.label.text,labelType:s.label.type,business:s.business??!1,classes:[...s.classes],type:s.icon?"icon":s.actorType??"normal",styles:((o=u.get(s.id))==null?void 0:o.styles)??[]};s.icon&&(E.icon=s.icon),u.set(s.id,E),c=E}else u.delete(s.id),c={id:s.id,label:s.label.text,labelType:s.label.type,business:s.business??!1,classes:[...s.classes],shape:s.shape??"ellipse",styles:((b=y.get(s.id))==null?void 0:b.styles)??[]},y.set(s.id,c);s.stereotype&&(c.stereotype=s.stereotype),(m=s.parent)!=null&&m.id&&(c.parentId=s.parent.id)},Ie=s=>{var b,m;he(s,s.kind);let c=(b=s.parent)!=null&&b.id?s.parent:void 0,o=d.get(s.id);if(!o){let E={kind:s.kind,id:s.id,label:s.label,span:s.span,generated:s.generated,classes:[...s.classes],parent:c,shape:s.shape,stereotype:s.stereotype,stereotypeSpan:s.stereotype?s.span:void 0};ne(E,s.metadata,!1),d.set(s.id,E),pe(s,s.kind);return}(o.label.text!==s.label.text||o.label.type!==s.label.type)&&R(`ID '${s.id}' has conflicting labels`,s.span,o.span),s.shape&&o.shape&&s.shape!==o.shape&&R(`Use case '${s.id}' has conflicting shapes`,s.span,o.span),c&&((m=o.parent)!=null&&m.id)&&c.id!==o.parent.id&&R(`Element '${s.id}' belongs to more than one system boundary`,c.span,o.parent.span),s.stereotype&&o.stereotype&&s.stereotype!==o.stereotype&&R(`Element '${s.id}' has conflicting stereotypes`,s.span,o.stereotypeSpan??o.span),o.shape??(o.shape=s.shape),o.parent??(o.parent=s.parent),o.stereotype??(o.stereotype=s.stereotype),o.stereotypeSpan??(o.stereotypeSpan=s.stereotype?s.span:void 0),Ve(o.classes,s.classes),ne(o,s.metadata,!1)},ye=s=>{he(s,"boundary");let c=w.get(s.id);if(c){(c.label.text!==s.label.text||c.label.type!==s.label.type)&&R(`Boundary '${s.id}' has conflicting titles`,s.span,c.span),Ve(c.classes,s.classes);return}w.set(s.id,{...s,classes:[...s.classes],members:[]}),pe(s,"boundary")},be=s=>{s.classed&&!s.declares&&v(`Relationship endpoint '${s.id}' uses ::: without declaring the node`,s.span);let c=f.get(s.id);return c?c.kind:(d.set(s.id,{...s,kind:"usecase",shape:"ellipse",classes:[]}),pe(s,"usecase"),Y(s.id,s.span[0]),"usecase")},ce=(s,c)=>{var b;let o=(b=f.get(s))==null?void 0:b.kind;return(o==="actor"?u.get(s):o==="usecase"?y.get(s):o==="boundary"?h.get(s):o==="json"?l.jsonNodes.get(s):i.get(s))??v(`Class/style target '${s}' is unresolved or anonymous`,c)},se=[];for(let{source:s,target:c}of t.relationships)Y(s.id,s.span[0]),Y(c.id,c.span[0]);for(let s of t.elements)Y(s.id,s.span[0]),se.push({offset:s.span[0],run:()=>Ie(s)});for(let s of t.boundaries)Y(s.id,s.span[0]),se.push({offset:s.span[0],run:()=>ye(s)});for(let s of t.jsons)Y(s.id,s.span[0]),se.push({offset:s.span[0],run:()=>xe(s.id,"json",s.span)});for(let{id:s,idSpan:c}of t.relationships)s&&c&&se.push({offset:c[0],run:()=>xe(s,"edge",c)});se.sort((s,c)=>s.offset-c.offset);for(let s of se)s.run();for(let s of te(d.values()))de(s);for(let s of te(w.values()))h.set(s.id,{id:s.id,label:s.label.text,labelType:s.label.type,type:"rect",members:[],classes:[],styles:[]});for(let s of te(t.jsons))l.jsonNodes.set(s.id,{id:s.id,value:s.value,propertyOrder:s.propertyOrder,classes:[...s.classes],styles:[]});let _e=0;for(let s of t.relationships){let{source:c,target:o,type:b}=s,m=be(c),E=be(o),N=O=>O==="actor"||O==="usecase"||O==="json";N(m)||R(`Relationship source '${c.id}' cannot be ${m}`,c.span,f.get(c.id).span),N(E)||R(`Relationship target '${o.id}' cannot be ${E}`,o.span,f.get(o.id).span),(b==="include"||b==="extend")&&(m!=="usecase"||E!=="usecase")&&v(`${b} relationship requires use-case endpoints`,s.span),b==="generalization"&&(m==="json"||m!==E)&&v("Generalization requires actor-to-actor or use-case-to-use-case endpoints",s.span),b==="association"&&(m==="json"||E==="json")&&s.arrowType>2&&v(`JSON relationship '${c.id}' to '${o.id}' permits only point, reversed-point, or markerless solid association`,s.span);let L=s.id??`edge-${_e++}`,x={id:L,explicitId:!!s.id,source:c.id,target:o.id,type:b,arrowType:s.arrowType,minlen:s.minlen,classes:[],styles:[],animate:!1};s.label&&(x.label=s.label.text,x.labelType=s.label.type),l.relationships.push(x),i.set(L,x)}let S=new Map(u),$=new Map(y);u.clear(),y.clear();for(let s of te(d.values())){let c=S.get(s.id),o=$.get(s.id);c?u.set(s.id,c):o?y.set(s.id,o):de(s)}for(let{target:s,span:c,properties:o,statement:b}of t.metadata){let m=f.get(s);if(!m){let x=Ws(o);return v(`Metadata target '${s}' is unresolved${x?` (metadata implies ${x})`:""}`,c)}let E=m.kind;E==="actor"||E==="usecase"?ne(d.get(s),o,!0):E==="edge"&&(b.kind="edgeMetadata",b.edges=[{id:s,span:b.span,idSpan:c,metadata:b.metadata}],delete b.nodes);let N=w.get(s),L=i.get(s);for(let x of E==="actor"||E==="usecase"?[]:o){let{key:O,value:I}=x;E==="boundary"&&N&&O==="type"&&(I==="rect"||I==="package")?N.type=I:E==="edge"&&L&&O==="animate"&&typeof I=="boolean"?L.animate=I:E==="edge"&&L&&O==="animation"&&(I==="fast"||I==="slow")?(L.animation=I,L.animate=!0):W(s,E,x)}}for(let s of l.relationships)s.animation&&(s.animate=!0);for(let s of d.values())s.kind==="actor"?(s.icon&&s.actorType&&s.actorType!=="normal"&&v(`Actor '${s.id}' cannot combine icon with type '${s.actorType}'`,s.span),s.business&&(s.icon||s.actorType==="awesome")&&v(`Business actor '${s.id}' must use normal or hollow geometry`,s.span)):s.shape==="rect"&&s.business&&v(`Rectangular use case '${s.id}' cannot be a business use case`,s.span),de(s);for(let s of[...t.elements].sort((c,o)=>c.span[0]-o.span[0])){if(!((D=s.parent)!=null&&D.id))continue;let c=w.get(s.parent.id).members;c.includes(s.id)||c.push(s.id)}for(let s of w.values()){let c=h.get(s.id);c.type=s.type??"rect",c.members=s.members,c.classes=[...s.classes]}let T=0;for(let s of t.notes){let c=f.get(s.target);if(!c)return v(`Note target '${s.target}' is unresolved`,s.span);c.kind!=="actor"&&c.kind!=="usecase"&&R(`Note target '${s.target}' must be an actor or use case, not ${c.kind}`,s.span,c.span);let o=`note-${T++}`;l.notes.set(o,{id:o,target:s.target,label:s.label.text,labelType:s.label.type})}for(let s of t.classDefs)for(let c of s.ids)l.classDefs.set(c,{id:c,styles:[...s.styles]});for(let s of t.classes)for(let c of s.targets)Ve(ce(c.id,c.span).classes,s.classes);for(let s of t.styles)ce(s.target,s.span).styles.push(...s.styles);return l.direction=t.direction??l.direction,l.title=n,l.accTitle=t.accTitle,l.accDescription=t.accDescription,l.accDescr=t.accDescription.replace(/\n\s+/g,`
2
- `),l.source=e,l.headerSpan=a,l.statements=r,l}var K=class extends Error{constructor(t){super("Invalid JSON token");Ct(this,"offset");this.offset=t}};function xt(e){let t=new Map,a=[],r=[],n=e.length,l=0,u="",y=0,h=()=>{for(;l<n;){let i=e.charCodeAt(l);if(i!==32&&i!==9&&i!==10&&i!==13)return;l++}},f=i=>{l++;let A="";for(;l<n;){let k=l,_=e[l++];if(_==='"')return A;if(_.charCodeAt(0)<32)throw new K(k);if(_!=="\\"){i&&(A+=_);continue}let v=l,R=e[l++],W;if(R==='"'||R==="\\"||R==="/")W=R;else if(R==="b")W="\b";else if(R==="f")W="\f";else if(R==="n")W=`
3
- `;else if(R==="r")W="\r";else if(R==="t")W=" ";else if(R==="u"){let Y=e.slice(l,l+4);if(!/^[\dA-Fa-f]{4}$/.test(Y))throw new K(l);W=String.fromCharCode(parseInt(Y,16)),l+=4}else throw new K(v);i&&(A+=W)}throw new K(l)},d=i=>{for(let A=0;A<i.length;A++)if(e[l+A]!==i[A])throw new K(l+A);l+=i.length},w=()=>{if(e.charCodeAt(l)===45&&l++,e.charCodeAt(l)===48)l++;else if(z(e.charCodeAt(l)))for(;z(e.charCodeAt(l));)l++;else throw new K(l);if(e.charCodeAt(l)===46){if(l++,!z(e.charCodeAt(l)))throw new K(l);for(;z(e.charCodeAt(l));)l++}if((e.charCodeAt(l)|32)===101){if(l++,(e.charCodeAt(l)===43||e.charCodeAt(l)===45)&&l++,!z(e.charCodeAt(l)))throw new K(l);for(;z(e.charCodeAt(l));)l++}};for(h();;)if(y===0){h();let i=e.charCodeAt(l);if(y=2,i===123){l++;let A=[];t.set(u,A),a.push(u),h(),e.charCodeAt(l)===125?l++:(r.push({object:!0,pointer:u,keys:A,ranges:new Map,key:"",from:0,index:0}),y=1)}else if(i===91)l++,h(),e.charCodeAt(l)===93?l++:(r.push({object:!1,pointer:u,keys:[],ranges:new Map,key:"",from:0,index:0}),u+="/0",y=0);else if(i===34)f(!1);else if(i===116)d("true");else if(i===102)d("false");else if(i===110)d("null");else if(i===45||z(i))w();else throw new K(l)}else if(y===1){let i=r[r.length-1];if(e.charCodeAt(l)!==34)throw new K(l);let A=f(!0),k=i.ranges.get(A);if(k===void 0)i.keys.push(A);else for(let _=k[0];_<k[1];_++)t.delete(a[_]);if(i.key=A,i.from=a.length,h(),e.charCodeAt(l)!==58)throw new K(l);l++,u=`${i.pointer}/${A.replaceAll("~","~0").replaceAll("/","~1")}`,y=0}else{let i=r[r.length-1];if(i===void 0)break;i.object?i.ranges.set(i.key,[i.from,a.length]):i.index++,h();let A=e.charCodeAt(l);if(A===(i.object?125:93))l++,r.pop();else{if(A!==44)throw new K(l);l++,h(),u=`${i.pointer}/${i.index}`,y=i.object?1:0}}if(h(),l!==n)throw new K(l);return t}function lt(e,t,a,r){let n=Math.min(Math.max(t,0),e.length);for(let l=0;l<n;l++){let u=e.charCodeAt(l);u===13?(a++,r=1):u===10?(l===0||e.charCodeAt(l-1)!==13)&&(a++,r=1):r++}return[a,r]}function js(e,t,a,r){let n=/\bposition (\d+)\b/.exec(e);if(n)return lt(t,parseInt(n[1],10),a,r);let l=/\bline (\d+) column (\d+)\b/.exec(e);if(l){let u=parseInt(l[1],10),y=parseInt(l[2],10);return[a+u-1,u===1?r+y-1:y]}if(/unexpected end|end of json input/i.test(e))return lt(t,t.length,a,r)}function It(e,t,a){return new Ke(`${e} (line ${t}, column ${a})`,"syntax",{type:"usecase",line:t,column:a})}function Fs(e,t){let a;try{a=JSON.parse(e)}catch(r){let n=r instanceof Error?r.message:String(r),[l,u]=t(),y=js(n,e,l,u);if(!y){let h=0;try{xt(e)}catch(f){f instanceof K&&(h=f.offset)}y=lt(e,h,l,u)}throw It(`Invalid JSON: ${n}`,y[0],y[1])}if(typeof a!="object"||a===null||Array.isArray(a)){let[r,n]=t();throw It("JSON value must have an object root",r,n)}return{value:a,propertyOrder:xt(e)}}var Ut=1,ot=2,nt=4,Yt=8,Jt=16,Xt=32,zt=64,Ue="DEPENDENCY_ARROW|GENERALIZATION|FORWARD_SOLID|BACKWARD_SOLID|MARKERLESS_SOLID|FORWARD_CIRCLE|BACKWARD_CIRCLE|FORWARD_CROSS|BACKWARD_CROSS",Ye="IDENTIFIER|PLAIN_STRING|MARKDOWN_STRING",Ps="PLAIN_STRING|MARKDOWN_STRING|LABEL_TEXT",Vt="ACC_TITLE_LINE|ACC_DESCR_LINE|ACC_DESCR_BLOCK|DIRECTION|ACTOR|SYSTEM_BOUNDARY|NOTE|JSON_DECLARATION_START|CLASS_DEF|CLASS|STYLE",Zt="WORD|PLAIN_STRING|NUMBER|HASH_COLOR|CSS_IDENTIFIER|CSS_ESCAPED_COMMA|DASH|DOT|PERCENT|CSS_PUNCTUATION|COLON|LPAREN|RPAREN|LBRACKET|RBRACKET|LBRACE|RBRACE|AT|MARKERLESS_SOLID",ee=new Uint8Array(67);function oe(e,t){for(let a of e.split("|"))if(a==="WORD")for(let r=1;r<=21;r++)ee[r]|=t;else ee[Gt.indexOf(a)]|=t}oe(`NEWLINE|COMMENT|${Vt}|${Ye}`,Ut);oe(`IDENTIFIER|${Ue}`,ot);oe(Zt,nt);oe(`STEREOTYPE_START|CLASS_SEPARATOR|IDENTIFIER|${Ue}|NEWLINE|EOF`,Yt);oe(`NEWLINE|COMMENT|ACTOR|${Ye}`,Jt);oe("FORWARD_SOLID|MARKERLESS_SOLID|FORWARD_CIRCLE|FORWARD_CROSS",Xt);oe("NEWLINE|IDENTIFIER|PLAIN_STRING|RBRACE",zt);var Gs=new Set(["allowmixing","newpage","package","rectangle","skinparam"]),U="",C=[],P=[],H=[],p=0,qt=0,F,Ge,Fe=[],Qt=0,es=0;function B(e){return U.slice(P[e],H[e])}function V(e){return[P[e],H[e]]}function Je(e){let[t,a]=Re(U,P[p]);throw new Ke(`Error parsing usecase diagram: ${e} at line ${t}, column ${a} [${P[p]},${H[p]})`,"syntax",{type:"usecase",line:t,column:a})}function ts(e){Je(`Expecting token of type --> ${e} <-- but found --> '${B(p)}' <--`)}function j(e){return C[p]!==e&&ts(Gt[e]),p++}function Z(e){let t=e.split("|").map((a,r)=>` ${r+1}. [${a}]`);Je(`Expecting: one of these possible Token sequences:
4
- ${t.join(`
5
- `)}
6
- but found: '${B(p)}'`)}function _t(){let e=Ye.split("|"),t=e.flatMap(n=>["NEWLINE","IDENTIFIER","PLAIN_STRING","RBRACE"].map(l=>`${n}, METADATA_START, ${l}`)),a=`STEREOTYPE_START|CLASS_SEPARATOR|IDENTIFIER|${Ue}|NEWLINE|EOF`.split("|"),r=e.flatMap((n,l)=>(l===0?["LPAREN","LBRACKET",...a]:a).map(u=>`${n}, ${u}`));return[Vt,...t,...r,...t].join("|")}function Ot(e){return e>=1&&e<=21}function kt(e){return e>=1&&e<=34}function ie(){qt=H[p-1],C[p]===39?p++:C[p]!==0&&Z("NEWLINE|EOF")}function Te(e){let t=C[e]===36?2:C[e]===35?1:0;return[P[e]+t,H[e]-t]}function rt(e){let t=Te(e);return{text:U.slice(t[0],t[1]),type:C[e]===36?"markdown":"text",span:t}}function ss(e){return e.replace(/\W/g,"_")}function me(){let e=C[p];if(e===35||e===36)return rt(p++);kt(e)||Z(Ps);let t=p;for(;kt(C[p]);)p++;let a=[P[t],H[p-1]];return{text:U.slice(a[0],a[1]),type:"text",span:a}}function re(e){return e===21||e===35}function Nt(){let e=p;re(C[p])||Z("IDENTIFIER|PLAIN_STRING"),p++,j(25);let t=p,a=C[p];!re(a)&&a!==19&&a!==20&&Z("IDENTIFIER|PLAIN_STRING|TRUE|FALSE"),p++;let r=Te(e),n=Te(t);return{key:U.slice(r[0],r[1]),value:a===19?!0:a===20?!1:U.slice(n[0],n[1]),span:[P[e],H[t]],keySpan:r,valueSpan:n}}function Hs(){let e=C[p],t=C[p+1],a=C[p+2];return e===24?re(t)||t===39&&(a===39||re(a)):e!==39?!1:t===24||re(t)||t===39&&(a===39||a===24||re(a))}function pt(){j(60);let e=[];for(;C[p]===39;)p++;if(re(C[p])){for(e.push(Nt());Hs();){if(C[p]===24)p++;else{for(;C[p]===39;)p++;C[p]===24&&p++}for(;C[p]===39;)p++;e.push(Nt())}for(C[p]===24&&p++;C[p]===39;)p++}return j(62),e}function dt(e){return e.map(({key:t,span:a,keySpan:r,valueSpan:n})=>({key:t,span:a,keySpan:r,valueSpan:n}))}function ct(e,t){do{p++;let a=j(21);e.push(B(a)),t.push(V(a))}while(C[p]===24)}function as(e){let t=p,a=C[p],r={id:"",label:void 0,span:Te(t),generated:a!==21,classes:[],classSpans:[],explicit:!1,nodeSpan:[0,0]};if(a===21){p++,r.id=B(t);let n=C[p];n===65||e&&n===63?(p++,r.label=me(),j(n===65?66:64),r.shape=n===65?"ellipse":"rect"):r.label=rt(t)}else a===35||a===36?(p++,r.label=rt(t),r.id=ss(r.label.text)):Z(Ye);return r}function He(e){let t=p,a=as(!e);if(e&&(a.shape=void 0),C[p]===60&&(a.metadata=pt()),C[p]===48){p++;let r=j(50);j(49),a.stereotype=B(r).trim(),a.stereotypeSpan=V(r)}return C[p]===52&&ct(a.classes,a.classSpans),a.explicit=!!(a.shape||a.metadata||a.stereotype),a.nodeSpan=[P[t],H[p-1]],a}function ut(e,t){return{id:e.id,kind:t,label:e.label,span:e.span,generated:e.generated,parent:Ge,shape:e.shape,metadata:e.metadata,stereotype:e.stereotype,classes:e.classes}}function vt(e,t){return{id:e.id,label:e.label,span:e.span,generated:e.generated,declares:t,classed:e.classes.length>0}}function ft(e,t){let a={id:e.id,span:e.nodeSpan,idSpan:e.span,labelSpan:e.label.span};return t&&(a.defines=!0),e.stereotypeSpan&&(a.stereotypeSpan=e.stereotypeSpan),e.metadata&&(a.metadata=dt(e.metadata)),e.classSpans.length>0&&(a.classSpans=e.classSpans),a}function Ze(e){if(C[p]<1||C[p]>36)return!1;for(let t=p+1;;t++){let a=C[t];if(a===59||(ee[a]&e)!==0)return!0;if(a<1||a>36)return!1}}function ge(e){let t=H[e]-P[e]-(C[e]===59?0:1);return Math.max(1,t-1)}function ls(){let e=p,t={type:"association",arrowType:0,minlen:1,target:void 0,span:[0,0]};C[p]===21&&C[p+1]===23&&(t.explicitId=B(p),t.explicitIdSpan=V(p),p+=2);let a=p,r=C[p++];if(r===47)j(25),C[p]!==17&&C[p]!==18&&Z("INCLUDE|EXTEND"),t.type=C[p]===17?"include":"extend",t.label={text:t.type,type:"text",span:V(p)},p++;else if(r===46)t.type="generalization";else if(r===53)t.minlen=ge(a);else if(r===54)t.arrowType=1,H[a]-P[a]===3&&Ze(0)?(t.label=me(),t.minlen=ge(j(59))):t.minlen=ge(a);else if(r===59)if(t.arrowType=2,H[a]-P[a]===2&&Ze(Xt)){t.label=me();let n=C[p];n===53?t.arrowType=0:n===55?t.arrowType=3:n===57?t.arrowType=4:n!==59&&Z("FORWARD_SOLID|MARKERLESS_SOLID|FORWARD_CIRCLE|FORWARD_CROSS"),(t.arrowType===0||t.arrowType===2)&&(t.minlen=ge(p)),p++}else t.minlen=ge(a);else r===55?t.arrowType=3:r===57?t.arrowType=4:r===56||r===58?(t.arrowType=r===56?5:6,Ze(0)&&(t.label=me(),j(59))):(p--,Z(Ue));return t.target=He(!1),t.span=[P[e],H[p-1]],t}function Q(e){return{kind:e,span:[0,0]}}function ns(e,t,a,r){let n=a.target;n.explicit&&F.elements.push(ut(n,"usecase")),F.relationships.push({source:vt(e,t),target:vt(n,n.explicit),span:a.span,id:a.explicitId,idSpan:a.explicitIdSpan,type:a.type,arrowType:a.arrowType,label:a.label,minlen:a.minlen}),r.push(ft(n,n.explicit));let l=Q("edge");return l.nodes=r,l.edges=[{id:a.explicitId??`edge-${Qt++}`,span:l.span}],a.explicitIdSpan&&(l.edges[0].idSpan=a.explicitIdSpan),a.label&&(l.edges[0].labelSpan=a.label.span),l}function rs(e){let t=Q("node");return t.nodes=e,t}function is(e){p++;let t=[He(!0)],a;if(C[p]===24)do p++,t.push(He(!0));while(C[p]===24);else e&&(ee[C[p]]&ot)!==0&&(a=ls());ie();for(let n of t)F.elements.push(ut(n,"actor"));let r=t.map(n=>ft(n,!0));return a?ns(t[0],!0,a,r):rs(r)}function os(e){let t=He(!1),a=e&&(ee[C[p]]&ot)!==0?ls():void 0;ie(),a||(t.explicit=!0,t.shape??(t.shape="ellipse")),t.explicit&&F.elements.push(ut(t,"usecase"));let r=[ft(t,t.explicit)];return a?ns(t,t.explicit,a,r):rs(r)}function Ks(){p++;let e=as(!0),t={id:e.id,label:e.label,span:e.span,generated:e.generated,classes:e.classes},a=C[p]===60?pt():void 0;C[p]===52&&ct(e.classes,e.classSpans),ie(),F.boundaries.push(t),Ge=t;let r=[];for(;(ee[C[p]]&Jt)!==0;)r.push(ps(!1));Ge=void 0;let n=j(4);ie();let l=Q("group");return l.group=t.id,l.idSpan=t.span,l.titleSpan=t.label.span,l.endSpan=V(n),l.classSpans=e.classSpans,r.length>0&&(l.children=r),a&&(l.metadata=dt(a),F.metadata.push({target:t.id,span:t.span,properties:a,statement:l})),l}function Lt(){let e=p,t=C[p];for(Ot(t)||t===27?p++:t===59?(p++,Ot(C[p])||ts("WORD"),p++):Z("WORD|CSS_IDENTIFIER|MARKERLESS_SOLID"),j(25),(ee[C[p]]&nt)===0&&Je(`Expecting: expecting at least one iteration which starts with one of these possible Token sequences::
7
- <[${Zt.replaceAll("|","] ,[")}]>
8
- but found: '${B(p)}'`);(ee[C[p]]&nt)!==0;)p++;return U.slice(P[e],H[p-1]).replaceAll("\\,",",")}function Dt(){let e=[Lt()];for(;C[p]===24;)p++,e.push(Lt());return e}function qe(){let e=[j(21)];for(;C[p]===24;)p++,e.push(j(21));return e}function De(e){let t=Te(e);return{id:B(e),span:t,idSpan:t}}function Us(){let e=p,t=C[p],a;if(t===41||t===42||t===40){p++;let r=B(e);t===40?F.accDescription=r.slice(r.indexOf("{")+1,r.lastIndexOf("}")).trim():t===42?F.accDescription=r.slice(r.indexOf(":")+1).trim():F.accTitle=r.slice(r.indexOf(":")+1).trim(),a=Q(t===41?"accTitle":"accDescr")}else if(t===5){p++;let r=C[p];(r<6||r>10)&&Z("TD|TB|BT|LR|RL"),F.direction=r===6?"TB":B(p),p++,a=Q("direction")}else{if(t===2)return is(!0);if(t===3)return Ks();if(t===11){p++,j(12);let r=j(21),n=me();F.notes.push({target:B(r),span:V(r),label:n}),a=Q("note"),a.ref=`note-${es++}`,a.refSpan=n.span,a.nodes=[De(r)]}else if(t===43){p++;let r=j(44),n=[],l=[];C[p]===52&&ct(n,l);let u=P[e]+4;for(;U.charCodeAt(u)===32||U.charCodeAt(u)===9;)u++;let y=u;for(;/\w/.test(U.charAt(y));)y++;let h={id:U.slice(u,y),value:{},propertyOrder:new Map,span:[u,y],classes:n};F.jsons.push(h),Fe.push([h,r]),a=Q("json"),a.nodes=[{id:h.id,span:h.span,idSpan:h.span,defines:!0,classSpans:l}],a.classSpans=l}else if(t===14){p++;let r=qe();F.classDefs.push({ids:r.map(B),styles:Dt()}),a=Q("classDef"),a.ref=B(r[0]),a.refSpan=V(r[0])}else if(t===15){p++;let r=qe(),n=qe();F.classes.push({targets:r.map(l=>({id:B(l),span:V(l)})),classes:n.map(B)}),a=Q("classAssign"),a.ref=B(n[0]),a.refSpan=V(n[0]),a.nodes=r.map(De)}else if(t===16){p++;let r=j(21);F.styles.push({target:B(r),span:V(r),styles:Dt()}),a=Q("style"),a.nodes=[De(r)]}else{let r=C[p+1];if(r===60){(ee[C[p+2]]&zt)===0&&Z(_t()),p++;let n=De(e);t!==21&&(n.id=ss(U.slice(n.span[0],n.span[1])));let l=pt();a=Q("metadata"),a.nodes=[n],a.metadata=dt(l),F.metadata.push({target:n.id,span:n.span,properties:l,statement:a})}else return(!((ee[r]&Yt)!==0||t===21&&(r===65||r===63))||t===21&&Gs.has(B(e).toLowerCase()))&&Z(_t()),os(!0)}}return ie(),a}function ps(e){let t=p,a=C[p];if(a===39)return p++,{kind:"blank",span:V(t)};if(a===38)return p++,ie(),{kind:"comment",span:V(t)};let r=e?Us():a===2?is(!1):os(!1);if(r.span=[P[t],qt],r.edges)for(let n of r.edges)n.span=r.span;return r}function Ys(e,t){U=e,{types:C,starts:P,ends:H}=Ls(e),p=0,F=Ms(),Ge=void 0,Fe=[],Qt=0,es=0;try{let a=j(1);ie();let r=[];for(;(ee[C[p]]&Ut)!==0;)r.push(ps(!0));C[p]!==0&&Je(`Redundant input, expecting EOF but found: ${B(p)}`);for(let[n,l]of Fe){let u=Fs(B(l),()=>Re(e,P[l]));n.value=u.value,n.propertyOrder=u.propertyOrder}return Bs(e,F,V(a),r,t)}finally{U="",C=P=H=Fe=[]}}var Js={normal:"usecaseActor",hollow:"usecaseActorHollow",awesome:"usecaseActorAwesome",icon:"usecaseActorIcon"},Qe=[["none","arrow_point"],["arrow_point","none"],["none","none"],["none","arrow_circle"],["none","arrow_cross"],["arrow_circle","none"],["arrow_cross","none"]];function Mt(e){return typeof e=="string"?e:e===null?"null":String(e)}function Xs(e){let t=[],a=[[e.value,"",""]],r=[];for(;a.length>0;){let[n,l,u]=a.pop();if(r.length=0,Array.isArray(n))n.length===0?t.push({key:l,accessibleKey:l,value:"[]"}):n.every(y=>y===null||typeof y!="object")?n.forEach((y,h)=>t.push({key:h===0?l:"",accessibleKey:l,value:Mt(y)})):n.forEach((y,h)=>r.push([y,`${l}[${h}]`,`${u}/${h}`]));else if(n!==null&&typeof n=="object"){let y=n,h=e.propertyOrder.get(u)??Object.keys(y);h.length===0&&t.push({key:l,accessibleKey:l,value:"{}"});for(let f of h)r.push([Object.prototype.hasOwnProperty.call(y,f)?y[f]:void 0,l?`${l}.${f}`:f,`${u}/${f.replaceAll("~","~0").replaceAll("/","~1")}`])}else t.push({key:l,accessibleKey:l,value:Mt(n)});for(let y=r.length-1;y>=0;y--)a.push(r[y])}return t}function Ae(...e){return e.filter(Boolean).join(" ")}function zs(e){return e.type==="generalization"?["none","extension"]:e.type!=="association"?Qe[0]:Qe[e.arrowType]??Qe[2]}function Vs(e){let t=[],a=[],r=n=>{let l=new Map;for(let u of["default",...n]){let y=e.classDefs.get(u);if(y)for(let h of y.styles){let f=h.trim(),d=f.indexOf(":"),w=(d===-1?f:f.slice(0,d)).trim();w&&l.set(w,f)}}return[...l.values()]};for(let n of e.actors.values())t.push({id:n.id,label:n.label,labelType:n.labelType,shape:Js[n.type],isGroup:!1,padding:10,cssClasses:Ae("default","usecase-actor",`usecase-actor-${n.type}`,n.business&&"usecase-business",...n.classes),cssStyles:[...n.styles],cssCompiledStyles:r(n.classes),actorType:n.type,business:n.business,icon:n.icon||void 0,stereotype:n.stereotype||void 0,parentId:n.parentId||void 0});for(let n of e.useCases.values()){let l=n.shape==="ellipse";t.push({id:n.id,label:n.label,labelType:n.labelType,shape:l?n.business?"usecaseBusiness":"usecaseEllipse":"rect",isGroup:!1,padding:l?20:10,cssClasses:Ae("default","usecase-element",`usecase-${n.shape}`,n.business&&"usecase-business",...n.classes),cssStyles:[...n.styles],cssCompiledStyles:r(n.classes),business:n.business,stereotype:n.stereotype||void 0,parentId:n.parentId||void 0})}for(let n of e.notes.values())t.push({id:n.id,label:n.label,labelType:n.labelType,shape:"note",isGroup:!1,padding:10,cssClasses:"default usecase-note",cssStyles:[],cssCompiledStyles:r([]),noteTarget:n.target});for(let n of e.jsonNodes.values())t.push({id:n.id,label:n.id,labelType:"text",shape:"usecaseJsonTable",isGroup:!1,padding:10,cssClasses:Ae("default","usecase-json-table",...n.classes),cssStyles:[...n.styles],cssCompiledStyles:r(n.classes),jsonRows:Xs(n)});for(let n of e.systemBoundaries.values())t.push({id:n.id,label:n.label,labelType:n.labelType,shape:"usecaseSystemBoundary",isGroup:!0,padding:20,cssClasses:Ae("default","system-boundary",`system-boundary-${n.type}`,...n.classes),cssStyles:[...n.styles],cssCompiledStyles:r(n.classes),boundaryType:n.type});for(let n of e.relationships){let l=n.type==="include"||n.type==="extend",[u,y]=zs(n),h=n.animate||n.animation!==void 0,f={id:n.id,start:n.source,end:n.target,relationshipType:n.type,pattern:l?"dotted":"solid",arrowTypeStart:u,arrowTypeEnd:y,classes:Ae("default","relationship",`relationship-${n.type}`,...n.classes,h&&`edge-animation-${n.animation??"fast"}`),style:[...n.styles],cssCompiledStyles:r(n.classes),animate:n.animate,animation:n.animation,minlen:n.minlen,explicitId:n.explicitId,internal:!1};l?(f.label=n.type,f.labelType="text"):n.type==="association"&&(n.label&&(f.label=n.label),n.labelType&&(f.labelType=n.labelType)),a.push(f)}for(let n of e.notes.values())a.push({id:`${n.id}-edge`,start:n.id,end:n.target,relationshipType:"note",pattern:"dotted",arrowTypeStart:"none",arrowTypeEnd:"none",classes:"default relationship relationship-note",style:[],cssCompiledStyles:r([]),animate:!1,minlen:1,explicitId:!1,internal:!0});return{nodes:t,edges:a}}var Zs=32,qs=16,Qs=72,Me=20,et=26,ht=40,Se=60,Wt=6,tt=6,Ce=10,st=8,We=9,Pe=12,ea=14,Ee=' fill="var(--_s)" stroke="var(--_b)"';function Bt(e,t,a){var n;let r=(n=e.usecase)==null?void 0:n[t];return typeof r=="number"&&r>0?Math.min(r,2e3):a}function ta(e){return e.replace(/[&<>\\]/g,t=>`&#${t.charCodeAt(0)};`)}function ae(e,t,a,r,n,l=0){return Pt(e&&!t?ta(e):e,t,a,r,n,l)}function it(e,t,a,r){let n=a===1||a===2?1:-1,l=a===1||a===3,u=(l?e.w:e.h)/2,y=0;if(e.kind===0)l?(u=ht/2+3,y=(Se-e.h)/2):u+=2;else if(e.kind===1){let h=(l?e.h:e.w)/2;u*=Math.sqrt(Math.max(1-(r/h)**2,0))}return l?[t.x+n*u,t.y+y+r]:[t.x+r,t.y+n*u]}function ds(e,t){let a=t===1||t===3;if(e.kind===0)return a?Se*.5:ht*.6;let r=a?e.h:e.w;return e.kind===1?r*.6:r-16}function sa(e,t,a){let r=new Map,n=(l,u,y,h)=>{let f=t[l];if(f.isGroup)return;let d=u[y]-f.x,w=u[y+1]-f.y,i;if(Math.abs(Math.abs(w)-f.h/2)<.5)i=w<0?0:2;else if(Math.abs(Math.abs(d)-f.w/2)<.5)i=d<0?3:1;else return;let A=l*4+i,k={route:u,at:y,toward:u[h+(i&1?1:0)]},_=r.get(A);_?_.push(k):r.set(A,[k])};for(let l of e){let u=l.route.length-3;l.src===l.dst||u<3||(n(l.src,l.route,0,3),n(l.dst,l.route,u,u-3))}for(let[l,u]of r){let y=l>>2,h=l&3,f=a[y],d=u.length>1?Math.min(ea,ds(f,h)/(u.length-1)):0;u.sort((w,i)=>w.toward-i.toward);for(let w=0;w<u.length;w++){let[i,A]=it(f,t[y],h,(w-(u.length-1)/2)*d);u[w].route[u[w].at]=i,u[w].route[u[w].at+1]=A}}}function aa(e,t,a,r,n){let l=e-a*Pe,u=t-r*Pe,y=Pe*.5;return`<path class="pele-marker" d="M${g(e)},${g(t)}L${g(l-r*y)},${g(u+a*y)}L${g(l+r*y)},${g(u-a*y)}Z" fill="var(--_bg)" stroke="${n}" stroke-linejoin="round"/>`}function Be(e){return e==="extension"?Pe:Is(e)}function jt(e,t,a,r,n,l){return e==="extension"?aa(t,a,r,n,l):xs(e,t,a,r,n,l)}function la(e,t){let a=e.node,r=e.style.shape,n=` fill="none" stroke="var(--_b)"${e.style.line}`,l=-21,u=9,y;return a.actorType==="hollow"?(u=8,y=`<circle cy="-21" r="8" fill="var(--_bg)" stroke="var(--_b)"${r}/><path d="M-20,-9H20V0H5.5L20,15.5L12,25.5L0,12L-12,25.5L-20,15.5L-5.5,0H-20Z" fill="var(--_bg)" stroke="var(--_b)" stroke-linejoin="round"${r}/>`):a.actorType==="awesome"?y=`<path d="M0,-30A11,11 0 1 1 0,-8A11,11 0 1 1 0,-30ZM-20,25C-20,9 -12,-3 0,-3C12,-3 20,9 20,25C20,28 18,30 15,30H-15C-18,30 -20,28 -20,25Z" fill="var(--_b)"${r}/>`:a.actorType==="icon"?(l=-14,u=12,y=`<rect x="-22" y="-26" width="44" height="44" rx="${je}"${Ee}${r}/><svg class="pele-icon" data-icon="${at(a.icon??"")}" x="-14" y="-18" width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">${(t==null?void 0:t(a.icon??""))??""}</svg>`):y=`<circle cy="-21" r="9"${Ee}${r}/><path d="M0,-12V10M-14,-3H14M0,10L-12,30M0,10L12,30"${n}/>`,a.business&&(y+=`<path class="pele-business" d="M${g(.12*u)},${g(l+.99*u)}L${g(.92*u)},${g(l-.39*u)}"${n}/>`),y}function na(e,t,a){return Es(e.direction)?Ts(a,r=>Ft(e,t,a,r)):Ft(e,t,a,!1)}function Ft(e,t,a,r){let n=Vs(e),l=a.fontSize??16,u=Math.round(l*.875),y=Math.round(l*.8125),h=a.measurer??ms(a.fontFamily),f=a.padding??8,d=a.icons,w=r?"TB":gs(e.direction),i=w==="LR"||w==="RL",A=new Map,k=[],_=[];n.nodes.forEach((S,$)=>A.set(S.id,$));for(let S of n.nodes){let $=Et(S.cssStyles.length>0?S.cssCompiledStyles.concat(S.cssStyles):S.cssCompiledStyles),T=($.bold?1:0)|($.italic?2:0),D=$.fontSize??l,s=S.labelType==="markdown",c=ae(S.stereotype&&`«${S.stereotype}»`,!1,h,y,200,T),o={node:S,kind:2,style:$,label:c,stereotype:c,w:0,h:0,rows:[],keyW:0,headH:0,loops:0},b;if(S.isGroup){o.kind=4,o.label=ae(S.label,s,h,D,4e3,T);let m=o.label.height;b=mt(0,0),b.isGroup=!0,b.padX=Me,b.padBottom=Me,b.padTop=S.boundaryType==="package"?m+2*tt+16:m>0?m+16:Me,b.minW=o.label.width+2*Me}else{if(S.jsonRows){o.kind=3,o.label=ae(S.label,!1,h,D,4e3,T|1);let m=0;for(let E of S.jsonRows){let N=ae(E.key,!1,h,u,4e3,T),L=ae(E.value,!1,h,u,260,T);o.rows.push([N,L]),o.keyW=Math.max(o.keyW,N.width),m=Math.max(m,L.width),o.h+=Math.max(L.height,Math.round(u*1.5))+st}o.keyW>0&&(o.keyW+=2*Ce),o.headH=Math.max(o.label.height,Math.round(D*1.5))+st,o.w=Math.max(o.label.width+2*Ce,o.rows.length>0?o.keyW+m+2*Ce:0,72),o.h+=o.headH}else if(S.actorType)o.kind=0,o.label=ae(S.label,s,h,D,140,T),o.w=Math.max(ht,o.label.width,c.width),o.h=Se+Wt+c.height+o.label.height;else{o.label=ae(S.label,s,h,S.shape==="note"?u:D,180,T);let m=Math.max(o.label.width,c.width),E=o.label.height+c.height;S.shape==="usecaseEllipse"||S.shape==="usecaseBusiness"?(o.kind=1,o.w=Math.max(m+2*S.padding+(S.business?16:4),88),o.h=Math.max(E+28,48)):S.shape==="note"?(o.w=m+2*S.padding+6,o.h=E+18):(o.w=Math.max(m+2*S.padding+12,80),o.h=Math.max(E+24,44))}b=mt(o.w,o.h)}b.seq=k.length,k.push(o),_.push(b)}n.nodes.forEach((S,$)=>{_[$].parent=S.parentId!==void 0?A.get(S.parentId)??-1:-1});let v=[],R=[],W=[];for(let S of n.edges){let $=A.get(S.start),T=A.get(S.end);if($===void 0||T===void 0)continue;let D=S.relationshipType==="include"||S.relationshipType==="extend",s=ae(D?`«${S.label}»`:S.label,S.labelType==="markdown",h,u,200);$===T&&(k[$].loops++,i?_[$].h+=2*(et+(s.height>0?s.height+8:0)):_[$].w+=2*(et+(s.width>0?s.width+12:0))),W.push(S),R.push(s),v.push({src:$,dst:T,minlen:S.minlen,labelW:s.width>0?s.width+12:0,labelH:s.height>0?s.height+4:0,route:[],labelX:0,labelY:0})}let Y=As(_,v,w,{nodeSep:Bt(t,"nodeSpacing",Zs),edgeSep:qs,rankSep:Bt(t,"rankSpacing",Qs),portSep:20}),te=Pt(e.title,!1,h,l,4e3,1),pe=te.height>0?te.height+12:0,he=Math.max(Y.width,te.width),xe=f+(he-Y.width)/2,Xe=f+pe;Cs(_,v,xe,Xe);let ne=Math.ceil(he+2*f),de=Math.ceil(Y.height+pe+2*f),Ie=new Map;for(let S of v)$s(Ie,S.route);sa(v,_,k);let ye="",be="";for(let S=0;S<k.length;S++){let $=k[S],T=_[S],D=$.node,s=Tt(D.cssClasses.replace(/^default\s?/,"")),c=at(D.id),o=$.style.text,b=$.style.shape,m=$.w,E=$.h;if($.kind===4){let x=T.x-T.w/2,O=T.y-T.h/2,I=` fill="var(--_a)" fill-opacity="0.5" stroke="var(--_b)"${b}`,M=` class="pele-cluster-label" fill="var(--_m)"${o}`,G;if(D.boundaryType==="package"){let J=Math.min($.label.width+2*tt+8,T.w),X=$.label.height+2*tt;G=`<rect class="pele-boundary-tab" x="${g(x)}" y="${g(O)}" width="${g(J)}" height="${g(X)}"${I}/><rect x="${g(x)}" y="${g(O+X)}" width="${g(T.w)}" height="${g(T.h-X)}"${I}/>`+q($.label,x+J/2,O+X/2,M,d)}else G=`<rect x="${g(x)}" y="${g(O)}" width="${g(T.w)}" height="${g(T.h)}" rx="${je}"${I}/>`+q($.label,ra(T,$.label.width,Ie),O+8+$.label.height/2,M,d);ye+=`<g class="pele-cluster pele-boundary${s}" data-id="${c}">${G}</g>`;continue}let N,L;if($.kind===0){L="pele-actor";let x=-E/2,O=x+Se+Wt+$.stereotype.height/2;N=`<g class="pele-actor-figure" transform="translate(0,${g(x+Se/2)})">${la($,d)}</g>`+q($.stereotype,0,O,` class="pele-stereotype" font-size="${y}" fill="var(--_m)"`,d)+q($.label,0,E/2-$.label.height/2,` class="pele-label"${o}`,d)}else if($.kind===3){L="pele-json";let x=-m/2,O=-E/2+$.headH,I="",M=`M${g(x)},${g(O)}H${g(x+m)}`;$.keyW>0&&(M+=`M${g(x+$.keyW)},${g(O)}V${g(E/2)}`);for(let[G,J]of $.rows){let X=Math.max(J.height,Math.round(u*1.5))+st;I+=q(G,x+Ce+G.width/2,O+X/2,' class="pele-json-key" fill="var(--_m)"',d)+ia(J,x+$.keyW+Ce,O+X/2,` class="pele-json-value"${o}`,d),O+=X}N=`<rect x="${g(x)}" y="${g(-E/2)}" width="${g(m)}" height="${g(E)}" rx="${je}"${Ee}${b}/><path class="pele-json-lines" d="${M}" fill="none" stroke="var(--_b)"${$.style.line}/>`+q($.label,0,-E/2+$.headH/2,` class="pele-label" font-weight="var(--_hw)"${o}`,d)+`<g font-size="${u}">${I}</g>`}else{let x=$.stereotype.height/2,O;if($.kind===1){if(L="pele-usecase",O=`<ellipse rx="${g(m/2)}" ry="${g(E/2)}"${Ee}${b}/>`,D.business){let I=m/2-15,M=m/2-5,G=J=>E/2*Math.sqrt(1-(J/(m/2))**2);O+=`<path class="pele-business" d="M${g(I)},${g(G(I))}L${g(M)},${g(-G(M))}" fill="none" stroke="var(--_b)"${$.style.line}/>`}}else if(D.shape==="note"){L="pele-note";let I=m/2,M=E/2;O=`<path d="M${g(-I)},${g(-M)}H${g(I-We)}L${g(I)},${g(We-M)}V${g(M)}H${g(-I)}Z" fill="var(--_a)" stroke="var(--_b)" stroke-linejoin="round"${b}/><path d="M${g(I-We)},${g(-M)}V${g(We-M)}H${g(I)}" fill="none" stroke="var(--_b)" stroke-linejoin="round"${$.style.line}/>`}else L="pele-usecase",O=`<rect x="${g(-m/2)}" y="${g(-E/2)}" width="${g(m)}" height="${g(E)}" rx="${je}"${Ee}${b}/>`;N=O+q($.stereotype,0,-$.label.height/2,` class="pele-stereotype" font-size="${y}" fill="var(--_m)"`,d)+q($.label,0,x,` class="pele-label"${D.shape==="note"?` font-size="${u}"`:""}${o}`,d)}be+=`<g class="pele-node ${L}${s}" data-id="${c}" transform="translate(${g(T.x)},${g(T.y)})">${N}</g>`}let ce="",se="",_e=new Map;for(let S=0;S<v.length;S++){let $=v[S],T=W[S],D=R[S],s=T.style.length>0||T.cssCompiledStyles.length>0?Et(T.cssCompiledStyles.concat(T.style)):void 0,c=T.arrowTypeStart,o=T.arrowTypeEnd,b;if($.src===$.dst){let N=_[$.src],L=k[$.src],x=_e.get($.src)??0;_e.set($.src,x+1);let O=i?2:1,I=Math.min(ds(L,O)/2,8+x*6),M=et+x*8,[G,J]=it(L,N,O,-I),[X,Oe]=it(L,N,O,I),ke=Math.hypot(M,I)||1,ue=i?I/ke:M/ke,fe=i?M/ke:I/ke,Ne=Be(c),yt=Be(o),bt=($t,gt,At,ve)=>i?`${g($t+At*I*(ve?1:0))},${g(gt+ve)}`:`${g($t+ve)},${g(gt+At*I*(ve?1:0))}`,cs=i?G-ue*Ne:G+ue*Ne,us=i?J+fe*Ne:J-fe*Ne,fs=X+ue*yt,hs=Oe+fe*yt;b={d:`M${g(cs)},${g(us)}C${bt(G,J,-1,M)} ${bt(X,Oe,1,M)} ${g(fs)},${g(hs)}`,sx:G,sy:J,sdx:i?ue:-ue,sdy:i?-fe:fe,ex:X,ey:Oe,edx:-ue,edy:-fe},i?($.labelX=N.x,$.labelY=Math.max(J,Oe)+M*.75+6+D.height/2):($.labelX=Math.max(G,X)+M*.75+8+D.width/2,$.labelY=N.y)}else{if($.route.length<6)continue;b=ws($.route,void 0,Be(c),Be(o))}let m=s!=null&&s.stroke?_s(s.stroke):"var(--_l)",E=T.internal?"2 3":T.pattern==="dotted"?"5 4":T.animate?"9 5":"";if(ce+=`<g class="pele-edge pele-${T.relationshipType}${Tt(T.classes.replace(/^default relationship relationship-\S+\s?/,""))}" data-id="${at(T.id)}"${(s==null?void 0:s.line)??""}><path d="${b.d}"${E?` stroke-dasharray="${E}"`:""}/>`+jt(c,b.sx,b.sy,b.sdx,b.sdy,m)+jt(o,b.ex,b.ey,b.edx,b.edy,m)+"</g>",D.width>0){let N=$.labelX,L=$.labelY,x=T.relationshipType==="include"||T.relationshipType==="extend";se+=Rs(T.id,D,N,L,(x?' fill="var(--_m)"':"")+((s==null?void 0:s.text)??""),d)}}return{svg:Os("usecase",ne,de,l,a,e,q(te,ne/2,f+te.height/2,' class="pele-title" font-weight="var(--_tw)"')+(ye?`<g class="pele-clusters">${ye}</g>`:"")+(ce?`<g class="pele-edges" fill="none" stroke="var(--_l)" stroke-linecap="round">${ce}</g>`:"")+(se?`<g class="pele-edge-labels" font-size="${u}">${se}</g>`:"")+`<g class="pele-nodes">${be}</g>`),width:ne,height:de,links:[]}}function ra(e,t,a){let r=a.get(Math.round(e.y-e.h/2));if(t===0||r===void 0)return e.x;let n=e.x-e.w/2+6,l=e.x+e.w/2-6,u=r.filter(i=>i>n&&i<l).sort((i,A)=>i-A);u.push(l);let y=t/2+6,h=e.x,f=1/0,d=0,w=n;for(let i of u){if(i-w>=2*y){let A=Math.min(Math.max(e.x,w+y),i-y);Math.abs(A-e.x)<f&&(f=Math.abs(A-e.x),h=A)}else f===1/0&&i-w>d&&(d=i-w,h=(w+i)/2);w=i}return h}function ia(e,t,a,r,n){if(e.lines.length<2)return q(e,t+e.width/2,a,r,n);let l="";for(let u=0;u<e.lines.length;u++){let y={...e,lines:[e.lines[u]],widths:[e.widths[u]],height:e.lineHeight};l+=q(y,t+e.widths[u]/2,a-e.height/2+(u+.5)*e.lineHeight,r,n)}return l}var ba={type:"usecase",parse:(e,t,a)=>Ys(e,a),render:na};export{ba as usecase};
@@ -1,2 +0,0 @@
1
- var $e=Object.defineProperty;var ve=(r,e,a)=>e in r?$e(r,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):r[e]=a;var It=(r,e,a)=>ve(r,typeof e!="symbol"?e+"":e,a);import{p as be,h as oe}from"./DKTLEL5E-B7ILCVTH.js";import{x as Ae,D as Ie,G as te,M as ke,$ as Te,v as De,w as Fe,V as Re,W as _e,O as ze,P as Ce,j as je,Y as He,z as Ee,U as Se}from"./VMV7XPHP-6QkisQwm.js";import{D as he,S as Ge,w as Oe}from"./HWDLEDTA-C_JcdBMO.js";import{_ as Jt,y as Kt,f as Qt,a as se,x as C,$ as Pe}from"./RZSVICHU-BiwjruZZ.js";import{x as Le,H as We}from"./lazy-CKqR1774.js";import"./index-392ivruk.js";function kt(r){throw new Le(r,"semantic",{type:"architecture"})}var Je=class{constructor(){It(this,"type","architecture");It(this,"title");It(this,"accTitle");It(this,"accDescr");It(this,"nodes",new Map);It(this,"groups",new Map);It(this,"edges",[]);It(this,"layoutHints",[]);It(this,"registered",new Map)}register(r,e,a){this.registered.has(e)&&kt(`The ${r} id [${e}] is already in use by another ${this.registered.get(e)}`),a!==void 0&&(e===a&&kt(`The ${r} [${e}] cannot be placed within itself`),this.registered.has(a)||kt(`The ${r} [${e}]'s parent does not exist. Please make sure the parent is created before this ${r}`),this.registered.get(a)==="node"&&kt(`The ${r} [${e}]'s parent is not a group`)),this.registered.set(e,r==="group"?"group":"node")}addService({id:r,icon:e,iconText:a,title:h,in:n}){this.register("service",r,n),this.nodes.set(r,{id:r,type:"service",icon:e,iconText:a,title:h,in:n})}addJunction({id:r,in:e}){this.register("junction",r,e),this.nodes.set(r,{id:r,type:"junction",in:e})}addGroup({id:r,icon:e,title:a,in:h}){this.register("group",r,h),this.groups.set(r,{id:r,icon:e,title:a,in:h})}addEdge({lhsId:r,rhsId:e,lhsDir:a,rhsDir:h,lhsInto:n,rhsInto:l,lhsGroup:c,rhsGroup:M,title:s}){let v=[["left",r,c],["right",e,M]];for(let[x,u]of v)this.registered.has(u)||kt(`The ${x}-hand id [${u}] does not yet exist. Please create the service/group before declaring an edge to it.`);for(let[x,u]of v)this.nodes.has(u)||kt(`The ${x}-hand id [${u}] is a group. Add {group} to a service inside it instead.`);let b=this.nodes.get(r).in;if(b!==void 0&&b===this.nodes.get(e).in)for(let[x,u,_]of v)_&&kt(`The ${x}-hand id [${u}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);this.edges.push({lhsId:r,lhsDir:a,lhsInto:n,lhsGroup:c,rhsId:e,rhsDir:h,rhsInto:l,rhsGroup:M,title:s})}addLayoutHint(r){r.members.length<2&&kt(`An align directive requires at least two members; got ${r.members.length}`);let e=new Set;for(let a of r.members)this.registered.get(a)!=="node"&&kt(`align ${r.direction} references [${a}], which is not a service or junction`),e.has(a)&&kt(`align ${r.direction} lists [${a}] more than once`),e.add(a);this.layoutHints.push(r)}};function Ne(r,e){r.accDescr&&(e.accDescr=r.accDescr.replace(/\n\s+/g,`
2
- `)),r.accTitle&&(e.accTitle=r.accTitle.replace(/^\s+/g,"")),r.title&&(e.title=r.title);for(let a of r.groups)e.addGroup(a);for(let a of r.services)e.addService(a);for(let a of r.junctions)e.addJunction(a);for(let a of r.edges)e.addEdge(a);for(let a of r.alignments)e.addLayoutHint({direction:a.direction,members:[...a.members]})}var xe={name:"ID",pattern:/[\w]([-\w]*\w)?/y};function jt(r){return{name:r,pattern:r,longer:[xe]}}var ce=[jt("architecture-beta"),jt("junction"),jt("service"),jt("column"),jt("group"),jt("align"),jt("row"),{name:"--",pattern:"--",longer:[te]},jt("in"),{name:":",pattern:":"},{name:"-",pattern:"-",longer:[te]},{name:"ARROW_DIRECTION",pattern:/L|R|T|B/y},{name:"ARROW_GROUP",pattern:/\{group\}/y},{name:"ARROW_INTO",pattern:/<|>/y},ke,Te,De,Fe,xe,Re,_e,te,ze,Ce,{name:"ARCH_ICON",pattern:/\([\w-:]+\)/y},{name:"ARCH_TITLE",pattern:/\[(?:"([^"\\]|\\.)*"|'([^'\\]|\\.)*'|[^\[\]\r\n]+)\]/y}];function ee(r){let e=r.slice(1,-1).trim();return(e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))&&(e=e.slice(1,-1).replace(/\\"/g,'"').replace(/\\'/g,"'")),e.trim()}function Ue(r){let e=new Ae(Ie(r,ce,"architecture"),ce,"architecture"),a={$type:"Architecture",groups:[],services:[],junctions:[],edges:[],alignments:[]},h=l=>e.kinds[e.i]===l,n=()=>{if(e.kind!==-1)for(e.kind!==19&&e.fail("a line break or the end of input");e.kind===19;)e.i++};for(;e.kind===19;)e.i++;for(e.expect(0);e.kind!==-1;){switch(e.kind){case 19:e.i++;continue;case 14:a.accDescr=Se(e.take());break;case 15:a.accTitle=Ee(e.take());break;case 16:a.title=He(e.take());break;case 4:{e.i++;let l={$type:"Group",id:e.expect(18)};h(24)&&(l.icon=e.take().slice(1,-1)),h(25)&&(l.title=ee(e.take())),e.accept(8)&&(l.in=e.expect(18)),a.groups.push(l);break}case 2:{e.i++;let l={$type:"Service",id:e.expect(18)};h(17)?l.iconText=je(e.take()):h(24)&&(l.icon=e.take().slice(1,-1)),h(25)&&(l.title=ee(e.take())),e.accept(8)&&(l.in=e.expect(18)),a.services.push(l);break}case 1:{e.i++;let l={$type:"Junction",id:e.expect(18)};e.accept(8)&&(l.in=e.expect(18)),a.junctions.push(l);break}case 18:{let l=e.take(),c=e.accept(12);e.expect(9);let M=e.expect(11),s=e.accept(13),v;e.accept(7)||(h(10)||e.fail("'--' or '-'"),e.i++,v=ee(e.expect(25)),e.expect(10));let b=e.accept(13),x=e.expect(11);e.expect(9);let u=e.expect(18),_=e.accept(12);a.edges.push({$type:"Edge",lhsId:l,lhsGroup:c,lhsDir:M,lhsInto:s,title:v,rhsInto:b,rhsDir:x,rhsId:u,rhsGroup:_});break}case 5:{e.i++,!h(6)&&!h(3)&&e.fail("'row' or 'column'");let l=e.take(),c=[e.expect(18),e.expect(18)];for(;h(18);)c.push(e.take());a.alignments.push({$type:"Alignment",direction:l,members:c});break}default:e.fail("a group, a service, a junction, an edge, an alignment, a title, or a line break")}n()}return a}var qe=new Map([["database","M4 6a8 3 0 1 0 16 0a8 3 0 1 0-16 0M4 6v12a8 3 0 0 0 16 0V6M4 12a8 3 0 0 0 16 0"],["server","M3 4h18v7H3zM3 13h18v7H3zM7 7.5h.01M7 16.5h.01M11 7.5h6M11 16.5h6"],["disk","M5 3h14v18H5zM12 6.5a4 4 0 1 0 0 8a4 4 0 1 0 0-8M12 10.5h.01M8 18h3"],["internet","M3 12a9 9 0 1 0 18 0a9 9 0 1 0-18 0M3 12h18M12 3a13 13 0 0 0 0 18M12 3a13 13 0 0 1 0 18"],["cloud","M7 18a4 4 0 0 1-.5-7.97A6 6 0 0 1 18 9.5a4.25 4.25 0 0 1-.5 8.5z"]]);function Be(r){let e=qe.get(r);return e===void 0?"":`<path d="${e}" stroke="var(--_fg)" stroke-width="1.5"/>`}var Nt=[-1,1,0,0],Vt=[0,0,-1,1];function Yt(r){return r==="L"?0:r==="R"?1:r==="T"?2:3}var de=64,Zt=2**25,pe=2**26;function Qe(r,e,a,h){let n=r.length,l=e.length,c=l,M=new Map,s=new Map,v=new Int32Array(n+l).fill(c),b=new Int32Array(l+1),x=[];for(let i=0;i<=l;i++)x.push([]);e.forEach((i,o)=>{s.set(i.id,o);let d=i.in===void 0?void 0:s.get(i.in);d!==void 0&&d!==o?(v[n+o]=d,b[o]=b[d]+1):b[o]=1}),r.forEach((i,o)=>{M.set(i.id,o);let d=i.in===void 0?void 0:s.get(i.in);d!==void 0&&(v[o]=d),x[v[o]].push(o)});for(let i=0;i<l;i++)x[v[n+i]].push(n+i);let u=[],_=[],T=[],k=[],F=[],j=[],q=new Array(n+l),ut=new Array(n+l),xt=(i,o,d,g,w)=>{if(i===o)return;let z=i,H=o,G=v[i],A=v[o];for(;G!==A;)b[G]>=b[A]?(z=n+G,G=v[z]):(H=n+A,A=v[H]);let Y=u.length;u.push(i),_.push(o),T.push(d),k.push(g),F.push(z),j.push(H),(w[z]??(w[z]=[])).push(Y),(w[H]??(w[H]=[])).push(Y)};for(let i of h){let o=i.direction==="row";for(let d=1;d<i.members.length;d++){let g=M.get(i.members[d-1]),w=M.get(i.members[d]);g!==void 0&&w!==void 0&&xt(g,w,o?1:3,o?0:2,q)}}for(let i of[!1,!0])for(let o of a){if(o.lhsDir===o.rhsDir!==i)continue;let d=M.get(o.lhsId),g=M.get(o.rhsId);d!==void 0&&g!==void 0&&xt(d,g,Yt(o.lhsDir),Yt(o.rhsDir),ut)}let L=new Int32Array(n+l),S=new Int32Array(n+l),V=new Int32Array(n+l).fill(1),U=new Int32Array(n+l).fill(1),wt=new Uint8Array(n+l),E=[],ft=new Map,rt=[],mt=new Map,Tt=0,gt=0,Mt=0,it=(i,o)=>{gt=0,Mt=0;for(let d=i;d!==o;d=n+v[d])gt+=L[d],Mt+=S[d]},ot=(i,o,d)=>{if(L[i]=o,S[i]=d,wt[i]=1,E.push(i),V[i]*U[i]>de){rt.push(i);return}for(let g=d;g<d+U[i];g++)for(let w=o;w<o+V[i];w++)ft.set((w+Zt)*pe+g+Zt,i)},Ht=(i,o,d,g,w)=>L[i]<o+g&&o<L[i]+V[i]&&S[i]<d+w&&d<S[i]+U[i],Ut=(i,o,d,g)=>{if(d*g>de){for(let w=Tt;w<E.length;w++)if(Ht(E[w],i,o,d,g))return E[w];return-1}for(let w=o;w<o+g;w++)for(let z=i;z<i+d;z++){let H=ft.get((z+Zt)*pe+w+Zt);if(H!==void 0)return H}for(let w of rt)if(Ht(w,i,o,d,g))return w;return-1},Dt=(i,o,d,g,w,z)=>{let H=`${i},${o},${d},${g},${w},${z}`,G=mt.get(H)??0;for(;;){let A=Ut(i+G*w,o+G*z,d,g);if(A<0)break;G=w>0?L[A]+V[A]-i:w<0?i+d-L[A]:z>0?S[A]+U[A]-o:o+g-S[A]}return mt.set(H,G),G},Gt=(i,o)=>{let d=F[o]===i,g=d?j[o]:F[o];if(wt[g])return;let w=d?T[o]:k[o],z=d?k[o]:T[o];it(d?u[o]:_[o],i);let H=gt,G=Mt;it(d?_[o]:u[o],g);let A=Nt[w],Y=Vt[w],Ct=0,B=0,nt=Nt[w]+Nt[z]===0&&Vt[w]+Vt[z]===0;w===z?(A=Nt[w]===0?1:0,Y=1-A):nt||(Ct=-Nt[z],B=-Vt[z]);let O,J;if(A!==0?(O=A>0?L[i]+V[i]:L[i]-V[g],J=S[i]+G+B-Mt):(J=Y>0?S[i]+U[i]:S[i]-U[g],O=L[i]+H+Ct-gt),nt){let I=ut[g];if(I!==void 0&&I.length>1){let P=[];for(let N of I){let tt=j[N]===g,Et=tt?F[N]:j[N];if(!wt[Et]||(tt?T[N]:k[N])!==w||(tt?k[N]:T[N])!==z)continue;it(tt?u[N]:_[N],Et);let Ot=A!==0?S[Et]+Mt:L[Et]+gt;it(tt?_[N]:u[N],g),P.push(Ot-(A!==0?Mt:gt))}P.length>1&&(P.sort((N,tt)=>N-tt),A!==0?J=P[P.length-1>>1]:O=P[P.length-1>>1])}let W=A===0?1:0,Z=1-W,lt=Dt(O,J,V[g],U[g],W,Z),X=lt===0?0:Dt(O,J,V[g],U[g],-W,-Z),ht=lt<=X?lt:-X;O+=W*ht,J+=Z*ht}else{let I=Dt(O,J,V[g],U[g],A,Y);O+=A*I,J+=Y*I}ot(g,O,J)},$t=i=>{let o=x[i];if(o.length===0)return;E.length=0;let d=[];for(let I of o){if(wt[I])continue;Tt=E.length,d.push(Tt),ft.clear(),rt.length=0,mt.clear(),ot(I,0,0);let W=Tt,Z=Tt,lt=0;for(;;){if(W<E.length){let ht=E[W++],P=q[ht];if(P!==void 0)for(let N of P)Gt(ht,N);continue}if(Z>=E.length)break;let X=ut[E[Z]];if(X===void 0||lt>=X.length){Z++,lt=0;continue}Gt(E[Z],X[lt++])}}d.push(E.length);let g=d.length-1,w=new Array(g),z=new Array(g),H=new Array(g),G=new Array(g),A=0,Y=0;for(let I=0;I<g;I++){let W=1/0,Z=1/0,lt=-1/0,X=-1/0;for(let ht=d[I];ht<d[I+1];ht++){let P=E[ht];W=Math.min(W,L[P]),Z=Math.min(Z,S[P]),lt=Math.max(lt,L[P]+V[P]),X=Math.max(X,S[P]+U[P])}w[I]=W,z[I]=Z,H[I]=lt-W,G[I]=X-Z,A+=H[I]*G[I],Y=Math.max(Y,H[I])}let Ct=Math.max(Y,Math.ceil(Math.sqrt(A*2))),B=0,nt=0,O=0,J=0;for(let I=0;I<g;I++){B>0&&B+H[I]>Ct&&(nt+=O,B=0,O=0);for(let W=d[I];W<d[I+1];W++)L[E[W]]+=B-w[I],S[E[W]]+=nt-z[I];B+=H[I],O=Math.max(O,G[I]),J=Math.max(J,B)}i<l&&(V[n+i]=J,U[n+i]=nt+O)};for(let i=l-1;i>=0;i--)$t(i);$t(c);let at=new Int32Array(l),yt=new Int32Array(l),vt=new Int32Array(l),Ft=new Uint8Array(l);for(let i=0;i<l;i++){let o=v[n+i];vt[i]=o===c?-1:o,at[i]=L[n+i]+(o===c?0:at[o]),yt[i]=S[n+i]+(o===c?0:yt[o]),x[i].length===0&&(Ft[i]=1)}let Rt=new Int32Array(n),_t=new Int32Array(n),zt=new Int32Array(n);for(let i=0;i<n;i++){let o=v[i];zt[i]=o===c?-1:o,Rt[i]=L[i]+(o===c?0:at[o]),_t[i]=S[i]+(o===c?0:yt[o])}return{col:Rt,row:_t,groupCol:at,groupRow:yt,groupCols:V.slice(n),groupRows:U.slice(n),groupParent:vt,groupEmpty:Ft,nodeParent:zt}}var et=12,Ve=6,ue=4,fe=3,Ze=[-1,1,0,0],Ke=[0,0,-1,1];function re(r,e,a,h,n){let l=r.architecture,c=l!==null&&typeof l=="object"&&!Array.isArray(l)?l[e]:void 0;return typeof c=="number"&&Number.isFinite(c)?Math.min(n,Math.max(h,c)):a}function ge(r){let e=new Map;for(let a of r.sort((h,n)=>h-n))e.has(a)||e.set(a,e.size);return e}function ye(r,e,a,h,n){return`<svg class="pele-icon" data-icon="${Kt(r)}" x="${C(e)}" y="${C(a)}" width="${C(h)}" height="${C(h)}" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">${(n==null?void 0:n(r))??Be(r)}</svg>`}function Ye(r,e,a,h){let n=r.lines.length>a;if(!n&&r.width<=e)return r;let l=h.width("…",r.size,0),c=[],M=[],s=0;for(let v=0;v<Math.min(a,r.lines.length);v++){let b=r.lines[v].map(u=>({...u})),x=r.widths[v];if(x>e||n&&v===a-1)for(;;){let u=b[b.length-1];if(u===void 0){b.push({text:"…",style:0,width:l}),x=l;break}let _=x-u.width;if(u.icon===void 0&&_+l<e){let T=0,k=u.text.length;for(;T<k;){let j=T+k+1>>1;_+h.width(u.text.slice(0,j),r.size,u.style)+l<=e?T=j:k=j-1}let F=T>0?u.text.charCodeAt(T-1):0;F>=55296&&F<=56319&&T--,u.text=u.text.slice(0,T).trimEnd()+"…",u.width=h.width(u.text,r.size,u.style),x=_+u.width;break}b.pop(),x=_}c.push(b),M.push(x),s=Math.max(s,x)}return{...r,lines:c,widths:M,width:s,height:c.length*r.lineHeight}}function Xe(r,e){let{x:a,y:h,dx:n,dy:l}=r,{x:c,y:M,dx:s,dy:v}=e,b=a+n*et,x=h+l*et,u=c+s*et,_=M+v*et;if(n*s+l*v===0){let j=n!==0?c:a,q=n!==0?h:M;return(j-a)*n+(q-h)*l>0&&(j-c)*s+(q-M)*v>0?[a,h,j,q,c,M]:n!==0?[a,h,b,x,b,_,u,_,c,M]:[a,h,b,x,u,x,u,_,c,M]}let T=n!==0,k=T?M-h:c-a;if(n===-s&&l===-v){if((c-a)*n+(M-h)*l>0){if(Math.abs(k)<.5)return[a,h,c,M];if(T){let xt=n>0?r.x1:e.x1,L=n>0?e.x0:r.x0,S=xt<L?(xt+L)/2:(a+c)/2;return[a,h,S,h,S,M,c,M]}let j=l>0?r.y1:e.y1,q=l>0?e.y0:r.y0,ut=j<q?(j+q)/2:(h+M)/2;return[a,h,a,ut,c,ut,c,M]}}else if(Math.abs(k)>=1){if(T){let q=n>0?Math.max(a,c)+et:Math.min(a,c)-et;return[a,h,q,h,q,M,c,M]}let j=l>0?Math.max(h,M)+et:Math.min(h,M)-et;return[a,h,a,j,c,j,c,M]}if(T){let j=r.y1+et<=e.y0?(r.y1+e.y0)/2:e.y1+et<=r.y0?(e.y1+r.y0)/2:Math.max(r.y1,e.y1)+et;return[a,h,b,h,b,j,u,j,u,M,c,M]}let F=r.x1+et<=e.x0?(r.x1+e.x0)/2:e.x1+et<=r.x0?(e.x1+r.x0)/2:Math.max(r.x1,e.x1)+et;return[a,h,a,x,F,x,F,_,c,_,c,M]}function tr(r){let e=[r[0],r[1]];for(let a=2;a<r.length;a+=2){let h=r[a],n=r[a+1],l=e.length,c=Math.abs(h-e[l-2])<.01,M=Math.abs(n-e[l-1])<.01;c&&M||(l>=4&&(c&&Math.abs(e[l-4]-e[l-2])<.01||M&&Math.abs(e[l-3]-e[l-1])<.01)?(e[l-2]=h,e[l-1]=n):e.push(h,n))}return e}function er(r,e,a){let h=r.length/2,n=new Array(h),l=new Array(h);for(let s=0;s<h;s++)n[s]=r[s*2],l[s]=r[s*2+1];let c=(s,v,b)=>{let x=Math.hypot(n[v]-n[s],l[v]-l[s]),u=Math.min(b,Math.max(0,x-1));x>0&&u>0&&(n[s]+=(n[v]-n[s])/x*u,l[s]+=(l[v]-l[s])/x*u)};c(0,1,e),c(h-1,h-2,a);let M=`M${C(n[0])},${C(l[0])}`;for(let s=1;s<h-1;s++){let v=Math.hypot(n[s]-n[s-1],l[s]-l[s-1]),b=Math.hypot(n[s+1]-n[s],l[s+1]-l[s]),x=Math.min(Ve,v/2,b/2);if(x<.5){M+=`L${C(n[s])},${C(l[s])}`;continue}let u=n[s]-(n[s]-n[s-1])/v*x,_=l[s]-(l[s]-l[s-1])/v*x,T=n[s]+(n[s+1]-n[s])/b*x,k=l[s]+(l[s+1]-l[s])/b*x;M+=`L${C(u)},${C(_)}Q${C(n[s])},${C(l[s])} ${C(T)},${C(k)}`}return M+`L${C(n[h-1])},${C(l[h-1])}`}function rr(r,e,a){return be(a,h=>ir(r,e,a,h))}function ir(r,e,a,h){let n=re(e,"iconSize",48,8,512),l=re(e,"fontSize",a.fontSize??16,4,128),c=Math.min(re(e,"padding",20,0,256),h?12:1/0),M=Math.round(l*.875),s=a.measurer??We(a.fontFamily),v=a.padding??8,b=a.icons,x=n/2,u=[...r.nodes.values()],_=[...r.groups.values()],T=u.length,k=_.length,F=Qe(u,_,r.edges,r.layoutHints),j=new Map;u.forEach((t,f)=>j.set(t.id,f));let q=new Array(T),ut=new Float64Array(T),xt=new Float64Array(T),L=h?Math.max(n,64):Math.max(n*2.25,96);for(let t=0;t<T;t++){let f=u[t],m=Jt(f.type==="service"?f.title:void 0,!0,s,l,L);q[t]=m,ut[t]=Math.max(n,2*Math.ceil(m.width/2)),xt[t]=n+(m.height>0?ue+m.height:0)}let S=[],V=[];for(let t=0;t<T;t++)S.push(F.col[t]),V.push(F.row[t]);for(let t=0;t<k;t++)F.groupEmpty[t]&&(S.push(F.groupCol[t]),V.push(F.groupRow[t]));let U=ge(S),wt=ge(V),E=U.size,ft=wt.size,rt=new Float64Array(E),mt=new Float64Array(ft),Tt=h?Math.max(24,2*et):Math.max(40,Math.round(n*.75)),gt=new Float64Array(E).fill(Tt),Mt=new Float64Array(ft).fill(Tt),it=new Int32Array(T),ot=new Int32Array(T);for(let t=0;t<T;t++){let f=it[t]=U.get(F.col[t]),m=ot[t]=wt.get(F.row[t]);rt[f]=Math.max(rt[f],ut[t]),mt[m]=Math.max(mt[m],xt[t])}for(let t=0;t<k;t++){if(!F.groupEmpty[t])continue;let f=U.get(F.groupCol[t]),m=wt.get(F.groupRow[t]);rt[f]=Math.max(rt[f],n),mt[m]=Math.max(mt[m],x)}let Ht=r.edges.length,Ut=new Array(Ht),Dt=new Int32Array(Ht*2);for(let t=0;t<Ht;t++){let f=r.edges[t],m=Dt[t*2]=j.get(f.lhsId)??-1,D=Dt[t*2+1]=j.get(f.rhsId)??-1,$=Jt(f.title,!0,s,M,160);if(Ut[t]=$,!($.width===0||m<0||D<0)){if(it[m]!==it[D]){let y=Math.min(it[m],it[D]);gt[y]=Math.max(gt[y],Math.ceil($.width)+28)}else if(rt[it[m]]=Math.max(rt[it[m]],2*Math.ceil($.width/2)+8),ot[m]!==ot[D]){let y=Math.min(ot[m],ot[D]);Mt[y]=Math.max(Mt[y],Math.ceil($.height)+24)}}}let Gt=new Array(k),$t=new Int32Array(k),at=new Int32Array(k),yt=new Int32Array(k),vt=new Int32Array(k),Ft=new Float64Array(k),Rt=new Float64Array(k),_t=new Float64Array(k),zt=new Float64Array(k),i=new Float64Array(k),o=new Float64Array(k),d=new Float64Array(E),g=new Float64Array(E),w=new Float64Array(ft),z=new Float64Array(ft),H=Math.round(l*1.25);for(let t=0;t<k;t++){$t[t]=U.get(F.groupCol[t]),at[t]=U.get(F.groupCol[t]+F.groupCols[t]-1),yt[t]=wt.get(F.groupRow[t]),vt[t]=wt.get(F.groupRow[t]+F.groupRows[t]-1);let f=Jt(_[t].title,!0,s,l,h?Math.max(80,oe(a)/2):320);Gt[t]=f;let m=_[t].icon?H:0;i[t]=f.width+m+(f.width>0&&m>0?6:0),o[t]=Math.max(f.height,m)}for(let t=k-1;t>=0;t--){let f=c+Ft[t],m=c+Rt[t],D=(o[t]>0?Math.max(c,o[t]+12):c)+_t[t],$=c+zt[t];if(i[t]>0){let Q=f+m;for(let p=$t[t];p<=at[t];p++)Q+=rt[p]+(p<at[t]?g[p]+gt[p]+d[p+1]:0);i[t]+20>Q&&(m+=Math.ceil(i[t]+20-Q))}Ft[t]=f,Rt[t]=m,_t[t]=D,zt[t]=$,d[$t[t]]=Math.max(d[$t[t]],f),g[at[t]]=Math.max(g[at[t]],m),w[yt[t]]=Math.max(w[yt[t]],D),z[vt[t]]=Math.max(z[vt[t]],$);let y=F.groupParent[t];y<0||($t[y]===$t[t]&&(Ft[y]=Math.max(Ft[y],f)),at[y]===at[t]&&(Rt[y]=Math.max(Rt[y],m)),yt[y]===yt[t]&&(_t[y]=Math.max(_t[y],D)),vt[y]===vt[t]&&(zt[y]=Math.max(zt[y],$)))}let G=new Float64Array(E),A=new Float64Array(ft),Y=0;for(let t=0;t<E;t++)G[t]=Y+d[t],Y=G[t]+rt[t]+g[t]+(t<E-1?gt[t]:0);let Ct=0;for(let t=0;t<ft;t++)A[t]=Ct+w[t],Ct=A[t]+mt[t]+z[t]+(t<ft-1?Mt[t]:0);let B=0,nt=0,O=Y,J=Ct,I=t=>G[$t[t]]-Ft[t],W=t=>G[at[t]]+rt[at[t]]+Rt[t],Z=t=>A[yt[t]]-_t[t],lt=t=>A[vt[t]]+mt[vt[t]]+zt[t],X=t=>G[it[t]]+rt[it[t]]/2,ht=(t,f,m)=>{let D=Ze[f],$=Ke[f],y=X(t),Q=A[ot[t]],p={x:y,y:Q+x,dx:D,dy:$,x0:y-ut[t]/2,y0:Q,x1:y+ut[t]/2,y1:Q+xt[t],gap:0,wire:!1};u[t].type==="junction"?(p.x0=p.x1=y,p.y0=p.y1=p.y,p.gap=fe):D!==0?p.x=y+D*x:p.y=$<0?Q:Q+xt[t]+(q[t].height>0?2:0);let st=m?F.nodeParent[t]:-1;return st>=0&&(p.x0=I(st),p.x1=W(st),p.y0=Z(st),p.y1=lt(st),p.gap=0,p.wire=u[t].type==="junction",D!==0?p.x=D<0?p.x0:p.x1:p.y=$<0?p.y0:p.y1),p},P="",N="",tt=[],Et=Oe("arrow_point");for(let t=0;t<Ht;t++){let f=r.edges[t],m=Dt[t*2],D=Dt[t*2+1];if(m<0||D<0)continue;let $=ht(m,Yt(f.lhsDir),f.lhsGroup),y=ht(D,Yt(f.rhsDir),f.rhsGroup);$.x===y.x&&$.y===y.y&&$.dx===y.dx&&($.x-=8*Math.abs($.dy),$.y-=8*Math.abs($.dx),y.x+=8*Math.abs($.dy),y.y+=8*Math.abs($.dx));let Q=Xe($,y);$.wire&&Q.unshift(X(m),A[ot[m]]+x),y.wire&&Q.push(X(D),A[ot[D]]+x);let p=tr(Q);if(p.length<4)continue;let st=Kt(`${f.lhsId}-${f.rhsId}`);P+=`<g class="pele-edge" data-id="${st}"><path d="${er(p,f.lhsInto&&!$.wire?Et+$.gap:0,f.rhsInto&&!y.wire?Et+y.gap:0)}"/>`+(f.lhsInto?he("arrow_point",$.x+$.dx*$.gap,$.y+$.dy*$.gap,-$.dx,-$.dy,"var(--_l)"):"")+(f.rhsInto?he("arrow_point",y.x+y.dx*y.gap,y.y+y.dy*y.gap,-y.dx,-y.dy,"var(--_l)"):"")+"</g>";let bt=-1,Lt=-1,Wt=-1,K=-1,ct=Ut[t];for(let R=0;R<p.length;R+=2)B=Math.min(B,p[R]-4),O=Math.max(O,p[R]+4),nt=Math.min(nt,p[R+1]-4),J=Math.max(J,p[R+1]+4);for(let R=0;R+3<p.length;R+=2){let At=Math.abs(p[R+1]-p[R+3])<.01,dt=Math.abs(p[R]-p[R+2])+Math.abs(p[R+1]-p[R+3]);At||tt.push(p[R],Math.min(p[R+1],p[R+3]),Math.max(p[R+1],p[R+3])),dt>Lt&&(bt=R,Lt=dt),At&&dt>K&&(Wt=R,K=dt)}if(ct.width>0){let R=K>=ct.width+8?Wt:bt,At=(p[R]+p[R+2])/2,dt=(p[R+1]+p[R+3])/2,St=ct.width+8,Me=Math.abs(p[R]-p[R+2])<.01;for(let pt of[$,y])At+St/2<=pt.x0||At-St/2>=pt.x1||dt+ct.height/2<=pt.y0||dt-ct.height/2>=pt.y1||(Me?At=At>=(pt.x0+pt.x1)/2?pt.x1+St/2+4:pt.x0-St/2-4:dt=dt>=(pt.y0+pt.y1)/2?pt.y1+ct.height/2+4:pt.y0-ct.height/2-4);B=Math.min(B,At-St/2),O=Math.max(O,At+St/2),nt=Math.min(nt,dt-ct.height/2),J=Math.max(J,dt+ct.height/2),N+=Ge(`${f.lhsId}-${f.rhsId}`,ct,At,dt,"",b)}}let Ot="";for(let t=0;t<k;t++){let f=_[t],m=I(t),D=Z(t),$=W(t)-m,y=Gt[t],Q="";if(i[t]>0){let p=D+o[t]+12,st=[];for(let K=0;K<tt.length;K+=3)tt[K+1]<p&&tt[K+2]>D&&tt[K]>m&&tt[K]<m+$&&st.push(tt[K]);st.sort((K,ct)=>K-ct),st.push(m+$-4);let bt=m+10;for(let K of st){if(K-6-bt>=i[t])break;bt=Math.max(bt,K+6)}bt+i[t]>m+$-4&&(bt=m+10);let Lt=D+6+o[t]/2,Wt=bt;f.icon&&(Q+=ye(f.icon,bt,Lt-H/2,H,b),Wt+=H+6),Q+=Qt(y,Wt+y.width/2,Lt,' class="pele-cluster-label" fill="var(--_m)"',b)}Ot+=`<g class="pele-cluster" data-id="${Kt(f.id)}"><rect x="${C(m)}" y="${C(D)}" width="${C($)}" height="${C(lt(t)-D)}" rx="${se}" fill="var(--_a)" fill-opacity="0.5" stroke="var(--_b)"/>`+Q+"</g>"}let qt="",Xt=n*.5,ie=Math.max(6,Math.round(l*.75));for(let t=0;t<T;t++){let f=u[t],m=`data-id="${Kt(f.id)}" transform="translate(${C(X(t))},${C(A[ot[t]])})"`;if(f.type==="junction"){qt+=`<g class="pele-node pele-junction" ${m}><circle cy="${C(x)}" r="${fe}" fill="var(--_l)"/></g>`;continue}let D="";if(f.icon)D=ye(f.icon,-Xt/2,(n-Xt)/2,Xt,b);else if(f.iconText){let $=Jt(f.iconText,!1,s,ie,n-8),y=Math.max(1,Math.floor((n-4)/($.lineHeight||1)));D=Qt(Ye($,n-8,y,s),0,x,` class="pele-icon-text" font-size="${ie}"`,b)}qt+=`<g class="pele-node pele-service" ${m}><rect x="${C(-x)}" width="${C(n)}" height="${C(n)}" rx="${se}" fill="var(--_s)" stroke="var(--_b)"/>`+D+Qt(q[t],0,n+ue+q[t].height/2,' class="pele-label"',b)+"</g>"}let Pt=Jt(r.title,!1,s,l,h?oe(a):4e3,1),ae=Pt.height>0?Pt.height+12:0,Bt=Math.ceil(Math.max(O-B,Pt.width)+2*v),le=Math.ceil(J-nt+ae+2*v),we=Math.round((Bt-(O-B))/2-B),me=Math.round(v+ae-nt),ne=(Ot?`<g class="pele-clusters">${Ot}</g>`:"")+(P?`<g class="pele-edges" fill="none" stroke="var(--_l)" stroke-linecap="round" stroke-linejoin="round">${P}</g>`:"")+(N?`<g class="pele-edge-labels" font-size="${M}">${N}</g>`:"")+(qt?`<g class="pele-nodes">${qt}</g>`:"");return{svg:Pe("architecture",Bt,le,l,a,r,Qt(Pt,Bt/2,v+Pt.height/2,' class="pele-title" font-weight="var(--_tw)"')+(ne?`<g transform="translate(${we},${me})">${ne}</g>`:"")),width:Bt,height:le,links:[]}}var dr={type:"architecture",parse(r,e,a){let h=new Je;return a&&(h.title=a),Ne(Ue(r),h),h},render:rr};export{dr as architecture};
@@ -1 +0,0 @@
1
- import{M as u}from"./VMV7XPHP-6QkisQwm.js";var n=/[\t ]*accDescr(?:[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)|\s*({))/y;function c(){let e=!1;return(r,l)=>{n.lastIndex=l;let t=n.exec(r);if(t===null)return-1;let f=n.lastIndex;if(t[1]===void 0)return f;if(e)return-1;let i=r.indexOf("}",f);return e=i===-1,i+1||-1}}function o(e="ACC_DESCR"){return{...u,name:e,scanner:c}}export{o as i};
@@ -1,4 +0,0 @@
1
- var $e=Object.defineProperty;var Ce=(e,r,i)=>r in e?$e(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i;var M=(e,r,i)=>Ce(e,typeof r!="symbol"?r+"":r,i);import{m as Ae,d as Me,b as _e}from"./FKCDD66M-BPFkyrwI.js";import{x as xe,H as ve,L as pe,i as X,e as ne,o as qe}from"./lazy-CKqR1774.js";import{m as ke,c as Oe}from"./DKTLEL5E-B7ILCVTH.js";import{F as be,S as Fe}from"./HWDLEDTA-C_JcdBMO.js";import{g as De,_ as Q,a as Le,x as I,f as oe,h as Ve,y as Re,$ as Ye,Y as Ue,T as Pe,b as He,q as Qe}from"./RZSVICHU-BiwjruZZ.js";import"./index-392ivruk.js";var K={REQUIREMENT:"Requirement",FUNCTIONAL_REQUIREMENT:"Functional Requirement",INTERFACE_REQUIREMENT:"Interface Requirement",PERFORMANCE_REQUIREMENT:"Performance Requirement",PHYSICAL_REQUIREMENT:"Physical Requirement",DESIGN_CONSTRAINT:"Design Constraint"},ce={LOW_RISK:"Low",MED_RISK:"Medium",HIGH_RISK:"High"},J={VERIFY_ANALYSIS:"Analysis",VERIFY_DEMONSTRATION:"Demonstration",VERIFY_INSPECTION:"Inspection",VERIFY_TEST:"Test"},U={CONTAINS:"contains",COPIES:"copies",DERIVES:"derives",SATISFIES:"satisfies",VERIFIES:"verifies",REFINES:"refines",TRACES:"traces"},Ke=1e6,ze=class{constructor(){M(this,"type","requirement");M(this,"direction","TB");M(this,"requirements",new Map);M(this,"elements",new Map);M(this,"relations",[]);M(this,"classes",new Map);M(this,"title");M(this,"accTitle");M(this,"accDescr");M(this,"newId","");M(this,"newText","");M(this,"newRisk","");M(this,"newVerifyMethod","");M(this,"newElementType","");M(this,"newDocRef","");M(this,"styleCopies",0)}copy(e,r){if(this.styleCopies+=r.length,this.styleCopies>Ke)throw new xe("Requirement diagram applies too many style declarations.","limit",{type:"requirement"});for(let i of r)e.push(i)}setDirection(e){this.direction=e}addRequirement(e,r){let i=this.requirements.get(e);return i===void 0&&(i={name:e,type:r,requirementId:this.newId,text:this.newText,risk:this.newRisk,verifyMethod:this.newVerifyMethod,cssStyles:[],classes:["default"]},this.requirements.set(e,i)),this.newId=this.newText=this.newRisk=this.newVerifyMethod="",i}setNewReqId(e){this.newId=e}setNewReqText(e){this.newText=e}setNewReqRisk(e){this.newRisk=e}setNewReqVerifyMethod(e){this.newVerifyMethod=e}addElement(e){let r=this.elements.get(e);return r===void 0&&(r={name:e,type:this.newElementType,docRef:this.newDocRef,cssStyles:[],classes:["default"]},this.elements.set(e,r)),this.newElementType=this.newDocRef="",r}setNewElementType(e){this.newElementType=e}setNewElementDocRef(e){this.newDocRef=e}addRelationship(e,r,i){this.relations.push({type:e,src:r,dst:i})}node(e){return this.requirements.get(e)??this.elements.get(e)}setCssStyle(e,r){for(let i of e){let n=this.node(i);if(!r||!n)return;for(let l of r)this.copy(n.cssStyles,l.includes(",")?l.split(","):[l])}}setClass(e,r){var i;for(let n of e){let l=this.node(n);if(l)for(let s of r){l.classes.push(s);let d=(i=this.classes.get(s))==null?void 0:i.styles;d&&this.copy(l.cssStyles,d)}}}defineClass(e,r){for(let i of e){let n=this.classes.get(i);n===void 0&&(n={id:i,styles:[],textStyles:[]},this.classes.set(i,n));for(let s of r)s.includes("color")&&n.textStyles.push(s.replace("fill","bgFill")),n.styles.push(s);let l=r.flatMap(s=>s.split(","));for(let s of this.requirements.values())s.classes.includes(i)&&this.copy(s.cssStyles,l);for(let s of this.elements.values())s.classes.includes(i)&&this.copy(s.cssStyles,l)}}setAccTitle(e){this.accTitle=e.replace(/^\s+/g,"")}setAccDescription(e){this.accDescr=e.replace(/\n\s+/g,`
2
- `)}},me=["$end","INVALID","title","acc_title","acc_title_value","acc_descr","acc_descr_value","acc_descr_multiline_value","direction_tb","direction_bt","direction_rl","direction_lr","NEWLINE","EOF","RD","STRUCT_START","STRUCT_STOP","STYLE_SEPARATOR","COLONSEP","ID","TEXT","RISK","VERIFYMTHD","REQUIREMENT","FUNCTIONAL_REQUIREMENT","INTERFACE_REQUIREMENT","PERFORMANCE_REQUIREMENT","PHYSICAL_REQUIREMENT","DESIGN_CONSTRAINT","LOW_RISK","MED_RISK","HIGH_RISK","VERIFY_ANALYSIS","VERIFY_DEMONSTRATION","VERIFY_INSPECTION","VERIFY_TEST","ELEMENT","CONTAINS","COPIES","DERIVES","SATISFIES","VERIFIES","REFINES","TRACES","TYPE","DOCREF","STYLE","CLASSDEF","CLASS","ALPHA","COLON","SEMICOLON","PERCENT","MINUS","BRKT","END_ARROW_L","END_ARROW_R","LINE","qString","unqString","COMMA"],We=new Map([["requirementdiagram",14],["id",19],["text",20],["risk",21],["verifymethod",22],["requirement",23],["functionalrequirement",24],["interfacerequirement",25],["performancerequirement",26],["physicalrequirement",27],["designconstraint",28],["low",29],["medium",30],["high",31],["analysis",32],["demonstration",33],["inspection",34],["test",35],["element",36],["contains",37],["copies",38],["derives",39],["satisfies",40],["verifies",41],["refines",42],["traces",43],["type",44],["docref",45],["style",46],["classdef",47],["class",48]]),Ge=/accTitle\s*:\s*/iy,Be=/accDescr\s*:\s*/iy,je=/accDescr\s*\{\s*/iy,Z=/direction\s+(?:(TB)|(BT)|(RL)|LR)/gi,he=/[\n\r\u2028\u2029]/g,Xe=22,ge=new Uint8Array(128);for(let e of`:,\r
3
- {<>-=`)ge[e.charCodeAt(0)]=1;function Je(e){let r=e.length,i=[],n=[],l=[],s=[],d=0,t=0,E=[[],[],[],[]],R=[[],[],[],[]],m=[0,0,0,0],y=!1,x=-1;Z.lastIndex=0;for(let a=Z.exec(e);a!==null;a=Z.exec(e)){let p=a[1]!==void 0?0:a[2]!==void 0?1:a[3]!==void 0?2:3;E[p].push(a.index),R[p].push(Z.lastIndex),y=!0}let c=(a,p,u)=>{i.push(a),n.push(e.slice(p,u)),l.push(p),t=u},$=a=>{s.push(d),d=a},v=()=>{s.length>0&&(d=s.pop())},Y=(a,p)=>(a.lastIndex=p,a.test(e)?a.lastIndex:-1),o=a=>{let p=e.indexOf(`
4
- `,a);return p===-1?r:p},h=()=>{if(x<t){he.lastIndex=t,x=he.test(e)?he.lastIndex-1:r;for(let a=0;a<4;a++){let p=E[a],u=m[a];for(;u<p.length&&p[u]<=x;)u++;m[a]=u}}for(let a=0;a<4;a++){let p=m[a]-1;if(p>=0&&E[a][p]>=t)return c(8+a,t,o(R[a][p])),!0}return!1},S=a=>{let p=a|32;if(p===116&&e.slice(t+1,t+5).toLowerCase()==="itle"&&ne(e.charCodeAt(t+5))){let u=t+6;for(;u<r;){let C=e.charCodeAt(u);if(C===35||C===10||C===59)break;u++}if(u>t+6)return c(2,t,u),!0}if(p===97&&(e.charCodeAt(t+1)|32)===99&&(e.charCodeAt(t+2)|32)===99){let u;if((u=Y(Ge,t))>=0)return $(3),c(3,t,u),!0;if((u=Y(Be,t))>=0)return $(4),c(5,t,u),!0;if((u=Y(je,t))>=0)return $(5),t=u,!0}if(y&&!qe(a)&&h())return!0;if(a===10||a===13&&e.charCodeAt(t+1)===10){let u=t;for(;u<r;){let C=e.charCodeAt(u);if(C===10)u++;else if(C===13&&e.charCodeAt(u+1)===10)u+=2;else break}return c(12,t,u),!0}if(ne(a)){for(t++;t<r&&ne(e.charCodeAt(t));)t++;return!0}if(a===35||a===37)return t=o(t),!0;if(X(a)){let u=t+1;for(;u<r&&X(e.charCodeAt(u));)u++;if(u-t<=Xe){let C=We.get(e.slice(t,u).toLowerCase());if(C!==void 0)return(C===46||C===47||C===48)&&$(2),c(C,t,u),!0}for(;u<r;){let C=e.charCodeAt(u);if(C<128&&ge[C]===1)break;u++}return i.push(59),n.push(e.slice(t,u).trim()),l.push(t),t=u,!0}switch(a){case 123:return c(15,t,t+1),!0;case 125:return c(16,t,t+1),!0;case 58:return e.charCodeAt(t+1)===58&&e.charCodeAt(t+2)===58?c(17,t,t+3):c(18,t,t+1),!0;case 60:return e.charCodeAt(t+1)!==45?!1:(c(55,t,t+2),!0);case 45:return e.charCodeAt(t+1)===62?c(56,t,t+2):c(57,t,t+1),!0;case 34:return $(1),t++,!0;case 44:return c(60,t,t+1),!0}return!1},q=a=>{if(X(a)){let p=t+1;for(;p<r&&X(e.charCodeAt(p));)p++;return c(49,t,p),!0}switch(a){case 58:return c(50,t,t+1),!0;case 59:return c(51,t,t+1),!0;case 37:return c(52,t,t+1),!0;case 45:return c(53,t,t+1),!0;case 35:return c(54,t,t+1),!0;case 32:return t++,!0;case 34:return $(1),t++,!0;case 10:return v(),t++,!0;case 44:return c(60,t,t+1),!0}return!1};for(;t<r;){let a=e.charCodeAt(t),p=!0;switch(d){case 0:p=S(a);break;case 2:p=q(a);break;case 1:if(a===34)v(),t++;else{let u=e.indexOf('"',t);c(58,t,u===-1?r:u)}break;case 3:v(),c(4,t,o(t));break;case 4:v(),c(6,t,o(t));break;case 5:if(a===125)v(),t++;else{let u=e.indexOf("}",t);c(7,t,u===-1?r:u)}break}if(!p)return i.push(1),n.push(""),l.push(t),{types:i,texts:n,starts:l}}let b=d===0?13:d===1?58:d===3?4:d===4?6:d===5?7:-1;return b!==-1&&c(b,r,r),c(0,r,r),{types:i,texts:n,starts:l}}var Ze=[K.REQUIREMENT,K.FUNCTIONAL_REQUIREMENT,K.INTERFACE_REQUIREMENT,K.PERFORMANCE_REQUIREMENT,K.PHYSICAL_REQUIREMENT,K.DESIGN_CONSTRAINT,ce.LOW_RISK,ce.MED_RISK,ce.HIGH_RISK,J.VERIFY_ANALYSIS,J.VERIFY_DEMONSTRATION,J.VERIFY_INSPECTION,J.VERIFY_TEST,"",U.CONTAINS,U.COPIES,U.DERIVES,U.SATISFIES,U.VERIFIES,U.REFINES,U.TRACES];function Ie(e){return e===49||e===50||e===54||e===53||e===51}function et(e,r){let{types:i,texts:n,starts:l}=Je(e),s=0,d=[],t=[],E=(o,h=o,...S)=>{let q=i[s];if(q===1)throw pe("requirement",e,l[s],"",!0);for(let a=h;a>=o;a--)S.unshift(a);let b=S.map(a=>`'${me[a]}'`).join(", ");throw pe("requirement",e,l[s],`Expecting ${b}, got '${me[q]}'`)},R=o=>(i[s]!==o&&E(o),n[s++]),m=(o,h)=>{let S=i[s];return(S<o||S>h)&&E(o,h),s++,Ze[S-23]},y=()=>{let o=i[s];return o!==59&&o!==58&&E(58,59),n[s++]},x=()=>{let o=i[s];if(o===3)s++,r.setAccTitle(R(4).trim());else if(o===5)s++,r.setAccDescription(R(6).trim());else if(o===7)r.setAccDescription(n[s++].trim());else return!1;return!0},c=()=>{let o=[];for(;;){let h=i[s];if(h!==49&&h!==59&&h!==58&&E(58,59,49),o.push(n[s++]),i[s]!==60)return o;s++}},$=()=>{let o=[];for(;;){Ie(i[s])||E(49,51,53,54);let h=n[s++];for(;Ie(i[s]);)h+=n[s++];if(o.push(h),i[s]!==60)return o;s++}},v=()=>{let o;return i[s]===17?(s++,o=c(),R(15)):i[s]===15?s++:E(15,15,17),R(12),o},Y=o=>{for(d.length=0,t.length=0;;){let h=i[s];if(h===16){s++;break}if(h===12){s++;continue}(o?h<19||h>22:h!==44&&h!==45)&&(o&&E(19,22,12,16),E(44,45,12,16)),s++,R(18),t.push(h===21?m(29,31):h===22?m(32,35):y()),d.push(h),R(12)}for(let h=d.length-1;h>=0;h--){let S=t[h];switch(d[h]){case 19:r.setNewReqId(S);break;case 20:r.setNewReqText(S);break;case 21:r.setNewReqRisk(S);break;case 22:r.setNewReqVerifyMethod(S);break;case 44:r.setNewElementType(S);break;default:r.setNewElementDocRef(S)}}};for(;x();)i[s]===12&&s++;for(i[s]!==14&&E(14,14,3,5,7),s++,R(12);;){let o=i[s];if(o===13)return;if(o===12)s++;else{if(x())continue;if(o>=8&&o<=11)s++,r.setDirection(o===8?"TB":o===9?"BT":o===10?"RL":"LR");else if(o>=23&&o<=28){let h=m(23,28),S=y(),q=v();Y(!0),r.addRequirement(S,h),q&&r.setClass([S],q)}else if(o===36){s++;let h=y(),S=v();Y(!1),r.addElement(h),S&&r.setClass([h],S)}else if(o===46){s++;let h=c();r.setCssStyle(h,$())}else if(o===47){s++;let h=c();r.defineClass(h,$())}else if(o===48){s++;let h=c();r.setClass(h,c())}else if(o===59||o===58){let h=n[s++],S=i[s];if(S===17)s++,r.setClass([h],c());else if(S===55||S===57){s++;let q=m(37,43);R(S===57?56:57);let b=y();S===57?r.addRelationship(q,h,b):r.addRelationship(q,b,h)}else E(17,17,55,57)}else E(12,13,3,5,7,8,9,10,11,23,24,25,26,27,28,36,47,48,46,59,58)}}}function tt(e){let r=[];for(let l of e.requirements.values())r.push({id:l.name,requirement:l,element:void 0,cssStyles:l.cssStyles,cssClasses:l.classes.join(" ")});for(let l of e.elements.values())r.push({id:l.name,requirement:void 0,element:l,cssStyles:l.cssStyles,cssClasses:l.classes.join(" ")});let i=l=>e.requirements.has(l)||e.elements.has(l)?l:void 0,n=e.relations.map((l,s)=>({id:`${l.src}-${l.dst}-${s}`,start:i(l.src),end:i(l.dst),type:l.type,contains:l.type===U.CONTAINS}));return{nodes:r,edges:n,direction:e.direction}}var st=40,rt=16,it=56,ee=14,B=10,ue=2,Se=12,lt=120,at=280,nt=240,de=26,Ne=6,ye=9,te=4.5,ot=28,ct=14;function se(e,r,i){if(r===0||e.lines.length===0)return e;let n=0,l=[],s=e.lines.map(d=>{let t=0,E=d.map(R=>{let m=R.style|r,y=R.icon!==void 0?R.width:i.width(R.text,e.size,m);return t+=y,{...R,style:m,width:y}});return l.push(t),t>n&&(n=t),E});return{...e,lines:s,widths:l,width:n}}function Te(e,r,i,n){let l=i+e.lineHeight/2+e.size*.35,s=Ue(e),d="";for(let t of e.lines){let E=!0;for(let R of t)R.icon!==void 0||R.text===""||(d+=`<tspan${E?` x="${I(r)}" y="${I(l)}"`:""}${Pe(R.style&~s)}>${He(R.text)}</tspan>`,E=!1);l+=e.lineHeight}return d===""?"":`<text${Qe(n,s)} text-anchor="start" xml:space="preserve">${d}</text>`}function ht(e,r,i,n){let l=Ne,s=e-i*l,d=r-n*l;return`<circle class="pele-marker" cx="${I(s)}" cy="${I(d)}" r="${l}"/><path class="pele-marker" d="M${I(s-i*l)},${I(d-n*l)}L${I(s+i*l)},${I(d+n*l)}M${I(s+n*l)},${I(d-i*l)}L${I(s-n*l)},${I(d+i*l)}"/>`}function ut(e,r,i,n){let l=e-i*ye,s=r-n*ye;return`<path class="pele-marker" d="M${I(l-n*te)},${I(s+i*te)}L${I(e)},${I(r)}L${I(l+n*te)},${I(s-i*te)}" stroke-linejoin="round"/>`}function dt(e,r,i){let n=new Map;for(let l of r){let s=l.route;if(!(l.src===l.dst||s.length<6))for(let d of[0,s.length-3]){let t=d===0?l.src:l.dst,E=e[t],R=s[d]-E.x,m=s[d+1]-E.y,y=d===0?3:d-3,x;if(Math.abs(Math.abs(m)-E.h/2)<.5)x=m<0?0:2;else if(Math.abs(Math.abs(R)-E.w/2)<.5)x=R<0?3:1;else continue;let c=t*4+x,$={route:s,at:d,toward:s[x%2===0?y:y+1]},v=n.get(c);v?v.push($):n.set(c,[$])}}for(let[l,s]of n){if(s.length<2)continue;let d=l>>2,t=l%2===1,E=(t?i[d].h:i[d].w)-2*ct,R=Math.max(0,Math.min(ot,E/(s.length-1)));s.sort((m,y)=>m.toward-y.toward);for(let m=0;m<s.length;m++){let y=(m-(s.length-1)/2)*R;t?s[m].route[s[m].at+1]=e[d].y+y:s[m].route[s[m].at]=e[d].x+y}}}function ft(e,r,i){return ke(e.direction)?Oe(i,n=>we(e,r,i,n)):we(e,r,i,!1)}function we(e,r,i,n){let l=tt(e),s=i.fontSize??16,d=Math.round(s*.875),t=i.measurer??ve(i.fontFamily),E=i.padding??8,R=new Map,m=[],y=[];for(let T of l.nodes){let f=De(T.cssStyles),A=(f.bold?1:0)|(f.italic?2:0),F=f.fontSize??s,k=f.fontSize??d,w=T.requirement,L=T.element,V=se(Q(`«${w?w.type:"Element"}»`,!1,t,k,4e3),A,t),g=se(Q(T.id,!0,t,F,at),A|1,t),N=w?[["ID",w.requirementId],["Text",w.text],["Risk",w.risk],["Verification",w.verifyMethod]]:[["Type",L.type],["Doc Ref",L.docRef]],_=[],D=0,z=0,O=0;for(let[j,G]of N){if(!G)continue;let le=se(Q(j,!1,t,k,4e3),A,t),ae=se(Q(G,!0,t,k,nt),A,t),Ee=Math.max(le.height,ae.height);_.push({key:le,value:ae,height:Ee}),D=Math.max(D,le.width),z=Math.max(z,ae.width),O+=Ee+ue}_.length>0&&(O+=2*B-ue);let P=2*B+V.height+g.height,H=Math.max(lt,Math.max(V.width,g.width)+2*ee,_.length>0?D+Se+z+2*ee:0);R.has(T.id)||R.set(T.id,m.length);let W=Me(H,P+O);W.seq=m.length,m.push({node:T,style:f,kind:V,name:g,rows:_,keyWidth:D,headHeight:P,w:H,h:P+O}),y.push(W)}let x=n?"TB":_e(l.direction),c=x==="LR"||x==="RL",$=[],v=[],Y=[];for(let T of l.edges){let f=T.start===void 0?void 0:R.get(T.start),A=T.end===void 0?void 0:R.get(T.end);if(f===void 0||A===void 0)continue;let F=Q(`«${T.type}»`,!1,t,d,4e3);f===A&&(c?y[f].h+=2*(de+F.height+8):y[f].w+=2*(de+F.width+12)),Y.push(T),v.push(F),$.push({src:f,dst:A,minlen:1,labelW:F.width+12,labelH:F.height+4,route:[],labelX:0,labelY:0})}let o=Ae(y,$,x,{nodeSep:st,edgeSep:rt,rankSep:it,portSep:20});dt(y,$,m);let h=Q(e.title,!1,t,s,4e3,1),S=h.height>0?h.height+12:0,q=Math.max(o.width,h.width),b=E+(q-o.width)/2,a=E+S,p=Math.ceil(q+2*E),u=Math.ceil(o.height+S+2*E),C="";for(let T=0;T<m.length;T++){let f=m[T],{w:A,h:F,style:k}=f,w=-A/2,L=-F/2,V=`<rect x="${I(w)}" y="${I(L)}" width="${I(A)}" height="${I(F)}" rx="${Le}" fill="var(--_s)" stroke="var(--_b)"${k.shape}/>`+oe(f.kind,0,L+B+f.kind.height/2,` class="pele-stereotype" font-size="${f.kind.size}" fill="var(--_m)"${k.text}`)+oe(f.name,0,L+B+f.kind.height+f.name.height/2,` class="pele-label" font-size="${f.name.size}" font-weight="var(--_hw)"${k.text}`);if(f.rows.length>0){let g=L+f.headHeight;V+=`<path class="pele-divider" d="M${I(w)},${I(g)}H${I(-w)}" stroke="var(--_b)"${k.line}/>`;let N=g+B,_="";for(let D of f.rows)_+=Te(D.key,w+ee,N,` class="pele-field" fill="var(--_m)"${k.text}`)+Te(D.value,w+ee+f.keyWidth+Se,N,` class="pele-value"${k.text}`),N+=D.height+ue;V+=`<g class="pele-fields" font-size="${f.rows[0].key.size}">${_}</g>`}C+=`<g class="pele-node ${f.node.requirement?"pele-requirement":"pele-element"}${Ve(f.node.cssClasses.replace(/^default\s?/,""))}" data-id="${Re(f.node.id)}" transform="translate(${I(y[T].x+b)},${I(y[T].y+a)})">${V}</g>`}let re="",ie="",fe=new Map;for(let T=0;T<$.length;T++){let f=$[T],A=Y[T],F=v[T],k=A.contains?2*Ne:0,w,L=f.labelX+b,V=f.labelY+a;if(f.src===f.dst){let g=m[f.src],N=y[f.src].x+b,_=y[f.src].y+a,D=fe.get(f.src)??0;fe.set(f.src,D+1);let z=(c?g.w:g.h)/2,O=Math.min(z-4,12+D*6),P=de+D*8,H=(j,G)=>c?`${I(N+G)},${I(_+g.h/2+j)}`:`${I(N+g.w/2+j)},${I(_+G)}`,W=P/.75;w={d:`M${H(k,-O)}C${H(W,-O)} ${H(W,O)} ${H(0,O)}`,sx:c?N-O:N+g.w/2,sy:c?_+g.h/2:_-O,sdx:c?0:-1,sdy:c?-1:0,ex:c?N+O:N+g.w/2,ey:c?_+g.h/2:_+O,edx:c?0:-1,edy:c?-1:0},c?(L=N,V=_+g.h/2+P+4+f.labelH/2):(L=N+g.w/2+P+4+f.labelW/2,V=_)}else{let g=f.route.slice();for(let N=0;N<g.length;N+=3)g[N]+=b,g[N+1]+=a;w=be(g,void 0,k,0)}re+=`<g class="pele-edge pele-relationship-${A.contains?"contains":"arrow"}" data-id="${Re(A.id)}"><path d="${w.d}"${A.contains?"":' stroke-dasharray="5 4"'}/>`+(A.contains?ht(w.sx,w.sy,w.sdx,w.sdy):ut(w.ex,w.ey,w.edx,w.edy))+"</g>",ie+=Fe(A.id,F,L,V,"")}return{svg:Ye("requirement",p,u,s,i,e,oe(h,p/2,E+h.height/2,' class="pele-title" font-weight="var(--_tw)"')+(re?`<g class="pele-edges" fill="none" stroke="var(--_l)" stroke-linecap="round">${re}</g>`:"")+(ie?`<g class="pele-edge-labels" font-size="${d}" fill="var(--_m)">${ie}</g>`:"")+`<g class="pele-nodes">${C}</g>`),width:p,height:u,links:[]}}var Tt={type:"requirement",parse(e,r,i){let n=new ze;return i&&(n.title=i),et(e,n),n},render:ft};export{Tt as requirement};
@@ -1,4 +0,0 @@
1
- var Nt=Object.defineProperty;var xt=(t,a,s)=>a in t?Nt(t,a,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[a]=s;var _=(t,a,s)=>xt(t,typeof a!="symbol"?a+"":a,s);import{c as Mt}from"./MFVI5XKI-DrRaRE9X.js";import{c as Le}from"./G3MDBVQH-EkdejvdW.js";import{h as Et}from"./7WLXJQOR-CHhKreq0.js";import{x as kt,h as St,y as vt,C as Ot}from"./ELSXBIJH-DG0MW5dC.js";import{b as _t,d as ie,m as It}from"./FKCDD66M-BPFkyrwI.js";import{L as Rt,N as Dt}from"./JZWSX6AR-OwVPptYv.js";import{R as Pt}from"./URA2L2QI-B8pYKxOk.js";import{$ as te,o as rt,e as V,i as me,L as at,H as Ut}from"./lazy-CKqR1774.js";import{m as Gt,c as Bt,p as Ht}from"./DKTLEL5E-B7ILCVTH.js";import{F as Wt,S as zt,D as Ft,w as Yt}from"./HWDLEDTA-C_JcdBMO.js";import{_ as ne,g as Ue,y as Ge,a as lt,x as g,f as ge,b as be,h as Kt,$ as Xt}from"./RZSVICHU-BiwjruZZ.js";import"./index-392ivruk.js";function it(t){return t==="#"||t==="+"||t==="~"||t==="-"}var nt=class{constructor(t,a){_(this,"id","");_(this,"memberType");_(this,"visibility","");_(this,"classifier","");_(this,"parameters","");_(this,"returnType","");this.memberType=a,(a!=="method"||!this.parseMethod(t))&&this.parseAttribute(t),this.id=this.id.startsWith(" ")?" "+this.id.trim():this.id.trim()}parseMethod(t){let a=t.length;for(let s=0;s<a;){let o=s;for(;o<a&&!rt(t.charCodeAt(o));)o++;let b=o-1;for(;b>s&&t.charCodeAt(b)!==41;)b--;let l=b-1;for(;l>s&&t.charCodeAt(l)!==40;)l--;if(l>s){let m=t[s],e=it(m)&&l>s+1;e&&(this.visibility=m),this.id=t.slice(e?s+1:s,l),this.parameters=t.slice(l+1,b).trim();let M=b+1,w="";if(M<a){let d=t[M];(d==="$"||d==="*"||d.trim()==="")&&(w=d.trim(),M++)}let S=M;for(;S<a&&!rt(t.charCodeAt(S));)S++;if(this.returnType=t.slice(M,S).trim(),w===""){let d=this.returnType.slice(-1);(d==="$"||d==="*")&&(w=d,this.returnType=this.returnType.slice(0,-1))}return this.classifier=w,!0}s=o+1}return this.memberType="attribute",!1}parseAttribute(t){let a=t.slice(0,1),s=t.slice(-1);it(a)&&(this.visibility=a),(s==="$"||s==="*")&&(this.classifier=s),this.id=t.substring(this.visibility===""?0:1,this.classifier===""?t.length:t.length-1)}getDisplayDetails(){let t=this.visibility+Le(this.id);return this.memberType==="method"&&(t+=`(${Le(this.parameters.trim())})`,this.returnType&&(t+=" : "+Le(this.returnType))),{displayText:t.trim(),cssStyle:this.parseClassifier()}}parseClassifier(){return this.classifier==="*"?"font-style:italic;":this.classifier==="$"?"text-decoration:underline;":""}},jt={LINE:0,DOTTED_LINE:1},de={AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3,LOLLIPOP:4},Qt="classId-";function j(t){let a=t.indexOf("~");if(a<=0)return{className:t,type:""};let s=t.indexOf("~",a+1);return{className:t.slice(0,a),type:t.slice(a+1,s===-1?t.length:s)}}function ot(t){let a=t.charCodeAt(0);return j(a>=48&&a<=57?Qt+t:t).className}var Vt=class{constructor(){_(this,"type","class");_(this,"lineType",jt);_(this,"relationType",de);_(this,"direction","TB");_(this,"classes",new Map);_(this,"relations",[]);_(this,"notes",new Map);_(this,"namespaces",new Map);_(this,"interfaces",[]);_(this,"styleClasses",new Map);_(this,"title");_(this,"accTitle");_(this,"accDescr");_(this,"namespaceStack",[]);_(this,"withCssClass",new Map)}addClass(t){let{className:a,type:s}=j(t);if(this.classes.has(a))return;let o={id:a,type:s,label:a,cssClasses:"default",methods:[],members:[],annotations:[],styles:[]};this.classes.set(a,o),this.tag(o,"default")}tag(t,a){let s=this.withCssClass.get(a);s?s.add(t):this.withCssClass.set(a,new Set([t]))}ensure(t){return this.addClass(t),this.classes.get(j(t).className)}setClassLabel(t,a){this.ensure(t).label=a}addRelation(t){let{type1:a,type2:s}=t.relation;a===de.LOLLIPOP&&s==="none"?(this.addClass(t.id2),t.id1=this.addInterface(t.id1,t.id2)):s===de.LOLLIPOP&&a==="none"?(this.addClass(t.id1),t.id2=this.addInterface(t.id2,t.id1)):(this.addClass(t.id1),this.addClass(t.id2)),t.id1=j(t.id1).className,t.id2=j(t.id2).className,t.relationTitle1=t.relationTitle1.trim(),t.relationTitle2=t.relationTitle2.trim(),this.relations.push(t)}addInterface(t,a){let s=`interface${this.interfaces.length}`;return this.interfaces.push({id:s,label:t,classId:a}),s}addAnnotation(t,a){this.ensure(t).annotations.push(a)}addMember(t,a){let s=this.ensure(t);if(typeof a!="string")return;let o=a.trim();if(o.startsWith("<<")&&o.endsWith(">>"))s.annotations.push(o.substring(2,o.length-2));else if(o.indexOf(")")>0){let b=new nt(o,"method");(b.memberType==="method"?s.methods:s.members).push(b)}else o&&s.members.push(new nt(o,"attribute"))}addMembers(t,a){if(Array.isArray(a)){a.reverse();for(let s of a)this.addMember(t,s)}}addNote(t,a){let s=this.notes.size,o=`note${s}`;return this.notes.set(o,{id:o,class:a,text:t,index:s}),o}cleanupLabel(t){return(t.startsWith(":")?t.substring(1):t).trim()}setCssClass(t,a){for(let s of t.split(",")){let o=this.classes.get(ot(s));if(o!==void 0){o.cssClasses+=" "+a;for(let b of a.split(" "))this.tag(o,b)}}}defineClass(t,a){for(let s of t){let o=this.styleClasses.get(s);if(o===void 0&&(o={id:s,styles:[],textStyles:[]},this.styleClasses.set(s,o)),!a)continue;for(let m of a)m.includes("color")&&o.textStyles.push(m.replace("fill","bgFill")),o.styles.push(m);let b=this.withCssClass.get(s);if(b===void 0)continue;let l=a.flatMap(m=>m.split(","));for(let m of b)for(let e of l)m.styles.push(e)}}setTooltip(t,a){if(a!==void 0)for(let s of t.split(",")){let o=this.classes.get(j(s).className);o&&(o.tooltip=a)}}setLink(t,a,s){let o=te(a).trim();for(let b of t.split(",")){let l=this.classes.get(ot(b));l&&(l.link=o?Rt(o):void 0,l.linkTarget=typeof s=="string"?s:"_blank")}this.setCssClass(t,"clickable")}setClickEvent(t,a,s){for(let o of t.split(",")){let b=this.classes.get(j(o).className);b&&(b.haveCallback=!0)}this.setCssClass(t,"clickable")}setDirection(t){this.direction=t}setAccTitle(t){this.accTitle=t.replace(/^\s+/g,"")}setAccDescription(t){this.accDescr=t.replace(/\n\s+/g,`
2
- `)}addNamespace(t,a){let s=this.namespaceStack[this.namespaceStack.length-1],o=s?`${s}.${t}`:t;this.namespaceStack.push(o);let b=this.namespaces.get(o);if(b)return b.explicit=!0,a&&(b.label=a),o;let l=s||void 0,m=s?s.length+1:0;for(;;){let e=o.indexOf(".",m),M=e===-1,w=M?o:o.slice(0,e),S=this.namespaces.get(w);if(S===void 0){let f=o.slice(m,M?o.length:e);S={id:w,label:M&&a?a:f,classes:new Map,notes:new Map,children:new Map,parent:l,explicit:M},this.namespaces.set(w,S)}else M&&(S.explicit=!0);let d=l?this.namespaces.get(l):void 0;if(d&&(d.children.has(w)||d.children.set(w,S),S.parent??(S.parent=l)),M)return o;l=w,m=e+1}}popNamespace(){this.namespaceStack.pop()}addClassesToNamespace(t,a,s){let o=this.namespaces.get(t);if(o!==void 0){for(let b of a){let{className:l}=j(b),m=this.classes.get(l);m!==void 0&&(m.parent=t,o.classes.set(l,m))}for(let b of s){let l=this.notes.get(b);l!==void 0&&(l.parent=t,o.notes.set(b,l))}}}setCssStyle(t,a){let s=this.classes.get(t);if(!(!a||!s))for(let o of a)for(let b of o.split(","))s.styles.push(b)}},ct=["$end","INVALID","CLASS_DIAGRAM","NEWLINE","EOF","SQS","STR","SQE","DOT","GENERICTYPE","LABEL","acc_title","acc_title_value","acc_descr","acc_descr_value","acc_descr_multiline_value","STRUCT_START","STRUCT_STOP","NAMESPACE","STYLE_SEPARATOR","ANNOTATION_START","ANNOTATION_END","CLASS","MEMBER","NOTE_FOR","NOTE","CLASSDEF","ALPHA","COMMA","direction_tb","direction_bt","direction_rl","direction_lr","AGGREGATION","EXTENSION","COMPOSITION","DEPENDENCY","LOLLIPOP","LINE","DOTTED_LINE","CALLBACK","LINK","LINK_TARGET","CLICK","CALLBACK_NAME","CALLBACK_ARGS","HREF","STYLE","CSSCLASS","COLON","BRKT","PCT","MINUS","UNICODE_TEXT","BQUOTE_STR","EDGE_STATE","EOF_IN_STRUCT","OPEN_IN_STRUCT","PLUS","EQUALS","PUNCTUATION"],Zt=[4,6,4,9,44,45,12,14,15,4,56,4,56],qt=[/.*direction\s+TB[^\n]*/y,/.*direction\s+BT[^\n]*/y,/.*direction\s+RL[^\n]*/y,/.*direction\s+LR[^\n]*/y],Be=/[\n\r\u2028\u2029]/g;function Jt(t){let a=t.length,s=[],o=[],b=[],l=[],m=0,e=0,M=t.indexOf("direction"),w=-1,S=0,d=(i,c,y)=>(s.push(i),o.push(t.slice(c,y)),b.push(c),e=y,!0),f=i=>{l.push(m),m=i},k=()=>{l.length>0&&(m=l.pop())},N=i=>t.startsWith(i,e)&&!me(t.charCodeAt(e+i.length)),U=i=>{for(;i<a&&V(t.charCodeAt(i));)i++;return i},I=i=>{let c=t.indexOf(i,e);return c===-1?a:c},B=i=>{let c=e,y=-1;for(let R=t.charCodeAt(c);c<a&&V(R);R=t.charCodeAt(++c))R===10&&(y=c);if(y<0){e=c;return}i&&k(),d(3,e,y+1)},Y=i=>{switch(i){case 99:if(N("cssClass"))return d(48,e,e+8);if(N("callback"))return d(40,e,e+8);if(N("click"))return d(43,e,e+5);break;case 108:if(N("link"))return d(41,e,e+4);break;case 110:if(N("note for"))return d(24,e,e+8);if(N("note"))return d(25,e,e+4);break;case 60:if(t.charCodeAt(e+1)===60)return d(20,e,e+2);break;case 62:if(t.charCodeAt(e+1)===62)return d(21,e,e+2);break;case 104:if(N("href"))return d(46,e,e+4);break}return!1},K=i=>{if(Y(i))return!0;let c=t.charCodeAt(e+1);switch(i){case 34:return f(1),e++,!0;case 126:return f(3),e++,!0;case 96:return f(2),e++,!0;case 95:if(N("_self"))return d(42,e,e+5);if(N("_blank"))return d(42,e,e+6);if(N("_parent"))return d(42,e,e+7);if(N("_top"))return d(42,e,e+4);break;case 60:return c===124?d(34,e,e+2):d(36,e,e+1);case 124:return c===62&&d(34,e,e+2);case 62:return d(36,e,e+1);case 42:return d(35,e,e+1);case 111:if(!me(c))return d(33,e,e+1);break;case 40:return c===41&&d(37,e,e+2);case 45:return c===45?d(38,e,e+2):d(52,e,e+1);case 46:return c===46?d(39,e,e+2):d(8,e,e+1);case 58:{let y=e+1;for(;y<a;){let R=t.charCodeAt(y);if(R===58||R===10||R===59)break;y++}return y>e+1?d(10,e,y):c===58&&t.charCodeAt(e+2)===58&&d(19,e,e+3)}case 43:return d(58,e,e+1);case 37:return d(51,e,e+1);case 61:return d(59,e,e+1);case 91:return d(5,e,e+1);case 93:return d(7,e,e+1);case 33:case 35:case 36:case 38:case 39:case 44:case 63:case 92:case 47:return d(60,e,e+1)}if(me(i)){let y=e+1;for(;me(t.charCodeAt(y));)y++;return d(27,e,y)}return Et(i)&&d(53,e,e+1)},J=()=>{if(M===-1||e<S||(M<e&&(M=t.indexOf("direction",e)),M===-1)||(w<e&&(Be.lastIndex=e,w=Be.test(t)?Be.lastIndex-1:a),M>=w))return!1;for(let i=0;i<4;i++){let c=qt[i];if(c.lastIndex=e,c.test(t))return d(29+i,e,c.lastIndex)}return S=w,!1},F=i=>{if(J())return!0;if(V(i))return B(!1),!0;switch(i){case 37:if(t.charCodeAt(e+1)===37){let c=I(`
3
- `);for(;c<a&&(t.charCodeAt(c)===10||t.charCodeAt(c)===13);)c++;return e=c,!0}break;case 97:{let c=t.startsWith("accTitle",e);if(!c&&!t.startsWith("accDescr",e))break;let y=U(e+8),R=t.charCodeAt(y);if(R===58)return d(c?11:13,e,U(y+1)),f(c?6:7),!0;if(R===123&&!c)return e=U(y+1),f(8),!0;break}case 99:if(N("classDiagram-v2"))return d(2,e,e+15);if(N("classDiagram"))return d(2,e,e+12);if(t.startsWith("call",e)&&V(t.charCodeAt(e+4)))return e=U(e+4),f(4),!0;if(N("classDef"))return d(26,e,e+8);if(N("class"))return f(9),d(22,e,e+5);break;case 91:if(t.startsWith("*]",e+1))return d(55,e,e+3);break;case 115:if(N("style"))return d(47,e,e+5);break;case 110:if(N("namespace"))return f(11),d(18,e,e+9);break;case 44:return d(28,e,e+1);case 35:return d(50,e,e+1)}return K(i)||i===58&&d(49,e,e+1)};for(;;){if(e>=a){s.push(Zt[m]),o.push(""),b.push(a);break}let i=t.charCodeAt(e),c=!0;switch(m){case 0:c=F(i);break;case 9:V(i)?B(!0):i===125?(k(),k(),d(17,e,e+1)):i===123?(f(10),d(16,e,e+1)):c=K(i);break;case 10:if(i===34)f(1),e++;else if(i===125)k(),d(17,e,e+1);else if(i===91&&t.startsWith("*]",e+1))d(55,e,e+3);else if(i===123)d(57,e,e+1);else if(i===10)e++;else{let y=e+1;for(;y<a;){let R=t.charCodeAt(y);if(R===123||R===125||R===10)break;y++}d(23,e,y)}break;case 11:V(i)?B(!0):i===123?(f(12),d(16,e,e+1)):i===125?k():i===110&&N("namespace")?(f(11),d(18,e,e+9)):c=K(i);break;case 12:V(i)?B(!1):i===125?(k(),d(17,e,e+1)):i===110&&N("namespace")?(f(11),d(18,e,e+9)):i===91&&t.startsWith("*]",e+1)?d(55,e,e+3):i===99&&N("class")?(f(9),d(22,e,e+5)):c=K(i);break;case 1:i===34?(k(),e++):d(6,e,I('"'));break;case 3:if(i===34)f(1),e++;else{if(Y(i))break;i===126?(k(),e++):d(9,e,I("~"))}break;case 2:if(i===34)f(1),e++;else{if(Y(i))break;i===126?(f(3),e++):i===96?(k(),e++):d(54,e,I("`"))}break;case 4:if(i===40){let y=U(e+1);k(),t.charCodeAt(y)===41?e=y+1:(f(5),e++)}else d(44,e,I("("));break;case 5:i===41?(k(),e++):d(45,e,I(")"));break;case 6:case 7:d(m===6?12:14,e,I(`
4
- `)),k();break;case 8:i===125?(k(),e++):d(15,e,I("}"));break}if(!c)return s.push(1),o.push(""),b.push(e),{types:s,texts:o,starts:b}}return s.push(0),o.push(""),b.push(a),{types:s,texts:o,starts:b}}var Ye=61,we=new Uint8Array(Ye);for(let t of[53,27,52])we[t]=1;var ze=new Uint8Array(Ye);for(let t of[27,49,50,47,51,10])ze[t]=1;var q=new Uint8Array(Ye);q[33]=1;q[34]=2;q[35]=3;q[36]=4;q[37]=5;var es="'UNICODE_TEXT', 'NUM', 'ALPHA', 'MINUS', 'BQUOTE_STR'";function ts(t,a){let{types:s,texts:o,starts:b}=Jt(t),l=0,m=i=>{let c=s[l];throw c===1?at("class",t,b[l],"",!0):at("class",t,b[l],`Expecting ${i}, got '${ct[c]}'`)},e=i=>(s[l]!==i&&m(`'${ct[i]}'`),o[l++]),M=()=>(we[s[l]]===0&&m("'UNICODE_TEXT', 'NUM', 'ALPHA', 'MINUS'"),o[l++]),w=i=>{let c="";for(;;){if(s[l]===54){c+=o[l++];break}we[s[l]]===0&&m(es),c+=o[l++];let y=s[l];if(y===8)c+=".",l++;else if(we[y]===0&&y!==54)break}return i&&s[l]===9&&(c+="~"+o[l++]+"~"),c},S=()=>{l++;let i=e(6);return e(7),i},d=()=>{s[l]!==23&&m("'STRUCT_STOP', 'MEMBER'");let i=[];for(;s[l]===23;)i.push(o[l++]);return e(17),i.reverse()},f=()=>{l++;let i=w(!0);switch(a.addClass(i),s[l]===5&&a.setClassLabel(i,S()),s[l]){case 19:{l++;let c=M();a.setCssClass(i,c),s[l]===16&&(l++,a.addMembers(i,d()));break}case 16:l++,s[l]===17?l++:a.addMembers(i,d());break;case 20:{l++;let c=M();e(21),a.addAnnotation(i,c),s[l]===16&&(l++,s[l]===17?l++:a.addMembers(i,d()));break}}return i},k=()=>{if(s[l++]===25)return a.addNote(e(6));let i=w(!0);return a.addNote(e(6),i)},N=()=>{let i=[];for(;;){l++;let c=w(!1),y=s[l]===5?a.addNamespace(c,S()):a.addNamespace(c);e(16),s[l]===3&&l++,i.push({id:y,classes:[],notes:[]});let R=!0;for(;R;){let G=i[i.length-1],W=s[l];if(W===18)break;for(W===22?G.classes.push(f()):W===25||W===24?G.notes.push(k()):m("'NAMESPACE', 'CLASS', 'NOTE_FOR', 'NOTE'");;){if(s[l]===3){let H=s[l+1];if(H===18||H===22||H===25||H===24){l++;break}l++}e(17);let X=i.pop();if(a.addClassesToNamespace(X.id,X.classes,X.notes),a.popNamespace(),i.length===0){R=!1;break}}}if(i.length===0)return}},U=()=>{let i=q[s[l]];return i===0?"none":(l++,i-1)},I=()=>{let i=w(!0),c=s[l];if(c===10){a.addMember(i,a.cleanupLabel(o[l++]));return}let y="none";if(c===6)y=o[l++],c=s[l];else if(q[c]===0&&c!==38&&c!==39)return;let R=U();c=s[l],c!==38&&c!==39&&m("'AGGREGATION', 'EXTENSION', 'COMPOSITION', 'DEPENDENCY', 'LOLLIPOP', 'LINE', 'DOTTED_LINE'"),l++;let G=U(),W=s[l]===6?o[l++]:"none",X=w(!0),H={id1:i,id2:X,relation:{type1:R,type2:G,lineType:c===38?0:1},relationTitle1:y,relationTitle2:W};s[l]===10&&(H.title=a.cleanupLabel(o[l++])),a.addRelation(H)},B=()=>{let i=[];for(;;){ze[s[l]]===0&&m("'ALPHA', 'NUM', 'COLON', 'UNIT', 'SPACE', 'BRKT', 'STYLE', 'PCT', 'LABEL'");let c=o[l++];for(;ze[s[l]]===1;)c+=o[l++];if(i.push(c),s[l]!==28)return i;l++}},Y=i=>{s[l]===6&&a.setTooltip(i,o[l++])},K=i=>{let c=e(6),y=s[l]===6?o[l++]:void 0;s[l]===42?a.setLink(i,c,o[l++]):a.setLink(i,c),y!==void 0&&a.setTooltip(i,y)},J=()=>{let i=s[l];switch(i){case 53:case 27:case 52:case 54:I();return;case 18:N();return;case 22:f();return;case 23:l++;return;case 20:{l++;let c=M();e(21),a.addAnnotation(w(!0),c);return}case 40:{l++;let c=w(!0);a.setClickEvent(c,e(6)),Y(c);return}case 41:l++,K(w(!0));return;case 43:{l++;let c=w(!0);if(s[l]===46){l++,K(c);return}let y=e(44);s[l]===45?a.setClickEvent(c,y,o[l++]):a.setClickEvent(c,y),Y(c);return}case 47:{l++;let c=e(27);a.setCssStyle(c,B());return}case 48:{l++;let c=e(6);a.setCssClass(c,e(27));return}case 25:case 24:k();return;case 26:{l++;let c=[e(27)];for(;s[l]===28;)l++,c.push(e(27));a.defineClass(c,B());return}case 29:case 30:case 31:case 32:l++,a.setDirection(i===29?"TB":i===30?"BT":i===31?"RL":"LR");return;case 11:l++,a.setAccTitle(e(12).trim());return;case 13:l++,a.setAccDescription(e(14).trim());return;case 15:a.setAccDescription(o[l++].trim());return}m("'acc_title', 'acc_descr', 'acc_descr_multiline_value', 'NAMESPACE', 'ANNOTATION_START', 'CLASS', 'MEMBER', 'NOTE_FOR', 'NOTE', 'CLASSDEF', 'direction_tb', 'CALLBACK', 'LINK', 'CLICK', 'STYLE', 'CSSCLASS', 'ALPHA', 'MINUS', 'BQUOTE_STR'")},F=s[l]===2;for(F&&(l++,e(3));J(),!(s[l]!==3||(l++,s[l]===4||s[l]===0)););F&&e(4),e(0)}var ss=["aggregation","extension","composition","dependency","lollipop"];function dt(t){return typeof t=="number"&&ss[t]||"none"}function rs(t,a=!0){let s=[],o=[],b=new Map,l=new Map,m=new Map,e=new Map,M=f=>{if(a||f===void 0)return f;let k=[],N=f,U;for(;N;){if(e.has(N)){U=e.get(N);break}let I=t.namespaces.get(N);if(I===void 0)break;if(I.explicit){U=N;break}k.push(N),N=I.parent}for(let I of k)e.set(I,U);return U},w=f=>f===void 0?-1:b.get(f)??-1;for(let f of t.namespaces.values())!a&&!f.explicit||(b.set(f.id,s.length),s.push({id:f.id,label:a?f.label:f.id,isGroup:!0,shape:"rect",parentId:a?f.parent:void 0,parent:-1}));for(let f of s)f.parent=w(f.parentId);let S=0;for(let f of t.classes.values()){let k=M(f.parent);l.set(f.id,s.length),s.push({id:f.id,label:f.label,isGroup:!1,shape:"classBox",parentId:k,parent:w(k),classNode:f,colorIndex:S++})}for(let f of t.notes.values()){let k=M(f.parent),N=f.class===void 0?void 0:l.get(f.class);N!==void 0&&o.push({id:`edgeNote${f.index}`,start:f.id,end:s[N].id,source:s.length,target:N,label:void 0,arrowTypeStart:"none",arrowTypeEnd:"none",startLabelRight:"",endLabelLeft:"",pattern:"dotted",classes:"relation"}),s.push({id:f.id,label:f.text,isGroup:!1,shape:"note",parentId:k,parent:w(k)})}for(let f of t.interfaces){let k=l.get(f.classId);m.set(f.id,s.length),s.push({id:f.id,label:f.label,isGroup:!1,shape:"interface",parentId:void 0,parent:k===void 0?-1:s[k].parent})}let d=0;for(let f of t.relations){d++;let{type1:k,type2:N}=f.relation,U=k===de.LOLLIPOP&&N==="none"?m:l,I=U===l&&N===de.LOLLIPOP&&k==="none"?m:l;o.push({id:`id_${f.id1}_${f.id2}_${d}`,start:f.id1,end:f.id2,source:U.get(f.id1)??-1,target:I.get(f.id2)??-1,label:f.title,arrowTypeStart:dt(k),arrowTypeEnd:dt(N),startLabelRight:f.relationTitle1==="none"?"":f.relationTitle1,endLabelLeft:f.relationTitle2==="none"?"":f.relationTitle2,pattern:f.relation.lineType===1?"dashed":"solid",classes:"relation"})}return{nodes:s,edges:o}}var Fe=12,ce=16,oe=6,Ae=5;function ht(t){switch(t){case"extension":return Fe;case"composition":case"aggregation":return ce;case"lollipop":return 2*Ae;case"dependency":return Yt("arrow_point")}return 0}function ft(t,a,s,o,b,l){let m=-b,e=o;switch(t){case"extension":{let M=a-o*Fe,w=s-b*Fe;return`<path class="pele-marker" d="M${g(a)},${g(s)}L${g(M+m*oe)},${g(w+e*oe)}L${g(M-m*oe)},${g(w-e*oe)}Z" stroke-linejoin="round"/>`}case"composition":case"aggregation":{let M=a-o*ce/2,w=s-b*ce/2,S=oe-1;return`<path class="pele-marker" d="M${g(a)},${g(s)}L${g(M+m*S)},${g(w+e*S)}L${g(a-o*ce)},${g(s-b*ce)}L${g(M-m*S)},${g(w-e*S)}Z" stroke-linejoin="round"${t==="composition"?` fill="${l}"`:""}/>`}case"lollipop":return`<circle class="pele-marker" cx="${g(a-o*Ae)}" cy="${g(s-b*Ae)}" r="${Ae}"/>`;case"dependency":return Ft("arrow_point",a,s,o,b,l)}return""}var as=40,ls=16,pt=56,Z=20,ut=26,He=12,$e=8,mt=6,is=10,ns=64,Te=8,We="var(--_l)",os=new Set(["_self","_blank","_parent","_top"]);function gt(t,a,s){let o=t[a];return typeof o=="number"&&o>0?Math.min(o,2e3):s}var ye=[],Ce=[];function bt(t,a,s){let o=te(t.getDisplayDetails().displayText).trim();return{text:o,width:a.width(o,s,t.classifier==="*"?2:0),classifier:t.classifier}}function cs(t,a,s){let o=b=>Ht(s,l=>ds(t,a,s,b,l));return Gt(t.direction)?Bt(s,o):o(!1)}function ds(t,a,s,o,b){let l=a.class??{},m=rs(t,l.hierarchicalNamespaces!==!1),e=l.hideEmptyMembersBox===!0,M=s.fontSize??16,w=Math.round(M*.875),S=Math.round(M*.8),d=Math.round(S*1.4),f=s.measurer??Ut(s.fontFamily),k=s.padding??8,N=o?"TB":_t(t.direction),U=new Map,I=new Map,B=new Map,Y=r=>{let n=U.get(r);if(n===void 0){let h=Ue([r]);n=h.shape===""&&h.text===""?"":r.slice(0,r.indexOf(":")).trim().toLowerCase(),U.set(r,n)}n!==""&&B.set(n,r)},K=r=>{B.clear();let n=I.get(r.cssClasses);if(n===void 0){for(let h of r.cssClasses.split(" ")){let p=t.styleClasses.get(h);if(p)for(let u of p.styles)for(let $ of u.split(","))Y($)}n=[...B],I.set(r.cssClasses,n)}else for(let[h,p]of n)B.set(h,p);for(let h of r.styles)Y(h);return Ue(B.size===0?Ce:[...B.values()])},J=new Int32Array(m.nodes.length);for(let r of m.nodes)r.parent>=0&&J[r.parent]++;let F=new Uint8Array(m.nodes.length);for(let r of m.edges){if(r.source<0||r.target<0)continue;let n=m.nodes[r.source].parent,h=m.nodes[r.target].parent;if(n!==h){for(let p=n;p>=0&&F[p]===0;p=m.nodes[p].parent)F[p]=1;for(let p=h;p>=0&&F[p]===0;p=m.nodes[p].parent)F[p]=1}}let i=[],c=[];m.nodes.forEach((r,n)=>{let h,p;if(r.isGroup){let u=ne(r.label,!1,f,M,4e3);h=y(r,u,0,0,M),J[n]>0?(p=ie(0,0),p.isGroup=!0,p.padX=Z,p.padTop=u.height>0?u.height+16:Z,p.padBottom=Z,p.minW=u.width+2*Z-12+(F[n]===1&&!b?Math.min(u.width+24,240):0)):(h.w=Math.max(u.width+2*Z,80),h.h=u.height+2*Z,p=ie(h.w,h.h))}else if(r.classNode)h=R(r,r.classNode),p=ie(h.w,h.h);else if(r.shape==="note"){let u=ne(r.label,!0,f,w,260);h=y(r,u,Math.max(u.width+2*He,40),u.height+2*$e,w),p=ie(h.w,h.h)}else{let u=ne(r.label,!1,f,w,200);h=y(r,u,Math.max(u.width,12)+4,Math.max(u.height,12),w),p=ie(h.w,h.h)}p.parent=r.parent,p.seq=n,i.push(h),c.push(p)});function y(r,n,h,p,u){return{node:r,style:Ue(Ce),label:n,w:h,h:p,loops:0,annotations:Ce,attributes:ye,methods:ye,titleH:0,attributesH:0,fontSize:u}}function R(r,n){let h=K(n),p=h.fontSize??M,u=Math.round(p*.875),$=Math.round(u*1.5),L=n.type?"&lt;"+Le(n.type).replace(/</g,"&lt;").replace(/>/g,"&gt;")+"&gt;":"",A=ne(n.label+L,!1,f,p,4e3,1|(h.italic?2:0)),C=n.annotations.length>0?n.annotations.map(P=>`«${te(P).trim()}»`):Ce,E=n.members.length>0?n.members.map(P=>bt(P,f,u)):ye,x=n.methods.length>0?n.methods.map(P=>bt(P,f,u)):ye,T=A.width;for(let P of C)T=Math.max(T,f.width(P,S,0));for(let P of E)T=Math.max(T,P.width);for(let P of x)T=Math.max(T,P.width);let D=!(e&&E.length===0&&x.length===0),O=P=>D?P>0?2*mt+P*$:is:0,v=2*$e+C.length*d+Math.max(A.height,Math.round(p*1.5)),z=O(E.length);return{node:r,style:h,label:A,w:Math.max(T+2*He,ns),h:v+z+O(x.length),loops:0,annotations:C,attributes:E,methods:x,titleH:v,attributesH:z,fontSize:p}}let G=[],W=[],X=[],H=[],ee=[],se=new Float64Array(i.length*4),Ke=(r,n,h)=>{se[r*4+n]++,h>se[r*4+n+1]&&(se[r*4+n+1]=h)};for(let r of m.edges){if(r.source<0||r.target<0)continue;let n=ne(r.label,!0,f,w,200),h=r.startLabelRight?f.width(te(r.startLabelRight),S,0):0,p=r.endLabelLeft?f.width(te(r.endLabelLeft),S,0):0;r.source===r.target?(i[r.source].loops++,c[r.source].w+=2*(ut+(n.width>0?n.width+12:0))):(Ke(r.source,0,h),Ke(r.target,2,p)),H.push(h),ee.push(p),W.push(r),X.push(n),G.push({src:r.source,dst:r.target,minlen:1,labelW:n.width>0?n.width+12:0,labelH:n.height>0?n.height+4:0,route:[],labelX:0,labelY:0})}if(N==="TB"||N==="BT")for(let r=0;r<i.length;r++){if(!i[r].node.classNode)continue;let n=0;for(let h=0;h<4;h+=2){let p=se[r*4+h],u=se[r*4+h+1];p>1&&(n=Math.max(n,(p-1)*(u>0?u+24:14)+24))}n=Math.min(n,480),n>i[r].w&&(c[r].w+=n-i[r].w,i[r].w=n)}let Ne=!1;for(let r=0;r<W.length&&!Ne;r++)Ne=H[r]>0||ee[r]>0;let Xe=It(c,G,N,{nodeSep:gt(l,"nodeSpacing",as),edgeSep:ls,rankSep:gt(l,"rankSpacing",Ne?pt+16:pt),portSep:20,apart:!0}),xe=new Map,je=[],Qe=(r,n,h,p,u)=>{let $=r.route,L=c[h],A=Pt($,n,L);if(A<0)return;let C=(L.w-i[h].w)/2;A===1?$[n]-=C:A===3&&($[n]+=C);let E=A&1,x=$[(n===0?3:n-3)+E],T=x-$[n+E],D={route:$,at:n,toward:x,order:u,room:p,side:A,after:E?T>0:T>=0},O=h*4+A,v=xe.get(O);return v?v.push(D):xe.set(O,[D]),D},Me=[],Ee=[];for(let r=0;r<G.length;r++){let n=G[r],h=n.src!==n.dst&&n.route.length>=6;Me.push(h?Qe(n,0,n.src,H[r],r):void 0),Ee.push(h?Qe(n,n.route.length-3,n.dst,ee[r],r):void 0)}let $t=(r,n,h)=>{for(let p=c[r].parent,u=0;p>=0&&u<1e4;p=c[p].parent,u++){let $=c[p],L=Math.abs(n-$.x),A=Math.abs(h-$.y);if(Math.abs(A-$.h/2)<.5&&L<=$.w/2+.5||Math.abs(L-$.w/2)<.5&&A<=$.h/2+.5)return!0}return!1},Ve=[];for(let[r,n]of xe){if(n.length<2)continue;let h=r>>2,p=r&1,u=p?i[h].h:i[h].w;n.sort((C,E)=>C.toward-E.toward||C.order-E.order);let $=0;for(let C=0;C+1<n.length;C++){let E=n[C],x=n[C+1],T=p?20:24;E.room>0&&E.after&&(T+=p?d+6:E.room),x.room>0&&!x.after&&(T+=p?d+6:x.room),Ve[C]=T,$+=T}let L=Math.min(1,(u-24)/$);if(L<=0)continue;let A=(p?c[h].y:c[h].x)-$*L/2;for(let C=0;C<n.length;C++){let{route:E,at:x}=n[C],T=x===0?3:-3,D=x+T,O=-1;for(let v=D;v>=0&&v<E.length&&Math.abs(E[v+p]-E[D+p])<.5;v+=T)if($t(h,E[v],E[v+1])){O=v;break}if(O>=0&&Math.abs(E[D+p]-A)<=24)for(let v=D;v!==O+T;v+=T)E[v+p]=A;E[x+p]=A,A+=Ve[C]*L}}let Ze=(r,n,h,p)=>{if(n===void 0||h<=0)return;let u=n.side&1,$=p?0:r.length-3,L=$+1-u,A=Math.abs(r[(p?3:$-3)+1-u]-r[L]),C=Math.min(u?h+10:d+6,A*.35);if(C<4)return;let E=[r[$],r[$+1],r[$+2]];E[1-u]+=(n.side===0||n.side===3?-1:1)*C,r.splice(p?3:$,0,E[0],E[1],E[2])};for(let r=0;r<G.length;r++)Ze(G[r].route,Me[r],H[r],!0),Ze(G[r].route,Ee[r],ee[r],!1);let he=0,fe=0,ke=Xe.width,Se=Xe.height,pe=(r,n,h,p,u,$)=>{if(!r)return;let L=h,A=p;u&1?(L+=(u===3?-1:1)*(5+n/2),A+=($?1:-1)*(7+d/2)):(L+=($?1:-1)*(9+n/2),A+=(u===0?-1:1)*(3+d/2)),je.push({text:te(r),x:L,y:A}),he=Math.min(he,L-n/2),ke=Math.max(ke,L+n/2),fe=Math.min(fe,A-d/2),Se=Math.max(Se,A+d/2)},qe=new Map,Je=new Int32Array(G.length);for(let r=0;r<G.length;r++){let n=G[r],h=W[r],p=n.route;if(n.src===n.dst){let u=qe.get(n.src)??0;qe.set(n.src,u+1),Je[r]=u;let $=c[n.src],L=i[n.src],A=$.x+L.w/2,C=Math.min(L.h/2-4,8+u*6);pe(h.startLabelRight,H[r],A,$.y-C,1,!1),pe(h.endLabelLeft,ee[r],A,$.y+C,1,!0)}else if(p.length>=6){let u=p.length-3,$=Me[r],L=Ee[r];pe(h.startLabelRight,H[r],p[0],p[1],$?$.side:2,$?$.after:!0),pe(h.endLabelLeft,ee[r],p[u],p[u+1],L?L.side:0,L?L.after:!0)}}let Q=k-he,re=k-fe,Tt=Math.ceil(ke-he+2*k),yt=Math.ceil(Se-fe+2*k),et=[],ve=new Map;if(m.nodes.length>0&&m.nodes[0].isGroup)for(let r of G)kt(ve,r.route);let Oe="",_e="",ue="";for(let r=0;r<i.length;r++){let n=i[r],h=c[r],p=n.node,u=h.x+Q,$=h.y+re,L=Ge(p.id),A=h.isGroup?h.w:n.w,C=h.isGroup?h.h:n.h;if(p.isGroup){let x=h.isGroup?St(h,n.label.width,ve,Z):h.x,T=$-C/2+8+n.label.height/2,D=' class="pele-cluster-label" fill="var(--_m)"',O=h.isGroup&&vt(h,n.label.width,x,ve);O&&(_e+=Ot(n.label,x+Q,T,D,L,m.nodes,r)),Oe+=`<g class="pele-cluster pele-namespace" data-id="${L}"><rect x="${g(u-A/2)}" y="${g($-C/2)}" width="${g(A)}" height="${g(C)}" rx="${lt}" fill="var(--_a)" fill-opacity="0.5" stroke="var(--_b)"/>`+(O?"":ge(n.label,x+Q,T,D))+"</g>";continue}let E=` transform="translate(${g(u)},${g($)})"`;if(p.classNode)ue+=Ct(n,p.classNode,L,E);else if(p.shape==="note"){let x=A/2,T=-C/2;ue+=`<g class="pele-node pele-note" data-id="${L}"${E}><path d="M${g(-x)},${g(T)}H${g(x-Te)}L${g(x)},${g(T+Te)}V${g(-T)}H${g(-x)}Z" fill="var(--_a)" stroke="var(--_b)" stroke-linejoin="round"/><path d="M${g(x-Te)},${g(T)}V${g(T+Te)}H${g(x)}" fill="none" stroke="var(--_b)" stroke-linejoin="round"/>`+ge(n.label,0,0,` class="pele-label" font-size="${w}"`,s.icons)+"</g>"}else ue+=`<g class="pele-node pele-interface" data-id="${L}"${E}>`+ge(n.label,0,0,` class="pele-label" font-size="${w}"`,s.icons)+"</g>"}function Ct(r,n,h,p){let{w:u,h:$,style:L}=r,A=-u/2,C=-$/2,E=Math.round(r.fontSize*.875),x=Math.round(E*1.5),T=`<rect x="${g(A)}" y="${g(C)}" width="${g(u)}" height="${g($)}" rx="${lt}" fill="var(--_s)" stroke="var(--_b)"${L.shape}/>`,D=C+r.titleH,O=D+r.attributesH;if($>r.titleH){let le=L.stroke?` style="stroke:${be(L.stroke)}"`:"";T+=`<path class="pele-divider" d="M${g(A)},${g(D)}H${g(-A)}M${g(A)},${g(O)}H${g(-A)}" fill="none" stroke="var(--_b)"${le}/>`}let v=C+$e;for(let le of r.annotations)T+=`<text class="pele-annotation" x="0" y="${g(v+d/2+S*.35)}" text-anchor="middle" font-size="${S}" fill="var(--_m)">${be(le)}</text>`,v+=d;let z=r.fontSize===M?"":` font-size="${g(r.fontSize)}"`;T+=ge(r.label,0,(v+D-$e)/2,` class="pele-label"${z} font-weight="var(--_hw)"${L.text}`,s.icons);let P=(le,Lt,wt)=>{let tt="",st=wt+mt+x/2+E*.35;for(let Pe of le){let At=Pe.classifier==="$"?` pele-static"${L.text?L.text.slice(0,-1)+'text-decoration:underline"':' style="text-decoration:underline"'}`:Pe.classifier==="*"?` pele-abstract" font-style="italic"${L.text}`:`"${L.text}`;tt+=`<text class="pele-member pele-${Lt}${At} x="${g(A+He)}" y="${g(st)}">${be(Pe.text)}</text>`,st+=x}return tt};return(r.attributes.length>0||r.methods.length>0)&&(T+=`<g class="pele-members" font-size="${E}">${P(r.attributes,"attribute",D)}${P(r.methods,"method",O)}</g>`),n.tooltip&&(T=`<title>${Ge(n.tooltip)}</title>`+T),n.link&&(T=Dt(T,n.link,n.id,et,s,n.linkTarget&&os.has(n.linkTarget)?` target="${n.linkTarget}"`:"")),`<g class="pele-node pele-class${Kt(n.cssClasses.replace(/^default\s?/,""))}" data-id="${h}"${p}>${T}</g>`}let Ie="",Re="";for(let r=0;r<G.length;r++){let n=G[r],h=W[r],p=X[r],u=h.arrowTypeStart,$=h.arrowTypeEnd,L=ht(u),A=ht($),C;if(n.src===n.dst){let x=c[n.src],T=i[n.src],D=Je[r],O=x.x+Q+T.w/2,v=x.y+re,z=Math.min(T.h/2-4,8+D*6),P=ut+D*8;C={d:`M${g(O+L)},${g(v-z)}C${g(O+P+L)},${g(v-z)} ${g(O+P+A)},${g(v+z)} ${g(O+A)},${g(v+z)}`,sx:O,sy:v-z,sdx:-1,sdy:0,ex:O,ey:v+z,edx:-1,edy:0},n.labelX=x.x+T.w/2+P+4+n.labelW/2,n.labelY=x.y}else{let x=n.route;for(let T=0;T<x.length;T+=3)x[T]+=Q,x[T+1]+=re;C=Wt(x,void 0,L,A)}let E=h.pattern==="dashed"?' stroke-dasharray="6 4"':h.pattern==="dotted"?' stroke-dasharray="2 4"':"";if(Ie+=`<g class="pele-edge${h.pattern==="dotted"?" pele-note-edge":" pele-relation"}" data-id="${Ge(h.id)}"><path d="${C.d}"${E}/>`+ft(u,C.sx,C.sy,C.sdx,C.sdy,We)+ft($,C.ex,C.ey,C.edx,C.edy,We)+"</g>",p.width>0){let x=n.labelX+Q,T=n.labelY+re;Re+=zt(h.id,p,x,T,"",s.icons)}}let De="";for(let r of je)De+=`<text class="pele-cardinality" x="${g(r.x+Q)}" y="${g(r.y+re+S*.35)}" text-anchor="middle">${be(r.text)}</text>`;let ae=Mt(t.title,f,M,k,Tt,yt,(Oe?`<g class="pele-clusters">${Oe}</g>`:"")+(Ie?`<g class="pele-edges" fill="none" stroke="${We}" stroke-linecap="round">${Ie}</g>`:"")+(_e?`<g class="pele-cluster-titles">${_e}</g>`:"")+(Re?`<g class="pele-edge-labels" font-size="${w}">${Re}</g>`:"")+(De?`<g class="pele-cardinalities" font-size="${S}" fill="var(--_m)">${De}</g>`:"")+`<g class="pele-nodes">${ue}</g>`);return{svg:Xt("class",ae.width,ae.height,M,s,t,ae.content),width:ae.width,height:ae.height,links:et}}var As={type:"class",parse(t,a,s){let o=new Vt;return s&&(o.title=s),ts(t,o),o},render:cs};export{As as classDiagram};
@@ -1 +0,0 @@
1
- function l(o,f,e){for(let t=0;t<e.length;t++){let n=o.charCodeAt(f+t),r=e.charCodeAt(t);if(n!==r&&!(r>=97&&r<=122&&n===r-32))return!1}return!0}export{l as s};
@@ -1,4 +0,0 @@
1
- import{$ as O,W as B}from"./lazy-CKqR1774.js";var D=/[&<>"\x00-\x08\x0b\x0c\x0e-\x1f\x7f]/,T=/[&<>"]|[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]+/g,q={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"};function v(e){return D.test(e)?e.replace(T,t=>q[t]??""):e}function _(e){return v(O(e))}var k=[];for(let e=0;e<100;e++)k.push(e===0?"":e%10===0?"."+e/10:"."+(e<10?"0"+e:e));function $(e){let t=Math.round(e*100);if(t===0)return"0";if(t>0){if(t<1e11){let r=Math.floor(t/100);return r+k[t-r*100]}}else if(t>-1e11){let r=-t,i=Math.floor(r/100);return"-"+i+k[r-i*100]}return String(t/100)}function fe(e,t,r,i,l){let h=e.lines;if(h.length===0)return"";let f=e.lineHeight,s=e.size*.35,d=r-e.height/2+f/2+s;if(h.length===1&&h[0].length===1&&h[0][0].icon===void 0&&h[0][0].style===0)return`<text${i} x="${$(t)}" y="${$(d)}" text-anchor="middle">${v(h[0][0].text)}</text>`;let n=A(e);i=I(i,n);let c="",a="";for(let o=0;o<h.length;o++){let u=h[o],x=!1;for(let g of u)g.icon!==void 0&&(x=!0);if(x){let g=t-e.widths[o]/2;for(let p of u){if(p.icon!==void 0){let w=e.size*1.1,m=(l==null?void 0:l(p.icon))??"";a+=`<svg class="pele-icon" data-icon="${_(p.icon)}" x="${$(g)}" y="${$(d-s-w/2)}" width="${$(w)}" height="${$(w)}" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">${m}</svg>`}else p.text!==""&&(c+=`<tspan x="${$(g)}" y="${$(d)}" text-anchor="start"${z(p.style&~n)}>${v(p.text)}</tspan>`);g+=p.width}}else{for(let g=0;g<u.length;g++){let p=u[g],w=g===0?` x="${$(t)}" y="${$(d)}"`:"";c+=`<tspan${w}${z(p.style&~n)}>${v(p.text)}</tspan>`}u.length===0&&(c+=`<tspan x="${$(t)}" y="${$(d)}"> </tspan>`)}d+=f}return`<text${i} text-anchor="middle" xml:space="preserve">${c}</text>${a}`}var C=' font-weight="var(--_w)"',F=' font-style="italic"';function z(e){return(e&1?C:"")+(e&2?F:"")}function A(e){let t=3,r=!1;for(let i of e.lines)for(let l of i)l.icon!==void 0||l.text===""||(t&=l.style,r=!0);return r?t:0}function I(e,t){return e+(t&1&&!e.includes(' font-weight="')?C:"")+(t&2&&!e.includes(' font-style="')?F:"")}var P="--_bg:var(--pele-bg,#fff);--_fg:var(--pele-fg,#1f1f1f);--_m:var(--pele-muted,#6e6e6e);--_l:var(--pele-line,#1f1f1f);--_s:var(--pele-surface,#f3f3f3);--_a:var(--pele-surface-alt,#e6e6e6);--_b:var(--pele-border,#8a8a8a);--_c:var(--pele-accent,#5b7bd5);color:var(--_fg)",ce="var(--_fm)",N="var(--pele-radius,4px)",he="var(--pele-critical,#e45756)",S=String.raw`(?:"[^"'\\\n<>{}();:@]*"|'[^"'\\\n<>{}();:@]*'|[\p{L}\p{N}_-][\p{L}\p{N}_ .-]*)`,R=new RegExp(String.raw`^\s*${S}(?:\s*,\s*${S})*\s*$`,"u");function M(e,t){return e&&R.test(e)?e:t}function Z(e,t,r){return`;--_fm:var(--pele-font-mono,${M(r,"monospace")});font:${e}px sans-serif;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;font-family:var(--pele-font,${M(t,"sans-serif")})`}var G=new Set(["fill","fill-opacity","stroke","stroke-width","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-opacity","opacity","rx","ry"]),J=new Set(["color","font-size","font-family","font-weight","font-style","text-decoration","letter-spacing","word-spacing","opacity"]),K=/url\s*\(|expression\s*\(|javascript:|[<>{};\\]|@import|image-set|\/\*/i,H={shape:"",line:"",text:"",stroke:void 0,bold:!1,italic:!1,fontSize:void 0};function de(e){if(e.length===0)return H;let t=new Map,r=new Map;for(let n of e){let c=n.indexOf(":");if(c<=0)continue;let a=n.slice(0,c).trim().toLowerCase(),o=n.slice(c+1).replace(/!important/gi,"").trim();o===""||K.test(o)||(G.has(a)&&t.set(a,o),J.has(a)&&r.set(a==="color"?"fill":a,o))}if(t.size===0&&r.size===0)return H;let i="",l="";for(let[n,c]of t)i+=`${n}:${c};`,n!=="fill"&&n!=="fill-opacity"&&(l+=`${n}:${c};`);let h="";for(let[n,c]of r)h+=`${n}:${c};`;let f=r.get("font-weight"),s=r.get("font-size"),d=s&&/^[\d.]+(px)?$/.test(s)?parseFloat(s):void 0;return{shape:i?` style="${v(i)}"`:"",line:l?` style="${v(l)}"`:"",text:h?` style="${v(h)}"`:"",stroke:t.get("stroke"),bold:f==="bold"||f==="bolder"||Number(f)>=600,italic:r.get("font-style")==="italic",fontSize:d!==void 0&&d>0&&d<=200?d:void 0}}var Q=/[^\w-]+/g;function ue(e){let t=e.replace(Q," ").trim();return t===""?"":" "+t}var U=["#4c78a8","#f58518","#54a24b","#e45756","#72b7b2","#eeca3b","#b279a2","#9d755d"];function ge(e){let t=(e%8+8)%8;return`var(--pele-series-${t+1},${U[t]})`}var y=` rx="${N}"`,V=/<rect\b[^>]*>/g;function X(e){return e.includes(y)?e.replace(V,t=>{let r=t.indexOf(y);if(r<0)return t;let i=t.slice(0,r)+t.slice(r+y.length),l=i.indexOf(' style="');if(l>=0)return`${i.slice(0,l+8)}rx:var(--_r);${i.slice(l+8)}`;let h=i.endsWith("/>")?i.length-2:i.length-1;return`${i.slice(0,h)} style="rx:var(--_r)"${i.slice(h)}`}):e}var Y=[["--_tw","title"],["--_hw","heading"],["--_w","bold"]];function pe(e,t,r,i,l,h,f){let s=v(l.idPrefix??"pele"),d="",n="";h.accTitle&&(d+=`<title id="${s}-title">${_(h.accTitle)}</title>`,n+=` aria-labelledby="${s}-title"`),h.accDescr&&(d+=`<desc id="${s}-desc">${_(h.accDescr)}</desc>`,n+=` aria-describedby="${s}-desc"`);let c=l.responsive===!1?"":"max-width:100%;height:auto;";f=X(f);let a=f.includes("var(--_r)")?`;--_r:${N}`:"";for(let[o,u]of Y)f.includes(`var(${o})`)&&(a+=`;${o}:var(--pele-${u}-weight,bold)`);return`<svg xmlns="http://www.w3.org/2000/svg" class="pele pele-${e}" viewBox="0 0 ${t} ${r}" width="${t}" height="${r}" style="${c}${P}${a}${v(Z(i,l.fontFamily,l.fontFamilyMono))}" fill="var(--_fg)" role="graphics-document document" aria-roledescription="${e}"${n}>`+d+f+"</svg>"}var ee=1.5,te=/<br\s*\/?>|\\n|\n/gi,j=/<\/?([a-zA-Z][\w-]*)(?:\s[^<>]*)?\/?>/y,E=/(fa[bklrs]?):fa-([\w-]+)/g,ie=/[<\\\n*_]|fa[bklrs]?:fa-/,le={lines:[],widths:[],width:0,height:0,size:0,lineHeight:0};function re(e){let t=e.split(`
2
- `),r=1/0;for(let i of t){if(i.trim()==="")continue;let l=i.length-i.trimStart().length;l<r&&(r=l)}return r===1/0||r===0?e:t.map(i=>i.slice(Math.min(r,i.length-i.trimStart().length))).join(`
3
- `)}function b(e,t,r){if(t==="")return;let i=O(t),l=e[e.length-1];l&&l.style===r&&l.icon===void 0?l.text+=i:e.push({text:i,style:r,width:0})}function ne(e,t,r){if(!t.includes(":fa-")){b(e,t,r);return}let i=0;E.lastIndex=0;let l;for(;(l=E.exec(t))!==null;){let h=`${l[1]}:fa-${l[2]}`;if(b(e,t.slice(i,l.index),r),i=l.index+l[0].length,B(h)!=="")e.push({text:"",style:r,icon:h,width:0});else if(t[i]===" ")i++;else if(i===t.length){let f=e[e.length-1];f&&f.icon===void 0&&(f.text=f.text.trimEnd())}}b(e,t.slice(i),r)}function oe(e,t,r,i){let l=i,h=0,f="",s=0,d=t.length,n=()=>{ne(e,f,l),f=""};for(;s<d;){let c=t[s];if(c==="<"){j.lastIndex=s;let a=j.exec(t);if(a&&a.index===s){let o=a[1].toLowerCase(),u=t[s+1]==="/",x=o==="b"||o==="strong"?1:o==="i"||o==="em"?2:0;x&&(n(),l=u?l&~x|i&x:l|x),s+=a[0].length;continue}}else if(r&&(c==="*"||c==="_")){let a=t[s+1]===c,o=a?1:2,u=a?2:1,x=(h&o)===0,g=s>0?t[s-1]:" ",p=s+u<d?t[s+u]:" ",w=x&&p.trim()!==""&&t.indexOf(a?c+c:c,s+u)!==-1,m=!x&&g.trim()!=="",W=c==="_"&&/\w/.test(g)&&/\w/.test(p);if((w||m)&&!W){n(),h=w?h|o:h&~o,l=w?l|o:l&~o|i&o,s+=u;continue}}f+=c,s++}n()}function se(e,t,r){let i=0;for(let l of e)l.width=l.icon!==void 0?r*1.25:t.width(l.text,r,l.style),i+=l.width;return i}function L(e,t,r,i,l,h){let f=[],s=0,d=()=>{let n=f[f.length-1];if(n&&n.icon===void 0){let c=n.text.trimEnd();if(c!==n.text){n.text=c;let a=t.width(c,r,n.style);s+=a-n.width,n.width=a}}l.push(f),h.push(s),f=[],s=0};for(let n of e){if(n.icon!==void 0){let c=r*1.25;s>0&&s+c>i&&d(),f.push({...n,width:c}),s+=c;continue}for(let c of n.text.match(/\s*\S+\s*|\s+/g)??[]){let a=c;s>0&&s+t.width(a.trimEnd(),r,n.style)>i&&(d(),a=a.trimStart());let o=f[f.length-1];if(o&&o.style===n.style&&o.icon===void 0){o.text+=a,o.width=t.width(o.text,r,o.style),s=0;for(let u of f)s+=u.width}else{let u=t.width(a,r,n.style);f.push({text:a,style:n.style,width:u}),s+=u}}}(f.length>0||l.length===0)&&d()}function xe(e,t,r,i,l,h=0){if(e===void 0||e==="")return le;let f=Math.round(i*ee);if(!ie.test(e)&&!e.includes("&")&&!e.includes("fl")){let a=e.trim(),o=r.width(a,i,h);if(o<=l||!a.includes(" "))return{lines:[[{text:a,style:h,width:o}]],widths:[o],width:o,height:f,size:i,lineHeight:f};let u=[],x=[];L([{text:a,style:h,width:o}],r,i,l,u,x);let g=0;for(let p of x)p>g&&(g=p);return{lines:u,widths:x,width:g,height:u.length*f,size:i,lineHeight:f}}let s=t?re(e.replace(/\r\n?/g,`
4
- `)).trim():e.trim(),d=[],n=[],c=0;for(let a of s.split(te)){let o=[];oe(o,a.trim(),t,h);let u=se(o,r,i);u>l?L(o,r,i,l,d,n):(d.push(o),n.push(u))}for(let a of n)a>c&&(c=a);return{lines:d,widths:n,width:c,height:d.length*f,size:i,lineHeight:f}}export{pe as $,z as T,A as Y,xe as _,N as a,v as b,fe as f,de as g,ue as h,ge as m,ce as p,I as q,he as u,$ as x,_ as y};
@@ -1,2 +0,0 @@
1
- import{_ as s}from"./RZSVICHU-BiwjruZZ.js";var u=/<(?!br\s*\/?>)/gi,g=/:fa-/g,h=/<br\s*\/?>|fl°°?\w+¶ß|&#?\w+;|[\ud800-\udbff][\udc00-\udfff]|[\s\S]/gi;function c(f,r,n,t,i=0){let e=f;return e!==void 0&&(e.includes("<")&&(e=e.replace(u,"&lt;")),e.includes(":fa-")&&(e=e.replace(g,"&colon;fa-"))),s(e,!1,r,n,t,i)}function b(f,r,n,t,i=0){let e=c(f,r,n,t,i);if(f===void 0||e.width<=t)return e;let d="",o=0;for(let l of f.match(h)??[]){if(l.trim()===""||l.length>2&&l[0]==="<")o=0;else{let a=r.width(l.length>2?"x":l,n,i);o>0&&o+a>t&&(d+=`
2
- `,o=0),o+=a}d+=l}return c(d,r,n,t,i)}export{b as T,c as s};
@@ -1,5 +0,0 @@
1
- var vt=Object.defineProperty;var xt=(t,l,i)=>l in t?vt(t,l,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[l]=i;var A=(t,l,i)=>xt(t,typeof l!="symbol"?l+"":l,i);import{X as ot,W as kt,Y as Mt}from"./N6DAJLIZ-BsZQKTyT.js";import{H as bt,q as _t,x as G,W as St}from"./lazy-CKqR1774.js";import{M as Lt,A as Ct,O as Wt}from"./JZWSX6AR-OwVPptYv.js";import{h as At}from"./DKTLEL5E-B7ILCVTH.js";import{_ as pt,a as ct,x as S,b as mt,h as dt,y as gt,f as $t,$ as zt,q as Tt,u as ft}from"./RZSVICHU-BiwjruZZ.js";import"./index-392ivruk.js";var Ht=class{constructor(){A(this,"type","kanban");A(this,"title");A(this,"sections",[]);A(this,"getType",kt);A(this,"last");A(this,"sectionLevel",0);A(this,"misplaced")}addNode(t,l,i,d,s){let r={id:l,level:t,label:i};if(s!==void 0){let h=s.includes(`
2
- `)?s+`
3
- `:`{
4
- `+s+`
5
- }`,e;try{e=_t(h)}catch(n){throw new G(`Metadata of "${r.id}" is not valid YAML. ${n.message}`,"syntax",{type:"kanban"})}if(e!==null&&typeof e=="object"&&!Array.isArray(e)){let n=e.shape?String(e.shape):"";if(n!==n.toLowerCase()||n.includes("_"))throw new G(`No such shape: ${n}. Shape names should be lowercase.`,"semantic",{type:"kanban"});e.label&&(r.label=String(e.label)),e.icon&&(r.icon=String(e.icon)),e.assigned&&(r.assigned=String(e.assigned)),e.ticket&&(r.ticket=String(e.ticket)),e.priority&&(r.priority=String(e.priority))}}if(this.misplaced)throw new G(`Items without section detected, found section ("${this.misplaced.label}")`,"semantic",{type:"kanban"});let a=this.sections;if(a.length===0&&(this.sectionLevel=t),this.last=r,t===this.sectionLevel){let h=r;h.items=[],a.push(h)}else a[a.length-1].items.push(r),t<this.sectionLevel&&(this.misplaced=r)}decorateNode(t){let l=this.last;!t||!l||(t.icon&&(l.icon=t.icon),t.class&&(l.cssClasses=t.class))}};function It(t,l){Mt(t,l,!0)}var k=12,z=8,M=10,X=8,Nt=4,J=6,qt=new Map([["very high",`stroke="${ft}"`],["high",`stroke="${ft}" opacity="0.5"`],["low",'stroke="var(--_m)" opacity="0.5"'],["very low",'stroke="var(--_m)"']]);function R(t,l,i,d,s,r=0){let a=pt(t,l,i,d,s,r);if(a.width<=s)return a;let h=[],e=[],n=0,f=[],o=0,y=()=>{h.push(f),e.push(o),n=Math.max(n,o),f=[],o=0};for(let $=0;$<a.lines.length;$++){if(a.widths[$]<=s){f=a.lines[$],o=a.widths[$],y();continue}for(let u of a.lines[$]){if(u.icon!==void 0){o>0&&o+u.width>s&&y(),f.push(u),o+=u.width;continue}let b="",v=o;for(let L of u.text){let N=i.width(L,d,u.style);o>0&&o+N>s&&(b&&f.push({text:b,style:u.style,width:o-v}),y(),b="",v=0),b+=L,o+=N}b&&f.push({text:b,style:u.style,width:o-v})}y()}return{...a,lines:h,widths:e,width:n,height:h.length*a.lineHeight}}function F(t,l,i,d,s,r=!1){let a="";for(let h=0;h<t.lines.length;h++){let e=t.lines[h],n=i+(h+.5)*t.lineHeight;if(e.length===1&&e[0].icon===void 0)a+=`<text${Tt(d,e[0].style)} x="${S(l)}" y="${S(n+t.size*.35)}"${r?' text-anchor="end"':""}>${mt(e[0].text)}</text>`;else{let f=t.widths[h],o={...t,lines:[e],widths:[f],height:t.lineHeight};a+=$t(o,l+(r?-f:f)/2,n,d,s)}}return a}var V=t=>!!t&&St(t)!=="";function Ut(t,l,i){let d=i.fontSize??16,s=Math.round(d*.875),r=Math.round(d*1.5),a=Math.round(s*1.5),h=i.measurer??bt(i.fontFamily),e=i.padding??8,n=i.icons,f=l.kanban??{},o=f.sectionWidth,y=typeof o=="number"&&o>0?Math.min(Math.max(o,80),2e3):200,$=i.maxWidth!==void 0&&i.maxWidth>0?i.maxWidth-2*e:1/0,u=t.sections.length,b=u*(y+k)-k<=$,v=b?Math.max(u,1):Math.max(1,Math.floor(($+k)/(y+k))),L=b?y:Math.max(Math.min(y,$),Math.min(Math.floor(($+k)/v)-k,y*2)),N=typeof f.ticketBaseUrl=="string"?f.ticketBaseUrl:"",q=L-2*z,O=q-2*M,C=s*1.25,Q=[],T=t.sections,Z=[],tt=[],et=[],H=r,it=[];for(let c of T){let w=h.width(String(c.items.length),s,0),_=w+12+(V(c.icon)?C+J:0),x=R(c.label,!0,h,d,q-8-_,1);H=Math.max(H,x.height),tt.push(w),Z.push(x);let K=[],p=0;for(let g of c.items){let j=R(g.label,!0,h,s,O-(V(g.icon)?C+J:0)),W=R(g.ticket,!1,h,s,O),m=R(g.assigned,!1,h,s,O),I=W.width+m.width+8>O?W.height+m.height:Math.max(W.height,m.height),E=2*M+Math.max(j.height,a)+(I?Nt+I:0);K.push({item:g,label:j,ticket:W,assigned:m,meta:I,height:E}),p+=E+X}et.push(K),it.push(p)}H+=2*z;let U=[],P=[];for(let c=0,w=0;c<T.length;c+=v){let _=X;for(let x=c;x<Math.min(c+v,T.length);x++)_=Math.max(_,it[x]);P.push(w),U.push(H+_),w+=H+_+k}let ut=U.length>0?P[P.length-1]+U[U.length-1]:0,B=pt(t.title,!1,h,d,At(i),1),lt=B.height>0?B.height+16:0,st=Math.max(Math.min(T.length,v)*(L+k)-k,0),at=Math.max(st,B.width),wt=e+(at-st)/2,ht=L-z-4,nt="";for(let c=0;c<T.length;c++){let w=T[c],_=Math.floor(c/v),x=`<rect width="${L}" height="${S(U[_])}" rx="${ct}" fill="var(--_s)"/>`+F(Z[c],z+4,z,' class="pele-cluster-label" font-weight="var(--_hw)"',n)+`<text class="pele-count" x="${ht}" y="${S(z+r/2+s*.35)}" text-anchor="end" font-size="${s}" fill="var(--_m)">${w.items.length}</text>`;V(w.icon)&&(x+=ot(w.icon,ht-tt[c]-J-C,z+(r-C)/2,C,n));let K=H;for(let p of et[c]){let g=p.item,j=(g.priority??"").trim().toLowerCase(),W=qt.get(j),m=`<rect width="${q}" height="${S(p.height)}" rx="${ct}" fill="var(--_bg)" stroke="var(--_b)"/>`;W!==void 0&&(m+=`<path class="pele-priority" d="M2.5,5V${S(p.height-5)}" fill="none" ${W} stroke-width="3" stroke-linecap="round"/>`),m+=F(p.label,M,M,' class="pele-label"',n),V(g.icon)&&(m+=ot(g.icon,q-M-C,M+(a-C)/2,C,n));let I=p.height-M;if(g.ticket){let E=I-p.meta,D=N?Lt(Ct(N.replace("#TICKET#",()=>g.ticket)),i):void 0;D===void 0?m+=F(p.ticket,M,E,' class="pele-ticket" fill="var(--_m)"',n):(m+=`<a href="${mt(D)}" target="_blank"${Wt(i)}>`+F(p.ticket,M,E,' class="pele-ticket" fill="var(--_c)"',n)+"</a>",Q.push({id:g.id,href:D,internal:!1}))}g.assigned&&(m+=F(p.assigned,q-M,I-p.assigned.height,' class="pele-assigned" fill="var(--_m)"',n,!0)),x+=`<g class="pele-node pele-card${W===void 0?"":" pele-priority-"+j.replace(" ","-")}${dt(g.cssClasses??"")}" data-id="${gt(g.id)}" transform="translate(${z},${S(K)})" font-size="${s}">${m}</g>`,K+=p.height+X}nt+=`<g class="pele-cluster pele-column${dt(w.cssClasses??"")}" data-id="${gt(w.id)}" transform="translate(${S(wt+c%v*(L+k))},${S(e+lt+P[_])})">${x}</g>`}let Y=Math.ceil(at+2*e),rt=Math.ceil(ut+lt+2*e),yt=$t(B,Y/2,e+B.height/2,' class="pele-title" font-weight="var(--_tw)"')+nt;return{svg:zt("kanban",Y,rt,d,i,{},yt),width:Y,height:rt,links:Q}}var Rt={type:"kanban",parse(t,l,i){let d=new Ht;return d.title=i,It(t,d),d},render:Ut};export{Rt as kanban};
@@ -1 +0,0 @@
1
- import{a as P,x as a}from"./RZSVICHU-BiwjruZZ.js";var l=18,d=12,z=12,o=(e,$,r)=>(r?$:e)-2*z,x=e=>($,r,t)=>t?0:$-2*e(r)-2*z;function V(e,$,r){let t=Math.min(1,Math.abs(e)/$);return r*(1-Math.sqrt(1-t*t))}var p=(e,$,r,t)=>r&1?V(t,$/2,e/2):V(t,e/2,$/2),M=(e,$,r)=>(r?$:e)*.6,q=(e,$,r,t)=>r&1?0:V(t,e/2,Math.min(12,Math.max(6,e/14))),y=(e,$)=>()=>({w:e,h:$,dy:0});function v(e,$,r){let t=Math.max(1.6*e+40,80),i=($+10)/(1-(e+8)/t),s=i/2-10-$/2;return{w:t,h:i,dy:r?-s:s}}function f(e,$){return`<path d="${e}"${$}/>`}var g=(e,$,r)=>r&1?$/8:0,m=(e,$)=>({w:Math.max(e+2*l,2*l+12),h:$+2*d,dy:0});function c(e,$){let r="";for(let t=0;t<e.length;t+=2)r+=(t?" ":"")+a(e[t])+","+a(e[t+1]);return`<polygon points="${r}"${$}/>`}function w(e,$,r,t=""){return`<rect x="${a(-e/2)}" y="${a(-$/2)}" width="${a(e)}" height="${a($)}"${t}${r}/>`}var u=` rx="${P}"`,_={rect:{size:m,span:o,draw:(e,$,r)=>w(e,$,r,u)},rounded:{size:m,span:o,draw:(e,$,r)=>w(e,$,r,` rx="${a(Math.min(12,$/2))}"`)},stadium:{inset:(e,$,r,t)=>r&1?V(t,$/2,$/2):0,span:(e,$,r)=>r?$*.6:e-$,size:(e,$)=>{let r=$+2*d;return{w:e+r*.5+2*l-8,h:r,dy:0}},draw:(e,$,r)=>w(e,$,r,` rx="${a($/2)}"`)},"fr-rect":{span:o,size:(e,$)=>({w:e+2*l+16,h:$+2*d,dy:0}),draw:(e,$,r,t)=>{let i=e/2-8;return w(e,$,r,u)+`<path d="M${a(-i)},${a(-$/2)}V${a($/2)}M${a(i)},${a(-$/2)}V${a($/2)}" fill="none"${t}/>`}},cyl:{inset:q,span:(e,$,r)=>r?$-2*z-12:e*.6,size:(e,$)=>{let r=Math.max(e+2*l,56),t=Math.min(12,Math.max(6,r/14));return{w:r,h:$+2*d+2*t,dy:t/2}},draw:(e,$,r,t)=>{let i=e/2,s=Math.min(12,Math.max(6,e/14)),n=-$/2+s,h=$/2-s;return`<path d="M${a(-i)},${a(n)}A${a(i)},${a(s)} 0 0 1 ${a(i)},${a(n)}V${a(h)}A${a(i)},${a(s)} 0 0 1 ${a(-i)},${a(h)}Z"${r}/><path d="M${a(-i)},${a(n)}A${a(i)},${a(s)} 0 0 0 ${a(i)},${a(n)}" fill="none"${t}/>`}},circle:{inset:p,span:M,size:(e,$)=>{let r=Math.max(Math.sqrt(e*e+$*$)+16,44);return{w:r,h:r,dy:0}},draw:(e,$,r)=>`<circle r="${a(e/2)}"${r}/>`},"dbl-circ":{inset:p,span:M,size:(e,$)=>{let r=Math.max(Math.sqrt(e*e+$*$)+26,54);return{w:r,h:r,dy:0}},draw:(e,$,r,t)=>`<circle r="${a(e/2)}"${r}/><circle r="${a(e/2-5)}" fill="none"${t}/>`},ellipse:{inset:p,span:M,size:(e,$)=>({w:e*1.3+2*l,h:$*1.2+2*d,dy:0}),draw:(e,$,r)=>`<ellipse rx="${a(e/2)}" ry="${a($/2)}"${r}/>`},diam:{inset:(e,$,r,t)=>r&1?Math.abs(t)*e/$:Math.abs(t)*$/e,span:(e,$,r)=>(r?$:e)*.6,size:(e,$)=>{let r=e+16,t=$+8;return{w:r+1.6*t,h:r/1.6+t,dy:0}},draw:(e,$,r)=>c([0,-$/2,e/2,0,0,$/2,-e/2,0],r)},hex:{inset:(e,$,r,t)=>r&1?Math.abs(t)/2:0,span:(e,$,r)=>r?$*.5:e-$/2-z,size:(e,$)=>{let r=$+2*d;return{w:e+2*l+r/2,h:r,dy:0}},draw:(e,$,r)=>{let t=$/4;return c([-e/2+t,-$/2,e/2-t,-$/2,e/2,0,e/2-t,$/2,-e/2+t,$/2,-e/2,0],r)}},odd:{inset:(e,$,r)=>r===3?$/4:0,span:x(()=>0),size:(e,$)=>{let r=$+2*d;return{w:e+2*l+r/4,h:r,dy:0}},draw:(e,$,r)=>{let t=$/4;return c([-e/2,-$/2,e/2,-$/2,e/2,$/2,-e/2,$/2,-e/2+t,0],r)}},"lean-r":{inset:g,span:x(e=>e/4),size:(e,$)=>{let r=$+2*d;return{w:e+2*l+r/2,h:r,dy:0}},draw:(e,$,r)=>{let t=$/4;return c([-e/2+t,-$/2,e/2,-$/2,e/2-t,$/2,-e/2,$/2],r)}},"lean-l":{inset:g,span:x(e=>e/4),size:(e,$)=>{let r=$+2*d;return{w:e+2*l+r/2,h:r,dy:0}},draw:(e,$,r)=>{let t=$/4;return c([-e/2,-$/2,e/2-t,-$/2,e/2,$/2,-e/2+t,$/2],r)}},"trap-b":{inset:g,span:x(e=>e/4),size:(e,$)=>{let r=$+2*d;return{w:e+2*l+r/2,h:r,dy:0}},draw:(e,$,r)=>{let t=$/4;return c([-e/2+t,-$/2,e/2-t,-$/2,e/2,$/2,-e/2,$/2],r)}},"trap-t":{inset:g,span:x(e=>e/4),size:(e,$)=>{let r=$+2*d;return{w:e+2*l+r/2,h:r,dy:0}},draw:(e,$,r)=>{let t=$/4;return c([-e/2,-$/2,e/2,-$/2,e/2-t,$/2,-e/2+t,$/2],r)}},text:{span:o,size:(e,$)=>({w:e+8,h:$+8,dy:0}),draw:(e,$)=>w(e,$,' fill="none" stroke="none"')},"sm-circ":{noLabel:!0,inset:p,span:M,size:y(14,14),draw:(e,$,r)=>`<circle r="${a(e/2)}"${r}/>`},"f-circ":{noLabel:!0,inset:p,span:M,size:y(14,14),draw:(e,$,r,t)=>`<circle r="${a(e/2)}" fill="var(--_l)"${t}/>`},"fr-circ":{noLabel:!0,inset:p,span:M,size:y(18,18),draw:(e,$,r,t)=>`<circle r="${a(e/2)}"${r}/><circle r="${a(e/2-4)}" fill="var(--_l)"${t}/>`},fork:{noLabel:!0,span:(e,$,r)=>(r?$:e)-8,size:y(72,8),draw:(e,$,r,t)=>w(e,$,` fill="var(--_l)"${t}`,' rx="2"')},"notch-rect":{size:m,span:o,draw:(e,$,r)=>c([-e/2+10,-$/2,e/2,-$/2,e/2,$/2,-e/2,$/2,-e/2,-$/2+10],r)},"lin-rect":{span:o,size:(e,$)=>({w:e+2*l+8,h:$+2*d,dy:0}),draw:(e,$,r,t)=>w(e,$,r,u)+`<path d="M${a(-e/2+8)},${a(-$/2)}V${a($/2)}" fill="none"${t}/>`},"div-rect":{span:o,size:(e,$)=>({w:e+2*l,h:$+2*d+8,dy:4}),draw:(e,$,r,t)=>w(e,$,r,u)+`<path d="M${a(-e/2)},${a(-$/2+8)}H${a(e/2)}" fill="none"${t}/>`},"win-pane":{span:o,size:(e,$)=>({w:e+2*l+8,h:$+2*d+8,dy:4}),draw:(e,$,r,t)=>w(e,$,r,u)+`<path d="M${a(-e/2+8)},${a(-$/2)}V${a($/2)}M${a(-e/2)},${a(-$/2+8)}H${a(e/2)}" fill="none"${t}/>`},tri:{inset:(e,$,r)=>r&1?e/4:0,size:(e,$)=>v(e,$,!1),draw:(e,$,r)=>c([0,-$/2,e/2,$/2,-e/2,$/2],r)},"flip-tri":{inset:(e,$,r)=>r&1?e/4:0,size:(e,$)=>v(e,$,!0),draw:(e,$,r)=>c([-e/2,-$/2,e/2,-$/2,0,$/2],r)},"sl-rect":{inset:(e,$,r)=>r===0?5:0,size:(e,$)=>({w:e+2*l,h:$+2*d+10,dy:5}),draw:(e,$,r)=>c([-e/2,-$/2+10,e/2,-$/2,e/2,$/2,-e/2,$/2],r)},"notch-pent":{span:o,size:(e,$)=>({w:e+2*l,h:$+2*d,dy:0}),draw:(e,$,r)=>c([-e/2+10,-$/2,e/2-10,-$/2,e/2,-$/2+10,e/2,$/2,-e/2,$/2,-e/2,-$/2+10],r)},hourglass:{noLabel:!0,inset:(e,$,r)=>r&1?e/2:0,size:y(32,40),draw:(e,$,r)=>c([-e/2,-$/2,e/2,-$/2,-e/2,$/2,e/2,$/2],r)},delay:{size:(e,$)=>{let r=$+2*d;return{w:e+2*l+r/4,h:r,dy:0}},draw:(e,$,r)=>{let t=$/2;return`<path d="M${a(-e/2)},${a(-t)}H${a(e/2-t)}A${a(t)},${a(t)} 0 0 1 ${a(e/2-t)},${a(t)}H${a(-e/2)}Z"${r}/>`}},"h-cyl":{size:(e,$)=>{let r=$+2*d,t=Math.min(12,r/4);return{w:e+2*l+2*t,h:r,dy:0}},draw:(e,$,r,t)=>{let i=$/2,s=Math.min(12,$/4),n=-e/2+s,h=e/2-s;return`<path d="M${a(n)},${a(-i)}H${a(h)}A${a(s)},${a(i)} 0 0 1 ${a(h)},${a(i)}H${a(n)}A${a(s)},${a(i)} 0 0 1 ${a(n)},${a(-i)}Z"${r}/><path d="M${a(h)},${a(-i)}A${a(s)},${a(i)} 0 0 0 ${a(h)},${a(i)}" fill="none"${t}/>`}},"cross-circ":{noLabel:!0,inset:p,span:M,size:y(44,44),draw:(e,$,r,t)=>{let i=e/2,s=i*Math.SQRT1_2;return`<circle r="${a(i)}"${r}/><path d="M${a(-s)},${a(-s)}L${a(s)},${a(s)}M${a(s)},${a(-s)}L${a(-s)},${a(s)}" fill="none"${t}/>`}},"st-rect":{span:(e,$,r)=>(r?$:e)-2*z-8,size:(e,$)=>({w:e+2*l+8,h:$+2*d+8,dy:4}),draw:(e,$,r)=>{let t=e-8,i=$-8,s="";for(let n=0;n<3;n++){let h=-e/2+(2-n)*4,A=-$/2+n*4;s+=`<rect x="${a(h)}" y="${a(A)}" width="${a(t)}" height="${a(i)}"${u}${r}/>`}return s}},doc:{inset:(e,$,r)=>r===2?10:0,size:(e,$)=>({w:e+2*l,h:$+2*d+10,dy:-5}),draw:(e,$,r)=>L(e,$,r)},flag:{inset:(e,$,r)=>r&1?0:8,size:(e,$)=>({w:e+2*l,h:$+2*d+16,dy:0}),draw:(e,$,r)=>{let t=e/2,i=$/2-8,s=e/4;return`<path d="M${a(-t)},${a(-i)}q${a(s)},-10 ${a(2*s)},0t${a(2*s)},0V${a(i)}q${a(-s)},10 ${a(-2*s)},0t${a(-2*s)},0Z"${r}/>`}},datastore:{size:m,span:o,draw:(e,$,r,t)=>w(e,$,r.replace('stroke="var(--_b)"','stroke="none"'))+`<path d="M${a(-e/2)},${a(-$/2)}H${a(e/2)}M${a(-e/2)},${a($/2)}H${a(e/2)}" fill="none"${t}/>`},folder:{size:(e,$)=>({w:Math.max(e+2*l,64),h:$+2*d+8,dy:4}),draw:(e,$,r)=>{let t=e/2,i=$/2,s=Math.min(e*.4,48);return f(`M${a(-t)},${a(-i)}H${a(-t+s)}L${a(-t+s+8)},${a(-i+8)}H${a(t)}V${a(i)}H${a(-t)}Z`,r)}},bucket:{size:(e,$)=>({w:e+2*l+20,h:$+2*d+10,dy:3}),inset:(e,$,r)=>r&1?$/12:0,draw:(e,$,r,t)=>{let i=e/2,s=$/2,n=5,h=$/6;return f(`M${a(-i)},${a(-s+n)}A${a(i)},${a(n)} 0 0 1 ${a(i)},${a(-s+n)}L${a(i-h)},${a(s-n)}A${a(i-h)},${a(n)} 0 0 1 ${a(-i+h)},${a(s-n)}Z`,r)+`<path d="M${a(-i)},${a(-s+n)}A${a(i)},${a(n)} 0 0 0 ${a(i)},${a(-s+n)}" fill="none"${t}/>`}},console:{span:o,size:(e,$)=>({w:Math.max(e+2*l,72),h:$+2*d+12,dy:6}),draw:(e,$,r,t)=>w(e,$,r,u)+`<path d="M${a(-e/2)},${a(-$/2+12)}H${a(e/2)}M${a(-e/2+7)},${a(-$/2+4)}l3,2.5l-3,2.5M${a(-e/2+13)},${a(-$/2+9)}h4" fill="none"${t}/>`},browser:{span:o,size:(e,$)=>({w:Math.max(e+2*l,72),h:$+2*d+12,dy:6}),draw:(e,$,r,t)=>{let i="";for(let s=0;s<3;s++)i+=`<circle cx="${a(-e/2+8+s*7)}" cy="${a(-$/2+6)}" r="1.5" fill="none"${t}/>`;return w(e,$,r,u)+`<path d="M${a(-e/2)},${a(-$/2+12)}H${a(e/2)}" fill="none"${t}/>`+i}},person:{size:(e,$)=>({w:Math.max(e+2*l,56),h:$+2*d+26,dy:13}),draw:(e,$,r)=>{let t=-$/2;return`<rect x="${a(-e/2)}" y="${a(t+26)}" width="${a(e)}" height="${a($-26)}" rx="12"${r}/><circle cy="${a(t+14)}" r="13"${r}/>`}},bang:{size:(e,$)=>({w:e+2*l+28,h:$+2*d+24,dy:0}),inset:()=>3,draw:(e,$,r)=>{let t=[];for(let i=0;i<28;i++){let s=Math.PI*i/14-Math.PI/2,n=i%2===0?1:.82;t.push(Math.cos(s)*(e/2)*n,Math.sin(s)*($/2)*n)}return c(t,r)}},cloud:{size:(e,$)=>({w:e+2*l+32,h:$+2*d+24,dy:0}),inset:(e,$,r)=>r&1?2:1,draw:(e,$,r)=>{let t=e/2,i=$/2,s=i*.55;return f(`M${a(-t+s)},${a(i)}A${a(s)},${a(s)} 0 0 1 ${a(-t+s*.6)},${a(-i*.1)}A${a(t*.42)},${a(i*.7)} 0 0 1 ${a(-t*.1)},${a(-i*.72)}A${a(t*.4)},${a(i*.62)} 0 0 1 ${a(t*.62)},${a(-i*.42)}A${a(s*1.05)},${a(s*1.05)} 0 0 1 ${a(t-s)},${a(i)}Z`,r)}},brace:{size:(e,$)=>({w:e+2*l+12,h:$+2*d,dy:0}),draw:(e,$,r,t)=>w(e,$,' fill="none" stroke="none"')+H(-e/2+12,$,-1,t)},"brace-r":{size:(e,$)=>({w:e+2*l+12,h:$+2*d,dy:0}),draw:(e,$,r,t)=>w(e,$,' fill="none" stroke="none"')+H(e/2-12,$,1,t)},braces:{size:(e,$)=>({w:e+2*l+24,h:$+2*d,dy:0}),draw:(e,$,r,t)=>w(e,$,' fill="none" stroke="none"')+H(-e/2+12,$,-1,t)+H(e/2-12,$,1,t)},bolt:{noLabel:!0,size:y(36,56),inset:(e,$,r)=>r&1?e/4:0,draw:(e,$,r)=>c([e*.15,-$/2,-e/2,$*.08,-e*.05,$*.08,-e*.15,$/2,e/2,-$*.08,e*.05,-$*.08],r)},"lin-cyl":{inset:q,span:(e,$,r)=>r?$-2*z-20:e*.6,size:(e,$)=>{let r=Math.max(e+2*l,56),t=Math.min(12,Math.max(6,r/14));return{w:r,h:$+2*d+2*t+8,dy:t/2+4}},draw:(e,$,r,t)=>{let i=e/2,s=Math.min(12,Math.max(6,e/14)),n=-$/2+s,h=$/2-s,A=Z=>`M${a(-i)},${a(Z)}A${a(i)},${a(s)} 0 0 0 ${a(i)},${a(Z)}`;return f(`M${a(-i)},${a(n)}A${a(i)},${a(s)} 0 0 1 ${a(i)},${a(n)}V${a(h)}A${a(i)},${a(s)} 0 0 1 ${a(-i)},${a(h)}Z`,r)+`<path d="${A(n)}${A(n+8)}" fill="none"${t}/>`}},"curv-trap":{size:(e,$)=>{let r=$+2*d;return{w:e+2*l+r*.6,h:r,dy:0}},draw:(e,$,r)=>{let t=e/2,i=$/2,s=$*.3;return f(`M${a(-t+s)},${a(-i)}H${a(t-s)}A${a(s)},${a(i)} 0 0 1 ${a(t-s)},${a(i)}H${a(-t+s)}L${a(-t)},0Z`,r)}},docs:{size:(e,$)=>({w:e+2*l+8,h:$+2*d+18,dy:-1}),inset:(e,$,r)=>r===2?10:0,draw:(e,$,r)=>{let t="";for(let i=0;i<3;i++)t+=`<g transform="translate(${(1-i)*4},${(i-1)*4})">${L(e-8,$-8,r)}</g>`;return t}},"bow-rect":{size:(e,$)=>{let r=$+2*d;return{w:e+2*l+r*.4,h:r,dy:0}},inset:(e,$,r)=>r===1?$*.2:0,draw:(e,$,r)=>{let t=e/2,i=$/2,s=$*.2;return f(`M${a(-t+s)},${a(-i)}H${a(t)}A${a(s)},${a(i)} 0 0 0 ${a(t)},${a(i)}H${a(-t+s)}A${a(s)},${a(i)} 0 0 1 ${a(-t+s)},${a(-i)}Z`,r)}},"tag-rect":{size:m,span:o,draw:(e,$,r,t)=>w(e,$,r,u)+`<path d="M${a(e/2-12)},${a($/2)}L${a(e/2)},${a($/2-12)}" fill="none"${t}/>`},"tag-doc":{size:(e,$)=>({w:e+2*l,h:$+2*d+10,dy:-5}),inset:(e,$,r)=>r===2?10:0,draw:(e,$,r,t)=>L(e,$,r)+`<path d="M${a(e/2-12)},${a($/2-14)}L${a(e/2)},${a($/2-26)}" fill="none"${t}/>`},"lin-doc":{size:(e,$)=>({w:e+2*l+8,h:$+2*d+10,dy:-5}),inset:(e,$,r)=>r===2?10:0,draw:(e,$,r,t)=>L(e,$,r)+`<path d="M${a(-e/2+8)},${a(-$/2)}V${a($/2-6)}" fill="none"${t}/>`},collapsedGroup:{size:(e,$)=>({w:e+2*l+8,h:$+2*d+8,dy:-2}),draw:(e,$,r)=>`<rect x="${a(-e/2+6)}" y="${a(-$/2+8)}" width="${a(e-12)}" height="${a($-8)}"${u}${r}/><rect x="${a(-e/2)}" y="${a(-$/2)}" width="${a(e)}" height="${a($-4)}"${u}${r}/>`}};function H(e,$,r,t){let i=$/2,s=6*r;return`<path d="M${a(e)},${a(-i)}q${a(s)},0 ${a(s)},6V-6q0,6 ${a(s)},6q${a(-s)},0 ${a(-s)},6V${a(i-6)}q0,6 ${a(-s)},6" fill="none"${t}/>`}function L(e,$,r){let t=e/2,i=-$/2,s=$/2-10,n=e/4;return`<path d="M${a(-t)},${a(i)}H${a(t)}V${a(s)}q${a(-n)},-12 ${a(-2*n)},0t${a(-2*n)},0Z"${r}/>`}var I=_.rect,b=new Map(Object.entries(_));function O(e,$,r){return(b.get(e)??I).size($,r)}function R(e,$,r,t,i){return(b.get(e)??I).draw($,r,t,i)}function k(e,$,r,t,i=0){var s,n;return((n=(s=b.get(e))==null?void 0:s.inset)==null?void 0:n.call(s,$,r,t,i))??0}function S(e,$,r,t){var i,s;return Math.max(0,((s=(i=b.get(e))==null?void 0:i.span)==null?void 0:s.call(i,$,r,t))??0)}function B(e){var $;return(($=b.get(e))==null?void 0:$.noLabel)!==!0}function j(e,$,r){let t=e[$]-r.x,i=e[$+1]-r.y;return Math.abs(Math.abs(i)-r.h/2)<.5?i<0?0:2:Math.abs(Math.abs(t)-r.w/2)<.5?t<0?3:1:-1}function D(e,$,r,t){if(t.isGroup)return;let i=j(e,$,t);if(i===0||i===2){let s=k(r.shape,r.w,r.h,i,e[$]-t.x)+(t.h-r.h)/2;e[$+1]+=i===0?s:-s}else if(i>=0){let s=k(r.shape,r.w,r.h,i,e[$+1]-t.y)+(t.w-r.w)/2;e[$]+=i===3?s:-s}}export{D as B,R as E,S as O,O as P,j as R,k as V,d as i,B as j,l as o};