@bkm016/basalt 0.1.3 → 0.1.5

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 (287) hide show
  1. package/README.md +53 -5
  2. package/{chunk-y648fzx0.js → chunk-0039s4jt.js} +3 -3
  3. package/{chunk-m40gxwq4.js → chunk-00gwse5r.js} +3 -3
  4. package/{chunk-t6zs4kw0.js → chunk-0fwdxd45.js} +2 -2
  5. package/{chunk-6hssbcgj.js → chunk-0j0qggej.js} +1 -1
  6. package/chunk-0n99m9m4.js +2 -0
  7. package/{chunk-d8gtbw9g.js → chunk-0stvywr8.js} +1 -1
  8. package/{chunk-ztsjgssj.js → chunk-1xa7d5mh.js} +1 -1
  9. package/chunk-2nb3d92s.js +2 -0
  10. package/chunk-2nkfxhef.js +3868 -0
  11. package/chunk-2pa1z37c.js +2 -0
  12. package/{chunk-fw2bpqmw.js → chunk-2qcpq99g.js} +1 -1
  13. package/{chunk-981f9dw8.js → chunk-36cqq0ga.js} +6 -6
  14. package/{chunk-3cjsd292.js → chunk-3c330qna.js} +2 -2
  15. package/chunk-3k627vf2.js +3 -0
  16. package/{chunk-r7fpkb49.js → chunk-3k7ejpkc.js} +1 -1
  17. package/chunk-4g5f43ea.js +3 -0
  18. package/{chunk-fjtvjrkg.js → chunk-539ekagy.js} +4 -4
  19. package/{chunk-97rzj7f6.js → chunk-5v4g21rw.js} +1 -1
  20. package/{chunk-aefadsy6.js → chunk-6dsq0fns.js} +2 -2
  21. package/{chunk-pbcy6zdt.js → chunk-7as47pcw.js} +1 -1
  22. package/{chunk-g2t6t8fk.js → chunk-7jezts2n.js} +2 -2
  23. package/{chunk-8tjad3r0.js → chunk-7qq99360.js} +6 -6
  24. package/{chunk-gp7y0fja.js → chunk-7tgqhveh.js} +15 -15
  25. package/{chunk-mvfsxdx6.js → chunk-7w0mefgk.js} +10 -10
  26. package/{chunk-y58ygzn9.js → chunk-818nd6s1.js} +3 -3
  27. package/{chunk-vv7fp27r.js → chunk-8mezk0cb.js} +2 -2
  28. package/{chunk-rtzqqngy.js → chunk-8xb636vr.js} +5 -5
  29. package/{chunk-2esbgxps.js → chunk-980drajf.js} +15 -15
  30. package/{chunk-c7x1zq39.js → chunk-9z7sdh5e.js} +3 -3
  31. package/{chunk-10xzzn07.js → chunk-a4b75ekk.js} +2 -2
  32. package/{chunk-5j1krv9v.js → chunk-ar3dbfp9.js} +1 -1
  33. package/{chunk-vk1gxk1t.js → chunk-aw65h276.js} +1 -1
  34. package/{chunk-75m78j7x.js → chunk-b9fqretv.js} +2 -2
  35. package/{chunk-y0m980k3.js → chunk-bgkegf0k.js} +22 -22
  36. package/{chunk-0y7ne3d0.js → chunk-bwawt15q.js} +2 -2
  37. package/{chunk-pxsrqrd0.js → chunk-c4qr1f41.js} +2 -2
  38. package/chunk-dddsrff6.js +478 -0
  39. package/{chunk-xfvvh1s5.js → chunk-e63c1186.js} +1 -1
  40. package/{chunk-8296hw9m.js → chunk-ebzkckyw.js} +2 -2
  41. package/chunk-eegztdzb.js +2 -0
  42. package/{chunk-hwr56pfj.js → chunk-gw05p4g3.js} +1 -1
  43. package/{chunk-k23t7vhs.js → chunk-h1rypb99.js} +5 -5
  44. package/{chunk-nbb9trwz.js → chunk-hq5ke1yp.js} +2 -2
  45. package/{chunk-jwdb0ccj.js → chunk-jvwg4rn1.js} +3 -3
  46. package/{chunk-fm0k0qtz.js → chunk-jyrwk08p.js} +2 -2
  47. package/chunk-kns4kv7b.js +3 -0
  48. package/{chunk-8d46jtbj.js → chunk-mat08ab1.js} +2 -2
  49. package/{chunk-bannb9xm.js → chunk-mkp28k1x.js} +2 -2
  50. package/{chunk-d2j735sd.js → chunk-npez1492.js} +2 -2
  51. package/{chunk-shadcb9z.js → chunk-nx3jnbv8.js} +2 -2
  52. package/{chunk-ykens1hy.js → chunk-nxkmd29x.js} +1 -1
  53. package/{chunk-y7nma9rk.js → chunk-pjr91g6k.js} +2 -2
  54. package/{chunk-m8vkwdgr.js → chunk-r0jc8e7t.js} +4 -4
  55. package/chunk-rxj6tct8.js +2 -0
  56. package/{chunk-362g64pd.js → chunk-sqaam5ak.js} +1 -1
  57. package/{chunk-gzxnene8.js → chunk-srjgvdvs.js} +12 -12
  58. package/{chunk-r9aatvwm.js → chunk-stj493dn.js} +2 -2
  59. package/{chunk-k6w6y71k.js → chunk-t7sc0wwc.js} +2 -2
  60. package/{chunk-27gntzs5.js → chunk-v4k3qmdm.js} +2 -2
  61. package/{chunk-x1xss1d7.js → chunk-vt1anydc.js} +4 -4
  62. package/chunk-wd3z74av.js +2 -0
  63. package/{chunk-z55bmysw.js → chunk-wfyrfvfn.js} +1 -1
  64. package/{chunk-v9fea96h.js → chunk-wnzvnskb.js} +2 -2
  65. package/{chunk-cjc90f84.js → chunk-x89em726.js} +3 -3
  66. package/{chunk-1qpces5a.js → chunk-xtq1xpq0.js} +2 -2
  67. package/chunk-yna8bwqc.js +2 -0
  68. package/{chunk-k506w58v.js → chunk-zn0g0859.js} +2 -2
  69. package/{chunk-qe0teyn1.js → chunk-zrkh5dw7.js} +1 -1
  70. package/chunk-zzwjt7fp.js +2 -0
  71. package/compiled.js +12 -12
  72. package/package.json +1 -1
  73. package/ui-test-worker.js +20 -20
  74. package/web/chunk-01hcjafh.js +2 -0
  75. package/web/{chunk-n8sky2q6.js → chunk-07agqp8h.js} +1 -1
  76. package/web/{chunk-tx8240k4.js → chunk-0k9aec1s.js} +20 -20
  77. package/web/{chunk-74j07k8k.js → chunk-0p1nmj5n.js} +2 -2
  78. package/web/chunk-0qr891eq.js +70 -0
  79. package/web/{chunk-ts7zrf5b.js → chunk-0whceqes.js} +2 -2
  80. package/web/chunk-0ytga215.js +1 -0
  81. package/web/{chunk-h288yd5w.js → chunk-12z7d0hp.js} +3 -3
  82. package/web/chunk-14bad871.js +2 -0
  83. package/web/chunk-1amzv4ha.js +1 -0
  84. package/web/chunk-1cfh0e2e.js +324 -0
  85. package/web/chunk-1pasbxwh.js +89 -0
  86. package/web/{chunk-j0bwwc1g.js → chunk-1s2hp6h1.js} +1 -1
  87. package/web/chunk-26bwh1sb.js +169 -0
  88. package/web/{chunk-b0a8nbj0.js → chunk-2nht58dc.js} +5 -5
  89. package/web/chunk-2y0rc1fe.js +1 -0
  90. package/web/chunk-3hkgdw6f.js +36 -0
  91. package/web/chunk-4a4j030b.js +1 -0
  92. package/web/{chunk-4fzj0azw.js → chunk-4m3zdd41.js} +6 -6
  93. package/web/chunk-4w298aqs.js +1 -0
  94. package/web/{chunk-2hd1pe9w.js → chunk-56krfj3b.js} +7 -7
  95. package/web/{chunk-ds7srg4p.js → chunk-5nda24gv.js} +1 -1
  96. package/web/{chunk-5hmfk69r.js → chunk-5shygfgb.js} +19 -19
  97. package/web/chunk-65nwc4cf.js +1 -0
  98. package/web/chunk-6bwgdvf6.js +1 -0
  99. package/web/chunk-6enn8p66.js +1 -0
  100. package/web/chunk-6stt9d18.js +1 -0
  101. package/web/{chunk-4gavbw65.js → chunk-7a3c137d.js} +1 -1
  102. package/web/chunk-7e47b1sn.js +1 -0
  103. package/web/chunk-7pypx5h8.js +2 -0
  104. package/web/chunk-7znyd1mj.js +39 -0
  105. package/web/{chunk-0z0jycs8.js → chunk-892nf39p.js} +7 -7
  106. package/web/chunk-8r0s8tx7.js +1 -0
  107. package/web/chunk-9dy7z3ej.js +2 -0
  108. package/web/chunk-9mq2cdtq.js +1 -0
  109. package/web/chunk-9w5tf22s.js +1 -0
  110. package/web/{chunk-es28k2t7.js → chunk-9xgspn75.js} +2 -2
  111. package/web/{chunk-0xc2c540.js → chunk-abhad4zj.js} +56 -56
  112. package/web/chunk-advfpyb9.js +140 -0
  113. package/web/chunk-affear07.js +3 -0
  114. package/web/chunk-ahztazsg.js +1 -0
  115. package/web/chunk-aqt7kc3s.js +106 -0
  116. package/web/chunk-b5hah4mf.js +1 -0
  117. package/web/chunk-b8tfetd8.js +1 -0
  118. package/web/{chunk-7yc083xj.js → chunk-bnb9xhgw.js} +15 -15
  119. package/web/{chunk-n1dmrz44.js → chunk-c01176kn.js} +2 -2
  120. package/web/chunk-c3nn0vvc.js +1 -0
  121. package/web/chunk-c53xmf48.js +30 -0
  122. package/web/chunk-ckgpy4r4.js +1 -0
  123. package/web/chunk-crzseqbx.js +24 -0
  124. package/web/chunk-d22wq71s.js +1 -0
  125. package/web/{chunk-97b62pvb.js → chunk-d60dpf69.js} +19 -19
  126. package/web/{chunk-sn9ecfvy.js → chunk-d6ddkh6e.js} +1 -1
  127. package/web/{chunk-cg3jterp.js → chunk-d9wdsjkk.js} +2 -2
  128. package/web/{chunk-ttg6tbwx.js → chunk-da7m1kva.js} +2 -2
  129. package/web/chunk-dbnrfxt1.js +8 -0
  130. package/web/chunk-ddxf8e84.js +1 -0
  131. package/web/chunk-dzg1pv80.js +200 -0
  132. package/web/{chunk-xnq41dgs.js → chunk-e8h45nyr.js} +1 -1
  133. package/web/chunk-ej9vb61c.js +1 -0
  134. package/web/chunk-f9k3xrwb.js +2 -0
  135. package/web/{chunk-7xk0ntav.js → chunk-fjag6yg8.js} +2 -2
  136. package/web/chunk-fnnrrzqa.js +78 -0
  137. package/web/{chunk-n90cqdvg.js → chunk-fv6vm14n.js} +2 -2
  138. package/web/{chunk-axkyft9f.js → chunk-g5jxwkdh.js} +1 -1
  139. package/web/{chunk-ep37qp12.js → chunk-g8kkc6vz.js} +1 -1
  140. package/web/chunk-g9sqbafw.js +2 -0
  141. package/web/{chunk-g46f421r.js → chunk-gcv91974.js} +4 -4
  142. package/web/{chunk-7qxhk1kz.js → chunk-gxqaa4sv.js} +7 -7
  143. package/web/chunk-gxsb5tx3.js +1 -0
  144. package/web/{chunk-54thej0t.js → chunk-gyp6v7jd.js} +2 -2
  145. package/web/chunk-h0c42zy3.js +1 -0
  146. package/web/chunk-h2ag4kvz.js +2 -0
  147. package/web/{chunk-eqsd8zta.js → chunk-h6gh63xj.js} +2 -2
  148. package/web/{chunk-6m69hczt.js → chunk-h6k1x096.js} +2 -2
  149. package/web/{chunk-24mfx6w1.js → chunk-j1bw5v1g.js} +2 -2
  150. package/web/chunk-j34q5jn6.js +1 -0
  151. package/web/{chunk-0pbjgdgp.js → chunk-ja7w629n.js} +2 -2
  152. package/web/{chunk-zbj1trar.js → chunk-jam45rqg.js} +2 -2
  153. package/web/{chunk-23c1df7e.js → chunk-jcdw85mv.js} +1 -1
  154. package/web/chunk-jfvxxp5c.js +1 -0
  155. package/web/chunk-jg6fmz2d.js +1 -0
  156. package/web/{chunk-90xqeczk.js → chunk-k67v6dyg.js} +40 -40
  157. package/web/chunk-ka7c5rhx.js +99 -0
  158. package/web/{chunk-acybsx44.js → chunk-kza0t0gj.js} +1 -1
  159. package/web/{chunk-7520nrbb.js → chunk-m8knte9z.js} +1 -1
  160. package/web/{chunk-v5cnt7c8.js → chunk-mnzramhc.js} +1 -1
  161. package/web/{chunk-7v5rxabp.js → chunk-mpfgr049.js} +1 -1
  162. package/web/chunk-mz1dabxh.js +1 -0
  163. package/web/chunk-mz9b5bsa.js +1 -0
  164. package/web/chunk-p53n0hwr.js +1 -0
  165. package/web/chunk-paywgcf7.js +40 -0
  166. package/web/chunk-pfcnr9tw.js +1 -0
  167. package/web/chunk-pyg1mr80.js +303 -0
  168. package/web/chunk-q7xkscc5.js +1 -0
  169. package/web/{chunk-xzp7jf7e.js → chunk-qcge7d6s.js} +2 -2
  170. package/web/chunk-qmbgb79a.js +1139 -0
  171. package/web/{chunk-5b2nw6j1.js → chunk-qq5gh5zr.js} +1 -1
  172. package/web/chunk-qrdh9j62.js +1 -0
  173. package/web/{chunk-w7snhcyg.js → chunk-s24qs1bn.js} +9 -9
  174. package/web/chunk-sd22cnjy.js +1 -0
  175. package/web/{chunk-ydtrc1ay.js → chunk-sd3cdqcm.js} +2 -2
  176. package/web/{chunk-rykfak98.js → chunk-sf101c23.js} +2 -2
  177. package/web/{chunk-p9hsd3rn.js → chunk-sfq6cw45.js} +2 -2
  178. package/web/chunk-svqj4az8.js +1 -0
  179. package/web/chunk-t7jwyvvr.js +1 -0
  180. package/web/{chunk-47q4hmfp.js → chunk-tcp77cp2.js} +2 -2
  181. package/web/chunk-tf18d2dk.css +1 -0
  182. package/web/chunk-thbqwq6b.js +1 -0
  183. package/web/chunk-v0g4cqc1.js +4 -0
  184. package/web/chunk-vhzys0rr.js +292 -0
  185. package/web/chunk-vnt34mkb.js +1 -0
  186. package/web/chunk-vqfz99ff.js +1 -0
  187. package/web/chunk-vttgyb5v.js +2 -0
  188. package/web/chunk-x7sb3bwf.js +370 -0
  189. package/web/chunk-xce8n339.js +1 -0
  190. package/web/{chunk-mb4qx9hy.js → chunk-xk1t58c4.js} +12 -12
  191. package/web/chunk-xsrvw7dt.js +4 -0
  192. package/web/chunk-xtss82z2.js +1 -0
  193. package/web/{chunk-2j4m0bh1.js → chunk-y7jq61nv.js} +2 -2
  194. package/web/{chunk-7ba8vrfc.js → chunk-ybw6vgf6.js} +2 -2
  195. package/web/{chunk-24h1rfje.js → chunk-yvgs6bm3.js} +4 -4
  196. package/web/{chunk-sb1cjpq8.js → chunk-z4aj066q.js} +1 -1
  197. package/web/chunk-zazs8p6c.js +1 -0
  198. package/web/{chunk-n8gfjj9a.js → chunk-zc1mk10n.js} +19 -19
  199. package/web/{chunk-5qqw2e0t.js → chunk-zqht0jzx.js} +6 -6
  200. package/web/{chunk-mwj9tpkz.js → chunk-zz397b0v.js} +12 -12
  201. package/web/index.html +1 -1
  202. package/worker.js +1 -1
  203. package/chunk-06hdzq5n.js +0 -2
  204. package/chunk-09rj27b2.js +0 -2
  205. package/chunk-1zdwrgd4.js +0 -2
  206. package/chunk-5c9j8qe4.js +0 -478
  207. package/chunk-9mmz6wt3.js +0 -2
  208. package/chunk-bpw6q7g0.js +0 -3
  209. package/chunk-bxn5kmpz.js +0 -3753
  210. package/chunk-n6e43rvk.js +0 -3
  211. package/chunk-pmqtkqsf.js +0 -2
  212. package/chunk-ry0z4ev6.js +0 -2
  213. package/chunk-v258nxcz.js +0 -2
  214. package/chunk-zmsgwr3s.js +0 -2
  215. package/web/chunk-0s80zw00.js +0 -1
  216. package/web/chunk-166qe5j6.js +0 -2
  217. package/web/chunk-1c95wfvq.js +0 -1
  218. package/web/chunk-329rtxa9.js +0 -1
  219. package/web/chunk-33qwz9bc.js +0 -2
  220. package/web/chunk-3qjnwsph.js +0 -1
  221. package/web/chunk-4rm1vy7w.js +0 -1
  222. package/web/chunk-59kqahb3.js +0 -1
  223. package/web/chunk-61jahh35.js +0 -292
  224. package/web/chunk-6beqrmtq.js +0 -1
  225. package/web/chunk-6gxf3vsg.js +0 -1
  226. package/web/chunk-6parf7sy.js +0 -2
  227. package/web/chunk-89fkdgbp.js +0 -2
  228. package/web/chunk-8qgpfxkz.js +0 -1
  229. package/web/chunk-9a3q0jsh.js +0 -36
  230. package/web/chunk-9bgey148.js +0 -169
  231. package/web/chunk-9xh96b33.js +0 -2
  232. package/web/chunk-a5sg33w2.js +0 -3
  233. package/web/chunk-a91vxtx4.js +0 -1
  234. package/web/chunk-agec7jj4.js +0 -1
  235. package/web/chunk-c516cghj.js +0 -1
  236. package/web/chunk-cqp1d4p0.js +0 -1
  237. package/web/chunk-cwtdnacf.js +0 -1
  238. package/web/chunk-dg1vas6z.js +0 -8
  239. package/web/chunk-dy2gm1fs.js +0 -1
  240. package/web/chunk-f91wzwtk.js +0 -1
  241. package/web/chunk-fc0nx23g.js +0 -1
  242. package/web/chunk-fhnypcrm.js +0 -1139
  243. package/web/chunk-fv60p68p.js +0 -1
  244. package/web/chunk-g1ev11wx.js +0 -1
  245. package/web/chunk-h18tnrf2.js +0 -1
  246. package/web/chunk-hfaffkrh.js +0 -1
  247. package/web/chunk-hszjc2ny.js +0 -70
  248. package/web/chunk-j2vt8c8v.js +0 -1
  249. package/web/chunk-jqa39f8t.js +0 -78
  250. package/web/chunk-jvbbrnpa.js +0 -1
  251. package/web/chunk-jzfd7cyh.js +0 -2
  252. package/web/chunk-ka3q31t1.js +0 -1
  253. package/web/chunk-ka9ak8wr.js +0 -1
  254. package/web/chunk-m2d1sp30.js +0 -1
  255. package/web/chunk-mnjd59jk.js +0 -1
  256. package/web/chunk-ng0nbfhh.js +0 -1
  257. package/web/chunk-nz9nxk48.js +0 -1
  258. package/web/chunk-phw908hn.js +0 -1
  259. package/web/chunk-pjmmma1k.js +0 -1
  260. package/web/chunk-pxe3vna4.js +0 -1
  261. package/web/chunk-q7yn4m3t.js +0 -1
  262. package/web/chunk-qh15dxav.css +0 -1
  263. package/web/chunk-qnhqexe0.js +0 -1
  264. package/web/chunk-rcx1aee5.js +0 -99
  265. package/web/chunk-rjqj6ffe.js +0 -1
  266. package/web/chunk-rks7ksv3.js +0 -106
  267. package/web/chunk-rtf2zzzv.js +0 -1
  268. package/web/chunk-sgvp8vge.js +0 -1
  269. package/web/chunk-sjjwte12.js +0 -1
  270. package/web/chunk-srrfphes.js +0 -1
  271. package/web/chunk-t7bwsdbr.js +0 -1
  272. package/web/chunk-tse9gvyq.js +0 -89
  273. package/web/chunk-vd6y2pcm.js +0 -39
  274. package/web/chunk-vpa55vje.js +0 -4
  275. package/web/chunk-vymqrpm3.js +0 -303
  276. package/web/chunk-wdtnhpd6.js +0 -4
  277. package/web/chunk-wmvd6j0b.js +0 -200
  278. package/web/chunk-xvsmtetz.js +0 -30
  279. package/web/chunk-y3ajqthy.js +0 -370
  280. package/web/chunk-yd1ez3wd.js +0 -2
  281. package/web/chunk-yfbxtg5p.js +0 -1
  282. package/web/chunk-ywp4s71k.js +0 -40
  283. package/web/chunk-z4x331rx.js +0 -140
  284. package/web/chunk-z6bpamwq.js +0 -24
  285. package/web/chunk-zmdnxn6m.js +0 -2
  286. package/web/install.ps1 +0 -91
  287. package/web/install.sh +0 -177
@@ -1,2 +0,0 @@
1
- import{l}from"./chunk-fhnypcrm.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};
@@ -1 +0,0 @@
1
- import{yi}from"./chunk-n8gfjj9a.js";export{yi as createWardleyServices};
@@ -1,40 +0,0 @@
1
- import{e,y,mt,C,S,E,T,A,I,L,s,Tn,p,J,jn,po,Ia,Ra,Vn}from"./chunk-vymqrpm3.js";import{On,mn}from"./chunk-ttg6tbwx.js";import{Xe}from"./chunk-n8sky2q6.js";function rt(n,c){let m=0;if(c===void 0){for(let x of n)if(x=+x)m+=x}else{let x=-1;for(let _ of n)if(_=+c(_,++x,n))m+=_}return m}function dt(n){var c=n.length/6|0,m=Array(c),x=0;while(x<c)m[x]="#"+n.slice(x*6,++x*6);return m}var pt=dt("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab");function Pt(n){return n.source}function At(n){return n.target}function Tt(n){let c=Pt,m=At,x=Ia,_=Ra,P=null,g=null,N=jn(a);function a(){let i,f=po.call(arguments),v=c.apply(this,f),k=m.apply(this,f);if(P==null)g=n(i=N());if(g.lineStart(),f[0]=v,g.point(+x.apply(this,f),+_.apply(this,f)),f[0]=k,g.point(+x.apply(this,f),+_.apply(this,f)),g.lineEnd(),i)return g=null,i+""||null}return a.source=function(i){return arguments.length?(c=i,a):c},a.target=function(i){return arguments.length?(m=i,a):m},a.x=function(i){return arguments.length?(x=typeof i==="function"?i:J(+i),a):x},a.y=function(i){return arguments.length?(_=typeof i==="function"?i:J(+i),a):_},a.context=function(i){return arguments.length?(i==null?P=g=null:g=n(P=i),a):P},a}function vt(){return Tt(Vn)}function Ct(n){return n.target.depth}function yt(n){return n.depth}function gt(n,c){return c-1-n.height}function st(n,c){return n.sourceLinks.length?n.depth:c-1}function xt(n){return n.targetLinks.length?n.depth:n.sourceLinks.length?mn(n.sourceLinks,Ct)-1:0}function et(n){return function(){return n}}function _t(n,c){return ot(n.source,c.source)||n.index-c.index}function St(n,c){return ot(n.target,c.target)||n.index-c.index}function ot(n,c){return n.y0-c.y0}function kt(n){return n.value}function Bt(n){return n.index}function Ot(n){return n.nodes}function Rt(n){return n.links}function wt(n,c){let m=n.get(c);if(!m)throw Error("missing: "+c);return m}function Lt({nodes:n}){for(let c of n){let m=c.y0,x=m;for(let _ of c.sourceLinks)_.y0=m+_.width/2,m+=_.width;for(let _ of c.targetLinks)_.y1=x+_.width/2,x+=_.width}}function it(){let n=0,c=0,m=1,x=1,_=24,P=8,g,N=Bt,a=st,i,f,v=Ot,k=Rt,h=6;function w(){let t={nodes:v.apply(null,arguments),links:k.apply(null,arguments)};return G(t),M(t),W(t),U(t),z(t),Lt(t),t}w.update=function(t){return Lt(t),t},w.nodeId=function(t){return arguments.length?(N=typeof t==="function"?t:et(t),w):N},w.nodeAlign=function(t){return arguments.length?(a=typeof t==="function"?t:et(t),w):a},w.nodeSort=function(t){return arguments.length?(i=t,w):i},w.nodeWidth=function(t){return arguments.length?(_=+t,w):_},w.nodePadding=function(t){return arguments.length?(P=g=+t,w):P},w.nodes=function(t){return arguments.length?(v=typeof t==="function"?t:et(t),w):v},w.links=function(t){return arguments.length?(k=typeof t==="function"?t:et(t),w):k},w.linkSort=function(t){return arguments.length?(f=t,w):f},w.size=function(t){return arguments.length?(n=c=0,m=+t[0],x=+t[1],w):[m-n,x-c]},w.extent=function(t){return arguments.length?(n=+t[0][0],m=+t[1][0],c=+t[0][1],x=+t[1][1],w):[[n,c],[m,x]]},w.iterations=function(t){return arguments.length?(h=+t,w):h};function G({nodes:t,links:l}){for(let[r,o]of t.entries())o.index=r,o.sourceLinks=[],o.targetLinks=[];let u=new Map(t.map((r,o)=>[N(r,o,t),r]));for(let[r,o]of l.entries()){o.index=r;let{source:d,target:b}=o;if(typeof d!=="object")d=o.source=wt(u,d);if(typeof b!=="object")b=o.target=wt(u,b);d.sourceLinks.push(o),b.targetLinks.push(o)}if(f!=null)for(let{sourceLinks:r,targetLinks:o}of t)r.sort(f),o.sort(f)}function M({nodes:t}){for(let l of t)l.value=l.fixedValue===void 0?Math.max(rt(l.sourceLinks,kt),rt(l.targetLinks,kt)):l.fixedValue}function W({nodes:t}){let l=t.length,u=new Set(t),r=new Set,o=0;while(u.size){for(let d of u){d.depth=o;for(let{target:b}of d.sourceLinks)r.add(b)}if(++o>l)throw Error("circular link");u=r,r=new Set}}function U({nodes:t}){let l=t.length,u=new Set(t),r=new Set,o=0;while(u.size){for(let d of u){d.height=o;for(let{source:b}of d.targetLinks)r.add(b)}if(++o>l)throw Error("circular link");u=r,r=new Set}}function q({nodes:t}){let l=On(t,(o)=>o.depth)+1,u=(m-n-_)/(l-1),r=Array(l);for(let o of t){let d=Math.max(0,Math.min(l-1,Math.floor(a.call(null,o,l))));if(o.layer=d,o.x0=n+d*u,o.x1=o.x0+_,r[d])r[d].push(o);else r[d]=[o]}if(i)for(let o of r)o.sort(i);return r}function Z(t){let l=mn(t,(u)=>(x-c-(u.length-1)*g)/rt(u,kt));for(let u of t){let r=c;for(let o of u){o.y0=r,o.y1=r+o.value*l,r=o.y1+g;for(let d of o.sourceLinks)d.width=d.value*l}r=(x-r+g)/(u.length+1);for(let o=0;o<u.length;++o){let d=u[o];d.y0+=r*(o+1),d.y1+=r*(o+1)}Q(u)}}function z(t){let l=q(t);g=Math.min(P,(x-c)/(On(l,(u)=>u.length)-1)),Z(l);for(let u=0;u<h;++u){let r=Math.pow(0.99,u),o=Math.max(1-r,(u+1)/h);D(l,r,o),B(l,r,o)}}function B(t,l,u){for(let r=1,o=t.length;r<o;++r){let d=t[r];for(let b of d){let K=0,Y=0;for(let{source:R,value:ht}of b.targetLinks){let nt=ht*(b.layer-R.layer);K+=O(R,b)*nt,Y+=nt}if(!(Y>0))continue;let F=(K/Y-b.y0)*l;b.y0+=F,b.y1+=F,tt(b)}if(i===void 0)d.sort(ot);H(d,u)}}function D(t,l,u){for(let r=t.length,o=r-2;o>=0;--o){let d=t[o];for(let b of d){let K=0,Y=0;for(let{target:R,value:ht}of b.sourceLinks){let nt=ht*(R.layer-b.layer);K+=V(b,R)*nt,Y+=nt}if(!(Y>0))continue;let F=(K/Y-b.y0)*l;b.y0+=F,b.y1+=F,tt(b)}if(i===void 0)d.sort(ot);H(d,u)}}function H(t,l){let u=t.length>>1,r=t[u];j(t,r.y0-g,u-1,l),X(t,r.y1+g,u+1,l),j(t,x,t.length-1,l),X(t,c,0,l)}function X(t,l,u,r){for(;u<t.length;++u){let o=t[u],d=(l-o.y0)*r;if(d>0.000001)o.y0+=d,o.y1+=d;l=o.y1+g}}function j(t,l,u,r){for(;u>=0;--u){let o=t[u],d=(o.y1-l)*r;if(d>0.000001)o.y0-=d,o.y1-=d;l=o.y0-g}}function tt({sourceLinks:t,targetLinks:l}){if(f===void 0){for(let{source:{sourceLinks:u}}of l)u.sort(St);for(let{target:{targetLinks:u}}of t)u.sort(_t)}}function Q(t){if(f===void 0)for(let{sourceLinks:l,targetLinks:u}of t)l.sort(St),u.sort(_t)}function O(t,l){let u=t.y0-(t.sourceLinks.length-1)*g/2;for(let{target:r,width:o}of t.sourceLinks){if(r===l)break;u+=o+g}for(let{source:r,width:o}of l.targetLinks){if(r===t)break;u-=o}return u}function V(t,l){let u=l.y0-(l.targetLinks.length-1)*g/2;for(let{source:r,width:o}of l.targetLinks){if(r===t)break;u+=o+g}for(let{target:r,width:o}of t.sourceLinks){if(r===l)break;u-=o}return u}return w}function Nt(n){return[n.source.x1,n.y0]}function Gt(n){return[n.target.x0,n.y1]}function at(){return vt().source(Nt).target(Gt)}var bt=function(){var n=e(function(N,a,i,f){for(i=i||{},f=N.length;f--;i[N[f]]=a);return i},"o"),c=[1,9],m=[1,10],x=[1,5,10,12],_={trace:e(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SANKEY:4,NEWLINE:5,csv:6,opt_eof:7,record:8,csv_tail:9,EOF:10,"field[source]":11,COMMA:12,"field[target]":13,"field[value]":14,field:15,escaped:16,non_escaped:17,DQUOTE:18,ESCAPED_TEXT:19,NON_ESCAPED_TEXT:20,$accept:0,$end:1},terminals_:{2:"error",4:"SANKEY",5:"NEWLINE",10:"EOF",11:"field[source]",12:"COMMA",13:"field[target]",14:"field[value]",18:"DQUOTE",19:"ESCAPED_TEXT",20:"NON_ESCAPED_TEXT"},productions_:[0,[3,4],[6,2],[9,2],[9,0],[7,1],[7,0],[8,5],[15,1],[15,1],[16,3],[17,1]],performAction:e(function(a,i,f,v,k,h,w){var G=h.length-1;switch(k){case 7:let M=v.findOrCreateNode(h[G-4].trim().replaceAll('""','"')),W=v.findOrCreateNode(h[G-2].trim().replaceAll('""','"')),U=parseFloat(h[G].trim());v.addLink(M,W,U);break;case 8:case 9:case 11:this.$=h[G];break;case 10:this.$=h[G-1];break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},{5:[1,3]},{6:4,8:5,15:6,16:7,17:8,18:c,20:m},{1:[2,6],7:11,10:[1,12]},n(m,[2,4],{9:13,5:[1,14]}),{12:[1,15]},n(x,[2,8]),n(x,[2,9]),{19:[1,16]},n(x,[2,11]),{1:[2,1]},{1:[2,5]},n(m,[2,2]),{6:17,8:5,15:6,16:7,17:8,18:c,20:m},{15:18,16:7,17:8,18:c,20:m},{18:[1,19]},n(m,[2,3]),{12:[1,20]},n(x,[2,10]),{15:21,16:7,17:8,18:c,20:m},n([1,5,10],[2,7])],defaultActions:{11:[2,1],12:[2,5]},parseError:e(function(a,i){if(i.recoverable)this.trace(a);else{var f=Error(a);throw f.hash=i,f}},"parseError"),parse:e(function(a){var i=this,f=[0],v=[],k=[null],h=[],w=this.table,G="",M=0,W=0,U=0,q=2,Z=1,z=h.slice.call(arguments,1),B=Object.create(this.lexer),D={yy:{}};for(var H in this.yy)if(Object.prototype.hasOwnProperty.call(this.yy,H))D.yy[H]=this.yy[H];if(B.setInput(a,D.yy),D.yy.lexer=B,D.yy.parser=this,typeof B.yylloc>"u")B.yylloc={};var X=B.yylloc;h.push(X);var j=B.options&&B.options.ranges;if(typeof D.yy.parseError==="function")this.parseError=D.yy.parseError;else this.parseError=Object.getPrototypeOf(this).parseError;function tt(R){f.length=f.length-2*R,k.length=k.length-R,h.length=h.length-R}e(tt,"popStack");function Q(){var R=v.pop()||B.lex()||Z;if(typeof R!=="number"){if(R instanceof Array)v=R,R=v.pop();R=i.symbols_[R]||R}return R}e(Q,"lex");var O,V,t,l,u,r,o={},d,b,K,Y;while(!0){if(t=f[f.length-1],this.defaultActions[t])l=this.defaultActions[t];else{if(O===null||typeof O>"u")O=Q();l=w[t]&&w[t][O]}if(typeof l>"u"||!l.length||!l[0]){var F="";Y=[];for(d in w[t])if(this.terminals_[d]&&d>q)Y.push("'"+this.terminals_[d]+"'");if(B.showPosition)F="Parse error on line "+(M+1)+`:
2
- `+B.showPosition()+`
3
- Expecting `+Y.join(", ")+", got '"+(this.terminals_[O]||O)+"'";else F="Parse error on line "+(M+1)+": Unexpected "+(O==Z?"end of input":"'"+(this.terminals_[O]||O)+"'");this.parseError(F,{text:B.match,token:this.terminals_[O]||O,line:B.yylineno,loc:X,expected:Y})}if(l[0]instanceof Array&&l.length>1)throw Error("Parse Error: multiple actions possible at state: "+t+", token: "+O);switch(l[0]){case 1:if(f.push(O),k.push(B.yytext),h.push(B.yylloc),f.push(l[1]),O=null,!V){if(W=B.yyleng,G=B.yytext,M=B.yylineno,X=B.yylloc,U>0)U--}else O=V,V=null;break;case 2:if(b=this.productions_[l[1]][1],o.$=k[k.length-b],o._$={first_line:h[h.length-(b||1)].first_line,last_line:h[h.length-1].last_line,first_column:h[h.length-(b||1)].first_column,last_column:h[h.length-1].last_column},j)o._$.range=[h[h.length-(b||1)].range[0],h[h.length-1].range[1]];if(r=this.performAction.apply(o,[G,W,M,D.yy,l[1],k,h].concat(z)),typeof r<"u")return r;if(b)f=f.slice(0,-1*b*2),k=k.slice(0,-1*b),h=h.slice(0,-1*b);f.push(this.productions_[l[1]][0]),k.push(o.$),h.push(o._$),K=w[f[f.length-2]][f[f.length-1]],f.push(K);break;case 3:return!0}}return!0},"parse")},P=function(){var N={EOF:1,parseError:e(function(i,f){if(this.yy.parser)this.yy.parser.parseError(i,f);else throw Error(i)},"parseError"),setInput:e(function(a,i){if(this.yy=i||this.yy||{},this._input=a,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 a=this._input[0];this.yytext+=a,this.yyleng++,this.offset++,this.match+=a,this.matched+=a;var i=a.match(/(?:\r\n?|\n).*/g);if(i)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),a},"input"),unput:e(function(a){var i=a.length,f=a.split(/(?:\r\n?|\n)/g);this._input=a+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-i),this.offset-=i;var v=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),f.length-1)this.yylineno-=f.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:f?(f.length===v.length?this.yylloc.first_column:0)+v[v.length-f.length].length-f[0].length:this.yylloc.first_column-i},this.options.ranges)this.yylloc.range=[k[0],k[0]+this.yyleng-i];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(a){this.unput(this.match.slice(a))},"less"),pastInput:e(function(){var a=this.matched.substr(0,this.matched.length-this.match.length);return(a.length>20?"...":"")+a.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:e(function(){var a=this.match;if(a.length<20)a+=this._input.substr(0,20-a.length);return(a.substr(0,20)+(a.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:e(function(){var a=this.pastInput(),i=Array(a.length+1).join("-");return a+this.upcomingInput()+`
5
- `+i+"^"},"showPosition"),test_match:e(function(a,i){var f,v,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(v=a[0].match(/(?:\r\n?|\n).*/g),v)this.yylineno+=v.length;if(this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:v?v[v.length-1].length-v[v.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+a[0].length},this.yytext+=a[0],this.match+=a[0],this.matches=a,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(a[0].length),this.matched+=a[0],f=this.performAction.call(this,this.yy,this,i,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input)this.done=!1;if(f)return f;else if(this._backtrack){for(var h in k)this[h]=k[h];return!1}return!1},"test_match"),next:e(function(){if(this.done)return this.EOF;if(!this._input)this.done=!0;var a,i,f,v;if(!this._more)this.yytext="",this.match="";var k=this._currentRules();for(var h=0;h<k.length;h++)if(f=this._input.match(this.rules[k[h]]),f&&(!i||f[0].length>i[0].length)){if(i=f,v=h,this.options.backtrack_lexer)if(a=this.test_match(f,k[h]),a!==!1)return a;else if(this._backtrack){i=!1;continue}else return!1;else if(!this.options.flex)break}if(i){if(a=this.test_match(i,k[v]),a!==!1)return a;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 i=this.next();if(i)return i;else return this.lex()},"lex"),begin:e(function(i){this.conditionStack.push(i)},"begin"),popState:e(function(){var i=this.conditionStack.length-1;if(i>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(i){if(i=this.conditionStack.length-1-Math.abs(i||0),i>=0)return this.conditionStack[i];else return"INITIAL"},"topState"),pushState:e(function(i){this.begin(i)},"pushState"),stateStackSize:e(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:e(function(i,f,v,k){var h=k;switch(v){case 0:return this.pushState("csv"),4;break;case 1:return this.pushState("csv"),4;break;case 2:return 10;case 3:return 5;case 4:return 12;case 5:return this.pushState("escaped_text"),18;break;case 6:return 20;case 7:return this.popState("escaped_text"),18;break;case 8:return 19}},"anonymous"),rules:[/^(?:sankey-beta\b)/i,/^(?:sankey\b)/i,/^(?:$)/i,/^(?:((\u000D\u000A)|(\u000A)))/i,/^(?:(\u002C))/i,/^(?:(\u0022))/i,/^(?:([\u0020-\u0021\u0023-\u002B\u002D-\u007E])*)/i,/^(?:(\u0022)(?!(\u0022)))/i,/^(?:(([\u0020-\u0021\u0023-\u002B\u002D-\u007E])|(\u002C)|(\u000D)|(\u000A)|(\u0022)(\u0022))*)/i],conditions:{csv:{rules:[2,3,4,5,6,7,8],inclusive:!1},escaped_text:{rules:[7,8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8],inclusive:!0}}};return N}();_.lexer=P;function g(){this.yy={}}return e(g,"Parser"),g.prototype=_,_.Parser=g,new g}();bt.parser=bt;var lt=bt,ut=[],ft=[],ct=new Map,It=e(()=>{ut=[],ft=[],ct=new Map,C()},"clear"),Mt=class{constructor(n,c,m=0){this.source=n,this.target=c,this.value=m}static{e(this,"SankeyLink")}},Yt=e((n,c,m)=>{ut.push(new Mt(n,c,m))},"addLink"),Dt=class{constructor(n){this.ID=n}static{e(this,"SankeyNode")}},jt=e((n)=>{n=y.sanitizeText(n,s());let c=ct.get(n);if(c===void 0)c=new Dt(n),ct.set(n,c),ft.push(c);return c},"findOrCreateNode"),$t=e(()=>ft,"getNodes"),zt=e(()=>ut,"getLinks"),Vt=e(()=>({nodes:ft.map((n)=>({id:n.ID})),links:ut.map((n)=>({source:n.source.ID,target:n.target.ID,value:n.value}))}),"getGraph"),Ft={nodesMap:ct,getConfig:e(()=>s().sankey,"getConfig"),getNodes:$t,getLinks:zt,getGraph:Vt,addLink:Yt,findOrCreateNode:jt,getAccTitle:E,setAccTitle:S,getAccDescription:A,setAccDescription:T,getDiagramTitle:L,setDiagramTitle:I,clear:It},Et=class n{static{e(this,"Uid")}static{this.count=0}static next(c){return new n(c+ ++n.count)}constructor(c){this.id=c,this.href=`#${c}`}toString(){return"url("+this.href+")"}},Wt={left:yt,right:gt,center:xt,justify:st},Ut=e((n)=>{let c=0,m=0;for(let x of n){let _=x.value??0;if(_>c)c=_,m=x.layer??0}return m},"findCentralNodeLayer"),Ht=e(function(n,c,m,x){let{securityLevel:_,sankey:P}=s(),g=Tn.sankey,N;if(_==="sandbox")N=p("#i"+c);let a=_==="sandbox"?p(N.nodes()[0].contentDocument.body):p("body"),i=_==="sandbox"?a.select(`[id="${c}"]`):p(`[id="${c}"]`),f=P?.width??g.width,v=P?.height??g.width,k=P?.useMaxWidth??g.useMaxWidth,h=P?.nodeAlignment??g.nodeAlignment,w=P?.prefix??g.prefix,G=P?.suffix??g.suffix,M=P?.showValues??g.showValues,W=P?.nodeWidth??g.nodeWidth??10,U=P?.nodePadding??g.nodePadding??12,q=P?.labelStyle??g.labelStyle??"legacy",Z=P?.nodeColors??{},z=x.db.getGraph(),B=Wt[h];it().nodeId((r)=>r.id).nodeWidth(W).nodePadding(U+(M?15:0)).nodeAlign(B).extent([[0,0],[f,v]])(z);let H=Ut(z.nodes),X=Xe(pt),j=e((r)=>Z[r]??X(r),"getNodeColor");i.append("g").attr("class","nodes").selectAll(".node").data(z.nodes).join("g").attr("class","node").attr("id",(r)=>(r.uid=Et.next("node-")).id).attr("transform",function(r){return"translate("+r.x0+","+r.y0+")"}).attr("x",(r)=>r.x0).attr("y",(r)=>r.y0).append("rect").attr("height",(r)=>r.y1-r.y0).attr("width",(r)=>r.x1-r.x0).attr("fill",(r)=>j(r.id));let tt=e(({id:r,value:o})=>{if(!M)return r;return`${r}
7
- ${w}${Math.round(o*100)/100}${G}`},"getText"),Q=e((r)=>{if(q==="outlined"){if((r.layer??0)<H)return{x:r.x0-6,anchor:"end"};return{x:r.x1+6,anchor:"start"}}if(r.x0<f/2)return{x:r.x1+6,anchor:"start"};return{x:r.x0-6,anchor:"end"}},"getLabelPosition"),O=i.append("g").attr("class","node-labels").attr("font-size",14),V=e((r)=>O.selectAll(r?`.${r}`:"text").data(z.nodes).join("text").attr("class",r??null).attr("x",(o)=>Q(o).x).attr("y",(o)=>(o.y1+o.y0)/2).attr("dy",`${M?"0":"0.35"}em`).attr("text-anchor",(o)=>Q(o).anchor).text(tt),"appendLabel");if(q==="outlined")V("sankey-label-bg"),V("sankey-label-fg");else V();let t=i.append("g").attr("class","links").attr("fill","none").attr("stroke-opacity",0.5).selectAll(".link").data(z.links).join("g").attr("class","link").style("mix-blend-mode","multiply"),l=P?.linkColor??"gradient";if(l==="gradient"){let r=t.append("linearGradient").attr("id",(o)=>(o.uid=Et.next("linearGradient-")).id).attr("gradientUnits","userSpaceOnUse").attr("x1",(o)=>o.source.x1).attr("x2",(o)=>o.target.x0);r.append("stop").attr("offset","0%").attr("stop-color",(o)=>j(o.source.id)),r.append("stop").attr("offset","100%").attr("stop-color",(o)=>j(o.target.id))}let u;switch(l){case"gradient":u=e((r)=>r.uid,"coloring");break;case"source":u=e((r)=>j(r.source.id),"coloring");break;case"target":u=e((r)=>j(r.target.id),"coloring");break;default:u=l}t.append("path").attr("d",at()).attr("stroke",u).attr("stroke-width",(r)=>Math.max(1,r.width)),mt(void 0,i,0,k)},"draw"),Xt={draw:Ht},Jt=e((n)=>n.replaceAll(/^[^\S\n\r]+|[^\S\n\r]+$/g,"").replaceAll(/([\n\r])+/g,`
8
- `).trim(),"prepareTextForParsing"),Kt=e((n)=>`.label {
9
- font-family: ${n.fontFamily};
10
- }
11
-
12
- .node-labels {
13
- font-family: ${n.fontFamily};
14
- }
15
-
16
- /* Outlined label style - background stroke for better readability */
17
- .sankey-label-bg {
18
- stroke: ${n.mainBkg||n.background||"#fff"};
19
- stroke-width: 4px;
20
- stroke-linejoin: round;
21
- paint-order: stroke;
22
- }
23
-
24
- /* Foreground label text */
25
- .sankey-label-fg {
26
- fill: ${n.textColor};
27
- }
28
-
29
- /* Node styling */
30
- .node rect {
31
- shape-rendering: crispEdges;
32
- }
33
-
34
- /* Link styling */
35
- .link {
36
- fill: none;
37
- stroke-opacity: 0.5;
38
- mix-blend-mode: multiply;
39
- }
40
- `,"getStyles"),Qt=Kt,qt=lt.parse.bind(lt);lt.parse=(n)=>qt(Jt(n));var Be={styles:Qt,parser:lt,db:Ft,renderer:Xt};export{Be as diagram};
@@ -1,140 +0,0 @@
1
- import{e,r,le,b,y,B,C,s,p,Da,Rn,sn,Na,Er,Ar,Lr,Ir,Ma,Pa,Oa,$a,Ba,Fa,za,Ua,ja,qa,Va,Ga,Wa,Ha,Ya,Za,Xa,ln,Qa,ce,ae,ie,Ye,Ze,St,ht,Tt,Hn,Jt,Yn}from"./chunk-vymqrpm3.js";import{Q}from"./chunk-7xk0ntav.js";import{je}from"./chunk-7520nrbb.js";import{Ot}from"./chunk-166qe5j6.js";function Te(t){return Array.isArray(t)}function Ne(t){if(Rn(t))return t;let l=sn(t);if(!Qe(t))return{};if(Te(t)){let n=Array.from(t);if(t.length>0&&typeof t[0]==="string"&&Object.hasOwn(t,"index"))n.index=t.index,n.input=t.input;return n}if(ln(t)){let n=t;return new n.constructor(n.buffer,n.byteOffset,n.length)}if(l==="[object ArrayBuffer]")return new ArrayBuffer(t.byteLength);if(l==="[object DataView]"){let n=t,{buffer:g,byteOffset:f,byteLength:i}=n,d=new ArrayBuffer(i),w=new Uint8Array(g,f,i);return new Uint8Array(d).set(w),new DataView(d)}if(l==="[object Boolean]"||l==="[object Number]"||l==="[object String]"){let g=new t.constructor(t.valueOf());if(l==="[object String]")et(g,t);else pe(g,t);return g}if(l==="[object Date]")return new Date(Number(t));if(l==="[object RegExp]"){let n=t,g=new RegExp(n.source,n.flags);return g.lastIndex=n.lastIndex,g}if(l==="[object Symbol]")return Object(Symbol.prototype.valueOf.call(t));if(l==="[object Map]"){let n=t,g=new Map;return n.forEach((f,i)=>{g.set(i,f)}),g}if(l==="[object Set]"){let n=t,g=new Set;return n.forEach((f)=>{g.add(f)}),g}if(l==="[object Arguments]"){let n=t,g={};return pe(g,n),g.length=n.length,g[Symbol.iterator]=n[Symbol.iterator],g}let u={};return tt(u,t),pe(u,t),$e(u,t),u}function Qe(t){switch(sn(t)){case Ir:case Ba:case Fa:case Ua:case Lr:case Pa:case Za:case Xa:case Wa:case Ha:case Ya:case Oa:case Ar:case za:case Na:case $a:case Er:case Ma:case ja:case qa:case Va:case Ga:return!0;default:return!1}}function pe(t,l){for(let u in l)if(Object.hasOwn(l,u))t[u]=l[u]}function $e(t,l){let u=Object.getOwnPropertySymbols(l);for(let n=0;n<u.length;n++){let g=u[n];if(Object.prototype.propertyIsEnumerable.call(l,g))t[g]=l[g]}}function et(t,l){let u=l.valueOf().length;for(let n in l)if(Object.hasOwn(l,n)&&(Number.isNaN(Number(n))||Number(n)>=u))t[n]=l[n]}function tt(t,l){let u=Object.getPrototypeOf(l);if(u!==null){if(typeof l.constructor==="function")Object.setPrototypeOf(t,u)}}var be=function(){var t=e(function(R,S,o,h){for(o=o||{},h=R.length;h--;o[R[h]]=S);return o},"o"),l=[1,15],u=[1,7],n=[1,13],g=[1,14],f=[1,19],i=[1,16],d=[1,17],w=[1,18],E=[8,30],L=[8,10,21,28,29,30,31,39,43,46],m=[1,23],_=[1,24],T=[8,10,15,16,21,28,29,30,31,39,43,46],k=[8,10,15,16,21,27,28,29,30,31,39,43,46],I=[1,49],N={trace:e(function(){},"trace"),yy:{},symbols_:{error:2,spaceLines:3,SPACELINE:4,NL:5,separator:6,SPACE:7,EOF:8,start:9,BLOCK_DIAGRAM_KEY:10,document:11,stop:12,statement:13,link:14,LINK:15,START_LINK:16,LINK_LABEL:17,STR:18,nodeStatement:19,columnsStatement:20,SPACE_BLOCK:21,blockStatement:22,classDefStatement:23,cssClassStatement:24,styleStatement:25,node:26,SIZE:27,COLUMNS:28,"id-block":29,end:30,NODE_ID:31,nodeShapeNLabel:32,dirList:33,DIR:34,NODE_DSTART:35,NODE_DEND:36,BLOCK_ARROW_START:37,BLOCK_ARROW_END:38,classDef:39,CLASSDEF_ID:40,CLASSDEF_STYLEOPTS:41,DEFAULT:42,class:43,CLASSENTITY_IDS:44,STYLECLASS:45,style:46,STYLE_ENTITY_IDS:47,STYLE_DEFINITION_DATA:48,$accept:0,$end:1},terminals_:{2:"error",4:"SPACELINE",5:"NL",7:"SPACE",8:"EOF",10:"BLOCK_DIAGRAM_KEY",15:"LINK",16:"START_LINK",17:"LINK_LABEL",18:"STR",21:"SPACE_BLOCK",27:"SIZE",28:"COLUMNS",29:"id-block",30:"end",31:"NODE_ID",34:"DIR",35:"NODE_DSTART",36:"NODE_DEND",37:"BLOCK_ARROW_START",38:"BLOCK_ARROW_END",39:"classDef",40:"CLASSDEF_ID",41:"CLASSDEF_STYLEOPTS",42:"DEFAULT",43:"class",44:"CLASSENTITY_IDS",45:"STYLECLASS",46:"style",47:"STYLE_ENTITY_IDS",48:"STYLE_DEFINITION_DATA"},productions_:[0,[3,1],[3,2],[3,2],[6,1],[6,1],[6,1],[9,3],[12,1],[12,1],[12,2],[12,2],[11,1],[11,2],[14,1],[14,4],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[19,3],[19,2],[19,1],[20,1],[22,4],[22,3],[26,1],[26,2],[33,1],[33,2],[32,3],[32,4],[23,3],[23,3],[24,3],[25,3]],performAction:e(function(S,o,h,x,D,a,H){var c=a.length-1;switch(D){case 4:x.getLogger().debug("Rule: separator (NL) ");break;case 5:x.getLogger().debug("Rule: separator (Space) ");break;case 6:x.getLogger().debug("Rule: separator (EOF) ");break;case 7:x.getLogger().debug("Rule: hierarchy: ",a[c-1]),x.setHierarchy(a[c-1]);break;case 8:x.getLogger().debug("Stop NL ");break;case 9:x.getLogger().debug("Stop EOF ");break;case 10:x.getLogger().debug("Stop NL2 ");break;case 11:x.getLogger().debug("Stop EOF2 ");break;case 12:x.getLogger().debug("Rule: statement: ",a[c]),typeof a[c].length==="number"?this.$=a[c]:this.$=[a[c]];break;case 13:x.getLogger().debug("Rule: statement #2: ",a[c-1]),this.$=[a[c-1]].concat(a[c]);break;case 14:x.getLogger().debug("Rule: link: ",a[c],S),this.$={edgeTypeStr:a[c],label:""};break;case 15:x.getLogger().debug("Rule: LABEL link: ",a[c-3],a[c-1],a[c]),this.$={edgeTypeStr:a[c],label:a[c-1]};break;case 18:let V=parseInt(a[c]),j=x.generateId();this.$={id:j,type:"space",label:"",width:V,children:[]};break;case 23:x.getLogger().debug("Rule: (nodeStatement link node) ",a[c-2],a[c-1],a[c]," typestr: ",a[c-1].edgeTypeStr);let G=x.edgeStrToEdgeData(a[c-1].edgeTypeStr),se=x.edgeStrToEdgeStartData(a[c-1].edgeTypeStr),q=x.edgeStrToThickness(a[c-1].edgeTypeStr),ne=x.edgeStrToPattern(a[c-1].edgeTypeStr);this.$=[{id:a[c-2].id,label:a[c-2].label,type:a[c-2].type,directions:a[c-2].directions},{id:a[c-2].id+"-"+a[c].id,start:a[c-2].id,end:a[c].id,label:a[c-1].label,type:"edge",thickness:q,pattern:ne,directions:a[c].directions,arrowTypeEnd:G,arrowTypeStart:se},{id:a[c].id,label:a[c].label,type:x.typeStr2Type(a[c].typeStr),directions:a[c].directions}];break;case 24:x.getLogger().debug("Rule: nodeStatement (abc88 node size) ",a[c-1],a[c]),this.$={id:a[c-1].id,label:a[c-1].label,type:x.typeStr2Type(a[c-1].typeStr),directions:a[c-1].directions,widthInColumns:parseInt(a[c],10)};break;case 25:x.getLogger().debug("Rule: nodeStatement (node) ",a[c]),this.$={id:a[c].id,label:a[c].label,type:x.typeStr2Type(a[c].typeStr),directions:a[c].directions,widthInColumns:1};break;case 26:x.getLogger().debug("APA123",this?this:"na"),x.getLogger().debug("COLUMNS: ",a[c]),this.$={type:"column-setting",columns:a[c]==="auto"?-1:parseInt(a[c])};break;case 27:x.getLogger().debug("Rule: id-block statement : ",a[c-2],a[c-1]);let O=x.generateId();this.$={...a[c-2],type:"composite",children:a[c-1]};break;case 28:x.getLogger().debug("Rule: blockStatement : ",a[c-2],a[c-1],a[c]);let K=x.generateId();this.$={id:K,type:"composite",label:"",children:a[c-1]};break;case 29:x.getLogger().debug("Rule: node (NODE_ID separator): ",a[c]),this.$={id:a[c]};break;case 30:x.getLogger().debug("Rule: node (NODE_ID nodeShapeNLabel separator): ",a[c-1],a[c]),this.$={id:a[c-1],label:a[c].label,typeStr:a[c].typeStr,directions:a[c].directions};break;case 31:x.getLogger().debug("Rule: dirList: ",a[c]),this.$=[a[c]];break;case 32:x.getLogger().debug("Rule: dirList: ",a[c-1],a[c]),this.$=[a[c-1]].concat(a[c]);break;case 33:x.getLogger().debug("Rule: nodeShapeNLabel: ",a[c-2],a[c-1],a[c]),this.$={typeStr:a[c-2]+a[c],label:a[c-1]};break;case 34:x.getLogger().debug("Rule: BLOCK_ARROW nodeShapeNLabel: ",a[c-3],a[c-2]," #3:",a[c-1],a[c]),this.$={typeStr:a[c-3]+a[c],label:a[c-2],directions:a[c-1]};break;case 35:case 36:this.$={type:"classDef",id:a[c-1].trim(),css:a[c].trim()};break;case 37:this.$={type:"applyClass",id:a[c-1].trim(),styleClass:a[c].trim()};break;case 38:this.$={type:"applyStyles",id:a[c-1].trim(),stylesStr:a[c].trim()};break}},"anonymous"),table:[{9:1,10:[1,2]},{1:[3]},{10:l,11:3,13:4,19:5,20:6,21:u,22:8,23:9,24:10,25:11,26:12,28:n,29:g,31:f,39:i,43:d,46:w},{8:[1,20]},t(E,[2,12],{13:4,19:5,20:6,22:8,23:9,24:10,25:11,26:12,11:21,10:l,21:u,28:n,29:g,31:f,39:i,43:d,46:w}),t(L,[2,16],{14:22,15:m,16:_}),t(L,[2,17]),t(L,[2,18]),t(L,[2,19]),t(L,[2,20]),t(L,[2,21]),t(L,[2,22]),t(T,[2,25],{27:[1,25]}),t(L,[2,26]),{19:26,26:12,31:f},{10:l,11:27,13:4,19:5,20:6,21:u,22:8,23:9,24:10,25:11,26:12,28:n,29:g,31:f,39:i,43:d,46:w},{40:[1,28],42:[1,29]},{44:[1,30]},{47:[1,31]},t(k,[2,29],{32:32,35:[1,33],37:[1,34]}),{1:[2,7]},t(E,[2,13]),{26:35,31:f},{31:[2,14]},{17:[1,36]},t(T,[2,24]),{10:l,11:37,13:4,14:22,15:m,16:_,19:5,20:6,21:u,22:8,23:9,24:10,25:11,26:12,28:n,29:g,31:f,39:i,43:d,46:w},{30:[1,38]},{41:[1,39]},{41:[1,40]},{45:[1,41]},{48:[1,42]},t(k,[2,30]),{18:[1,43]},{18:[1,44]},t(T,[2,23]),{18:[1,45]},{30:[1,46]},t(L,[2,28]),t(L,[2,35]),t(L,[2,36]),t(L,[2,37]),t(L,[2,38]),{36:[1,47]},{33:48,34:I},{15:[1,50]},t(L,[2,27]),t(k,[2,33]),{38:[1,51]},{33:52,34:I,38:[2,31]},{31:[2,15]},t(k,[2,34]),{38:[2,32]}],defaultActions:{20:[2,7],23:[2,14],50:[2,15],52:[2,32]},parseError:e(function(S,o){if(o.recoverable)this.trace(S);else{var h=Error(S);throw h.hash=o,h}},"parseError"),parse:e(function(S){var o=this,h=[0],x=[],D=[null],a=[],H=this.table,c="",V=0,j=0,G=0,se=2,q=1,ne=a.slice.call(arguments,1),O=Object.create(this.lexer),K={yy:{}};for(var oe in this.yy)if(Object.prototype.hasOwnProperty.call(this.yy,oe))K.yy[oe]=this.yy[oe];if(O.setInput(S,K.yy),K.yy.lexer=O,K.yy.parser=this,typeof O.yylloc>"u")O.yylloc={};var ue=O.yylloc;a.push(ue);var qe=O.options&&O.options.ranges;if(typeof K.yy.parseError==="function")this.parseError=K.yy.parseError;else this.parseError=Object.getPrototypeOf(this).parseError;function Je(F){h.length=h.length-2*F,D.length=D.length-F,a.length=a.length-F}e(Je,"popStack");function _e(){var F=x.pop()||O.lex()||q;if(typeof F!=="number"){if(F instanceof Array)x=F,F=x.pop();F=o.symbols_[F]||F}return F}e(_e,"lex");var A,he,W,P,zt,ge,U={},J,Y,De,Z;while(!0){if(W=h[h.length-1],this.defaultActions[W])P=this.defaultActions[W];else{if(A===null||typeof A>"u")A=_e();P=H[W]&&H[W][A]}if(typeof P>"u"||!P.length||!P[0]){var de="";Z=[];for(J in H[W])if(this.terminals_[J]&&J>se)Z.push("'"+this.terminals_[J]+"'");if(O.showPosition)de="Parse error on line "+(V+1)+`:
2
- `+O.showPosition()+`
3
- Expecting `+Z.join(", ")+", got '"+(this.terminals_[A]||A)+"'";else de="Parse error on line "+(V+1)+": Unexpected "+(A==q?"end of input":"'"+(this.terminals_[A]||A)+"'");this.parseError(de,{text:O.match,token:this.terminals_[A]||A,line:O.yylineno,loc:ue,expected:Z})}if(P[0]instanceof Array&&P.length>1)throw Error("Parse Error: multiple actions possible at state: "+W+", token: "+A);switch(P[0]){case 1:if(h.push(A),D.push(O.yytext),a.push(O.yylloc),h.push(P[1]),A=null,!he){if(j=O.yyleng,c=O.yytext,V=O.yylineno,ue=O.yylloc,G>0)G--}else A=he,he=null;break;case 2:if(Y=this.productions_[P[1]][1],U.$=D[D.length-Y],U._$={first_line:a[a.length-(Y||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(Y||1)].first_column,last_column:a[a.length-1].last_column},qe)U._$.range=[a[a.length-(Y||1)].range[0],a[a.length-1].range[1]];if(ge=this.performAction.apply(U,[c,j,V,K.yy,P[1],D,a].concat(ne)),typeof ge<"u")return ge;if(Y)h=h.slice(0,-1*Y*2),D=D.slice(0,-1*Y),a=a.slice(0,-1*Y);h.push(this.productions_[P[1]][0]),D.push(U.$),a.push(U._$),De=H[h[h.length-2]][h[h.length-1]],h.push(De);break;case 3:return!0}}return!0},"parse")},v=function(){var R={EOF:1,parseError:e(function(o,h){if(this.yy.parser)this.yy.parser.parseError(o,h);else throw Error(o)},"parseError"),setInput:e(function(S,o){if(this.yy=o||this.yy||{},this._input=S,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 S=this._input[0];this.yytext+=S,this.yyleng++,this.offset++,this.match+=S,this.matched+=S;var o=S.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),S},"input"),unput:e(function(S){var o=S.length,h=S.split(/(?:\r\n?|\n)/g);this._input=S+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-o),this.offset-=o;var x=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),h.length-1)this.yylineno-=h.length-1;var D=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:h?(h.length===x.length?this.yylloc.first_column:0)+x[x.length-h.length].length-h[0].length:this.yylloc.first_column-o},this.options.ranges)this.yylloc.range=[D[0],D[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(S){this.unput(this.match.slice(S))},"less"),pastInput:e(function(){var S=this.matched.substr(0,this.matched.length-this.match.length);return(S.length>20?"...":"")+S.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:e(function(){var S=this.match;if(S.length<20)S+=this._input.substr(0,20-S.length);return(S.substr(0,20)+(S.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:e(function(){var S=this.pastInput(),o=Array(S.length+1).join("-");return S+this.upcomingInput()+`
5
- `+o+"^"},"showPosition"),test_match:e(function(S,o){var h,x,D;if(this.options.backtrack_lexer){if(D={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)D.yylloc.range=this.yylloc.range.slice(0)}if(x=S[0].match(/(?:\r\n?|\n).*/g),x)this.yylineno+=x.length;if(this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:x?x[x.length-1].length-x[x.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+S[0].length},this.yytext+=S[0],this.match+=S[0],this.matches=S,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(S[0].length),this.matched+=S[0],h=this.performAction.call(this,this.yy,this,o,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input)this.done=!1;if(h)return h;else if(this._backtrack){for(var a in D)this[a]=D[a];return!1}return!1},"test_match"),next:e(function(){if(this.done)return this.EOF;if(!this._input)this.done=!0;var S,o,h,x;if(!this._more)this.yytext="",this.match="";var D=this._currentRules();for(var a=0;a<D.length;a++)if(h=this._input.match(this.rules[D[a]]),h&&(!o||h[0].length>o[0].length)){if(o=h,x=a,this.options.backtrack_lexer)if(S=this.test_match(h,D[a]),S!==!1)return S;else if(this._backtrack){o=!1;continue}else return!1;else if(!this.options.flex)break}if(o){if(S=this.test_match(o,D[x]),S!==!1)return S;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:{},performAction:e(function(o,h,x,D){var a=D;switch(x){case 0:return o.getLogger().debug("Found block-beta"),10;break;case 1:return o.getLogger().debug("Found id-block"),29;break;case 2:return o.getLogger().debug("Found block"),10;break;case 3:o.getLogger().debug(".",h.yytext);break;case 4:o.getLogger().debug("_",h.yytext);break;case 5:return 5;case 6:return h.yytext=-1,28;break;case 7:return h.yytext=h.yytext.replace(/columns\s+/,""),o.getLogger().debug("COLUMNS (LEX)",h.yytext),28;break;case 8:this.pushState("md_string");break;case 9:return"MD_STR";case 10:this.popState();break;case 11:this.pushState("string");break;case 12:o.getLogger().debug("LEX: POPPING STR:",h.yytext),this.popState();break;case 13:return o.getLogger().debug("LEX: STR end:",h.yytext),"STR";break;case 14:return h.yytext=h.yytext.replace(/space\:/,""),o.getLogger().debug("SPACE NUM (LEX)",h.yytext),21;break;case 15:return h.yytext="1",o.getLogger().debug("COLUMNS (LEX)",h.yytext),21;break;case 16:return 42;case 17:return"LINKSTYLE";case 18:return"INTERPOLATE";case 19:return this.pushState("CLASSDEF"),39;break;case 20:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";break;case 21:return this.popState(),this.pushState("CLASSDEFID"),40;break;case 22:return this.popState(),41;break;case 23:return this.pushState("CLASS"),43;break;case 24:return this.popState(),this.pushState("CLASS_STYLE"),44;break;case 25:return this.popState(),45;break;case 26:return this.pushState("STYLE_STMNT"),46;break;case 27:return this.popState(),this.pushState("STYLE_DEFINITION"),47;break;case 28:return this.popState(),48;break;case 29:return this.pushState("acc_title"),"acc_title";break;case 30:return this.popState(),"acc_title_value";break;case 31:return this.pushState("acc_descr"),"acc_descr";break;case 32:return this.popState(),"acc_descr_value";break;case 33:this.pushState("acc_descr_multiline");break;case 34:this.popState();break;case 35:return"acc_descr_multiline_value";case 36:return 30;case 37:return this.popState(),o.getLogger().debug("Lex: (("),"NODE_DEND";break;case 38:return this.popState(),o.getLogger().debug("Lex: (("),"NODE_DEND";break;case 39:return this.popState(),o.getLogger().debug("Lex: ))"),"NODE_DEND";break;case 40:return this.popState(),o.getLogger().debug("Lex: (("),"NODE_DEND";break;case 41:return this.popState(),o.getLogger().debug("Lex: (("),"NODE_DEND";break;case 42:return this.popState(),o.getLogger().debug("Lex: (-"),"NODE_DEND";break;case 43:return this.popState(),o.getLogger().debug("Lex: -)"),"NODE_DEND";break;case 44:return this.popState(),o.getLogger().debug("Lex: (("),"NODE_DEND";break;case 45:return this.popState(),o.getLogger().debug("Lex: ]]"),"NODE_DEND";break;case 46:return this.popState(),o.getLogger().debug("Lex: ("),"NODE_DEND";break;case 47:return this.popState(),o.getLogger().debug("Lex: ])"),"NODE_DEND";break;case 48:return this.popState(),o.getLogger().debug("Lex: /]"),"NODE_DEND";break;case 49:return this.popState(),o.getLogger().debug("Lex: /]"),"NODE_DEND";break;case 50:return this.popState(),o.getLogger().debug("Lex: )]"),"NODE_DEND";break;case 51:return this.popState(),o.getLogger().debug("Lex: )"),"NODE_DEND";break;case 52:return this.popState(),o.getLogger().debug("Lex: ]>"),"NODE_DEND";break;case 53:return this.popState(),o.getLogger().debug("Lex: ]"),"NODE_DEND";break;case 54:return o.getLogger().debug("Lexa: -)"),this.pushState("NODE"),35;break;case 55:return o.getLogger().debug("Lexa: (-"),this.pushState("NODE"),35;break;case 56:return o.getLogger().debug("Lexa: ))"),this.pushState("NODE"),35;break;case 57:return o.getLogger().debug("Lexa: )"),this.pushState("NODE"),35;break;case 58:return o.getLogger().debug("Lex: ((("),this.pushState("NODE"),35;break;case 59:return o.getLogger().debug("Lexa: )"),this.pushState("NODE"),35;break;case 60:return o.getLogger().debug("Lexa: )"),this.pushState("NODE"),35;break;case 61:return o.getLogger().debug("Lexa: )"),this.pushState("NODE"),35;break;case 62:return o.getLogger().debug("Lexc: >"),this.pushState("NODE"),35;break;case 63:return o.getLogger().debug("Lexa: (["),this.pushState("NODE"),35;break;case 64:return o.getLogger().debug("Lexa: )"),this.pushState("NODE"),35;break;case 65:return this.pushState("NODE"),35;break;case 66:return this.pushState("NODE"),35;break;case 67:return this.pushState("NODE"),35;break;case 68:return this.pushState("NODE"),35;break;case 69:return this.pushState("NODE"),35;break;case 70:return this.pushState("NODE"),35;break;case 71:return this.pushState("NODE"),35;break;case 72:return o.getLogger().debug("Lexa: ["),this.pushState("NODE"),35;break;case 73:return this.pushState("BLOCK_ARROW"),o.getLogger().debug("LEX ARR START"),37;break;case 74:return o.getLogger().debug("Lex: NODE_ID",h.yytext),31;break;case 75:return o.getLogger().debug("Lex: EOF",h.yytext),8;break;case 76:this.pushState("md_string");break;case 77:this.pushState("md_string");break;case 78:return"NODE_DESCR";case 79:this.popState();break;case 80:o.getLogger().debug("Lex: Starting string"),this.pushState("string");break;case 81:o.getLogger().debug("LEX ARR: Starting string"),this.pushState("string");break;case 82:return o.getLogger().debug("LEX: NODE_DESCR:",h.yytext),"NODE_DESCR";break;case 83:o.getLogger().debug("LEX POPPING"),this.popState();break;case 84:o.getLogger().debug("Lex: =>BAE"),this.pushState("ARROW_DIR");break;case 85:return h.yytext=h.yytext.replace(/^,\s*/,""),o.getLogger().debug("Lex (right): dir:",h.yytext),"DIR";break;case 86:return h.yytext=h.yytext.replace(/^,\s*/,""),o.getLogger().debug("Lex (left):",h.yytext),"DIR";break;case 87:return h.yytext=h.yytext.replace(/^,\s*/,""),o.getLogger().debug("Lex (x):",h.yytext),"DIR";break;case 88:return h.yytext=h.yytext.replace(/^,\s*/,""),o.getLogger().debug("Lex (y):",h.yytext),"DIR";break;case 89:return h.yytext=h.yytext.replace(/^,\s*/,""),o.getLogger().debug("Lex (up):",h.yytext),"DIR";break;case 90:return h.yytext=h.yytext.replace(/^,\s*/,""),o.getLogger().debug("Lex (down):",h.yytext),"DIR";break;case 91:return h.yytext="]>",o.getLogger().debug("Lex (ARROW_DIR end):",h.yytext),this.popState(),this.popState(),"BLOCK_ARROW_END";break;case 92:return o.getLogger().debug("Lex: LINK","#"+h.yytext+"#"),15;break;case 93:return o.getLogger().debug("Lex: LINK",h.yytext),15;break;case 94:return o.getLogger().debug("Lex: LINK",h.yytext),15;break;case 95:return o.getLogger().debug("Lex: LINK",h.yytext),15;break;case 96:return o.getLogger().debug("Lex: START_LINK",h.yytext),this.pushState("LLABEL"),16;break;case 97:return o.getLogger().debug("Lex: START_LINK",h.yytext),this.pushState("LLABEL"),16;break;case 98:return o.getLogger().debug("Lex: START_LINK",h.yytext),this.pushState("LLABEL"),16;break;case 99:this.pushState("md_string");break;case 100:return o.getLogger().debug("Lex: Starting string"),this.pushState("string"),"LINK_LABEL";break;case 101:return this.popState(),o.getLogger().debug("Lex: LINK","#"+h.yytext+"#"),15;break;case 102:return this.popState(),o.getLogger().debug("Lex: LINK",h.yytext),15;break;case 103:return this.popState(),o.getLogger().debug("Lex: LINK",h.yytext),15;break;case 104:return o.getLogger().debug("Lex: COLON",h.yytext),h.yytext=h.yytext.slice(1),27;break}},"anonymous"),rules:[/^(?:block-beta\b)/,/^(?:block:)/,/^(?:block\b)/,/^(?:[\s]+)/,/^(?:[\n]+)/,/^(?:((\u000D\u000A)|(\u000A)))/,/^(?:columns\s+auto\b)/,/^(?:columns\s+[\d]+)/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:space[:]\d+)/,/^(?:space\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\s+)/,/^(?:DEFAULT\s+)/,/^(?:\w+\s+)/,/^(?:[^\n]*)/,/^(?:class\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:style\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:end\b\s*)/,/^(?:\(\(\()/,/^(?:\)\)\))/,/^(?:[\)]\))/,/^(?:\}\})/,/^(?:\})/,/^(?:\(-)/,/^(?:-\))/,/^(?:\(\()/,/^(?:\]\])/,/^(?:\()/,/^(?:\]\))/,/^(?:\\\])/,/^(?:\/\])/,/^(?:\)\])/,/^(?:[\)])/,/^(?:\]>)/,/^(?:[\]])/,/^(?:-\))/,/^(?:\(-)/,/^(?:\)\))/,/^(?:\))/,/^(?:\(\(\()/,/^(?:\(\()/,/^(?:\{\{)/,/^(?:\{)/,/^(?:>)/,/^(?:\(\[)/,/^(?:\()/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\[\\)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:\[)/,/^(?:<\[)/,/^(?:[^\(\[\n\-\)\{\}\s\<\>:=]+)/,/^(?:$)/,/^(?:["][`])/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:\]>\s*\()/,/^(?:,?\s*right\s*)/,/^(?:,?\s*left\s*)/,/^(?:,?\s*x\s*)/,/^(?:,?\s*y\s*)/,/^(?:,?\s*up\s*)/,/^(?:,?\s*down\s*)/,/^(?:\)\s*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*~~[\~]+\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:["][`])/,/^(?:["])/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?::\d+)/],conditions:{STYLE_DEFINITION:{rules:[28],inclusive:!1},STYLE_STMNT:{rules:[27],inclusive:!1},CLASSDEFID:{rules:[22],inclusive:!1},CLASSDEF:{rules:[20,21],inclusive:!1},CLASS_STYLE:{rules:[25],inclusive:!1},CLASS:{rules:[24],inclusive:!1},LLABEL:{rules:[99,100,101,102,103],inclusive:!1},ARROW_DIR:{rules:[85,86,87,88,89,90,91],inclusive:!1},BLOCK_ARROW:{rules:[76,81,84],inclusive:!1},NODE:{rules:[37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,77,80],inclusive:!1},md_string:{rules:[9,10,78,79],inclusive:!1},space:{rules:[],inclusive:!1},string:{rules:[12,13,82,83],inclusive:!1},acc_descr_multiline:{rules:[34,35],inclusive:!1},acc_descr:{rules:[32],inclusive:!1},acc_title:{rules:[30],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,11,14,15,16,17,18,19,23,26,29,31,33,36,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,92,93,94,95,96,97,98,104],inclusive:!0}}};return R}();N.lexer=v;function z(){this.yy={}}return e(z,"Parser"),z.prototype=N,N.Parser=z,new z}();be.parser=be;var rt=be,M=new Map,me=[],Se=new Map,Ie="color",Oe="fill",st="bgFill",ve=",",ee=new Map,Le="",it=e((t)=>y.sanitizeText(t,s()),"sanitizeText"),at=e(function(t,l=""){let u=ee.get(t);if(!u)u={id:t,styles:[],textStyles:[]},ee.set(t,u);if(l!==void 0&&l!==null)l.split(ve).forEach((n)=>{let g=n.replace(/([^;]*);/,"$1").trim();if(RegExp(Ie).exec(n)){let i=g.replace(Oe,st).replace(Ie,Oe);u.textStyles.push(i)}u.styles.push(g)})},"addStyleClass"),nt=e(function(t,l=""){let u=M.get(t);if(l!==void 0&&l!==null)u.styles=l.split(ve)},"addStyle2Node"),ot=e(function(t,l){t.split(",").forEach(function(u){let n=M.get(u);if(n===void 0){let g=u.trim();n={id:g,type:"na",children:[]},M.set(g,n)}if(!n.classes)n.classes=[];n.classes.push(l)})},"setCssClass"),Ae=0,ze=e((t,l)=>{let u=t.flat(),n=[],f=u.find((i)=>i?.type==="column-setting")?.columns??-1;for(let i of u){if(typeof f==="number"&&f>0&&i.type!=="column-setting"&&typeof i.widthInColumns==="number"&&i.widthInColumns>f)r.warn(`Block ${i.id} width ${i.widthInColumns} exceeds configured column width ${f}`);if(i.label)i.label=it(i.label);if(i.type==="classDef"){at(i.id,i.css);continue}if(i.type==="applyClass"){ot(i.id,i?.styleClass??"");continue}if(i.type==="applyStyles"){if(i?.stylesStr)nt(i.id,i?.stylesStr);continue}if(i.type==="column-setting")l.columns=i.columns??-1;else if(i.type==="edge"){let d=(Se.get(i.id)??0)+1;Se.set(i.id,d),i.id=d+"-"+i.id,me.push(i)}else{if(!i.label)if(i.type==="composite")i.label="";else i.label=i.id;let d=M.get(i.id);if(d===void 0){if(i.type==="composite")i.colorIndex=Ae++;M.set(i.id,i)}else{if(i.type!=="na")d.type=i.type;if(i.label!==i.id)d.label=i.label}if(i.children)ze(i.children,i);if(i.type==="space"){let w=i.width??1;for(let E=0;E<w;E++){let L=Ne(i);L.id=L.id+"-"+E,M.set(L.id,L),n.push(L)}}else if(d===void 0)n.push(i)}}l.children=n},"populateBlockDatabase"),ke=[],X={id:"root",type:"composite",children:[],columns:-1},lt=e(()=>{r.debug("Clear called"),C(),X={id:"root",type:"composite",children:[],columns:-1},M=new Map([["root",X]]),ke=[],ee=new Map,me=[],Se=new Map,Le="",Ae=0},"clear");function Be(t){switch(r.debug("typeStr2Type",t),t){case"[]":return"square";case"()":return r.debug("we have a round"),"round";case"(())":return"circle";case">]":return"rect_left_inv_arrow";case"{}":return"diamond";case"{{}}":return"hexagon";case"([])":return"stadium";case"[[]]":return"subroutine";case"[()]":return"cylinder";case"((()))":return"doublecircle";case"[//]":return"lean_right";case"[\\\\]":return"lean_left";case"[/\\]":return"trapezoid";case"[\\/]":return"inv_trapezoid";case"<[]>":return"block_arrow";default:return"na"}}e(Be,"typeStr2Type");function Re(t){switch(r.debug("typeStr2Type",t),t){case"==":return"thick";default:return"normal"}}e(Re,"edgeTypeStr2Type");function Pe(t){switch(t.trim().slice(-1)){case"x":return"arrow_cross";case"o":return"arrow_circle";case">":return"arrow_point";default:return""}}e(Pe,"edgeStrToEdgeData");function Fe(t){switch(t.trim().charAt(0)){case"x":return"arrow_cross";case"o":return"arrow_circle";case"<":return"arrow_point";default:return"arrow_open"}}e(Fe,"edgeStrToEdgeStartData");function Me(t){return t.includes("==")?"thick":"normal"}e(Me,"edgeStrToThickness");function Ke(t){if(t.includes(".-"))return"dotted";return"solid"}e(Ke,"edgeStrToPattern");var Ce=0,ct=e(()=>(Ce++,"id-"+Math.random().toString(36).substr(2,12)+"-"+Ce),"generateId"),ut=e((t)=>{X.children=t,ze(t,X),ke=X.children},"setHierarchy"),gt=e((t)=>{let l=M.get(t);if(!l)return-1;if(l.columns)return l.columns;if(!l.children)return-1;return l.children.length},"getColumns"),dt=e(()=>[...M.values()],"getBlocksFlat"),pt=e(()=>ke||[],"getBlocks"),ft=e(()=>me,"getEdges"),bt=e((t)=>M.get(t),"getBlock"),xt=e((t)=>{M.set(t.id,t)},"setBlock"),mt=e((t)=>{Le=t},"setDiagramId"),Lt=e(()=>Le,"getDiagramId"),kt=e(()=>r,"getLogger"),yt=e(function(){return ee},"getClasses"),wt={getConfig:e(()=>b().block,"getConfig"),typeStr2Type:Be,edgeTypeStr2Type:Re,edgeStrToEdgeData:Pe,edgeStrToEdgeStartData:Fe,edgeStrToThickness:Me,edgeStrToPattern:Ke,getLogger:kt,getBlocksFlat:dt,getBlocks:pt,getEdges:ft,setHierarchy:ut,getBlock:bt,setBlock:xt,getColumns:gt,getClasses:yt,clear:lt,generateId:ct,setDiagramId:mt,getDiagramId:Lt},Et=wt,_t=e((t)=>{let{theme:l,bkgColorArray:u,borderColorArray:n}=t;if(!ae(l,n))return"";let g=ie(t.look),f=ce(u),i="";for(let d=0;d<Ye(t.THEME_COLOR_LIMIT,n);d++){let w=n[d%n.length],E=f?`fill: ${u[d%u.length]};`:"",L=`[data-look="${g}"][data-color-id="color-${d}"]`;i+=`
7
-
8
- ${L}.node rect.composite {
9
- stroke: ${w};
10
- ${E}
11
- }
12
- `}return i},"genColor"),fe=e((t,l)=>{let u=Ot,n=u(t,"r"),g=u(t,"g"),f=u(t,"b");return le(n,g,f,l)},"fade"),Dt=e((t)=>`${_t(t)}
13
- .label {
14
- font-family: ${t.fontFamily};
15
- color: ${t.nodeTextColor||t.textColor};
16
- }
17
- .cluster-label text {
18
- fill: ${t.titleColor};
19
- }
20
- .cluster-label span {
21
- color: ${t.titleColor};
22
- }
23
-
24
-
25
-
26
- .label text,span {
27
- fill: ${t.nodeTextColor||t.textColor};
28
- color: ${t.nodeTextColor||t.textColor};
29
- }
30
-
31
- .node rect,
32
- .node circle,
33
- .node ellipse,
34
- .node polygon,
35
- .node path {
36
- fill: ${t.mainBkg};
37
- stroke: ${t.nodeBorder};
38
- /* From the theme, as every other diagram does. Pinned at 1px here, so block drew a
39
- thinner border than an identical flowchart node under any theme asking for more --
40
- the neo theme asks for 2. Nothing downstream corrected it: the neo rules set stroke
41
- and filter, never stroke-width. */
42
- stroke-width: ${t.strokeWidth??1}px;
43
- }
44
- .flowchart-label text {
45
- text-anchor: middle;
46
- }
47
- // .flowchart-label .text-outer-tspan {
48
- // text-anchor: middle;
49
- // }
50
- // .flowchart-label .text-inner-tspan {
51
- // text-anchor: start;
52
- // }
53
-
54
- .node .label {
55
- text-align: center;
56
- }
57
- .node.clickable {
58
- cursor: pointer;
59
- }
60
-
61
- .arrowheadPath {
62
- fill: ${t.arrowheadColor};
63
- }
64
-
65
- .edgePaths .path {
66
- stroke: ${t.lineColor};
67
- stroke-width: 2.0px;
68
- }
69
-
70
- .flowchart-link {
71
- stroke: ${t.lineColor};
72
- fill: none;
73
- }
74
-
75
- .edgeLabel {
76
- background-color: ${t.edgeLabelBackground};
77
- /*
78
- * This is for backward compatibility with existing code that didn't
79
- * add a \`<p>\` around edge labels.
80
- *
81
- * TODO: We should probably remove this in a future release.
82
- */
83
- p {
84
- margin: 0;
85
- padding: 0;
86
- display: inline;
87
- }
88
- rect {
89
- opacity: 0.5;
90
- background-color: ${t.edgeLabelBackground};
91
- fill: ${t.edgeLabelBackground};
92
- }
93
- text-align: center;
94
- }
95
-
96
- /* For html labels only */
97
- .labelBkg {
98
- background-color: ${t.edgeLabelBackground};
99
- }
100
-
101
- .node .cluster {
102
- // fill: ${fe(t.mainBkg,0.5)};
103
- fill: ${fe(t.clusterBkg,0.5)};
104
- stroke: ${fe(t.clusterBorder,0.2)};
105
- box-shadow: rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px;
106
- stroke-width: 1px;
107
- }
108
-
109
- .cluster text {
110
- fill: ${t.titleColor};
111
- }
112
-
113
- .cluster span {
114
- color: ${t.titleColor};
115
- }
116
- /* .cluster div {
117
- color: ${t.titleColor};
118
- } */
119
-
120
- div.mermaidTooltip {
121
- position: absolute;
122
- text-align: center;
123
- max-width: 200px;
124
- padding: 2px;
125
- font-family: ${t.fontFamily};
126
- font-size: 12px;
127
- background: ${t.tertiaryColor};
128
- border: 1px solid ${t.border2};
129
- border-radius: 2px;
130
- pointer-events: none;
131
- z-index: 100;
132
- }
133
-
134
- .flowchartTitleText {
135
- text-anchor: middle;
136
- font-size: 18px;
137
- fill: ${t.textColor};
138
- }
139
- ${je()}
140
- `,"getStyles"),Nt=Dt;function xe(t,l){if(t===0||!Number.isInteger(t))throw Error("Columns must be an integer !== 0.");if(l<0||!Number.isInteger(l))throw Error("Position must be a non-negative integer."+l);if(t<0)return{px:l,py:0};if(t===1)return{px:0,py:l};let u=l%t,n=Math.floor(l/t);return{px:u,py:n}}e(xe,"calculateBlockPosition");var It=e((t)=>{let l=0,u=0;for(let n of t.children){let{width:g,height:f,x:i,y:d}=n.size??{width:0,height:0,x:0,y:0};if(r.debug("getMaxChildSize abc95 child:",n.id,"width:",g,"height:",f,"x:",i,"y:",d,n.type),n.type==="space")continue;let w=g/(n.widthInColumns??1);if(w>l)l=w;if(f>u)u=f}return{width:l,height:u}},"getMaxChildSize");function te(t,l,u=0,n=0,g=8){if(r.debug("setBlockSizes abc95 (start)",t.id,t?.size?.x,"block width =",t?.size,"siblingWidth",u),!t?.size?.width)t.size={width:u,height:n,x:0,y:0};let f=0,i=0;if(t.children?.length>0){for(let k of t.children)te(k,l,0,0,g);let d=It(t);f=d.width,i=d.height,r.debug("setBlockSizes abc95 maxWidth of",t.id,":s children is ",f,i);for(let k of t.children)if(k.size)r.debug(`abc95 Setting size of children of ${t.id} id=${k.id} ${f} ${i} ${JSON.stringify(k.size)}`),k.size.width=f*(k.widthInColumns??1)+g*((k.widthInColumns??1)-1),k.size.height=i,k.size.x=0,k.size.y=0,r.debug(`abc95 updating size of ${t.id} children child:${k.id} maxWidth:${f} maxHeight:${i}`);for(let k of t.children)te(k,l,f,i,g);let w=t.columns??-1,E=0;for(let k of t.children)E+=k.widthInColumns??1;let L=t.children.length;if(w>0&&w<E)L=w;let m=Math.ceil(E/L),_=L*(f+g)+g,T=m*(i+g)+g;if(_<u){r.debug(`Detected to small sibling: abc95 ${t.id} siblingWidth ${u} siblingHeight ${n} width ${_}`),_=u,T=n;let k=(u-L*g-g)/L,I=(n-m*g-g)/m;r.debug("Size indata abc88",t.id,"childWidth",k,"maxWidth",f),r.debug("Size indata abc88",t.id,"childHeight",I,"maxHeight",i),r.debug("Size indata abc88 xSize",L,"padding",g);for(let N of t.children)if(N.size)N.size.width=k,N.size.height=I,N.size.x=0,N.size.y=0}if(r.debug(`abc95 (finale calc) ${t.id} xSize ${L} ySize ${m} columns ${w}${t.children.length} width=${Math.max(_,t.size?.width||0)}`),_<(t?.size?.width||0)){_=t?.size?.width||0;let k=w>0?Math.min(t.children.length,w):t.children.length;if(k>0){let I=(_-k*g-g)/k;r.debug("abc95 (growing to fit) width",t.id,_,t.size?.width,I);for(let N of t.children)if(N.size)N.size.width=I}}t.size={width:_,height:T,x:0,y:0}}r.debug("setBlockSizes abc94 (done)",t.id,t?.size?.x,t?.size?.width,t?.size?.y,t?.size?.height)}e(te,"setBlockSizes");function ye(t,l,u=8){r.debug(`abc85 layout blocks (=>layoutBlocks) ${t.id} x: ${t?.size?.x} y: ${t?.size?.y} width: ${t?.size?.width}`);let n=t.columns??-1;if(r.debug("layoutBlocks columns abc95",t.id,"=>",n,t),t.children&&t.children.length>0){let g=t?.children[0]?.size?.width??0,f=t.children.length*g+(t.children.length-1)*u;r.debug("widthOfChildren 88",f,"posX");let i=new Map;{let m=0;for(let _ of t.children){if(!_.size)continue;let{py:T}=xe(n,m),k=i.get(T)??0;if(_.size.height>k)i.set(T,_.size.height);let I=_?.widthInColumns??1;if(n>0)I=Math.min(I,n-m%n);m+=I}}let d=new Map;{let m=0,_=[...i.keys()].sort((T,k)=>T-k);for(let T of _)d.set(T,m),m+=(i.get(T)??0)+u}let w=0;r.debug("abc91 block?.size?.x",t.id,t?.size?.x);let E=t?.size?.x?t?.size?.x+(-t?.size?.width/2||0):-u,L=0;for(let m of t.children){let _=t;if(!m.size)continue;let{width:T,height:k}=m.size,{px:I,py:N}=xe(n,w);if(N!=L)L=N,E=t?.size?.x?t?.size?.x+(-t?.size?.width/2||0):-u,r.debug("New row in layout for block",t.id," and child ",m.id,L);if(r.debug(`abc89 layout blocks (child) id: ${m.id} Pos: ${w} (px, py) ${I},${N} (${_?.size?.x},${_?.size?.y}) parent: ${_.id} width: ${T}${u}`),_.size){let z=T/2;m.size.x=E+u+z,r.debug(`abc91 layout blocks (calc) px, pyid:${m.id} startingPos=X${E} new startingPosX${m.size.x} ${z} padding=${u} width=${T} halfWidth=${z} => x:${m.size.x} y:${m.size.y} ${m.widthInColumns} (width * (child?.w || 1)) / 2 ${T*(m?.widthInColumns??1)/2}`),E=m.size.x+z;let R=d.get(N)??0,S=i.get(N)??k;m.size.y=_.size.y-_.size.height/2+R+S/2+u,r.debug(`abc88 layout blocks (calc) px, pyid:${m.id}startingPosX${E}${u}${z}=>x:${m.size.x}y:${m.size.y}${m.widthInColumns}(width * (child?.w || 1)) / 2${T*(m?.widthInColumns??1)/2}`)}if(m.children)ye(m,l,u);let v=m?.widthInColumns??1;if(n>0)v=Math.min(v,n-w%n);w+=v,r.debug("abc88 columnsPos",m,w)}}r.debug(`layout blocks (<==layoutBlocks) ${t.id} x: ${t?.size?.x} y: ${t?.size?.y} width: ${t?.size?.width}`)}e(ye,"layoutBlocks");function we(t,{minX:l,minY:u,maxX:n,maxY:g}={minX:0,minY:0,maxX:0,maxY:0}){if(t.size&&t.id!=="root"){let{x:f,y:i,width:d,height:w}=t.size;if(f-d/2<l)l=f-d/2;if(i-w/2<u)u=i-w/2;if(f+d/2>n)n=f+d/2;if(i+w/2>g)g=i+w/2}if(t.children)for(let f of t.children)({minX:l,minY:u,maxX:n,maxY:g}=we(f,{minX:l,minY:u,maxX:n,maxY:g}));return{minX:l,minY:u,maxX:n,maxY:g}}e(we,"findBounds");function We(t){let l=t.getBlock("root");if(!l)return;let u=s()?.block?.padding??8;te(l,t,0,0,u),ye(l,t,u),r.debug("getBlocks",JSON.stringify(l,null,2));let{minX:n,minY:g,maxX:f,maxY:i}=we(l),d=i-g,w=f-n;return{x:n,y:g,width:w,height:d}}e(We,"layout");function Ee(t,l,u=!1){let n=t,g="default";if((n?.classes?.length||0)>0)g=(n?.classes??[]).join(" ");g=g+" flowchart-label";let f=(n?.classes??[]).flatMap((k)=>l.getClasses().get(k)?.styles??[]),i=0,d="rect",w;switch(n.type){case"round":i=5,d="rect";break;case"composite":i=0,d="composite",w=0;break;case"square":d="rect";break;case"diamond":d="question";break;case"hexagon":d="hexagon";break;case"block_arrow":d="block_arrow";break;case"odd":d="rect_left_inv_arrow";break;case"lean_right":d="lean_right";break;case"lean_left":d="lean_left";break;case"trapezoid":d="trapezoid";break;case"inv_trapezoid":d="inv_trapezoid";break;case"rect_left_inv_arrow":d="rect_left_inv_arrow";break;case"circle":d="circle";break;case"ellipse":d="ellipse";break;case"stadium":d="stadium";break;case"subroutine":d="subroutine";break;case"cylinder":d="cylinder";break;case"group":d="rect";break;case"doublecircle":d="doublecircle";break;default:d="rect"}let E=Qa(n?.styles??[]),L=n.label,m=n.size??{width:0,height:0,x:0,y:0},_=l.getDiagramId();return{labelStyle:E.labelStyle,shape:d,label:L,labelText:L,rx:i,ry:i,class:g,cssClasses:g,cssStyles:n?.styles??[],cssCompiledStyles:f,style:E.style,id:n.id,domId:_?`${_}-${n.id}`:n.id,isGroup:!1,directions:n.directions,width:m.width||void 0,height:m.height||void 0,wrappingWidth:m.width||Number.POSITIVE_INFINITY,x:m.x,y:m.y,positioned:u,intersect:void 0,padding:w??b()?.block?.padding??0,widthInColumns:n.widthInColumns??1,colorIndex:n.colorIndex,look:b().look}}e(Ee,"getNodeFromBlock");async function Ve(t,l,u){let n=Ee(l,u,!1);if(l.type==="group")return;let g=b(),f=await St(t,n,{config:g}),i=f.node()?.getBBox()??{width:0,height:0},d=u.getBlock(n.id);d.size={width:i.width,height:i.height,x:0,y:0,node:f},u.setBlock(d),f.remove()}e(Ve,"calculateBlockSize");async function Ue(t,l,u){let n=Ee(l,u,!0);if(u.getBlock(n.id).type!=="space"){let f=b(),i=await St(t,n,{config:f});if(n.colorIndex!==void 0)Ze(i,n.colorIndex,f.theme,f.themeVariables?.borderColorArray);l.intersect=n?.intersect,ht(n)}}e(Ue,"insertBlockPositioned");async function re(t,l,u,n){for(let g of l)if(await n(t,g,u),g.children)await re(t,g.children,u,n)}e(re,"performOperations");async function He(t,l,u){await re(t,l,u,Ve)}e(He,"calculateBlockSizes");async function Xe(t,l,u){await re(t,l,u,Ue)}e(Xe,"insertBlocks");async function Ge(t,l,u,n,g){let f=new Q({multigraph:!0,compound:!0});f.setGraph({rankdir:"TB",nodesep:10,ranksep:10,marginx:8,marginy:8});for(let i of u)if(i.size)f.setNode(i.id,{width:i.size.width,height:i.size.height,intersect:i.intersect});for(let i of l)if(i.start&&i.end){let d=n.getBlock(i.start),w=n.getBlock(i.end);if(d?.size&&w?.size){let E=d.size,L=w.size,m=[{x:E.x,y:E.y},{x:E.x+(L.x-E.x)/2,y:E.y+(L.y-E.y)/2},{x:L.x,y:L.y}],_=g?`${g}-${i.id}`:i.id,T=i.thickness==="thick"?"edge-thickness-thick":"edge-thickness-normal",k=i.pattern==="dotted"?"edge-pattern-dotted":"edge-pattern-solid",I=`${T} ${k} flowchart-link LS-a1 LE-b1`;if(Jt(t,{...i,id:_,arrowTypeEnd:i.arrowTypeEnd,arrowTypeStart:i.arrowTypeStart,points:m,classes:I},{},"block",f.node(i.start),f.node(i.end),g),i.label)await Tt(t,{...i,label:i.label,labelStyle:"stroke: #333; stroke-width: 1.5px;fill:none;",arrowTypeEnd:i.arrowTypeEnd,arrowTypeStart:i.arrowTypeStart,points:m,classes:I}),Hn({...i,x:m[1].x,y:m[1].y},{originalPath:m})}}}e(Ge,"insertEdges");var Ct=e(function(t,l){return l.db.getClasses()},"getClasses"),vt=e(async function(t,l,u,n){let{securityLevel:g,block:f}=b(),i=n.db;i.setDiagramId(l);let d;if(g==="sandbox")d=p("#i"+l);let w=g==="sandbox"?p(d.nodes()[0].contentDocument.body):p("body"),E=g==="sandbox"?w.select(`[id="${l}"]`):p(`[id="${l}"]`);Da(E,b()),Yn(E,["point","circle","cross"],n.type,l);let m=i.getBlocks(),_=i.getBlocksFlat(),T=i.getEdges(),k=E.insert("g").attr("class","block");await He(k,m,i);let I=We(i);await Xe(k,m,i),await Ge(k,T,_,i,l);let N=k.node()?.getBBox(),v=N&&Number.isFinite(N.width)&&Number.isFinite(N.height)?N:I;if(v){let z=Math.max(1,Math.round(0.125*(v.width/v.height))),R=v.height+z+10,S=v.width+10,{useMaxWidth:o}=f;B(E,R,S,!!o),r.debug("Here Bounds",I,v),E.attr("viewBox",`${v.x-5} ${v.y-5} ${v.width+10} ${v.height+10}`)}},"draw"),At={draw:vt,getClasses:Ct},nr={parser:rt,db:Et,renderer:At,styles:Nt};export{nr as diagram};
@@ -1,24 +0,0 @@
1
- import{W}from"./chunk-89fkdgbp.js";import{e,r,D,b,B,C,S,E,T,A,I,L,V,U}from"./chunk-vymqrpm3.js";import{X}from"./chunk-n8gfjj9a.js";var M=D.packet,F=class{constructor(){this.packet=[],this.setAccTitle=S,this.getAccTitle=E,this.setDiagramTitle=I,this.getDiagramTitle=L,this.getAccDescription=A,this.setAccDescription=T}static{e(this,"PacketDB")}getConfig(){let t=U({...M,...b().packet});if(t.showBits)t.paddingY+=10;return t}getPacket(){return this.packet}pushWord(t){if(t.length>0)this.packet.push(t)}clear(){C(),this.packet=[]}},Y=1e4,O=e((t,a)=>{W(t,a);let i=-1,s=[],l=1,{bitsPerRow:d}=a.getConfig();for(let{start:o,end:n,bits:g,label:f}of t.blocks){if(o!==void 0&&n!==void 0&&n<o)throw Error(`Packet block ${o} - ${n} is invalid. End must be greater than start.`);if(o??=i+1,o!==i+1)throw Error(`Packet block ${o} - ${n??o} is not contiguous. It should start from ${i+1}.`);if(g===0)throw Error(`Packet block ${o} is invalid. Cannot have a zero bit field.`);n??=o+(g??1)-1,g??=n-o+1,i=n,r.debug(`Packet block ${o} - ${i} with label ${f}`);while(s.length<=d+1&&a.getPacket().length<Y){let[p,h]=j({start:o,end:n,bits:g,label:f},l,d);if(s.push(p),p.end+1===l*d)a.pushWord(s),s=[],l++;if(!h)break;({start:o,end:n,bits:g,label:f}=h)}}a.pushWord(s)},"populate"),j=e((t,a,i)=>{if(t.start===void 0)throw Error("start should have been set during first phase");if(t.end===void 0)throw Error("end should have been set during first phase");if(t.start>t.end)throw Error(`Block start ${t.start} is greater than block end ${t.end}.`);if(t.end+1<=a*i)return[t,void 0];let s=a*i-1,l=a*i;return[{start:t.start,end:s,label:t.label,bits:s-t.start},{start:l,end:t.end,label:t.label,bits:t.end-l}]},"getNextFittingBlock"),P={parser:{yy:void 0},parse:e(async(t)=>{let a=await X("packet",t),i=P.parser?.yy;if(!(i instanceof F))throw Error("parser.parser?.yy was not a PacketDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");r.debug(a),O(a,i)},"parse")},G=e((t,a,i,s)=>{let l=s.db,d=l.getConfig(),{rowHeight:o,paddingY:n,bitWidth:g,bitsPerRow:f}=d,p=l.getPacket(),h=l.getDiagramTitle(),w=o+n,c=w*(p.length+1)-(h?0:o),k=g*f+2,m=V(a);m.attr("viewBox",`0 0 ${k} ${c}`),B(m,c,k,d.useMaxWidth);for(let[y,u]of p.entries())H(m,u,y,d);m.append("text").text(h).attr("x",k/2).attr("y",c-w/2).attr("dominant-baseline","middle").attr("text-anchor","middle").attr("class","packetTitle")},"draw"),H=e((t,a,i,{rowHeight:s,paddingX:l,paddingY:d,bitWidth:o,bitsPerRow:n,showBits:g,bitOrder:f})=>{let p=t.append("g"),h=i*(s+d)+d,w=f==="descending";for(let c of a){let k=c.end-c.start+1,m=c.start%n,u=(w?n-m-k:m)*o+1,v=k*o-l;if(p.append("rect").attr("x",u).attr("y",h).attr("width",v).attr("height",s).attr("class","packetBlock"),p.append("text").attr("x",u+v/2).attr("y",h+s/2).attr("class","packetLabel").attr("dominant-baseline","middle").attr("text-anchor","middle").text(c.label),!g)continue;let[_,N]=w?[c.end,c.start]:[c.start,c.end],x=k===1,z=h-2;if(p.append("text").attr("x",u+(x?v/2:0)).attr("y",z).attr("class","packetByte start").attr("dominant-baseline","auto").attr("text-anchor",x?"middle":"start").text(_),!x)p.append("text").attr("x",u+v).attr("y",z).attr("class","packetByte end").attr("dominant-baseline","auto").attr("text-anchor","end").text(N)}},"drawWord"),K={draw:G},q={byteFontSize:"10px",startByteColor:"black",endByteColor:"black",labelColor:"black",labelFontSize:"12px",titleColor:"black",titleFontSize:"14px",blockStrokeColor:"black",blockStrokeWidth:"1",blockFillColor:"#efefef"},J=e(({packet:t}={})=>{let a=U(q,t);return`
2
- .packetByte {
3
- font-size: ${a.byteFontSize};
4
- }
5
- .packetByte.start {
6
- fill: ${a.startByteColor};
7
- }
8
- .packetByte.end {
9
- fill: ${a.endByteColor};
10
- }
11
- .packetLabel {
12
- fill: ${a.labelColor};
13
- font-size: ${a.labelFontSize};
14
- }
15
- .packetTitle {
16
- fill: ${a.titleColor};
17
- font-size: ${a.titleFontSize};
18
- }
19
- .packetBlock {
20
- stroke: ${a.blockStrokeColor};
21
- stroke-width: ${a.blockStrokeWidth};
22
- fill: ${a.blockFillColor};
23
- }
24
- `},"styles"),ot={parser:P,get db(){return new F},renderer:K,styles:J};export{ot as diagram};
@@ -1,2 +0,0 @@
1
- import{e,r,B}from"./chunk-vymqrpm3.js";var se=e((t,i,o,n)=>{t.attr("class",o);let{width:h,height:a,x:w,y:x}=u(t,i);B(t,a,h,n);let c=m(w,x,h,a,i);t.attr("viewBox",c),r.debug(`viewBox configured: ${c} with padding: ${i}`)},"setupViewPortForSVG"),u=e((t,i)=>{let o=t.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:o.width+i*2,height:o.height+i*2,x:o.x,y:o.y}},"calculateDimensionsWithPadding"),m=e((t,i,o,n,h)=>`${t-h} ${i-h} ${o} ${n}`,"createViewBox");
2
- export{se};
package/web/install.ps1 DELETED
@@ -1,91 +0,0 @@
1
- # Basalt 一键安装(Windows):
2
- # irm https://basalt.work/install.ps1 | iex
3
- #
4
- # 可选环境变量(在同一个 PowerShell 窗口里先设置):
5
- # $env:BASALT_VERSION = "0.2.0" 安装指定版本(默认最新)
6
- # $env:BASALT_INSTALL_DIR = "<目录>" 安装位置(默认 %LOCALAPPDATA%\Programs\Basalt)
7
- # $env:BASALT_AUTOSTART = "1" 登录后自动启动
8
- # $env:BASALT_NO_START = "1" 装完不启动
9
- # $env:BASALT_DOWNLOAD_URL = "<地址>" 从镜像下载(目录里要有发布产物和 SHA256SUMS)
10
- $ErrorActionPreference = "Stop"
11
- $ProgressPreference = "SilentlyContinue" # 进度条会让 Invoke-WebRequest 慢几十倍
12
-
13
- $Repo = "Bkm016/Basalt"
14
- $Asset = "basalt-windows-x64.exe"
15
- $InstallDir = if ($env:BASALT_INSTALL_DIR) { $env:BASALT_INSTALL_DIR } else { Join-Path $env:LOCALAPPDATA "Programs\Basalt" }
16
- $Exe = Join-Path $InstallDir "basalt.exe"
17
-
18
- if (-not [Environment]::Is64BitOperatingSystem) { throw "Basalt 只支持 64 位 Windows" }
19
- # 旧版 PowerShell 默认不启用 TLS 1.2,连不上 GitHub
20
- [Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12
21
-
22
- $Base = if ($env:BASALT_DOWNLOAD_URL) {
23
- $env:BASALT_DOWNLOAD_URL.TrimEnd('/')
24
- } elseif ($env:BASALT_VERSION) {
25
- "https://github.com/$Repo/releases/download/v$($env:BASALT_VERSION.TrimStart('v'))"
26
- } else {
27
- "https://github.com/$Repo/releases/latest/download"
28
- }
29
-
30
- $Temp = Join-Path ([IO.Path]::GetTempPath()) ("basalt-" + [Guid]::NewGuid())
31
- New-Item -ItemType Directory -Force $Temp | Out-Null
32
- try {
33
- Write-Host "下载 $Asset ..."
34
- Invoke-WebRequest -UseBasicParsing "$Base/$Asset" -OutFile (Join-Path $Temp $Asset)
35
- Invoke-WebRequest -UseBasicParsing "$Base/SHA256SUMS" -OutFile (Join-Path $Temp "SHA256SUMS")
36
-
37
- $Expected = Get-Content (Join-Path $Temp "SHA256SUMS") |
38
- ForEach-Object { $Parts = $_ -split '\s+\*?'; if ($Parts[1] -eq $Asset) { $Parts[0] } } |
39
- Select-Object -First 1
40
- $Actual = (Get-FileHash -Algorithm SHA256 (Join-Path $Temp $Asset)).Hash
41
- if (-not $Expected -or $Expected -ne $Actual.ToLower()) { throw "$Asset 校验失败,已停止安装" }
42
-
43
- New-Item -ItemType Directory -Force $InstallDir | Out-Null
44
- # 正在运行的 exe 不能覆盖但能改名:旧版本挪开,新版本启动后会删掉它
45
- if (Test-Path $Exe) {
46
- $Old = Join-Path $InstallDir "basalt.old.exe"
47
- Remove-Item -Force -ErrorAction SilentlyContinue $Old
48
- Move-Item -Force $Exe $Old
49
- }
50
- Move-Item -Force (Join-Path $Temp $Asset) $Exe
51
- } finally {
52
- Remove-Item -Recurse -Force -ErrorAction SilentlyContinue $Temp
53
- }
54
- Write-Host "已安装 Basalt 到 $Exe"
55
-
56
- # ---------- PATH ----------
57
-
58
- $UserPath = [Environment]::GetEnvironmentVariable("Path", "User")
59
- if (-not (($UserPath -split ';') -contains $InstallDir)) {
60
- [Environment]::SetEnvironmentVariable("Path", (@($UserPath, $InstallDir) | Where-Object { $_ }) -join ';', "User")
61
- $env:Path = "$env:Path;$InstallDir"
62
- Write-Host "已把 $InstallDir 加入用户 PATH,新开终端后可直接运行 basalt"
63
- }
64
-
65
- # ---------- 快捷方式 ----------
66
-
67
- function New-Shortcut($Path) {
68
- $Shell = New-Object -ComObject WScript.Shell
69
- $Link = $Shell.CreateShortcut($Path)
70
- $Link.TargetPath = $Exe
71
- $Link.WorkingDirectory = $InstallDir
72
- $Link.Description = "Basalt"
73
- $Link.Save()
74
- }
75
- $Programs = [Environment]::GetFolderPath("Programs")
76
- New-Shortcut (Join-Path $Programs "Basalt.lnk")
77
- Write-Host "已添加开始菜单快捷方式"
78
- if ($env:BASALT_AUTOSTART) {
79
- New-Shortcut (Join-Path ([Environment]::GetFolderPath("Startup")) "Basalt.lnk")
80
- Write-Host "已设置登录后自动启动"
81
- }
82
-
83
- # ---------- 启动 ----------
84
-
85
- if ($env:BASALT_NO_START) {
86
- Write-Host "从开始菜单打开 Basalt,或运行 basalt --open"
87
- return
88
- }
89
- # --replace:升级时接替旧版本进程;--open:打开带配对链接的工作台。托盘图标常驻右下角
90
- Start-Process -FilePath $Exe -ArgumentList "--open", "--replace" -WorkingDirectory $InstallDir
91
- Write-Host "Basalt 已启动,浏览器会打开工作台;之后可以从托盘图标或开始菜单再次打开。"
package/web/install.sh DELETED
@@ -1,177 +0,0 @@
1
- #!/bin/sh
2
- # Basalt 一键安装(Linux / macOS):
3
- # curl -fsSL https://basalt.work/install.sh | sh
4
- #
5
- # 可选环境变量:
6
- # BASALT_VERSION=0.2.0 安装指定版本(默认最新)
7
- # BASALT_INSTALL_DIR=<目录> 安装位置(默认 ~/.basalt/bin)
8
- # BASALT_AUTOSTART=1 登录后自动启动(macOS LaunchAgent / Linux systemd 用户服务)
9
- # BASALT_NO_START=1 装完不启动
10
- # BASALT_NO_MODIFY_PATH=1 不改 shell 配置文件
11
- # BASALT_DOWNLOAD_URL=<地址> 从镜像下载(目录里要有发布产物和 SHA256SUMS)
12
- set -eu
13
-
14
- REPO="Bkm016/Basalt"
15
- INSTALL_DIR="${BASALT_INSTALL_DIR:-$HOME/.basalt/bin}"
16
- LOG_DIR="$HOME/.basalt"
17
-
18
- info() { printf '%s\n' "$*"; }
19
- fail() {
20
- printf '错误:%s\n' "$*" >&2
21
- exit 1
22
- }
23
-
24
- case "$(uname -s)" in
25
- Linux) os=linux ;;
26
- Darwin) os=darwin ;;
27
- MINGW* | MSYS* | CYGWIN*) fail "Windows 请在 PowerShell 里运行:irm https://basalt.work/install.ps1 | iex" ;;
28
- *) fail "不支持的系统:$(uname -s)" ;;
29
- esac
30
- case "$(uname -m)" in
31
- x86_64 | amd64) arch=x64 ;;
32
- arm64 | aarch64) arch=arm64 ;;
33
- *) fail "不支持的架构:$(uname -m)" ;;
34
- esac
35
- # Rosetta 下的终端会报告 x86_64,Apple Silicon 应该装原生版
36
- if [ "$os" = darwin ] && [ "$arch" = x64 ] && [ "$(sysctl -n sysctl.proc_translated 2> /dev/null || echo 0)" = 1 ]; then
37
- arch=arm64
38
- fi
39
-
40
- asset="basalt-$os-$arch.tar.gz"
41
- if [ -n "${BASALT_DOWNLOAD_URL:-}" ]; then
42
- base="${BASALT_DOWNLOAD_URL%/}"
43
- elif [ -n "${BASALT_VERSION:-}" ]; then
44
- base="https://github.com/$REPO/releases/download/v${BASALT_VERSION#v}"
45
- else
46
- base="https://github.com/$REPO/releases/latest/download"
47
- fi
48
-
49
- download() {
50
- if command -v curl > /dev/null 2>&1; then
51
- curl -fL --progress-bar -o "$2" "$1"
52
- elif command -v wget > /dev/null 2>&1; then
53
- wget -q --show-progress -O "$2" "$1"
54
- else
55
- fail "需要 curl 或 wget"
56
- fi
57
- }
58
-
59
- tmp=$(mktemp -d)
60
- trap 'rm -rf "$tmp"' EXIT
61
-
62
- info "下载 $asset …"
63
- download "$base/$asset" "$tmp/$asset" || fail "下载失败:$base/$asset"
64
- download "$base/SHA256SUMS" "$tmp/SHA256SUMS" || fail "下载校验文件失败"
65
-
66
- expected=$(awk -v name="$asset" '$2 == name || $2 == "*" name { print $1 }' "$tmp/SHA256SUMS")
67
- if command -v sha256sum > /dev/null 2>&1; then
68
- actual=$(sha256sum "$tmp/$asset" | awk '{ print $1 }')
69
- else
70
- actual=$(shasum -a 256 "$tmp/$asset" | awk '{ print $1 }')
71
- fi
72
- [ -n "$expected" ] && [ "$expected" = "$actual" ] || fail "$asset 校验失败,已停止安装"
73
-
74
- tar -xzf "$tmp/$asset" -C "$tmp"
75
- mkdir -p "$INSTALL_DIR"
76
- # 先放到同一目录再改名:覆盖正在运行的旧版本也不会损坏它
77
- mv "$tmp/basalt" "$INSTALL_DIR/.basalt.new"
78
- chmod 755 "$INSTALL_DIR/.basalt.new"
79
- mv "$INSTALL_DIR/.basalt.new" "$INSTALL_DIR/basalt"
80
- bin="$INSTALL_DIR/basalt"
81
- info "已安装 Basalt $("$bin" --version) 到 $bin"
82
-
83
- # ---------- PATH ----------
84
-
85
- if [ -z "${BASALT_NO_MODIFY_PATH:-}" ]; then
86
- case ":$PATH:" in
87
- *":$INSTALL_DIR:"*) ;;
88
- *)
89
- line="export PATH=\"$INSTALL_DIR:\$PATH\""
90
- case "$(basename "${SHELL:-sh}")" in
91
- zsh) rc="${ZDOTDIR:-$HOME}/.zshrc" ;;
92
- bash) [ "$os" = darwin ] && rc="$HOME/.bash_profile" || rc="$HOME/.bashrc" ;;
93
- fish)
94
- rc="$HOME/.config/fish/conf.d/basalt.fish"
95
- line="fish_add_path \"$INSTALL_DIR\""
96
- mkdir -p "$(dirname "$rc")"
97
- ;;
98
- *) rc="$HOME/.profile" ;;
99
- esac
100
- if ! grep -qsF "$line" "$rc"; then
101
- printf '\n# Basalt\n%s\n' "$line" >> "$rc"
102
- info "已把 $INSTALL_DIR 加入 PATH($rc),新开终端后可直接运行 basalt"
103
- fi
104
- ;;
105
- esac
106
- fi
107
-
108
- # ---------- 开机自启 ----------
109
-
110
- if [ -n "${BASALT_AUTOSTART:-}" ]; then
111
- mkdir -p "$LOG_DIR"
112
- if [ "$os" = darwin ]; then
113
- plist="$HOME/Library/LaunchAgents/work.basalt.plist"
114
- mkdir -p "$(dirname "$plist")"
115
- cat > "$plist" << EOF
116
- <?xml version="1.0" encoding="UTF-8"?>
117
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
118
- <plist version="1.0">
119
- <dict>
120
- <key>Label</key><string>work.basalt</string>
121
- <key>ProgramArguments</key><array><string>$bin</string></array>
122
- <key>RunAtLoad</key><true/>
123
- <key>StandardOutPath</key><string>$LOG_DIR/basalt.log</string>
124
- <key>StandardErrorPath</key><string>$LOG_DIR/basalt.log</string>
125
- </dict>
126
- </plist>
127
- EOF
128
- info "已设置登录后自动启动($plist)"
129
- elif command -v systemctl > /dev/null 2>&1; then
130
- unit="$HOME/.config/systemd/user/basalt.service"
131
- mkdir -p "$(dirname "$unit")"
132
- cat > "$unit" << EOF
133
- [Unit]
134
- Description=Basalt
135
-
136
- [Service]
137
- ExecStart=$bin
138
- Restart=on-failure
139
-
140
- [Install]
141
- WantedBy=default.target
142
- EOF
143
- # 只 enable 不 --now:这次由下面直接启动并打开浏览器,下次登录再由 systemd 接手
144
- systemctl --user daemon-reload && systemctl --user enable basalt.service > /dev/null 2>&1 &&
145
- info "已设置登录后自动启动(systemd 用户服务 basalt)" ||
146
- info "设置 systemd 自启失败,可以稍后手动运行 basalt"
147
- else
148
- info "没有 systemd,跳过自动启动设置"
149
- fi
150
- fi
151
-
152
- # ---------- 启动 ----------
153
-
154
- if [ -n "${BASALT_NO_START:-}" ]; then
155
- info "运行 basalt --open 启动并打开工作台"
156
- exit 0
157
- fi
158
-
159
- mkdir -p "$LOG_DIR"
160
- log="$LOG_DIR/basalt.log"
161
- : > "$log"
162
- # --replace:升级时接替旧版本进程;--open:打开带配对链接的工作台
163
- nohup "$bin" --open --replace > "$log" 2>&1 < /dev/null &
164
- info "正在启动 Basalt …"
165
- # 没有图形界面(如 SSH)时浏览器打不开,把配对信息打印出来
166
- i=0
167
- while [ $i -lt 50 ] && ! grep -qE '配对码|认证已关闭|已在运行' "$log" 2> /dev/null; do
168
- sleep 0.2
169
- i=$((i + 1))
170
- done
171
- if grep -q '配对码' "$log"; then
172
- sed -n '/配对码/,$p' "$log"
173
- info "已在浏览器打开工作台;打不开时访问上面的链接,或在工作台里输入配对码。"
174
- else
175
- cat "$log"
176
- fi
177
- info "日志:$log"