@bkm016/basalt 0.0.0-stage → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (256) hide show
  1. package/README.md +275 -2
  2. package/chunk-09vr609h.js +2 -0
  3. package/chunk-0hbjv3y6.js +11 -0
  4. package/chunk-0qqb6v41.js +3753 -0
  5. package/chunk-0szjy61m.js +2 -0
  6. package/chunk-0yytz0r1.js +59 -0
  7. package/chunk-1aspj1hn.js +3 -0
  8. package/chunk-1b7gbe8g.js +10 -0
  9. package/chunk-1v7st27a.js +25 -0
  10. package/chunk-1yzt0qm0.js +2 -0
  11. package/chunk-2bb01ddq.js +16 -0
  12. package/chunk-2wkaw73s.js +9 -0
  13. package/chunk-2zqny2sy.js +2 -0
  14. package/chunk-32at88hc.js +3 -0
  15. package/chunk-3m7qwfm3.js +7 -0
  16. package/chunk-44ek81ad.js +3 -0
  17. package/chunk-45cz26ap.js +39 -0
  18. package/chunk-501zkf9b.js +3 -0
  19. package/chunk-58vz2qsq.js +2 -0
  20. package/chunk-6e49xsf5.js +3 -0
  21. package/chunk-6qertm2t.js +3 -0
  22. package/chunk-8dxzqwq3.js +2 -0
  23. package/chunk-9mmz6wt3.js +2 -0
  24. package/chunk-a3tqx584.js +10 -0
  25. package/chunk-a6r4z44b.js +2 -0
  26. package/chunk-a8nyk4k9.js +2 -0
  27. package/chunk-agntrqs9.js +2 -0
  28. package/chunk-bhqyxyap.js +3 -0
  29. package/chunk-bpw6q7g0.js +3 -0
  30. package/chunk-c25s4w6a.js +5 -0
  31. package/chunk-cv5wsd9m.js +8 -0
  32. package/chunk-d48bfd2e.js +3 -0
  33. package/chunk-dakrpbe6.js +3 -0
  34. package/chunk-dhm42y04.js +7 -0
  35. package/chunk-exnn1867.js +2 -0
  36. package/chunk-f7egr55n.js +31 -0
  37. package/chunk-g2t6t8fk.js +3 -0
  38. package/chunk-h6sw8fbt.js +5 -0
  39. package/chunk-hat3s3pr.js +3 -0
  40. package/chunk-hcn9cf6v.js +2 -0
  41. package/chunk-jhd54p1b.js +3 -0
  42. package/chunk-k7w7ac9q.js +18 -0
  43. package/chunk-kf8hq21a.js +25 -0
  44. package/chunk-kfq8wyd3.js +3 -0
  45. package/chunk-n6e43rvk.js +3 -0
  46. package/chunk-nt2gntad.js +2 -0
  47. package/chunk-pmc3y1z8.js +2 -0
  48. package/chunk-pvncysbb.js +3 -0
  49. package/chunk-q8zx3kt6.js +2 -0
  50. package/chunk-qczbfccb.js +12 -0
  51. package/chunk-qnr1f5pj.js +3 -0
  52. package/chunk-qx0m82rw.js +2 -0
  53. package/chunk-r9aatvwm.js +3 -0
  54. package/chunk-rm3kcxq9.js +20 -0
  55. package/chunk-rv06x0kn.js +7 -0
  56. package/chunk-ry0z4ev6.js +2 -0
  57. package/chunk-s37s3k24.js +12 -0
  58. package/chunk-sh74qzvt.js +5 -0
  59. package/chunk-szat3vp4.js +3 -0
  60. package/chunk-t057xfrt.js +5 -0
  61. package/chunk-tvm4zmgj.js +3 -0
  62. package/chunk-v9fea96h.js +3 -0
  63. package/chunk-vgvq3q12.js +3 -0
  64. package/chunk-vkkj4awb.js +2 -0
  65. package/chunk-vv7fp27r.js +3 -0
  66. package/chunk-wjd9fr23.js +2 -0
  67. package/chunk-wx7kdf0b.js +2 -0
  68. package/chunk-x3dnb9sz.js +3 -0
  69. package/chunk-xsbxykr4.js +2 -0
  70. package/chunk-xysny0ve.js +3 -0
  71. package/chunk-y69ewdn2.js +3 -0
  72. package/chunk-yskm0hsy.js +2 -0
  73. package/chunk-zef13k3h.js +471 -0
  74. package/cli.js +89 -0
  75. package/compiled.js +23 -0
  76. package/icon-dp9pmcvp.png +0 -0
  77. package/package.json +21 -4
  78. package/ui-test-worker.js +226 -0
  79. package/web/KaTeX_AMS-Regular-n7eqehx2.woff2 +0 -0
  80. package/web/KaTeX_Caligraphic-Bold-20r3b6fv.woff2 +0 -0
  81. package/web/KaTeX_Caligraphic-Regular-kkjm8f18.woff2 +0 -0
  82. package/web/KaTeX_Fraktur-Bold-pz5vg4t0.woff2 +0 -0
  83. package/web/KaTeX_Fraktur-Regular-a1e9wkwk.woff2 +0 -0
  84. package/web/KaTeX_Main-Bold-mcp098h8.woff2 +0 -0
  85. package/web/KaTeX_Main-BoldItalic-fy74z249.woff2 +0 -0
  86. package/web/KaTeX_Main-Italic-hw2gxy7f.woff2 +0 -0
  87. package/web/KaTeX_Main-Regular-xvp1b75c.woff2 +0 -0
  88. package/web/KaTeX_Math-BoldItalic-mf5nf33d.woff2 +0 -0
  89. package/web/KaTeX_Math-Italic-ap60jrna.woff2 +0 -0
  90. package/web/KaTeX_SansSerif-Bold-we3bymb6.woff2 +0 -0
  91. package/web/KaTeX_SansSerif-Italic-ent92bjx.woff2 +0 -0
  92. package/web/KaTeX_SansSerif-Regular-0573pbz9.woff2 +0 -0
  93. package/web/KaTeX_Script-Regular-z2rtj6vq.woff2 +0 -0
  94. package/web/KaTeX_Size1-Regular-dfr3w1hv.woff2 +0 -0
  95. package/web/KaTeX_Size2-Regular-kted78zb.woff2 +0 -0
  96. package/web/KaTeX_Size3-Regular-e6k1k5jk.woff2 +0 -0
  97. package/web/KaTeX_Size4-Regular-abedc1pd.woff2 +0 -0
  98. package/web/KaTeX_Typewriter-Regular-scw9zx1z.woff2 +0 -0
  99. package/web/apple-touch-icon-7dkm33qp.png +0 -0
  100. package/web/apple-touch-icon.png +0 -0
  101. package/web/chunk-05w4fyzc.js +1 -0
  102. package/web/chunk-0mrkjnte.js +1 -0
  103. package/web/chunk-0pbjgdgp.js +2 -0
  104. package/web/chunk-0s80zw00.js +1 -0
  105. package/web/chunk-0vt9fg48.js +2 -0
  106. package/web/chunk-20q90epj.js +2 -0
  107. package/web/chunk-22a4ety5.js +1 -0
  108. package/web/chunk-24mfx6w1.js +2 -0
  109. package/web/chunk-2j4m0bh1.js +2 -0
  110. package/web/chunk-2m12wyrb.js +16 -0
  111. package/web/chunk-2msj52w6.js +1 -0
  112. package/web/chunk-2ps6mepk.js +120 -0
  113. package/web/chunk-2pver6r4.js +1 -0
  114. package/web/chunk-2scce33n.js +1 -0
  115. package/web/chunk-37ajk6zg.js +2 -0
  116. package/web/chunk-3ee04tmm.js +200 -0
  117. package/web/chunk-3jhyzmnf.js +292 -0
  118. package/web/chunk-45fzdcgz.js +30 -0
  119. package/web/chunk-4gavbw65.js +1 -0
  120. package/web/chunk-4ks96e4r.js +1 -0
  121. package/web/chunk-4rm1vy7w.js +1 -0
  122. package/web/chunk-4v8en1yw.js +40 -0
  123. package/web/chunk-4wd9r73y.js +1 -0
  124. package/web/chunk-4wkm9fda.js +1 -0
  125. package/web/chunk-54thej0t.js +2 -0
  126. package/web/chunk-59kqahb3.js +1 -0
  127. package/web/chunk-5vw9rs4r.js +4 -0
  128. package/web/chunk-6beqrmtq.js +1 -0
  129. package/web/chunk-6m69hczt.js +2 -0
  130. package/web/chunk-70qwwwak.js +2 -0
  131. package/web/chunk-74j07k8k.js +2 -0
  132. package/web/chunk-8g239029.js +1 -0
  133. package/web/chunk-8p4tc9f4.js +70 -0
  134. package/web/chunk-90kp4pnz.js +2 -0
  135. package/web/chunk-9an7cjd9.js +291 -0
  136. package/web/chunk-9dxjafp2.js +78 -0
  137. package/web/chunk-9p12mgs6.js +2 -0
  138. package/web/chunk-9v1f6yc8.js +1 -0
  139. package/web/chunk-9yakxvjb.js +2 -0
  140. package/web/chunk-a1z5qx1r.js +36 -0
  141. package/web/chunk-a3verqw9.js +214 -0
  142. package/web/chunk-a5x2zveg.js +7 -0
  143. package/web/chunk-ad6x47yy.js +1 -0
  144. package/web/chunk-amzgyy1k.js +1 -0
  145. package/web/chunk-b1pe46zz.js +2 -0
  146. package/web/chunk-b4wbk7vc.js +217 -0
  147. package/web/chunk-bc78qf1m.js +7 -0
  148. package/web/chunk-bgnnrpna.js +89 -0
  149. package/web/chunk-bj90t5gh.js +99 -0
  150. package/web/chunk-bjkc94mv.js +1 -0
  151. package/web/chunk-ca682sm6.js +370 -0
  152. package/web/chunk-cff5hcm8.js +8 -0
  153. package/web/chunk-cg3jterp.js +2 -0
  154. package/web/chunk-d18r4m14.js +141 -0
  155. package/web/chunk-dmqtdeb4.js +1 -0
  156. package/web/chunk-dt462hk9.js +332 -0
  157. package/web/chunk-dy2gm1fs.js +1 -0
  158. package/web/chunk-dzwxgqgm.js +39 -0
  159. package/web/chunk-e32y85kx.js +1 -0
  160. package/web/chunk-e53wfgb8.js +1 -0
  161. package/web/chunk-e6jxqbv7.js +3 -0
  162. package/web/chunk-esp1mmgr.js +1 -0
  163. package/web/chunk-ew3cgdtd.js +1 -0
  164. package/web/chunk-f26smjjf.js +2 -0
  165. package/web/chunk-f91wzwtk.js +1 -0
  166. package/web/chunk-fk0dh93x.js +89 -0
  167. package/web/chunk-fm2ybfj5.js +98 -0
  168. package/web/chunk-fscafg24.js +34 -0
  169. package/web/chunk-fz06t6km.js +55 -0
  170. package/web/chunk-g1ev11wx.js +1 -0
  171. package/web/chunk-g4azyef7.js +106 -0
  172. package/web/chunk-gjq1pxw3.js +1 -0
  173. package/web/chunk-gqw3f02j.js +140 -0
  174. package/web/chunk-h5ejbf6e.js +1 -0
  175. package/web/chunk-hev4hq89.js +2 -0
  176. package/web/chunk-hfaffkrh.js +1 -0
  177. package/web/chunk-hp167dbv.js +1 -0
  178. package/web/chunk-j2vt8c8v.js +1 -0
  179. package/web/chunk-jjh5jvva.js +1 -0
  180. package/web/chunk-jrcyc9s9.js +38 -0
  181. package/web/chunk-jwzd9tzk.js +24 -0
  182. package/web/chunk-k5btcvbg.js +1 -0
  183. package/web/chunk-ka3q31t1.js +1 -0
  184. package/web/chunk-kdyjnwdx.js +2 -0
  185. package/web/chunk-kpvgecwy.js +1 -0
  186. package/web/chunk-kq40ss39.js +1 -0
  187. package/web/chunk-m2d1sp30.js +1 -0
  188. package/web/chunk-n1dmrz44.js +2 -0
  189. package/web/chunk-n90cqdvg.js +2 -0
  190. package/web/chunk-nj0cv1cq.js +257 -0
  191. package/web/chunk-nzey7cpv.js +1 -0
  192. package/web/chunk-p3b9crsa.js +2 -0
  193. package/web/chunk-pf2ab8p8.js +1 -0
  194. package/web/chunk-pxe3vna4.js +1 -0
  195. package/web/chunk-q0p5xqe1.js +84 -0
  196. package/web/chunk-q5ke7a33.js +24 -0
  197. package/web/chunk-q7dsnvpf.js +1 -0
  198. package/web/chunk-qd8bxxdj.js +1 -0
  199. package/web/chunk-qefasa1j.js +2 -0
  200. package/web/chunk-qh7265qw.js +4 -0
  201. package/web/chunk-qnaqf0cr.js +1 -0
  202. package/web/chunk-r1dnh0s8.js +1 -0
  203. package/web/chunk-r5eakmw6.js +1 -0
  204. package/web/chunk-rg426vkf.js +1 -0
  205. package/web/chunk-rpmpttbk.js +12 -0
  206. package/web/chunk-rtf2zzzv.js +1 -0
  207. package/web/chunk-ry9256r7.js +1 -0
  208. package/web/chunk-rykfak98.js +2 -0
  209. package/web/chunk-scpwc9ev.js +1 -0
  210. package/web/chunk-srrfphes.js +1 -0
  211. package/web/chunk-ss1bcb0n.js +2 -0
  212. package/web/chunk-ssy07dd2.js +1 -0
  213. package/web/chunk-t6agpn2z.js +1 -0
  214. package/web/chunk-taynqrgq.js +142 -0
  215. package/web/chunk-tgpbhzn9.js +1 -0
  216. package/web/chunk-tmvakq7n.js +19 -0
  217. package/web/chunk-tqmwd9qp.js +139 -0
  218. package/web/chunk-ts7zrf5b.js +2 -0
  219. package/web/chunk-ttg6tbwx.js +2 -0
  220. package/web/chunk-v28fx2nd.js +1 -0
  221. package/web/chunk-v5cnt7c8.js +1 -0
  222. package/web/chunk-vt40e1kp.js +1136 -0
  223. package/web/chunk-w53rba6g.js +1 -0
  224. package/web/chunk-w86n42dy.js +1 -0
  225. package/web/chunk-w880psmw.js +1 -0
  226. package/web/chunk-wptv8atc.js +2 -0
  227. package/web/chunk-wtawdeej.css +1 -0
  228. package/web/chunk-xbty0rv7.js +41 -0
  229. package/web/chunk-xet1jjy9.js +1 -0
  230. package/web/chunk-xjxv8dg8.js +169 -0
  231. package/web/chunk-xrxne80b.js +62 -0
  232. package/web/chunk-xzp7jf7e.js +2 -0
  233. package/web/chunk-y0m8hrwz.js +303 -0
  234. package/web/chunk-y49fhfda.js +7 -0
  235. package/web/chunk-yd46jhqv.js +1 -0
  236. package/web/chunk-ydtrc1ay.js +2 -0
  237. package/web/chunk-z09emmrb.js +1 -0
  238. package/web/chunk-z7dcbxws.js +1 -0
  239. package/web/chunk-zbj1trar.js +2 -0
  240. package/web/chunk-zde7mj43.js +1 -0
  241. package/web/icon-192.png +0 -0
  242. package/web/icon-512.png +0 -0
  243. package/web/icon-maskable-512.png +0 -0
  244. package/web/icon-yx2p2pye.svg +13 -0
  245. package/web/icon.svg +13 -0
  246. package/web/index.html +23 -0
  247. package/web/install.ps1 +91 -0
  248. package/web/install.sh +177 -0
  249. package/web/inter-latin-wght-normal-an0py913.woff2 +0 -0
  250. package/web/jetbrains-mono-latin-wght-normal-hj2e42wt.woff2 +0 -0
  251. package/web/manifest-txf6vfbq.webmanifest +35 -0
  252. package/web/manifest.webmanifest +35 -0
  253. package/web/source-serif-4-latin-wght-italic-ta5tqqvz.woff2 +0 -0
  254. package/web/source-serif-4-latin-wght-normal-1yyvbhsz.woff2 +0 -0
  255. package/web/sw.js +90 -0
  256. package/worker.js +2 -0
@@ -0,0 +1 @@
1
+ import{ri}from"./chunk-n1dmrz44.js";export{ri as default};
@@ -0,0 +1,39 @@
1
+ import{W}from"./chunk-b1pe46zz.js";import{e,r,D,B,C,S,E,T,A,I,L,s,J,Un,Gr,q,Ge,U}from"./chunk-y0m8hrwz.js";import{X}from"./chunk-taynqrgq.js";import{bt}from"./chunk-qefasa1j.js";import{Xe}from"./chunk-20q90epj.js";function at(t,o){return o<t?-1:o>t?1:o>=t?0:NaN}function nt(t){return t}function it(){var t=nt,o=at,k=null,H=J(0),g=J(Un),h=J(0);function l(a){var i,u=(a=Gr(a)).length,m,z,O=0,v=Array(u),c=Array(u),F=+H.apply(this,arguments),_=Math.min(Un,Math.max(-Un,g.apply(this,arguments)-F)),N,j=Math.min(Math.abs(_)/u,h.apply(this,arguments)),p=j*(_<0?-1:1),M;for(i=0;i<u;++i)if((M=c[v[i]=i]=+t(a[i],i,a))>0)O+=M;if(o!=null)v.sort(function(G,x){return o(c[G],c[x])});else if(k!=null)v.sort(function(G,x){return k(a[G],a[x])});for(i=0,z=O?(_-u*p)/O:0;i<u;++i,F=N)m=v[i],M=c[m],N=F+(M>0?M*z:0)+p,c[m]={data:a[m],index:i,value:M,startAngle:F,endAngle:N,padAngle:j};return c}return l.value=function(a){return arguments.length?(t=typeof a==="function"?a:J(+a),l):t},l.sortValues=function(a){return arguments.length?(o=a,k=null,l):o},l.sort=function(a){return arguments.length?(k=a,o=null,l):k},l.startAngle=function(a){return arguments.length?(H=typeof a==="function"?a:J(+a),l):H},l.endAngle=function(a){return arguments.length?(g=typeof a==="function"?a:J(+a),l):g},l.padAngle=function(a){return arguments.length?(h=typeof a==="function"?a:J(+a),l):h},l}var dt=D.pie,ot={sections:new Map,showData:!1,config:dt},{sections:Q,showData:lt}=ot,St=structuredClone(dt),yt=e(()=>structuredClone(St),"getConfig"),wt=e(()=>{Q=new Map,lt=ot.showData,C()},"clear"),At=e(({label:t,value:o})=>{if(o<0)throw Error(`"${t}" has invalid value: ${o}. Negative values are not allowed in pie charts. All slice values must be >= 0.`);if(!Q.has(t))Q.set(t,o),r.debug(`added new section: ${t}, with value: ${o}`)},"addSection"),Ct=e(()=>Q,"getSections"),$t=e((t)=>{lt=t},"setShowData"),Dt=e(()=>lt,"getShowData"),pt={getConfig:yt,clear:wt,setDiagramTitle:I,getDiagramTitle:L,setAccTitle:S,getAccTitle:E,setAccDescription:T,getAccDescription:A,addSection:At,getSections:Ct,setShowData:$t,getShowData:Dt},Tt=e((t,o)=>{W(t,o),o.setShowData(t.showData),t.sections.map(o.addSection)},"populateDb"),kt={parse:e(async(t)=>{let o=await X("pie",t);r.debug(o),Tt(o,pt)},"parse")},zt=e((t)=>`
2
+ .pieCircle{
3
+ stroke: ${t.pieStrokeColor};
4
+ stroke-width : ${t.pieStrokeWidth};
5
+ opacity : ${t.pieOpacity};
6
+ }
7
+ .pieCircle.highlighted{
8
+ scale: 1.05;
9
+ opacity: 1;
10
+ }
11
+ .pieCircle.highlightedOnHover:hover{
12
+ transition-duration: 250ms;
13
+ scale: 1.05;
14
+ opacity: 1;
15
+ }
16
+ .pieOuterCircle{
17
+ stroke: ${t.pieOuterStrokeColor};
18
+ stroke-width: ${t.pieOuterStrokeWidth};
19
+ fill: none;
20
+ }
21
+ .pieTitleText {
22
+ text-anchor: middle;
23
+ font-size: ${t.pieTitleTextSize};
24
+ fill: ${t.pieTitleTextColor};
25
+ font-family: ${t.fontFamily};
26
+ }
27
+ .slice {
28
+ font-family: ${t.fontFamily};
29
+ fill: ${t.pieSectionTextColor};
30
+ font-size:${t.pieSectionTextSize};
31
+ // fill: white;
32
+ }
33
+ .legend text {
34
+ fill: ${t.pieLegendTextColor};
35
+ font-family: ${t.fontFamily};
36
+ font-size: ${t.pieLegendTextSize};
37
+ }
38
+ `,"getStyles"),Et=zt,Mt=e((t)=>{let o=[...t.values()].reduce((g,h)=>g+h,0),k=[...t.entries()].map(([g,h])=>({label:g,value:h})).filter((g)=>g.value/o*100>=1);return it().value((g)=>g.value).sort(null)(k)},"createPieArcs"),Rt=e((t,o,k,H)=>{r.debug(`rendering pie chart
39
+ `+t);let g=H.db,h=s(),l=U(g.getConfig(),h.pie),a=40,i=18,u=4,m=450,z=m,O=q(o),v=O.append("g");v.attr("transform","translate("+z/2+","+m/2+")");let{themeVariables:c}=h,[F]=Ge(c.pieOuterStrokeWidth);F??=2;let{legendPosition:_,textPosition:N}=l,j=l.donutHole>0&&l.donutHole<=0.9?l.donutHole:0,p=Math.min(z,m)/2-a,M=bt().innerRadius(j*p).outerRadius(p),G=bt().innerRadius(p*N).outerRadius(p*N),x=v.append("g");x.append("circle").attr("cx",0).attr("cy",0).attr("r",p+F/2).attr("class","pieOuterCircle");let Z=g.getSections(),ft=Mt(Z),ht=[c.pie1,c.pie2,c.pie3,c.pie4,c.pie5,c.pie6,c.pie7,c.pie8,c.pie9,c.pie10,c.pie11,c.pie12],Y=0;Z.forEach((n)=>{Y+=n});let st=ft.filter((n)=>(n.data.value/Y*100).toFixed(0)!=="0"),tt=Xe(ht).domain([...Z.keys()]);x.selectAll("mySlices").data(st).enter().append("path").attr("d",M).attr("fill",(n)=>tt(n.data.label)).attr("class",(n)=>{let d="pieCircle";if(l.highlightSlice==="hover")d+=" highlightedOnHover";else if(l.highlightSlice===n.data.label)d+=" highlighted";return d}),x.selectAll("mySlices").data(st).enter().append("text").text((n)=>(n.data.value/Y*100).toFixed(0)+"%").attr("transform",(n)=>"translate("+G.centroid(n)+")").style("text-anchor","middle").attr("class","slice");let mt=v.append("text").text(g.getDiagramTitle()).attr("x",0).attr("y",-(m-50)/2).attr("class","pieTitleText"),V=[...Z.entries()].map(([n,d])=>({label:n,value:d})),R=v.selectAll(".legend").data(V).enter().append("g").attr("class","legend");R.append("rect").attr("width",i).attr("height",i).style("fill",(n)=>tt(n.label)).style("stroke",(n)=>tt(n.label)),R.append("text").attr("x",i+u).attr("y",i-u).text((n)=>{if(g.getShowData())return`${n.label} [${n.value}]`;return n.label});let P=Math.max(...R.selectAll("text").nodes().map((n)=>n?.getBoundingClientRect().width??0)),K=m,et=z+a,f=i+u,rt=V.length*f;switch(_){case"center":R.attr("transform",(n,d)=>{let y=f*V.length/2,w=-P/2-(i+u),b=d*f-y;return"translate("+w+","+b+")"});break;case"top":K+=rt,R.attr("transform",(n,d)=>{let y=p,w=-P/2-(i+u),b=d*f-y;return`translate(${w}, ${b})`}),x.attr("transform",()=>`translate(0, ${rt+f})`);break;case"bottom":K+=rt,R.attr("transform",(n,d)=>{let y=-p-f,w=-P/2-(i+u),b=d*f-y;return"translate("+w+","+b+")"});break;case"left":et+=i+u+P,R.attr("transform",(n,d)=>{let y=f*V.length/2,w=-p-(i+u),b=d*f-y;return"translate("+w+","+b+")"}),x.attr("transform",()=>`translate(${P+i+u}, 0)`);break;case"right":default:et+=i+u+P,R.attr("transform",(n,d)=>{let y=f*V.length/2,w=12*i,b=d*f-y;return"translate("+w+","+b+")"});break}let ct=mt.node()?.getBoundingClientRect().width??0,vt=z/2-ct/2,xt=z/2+ct/2,ut=Math.min(0,vt),gt=Math.max(et,xt)-ut;O.attr("viewBox",`${ut} 0 ${gt} ${K}`),B(O,K,gt,l.useMaxWidth)},"draw"),Lt={draw:Rt},Kt={parser:kt,db:pt,renderer:Lt,styles:Et};export{Kt as diagram};
@@ -0,0 +1 @@
1
+ import{e,r}from"./chunk-y0m8hrwz.js";import{K,Lt,It}from"./chunk-fk0dh93x.js";import{W}from"./chunk-b1pe46zz.js";import{rr,_t}from"./chunk-taynqrgq.js";var o=rr().Railroad.parser.LangiumParser,n=e((a)=>{switch(a.$type){case"RailroadTerminalExpr":return{type:"terminal",value:a.value};case"RailroadNonTerminalExpr":return{type:"nonterminal",name:a.name};case"RailroadSpecialExpr":return{type:"special",text:a.text};case"RailroadSequenceExpr":{let t=a.elements.map(n);return t.length===1?t[0]:{type:"sequence",elements:t}}case"RailroadChoiceExpr":{let t=a.alternatives.map(n);return t.length===1?t[0]:{type:"choice",alternatives:t}}case"RailroadOptionalExpr":return{type:"optional",element:n(a.element)};case"RailroadOneOrMoreExpr":return{type:"repetition",element:n(a.element),min:1,max:1/0};case"RailroadZeroOrMoreExpr":return{type:"repetition",element:n(a.element),min:0,max:1/0};default:throw Error(`Unsupported railroad expression: ${a.$type}`)}},"transformExpression"),l=e((a)=>({name:a.name,definition:n(a.definition)}),"transformRule"),s=e((a)=>{if(W(a,K),a.title)K.setTitle(a.title);a.rules.map((t)=>K.addRule(l(t)))},"populateDb"),m={parse:e((a)=>{K.clear(),r.debug("[Railroad Parser] Starting Langium parse");let t=o.parse(a);if(t.lexerErrors.length>0||t.parserErrors.length>0)throw new _t(t);let i=t.value;r.debug("[Railroad Parser] Parsed rules:",i.rules.length),s(i),r.debug("[Railroad Parser] Parse complete")},"parse"),parser:{yy:K}},R={parser:m,db:K,renderer:It,styles:Lt};export{R as diagram};
@@ -0,0 +1 @@
1
+ import{e,r,p}from"./chunk-y0m8hrwz.js";import{lt,sr}from"./chunk-dt462hk9.js";import{Ce,Se}from"./chunk-vt40e1kp.js";var k=Se(function(F,Y){(function(g,a){if(typeof F==="object"&&typeof Y==="object")Y.exports=a(sr());else if(typeof define==="function"&&define.amd)define(["cose-base"],a);else if(typeof F==="object")F.cytoscapeCoseBilkent=a(sr());else g.cytoscapeCoseBilkent=a(g.coseBase)})(F,function(u){return function(g){var a={};function n(o){if(a[o])return a[o].exports;var d=a[o]={i:o,l:!1,exports:{}};return g[o].call(d.exports,d,d.exports,n),d.l=!0,d.exports}return n.m=g,n.c=a,n.i=function(o){return o},n.d=function(o,d,l){if(!n.o(o,d))Object.defineProperty(o,d,{configurable:!1,enumerable:!0,get:l})},n.n=function(o){var d=o&&o.__esModule?function(){return o.default}:function(){return o};return n.d(d,"a",d),d},n.o=function(o,d){return Object.prototype.hasOwnProperty.call(o,d)},n.p="",n(n.s=1)}([function(g,a){g.exports=u},function(g,a,n){var o=n(0).layoutBase.LayoutConstants,d=n(0).layoutBase.FDLayoutConstants,l=n(0).CoSEConstants,L=n(0).CoSELayout,b=n(0).CoSENode,H=n(0).layoutBase.PointD,v=n(0).layoutBase.DimensionD,_={ready:function(){},stop:function(){},quality:"default",nodeDimensionsIncludeLabels:!1,refresh:30,fit:!0,padding:10,randomize:!0,nodeRepulsion:4500,idealEdgeLength:50,edgeElasticity:0.45,nestingFactor:0.1,gravity:0.25,numIter:2500,tile:!0,animate:"end",animationDuration:500,tilingPaddingVertical:10,tilingPaddingHorizontal:10,gravityRangeCompound:1.5,gravityCompound:1,gravityRange:3.8,initialEnergyOnIncremental:0.5};function D(E,t){var f={};for(var s in E)f[s]=E[s];for(var s in t)f[s]=t[s];return f}function I(E){this.options=D(_,E),U(this.options)}var U=function(t){if(t.nodeRepulsion!=null)l.DEFAULT_REPULSION_STRENGTH=d.DEFAULT_REPULSION_STRENGTH=t.nodeRepulsion;if(t.idealEdgeLength!=null)l.DEFAULT_EDGE_LENGTH=d.DEFAULT_EDGE_LENGTH=t.idealEdgeLength;if(t.edgeElasticity!=null)l.DEFAULT_SPRING_STRENGTH=d.DEFAULT_SPRING_STRENGTH=t.edgeElasticity;if(t.nestingFactor!=null)l.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=d.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=t.nestingFactor;if(t.gravity!=null)l.DEFAULT_GRAVITY_STRENGTH=d.DEFAULT_GRAVITY_STRENGTH=t.gravity;if(t.numIter!=null)l.MAX_ITERATIONS=d.MAX_ITERATIONS=t.numIter;if(t.gravityRange!=null)l.DEFAULT_GRAVITY_RANGE_FACTOR=d.DEFAULT_GRAVITY_RANGE_FACTOR=t.gravityRange;if(t.gravityCompound!=null)l.DEFAULT_COMPOUND_GRAVITY_STRENGTH=d.DEFAULT_COMPOUND_GRAVITY_STRENGTH=t.gravityCompound;if(t.gravityRangeCompound!=null)l.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=d.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=t.gravityRangeCompound;if(t.initialEnergyOnIncremental!=null)l.DEFAULT_COOLING_FACTOR_INCREMENTAL=d.DEFAULT_COOLING_FACTOR_INCREMENTAL=t.initialEnergyOnIncremental;if(t.quality=="draft")o.QUALITY=0;else if(t.quality=="proof")o.QUALITY=2;else o.QUALITY=1;l.NODE_DIMENSIONS_INCLUDE_LABELS=d.NODE_DIMENSIONS_INCLUDE_LABELS=o.NODE_DIMENSIONS_INCLUDE_LABELS=t.nodeDimensionsIncludeLabels,l.DEFAULT_INCREMENTAL=d.DEFAULT_INCREMENTAL=o.DEFAULT_INCREMENTAL=!t.randomize,l.ANIMATE=d.ANIMATE=o.ANIMATE=t.animate,l.TILE=t.tile,l.TILING_PADDING_VERTICAL=typeof t.tilingPaddingVertical==="function"?t.tilingPaddingVertical.call():t.tilingPaddingVertical,l.TILING_PADDING_HORIZONTAL=typeof t.tilingPaddingHorizontal==="function"?t.tilingPaddingHorizontal.call():t.tilingPaddingHorizontal};I.prototype.run=function(){var E,t,f=this.options,s=this.idToLNode={},c=this.layout=new L,i=this;i.stopped=!1,this.cy=this.options.cy,this.cy.trigger({type:"layoutstart",layout:this});var y=c.newGraphManager();this.gm=y;var T=this.options.eles.nodes(),m=this.options.eles.edges();this.root=y.addRoot(),this.processChildrenList(this.root,this.getTopMostNodes(T),c);for(var h=0;h<m.length;h++){var P=m[h],x=this.idToLNode[P.data("source")],O=this.idToLNode[P.data("target")];if(x!==O&&x.getEdgesBetween(O).length==0){var et=y.add(c.newEdge(),x,O);et.id=P.id()}}var V=function(R,B){if(typeof R==="number")R=B;var C=R.data("id"),G=i.idToLNode[C];return{x:G.getRect().getCenterX(),y:G.getRect().getCenterY()}},nt=function X(){var R=function(){if(f.fit)f.cy.fit(f.eles,f.padding);if(!E)E=!0,i.cy.one("layoutready",f.ready),i.cy.trigger({type:"layoutready",layout:i})},B=i.options.refresh,C;for(var G=0;G<B&&!C;G++)C=i.stopped||i.layout.tick();if(C){if(c.checkLayoutSuccess()&&!c.isSubLayout)c.doPostLayout();if(c.tilingPostLayout)c.tilingPostLayout();if(c.isLayoutFinished=!0,i.options.eles.nodes().positions(V),R(),i.cy.one("layoutstop",i.options.stop),i.cy.trigger({type:"layoutstop",layout:i}),t)cancelAnimationFrame(t);E=!1;return}var M=i.layout.getPositionsData();f.eles.nodes().positions(function(A,it){if(typeof A==="number")A=it;if(!A.isParent()){var j=A.id(),N=M[j],w=A;while(N==null)if(N=M[w.data("parent")]||M["DummyCompound_"+w.data("parent")],M[j]=N,w=w.parent()[0],w==null)break;if(N!=null)return{x:N.x,y:N.y};else return{x:A.position("x"),y:A.position("y")}}}),R(),t=requestAnimationFrame(X)};if(c.addListener("layoutstarted",function(){if(i.options.animate==="during")t=requestAnimationFrame(nt)}),c.runLayout(),this.options.animate!=="during")i.options.eles.nodes().not(":parent").layoutPositions(i,i.options,V),E=!1;return this},I.prototype.getTopMostNodes=function(E){var t={};for(var f=0;f<E.length;f++)t[E[f].id()]=!0;var s=E.filter(function(c,i){if(typeof c==="number")c=i;var y=c.parent()[0];while(y!=null){if(t[y.id()])return!1;y=y.parent()[0]}return!0});return s},I.prototype.processChildrenList=function(E,t,f){var s=t.length;for(var c=0;c<s;c++){var i=t[c],y=i.children(),T,m=i.layoutDimensions({nodeDimensionsIncludeLabels:this.options.nodeDimensionsIncludeLabels});if(i.outerWidth()!=null&&i.outerHeight()!=null)T=E.add(new b(f.graphManager,new H(i.position("x")-m.w/2,i.position("y")-m.h/2),new v(parseFloat(m.w),parseFloat(m.h))));else T=E.add(new b(this.graphManager));if(T.id=i.data("id"),T.paddingLeft=parseInt(i.css("padding")),T.paddingTop=parseInt(i.css("padding")),T.paddingRight=parseInt(i.css("padding")),T.paddingBottom=parseInt(i.css("padding")),this.options.nodeDimensionsIncludeLabels){if(i.isParent()){var h=i.boundingBox({includeLabels:!0,includeNodes:!1}).w,P=i.boundingBox({includeLabels:!0,includeNodes:!1}).h,x=i.css("text-halign");T.labelWidth=h,T.labelHeight=P,T.labelPos=x}}if(this.idToLNode[i.data("id")]=T,isNaN(T.rect.x))T.rect.x=0;if(isNaN(T.rect.y))T.rect.y=0;if(y!=null&&y.length>0){var O=f.getGraphManager().add(f.newGraph(),T);this.processChildrenList(O,y,f)}}},I.prototype.stop=function(){return this.stopped=!0,this};var S=function(t){t("layout","cose-bilkent",I)};if(typeof cytoscape<"u")S(cytoscape);g.exports=S}])})});var z=Ce(k(),1);lt.use(z.default);function q(u,g){u.forEach((a)=>{let n={id:a.id,labelText:a.label,height:a.height,width:a.width,padding:a.padding??0};Object.keys(a).forEach((o)=>{if(!["id","label","height","width","padding","x","y"].includes(o))n[o]=a[o]}),g.add({group:"nodes",data:n,position:{x:a.x??0,y:a.y??0}})})}e(q,"addNodes");function W(u,g){u.forEach((a)=>{let n={id:a.id,source:a.start,target:a.end};Object.keys(a).forEach((o)=>{if(!["id","start","end"].includes(o))n[o]=a[o]}),g.add({group:"edges",data:n})})}e(W,"addEdges");function Q(u){return new Promise((g)=>{let a=p("body").append("div").attr("id","cy").attr("style","display:none"),n=lt({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"bezier"}}]});a.remove(),q(u.nodes,n),W(u.edges,n),n.nodes().forEach(function(d){d.layoutDimensions=()=>{let l=d.data();return{w:l.width,h:l.height}}});let o={name:"cose-bilkent",quality:"proof",styleEnabled:!1,animate:!1};n.layout(o).run(),n.ready((d)=>{r.info("Cytoscape ready",d),g(n)})})}e(Q,"createCytoscapeInstance");function Z(u){return u.nodes().map((g)=>{let a=g.data(),n=g.position(),o={id:a.id,x:n.x,y:n.y};return Object.keys(a).forEach((d)=>{if(d!=="id")o[d]=a[d]}),o})}e(Z,"extractPositionedNodes");function J(u){return u.edges().map((g)=>{let a=g.data(),n=g._private.rscratch,o={id:a.id,source:a.source,target:a.target,startX:n.startX,startY:n.startY,midX:n.midX,midY:n.midY,endX:n.endX,endY:n.endY};return Object.keys(a).forEach((d)=>{if(!["id","source","target"].includes(d))o[d]=a[d]}),o})}e(J,"extractPositionedEdges");async function K(u,g){r.debug("Starting cose-bilkent layout algorithm");try{tt(u);let a=await Q(u),n=Z(a),o=J(a);return r.debug(`Layout completed: ${n.length} nodes, ${o.length} edges`),{nodes:n,edges:o}}catch(a){throw r.error("Error in cose-bilkent layout algorithm:",a),a}}e(K,"executeCoseBilkentLayout");function tt(u){if(!u)throw Error("Layout data is required");if(!u.config)throw Error("Configuration is required in layout data");if(!u.rootNode)throw Error("Root node is required");if(!u.nodes||!Array.isArray(u.nodes))throw Error("No nodes found in layout data");if(!Array.isArray(u.edges))throw Error("Edges array is required in layout data");return!0}e(tt,"validateLayoutData");var at=e(async(u,g,{insertCluster:a,insertEdge:n,insertEdgeLabel:o,insertMarkers:d,insertNode:l,log:L,positionEdgeLabel:b},{algorithm:H})=>{let v={},_={},D=g.select("g");d(D,u.markers,u.type,u.diagramId);let I=D.insert("g").attr("class","subgraphs"),U=D.insert("g").attr("class","edgePaths"),S=D.insert("g").attr("class","edgeLabels"),E=D.insert("g").attr("class","nodes");L.debug("Inserting nodes into DOM for dimension calculation"),await Promise.all(u.nodes.map(async(s)=>{if(s.isGroup){let c={...s};_[s.id]=c,v[s.id]=c,await a(I,s)}else{let c={...s};v[s.id]=c;let i=await l(E,s,{config:u.config,dir:u.direction||"TB"}),y=i.node().getBBox();c.width=y.width,c.height=y.height,c.domId=i,L.debug(`Node ${s.id} dimensions: ${y.width}x${y.height}`)}})),L.debug("Running cose-bilkent layout algorithm");let t={...u,nodes:u.nodes.map((s)=>{let c=v[s.id];return{...s,width:c.width,height:c.height}})},f=await K(t,u.config);L.debug("Positioning nodes based on layout results"),f.nodes.forEach((s)=>{let c=v[s.id];if(c?.domId)c.domId.attr("transform",`translate(${s.x}, ${s.y})`),c.x=s.x,c.y=s.y,L.debug(`Positioned node ${c.id} at center (${s.x}, ${s.y})`)}),f.edges.forEach((s)=>{let c=u.edges.find((i)=>i.id===s.id);if(c)c.points=[{x:s.startX,y:s.startY},{x:s.midX,y:s.midY},{x:s.endX,y:s.endY}]}),L.debug("Inserting and positioning edges"),await Promise.all(u.edges.map(async(s)=>{let c=await o(S,s),i=v[s.start??""],y=v[s.end??""];if(i&&y){let T=f.edges.find((m)=>m.id===s.id);if(T){L.debug("APA01 positionedEdge",T);let m={...s},h=n(U,m,_,u.type,i,y,u.diagramId);b(m,h)}else{let m={...s,points:[{x:i.x||0,y:i.y||0},{x:y.x||0,y:y.y||0}]},h=n(U,m,_,u.type,i,y,u.diagramId);b(m,h)}}})),L.debug("Cose-bilkent rendering completed")},"render"),ct=at;export{ct as render};
@@ -0,0 +1,3 @@
1
+ import{W}from"./chunk-b1pe46zz.js";import{e,r,D,b,O,C,S,E,T,A,I,L,s,wr,p,Dn,Zr,U}from"./chunk-y0m8hrwz.js";import{$r,X}from"./chunk-taynqrgq.js";var G="position frame",V="frame positioned",F="position relation",j="relation positioned",pe=e(function(t){r.debug("options str",t)},"setOptions"),ve=e(function(){return{}},"getOptions"),be=e(function(){Y(),C()},"clear");function Y(){M={}}e(Y,"reset");var we=D.eventmodeling,ye=e(()=>U({...we,...b().eventmodeling}),"getConfig"),M={};function z(){let t=Pe,{ast:i}=M,n=N();if(!i)throw Error("No data for EventModel");return i.frames.forEach((a,o)=>{let d=te(a,i.dataEntities,n);t=P(t,{$kind:G,index:o,frame:a,textProps:d});let c=void 0;if(se(a))r.debug("source frame",a.sourceFrames),c=i.frames.filter((m)=>a.sourceFrames.some((u)=>u.$refText===m.name)),c.forEach((m)=>{t=P(t,{$kind:F,index:o,frame:a,sourceFrame:m})});else t=P(t,{$kind:F,index:o,frame:a})}),t={...t,sortedSwimlanesArray:H(t.swimlanes)},t}e(z,"getState");function K(t){M.ast=void 0;let i=new Set;for(let n of t.frames){if(i.has(n.name)){let a=n.$cstNode?.range.start.line,o=a===void 0?"":` on line ${a+1}`;throw Error(`Duplicate event modeling frame ID "${n.name}"${o}`)}i.add(n.name)}M.ast=t}e(K,"setAst");var l={swimlaneMinHeight:70,swimlanePadding:15,swimlaneGap:10,boxPadding:10,boxOverlap:90,boxDefaultY:0,boxMinWidth:80,boxMaxWidth:450,boxMinHeight:80,boxMaxHeight:750,contentStartX:250,textMaxWidth:430,boxTextFontWeight:"bold",boxTextPadding:10,swimlaneTextFontWeight:"bold",labelUiAutomation:"UI/Automation",labelUiAutomationPrefix:"UI/A: ",labelCommandReadModel:"Command/Read Model",labelCommandReadModelPrefix:"C/RM: ",labelEvents:"Events",labelEventsPrefix:"Stream: "};function N(){return l}e(N,"getDiagramProps");var Pe={boxes:[],swimlanes:{},relations:[],maxR:0,sortedSwimlanesArray:[]};function q(t){let i=t.split(".");if(i.length===2)return i[0];return}e(q,"extractNamespace");function J(t){let i=t.split(".");if(i.length===2)return i[1];return t}e(J,"extractName");function Q(t,i){if(!i||i.length===0)return;return Object.values(t).find((n)=>n.namespace===i)}e(Q,"findSwimlaneByNamespace");function y(t,i,n){return Math.max(i,...Object.keys(t).filter((a)=>{let o=Number.parseInt(a);return o>i&&o<n}).map((a)=>Number.parseInt(a)))+1}e(y,"findNextAvailableIndex");function Z(t,i){let n=q(t.entityIdentifier),a=Q(i,n);switch(t.modelEntityType){case"ui":case"pcr":case"processor":if(a)return{index:a.index,label:a.namespace||l.labelUiAutomation};else if(n)return{index:y(i,0,100),label:l.labelUiAutomationPrefix+n};return{index:0,label:l.labelUiAutomation};case"rmo":case"readmodel":case"cmd":case"command":if(a)return{index:a.index,label:a.namespace||l.labelCommandReadModel};else if(n)return{index:y(i,100,200),label:l.labelCommandReadModelPrefix+n};return{index:100,label:l.labelCommandReadModel};case"evt":case"event":default:if(a)return{index:a.index,label:a.namespace||l.labelEvents};else if(n)return{index:y(i,200,300),label:l.labelEventsPrefix+n};return{index:200,label:l.labelEvents}}}e(Z,"calculateSwimlaneProps");function ee(t){let{themeVariables:i}=b();switch(t.modelEntityType){case"ui":return{fill:i.emUiFill??"white",stroke:i.emUiStroke??"#dbdada"};case"pcr":case"processor":return{fill:i.emProcessorFill??"#edb3f6",stroke:i.emProcessorStroke??"#b88cbf"};case"rmo":case"readmodel":return{fill:i.emReadModelFill??"#d3f1a2",stroke:i.emReadModelStroke??"#a3b732"};case"cmd":case"command":return{fill:i.emCommandFill??"#bcd6fe",stroke:i.emCommandStroke??"#679ac3"};case"evt":case"event":return{fill:i.emEventFill??"#ffb778",stroke:i.emEventStroke??"#c19a0f"};default:return{fill:"red",stroke:"black"}}}e(ee,"calculateEntityVisualProps");function te(t,i,n){let a=b(),o=O(J(t.entityIdentifier)??"",a),d,c={fontSize:16,fontWeight:700,fontFamily:'"trebuchet ms", verdana, arial, sans-serif',joinWith:"<br/>"},u=`<b>${Dn(o,n.textMaxWidth,c)}</b>`;if(t.dataInlineValue)d=t.dataInlineValue,d=d.substring(d.indexOf("{")+1),d=d.substring(0,d.lastIndexOf("}")-1),d=O(d,a),d=Dn(d,n.textMaxWidth,c),d=d.replaceAll(" ","&nbsp;");if(t.dataReference){let w=i.find((k)=>k.name===t.dataReference?.$refText);if(w)d=w.dataBlockValue,d=d.substring(d.indexOf(`{
2
+ `)+2),d=d.substring(0,d.lastIndexOf("}")-1),d=O(d,a),d=Dn(d,n.textMaxWidth,c),d=d.replaceAll(" ","&nbsp;"),d+="<br/>"}let x=d!==void 0;if(x)u+=`<br/><br/><code style="text-align: left; display: block;max-width:${n.textMaxWidth}px">${d}</code>`;let g={fontSize:c.fontSize,fontWeight:c.fontWeight,fontFamily:c.fontFamily},f=Zr(u,g),v=x?f.width/3:f.width,h={content:u,width:v,height:f.height};return r.debug(`[${t.name}] ${t.entityIdentifier} text`,h),h}e(te,"calculateTextProps");function ne(t,i){let n=i,a=ee(n.frame),o={width:n.textProps.width+2*l.boxTextPadding,height:n.textProps.height+2*l.boxTextPadding};return[{$kind:V,frame:n.frame,index:n.index,visual:a,dimension:o,textProps:n.textProps}]}e(ne,"decidePositionFrame");function ie(t,i,n){if(i===void 0)return l.contentStartX;if(i.index===t.index&&t.r)return t.r+l.boxPadding;if(n===void 0)return l.contentStartX;return n.r-l.boxOverlap+l.boxPadding}e(ie,"calculateX");function re(t,i){let n=[...t.map((a)=>a.r),i];return Math.max(...n)}e(re,"calculateMaxRight");function H(t){return Object.values(t).sort((i,n)=>i.index-n.index)}e(H,"sortedSwimlanesArray");function ae(t,i){let n=i,a=Z(n.frame,t.swimlanes),o;if(a.index in t.swimlanes)o=t.swimlanes[a.index];else o={index:a.index,label:a.label,r:0,y:a.index*l.swimlaneMinHeight+l.swimlaneGap,height:l.swimlaneMinHeight,maxHeight:l.swimlaneMinHeight};let d=t.boxes.length>0?t.boxes[t.boxes.length-1]:void 0,c=t.previousSwimlaneNumber!==void 0?t.swimlanes[t.previousSwimlaneNumber]:void 0,m={width:Math.max(l.boxMinWidth,Math.min(l.boxMaxWidth,n.dimension.width))+2*l.boxPadding,height:Math.max(l.boxMinHeight,Math.min(l.boxMaxHeight,n.dimension.height))+2*l.boxPadding},u=ie(o,c,d),x=u+m.width+l.boxPadding,g=re(Object.values(t.swimlanes),x);o.r=u+m.width,o.maxHeight=Math.max(o.maxHeight,m.height),o.height=Math.max(l.swimlaneMinHeight,o.maxHeight)+2*l.swimlanePadding;let f={x:u,y:l.swimlanePadding+o.y,r:x,dimension:m,leftSibling:!1,swimlane:o,visual:n.visual,text:n.textProps.content,frame:n.frame,index:n.index},v={...t,boxes:[...t.boxes,f],swimlanes:{...t.swimlanes,[`${o.index}`]:o},previousSwimlaneNumber:a.index,previousFrame:n.frame,maxR:g},h=H(v.swimlanes);if(h.length>0)h[0].y=0;for(let w=1;w<h.length;w++){let k=h[w],_=h[w-1];k.y=_.y+_.height+l.swimlaneGap}return v}e(ae,"evolveFramePositioned");function oe(t,i){if(t===0&&i.sourceFrames.length===0)return!0;return!1}e(oe,"isFirstFrame");function se(t){return t.sourceFrames!==void 0&&t.sourceFrames!==null&&t.sourceFrames.length>0}e(se,"hasSourceFrame");function B(t,i){if(i===void 0||i===null)return;return t.find((n)=>n.frame.name===i.name)}e(B,"findBoxByFrame");function de(t,i,n){if(n<0)return;for(let a=n;a>=0;a--){let o=t[a];if(o.swimlane.index!==i)return o}return}e(de,"findBoxByLineIndex");function le(t,i){let n=i;if(oe(n.index,n.frame))return[];let a=B(t.boxes,n.frame);if(a===void 0)throw Error(`Target box not found for frame ${n.frame.name}`);let o;if(n.sourceFrame)o=B(t.boxes,n.sourceFrame);else{if($r(n.frame))return[];o=de(t.boxes,a.swimlane.index,n.index-1)}if(o===void 0)return[];return[{$kind:j,frame:n.frame,index:n.index,sourceBox:o,targetBox:a}]}e(le,"decidePositionRelation");function ce(t,i){let n=i,a={visual:{fill:"none",stroke:"#000"},source:{x:n.sourceBox.x,y:n.sourceBox.y},target:{x:n.targetBox.x,y:n.targetBox.y},sourceBox:n.sourceBox,targetBox:n.targetBox};return{...t,relations:[...t.relations,a]}}e(ce,"evolveRelationPositioned");var Se={[G]:ne,[F]:le},Me={[V]:ae,[j]:ce};function me(t,i){let n=Se[i.$kind];if(n===void 0||n===null)return[];let a=n(t,i);return r.debug("decided events",a),a}e(me,"decide");function ue(t,i){let n=i.reduce((a,o)=>{let d=Me[o.$kind];if(d===void 0||d===null)return a;return d(a,o)},t);return r.debug("evolve events",{state:t,newState:n,events:i}),n}e(ue,"evolve");function P(t,i){let n=me(t,i);return ue(t,n)}e(P,"dispatch");var R={getConfig:ye,preserveCommentsWhenParsing:!0,setOptions:pe,getOptions:ve,clear:be,setAccTitle:S,getAccTitle:E,getAccDescription:A,setAccDescription:T,setDiagramTitle:I,getDiagramTitle:L,setAst:K,getDiagramProps:N,getState:z},ke={parse:e(async(t)=>{let i=await X("eventmodeling",t);r.debug(i),R.setAst(i),W(i,R)},"parse")},Fe=s(),Be=Fe?.eventmodeling;function xe(t,i){return(n)=>{let a=n.swimlane.y+i.swimlanePadding,o=t.append("g").attr("class","em-box");o.append("rect").attr("x",n.x).attr("y",a).attr("rx","3").attr("width",n.dimension.width).attr("height",n.dimension.height).attr("stroke",n.visual.stroke).attr("fill",n.visual.fill),o.append("foreignObject").attr("x",n.x+i.boxPadding).attr("y",a+10).attr("width",n.dimension.width-2*i.boxPadding).attr("height",n.dimension.height-2*i.boxPadding).append("xhtml:div").style("display","table").style("height","100%").style("width","100%").append("span").style("display","table-cell").style("text-align","center").style("vertical-align","middle").html(n.text)}}e(xe,"renderD3Box");function fe(t,i){return t>i}e(fe,"dirUpwards");function ge(t,i,n,a){return(o)=>{let d=o.sourceBox.swimlane.y+i.swimlanePadding,c=o.targetBox.swimlane.y+i.swimlanePadding,m=fe(d,c),u=o.sourceBox.x+o.sourceBox.dimension.width*2/3,x=o.targetBox.x+o.targetBox.dimension.width/3,g,f;if(r.debug(`rendering relation up=${m} for `,{sourceBox:o.sourceBox,targetBox:o.targetBox}),m)g=d,f=c+o.targetBox.dimension.height;else g=d+o.sourceBox.dimension.height,f=c;let v=a.emRelationStroke??o.visual.stroke;t.append("path").attr("class","em-relation").attr("fill",o.visual.fill).attr("stroke",v).attr("stroke-width","1").attr("marker-end",`url(#${n})`).attr("d",`M${u} ${g} L${x} ${f}`)}}e(ge,"renderD3Relation");function he(t,i,n,a){return(o)=>{let d=t.append("g").attr("class","em-swimlane"),c=a.emSwimlaneBackgroundOdd??"rgb(250,250,250)",m=a.emSwimlaneBackgroundStroke??"rgb(240,240,240)";d.append("rect").attr("x",0).attr("y",o.y).attr("rx","3").attr("width",i+n.swimlanePadding).attr("height",o.height).attr("fill",c).attr("stroke",m),d.append("text").attr("font-weight",n.swimlaneTextFontWeight).attr("x",30).attr("y",o.y+30).text(o.label)}}e(he,"renderD3Swimlane");var Ee=e(function(t,i,n,a){if(r.debug("in eventmodeling renderer",t+`
3
+ `,"id:",i,n),!Be)throw Error("EventModeling config not found");let o=a.db,{themeVariables:d,eventmodeling:c}=s(),m=p(`[id="${i}"]`),u=o.getDiagramProps(),x=o.getState(),g=`em-arrowhead-${i}`,f=d.emArrowhead??"#000000";x.sortedSwimlanesArray.forEach(he(m,x.maxR,u,d)),x.boxes.forEach(xe(m,u)),x.relations.forEach(ge(m,u,g,d)),m.append("defs").append("marker").attr("id",g).attr("markerWidth","10").attr("markerHeight","7").attr("refX","10").attr("refY","3.5").attr("orient","auto").append("polygon").attr("points","0 0, 10 3.5, 0 7").attr("fill",f),wr(void 0,m,c?.padding??30,c?.useMaxWidth)},"draw"),Ae={draw:Ee},$e=e((t)=>"","getStyles"),Re=$e,Ue={parser:ke,db:R,renderer:Ae,styles:Re};export{Ue as diagram};
@@ -0,0 +1 @@
1
+ import{rr}from"./chunk-taynqrgq.js";export{rr as createRailroadServices};
@@ -0,0 +1 @@
1
+ import{hi}from"./chunk-taynqrgq.js";export{hi as createRadarServices};
@@ -0,0 +1,2 @@
1
+ import{l}from"./chunk-vt40e1kp.js";var c=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],gn=l("circle-check",c);
2
+ export{gn};
@@ -0,0 +1 @@
1
+ import{fi}from"./chunk-xzp7jf7e.js";export{fi as default};
@@ -0,0 +1,89 @@
1
+ import{e,r,we,b,O,B,C,s,q}from"./chunk-y0m8hrwz.js";var M="",D="",E="",W=[],N=new Map,S=e((t)=>O(t,s()),"sanitizeText"),R=e((t)=>{switch(t.type){case"terminal":return{...t,value:S(t.value)};case"nonterminal":return{...t,name:S(t.name)};case"sequence":return{...t,elements:t.elements.map(R)};case"choice":return{...t,alternatives:t.alternatives.map(R)};case"optional":return{...t,element:R(t.element)};case"repetition":return{...t,element:R(t.element),separator:t.separator?R(t.separator):void 0};case"special":return{...t,text:S(t.text)}}},"sanitizeAstNode"),U=e(()=>{M="",D="",E="",W.length=0,N.clear(),C(),r.debug("[Railroad] Database cleared")},"clear"),L=e((t)=>{M=S(t),r.debug("[Railroad] Title set:",t)},"setTitle"),I=e(()=>M,"getTitle"),j=e((t)=>{let a={...t,name:S(t.name),definition:R(t.definition),comment:t.comment?S(t.comment):void 0};if(r.debug("[Railroad] Adding rule:",a.name),N.has(a.name))r.warn(`[Railroad] Rule '${a.name}' is already defined. Overwriting.`);W.push(a),N.set(a.name,a)},"addRule"),J=e(()=>W,"getRules"),Q=e((t)=>N.get(t),"getRule"),Z=e((t)=>{D=S(t).replace(/^\s+/g,""),r.debug("[Railroad] Accessibility title set:",t)},"setAccTitle"),V=e(()=>D,"getAccTitle"),ee=e((t)=>{E=S(t).replace(/\n\s+/g,`
2
+ `),r.debug("[Railroad] Accessibility description set:",t)},"setAccDescription"),te=e(()=>E,"getAccDescription"),re=L,ie=I,K={clear:U,setTitle:L,getTitle:I,addRule:j,getRules:J,getRule:Q,setAccTitle:Z,getAccTitle:V,setAccDescription:ee,getAccDescription:te,setDiagramTitle:re,getDiagramTitle:ie},T={compactMode:!1,padding:10,verticalSeparation:8,horizontalSeparation:10,arcRadius:10,fontSize:14,fontFamily:"monospace",terminalFill:"#FFFFC0",terminalStroke:"#000000",terminalTextColor:"#000000",nonTerminalFill:"#FFFFFF",nonTerminalStroke:"#000000",nonTerminalTextColor:"#000000",lineColor:"#000000",strokeWidth:2,markerFill:"#000000",commentFill:"#E8E8E8",commentStroke:"#888888",commentTextColor:"#666666",specialFill:"#F0E0FF",specialStroke:"#8800CC",ruleNameColor:"#000066",showMarkers:!0,markerRadius:5},ne=/^#(?:[\da-f]{3,4}|[\da-f]{6}|[\da-f]{8})$|^(?:rgb|rgba|hsl|hsla|hwb|lab|lch|oklab|oklch)\([\d\s%+,./-]+\)$|^[a-z]+$/i,ae=/^[\w "',.-]+$/,oe=new Set(["compactMode","padding","verticalSeparation","horizontalSeparation","arcRadius","fontSize","fontFamily","terminalFill","terminalStroke","terminalTextColor","nonTerminalFill","nonTerminalStroke","nonTerminalTextColor","lineColor","strokeWidth","markerFill","commentFill","commentStroke","commentTextColor","specialFill","specialStroke","ruleNameColor","showMarkers","markerRadius"]),X=e((t)=>{if(!t)return!1;return Object.keys(t).every((a)=>a==="railroad"||oe.has(a))},"isRailroadStyleOptions"),le=e((t)=>{if(!t)return{};if("railroad"in t&&t.railroad)return t.railroad;return X(t)?t:{}},"extractRailroadOverrides"),se=e((t)=>{if(!t||X(t))return{};let{railroad:a,svgId:l,theme:n,look:i,...o}=t;return o},"extractThemeOverrides"),u=e((t,a)=>{if(typeof t!=="string")return a;let l=t.trim();return ne.test(l)?l:a},"sanitizeColorValue"),H=e((t,a)=>{if(typeof t!=="string")return a;let l=t.trim();return ae.test(l)?l:a},"sanitizeFontFamilyValue"),y=e((t,a)=>{let l=typeof t==="number"?t:typeof t==="string"?Number.parseFloat(t):Number.NaN;return Number.isFinite(l)&&l>=0?l:a},"sanitizeNumberValue"),de=e((t)=>{let a=typeof t==="number"?t:typeof t==="string"?Number.parseFloat(t):Number.NaN;return Number.isFinite(a)&&a>0?a:void 0},"parseThemeFontSize"),ce=e((t)=>{let a=H(t.fontFamily,T.fontFamily),l=de(t.fontSize)??T.fontSize;return{...T,fontFamily:a,fontSize:l,terminalFill:u(t.secondBkg??t.secondaryColor,T.terminalFill),terminalStroke:u(t.secondaryBorderColor??t.lineColor,T.terminalStroke),terminalTextColor:u(t.secondaryTextColor??t.textColor,T.terminalTextColor),nonTerminalFill:u(t.mainBkg??t.background,T.nonTerminalFill),nonTerminalStroke:u(t.primaryBorderColor??t.lineColor,T.nonTerminalStroke),nonTerminalTextColor:u(t.primaryTextColor??t.textColor,T.nonTerminalTextColor),lineColor:u(t.lineColor,T.lineColor),markerFill:u(t.lineColor,T.markerFill),commentFill:u(t.labelBackground??t.tertiaryColor,T.commentFill),commentStroke:u(t.tertiaryBorderColor??t.lineColor,T.commentStroke),commentTextColor:u(t.tertiaryTextColor??t.textColor,T.commentTextColor),specialFill:u(t.tertiaryColor??t.secondaryColor,T.specialFill),specialStroke:u(t.tertiaryBorderColor??t.secondaryBorderColor,T.specialStroke),ruleNameColor:u(t.titleColor??t.textColor,T.ruleNameColor)}},"buildThemeDefaults"),_=e((t)=>{let a=b(),l={...we(),...a.themeVariables??{},...se(t)},n=ce(l),i={...a.railroad??{},...le(t)};return{compactMode:i.compactMode??n.compactMode,padding:y(i.padding,n.padding),verticalSeparation:y(i.verticalSeparation,n.verticalSeparation),horizontalSeparation:y(i.horizontalSeparation,n.horizontalSeparation),arcRadius:y(i.arcRadius,n.arcRadius),fontSize:y(i.fontSize,n.fontSize),fontFamily:H(i.fontFamily,n.fontFamily),terminalFill:u(i.terminalFill,n.terminalFill),terminalStroke:u(i.terminalStroke,n.terminalStroke),terminalTextColor:u(i.terminalTextColor,n.terminalTextColor),nonTerminalFill:u(i.nonTerminalFill,n.nonTerminalFill),nonTerminalStroke:u(i.nonTerminalStroke,n.nonTerminalStroke),nonTerminalTextColor:u(i.nonTerminalTextColor,n.nonTerminalTextColor),lineColor:u(i.lineColor,n.lineColor),strokeWidth:y(i.strokeWidth,n.strokeWidth),markerFill:u(i.markerFill,n.markerFill),commentFill:u(i.commentFill,n.commentFill),commentStroke:u(i.commentStroke,n.commentStroke),commentTextColor:u(i.commentTextColor,n.commentTextColor),specialFill:u(i.specialFill,n.specialFill),specialStroke:u(i.specialStroke,n.specialStroke),ruleNameColor:u(i.ruleNameColor,n.ruleNameColor),showMarkers:i.showMarkers??n.showMarkers,markerRadius:y(i.markerRadius,n.markerRadius)}},"buildRailroadStyleOptions"),Lt=e((t)=>{let{fontFamily:a,fontSize:l,terminalFill:n,terminalStroke:i,terminalTextColor:o,nonTerminalFill:g,nonTerminalStroke:m,nonTerminalTextColor:d,lineColor:f,strokeWidth:p,markerFill:h,commentFill:k,commentStroke:c,commentTextColor:x,specialFill:z,specialStroke:F,ruleNameColor:v}=_(t);return`
3
+ .railroad-diagram {
4
+ font-family: ${a};
5
+ font-size: ${l}px;
6
+ }
7
+
8
+ .railroad-terminal rect {
9
+ fill: ${n};
10
+ stroke: ${i};
11
+ stroke-width: ${p}px;
12
+ }
13
+
14
+ .railroad-terminal text {
15
+ fill: ${o};
16
+ font-family: ${a};
17
+ font-size: ${l}px;
18
+ text-anchor: middle;
19
+ dominant-baseline: middle;
20
+ }
21
+
22
+ .railroad-nonterminal rect {
23
+ fill: ${g};
24
+ stroke: ${m};
25
+ stroke-width: ${p}px;
26
+ }
27
+
28
+ .railroad-nonterminal text {
29
+ fill: ${d};
30
+ font-family: ${a};
31
+ font-size: ${l}px;
32
+ text-anchor: middle;
33
+ dominant-baseline: middle;
34
+ }
35
+
36
+ .railroad-line {
37
+ stroke: ${f};
38
+ stroke-width: ${p}px;
39
+ fill: none;
40
+ }
41
+
42
+ .railroad-start circle,
43
+ .railroad-end circle {
44
+ fill: ${h};
45
+ }
46
+
47
+ .railroad-comment ellipse {
48
+ fill: ${k};
49
+ stroke: ${c};
50
+ stroke-width: ${p}px;
51
+ }
52
+
53
+ .railroad-comment text {
54
+ fill: ${x};
55
+ font-style: italic;
56
+ font-family: ${a};
57
+ font-size: ${l}px;
58
+ text-anchor: middle;
59
+ dominant-baseline: middle;
60
+ }
61
+
62
+ .railroad-special rect {
63
+ fill: ${z};
64
+ stroke: ${F};
65
+ stroke-width: ${p}px;
66
+ stroke-dasharray: 5,3;
67
+ }
68
+
69
+ .railroad-special text {
70
+ fill: ${d};
71
+ font-family: ${a};
72
+ font-size: ${l}px;
73
+ text-anchor: middle;
74
+ dominant-baseline: middle;
75
+ }
76
+
77
+ .railroad-rule-name {
78
+ font-weight: bold;
79
+ fill: ${v};
80
+ font-family: ${a};
81
+ font-size: ${l}px;
82
+ }
83
+
84
+ .railroad-group {
85
+ /* Grouping container, no specific styles */
86
+ }
87
+ `},"getStyles"),w=class{constructor(){this.d=""}static{e(this,"PathBuilder")}moveTo(t,a){return this.d+=`M ${t} ${a} `,this}lineTo(t,a){return this.d+=`L ${t} ${a} `,this}horizontalTo(t){return this.d+=`H ${t} `,this}verticalTo(t){return this.d+=`V ${t} `,this}arcTo(t,a,l,n,i,o,g){return this.d+=`A ${t} ${a} ${l} ${n?1:0} ${i?1:0} ${o} ${g} `,this}build(){return this.d.trim()}},me=class{constructor(t,a=_()){this.textCache=new Map,this.svg=t,this.config=a}static{e(this,"RailroadRenderer")}measureText(t){if(this.textCache.has(t))return this.textCache.get(t);let a=this.svg.append("text").attr("font-family",this.config.fontFamily).attr("font-size",this.config.fontSize).text(t),l=a.node().getBBox(),n={width:l.width,height:l.height};return a.remove(),this.textCache.set(t,n),n}renderTerminal(t,a){let l=this.measureText(a),n=l.width+this.config.padding*2,i=l.height+this.config.padding*2,o=t.append("g").attr("class","railroad-terminal");return o.append("rect").attr("x",0).attr("y",0).attr("width",n).attr("height",i).attr("rx",10).attr("ry",10),o.append("text").attr("x",n/2).attr("y",i/2).text(a),{element:o.node(),dimensions:{width:n,height:i,up:i/2,down:i/2}}}renderNonTerminal(t,a){let l=this.measureText(a),n=l.width+this.config.padding*2,i=l.height+this.config.padding*2,o=t.append("g").attr("class","railroad-nonterminal");return o.append("rect").attr("x",0).attr("y",0).attr("width",n).attr("height",i),o.append("text").attr("x",n/2).attr("y",i/2).text(a),{element:o.node(),dimensions:{width:n,height:i,up:i/2,down:i/2}}}renderSequence(t,a){let l=a.map((d)=>this.renderExpression(t,d)),n=0,i=0,o=0;for(let d of l)n+=d.dimensions.width,i=Math.max(i,d.dimensions.up),o=Math.max(o,d.dimensions.down);n+=(l.length-1)*this.config.horizontalSeparation;let g=t.append("g").attr("class","railroad-sequence"),m=0;for(let d=0;d<l.length;d++){let f=l[d],p=i-f.dimensions.up;if(g.node().appendChild(f.element).setAttribute("transform",`translate(${m}, ${p})`),d<l.length-1){let k=m+f.dimensions.width,c=k+this.config.horizontalSeparation,x=i;g.append("path").attr("class","railroad-line").attr("d",new w().moveTo(k,x).lineTo(c,x).build())}m+=f.dimensions.width+this.config.horizontalSeparation}return{element:g.node(),dimensions:{width:n,height:i+o,up:i,down:o}}}renderChoice(t,a){let l=a.map((h)=>this.renderExpression(t,h)),n=0,i=0;for(let h of l)n=Math.max(n,h.dimensions.width),i+=h.dimensions.height;i+=(l.length-1)*this.config.verticalSeparation;let o=this.config.arcRadius,g=o*4,m=n+g,d=t.append("g").attr("class","railroad-choice"),f=0,p=i/2;for(let h of l){let k=f,c=k+h.dimensions.up,x=o*2+(n-h.dimensions.width)/2;d.node().appendChild(h.element).setAttribute("transform",`translate(${x}, ${k})`);let F=new w,v=c>p;if(c===p)F.moveTo(0,p).lineTo(x,c);else F.moveTo(0,p).arcTo(o,o,0,!1,v,o,p+(v?o:-o)).lineTo(o,c-(v?o:-o)).arcTo(o,o,0,!1,!v,o*2,c).lineTo(x,c);d.append("path").attr("class","railroad-line").attr("d",F.build());let A=new w,Y=x+h.dimensions.width,G=m-o*2;if(c===p)A.moveTo(Y,c).lineTo(m,p);else A.moveTo(Y,c).lineTo(G,c).arcTo(o,o,0,!1,!v,m-o,c+(v?-o:o)).lineTo(m-o,p+(v?o:-o)).arcTo(o,o,0,!1,v,m,p);d.append("path").attr("class","railroad-line").attr("d",A.build()),f+=h.dimensions.height+this.config.verticalSeparation}return{element:d.node(),dimensions:{width:m,height:i,up:p,down:i-p}}}renderOptional(t,a){let l=this.renderExpression(t,a),n=this.config.arcRadius,i=n*2,o=l.dimensions.width+n*4,g=l.dimensions.height+i,m=t.append("g").attr("class","railroad-optional"),d=n*2,f=i;m.node().appendChild(l.element).setAttribute("transform",`translate(${d}, ${f})`);let h=f+l.dimensions.up,k=new w().moveTo(0,h).lineTo(n*2,h);m.append("path").attr("class","railroad-line").attr("d",k.build());let c=new w().moveTo(d+l.dimensions.width,h).lineTo(o,h);m.append("path").attr("class","railroad-line").attr("d",c.build());let x=new w().moveTo(0,h).arcTo(n,n,0,!1,!1,n,h-n).lineTo(n,n).arcTo(n,n,0,!1,!0,n*2,0).lineTo(o-n*2,0).arcTo(n,n,0,!1,!0,o-n,n).lineTo(o-n,h-n).arcTo(n,n,0,!1,!1,o,h);return m.append("path").attr("class","railroad-line").attr("d",x.build()),{element:m.node(),dimensions:{width:o,height:g,up:h,down:g-h}}}renderRepetition(t,a,l){let n=this.renderExpression(t,a),i=this.config.arcRadius,o=i*2,g=n.dimensions.width+i*4,m=l===0,d=n.dimensions.height+o+(m?o:0),f=t.append("g").attr("class","railroad-repetition"),p=i*2,h=m?o:0;f.node().appendChild(n.element).setAttribute("transform",`translate(${p}, ${h})`);let c=h+n.dimensions.up;f.append("path").attr("class","railroad-line").attr("d",new w().moveTo(0,c).lineTo(i*2,c).build()),f.append("path").attr("class","railroad-line").attr("d",new w().moveTo(p+n.dimensions.width,c).lineTo(g,c).build());let x=h+n.dimensions.height+i,z=new w().moveTo(p+n.dimensions.width,c).arcTo(i,i,0,!1,!0,p+n.dimensions.width+i,c+i).lineTo(p+n.dimensions.width+i,x).arcTo(i,i,0,!1,!0,p+n.dimensions.width,x+i).lineTo(i*2,x+i).arcTo(i,i,0,!1,!0,i,x).lineTo(i,c+i).arcTo(i,i,0,!1,!0,i*2,c);if(f.append("path").attr("class","railroad-line").attr("d",z.build()),m){let F=new w().moveTo(0,c).arcTo(i,i,0,!1,!1,i,c-i).lineTo(i,i).arcTo(i,i,0,!1,!0,i*2,0).lineTo(g-i*2,0).arcTo(i,i,0,!1,!0,g-i,i).lineTo(g-i,c-i).arcTo(i,i,0,!1,!1,g,c);f.append("path").attr("class","railroad-line").attr("d",F.build())}return{element:f.node(),dimensions:{width:g,height:d,up:c,down:d-c}}}renderSpecial(t,a){let l=this.measureText("? "+a+" ?"),n=l.width+this.config.padding*2,i=l.height+this.config.padding*2,o=t.append("g").attr("class","railroad-special");return o.append("rect").attr("x",0).attr("y",0).attr("width",n).attr("height",i),o.append("text").attr("x",n/2).attr("y",i/2).text("? "+a+" ?"),{element:o.node(),dimensions:{width:n,height:i,up:i/2,down:i/2}}}renderExpression(t,a){switch(a.type){case"terminal":return this.renderTerminal(t,a.value);case"nonterminal":return this.renderNonTerminal(t,a.name);case"sequence":return this.renderSequence(t,a.elements);case"choice":return this.renderChoice(t,a.alternatives);case"optional":return this.renderOptional(t,a.element);case"repetition":return this.renderRepetition(t,a.element,a.min);case"special":return this.renderSpecial(t,a.text);default:throw Error(`Unknown node type: ${a.type}`)}}renderRule(t,a){let l=this.svg.append("g").attr("class","railroad-rule").attr("transform",`translate(0, ${a})`),n=t.name+" =",i=this.measureText(n).width+20,o=i+20,g=l.append("g"),m=this.renderExpression(g,t.definition),d=Math.max(20,m.dimensions.up),f=d-m.dimensions.up;return g.attr("transform",`translate(${o}, ${f})`),l.append("g").attr("class","railroad-rule-name-group").append("text").attr("class","railroad-rule-name").attr("x",0).attr("y",d).text(n),l.append("g").attr("class","railroad-start").append("circle").attr("cx",i).attr("cy",d).attr("r",this.config.markerRadius),l.append("g").attr("class","railroad-end").append("circle").attr("cx",o+m.dimensions.width+10).attr("cy",d).attr("r",this.config.markerRadius),l.append("path").attr("class","railroad-line").attr("d",new w().moveTo(i+this.config.markerRadius,d).lineTo(o,d).build()),l.append("path").attr("class","railroad-line").attr("d",new w().moveTo(o+m.dimensions.width,d).lineTo(o+m.dimensions.width+10-this.config.markerRadius,d).build()),{height:Math.max(40,f+m.dimensions.height+this.config.padding*2),width:o+m.dimensions.width+10+this.config.markerRadius}}renderDiagram(t){let a=this.config.padding,l=0;for(let n of t){let i=this.renderRule(n,a);a+=i.height+this.config.verticalSeparation,l=Math.max(l,i.width)}return{width:l+this.config.padding*2,height:a+this.config.padding}}},P=e((t,a,l)=>{B(t,a.height,a.width,l),t.attr("viewBox",`0 0 ${a.width} ${a.height}`)},"configureRailroadSvgSize"),he=e((t,a,l)=>{r.debug(`[Railroad] Rendering diagram
88
+ `+t);try{let n=q(a);n.attr("class","railroad-diagram");let o=b().railroad?.useMaxWidth??!0,g=K.getRules();if(r.debug(`[Railroad] Rendering ${g.length} rules`),g.length===0){r.warn("[Railroad] No rules to render"),P(n,{height:100,width:200},o);return}let d=new me(n,_()).renderDiagram(g);P(n,d,o),r.debug("[Railroad] Render complete")}catch(n){throw r.error("[Railroad] Render error:",n),n}},"draw"),It={draw:he};
89
+ export{K,Lt,It};
@@ -0,0 +1,98 @@
1
+ import{e,r,Y,u,d,D,b,oo,O,s,he,ge}from"./chunk-y0m8hrwz.js";import{fe}from"./chunk-ss1bcb0n.js";import{oe}from"./chunk-hev4hq89.js";var _e=new Uint8Array(16);function ee(){return crypto.getRandomValues(_e)}var x=[];for(let t=0;t<256;++t)x.push((t+256).toString(16).slice(1));function ue(t,i=0){return(x[t[i+0]]+x[t[i+1]]+x[t[i+2]]+x[t[i+3]]+"-"+x[t[i+4]]+x[t[i+5]]+"-"+x[t[i+6]]+x[t[i+7]]+"-"+x[t[i+8]]+x[t[i+9]]+"-"+x[t[i+10]]+x[t[i+11]]+x[t[i+12]]+x[t[i+13]]+x[t[i+14]]+x[t[i+15]]).toLowerCase()}function Se(t,i,p){if(!i&&!t&&crypto.randomUUID)return crypto.randomUUID();return xe(t,i,p)}function xe(t,i,p){t=t||{};let h=t.random??t.rng?.()??ee();if(h.length<16)throw Error("Random bytes length must be >= 16");if(h[6]=h[6]&15|64,h[8]=h[8]&63|128,i){if(p=p||0,p<0||p+16>i.length)throw RangeError(`UUID byte range ${p}:${p+15} is out of buffer bounds`);for(let n=0;n<16;++n)i[p+n]=h[n];return i}return ue(h)}var te=Se;var ne=function(){var t=e(function(w,c,o,l){for(o=o||{},l=w.length;l--;o[w[l]]=c);return o},"o"),i=[1,4],p=[1,13],h=[1,12],n=[1,15],f=[1,16],k=[1,20],_=[1,19],N=[6,7,8],U=[1,26],M=[1,24],P=[1,25],m=[6,7,11],V=[1,6,13,15,16,19,22],ie=[1,33],re=[1,34],F=[1,6,7,11,13,15,16,19,22],z={trace:e(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,MINDMAP:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,ICON:15,CLASS:16,nodeWithId:17,nodeWithoutId:18,NODE_DSTART:19,NODE_DESCR:20,NODE_DEND:21,NODE_ID:22,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"MINDMAP",11:"EOF",13:"SPACELIST",15:"ICON",16:"CLASS",19:"NODE_DSTART",20:"NODE_DESCR",21:"NODE_DEND",22:"NODE_ID"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,2],[12,2],[12,1],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[18,3],[17,1],[17,4]],performAction:e(function(c,o,l,g,E,a,G){var y=a.length-1;switch(E){case 6:case 7:return g;case 8:g.getLogger().trace("Stop NL ");break;case 9:g.getLogger().trace("Stop EOF ");break;case 11:g.getLogger().trace("Stop NL2 ");break;case 12:g.getLogger().trace("Stop EOF2 ");break;case 15:g.getLogger().info("Node: ",a[y].id),g.addNode(a[y-1].length,a[y].id,a[y].descr,a[y].type);break;case 16:g.getLogger().trace("Icon: ",a[y]),g.decorateNode({icon:a[y]});break;case 17:case 21:g.decorateNode({class:a[y]});break;case 18:g.getLogger().trace("SPACELIST");break;case 19:g.getLogger().trace("Node: ",a[y].id),g.addNode(0,a[y].id,a[y].descr,a[y].type);break;case 20:g.decorateNode({icon:a[y]});break;case 25:g.getLogger().trace("node found ..",a[y-2]),this.$={id:a[y-1],descr:a[y-1],type:g.getType(a[y-2],a[y])};break;case 26:this.$={id:a[y],descr:a[y],type:g.nodeType.DEFAULT};break;case 27:g.getLogger().trace("node found ..",a[y-3]),this.$={id:a[y-3],descr:a[y-1],type:g.getType(a[y-2],a[y])};break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:i},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:i},{6:p,7:[1,10],9:9,12:11,13:h,14:14,15:n,16:f,17:17,18:18,19:k,22:_},t(N,[2,3]),{1:[2,2]},t(N,[2,4]),t(N,[2,5]),{1:[2,6],6:p,12:21,13:h,14:14,15:n,16:f,17:17,18:18,19:k,22:_},{6:p,9:22,12:11,13:h,14:14,15:n,16:f,17:17,18:18,19:k,22:_},{6:U,7:M,10:23,11:P},t(m,[2,22],{17:17,18:18,14:27,15:[1,28],16:[1,29],19:k,22:_}),t(m,[2,18]),t(m,[2,19]),t(m,[2,20]),t(m,[2,21]),t(m,[2,23]),t(m,[2,24]),t(m,[2,26],{19:[1,30]}),{20:[1,31]},{6:U,7:M,10:32,11:P},{1:[2,7],6:p,12:21,13:h,14:14,15:n,16:f,17:17,18:18,19:k,22:_},t(V,[2,14],{7:ie,11:re}),t(F,[2,8]),t(F,[2,9]),t(F,[2,10]),t(m,[2,15]),t(m,[2,16]),t(m,[2,17]),{20:[1,35]},{21:[1,36]},t(V,[2,13],{7:ie,11:re}),t(F,[2,11]),t(F,[2,12]),{21:[1,37]},t(m,[2,25]),t(m,[2,27])],defaultActions:{2:[2,1],6:[2,2]},parseError:e(function(c,o){if(o.recoverable)this.trace(c);else{var l=Error(c);throw l.hash=o,l}},"parseError"),parse:e(function(c){var o=this,l=[0],g=[],E=[null],a=[],G=this.table,y="",H=0,se=0,ae=0,ye=2,ce=1,ke=a.slice.call(arguments,1),S=Object.create(this.lexer),R={yy:{}};for(var q in this.yy)if(Object.prototype.hasOwnProperty.call(this.yy,q))R.yy[q]=this.yy[q];if(S.setInput(c,R.yy),R.yy.lexer=S,R.yy.parser=this,typeof S.yylloc>"u")S.yylloc={};var J=S.yylloc;a.push(J);var be=S.options&&S.options.ranges;if(typeof R.yy.parseError==="function")this.parseError=R.yy.parseError;else this.parseError=Object.getPrototypeOf(this).parseError;function Ee(T){l.length=l.length-2*T,E.length=E.length-T,a.length=a.length-T}e(Ee,"popStack");function le(){var T=g.pop()||S.lex()||ce;if(typeof T!=="number"){if(T instanceof Array)g=T,T=g.pop();T=o.symbols_[T]||T}return T}e(le,"lex");var L,K,A,v,we,Q,B={},W,I,de,X;while(!0){if(A=l[l.length-1],this.defaultActions[A])v=this.defaultActions[A];else{if(L===null||typeof L>"u")L=le();v=G[A]&&G[A][L]}if(typeof v>"u"||!v.length||!v[0]){var Z="";X=[];for(W in G[A])if(this.terminals_[W]&&W>ye)X.push("'"+this.terminals_[W]+"'");if(S.showPosition)Z="Parse error on line "+(H+1)+`:
2
+ `+S.showPosition()+`
3
+ Expecting `+X.join(", ")+", got '"+(this.terminals_[L]||L)+"'";else Z="Parse error on line "+(H+1)+": Unexpected "+(L==ce?"end of input":"'"+(this.terminals_[L]||L)+"'");this.parseError(Z,{text:S.match,token:this.terminals_[L]||L,line:S.yylineno,loc:J,expected:X})}if(v[0]instanceof Array&&v.length>1)throw Error("Parse Error: multiple actions possible at state: "+A+", token: "+L);switch(v[0]){case 1:if(l.push(L),E.push(S.yytext),a.push(S.yylloc),l.push(v[1]),L=null,!K){if(se=S.yyleng,y=S.yytext,H=S.yylineno,J=S.yylloc,ae>0)ae--}else L=K,K=null;break;case 2:if(I=this.productions_[v[1]][1],B.$=E[E.length-I],B._$={first_line:a[a.length-(I||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(I||1)].first_column,last_column:a[a.length-1].last_column},be)B._$.range=[a[a.length-(I||1)].range[0],a[a.length-1].range[1]];if(Q=this.performAction.apply(B,[y,se,H,R.yy,v[1],E,a].concat(ke)),typeof Q<"u")return Q;if(I)l=l.slice(0,-1*I*2),E=E.slice(0,-1*I),a=a.slice(0,-1*I);l.push(this.productions_[v[1]][0]),E.push(B.$),a.push(B._$),de=G[l[l.length-2]][l[l.length-1]],l.push(de);break;case 3:return!0}}return!0},"parse")},me=function(){var w={EOF:1,parseError:e(function(o,l){if(this.yy.parser)this.yy.parser.parseError(o,l);else throw Error(o)},"parseError"),setInput:e(function(c,o){if(this.yy=o||this.yy||{},this._input=c,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges)this.yylloc.range=[0,0];return this.offset=0,this},"setInput"),input:e(function(){var c=this._input[0];this.yytext+=c,this.yyleng++,this.offset++,this.match+=c,this.matched+=c;var o=c.match(/(?:\r\n?|\n).*/g);if(o)this.yylineno++,this.yylloc.last_line++;else this.yylloc.last_column++;if(this.options.ranges)this.yylloc.range[1]++;return this._input=this._input.slice(1),c},"input"),unput:e(function(c){var o=c.length,l=c.split(/(?:\r\n?|\n)/g);this._input=c+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-o),this.offset-=o;var g=this.match.split(/(?:\r\n?|\n)/g);if(this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),l.length-1)this.yylineno-=l.length-1;var E=this.yylloc.range;if(this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:l?(l.length===g.length?this.yylloc.first_column:0)+g[g.length-l.length].length-l[0].length:this.yylloc.first_column-o},this.options.ranges)this.yylloc.range=[E[0],E[0]+this.yyleng-o];return this.yyleng=this.yytext.length,this},"unput"),more:e(function(){return this._more=!0,this},"more"),reject:e(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
4
+ `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:e(function(c){this.unput(this.match.slice(c))},"less"),pastInput:e(function(){var c=this.matched.substr(0,this.matched.length-this.match.length);return(c.length>20?"...":"")+c.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:e(function(){var c=this.match;if(c.length<20)c+=this._input.substr(0,20-c.length);return(c.substr(0,20)+(c.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:e(function(){var c=this.pastInput(),o=Array(c.length+1).join("-");return c+this.upcomingInput()+`
5
+ `+o+"^"},"showPosition"),test_match:e(function(c,o){var l,g,E;if(this.options.backtrack_lexer){if(E={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges)E.yylloc.range=this.yylloc.range.slice(0)}if(g=c[0].match(/(?:\r\n?|\n).*/g),g)this.yylineno+=g.length;if(this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:g?g[g.length-1].length-g[g.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+c[0].length},this.yytext+=c[0],this.match+=c[0],this.matches=c,this.yyleng=this.yytext.length,this.options.ranges)this.yylloc.range=[this.offset,this.offset+=this.yyleng];if(this._more=!1,this._backtrack=!1,this._input=this._input.slice(c[0].length),this.matched+=c[0],l=this.performAction.call(this,this.yy,this,o,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input)this.done=!1;if(l)return l;else if(this._backtrack){for(var a in E)this[a]=E[a];return!1}return!1},"test_match"),next:e(function(){if(this.done)return this.EOF;if(!this._input)this.done=!0;var c,o,l,g;if(!this._more)this.yytext="",this.match="";var E=this._currentRules();for(var a=0;a<E.length;a++)if(l=this._input.match(this.rules[E[a]]),l&&(!o||l[0].length>o[0].length)){if(o=l,g=a,this.options.backtrack_lexer)if(c=this.test_match(l,E[a]),c!==!1)return c;else if(this._backtrack){o=!1;continue}else return!1;else if(!this.options.flex)break}if(o){if(c=this.test_match(o,E[g]),c!==!1)return c;return!1}if(this._input==="")return this.EOF;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
6
+ `+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:e(function(){var o=this.next();if(o)return o;else return this.lex()},"lex"),begin:e(function(o){this.conditionStack.push(o)},"begin"),popState:e(function(){var o=this.conditionStack.length-1;if(o>0)return this.conditionStack.pop();else return this.conditionStack[0]},"popState"),_currentRules:e(function(){if(this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1])return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules;else return this.conditions.INITIAL.rules},"_currentRules"),topState:e(function(o){if(o=this.conditionStack.length-1-Math.abs(o||0),o>=0)return this.conditionStack[o];else return"INITIAL"},"topState"),pushState:e(function(o){this.begin(o)},"pushState"),stateStackSize:e(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:e(function(o,l,g,E){var a=E;switch(g){case 0:return o.getLogger().trace("Found comment",l.yytext),6;break;case 1:return 8;case 2:this.begin("CLASS");break;case 3:return this.popState(),16;break;case 4:this.popState();break;case 5:o.getLogger().trace("Begin icon"),this.begin("ICON");break;case 6:return o.getLogger().trace("SPACELINE"),6;break;case 7:return 7;case 8:return 15;case 9:o.getLogger().trace("end icon"),this.popState();break;case 10:return o.getLogger().trace("Exploding node"),this.begin("NODE"),19;break;case 11:return o.getLogger().trace("Cloud"),this.begin("NODE"),19;break;case 12:return o.getLogger().trace("Explosion Bang"),this.begin("NODE"),19;break;case 13:return o.getLogger().trace("Cloud Bang"),this.begin("NODE"),19;break;case 14:return this.begin("NODE"),19;break;case 15:return this.begin("NODE"),19;break;case 16:return this.begin("NODE"),19;break;case 17:return this.begin("NODE"),19;break;case 18:return 13;case 19:return 22;case 20:return 11;case 21:this.begin("NSTR2");break;case 22:return"NODE_DESCR";case 23:this.popState();break;case 24:o.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 25:return o.getLogger().trace("description:",l.yytext),"NODE_DESCR";break;case 26:this.popState();break;case 27:return this.popState(),o.getLogger().trace("node end ))"),"NODE_DEND";break;case 28:return this.popState(),o.getLogger().trace("node end )"),"NODE_DEND";break;case 29:return this.popState(),o.getLogger().trace("node end ...",l.yytext),"NODE_DEND";break;case 30:return this.popState(),o.getLogger().trace("node end (("),"NODE_DEND";break;case 31:return this.popState(),o.getLogger().trace("node end (-"),"NODE_DEND";break;case 32:return this.popState(),o.getLogger().trace("node end (-"),"NODE_DEND";break;case 33:return this.popState(),o.getLogger().trace("node end (("),"NODE_DEND";break;case 34:return this.popState(),o.getLogger().trace("node end (("),"NODE_DEND";break;case 35:return o.getLogger().trace("Long description:",l.yytext),20;break;case 36:return o.getLogger().trace("Long description:",l.yytext),20;break}},"anonymous"),rules:[/^(?:\s*%%.*)/i,/^(?:mindmap\b)/i,/^(?::::)/i,/^(?:.+)/i,/^(?:\n)/i,/^(?:::icon\()/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[^\)]+)/i,/^(?:\))/i,/^(?:-\))/i,/^(?:\(-)/i,/^(?:\)\))/i,/^(?:\))/i,/^(?:\(\()/i,/^(?:\{\{)/i,/^(?:\()/i,/^(?:\[)/i,/^(?:[\s]+)/i,/^(?:[^\(\[\n\)\{\}]+)/i,/^(?:$)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:[^"]+)/i,/^(?:["])/i,/^(?:[\)]\))/i,/^(?:[\)])/i,/^(?:[\]])/i,/^(?:\}\})/i,/^(?:\(-)/i,/^(?:-\))/i,/^(?:\(\()/i,/^(?:\()/i,/^(?:[^\)\]\(\}]+)/i,/^(?:.+(?!\(\())/i],conditions:{CLASS:{rules:[3,4],inclusive:!1},ICON:{rules:[8,9],inclusive:!1},NSTR2:{rules:[22,23],inclusive:!1},NSTR:{rules:[25,26],inclusive:!1},NODE:{rules:[21,24,27,28,29,30,31,32,33,34,35,36],inclusive:!1},INITIAL:{rules:[0,1,2,5,6,7,10,11,12,13,14,15,16,17,18,19,20],inclusive:!0}}};return w}();z.lexer=me;function j(){this.yy={}}return e(j,"Parser"),j.prototype=z,z.Parser=j,new j}();ne.parser=ne;var Ne=ne,pe=12,C={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6},Le=class{constructor(){this.nodes=[],this.count=0,this.elements={},this.getLogger=this.getLogger.bind(this),this.nodeType=C,this.clear(),this.getType=this.getType.bind(this),this.getElementById=this.getElementById.bind(this),this.getParent=this.getParent.bind(this),this.getMindmap=this.getMindmap.bind(this),this.addNode=this.addNode.bind(this),this.decorateNode=this.decorateNode.bind(this)}static{e(this,"MindmapDB")}clear(){this.nodes=[],this.count=0,this.elements={},this.baseLevel=void 0}getParent(t){for(let i=this.nodes.length-1;i>=0;i--)if(this.nodes[i].level<t)return this.nodes[i];return null}getMindmap(){return this.nodes.length>0?this.nodes[0]:null}addNode(t,i,p,h){r.info("addNode",t,i,p,h);let n=!1;if(this.nodes.length===0)this.baseLevel=t,t=0,n=!0;else if(this.baseLevel!==void 0)t=t-this.baseLevel,n=!1;let f=s(),k=f.mindmap?.padding??D.mindmap.padding;switch(h){case this.nodeType.ROUNDED_RECT:case this.nodeType.RECT:case this.nodeType.HEXAGON:k*=2;break}let _={id:this.count++,nodeId:O(i,f),level:t,descr:O(p,f),type:h,children:[],width:f.mindmap?.maxNodeWidth??D.mindmap.maxNodeWidth,padding:k,isRoot:n},N=this.getParent(t);if(N)N.children.push(_),this.nodes.push(_);else if(n)this.nodes.push(_);else throw Error(`There can be only one root. No parent could be found for ("${_.descr}")`)}getType(t,i){switch(r.debug("In get type",t,i),t){case"[":return this.nodeType.RECT;case"(":return i===")"?this.nodeType.ROUNDED_RECT:this.nodeType.CLOUD;case"((":return this.nodeType.CIRCLE;case")":return this.nodeType.CLOUD;case"))":return this.nodeType.BANG;case"{{":return this.nodeType.HEXAGON;default:return this.nodeType.DEFAULT}}setElementForId(t,i){this.elements[t]=i}getElementById(t){return this.elements[t]}decorateNode(t){if(!t)return;let i=s(),p=this.nodes[this.nodes.length-1];if(t.icon)p.icon=O(t.icon,i);if(t.class)p.class=O(t.class,i)}type2Str(t){switch(t){case this.nodeType.DEFAULT:return"no-border";case this.nodeType.RECT:return"rect";case this.nodeType.ROUNDED_RECT:return"rounded-rect";case this.nodeType.CIRCLE:return"circle";case this.nodeType.CLOUD:return"cloud";case this.nodeType.BANG:return"bang";case this.nodeType.HEXAGON:return"hexgon";default:return"no-border"}}assignSections(t,i,p=0,h=!1){if(t.level===0)t.section=void 0;else t.section=h?(p-1)%(pe-1):i;if(t.children)for(let[n,f]of t.children.entries()){let k=t.level===0?n%(pe-1):i;this.assignSections(f,k,p+1,h)}}flattenNodes(t,i){let p=s(),h=["mindmap-node"];if(t.isRoot===!0)h.push("section-root","section--1");else if(t.section!==void 0)h.push(`section-${t.section}`);if(t.class)h.push(t.class);let n=h.join(" "),f=e((_)=>{let U=(p.theme?.toLowerCase()??"").includes("redux");switch(_){case C.CIRCLE:return"mindmapCircle";case C.RECT:return"rect";case C.ROUNDED_RECT:return"rounded";case C.CLOUD:return"cloud";case C.BANG:return"bang";case C.HEXAGON:return"hexagon";case C.DEFAULT:return U?"rounded":"defaultMindmapNode";case C.NO_BORDER:default:return"rect"}},"getShapeFromType"),k={id:t.id.toString(),domId:"node_"+t.id.toString(),label:t.descr,labelType:"markdown",isGroup:!1,shape:f(t.type),width:t.width,height:t.height??0,padding:t.padding,cssClasses:n,cssStyles:[],centerLabel:!0,look:p.look,icon:t.icon,x:t.x,y:t.y,level:t.level,nodeId:t.nodeId,type:t.type,section:t.section};if(i.push(k),t.children)for(let _ of t.children)this.flattenNodes(_,i)}generateEdges(t,i){if(!t.children)return;let p=s();for(let h of t.children){let n="edge";if(h.section!==void 0)n+=` section-edge-${h.section}`;let f=t.level+1;n+=` edge-depth-${f}`;let k={id:`edge_${t.id}_${h.id}`,start:t.id.toString(),end:h.id.toString(),type:"normal",curve:"basis",thickness:"normal",look:p.look,classes:n,depth:t.level,section:h.section};i.push(k),this.generateEdges(h,i)}}getData(){let t=this.getMindmap(),i=s(),h=oo().layout!==void 0,n=i;if(!h)n.layout="cose-bilkent";if(!t)return{nodes:[],edges:[],config:n};r.debug("getData: mindmapRoot",t,i),this.assignSections(t,void 0,0,i.mindmap?.colorBy==="depth");let f=[],k=[];this.flattenNodes(t,f),this.generateEdges(t,k),r.debug(`getData: processed ${f.length} nodes and ${k.length} edges`);let _=new Map;for(let N of f)_.set(N.id,{shape:N.shape,width:N.width,height:N.height,padding:N.padding});return{nodes:f,edges:k,config:n,rootNode:t,markers:["point"],direction:"TB",nodeSpacing:50,rankSpacing:50,shapes:Object.fromEntries(_),type:"mindmap",diagramId:"mindmap-"+te()}}getLogger(){return r}},De=e(async(t,i,p,h)=>{r.debug(`Rendering mindmap diagram
7
+ `+t);let n=h.db,f=n.getData(),k=fe(i,f.config.securityLevel);if(f.type=h.type,f.layoutAlgorithm=ge(f.config.layout,{fallback:"cose-bilkent"}),f.diagramId=i,!n.getMindmap())return;f.nodes.forEach((m)=>{if(m.shape==="rounded")m.radius=15,m.taper=15,m.stroke="none",m.width=0,m.padding=15;else if(m.shape==="circle")m.padding=10;else if(m.shape==="rect")m.width=0,m.padding=10;else if(m.shape==="hexagon")m.width=0,m.height=0}),await he(f,k);let{themeVariables:N}=b(),{useGradient:U,gradientStart:M,gradientStop:P}=N;if(U&&M&&P){let m=k.attr("id"),V=k.append("defs").append("linearGradient").attr("id",`${m}-gradient`).attr("gradientUnits","objectBoundingBox").attr("x1","0%").attr("y1","0%").attr("x2","100%").attr("y2","0%");V.append("stop").attr("offset","0%").attr("stop-color",M).attr("stop-opacity",1),V.append("stop").attr("offset","100%").attr("stop-color",P).attr("stop-opacity",1)}oe(k,f.config.mindmap?.padding??D.mindmap.padding,"mindmapDiagram",f.config.mindmap?.useMaxWidth??D.mindmap.useMaxWidth)},"draw"),ve={draw:De},Te=e((t)=>{let{theme:i,look:p}=t,h="";for(let n=0;n<t.THEME_COLOR_LIMIT;n++)if(t["lineColor"+n]=t["lineColor"+n]||t["cScaleInv"+n],Y(t["lineColor"+n]))t["lineColor"+n]=u(t["lineColor"+n],20);else t["lineColor"+n]=d(t["lineColor"+n],20);for(let n=0;n<t.THEME_COLOR_LIMIT;n++){let f=""+(p==="neo"?Math.max(10-(n-1)*2,2):17-3*n),k=i==="redux"||i==="redux-dark"?t.nodeBorder:t["cScaleLabel"+(i==="neutral"?1:n)];h+=`
8
+ .section-${n-1} rect, .section-${n-1} path, .section-${n-1} circle, .section-${n-1} polygon, .section-${n-1} path {
9
+ fill: ${t["cScale"+n]};
10
+ }
11
+ .section-${n-1} text {
12
+ fill: ${t["cScaleLabel"+n]};
13
+ }
14
+ .section-${n-1} span {
15
+ color: ${t["cScaleLabel"+n]};
16
+ }
17
+ .node-icon-${n-1} {
18
+ font-size: 40px;
19
+ color: ${t["cScaleLabel"+n]};
20
+ }
21
+ .section-edge-${n-1}{
22
+ stroke: ${t["cScale"+n]};
23
+ }
24
+ .edge-depth-${n-1}{
25
+ stroke-width: ${f};
26
+ }
27
+ .section-${n-1} line {
28
+ stroke: ${t["cScaleInv"+n]} ;
29
+ stroke-width: 3;
30
+ }
31
+
32
+ .disabled, .disabled circle, .disabled text {
33
+ fill: lightgray;
34
+ }
35
+ .disabled text {
36
+ fill: #efefef;
37
+ }
38
+ [data-look="neo"].mindmap-node.section-${n-1} rect, [data-look="neo"].mindmap-node.section-${n-1} path, [data-look="neo"].mindmap-node.section-${n-1} circle, [data-look="neo"].mindmap-node.section-${n-1} polygon {
39
+ fill: ${i==="redux"||i==="redux-dark"||i==="neutral"?t.mainBkg:t["cScale"+n]};
40
+ stroke: ${i==="redux"||i==="redux-dark"?t.nodeBorder:t["cScale"+n]};
41
+ stroke-width: ${t.strokeWidth??2}px;
42
+ }
43
+ [data-look="neo"].section-edge-${n-1}{
44
+ stroke: ${i?.includes("redux")||i==="neo-dark"?t.nodeBorder:t["cScale"+n]};
45
+ }
46
+ [data-look="neo"].mindmap-node.section-${n-1} text, [data-look="neo"].mindmap-node.section-${n-1} span {
47
+ fill: ${k};
48
+ color: ${k};
49
+ }
50
+ `}return h},"genSections"),Oe=e((t,i,p)=>{let h="";for(let n=0;n<t;n++)h+=`
51
+ [data-look="neo"].mindmap-node.section-${n-1} rect, [data-look="neo"].mindmap-node.section-${n-1} path, [data-look="neo"].mindmap-node.section-${n-1} circle, [data-look="neo"].mindmap-node.section-${n-1} polygon {
52
+ stroke: url(${i}-gradient);
53
+ fill: ${p};
54
+ }
55
+ .section-${n-1} line {
56
+ stroke-width: 0;
57
+ }`;return h},"genGradient"),Ie=e((t)=>{let{theme:i}=t,p=t.svgId,h=i?.includes("redux")?t.nodeBorder:t["cScaleLabel"+(i==="neutral"?1:0)],n=t.dropShadow?t.dropShadow.replace("url(#drop-shadow)",`url(${p}-drop-shadow)`):"none";return`
58
+ .edge {
59
+ stroke-width: 3;
60
+ }
61
+ ${Te(t)}
62
+ .section-root rect, .section-root path, .section-root circle, .section-root polygon {
63
+ fill: ${t.git0};
64
+ }
65
+ .section-root text {
66
+ fill: ${t.gitBranchLabel0};
67
+ }
68
+ .section-root span {
69
+ color: ${i?.includes("redux")?t.nodeBorder:t.gitBranchLabel0};
70
+ }
71
+ .icon-container {
72
+ height:100%;
73
+ display: flex;
74
+ justify-content: center;
75
+ align-items: center;
76
+ }
77
+ .edge {
78
+ fill: none;
79
+ }
80
+ .mindmap-node-label {
81
+ dy: 1em;
82
+ alignment-baseline: middle;
83
+ text-anchor: middle;
84
+ dominant-baseline: middle;
85
+ text-align: center;
86
+ }
87
+ [data-look="neo"].mindmap-node {
88
+ filter: ${n};
89
+ }
90
+ [data-look="neo"].mindmap-node.section-root rect, [data-look="neo"].mindmap-node.section-root path, [data-look="neo"].mindmap-node.section-root circle, [data-look="neo"].mindmap-node.section-root polygon {
91
+ fill: ${i?.includes("redux")?t.mainBkg:t.git0};
92
+ }
93
+ [data-look="neo"].mindmap-node.section-root .text-inner-tspan, [data-look="neo"].mindmap-node.section-root span {
94
+ fill: ${h};
95
+ color: ${h};
96
+ }
97
+ ${t.useGradient&&p&&t.mainBkg?Oe(t.THEME_COLOR_LIMIT,p,t.mainBkg):""}
98
+ `},"getStyles"),Ce=Ie,It={get db(){return new Le},renderer:ve,parser:Ne,styles:Ce};export{It as diagram};
@@ -0,0 +1,34 @@
1
+ import{e,Y,vr,u,d,D,b,B,C,S,E,T,A,I,L,p,q,U,m}from"./chunk-y0m8hrwz.js";var fe=(t,s)=>vr(t,"a",-s),wt=fe;function It(t,s){let i=de(t),n=i.filter((c)=>he(c,t)),r=0,o=0,a=[];if(n.length>1){let c=Kt(n);for(let h=0;h<n.length;++h){let l=n[h];l.angle=Math.atan2(l.x-c.x,l.y-c.y)}n.sort((h,l)=>l.angle-h.angle);let g=n[n.length-1];for(let h=0;h<n.length;++h){let l=n[h];o+=(g.x+l.x)*(l.y-g.y);let M={x:(l.x+g.x)/2,y:(l.y+g.y)/2},y=null;for(let z=0;z<l.parentIndex.length;++z)if(g.parentIndex.includes(l.parentIndex[z])){let w=t[l.parentIndex[z]],j=Math.atan2(l.x-w.x,l.y-w.y),G=Math.atan2(g.x-w.x,g.y-w.y),P=G-j;if(P<0)P+=2*Math.PI;let F=G-P/2,v=at(M,{x:w.x+w.radius*Math.sin(F),y:w.y+w.radius*Math.cos(F)});if(v>w.radius*2)v=w.radius*2;if(y==null||y.width>v)y={circle:w,width:v,p1:l,p2:g,large:v>w.radius,sweep:!0}}if(y!=null)a.push(y),r+=Tt(y.circle.radius,y.width),g=l}}else{let c=t[0];for(let h=1;h<t.length;++h)if(t[h].radius<c.radius)c=t[h];let g=!1;for(let h=0;h<t.length;++h)if(at(t[h],c)>Math.abs(c.radius-t[h].radius)){g=!0;break}if(g)r=o=0;else r=c.radius*c.radius*Math.PI,a.push({circle:c,p1:{x:c.x,y:c.y+c.radius},p2:{x:c.x-0.0000000001,y:c.y+c.radius},width:c.radius*2,large:!0,sweep:!0})}if(o/=2,s)s.area=r+o,s.arcArea=r,s.polygonArea=o,s.arcs=a,s.innerPoints=n,s.intersectionPoints=i;return r+o}function he(t,s){return s.every((i)=>at(t,i)<i.radius+0.0000000001)}function de(t){let s=[];for(let i=0;i<t.length;++i)for(let n=i+1;n<t.length;++n){let r=Wt(t[i],t[n]);for(let o of r)o.parentIndex=[i,n],s.push(o)}return s}function Tt(t,s){return t*t*Math.acos(1-s/t)-(t-s)*Math.sqrt(s*(2*t-s))}function at(t,s){return Math.sqrt((t.x-s.x)*(t.x-s.x)+(t.y-s.y)*(t.y-s.y))}function Nt(t,s,i){if(i>=t+s)return 0;if(i<=Math.abs(t-s))return Math.PI*Math.min(t,s)*Math.min(t,s);let n=t-(i*i-s*s+t*t)/(2*i),r=s-(i*i-t*t+s*s)/(2*i);return Tt(t,n)+Tt(s,r)}function Wt(t,s){let i=at(t,s),n=t.radius,r=s.radius;if(i>=n+r||i<=Math.abs(n-r))return[];let o=(n*n-r*r+i*i)/(2*i),a=Math.sqrt(n*n-o*o),c=t.x+o*(s.x-t.x)/i,g=t.y+o*(s.y-t.y)/i,h=-(s.y-t.y)*(a/i),l=-(s.x-t.x)*(a/i);return[{x:c+h,y:g-l},{x:c-h,y:g+l}]}function Kt(t){let s={x:0,y:0};for(let i of t)s.x+=i.x,s.y+=i.y;return s.x/=t.length,s.y/=t.length,s}function ge(t,s,i,n){n=n||{};let r=n.maxIterations||100,o=n.tolerance||0.0000000001,a=t(s),c=t(i),g=i-s;if(a*c>0)throw"Initial bisect points must have opposite signs";if(a===0)return s;if(c===0)return i;for(let h=0;h<r;++h){g/=2;let l=s+g,M=t(l);if(M*a>=0)s=l;if(Math.abs(g)<o||M===0)return l}return s+g}function zt(t){let s=Array(t);for(let i=0;i<t;++i)s[i]=0;return s}function Ut(t,s){return zt(t).map(()=>zt(s))}function mt(t,s){let i=0;for(let n=0;n<t.length;++n)i+=t[n]*s[n];return i}function At(t){return Math.sqrt(mt(t,t))}function Ct(t,s,i){for(let n=0;n<s.length;++n)t[n]=s[n]*i}function xt(t,s,i,n,r){for(let o=0;o<t.length;++o)t[o]=s*i[o]+n*r[o]}function Ht(t,s,i){i=i||{};let n=i.maxIterations||s.length*200,r=i.nonZeroDelta||1.05,o=i.zeroDelta||0.001,a=i.minErrorDelta||0.000001,c=i.minErrorDelta||0.00001,g=i.rho!==void 0?i.rho:1,h=i.chi!==void 0?i.chi:2,l=i.psi!==void 0?i.psi:-0.5,M=i.sigma!==void 0?i.sigma:0.5,y,z=s.length,w=Array(z+1);w[0]=s,w[0].fx=t(s),w[0].id=0;for(let R=0;R<z;++R){let f=s.slice();f[R]=f[R]?f[R]*r:o,w[R+1]=f,w[R+1].fx=t(f),w[R+1].id=R+1}function j(R){for(let f=0;f<R.length;f++)w[z][f]=R[f];w[z].fx=R.fx}let G=(R,f)=>R.fx-f.fx,P=s.slice(),F=s.slice(),v=s.slice(),_=s.slice();for(let R=0;R<n;++R){if(w.sort(G),i.history){let k=w.map((x)=>{let H=x.slice();return H.fx=x.fx,H.id=x.id,H});k.sort((x,H)=>x.id-H.id),i.history.push({x:w[0].slice(),fx:w[0].fx,simplex:k})}y=0;for(let k=0;k<z;++k)y=Math.max(y,Math.abs(w[0][k]-w[1][k]));if(Math.abs(w[0].fx-w[z].fx)<a&&y<c)break;for(let k=0;k<z;++k){P[k]=0;for(let x=0;x<z;++x)P[k]+=w[x][k];P[k]/=z}let f=w[z];if(xt(F,1+g,P,-g,f),F.fx=t(F),F.fx<w[0].fx)if(xt(_,1+h,P,-h,f),_.fx=t(_),_.fx<F.fx)j(_);else j(F);else if(F.fx>=w[z-1].fx){let k=!1;if(F.fx>f.fx)if(xt(v,1+l,P,-l,f),v.fx=t(v),v.fx<f.fx)j(v);else k=!0;else if(xt(v,1-l*g,P,l*g,f),v.fx=t(v),v.fx<F.fx)j(v);else k=!0;if(k){if(M>=1)break;for(let x=1;x<w.length;++x)xt(w[x],1-M,w[0],M,w[x]),w[x].fx=t(w[x])}}else j(F)}return w.sort(G),{fx:w[0].fx,x:w[0]}}function xe(t,s,i,n,r,o,a){let c=i.fx,g=mt(i.fxprime,s),h=c,l=c,M=g,y=0;r=r||1,o=o||0.000001,a=a||0.1;function z(w,j,G){for(let P=0;P<16;++P)if(r=(w+j)/2,xt(n.x,1,i.x,r,s),h=n.fx=t(n.x,n.fxprime),M=mt(n.fxprime,s),h>c+o*r*g||h>=G)j=r;else{if(Math.abs(M)<=-a*g)return r;if(M*(j-w)>=0)j=w;w=r,G=h}return 0}for(let w=0;w<10;++w){if(xt(n.x,1,i.x,r,s),h=n.fx=t(n.x,n.fxprime),M=mt(n.fxprime,s),h>c+o*r*g||w&&h>=l)return z(y,r,l);if(Math.abs(M)<=-a*g)return r;if(M>=0)return z(r,y,h);l=h,y=r,r*=2}return r}function ye(t,s,i){let n={x:s.slice(),fx:0,fxprime:s.slice()},r={x:s.slice(),fx:0,fxprime:s.slice()},o=s.slice(),a,c,g=1,h;i=i||{},h=i.maxIterations||s.length*20,n.fx=t(n.x,n.fxprime),a=n.fxprime.slice(),Ct(a,n.fxprime,-1);for(let l=0;l<h;++l){if(g=xe(t,a,n,r,g),i.history)i.history.push({x:n.x.slice(),fx:n.fx,fxprime:n.fxprime.slice(),alpha:g});if(!g)Ct(a,n.fxprime,-1);else{xt(o,1,r.fxprime,-1,n.fxprime);let M=mt(n.fxprime,n.fxprime),y=Math.max(0,mt(o,r.fxprime)/M);xt(a,y,a,-1,r.fxprime),c=n,n=r,r=c}if(At(n.fxprime)<=0.00001)break}if(i.history)i.history.push({x:n.x.slice(),fx:n.fx,fxprime:n.fxprime.slice(),alpha:g});return n}function Yt(t,s={}){s.maxIterations=s.maxIterations||500;let i=s.initialLayout||ve,n=s.lossFunction||bt,r=pe(t,s),o=i(r,s),a=Object.keys(o),c=[];for(let l of a)c.push(o[l].x),c.push(o[l].y);let h=Ht((l)=>{let M={};for(let y=0;y<a.length;++y){let z=a[y];M[z]={x:l[2*y],y:l[2*y+1],radius:o[z].radius}}return n(M,r)},c,s).x;for(let l=0;l<a.length;++l){let M=a[l];o[M].x=h[2*l],o[M].y=h[2*l+1]}return o}var Xt=0.0000000001;function Dt(t,s,i){if(Math.min(t,s)*Math.min(t,s)*Math.PI<=i+Xt)return Math.abs(t-s);return ge((n)=>Nt(t,s,n)-i,0,t+s)}function pe(t,s={}){let i=s.distinct,n=t.map((c)=>Object.assign({},c));function r(c){return c.join(";")}if(i){let c=new Map;for(let g of n)for(let h=0;h<g.sets.length;h++){let l=String(g.sets[h]);c.set(l,g.size+(c.get(l)||0));for(let M=h+1;M<g.sets.length;M++){let y=String(g.sets[M]),z=`${l};${y}`,w=`${y};${l}`;c.set(z,g.size+(c.get(z)||0)),c.set(w,g.size+(c.get(w)||0))}}for(let g of n)if(g.sets.length<3)g.size=c.get(r(g.sets))}let o=[],a=new Set;for(let c of n)if(c.sets.length===1)o.push(c.sets[0]);else if(c.sets.length===2){let g=c.sets[0],h=c.sets[1];a.add(r(c.sets)),a.add(r([h,g]))}o.sort((c,g)=>c===g?0:c<g?-1:1);for(let c=0;c<o.length;++c){let g=o[c];for(let h=c+1;h<o.length;++h){let l=o[h];if(!a.has(r([g,l])))n.push({sets:[g,l],size:0})}}return n}function me(t,s,i){let n=Ut(s.length,s.length),r=Ut(s.length,s.length);return t.filter((o)=>o.sets.length===2).forEach((o)=>{let a=i[o.sets[0]],c=i[o.sets[1]],g=Math.sqrt(s[a].size/Math.PI),h=Math.sqrt(s[c].size/Math.PI),l=Dt(g,h,o.size);n[a][c]=n[c][a]=l;let M=0;if(o.size+0.0000000001>=Math.min(s[a].size,s[c].size))M=1;else if(o.size<=0.0000000001)M=-1;r[a][c]=r[c][a]=M}),{distances:n,constraints:r}}function be(t,s,i,n){for(let o=0;o<s.length;++o)s[o]=0;let r=0;for(let o=0;o<i.length;++o){let a=t[2*o],c=t[2*o+1];for(let g=o+1;g<i.length;++g){let h=t[2*g],l=t[2*g+1],M=i[o][g],y=n[o][g],z=(h-a)*(h-a)+(l-c)*(l-c),w=Math.sqrt(z),j=z-M*M;if(y>0&&w<=M||y<0&&w>=M)continue;r+=2*j*j,s[2*o]+=4*j*(a-h),s[2*o+1]+=4*j*(c-l),s[2*g]+=4*j*(h-a),s[2*g+1]+=4*j*(l-c)}}return r}function ve(t,s={}){let i=Ie(t,s),n=s.lossFunction||bt;if(t.length>=8){let r=ke(t,s),o=n(r,t),a=n(i,t);if(o+0.00000001<a)i=r}return i}function ke(t,s={}){let i=s.restarts||10,n=[],r={};for(let y of t)if(y.sets.length===1)r[y.sets[0]]=n.length,n.push(y);let{distances:o,constraints:a}=me(t,n,r),c=At(o.map(At))/o.length;o=o.map((y)=>y.map((z)=>z/c));let g=(y,z)=>be(y,z,o,a),h=null;for(let y=0;y<i;++y){let z=zt(o.length*2).map(Math.random),w=ye(g,z,s);if(!h||w.fx<h.fx)h=w}let l=h.x,M={};for(let y=0;y<n.length;++y){let z=n[y];M[z.sets[0]]={x:l[2*y]*c,y:l[2*y+1]*c,radius:Math.sqrt(z.size/Math.PI)}}if(s.history)for(let y of s.history)Ct(y.x,c);return M}function Ie(t,s){let i=s&&s.lossFunction?s.lossFunction:bt,n={},r={};for(let M of t)if(M.sets.length===1){let y=M.sets[0];n[y]={x:10000000000,y:10000000000,rowid:n.length,size:M.size,radius:Math.sqrt(M.size/Math.PI)},r[y]=[]}t=t.filter((M)=>M.sets.length===2);for(let M of t){let y=M.weight!=null?M.weight:1,z=M.sets[0],w=M.sets[1];if(M.size+Xt>=Math.min(n[z].size,n[w].size))y=0;r[z].push({set:w,size:M.size,weight:y}),r[w].push({set:z,size:M.size,weight:y})}let o=[];Object.keys(r).forEach((M)=>{let y=0;for(let z=0;z<r[M].length;++z)y+=r[M][z].size*r[M][z].weight;o.push({set:M,size:y})});function a(M,y){return y.size-M.size}o.sort(a);let c={};function g(M){return M.set in c}function h(M,y){n[y].x=M.x,n[y].y=M.y,c[y]=!0}h({x:0,y:0},o[0].set);for(let M=1;M<o.length;++M){let y=o[M].set,z=r[y].filter(g),w=n[y];if(z.sort(a),z.length===0)throw"ERROR: missing pairwise overlap information";let j=[];for(var l=0;l<z.length;++l){let F=n[z[l].set],v=Dt(w.radius,F.radius,z[l].size);j.push({x:F.x+v,y:F.y}),j.push({x:F.x-v,y:F.y}),j.push({y:F.y+v,x:F.x}),j.push({y:F.y-v,x:F.x});for(let _=l+1;_<z.length;++_){let R=n[z[_].set],f=Dt(w.radius,R.radius,z[_].size),k=Wt({x:F.x,y:F.y,radius:v},{x:R.x,y:R.y,radius:f});j.push(...k)}}let G=100000000000000000000000000000000000000000000000000,P=j[0];for(let F of j){n[y].x=F.x,n[y].y=F.y;let v=i(n,t);if(v<G)G=v,P=F}h(P,y)}return n}function bt(t,s){let i=0;for(let n of s){if(n.sets.length===1)continue;let r;if(n.sets.length===2){let a=t[n.sets[0]],c=t[n.sets[1]];r=Nt(a.radius,c.radius,at(a,c))}else r=It(n.sets.map((a)=>t[a]));let o=n.weight!=null?n.weight:1;i+=o*(r-n.size)*(r-n.size)}return i}function Zt(t,s){let i=0;for(let n of s){if(n.sets.length===1)continue;let r;if(n.sets.length===2){let c=t[n.sets[0]],g=t[n.sets[1]];r=Nt(c.radius,g.radius,at(c,g))}else r=It(n.sets.map((c)=>t[c]));let o=n.weight!=null?n.weight:1,a=Math.log((r+1)/(n.size+1));i+=o*a*a}return i}function Me(t,s,i){if(i==null)t.sort((r,o)=>o.radius-r.radius);else t.sort(i);if(t.length>0){let r=t[0].x,o=t[0].y;for(let a of t)a.x-=r,a.y-=o}if(t.length===2){if(at(t[0],t[1])<Math.abs(t[1].radius-t[0].radius))t[1].x=t[0].x+t[0].radius-t[1].radius-0.0000000001,t[1].y=t[0].y}if(t.length>1){let r=Math.atan2(t[1].x,t[1].y)-s,o=Math.cos(r),a=Math.sin(r);for(let c of t){let{x:g,y:h}=c;c.x=o*g-a*h,c.y=a*g+o*h}}if(t.length>2){let r=Math.atan2(t[2].x,t[2].y)-s;while(r<0)r+=2*Math.PI;while(r>2*Math.PI)r-=2*Math.PI;if(r>Math.PI){let o=t[1].y/(0.0000000001+t[1].x);for(let a of t){var n=(a.x+o*a.y)/(1+o*o);a.x=2*n-a.x,a.y=2*n*o-a.y}}}}function Se(t){t.forEach((r)=>{r.parent=r});function s(r){if(r.parent!==r)r.parent=s(r.parent);return r.parent}function i(r,o){let a=s(r),c=s(o);a.parent=c}for(let r=0;r<t.length;++r)for(let o=r+1;o<t.length;++o){let a=t[r].radius+t[o].radius;if(at(t[r],t[o])+0.0000000001<a)i(t[o],t[r])}let n=new Map;for(let r=0;r<t.length;++r){let o=s(t[r]).parent.setid;if(!n.has(o))n.set(o,[]);n.get(o).push(t[r])}return t.forEach((r)=>{delete r.parent}),Array.from(n.values())}function Rt(t){let s=(i)=>{let n=t.reduce((o,a)=>Math.max(o,a[i]+a.radius),Number.NEGATIVE_INFINITY),r=t.reduce((o,a)=>Math.min(o,a[i]-a.radius),Number.POSITIVE_INFINITY);return{max:n,min:r}};return{xRange:s("x"),yRange:s("y")}}function Jt(t,s,i){if(s==null)s=Math.PI/2;let n=te(t).map((h)=>Object.assign({},h)),r=Se(n);for(let h of r){Me(h,s,i);let l=Rt(h);h.size=(l.xRange.max-l.xRange.min)*(l.yRange.max-l.yRange.min),h.bounds=l}r.sort((h,l)=>l.size-h.size),n=r[0];let o=n.bounds,a=(o.xRange.max-o.xRange.min)/50;function c(h,l,M){if(!h)return;let y=h.bounds,z,w;if(l)z=o.xRange.max-y.xRange.min+a;else{z=o.xRange.max-y.xRange.max;let j=(y.xRange.max-y.xRange.min)/2-(o.xRange.max-o.xRange.min)/2;if(j<0)z+=j}if(M)w=o.yRange.max-y.yRange.min+a;else{w=o.yRange.max-y.yRange.max;let j=(y.yRange.max-y.yRange.min)/2-(o.yRange.max-o.yRange.min)/2;if(j<0)w+=j}for(let j of h)j.x+=z,j.y+=w,n.push(j)}let g=1;while(g<r.length)c(r[g],!0,!1),c(r[g+1],!1,!0),c(r[g+2],!0,!0),g+=3,o=Rt(n);return $t(n)}function Qt(t,s,i,n,r){let o=te(t);s-=2*n,i-=2*n;let{xRange:a,yRange:c}=Rt(o);if(a.max===a.min||c.max===c.min)return console.log("not scaling solution: zero size detected"),t;let g,h;if(r){let z=Math.sqrt(r/Math.PI)*2;g=s/z,h=i/z}else g=s/(a.max-a.min),h=i/(c.max-c.min);let l=Math.min(h,g),M=(s-(a.max-a.min)*l)/2,y=(i-(c.max-c.min)*l)/2;return $t(o.map((z)=>({radius:l*z.radius,x:n+M+(z.x-a.min)*l,y:n+y+(z.y-c.min)*l,setid:z.setid})))}function $t(t){let s={};for(let i of t)s[i.setid]=i;return s}function te(t){return Object.keys(t).map((i)=>Object.assign(t[i],{setid:i}))}function ee(t={}){let s=!1,i=600,n=350,r=15,o=1000,a=Math.PI/2,c=!0,g=null,h=!0,l=!0,M=null,y=null,z=!1,w=null,j=t&&t.symmetricalTextCentre?t.symmetricalTextCentre:!1,G={},P=t&&t.colourScheme?t.colourScheme:t&&t.colorScheme?t.colorScheme:["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"],F=0,v=function(k){if(k in G)return G[k];var x=G[k]=P[F];if(F+=1,F>=P.length)F=0;return x},_=Yt,R=bt;function f(k){let x=k.datum(),H=new Set;x.forEach((N)=>{if(N.size==0&&N.sets.length==1)H.add(N.sets[0])}),x=x.filter((N)=>!N.sets.some((Q)=>H.has(Q)));let O={},X={};if(x.length>0){let N=_(x,{lossFunction:R,distinct:z});if(c)N=Jt(N,a,y);O=Qt(N,i,n,r,g),X=se(O,x,j)}let lt={};x.forEach((N)=>{if(N.label)lt[N.sets]=N.label});function st(N){if(N.sets in lt)return lt[N.sets];if(N.sets.length==1)return""+N.sets[0]}k.selectAll("svg").data([O]).enter().append("svg");let J=k.select("svg");if(s)J.attr("viewBox",`0 0 ${i} ${n}`);else J.attr("width",i).attr("height",n);let K={},Z=!1;J.selectAll(".venn-area path").each(function(N){let Q=this.getAttribute("d");if(N.sets.length==1&&Q&&!z)Z=!0,K[N.sets[0]]=Ee(Q)});function V(N){return(Q)=>{let pt=N.sets.map((gt)=>{let dt=K[gt],ot=O[gt];if(!dt)dt={x:i/2,y:n/2,radius:1};if(!ot)ot={x:i/2,y:n/2,radius:1};return{x:dt.x*(1-Q)+ot.x*Q,y:dt.y*(1-Q)+ot.y*Q,radius:dt.radius*(1-Q)+ot.radius*Q}});return Gt(pt,w)}}let tt=J.selectAll(".venn-area").data(x,(N)=>N.sets),it=tt.enter().append("g").attr("class",(N)=>`venn-area venn-${N.sets.length==1?"circle":"intersection"}${N.colour||N.color?" venn-coloured":""}`).attr("data-venn-sets",(N)=>N.sets.join("_")),et=it.append("path"),ct=it.append("text").attr("class","label").text((N)=>st(N)).attr("text-anchor","middle").attr("dy",".35em").attr("x",i/2).attr("y",n/2);if(l)et.style("fill-opacity","0").filter((N)=>N.sets.length==1).style("fill",(N)=>N.colour?N.colour:N.color?N.color:v(N.sets)).style("fill-opacity",".25"),ct.style("fill",(N)=>{if(N.colour||N.color)return"#FFF";if(t.textFill)return t.textFill;return N.sets.length==1?v(N.sets):"#444"});function rt(N){if(typeof N.transition==="function")return N.transition("venn").duration(o);return N}let nt=k;if(Z&&typeof nt.transition==="function")nt=rt(k),nt.selectAll("path").attrTween("d",V);else nt.selectAll("path").attr("d",(N)=>Gt(N.sets.map((Q)=>O[Q])),w);let W=nt.selectAll("text").filter((N)=>(N.sets in X)).text((N)=>st(N)).attr("x",(N)=>Math.floor(X[N.sets].x)).attr("y",(N)=>Math.floor(X[N.sets].y));if(h)if(Z)if("on"in W)W.on("end",_t(O,st));else W.each("end",_t(O,st));else W.each(_t(O,st));let ht=rt(tt.exit()).remove();if(typeof tt.transition==="function")ht.selectAll("path").attrTween("d",V);let ft=ht.selectAll("text").attr("x",i/2).attr("y",n/2);if(M!==null)ct.style("font-size","0px"),W.style("font-size",M),ft.style("font-size","0px");return{circles:O,textCentres:X,nodes:tt,enter:it,update:nt,exit:ht}}return f.wrap=function(k){if(!arguments.length)return h;return h=k,f},f.useViewBox=function(){return s=!0,f},f.width=function(k){if(!arguments.length)return i;return i=k,f},f.height=function(k){if(!arguments.length)return n;return n=k,f},f.padding=function(k){if(!arguments.length)return r;return r=k,f},f.distinct=function(k){if(!arguments.length)return z;return z=k,f},f.colours=function(k){if(!arguments.length)return v;return v=k,f},f.colors=function(k){if(!arguments.length)return v;return v=k,f},f.fontSize=function(k){if(!arguments.length)return M;return M=k,f},f.round=function(k){if(!arguments.length)return w;return w=k,f},f.duration=function(k){if(!arguments.length)return o;return o=k,f},f.layoutFunction=function(k){if(!arguments.length)return _;return _=k,f},f.normalize=function(k){if(!arguments.length)return c;return c=k,f},f.scaleToFit=function(k){if(!arguments.length)return g;return g=k,f},f.styled=function(k){if(!arguments.length)return l;return l=k,f},f.orientation=function(k){if(!arguments.length)return a;return a=k,f},f.orientationOrder=function(k){if(!arguments.length)return y;return y=k,f},f.lossFunction=function(k){if(!arguments.length)return R;return R=k==="default"?bt:k==="logRatio"?Zt:k,f},f}function _t(t,s){return function(i){let n=this,r=t[i.sets[0]].radius||50,o=s(i)||"",a=o.split(/\s+/).reverse(),c=3,g=(o.length+a.length)/3,h=a.pop(),l=[h],M=0,y=1.1;n.textContent=null;let z=[];function w(v){let _=n.ownerDocument.createElementNS(n.namespaceURI,"tspan");return _.textContent=v,z.push(_),n.append(_),_}let j=w(h);while(!0){if(h=a.pop(),!h)break;l.push(h);let v=l.join(" ");if(j.textContent=v,v.length>g&&j.getComputedTextLength()>r)l.pop(),j.textContent=l.join(" "),l=[h],j=w(h),M++}let G=0.35-M*y/2,P=n.getAttribute("x"),F=n.getAttribute("y");z.forEach((v,_)=>{v.setAttribute("x",P),v.setAttribute("y",F),v.setAttribute("dy",`${G+_*y}em`)})}}function Et(t,s,i){let n=s[0].radius-at(s[0],t);for(let r=1;r<s.length;++r){let o=s[r].radius-at(s[r],t);if(o<=n)n=o}for(let r=0;r<i.length;++r){let o=at(i[r],t)-i[r].radius;if(o<=n)n=o}return n}function ne(t,s,i){let n=[];for(let l of t)n.push({x:l.x,y:l.y}),n.push({x:l.x+l.radius/2,y:l.y}),n.push({x:l.x-l.radius/2,y:l.y}),n.push({x:l.x,y:l.y+l.radius/2}),n.push({x:l.x,y:l.y-l.radius/2});let r=n[0],o=Et(n[0],t,s);for(let l=1;l<n.length;++l){let M=Et(n[l],t,s);if(M>=o)r=n[l],o=M}let a=Ht((l)=>-1*Et({x:l[0],y:l[1]},t,s),[r.x,r.y],{maxIterations:500,minErrorDelta:0.0000000001}).x,c={x:i?0:a[0],y:a[1]},g=!0;for(let l of t)if(at(c,l)>l.radius){g=!1;break}for(let l of s)if(at(c,l)<l.radius){g=!1;break}if(g)return c;if(t.length==1)return{x:t[0].x,y:t[0].y};let h={};if(It(t,h),h.arcs.length===0)return{x:0,y:-1000,disjoint:!0};if(h.arcs.length==1)return{x:h.arcs[0].circle.x,y:h.arcs[0].circle.y};if(s.length)return ne(t,[]);return Kt(h.arcs.map((l)=>l.p1))}function we(t){let s={},i=Object.keys(t);for(let n of i)s[n]=[];for(let n=0;n<i.length;n++){let r=i[n],o=t[r];for(let a=n+1;a<i.length;++a){let c=i[a],g=t[c],h=at(o,g);if(h+g.radius<=o.radius+0.0000000001)s[c].push(r);else if(h+o.radius<=g.radius+0.0000000001)s[r].push(c)}}return s}function se(t,s,i){let n={},r=we(t);for(let o=0;o<s.length;++o){let a=s[o].sets,c={},g={};for(let y=0;y<a.length;++y){c[a[y]]=!0;let z=r[a[y]];for(let w=0;w<z.length;++w)g[z[w]]=!0}let h=[],l=[];for(let y in t)if(y in c)h.push(t[y]);else if(!(y in g))l.push(t[y]);let M=ne(h,l,i);if(n[a]=M,M.disjoint&&s[o].size>0)console.log("WARNING: area "+a+" not represented on screen")}return n}function _e(t,s,i){let n=[];return n.push(`
2
+ M`,t,s),n.push(`
3
+ m`,-i,0),n.push(`
4
+ a`,i,i,0,1,0,i*2,0),n.push(`
5
+ a`,i,i,0,1,0,-i*2,0),n.join(" ")}function Ee(t){let s=t.split(" ");return{x:Number.parseFloat(s[1]),y:Number.parseFloat(s[2]),radius:-Number.parseFloat(s[4])}}function ie(t){if(t.length===0)return[];let s={};return It(t,s),s.arcs}function re(t,s){if(t.length===0)return"M 0 0";let i=Math.pow(10,s||0),n=s!=null?(o)=>Math.round(o*i)/i:(o)=>o;if(t.length==1){let o=t[0].circle;return _e(n(o.x),n(o.y),n(o.radius))}let r=[`
6
+ M`,n(t[0].p2.x),n(t[0].p2.y)];for(let o of t){let a=n(o.circle.radius);r.push(`
7
+ A`,a,a,0,o.large?1:0,o.sweep?1:0,n(o.p1.x),n(o.p1.y))}return r.join(" ")}function Gt(t,s){return re(ie(t),s)}function oe(t,s={}){let{lossFunction:i,layoutFunction:n=Yt,normalize:r=!0,orientation:o=Math.PI/2,orientationOrder:a,width:c=600,height:g=350,padding:h=15,scaleToFit:l=!1,symmetricalTextCentre:M=!1,distinct:y,round:z=2}=s,w=n(t,{lossFunction:i==="default"||!i?bt:i==="logRatio"?Zt:i,distinct:y});if(r)w=Jt(w,o,a);let j=Qt(w,c,g,h,l),G=se(j,t,M),P=new Map(Object.keys(j).map((_)=>[_,{set:_,x:j[_].x,y:j[_].y,radius:j[_].radius}])),F=t.map((_)=>{let R=_.sets.map((x)=>P.get(x)),f=ie(R),k=re(f,z);return{circles:R,arcs:f,path:k,area:_,has:new Set(_.sets)}});function v(_){let R="";for(let f of F)if(f.has.size>_.length&&_.every((k)=>f.has.has(k)))R+=" "+f.path;return R}return F.map(({circles:_,arcs:R,path:f,area:k})=>({data:k,text:G[k.sets],circles:_,arcs:R,path:f,distinctPath:f+v(k.sets)}))}var Ot=function(){var t=e(function(F,v,_,R){for(_=_||{},R=F.length;R--;_[F[R]]=v);return _},"o"),s=[5,8],i=[7,8,11,12,17,19,22,24],n=[1,17],r=[1,18],o=[7,8,11,12,14,15,16,17,19,20,21,22,24,27],a=[1,31],c=[1,39],g=[7,8,11,12,17,19,22,24,27],h=[1,57],l=[1,56],M=[1,58],y=[1,59],z=[1,60],w=[7,8,11,12,16,17,19,20,22,24,27,31,32,33],j={trace:e(function(){},"trace"),yy:{},symbols_:{error:2,start:3,optNewlines:4,VENN:5,document:6,EOF:7,NEWLINE:8,line:9,statement:10,TITLE:11,SET:12,identifier:13,BRACKET_LABEL:14,COLON:15,NUMERIC:16,UNION:17,identifierList:18,TEXT:19,IDENTIFIER:20,STRING:21,INDENT_TEXT:22,indentedTextTail:23,STYLE:24,stylesOpt:25,styleField:26,COMMA:27,styleValue:28,valueTokens:29,valueToken:30,HEXCOLOR:31,RGBCOLOR:32,RGBACOLOR:33,$accept:0,$end:1},terminals_:{2:"error",5:"VENN",7:"EOF",8:"NEWLINE",11:"TITLE",12:"SET",14:"BRACKET_LABEL",15:"COLON",16:"NUMERIC",17:"UNION",19:"TEXT",20:"IDENTIFIER",21:"STRING",22:"INDENT_TEXT",24:"STYLE",27:"COMMA",31:"HEXCOLOR",32:"RGBCOLOR",33:"RGBACOLOR"},productions_:[0,[3,4],[4,0],[4,2],[6,0],[6,2],[9,1],[9,1],[10,1],[10,2],[10,3],[10,4],[10,5],[10,2],[10,3],[10,4],[10,5],[10,3],[10,3],[10,3],[10,4],[10,4],[10,2],[10,3],[23,1],[23,1],[23,1],[23,2],[23,2],[25,1],[25,3],[26,3],[28,1],[28,1],[29,1],[29,2],[30,1],[30,1],[30,1],[30,1],[30,1],[18,1],[18,3],[13,1],[13,1]],performAction:e(function(v,_,R,f,k,x,H){var O=x.length-1;switch(k){case 1:return x[O-1];case 2:case 3:case 4:this.$=[];break;case 5:x[O-1].push(x[O]),this.$=x[O-1];break;case 6:this.$=[];break;case 7:case 22:case 32:case 36:case 37:case 38:case 39:case 40:this.$=x[O];break;case 8:f.setDiagramTitle(x[O].substr(6)),this.$=x[O].substr(6);break;case 9:if(f.addSubsetData([x[O]],void 0,void 0),f.setIndentMode)f.setIndentMode(!0);break;case 10:if(f.addSubsetData([x[O-1]],x[O],void 0),f.setIndentMode)f.setIndentMode(!0);break;case 11:if(f.addSubsetData([x[O-2]],void 0,parseFloat(x[O])),f.setIndentMode)f.setIndentMode(!0);break;case 12:if(f.addSubsetData([x[O-3]],x[O-2],parseFloat(x[O])),f.setIndentMode)f.setIndentMode(!0);break;case 13:if(x[O].length<2)throw Error("union requires multiple identifiers");if(f.validateUnionIdentifiers)f.validateUnionIdentifiers(x[O]);if(f.addSubsetData(x[O],void 0,void 0),f.setIndentMode)f.setIndentMode(!0);break;case 14:if(x[O-1].length<2)throw Error("union requires multiple identifiers");if(f.validateUnionIdentifiers)f.validateUnionIdentifiers(x[O-1]);if(f.addSubsetData(x[O-1],x[O],void 0),f.setIndentMode)f.setIndentMode(!0);break;case 15:if(x[O-2].length<2)throw Error("union requires multiple identifiers");if(f.validateUnionIdentifiers)f.validateUnionIdentifiers(x[O-2]);if(f.addSubsetData(x[O-2],void 0,parseFloat(x[O])),f.setIndentMode)f.setIndentMode(!0);break;case 16:if(x[O-3].length<2)throw Error("union requires multiple identifiers");if(f.validateUnionIdentifiers)f.validateUnionIdentifiers(x[O-3]);if(f.addSubsetData(x[O-3],x[O-2],parseFloat(x[O])),f.setIndentMode)f.setIndentMode(!0);break;case 17:case 18:case 19:f.addTextData(x[O-1],x[O],void 0);break;case 20:case 21:f.addTextData(x[O-2],x[O-1],x[O]);break;case 23:f.addStyleData(x[O-1],x[O]);break;case 24:case 25:case 26:var X=f.getCurrentSets();if(!X)throw Error("text requires set");f.addTextData(X,x[O],void 0);break;case 27:case 28:var X=f.getCurrentSets();if(!X)throw Error("text requires set");f.addTextData(X,x[O-1],x[O]);break;case 29:case 41:this.$=[x[O]];break;case 30:case 42:this.$=[...x[O-2],x[O]];break;case 31:this.$=[x[O-2],x[O]];break;case 33:this.$=x[O].join(" ");break;case 34:this.$=[x[O]];break;case 35:x[O-1].push(x[O]),this.$=x[O-1];break;case 43:case 44:this.$=x[O];break}},"anonymous"),table:[t(s,[2,2],{3:1,4:2}),{1:[3]},{5:[1,3],8:[1,4]},t(i,[2,4],{6:5}),t(s,[2,3]),{7:[1,6],8:[1,8],9:7,10:9,11:[1,10],12:[1,11],17:[1,12],19:[1,13],22:[1,14],24:[1,15]},{1:[2,1]},t(i,[2,5]),t(i,[2,6]),t(i,[2,7]),t(i,[2,8]),{13:16,20:n,21:r},{13:20,18:19,20:n,21:r},{13:20,18:21,20:n,21:r},{16:[1,25],20:[1,23],21:[1,24],23:22},{13:20,18:26,20:n,21:r},t(i,[2,9],{14:[1,27],15:[1,28]}),t(o,[2,43]),t(o,[2,44]),t(i,[2,13],{14:[1,29],15:[1,30],27:a}),t(o,[2,41]),{16:[1,34],20:[1,32],21:[1,33],27:a},t(i,[2,22]),t(i,[2,24],{14:[1,35]}),t(i,[2,25],{14:[1,36]}),t(i,[2,26]),{20:c,25:37,26:38,27:a},t(i,[2,10],{15:[1,40]}),{16:[1,41]},t(i,[2,14],{15:[1,42]}),{16:[1,43]},{13:44,20:n,21:r},t(i,[2,17],{14:[1,45]}),t(i,[2,18],{14:[1,46]}),t(i,[2,19]),t(i,[2,27]),t(i,[2,28]),t(i,[2,23],{27:[1,47]}),t(g,[2,29]),{15:[1,48]},{16:[1,49]},t(i,[2,11]),{16:[1,50]},t(i,[2,15]),t(o,[2,42]),t(i,[2,20]),t(i,[2,21]),{20:c,26:51},{16:h,20:l,21:[1,53],28:52,29:54,30:55,31:M,32:y,33:z},t(i,[2,12]),t(i,[2,16]),t(g,[2,30]),t(g,[2,31]),t(g,[2,32]),t(g,[2,33],{30:61,16:h,20:l,31:M,32:y,33:z}),t(w,[2,34]),t(w,[2,36]),t(w,[2,37]),t(w,[2,38]),t(w,[2,39]),t(w,[2,40]),t(w,[2,35])],defaultActions:{6:[2,1]},parseError:e(function(v,_){if(_.recoverable)this.trace(v);else{var R=Error(v);throw R.hash=_,R}},"parseError"),parse:e(function(v){var _=this,R=[0],f=[],k=[null],x=[],H=this.table,O="",X=0,lt=0,st=0,J=2,K=1,Z=x.slice.call(arguments,1),V=Object.create(this.lexer),tt={yy:{}};for(var it in this.yy)if(Object.prototype.hasOwnProperty.call(this.yy,it))tt.yy[it]=this.yy[it];if(V.setInput(v,tt.yy),tt.yy.lexer=V,tt.yy.parser=this,typeof V.yylloc>"u")V.yylloc={};var et=V.yylloc;x.push(et);var ct=V.options&&V.options.ranges;if(typeof tt.yy.parseError==="function")this.parseError=tt.yy.parseError;else this.parseError=Object.getPrototypeOf(this).parseError;function rt(ut){R.length=R.length-2*ut,k.length=k.length-ut,x.length=x.length-ut}e(rt,"popStack");function nt(){var ut=f.pop()||V.lex()||K;if(typeof ut!=="number"){if(ut instanceof Array)f=ut,ut=f.pop();ut=_.symbols_[ut]||ut}return ut}e(nt,"lex");var W,ht,ft,N,Q,pt,gt={},dt,ot,qt,kt;while(!0){if(ft=R[R.length-1],this.defaultActions[ft])N=this.defaultActions[ft];else{if(W===null||typeof W>"u")W=nt();N=H[ft]&&H[ft][W]}if(typeof N>"u"||!N.length||!N[0]){var St="";kt=[];for(dt in H[ft])if(this.terminals_[dt]&&dt>J)kt.push("'"+this.terminals_[dt]+"'");if(V.showPosition)St="Parse error on line "+(X+1)+`:
8
+ `+V.showPosition()+`
9
+ Expecting `+kt.join(", ")+", got '"+(this.terminals_[W]||W)+"'";else St="Parse error on line "+(X+1)+": Unexpected "+(W==K?"end of input":"'"+(this.terminals_[W]||W)+"'");this.parseError(St,{text:V.match,token:this.terminals_[W]||W,line:V.yylineno,loc:et,expected:kt})}if(N[0]instanceof Array&&N.length>1)throw Error("Parse Error: multiple actions possible at state: "+ft+", token: "+W);switch(N[0]){case 1:if(R.push(W),k.push(V.yytext),x.push(V.yylloc),R.push(N[1]),W=null,!ht){if(lt=V.yyleng,O=V.yytext,X=V.yylineno,et=V.yylloc,st>0)st--}else W=ht,ht=null;break;case 2:if(ot=this.productions_[N[1]][1],gt.$=k[k.length-ot],gt._$={first_line:x[x.length-(ot||1)].first_line,last_line:x[x.length-1].last_line,first_column:x[x.length-(ot||1)].first_column,last_column:x[x.length-1].last_column},ct)gt._$.range=[x[x.length-(ot||1)].range[0],x[x.length-1].range[1]];if(pt=this.performAction.apply(gt,[O,lt,X,tt.yy,N[1],k,x].concat(Z)),typeof pt<"u")return pt;if(ot)R=R.slice(0,-1*ot*2),k=k.slice(0,-1*ot),x=x.slice(0,-1*ot);R.push(this.productions_[N[1]][0]),k.push(gt.$),x.push(gt._$),qt=H[R[R.length-2]][R[R.length-1]],R.push(qt);break;case 3:return!0}}return!0},"parse")},G=function(){var F={EOF:1,parseError:e(function(_,R){if(this.yy.parser)this.yy.parser.parseError(_,R);else throw Error(_)},"parseError"),setInput:e(function(v,_){if(this.yy=_||this.yy||{},this._input=v,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges)this.yylloc.range=[0,0];return this.offset=0,this},"setInput"),input:e(function(){var v=this._input[0];this.yytext+=v,this.yyleng++,this.offset++,this.match+=v,this.matched+=v;var _=v.match(/(?:\r\n?|\n).*/g);if(_)this.yylineno++,this.yylloc.last_line++;else this.yylloc.last_column++;if(this.options.ranges)this.yylloc.range[1]++;return this._input=this._input.slice(1),v},"input"),unput:e(function(v){var _=v.length,R=v.split(/(?:\r\n?|\n)/g);this._input=v+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-_),this.offset-=_;var f=this.match.split(/(?:\r\n?|\n)/g);if(this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),R.length-1)this.yylineno-=R.length-1;var k=this.yylloc.range;if(this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:R?(R.length===f.length?this.yylloc.first_column:0)+f[f.length-R.length].length-R[0].length:this.yylloc.first_column-_},this.options.ranges)this.yylloc.range=[k[0],k[0]+this.yyleng-_];return this.yyleng=this.yytext.length,this},"unput"),more:e(function(){return this._more=!0,this},"more"),reject:e(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
10
+ `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:e(function(v){this.unput(this.match.slice(v))},"less"),pastInput:e(function(){var v=this.matched.substr(0,this.matched.length-this.match.length);return(v.length>20?"...":"")+v.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:e(function(){var v=this.match;if(v.length<20)v+=this._input.substr(0,20-v.length);return(v.substr(0,20)+(v.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:e(function(){var v=this.pastInput(),_=Array(v.length+1).join("-");return v+this.upcomingInput()+`
11
+ `+_+"^"},"showPosition"),test_match:e(function(v,_){var R,f,k;if(this.options.backtrack_lexer){if(k={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges)k.yylloc.range=this.yylloc.range.slice(0)}if(f=v[0].match(/(?:\r\n?|\n).*/g),f)this.yylineno+=f.length;if(this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:f?f[f.length-1].length-f[f.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+v[0].length},this.yytext+=v[0],this.match+=v[0],this.matches=v,this.yyleng=this.yytext.length,this.options.ranges)this.yylloc.range=[this.offset,this.offset+=this.yyleng];if(this._more=!1,this._backtrack=!1,this._input=this._input.slice(v[0].length),this.matched+=v[0],R=this.performAction.call(this,this.yy,this,_,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input)this.done=!1;if(R)return R;else if(this._backtrack){for(var x in k)this[x]=k[x];return!1}return!1},"test_match"),next:e(function(){if(this.done)return this.EOF;if(!this._input)this.done=!0;var v,_,R,f;if(!this._more)this.yytext="",this.match="";var k=this._currentRules();for(var x=0;x<k.length;x++)if(R=this._input.match(this.rules[k[x]]),R&&(!_||R[0].length>_[0].length)){if(_=R,f=x,this.options.backtrack_lexer)if(v=this.test_match(R,k[x]),v!==!1)return v;else if(this._backtrack){_=!1;continue}else return!1;else if(!this.options.flex)break}if(_){if(v=this.test_match(_,k[f]),v!==!1)return v;return!1}if(this._input==="")return this.EOF;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
12
+ `+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:e(function(){var _=this.next();if(_)return _;else return this.lex()},"lex"),begin:e(function(_){this.conditionStack.push(_)},"begin"),popState:e(function(){var _=this.conditionStack.length-1;if(_>0)return this.conditionStack.pop();else return this.conditionStack[0]},"popState"),_currentRules:e(function(){if(this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1])return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules;else return this.conditions.INITIAL.rules},"_currentRules"),topState:e(function(_){if(_=this.conditionStack.length-1-Math.abs(_||0),_>=0)return this.conditionStack[_];else return"INITIAL"},"topState"),pushState:e(function(_){this.begin(_)},"pushState"),stateStackSize:e(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:e(function(_,R,f,k){var x=k;switch(f){case 0:break;case 1:break;case 2:break;case 3:if(_.getIndentMode&&_.getIndentMode())return _.consumeIndentText=!0,this.begin("INITIAL"),22;break;case 4:break;case 5:if(_.setIndentMode)_.setIndentMode(!1);this.begin("INITIAL"),this.unput(R.yytext);break;case 6:return this.begin("bol"),8;break;case 7:break;case 8:break;case 9:return 7;case 10:return 11;case 11:return 5;case 12:return 12;case 13:return 17;case 14:if(_.consumeIndentText)_.consumeIndentText=!1;else return 19;break;case 15:return 24;case 16:return R.yytext=R.yytext.slice(2,-2),14;break;case 17:return R.yytext=R.yytext.slice(1,-1).trim(),14;break;case 18:return 16;case 19:return 31;case 20:return 33;case 21:return 32;case 22:return 20;case 23:return 21;case 24:return 27;case 25:return 15}},"anonymous"),rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[ \t]+(?=[\n\r]))/i,/^(?:[ \t]+(?=text\b))/i,/^(?:[ \t]+)/i,/^(?:[^ \t\n\r])/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:[ \t]+)/i,/^(?:$)/i,/^(?:title\s[^#\n;]+)/i,/^(?:venn-beta\b)/i,/^(?:set\b)/i,/^(?:union\b)/i,/^(?:text\b)/i,/^(?:style\b)/i,/^(?:\["[^\"]*"\])/i,/^(?:\[[^\]\"]+\])/i,/^(?:[+-]?(\d+(\.\d+)?|\.\d+))/i,/^(?:#[0-9a-fA-F]{3,8})/i,/^(?:rgba\(\s*[0-9.]+\s*[,]\s*[0-9.]+\s*[,]\s*[0-9.]+\s*[,]\s*[0-9.]+\s*\))/i,/^(?:rgb\(\s*[0-9.]+\s*[,]\s*[0-9.]+\s*[,]\s*[0-9.]+\s*\))/i,/^(?:[A-Za-z_][A-Za-z0-9\-_]*)/i,/^(?:"[^\"]*")/i,/^(?:,)/i,/^(?::)/i],conditions:{bol:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25],inclusive:!0},INITIAL:{rules:[0,1,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25],inclusive:!0}}};return F}();j.lexer=G;function P(){this.yy={}}return e(P,"Parser"),P.prototype=j,j.Parser=P,new P}();Ot.parser=Ot;var ze=Ot,Lt=[],jt=[],Ft=[],Pt=new Set,Vt,Bt=!1,Ae=e((t,s,i)=>{let n=Mt(t).sort(),r=i??10/Math.pow(t.length,2);if(Vt=n,n.length===1)Pt.add(n[0]);Lt.push({sets:n,size:r,label:s?vt(s):void 0})},"addSubsetData"),Ce=e(()=>Lt,"getSubsetData"),vt=e((t)=>{let s=t.trim();if(s.length>=2&&s.startsWith('"')&&s.endsWith('"'))return s.slice(1,-1);return s},"normalizeText"),De=e((t)=>t?vt(t):t,"normalizeStyleValue"),Re=e((t,s,i)=>{let n=vt(s);jt.push({sets:Mt(t).sort(),id:n,label:i?vt(i):void 0})},"addTextData"),Ne=e((t,s)=>{let i=Mt(t).sort(),n={};for(let[r,o]of s)n[r]=De(o)??o;Ft.push({targets:i,styles:n})},"addStyleData"),Oe=e(()=>Ft,"getStyleData"),Mt=e((t)=>t.map((s)=>vt(s)),"normalizeIdentifierList"),Le=e((t)=>{let i=Mt(t).filter((n)=>!Pt.has(n));if(i.length>0)throw Error(`unknown set identifier: ${i.join(", ")}`)},"validateUnionIdentifiers"),je=e(()=>jt,"getTextData"),Fe=e(()=>Vt,"getCurrentSets"),Pe=e(()=>Bt,"getIndentMode"),Ve=e((t)=>{Bt=t},"setIndentMode"),Be=D.venn;function ae(){return U(Be,b().venn)}e(ae,"getConfig");var qe=e(()=>{C(),Lt.length=0,jt.length=0,Ft.length=0,Pt.clear(),Vt=void 0,Bt=!1},"customClear"),Ue={getConfig:ae,clear:qe,setAccTitle:S,getAccTitle:E,setDiagramTitle:I,getDiagramTitle:L,getAccDescription:A,setAccDescription:T,addSubsetData:Ae,getSubsetData:Ce,addTextData:Re,addStyleData:Ne,validateUnionIdentifiers:Le,getTextData:je,getStyleData:Oe,getCurrentSets:Fe,getIndentMode:Pe,setIndentMode:Ve},Ge=e((t)=>`
13
+ .venn-title {
14
+ font-size: 32px;
15
+ fill: ${t.vennTitleTextColor};
16
+ font-family: ${t.fontFamily};
17
+ }
18
+
19
+ .venn-circle text {
20
+ font-size: 48px;
21
+ font-family: ${t.fontFamily};
22
+ }
23
+
24
+ .venn-intersection text {
25
+ font-size: 48px;
26
+ fill: ${t.vennSetTextColor};
27
+ font-family: ${t.fontFamily};
28
+ }
29
+
30
+ .venn-text-node {
31
+ font-family: ${t.fontFamily};
32
+ color: ${t.vennSetTextColor};
33
+ }
34
+ `,"getStyles"),We=Ge;function le(t){let s=new Map;for(let i of t){let n=i.targets.join("|"),r=s.get(n);if(r)Object.assign(r,i.styles);else s.set(n,{...i.styles})}return s}e(le,"buildStyleByKey");var Ke=e((t,s,i,n)=>{let r=n.db,o=r.getConfig?.(),{themeVariables:a,look:c,handDrawnSeed:g}=b(),h=c==="handDrawn",l=[a.venn1,a.venn2,a.venn3,a.venn4,a.venn5,a.venn6,a.venn7,a.venn8].filter(Boolean),M=r.getDiagramTitle?.(),y=r.getSubsetData(),z=r.getTextData(),w=le(r.getStyleData()),j=ue(y),G=o?.width??800,P=o?.height??450,F=1600,v=G/1600,_=M?48*v:0,R=a.primaryTextColor??a.textColor,f=q(s);if(f.attr("viewBox",`0 0 ${G} ${P}`),M)f.append("text").text(M).attr("class","venn-title").attr("font-size",`${32*v}px`).attr("text-anchor","middle").attr("dominant-baseline","middle").attr("x","50%").attr("y",32*v).style("fill",a.vennTitleTextColor||a.titleColor);let k=p(document.createElement("div")),x=ee().width(G).height(P-_);k.datum(j).call(x);let H=h?m.svg(k.select("svg").node()):void 0,O=oe(j,{width:G,height:P-_,padding:o?.padding??15}),X=new Map;for(let K of O){let Z=yt([...K.data.sets].sort());X.set(Z,K)}if(z.length>0)ce(o,X,k,z,v,w);let lt=Y(a.background||"#f4f4f4");if(k.selectAll(".venn-circle").each(function(K,Z){let V=p(this),it=yt([...K.sets].sort()),et=w.get(it),ct=l.length>0?l[Z%l.length]:void 0,rt=et?.fill||ct||a.primaryColor;V.classed(`venn-set-${Z%8}`,!0);let nt=et?.["fill-opacity"]??0.1,W=et?.stroke||rt,ht=et?.["stroke-width"]||`${5*v}`;if(h&&H){let N=X.get(it);if(N&&N.circles.length>0){let Q=N.circles[0],pt=H.circle(Q.x,Q.y,Q.radius*2,{roughness:0.7,seed:g,fill:wt(rt,0.7),fillStyle:"hachure",fillWeight:2,hachureGap:8,hachureAngle:-41+Z*60,stroke:W,strokeWidth:parseFloat(String(ht))});V.select("path").remove(),V.node()?.insertBefore(pt,V.select("text").node())}}else V.select("path").style("fill",rt).style("fill-opacity",nt).style("stroke",W).style("stroke-width",ht).style("stroke-opacity",0.95);let ft=et?.color||(lt?u(rt,30):d(rt,30));V.select("text").style("font-size",`${48*v}px`).style("fill",ft)}),h&&H)k.selectAll(".venn-intersection").each(function(K){let Z=p(this),tt=yt([...K.sets].sort()),it=w.get(tt),et=it?.fill;if(et){let ct=Z.select("path"),rt=ct.attr("d");if(rt){let nt=H.path(rt,{roughness:0.7,seed:g,fill:wt(et,0.3),fillStyle:"cross-hatch",fillWeight:2,hachureGap:6,hachureAngle:60,stroke:"none"}),W=ct.node();W?.parentNode?.insertBefore(nt,W),ct.remove()}}else Z.select("path").style("fill-opacity",0);Z.select("text").style("font-size",`${48*v}px`).style("fill",it?.color??a.vennSetTextColor??R)});else k.selectAll(".venn-intersection text").style("font-size",`${48*v}px`).style("fill",(K)=>{let V=yt([...K.sets].sort());return w.get(V)?.color??a.vennSetTextColor??R}),k.selectAll(".venn-intersection path").style("fill-opacity",(K)=>{let V=yt([...K.sets].sort());return w.get(V)?.fill?1:0}).style("fill",(K)=>{let V=yt([...K.sets].sort());return w.get(V)?.fill??"transparent"});let st=f.append("g").attr("transform",`translate(0, ${_})`),J=k.select("svg").node();if(J&&"childNodes"in J)for(let K of[...J.childNodes])st.node()?.appendChild(K);B(f,P,G,o?.useMaxWidth??!0)},"draw");function yt(t){return t.join("|")}e(yt,"stableSetsKey");function ce(t,s,i,n,r,o){let a=t?.useDebugLayout??!1,g=i.select("svg").append("g").attr("class","venn-text-nodes"),h=new Map;for(let l of n){let M=yt(l.sets),y=h.get(M);if(y)y.push(l);else h.set(M,[l])}for(let[l,M]of h.entries()){let y=s.get(l);if(!y?.text)continue;let z=y.text.x,w=y.text.y,j=Math.min(...y.circles.map((J)=>J.radius)),G=Math.min(...y.circles.map((J)=>J.radius-Math.hypot(z-J.x,w-J.y))),P=Number.isFinite(G)?Math.max(0,G):0;if(P===0&&Number.isFinite(j))P=j*0.6;let F=g.append("g").attr("class","venn-text-area").attr("font-size",`${40*r}px`);if(a)F.append("circle").attr("class","venn-text-debug-circle").attr("cx",z).attr("cy",w).attr("r",P).attr("fill","none").attr("stroke","purple").attr("stroke-width",1.5*r).attr("stroke-dasharray",`${6*r} ${4*r}`);let v=Math.max(80*r,P*2*0.95),_=Math.max(60*r,P*2*0.95),k=(y.data.label&&y.data.label.length>0?Math.min(32*r,P*0.25):0)+(M.length<=2?30*r:0),x=z-v/2,H=w-_/2+k,O=Math.max(1,Math.ceil(Math.sqrt(M.length))),X=Math.max(1,Math.ceil(M.length/O)),lt=v/O,st=_/X;for(let[J,K]of M.entries()){let Z=J%O,V=Math.floor(J/O),tt=x+lt*(Z+0.5),it=H+st*(V+0.5);if(a)F.append("rect").attr("class","venn-text-debug-cell").attr("x",x+lt*Z).attr("y",H+st*V).attr("width",lt).attr("height",st).attr("fill","none").attr("stroke","teal").attr("stroke-width",1*r).attr("stroke-dasharray",`${4*r} ${3*r}`);let et=lt*0.9,ct=st*0.9,rt=F.append("foreignObject").attr("class","venn-text-node-fo").attr("width",et).attr("height",ct).attr("x",tt-et/2).attr("y",it-ct/2).attr("overflow","visible"),nt=o.get(K.id)?.color,W=rt.append("xhtml:span").attr("class","venn-text-node").style("display","flex").style("width","100%").style("height","100%").style("white-space","normal").style("align-items","center").style("justify-content","center").style("text-align","center").style("overflow-wrap","normal").style("word-break","normal").text(K.label??K.id);if(nt)W.style("color",nt)}}}e(ce,"renderTextNodes");function ue(t){let s=new Set(t.map((r)=>[...r.sets].sort().join("|"))),i=new Map(t.filter((r)=>r.sets.length===1&&r.size!==void 0).map((r)=>[r.sets[0],r.size])),n=[];for(let r of t){if(r.sets.length<3)continue;let o=[...r.sets].sort();for(let a=0;a<o.length-1;a++)for(let c=a+1;c<o.length;c++){let g=[o[a],o[c]],h=g.join("|");if(!s.has(h)){s.add(h);let l=i.get(g[0]),M=i.get(g[1]),y=l!==void 0&&M!==void 0?Math.min(l,M)/4:2.5;n.push({sets:g,size:y,label:""})}}}return n.length>0?[...t,...n]:t}e(ue,"ensurePairwiseSubsets");var He={draw:Ke},rn={parser:ze,db:Ue,renderer:He,styles:We};export{rn as diagram};