@wzh-/ai-chat-example 1.0.2 → 1.0.4

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 (1008) hide show
  1. package/dist/css/index.css +2 -0
  2. package/dist/js/_basePickBy.js +135 -0
  3. package/dist/js/_baseUniq.js +573 -0
  4. package/dist/js/angular-html.js +14 -0
  5. package/dist/js/angular-html2.js +5 -0
  6. package/dist/js/angular-ts.js +19 -0
  7. package/dist/js/apl.js +15 -0
  8. package/dist/js/arc.js +78 -0
  9. package/dist/js/architecture-U656AL7Q.js +8 -0
  10. package/dist/js/architectureDiagram-VXUJARFQ.js +4053 -0
  11. package/dist/js/astro.js +16 -0
  12. package/dist/js/bash.js +2 -0
  13. package/dist/js/blade.js +19 -0
  14. package/dist/js/blockDiagram-VD42YOAC.js +3013 -0
  15. package/dist/js/bsl.js +3 -0
  16. package/dist/js/c.js +2 -0
  17. package/dist/js/c4Diagram-YG6GDRKO.js +2955 -0
  18. package/dist/js/cairo.js +3 -0
  19. package/dist/js/channel.js +3 -0
  20. package/dist/js/chunk-4BX2VUAB.js +6 -0
  21. package/dist/js/chunk-55IACEB6.js +6 -0
  22. package/dist/js/chunk-76Q3JFCE.js +19 -0
  23. package/dist/js/chunk-ABZYJK2D.js +2515 -0
  24. package/dist/js/chunk-ATLVNIR6.js +65 -0
  25. package/dist/js/chunk-B4BG7PRW.js +3108 -0
  26. package/dist/js/chunk-CVBHYZKI.js +10 -0
  27. package/dist/js/chunk-DI55MBZ5.js +1994 -0
  28. package/dist/js/chunk-EXTU4WIE.js +7 -0
  29. package/dist/js/chunk-FMBD7UC4.js +3 -0
  30. package/dist/js/chunk-FPAJGGOC.js +12252 -0
  31. package/dist/js/chunk-FWNWRKHM.js +56 -0
  32. package/dist/js/chunk-HN2XXSSU.js +74 -0
  33. package/dist/js/chunk-JA3XYJ7Z.js +463 -0
  34. package/dist/js/chunk-JZLCHNYA.js +4861 -0
  35. package/dist/js/chunk-LBM3YZW2.js +19 -0
  36. package/dist/js/chunk-LHMN2FUI.js +19 -0
  37. package/dist/js/chunk-MI3HLSF2.js +1140 -0
  38. package/dist/js/chunk-N4CR4FBY.js +39 -0
  39. package/dist/js/chunk-O7ZBX7Z2.js +26 -0
  40. package/dist/js/chunk-QN33PNHL.js +23 -0
  41. package/dist/js/chunk-QXUST7PY.js +486 -0
  42. package/dist/js/chunk-QZHKN3VN.js +11 -0
  43. package/dist/js/chunk-S3R3BYOJ.js +1074 -0
  44. package/dist/js/chunk-S6J4BHB3.js +19 -0
  45. package/dist/js/chunk-T53DSG4Q.js +24 -0
  46. package/dist/js/chunk-TZMSLE5B.js +55 -0
  47. package/dist/js/classDiagram-2ON5EDUG.js +33 -0
  48. package/dist/js/classDiagram-v2-WZHVMYZB.js +33 -0
  49. package/dist/js/clone.js +7 -0
  50. package/dist/js/cmake.js +2 -0
  51. package/dist/js/cobol.js +10 -0
  52. package/dist/js/coffee.js +3 -0
  53. package/dist/js/cose-bilkent-S5V4N54A.js +2250 -0
  54. package/dist/js/cpp.js +16 -0
  55. package/dist/js/cpp2.js +6 -0
  56. package/dist/js/crystal.js +16 -0
  57. package/dist/js/csharp.js +2 -0
  58. package/dist/js/css.js +2 -0
  59. package/dist/js/csv.js +2 -0
  60. package/dist/js/dagre-6UL2VRFP.js +298 -0
  61. package/dist/js/dagre.js +1395 -0
  62. package/dist/js/diagram-PSM6KHXK.js +497 -0
  63. package/dist/js/diagram-QEK2KX5R.js +226 -0
  64. package/dist/js/diagram-S2PKOQOG.js +144 -0
  65. package/dist/js/diff.js +2 -0
  66. package/dist/js/dist.js +49 -0
  67. package/dist/js/edge.js +12 -0
  68. package/dist/js/elixir.js +5 -0
  69. package/dist/js/elm.js +4 -0
  70. package/dist/js/erDiagram-Q2GNP2WA.js +1603 -0
  71. package/dist/js/erb.js +25 -0
  72. package/dist/js/erlang.js +3 -0
  73. package/dist/js/flowDiagram-NV44I4VS.js +4132 -0
  74. package/dist/js/fortran-fixed-form.js +3 -0
  75. package/dist/js/fortran-free-form.js +2 -0
  76. package/dist/js/fsharp.js +3 -0
  77. package/dist/js/ganttDiagram-JELNMOA3.js +3009 -0
  78. package/dist/js/gdresource.js +8 -0
  79. package/dist/js/gdscript.js +2 -0
  80. package/dist/js/gdshader.js +2 -0
  81. package/dist/js/git-commit.js +3 -0
  82. package/dist/js/git-rebase.js +3 -0
  83. package/dist/js/gitGraph-F6HP7TQM.js +8 -0
  84. package/dist/js/gitGraphDiagram-NY62KEGX.js +634 -0
  85. package/dist/js/github-dark.js +2 -0
  86. package/dist/js/github-light.js +2 -0
  87. package/dist/js/glimmer-js.js +12 -0
  88. package/dist/js/glimmer-ts.js +12 -0
  89. package/dist/js/glsl.js +3 -0
  90. package/dist/js/glsl2.js +3 -0
  91. package/dist/js/go.js +2 -0
  92. package/dist/js/graphlib.js +223 -0
  93. package/dist/js/graphql.js +6 -0
  94. package/dist/js/graphql2.js +12 -0
  95. package/dist/js/hack.js +10 -0
  96. package/dist/js/haml.js +4 -0
  97. package/dist/js/haml2.js +8 -0
  98. package/dist/js/handlebars.js +12 -0
  99. package/dist/js/haxe.js +2 -0
  100. package/dist/js/hlsl.js +2 -0
  101. package/dist/js/html-derivative.js +5 -0
  102. package/dist/js/html-derivative2.js +3 -0
  103. package/dist/js/html.js +4 -0
  104. package/dist/js/html2.js +8 -0
  105. package/dist/js/http.js +17 -0
  106. package/dist/js/hurl.js +15 -0
  107. package/dist/js/hxml.js +3 -0
  108. package/dist/js/index.js +37693 -0
  109. package/dist/js/info-NVLQJR56.js +8 -0
  110. package/dist/js/infoDiagram-WHAUD3N6.js +31 -0
  111. package/dist/js/isEmpty.js +32 -0
  112. package/dist/js/java.js +2 -0
  113. package/dist/js/javascript.js +2 -0
  114. package/dist/js/jinja.js +5 -0
  115. package/dist/js/jison.js +3 -0
  116. package/dist/js/journeyDiagram-XKPGCS4Q.js +884 -0
  117. package/dist/js/json.js +2 -0
  118. package/dist/js/jsx.js +2 -0
  119. package/dist/js/julia.js +17 -0
  120. package/dist/js/kanban-definition-3W4ZIXB7.js +971 -0
  121. package/dist/js/katex.js +2 -0
  122. package/dist/js/latex.js +4 -0
  123. package/dist/js/less.js +2 -0
  124. package/dist/js/line.js +30 -0
  125. package/dist/js/linear.js +250 -0
  126. package/dist/js/liquid.js +12 -0
  127. package/dist/js/lua.js +3 -0
  128. package/dist/js/lua2.js +3 -0
  129. package/dist/js/markdown.js +2 -0
  130. package/dist/js/marko.js +12 -0
  131. package/dist/js/mdc.js +13 -0
  132. package/dist/js/mermaid-parser.core.js +48 -0
  133. package/dist/js/mermaid.core.js +895 -0
  134. package/dist/js/mindmap-definition-VGOIOE7T.js +960 -0
  135. package/dist/js/nginx.js +4 -0
  136. package/dist/js/nim.js +19 -0
  137. package/dist/js/ordinal.js +61 -0
  138. package/dist/js/packet-BFZMPI3H.js +8 -0
  139. package/dist/js/perl.js +15 -0
  140. package/dist/js/php.js +9 -0
  141. package/dist/js/php2.js +16 -0
  142. package/dist/js/pie-7BOR55EZ.js +8 -0
  143. package/dist/js/pieDiagram-ADFJNKIX.js +172 -0
  144. package/dist/js/postcss.js +2 -0
  145. package/dist/js/pug.js +10 -0
  146. package/dist/js/python.js +2 -0
  147. package/dist/js/qml.js +3 -0
  148. package/dist/js/quadrantDiagram-AYHSOK5B.js +1970 -0
  149. package/dist/js/r.js +2 -0
  150. package/dist/js/radar-NHE76QYJ.js +8 -0
  151. package/dist/js/razor.js +10 -0
  152. package/dist/js/regexp.js +2 -0
  153. package/dist/js/requirementDiagram-UZGBJVZJ.js +2194 -0
  154. package/dist/js/rst.js +34 -0
  155. package/dist/js/ruby.js +20 -0
  156. package/dist/js/ruby2.js +28 -0
  157. package/dist/js/sankeyDiagram-TZEHDZUN.js +884 -0
  158. package/dist/js/sas.js +3 -0
  159. package/dist/js/scss.js +3 -0
  160. package/dist/js/scss2.js +3 -0
  161. package/dist/js/sdbl.js +2 -0
  162. package/dist/js/sequenceDiagram-WL72ISMW.js +3560 -0
  163. package/dist/js/shaderlab.js +3 -0
  164. package/dist/js/shellscript.js +2 -0
  165. package/dist/js/shellsession.js +3 -0
  166. package/dist/js/soy.js +5 -0
  167. package/dist/js/sparql.js +3 -0
  168. package/dist/js/sql.js +2 -0
  169. package/dist/js/src.js +1975 -0
  170. package/dist/js/stata.js +3 -0
  171. package/dist/js/stateDiagram-FKZM4ZOC.js +224 -0
  172. package/dist/js/stateDiagram-v2-4FDKWEC3.js +32 -0
  173. package/dist/js/stylus.js +2 -0
  174. package/dist/js/svelte.js +12 -0
  175. package/dist/js/templ.js +10 -0
  176. package/dist/js/tex.js +3 -0
  177. package/dist/js/tex2.js +3 -0
  178. package/dist/js/timeline-definition-IT6M3QCI.js +830 -0
  179. package/dist/js/treemap-KMMF4GRG.js +8 -0
  180. package/dist/js/ts-tags.js +38 -0
  181. package/dist/js/tsx.js +2 -0
  182. package/dist/js/turtle.js +2 -0
  183. package/dist/js/twig.js +33 -0
  184. package/dist/js/typescript.js +2 -0
  185. package/dist/js/vue-html.js +13 -0
  186. package/dist/js/vue-vine.js +22 -0
  187. package/dist/js/vue.js +20 -0
  188. package/dist/js/vue2.js +8 -0
  189. package/dist/js/xml.js +3 -0
  190. package/dist/js/xml2.js +3 -0
  191. package/dist/js/xsl.js +4 -0
  192. package/dist/js/xychartDiagram-PRI3JC2R.js +2022 -0
  193. package/dist/js/yaml.js +2 -0
  194. package/dist/types/components/ai-elements/artifact/ArtifactAction.vue.d.ts +32 -0
  195. package/dist/types/components/ai-elements/artifact/ArtifactClose.vue.d.ts +27 -0
  196. package/dist/types/components/ai-elements/checkpoint/CheckpointTrigger.vue.d.ts +27 -0
  197. package/dist/types/components/ai-elements/conversation/Conversation.vue.d.ts +47 -0
  198. package/dist/types/components/ai-elements/message/MessageAction.vue.d.ts +28 -0
  199. package/dist/types/components/ai-elements/prompt-input/PromptInputButton.vue.d.ts +20 -0
  200. package/dist/types/components/ai-elements/prompt-input/PromptInputSubmit.vue.d.ts +30 -0
  201. package/dist/types/components/ai-elements/shimmer/Shimmer.vue.d.ts +28 -0
  202. package/dist/types/components/ai-elements/web-preview/WebPreviewNavigationButton.vue.d.ts +30 -0
  203. package/dist/types/components/ui/badge/index.d.ts +6 -0
  204. package/dist/types/components/ui/button/Button.vue.d.ts +27 -0
  205. package/dist/types/components/ui/button/index.d.ts +7 -0
  206. package/dist/types/components/ui/button-group/ButtonGroupSeparator.vue.d.ts +9 -0
  207. package/dist/types/components/ui/button-group/ButtonGroupText.vue.d.ts +26 -0
  208. package/dist/types/components/ui/button-group/index.d.ts +8 -0
  209. package/dist/types/components/ui/carousel/CarouselNext.vue.d.ts +26 -0
  210. package/dist/types/components/ui/carousel/CarouselPrevious.vue.d.ts +26 -0
  211. package/dist/types/components/ui/input-group/InputGroupButton.vue.d.ts +21 -0
  212. package/dist/types/components/ui/select/Select.vue.d.ts +28 -0
  213. package/dist/types/components/ui/separator/Separator.vue.d.ts +10 -0
  214. package/dist/types/composables/useChat.d.ts +8 -0
  215. package/dist/types/types/css.d.ts +5 -0
  216. package/package.json +12 -6
  217. package/dist/_basePickBy-CkZky1V-.js +0 -135
  218. package/dist/_baseUniq-f11MNaXe.js +0 -573
  219. package/dist/angular-html-C5vmpet2.js +0 -14
  220. package/dist/angular-html-CLTv4jM9.js +0 -5
  221. package/dist/angular-ts-BKqJWrwt.js +0 -19
  222. package/dist/apl-BcJs32yU.js +0 -15
  223. package/dist/arc-Dh_0vvHo.js +0 -78
  224. package/dist/architecture-U656AL7Q-BqUSHYp0.js +0 -8
  225. package/dist/architectureDiagram-VXUJARFQ-BQvEdgpc.js +0 -4053
  226. package/dist/astro-q-huTQEP.js +0 -16
  227. package/dist/bash-DI_p7w58.js +0 -2
  228. package/dist/blade-Ckff5WJQ.js +0 -19
  229. package/dist/blockDiagram-VD42YOAC-DKkDshq3.js +0 -3013
  230. package/dist/bsl-BTNab0FD.js +0 -3
  231. package/dist/c-BYDGkYzS.js +0 -2
  232. package/dist/c4Diagram-YG6GDRKO-KsGqOrVB.js +0 -2955
  233. package/dist/cairo-DUZgbTPW.js +0 -3
  234. package/dist/channel-BrxVk5HC.js +0 -3
  235. package/dist/chunk-4BX2VUAB-BGxl5VGr.js +0 -6
  236. package/dist/chunk-55IACEB6-CDMD5yu1.js +0 -6
  237. package/dist/chunk-76Q3JFCE-Db4Lkmow.js +0 -19
  238. package/dist/chunk-ABZYJK2D-BZvlc6Ej.js +0 -2515
  239. package/dist/chunk-ATLVNIR6-C3g7rsIT.js +0 -65
  240. package/dist/chunk-B4BG7PRW-Dx-bGI1r.js +0 -3108
  241. package/dist/chunk-CVBHYZKI-DxEBlSK7.js +0 -10
  242. package/dist/chunk-DI55MBZ5-CCWuZnfW.js +0 -1994
  243. package/dist/chunk-EXTU4WIE-BjMX7pAs.js +0 -7
  244. package/dist/chunk-FMBD7UC4-Dj3Ok4Bk.js +0 -3
  245. package/dist/chunk-FPAJGGOC-nWbO3e1v.js +0 -12252
  246. package/dist/chunk-FWNWRKHM-CjcwRw2u.js +0 -56
  247. package/dist/chunk-HN2XXSSU-Lv4Ef0co.js +0 -74
  248. package/dist/chunk-JA3XYJ7Z-Dhh1_u_p.js +0 -463
  249. package/dist/chunk-JZLCHNYA-vrb_Ucuc.js +0 -4861
  250. package/dist/chunk-LBM3YZW2-D8lrIfGo.js +0 -19
  251. package/dist/chunk-LHMN2FUI-DLQ0i8hl.js +0 -19
  252. package/dist/chunk-MI3HLSF2-Dy6F9XgR.js +0 -1140
  253. package/dist/chunk-N4CR4FBY-BdaGxHlZ.js +0 -39
  254. package/dist/chunk-O7ZBX7Z2-D8Yaukr5.js +0 -26
  255. package/dist/chunk-QN33PNHL-DnPw7tni.js +0 -23
  256. package/dist/chunk-QXUST7PY-D9mGQ-UP.js +0 -486
  257. package/dist/chunk-QZHKN3VN-ClanGuXA.js +0 -11
  258. package/dist/chunk-S3R3BYOJ-DHTsHczu.js +0 -1074
  259. package/dist/chunk-S6J4BHB3-8RrHs9bD.js +0 -19
  260. package/dist/chunk-T53DSG4Q-C2BDA_QX.js +0 -24
  261. package/dist/chunk-TZMSLE5B-F4nHm7N1.js +0 -55
  262. package/dist/classDiagram-2ON5EDUG-C_ZEMlKu.js +0 -33
  263. package/dist/classDiagram-v2-WZHVMYZB-BHb5nZOM.js +0 -33
  264. package/dist/clone-BRioDvRr.js +0 -7
  265. package/dist/cmake-CA3Lfsq7.js +0 -2
  266. package/dist/cobol-DhzLzJib.js +0 -10
  267. package/dist/coffee-P21KTKMu.js +0 -3
  268. package/dist/components/ai-elements/artifact/ArtifactAction.vue.d.ts +0 -32
  269. package/dist/components/ai-elements/artifact/ArtifactClose.vue.d.ts +0 -27
  270. package/dist/components/ai-elements/checkpoint/CheckpointTrigger.vue.d.ts +0 -27
  271. package/dist/components/ai-elements/conversation/Conversation.vue.d.ts +0 -47
  272. package/dist/components/ai-elements/message/MessageAction.vue.d.ts +0 -28
  273. package/dist/components/ai-elements/prompt-input/PromptInputButton.vue.d.ts +0 -20
  274. package/dist/components/ai-elements/prompt-input/PromptInputSubmit.vue.d.ts +0 -30
  275. package/dist/components/ai-elements/shimmer/Shimmer.vue.d.ts +0 -28
  276. package/dist/components/ai-elements/web-preview/WebPreviewNavigationButton.vue.d.ts +0 -30
  277. package/dist/components/ui/badge/index.d.ts +0 -6
  278. package/dist/components/ui/button/Button.vue.d.ts +0 -27
  279. package/dist/components/ui/button/index.d.ts +0 -7
  280. package/dist/components/ui/button-group/ButtonGroupSeparator.vue.d.ts +0 -9
  281. package/dist/components/ui/button-group/ButtonGroupText.vue.d.ts +0 -26
  282. package/dist/components/ui/button-group/index.d.ts +0 -8
  283. package/dist/components/ui/carousel/CarouselNext.vue.d.ts +0 -26
  284. package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +0 -26
  285. package/dist/components/ui/input-group/InputGroupButton.vue.d.ts +0 -21
  286. package/dist/components/ui/select/Select.vue.d.ts +0 -28
  287. package/dist/components/ui/separator/Separator.vue.d.ts +0 -10
  288. package/dist/composables/useChat.d.ts +0 -8
  289. package/dist/cose-bilkent-S5V4N54A-Dy-do3hl.js +0 -2250
  290. package/dist/cpp-C6JyDxZu.js +0 -16
  291. package/dist/cpp-GAIEvywS.js +0 -6
  292. package/dist/crystal-BJfcoGS4.js +0 -16
  293. package/dist/csharp-JE-9ns6W.js +0 -2
  294. package/dist/css-Cy-fypCV.js +0 -2
  295. package/dist/csv-DJ7xG4PY.js +0 -2
  296. package/dist/dagre-6UL2VRFP-B38_sZWh.js +0 -298
  297. package/dist/dagre-DtvXp3zQ.js +0 -1395
  298. package/dist/diagram-PSM6KHXK-D6swsG-y.js +0 -497
  299. package/dist/diagram-QEK2KX5R-B7Hi0LAL.js +0 -226
  300. package/dist/diagram-S2PKOQOG-DLx7PlpM.js +0 -144
  301. package/dist/diff-COB48_rb.js +0 -2
  302. package/dist/dist-CrnZo_23.js +0 -49
  303. package/dist/edge-Dm7HQa9N.js +0 -12
  304. package/dist/elixir-BkvHyCNd.js +0 -5
  305. package/dist/elm-rz9wTSrn.js +0 -4
  306. package/dist/erDiagram-Q2GNP2WA-B67FD8rh.js +0 -1603
  307. package/dist/erb-DyrwQYVz.js +0 -25
  308. package/dist/erlang-DLFKZs5N.js +0 -3
  309. package/dist/flowDiagram-NV44I4VS-DHXgrdJY.js +0 -4132
  310. package/dist/fortran-fixed-form-SzB0QY3n.js +0 -3
  311. package/dist/fortran-free-form-Js8JrQQE.js +0 -2
  312. package/dist/fsharp-CtWO0jvL.js +0 -3
  313. package/dist/ganttDiagram-JELNMOA3-CGIqBt1P.js +0 -3009
  314. package/dist/gdresource-CgyXKpe4.js +0 -8
  315. package/dist/gdscript-STdmRKv-.js +0 -2
  316. package/dist/gdshader-Bs2s6cSB.js +0 -2
  317. package/dist/git-commit--0GGwZNa.js +0 -3
  318. package/dist/git-rebase-orw-bSIZ.js +0 -3
  319. package/dist/gitGraph-F6HP7TQM-CH5XLm5Z.js +0 -8
  320. package/dist/gitGraphDiagram-NY62KEGX-Cq8AbOhM.js +0 -634
  321. package/dist/github-dark-CMN1tZPn.js +0 -2
  322. package/dist/github-light-Y8g-VxKq.js +0 -2
  323. package/dist/glimmer-js-C6E6wJv0.js +0 -12
  324. package/dist/glimmer-ts-C6GgTGNO.js +0 -12
  325. package/dist/glsl-D8_YBRKT.js +0 -3
  326. package/dist/glsl-rwn_QCp2.js +0 -3
  327. package/dist/go-BhDDN9y4.js +0 -2
  328. package/dist/graphlib-BZdVmxO6.js +0 -223
  329. package/dist/graphql-DQHhbQm2.js +0 -6
  330. package/dist/graphql-DoBLseH6.js +0 -12
  331. package/dist/hack-DEAxoi73.js +0 -10
  332. package/dist/haml-BG2d3iX4.js +0 -4
  333. package/dist/haml-mA656Lm7.js +0 -8
  334. package/dist/handlebars-CO5xAxJ3.js +0 -12
  335. package/dist/haxe-BJVSeYxy.js +0 -2
  336. package/dist/hlsl-Dt9-unql.js +0 -2
  337. package/dist/html-DFCxtjnd.js +0 -4
  338. package/dist/html-DKSj3FeM.js +0 -8
  339. package/dist/html-derivative-BCRkrTcD.js +0 -5
  340. package/dist/html-derivative-C-vidKoA.js +0 -3
  341. package/dist/http-CYP1tEDW.js +0 -17
  342. package/dist/hurl-BJexUSKz.js +0 -15
  343. package/dist/hxml-XfuSEjM-.js +0 -3
  344. package/dist/index.js +0 -2984
  345. package/dist/index.mjs +0 -37693
  346. package/dist/info-NVLQJR56-hEN1y0nS.js +0 -8
  347. package/dist/infoDiagram-WHAUD3N6-btPwHXxp.js +0 -31
  348. package/dist/isEmpty-CCym_WUL.js +0 -32
  349. package/dist/java-DIOGgqAD.js +0 -2
  350. package/dist/javascript-9-JPeKdm.js +0 -2
  351. package/dist/jinja-CVFxFRh6.js +0 -5
  352. package/dist/jison-0X6LppGq.js +0 -3
  353. package/dist/journeyDiagram-XKPGCS4Q-3OxtBx3I.js +0 -884
  354. package/dist/json-DJtYdWQK.js +0 -2
  355. package/dist/jsx-qo0JNHpZ.js +0 -2
  356. package/dist/julia-ChGs-n_c.js +0 -17
  357. package/dist/kanban-definition-3W4ZIXB7-zdtnJaXz.js +0 -971
  358. package/dist/katex-K1dsczyg.js +0 -2
  359. package/dist/latex-BnWZlY4q.js +0 -4
  360. package/dist/less-B4ybD-7s.js +0 -2
  361. package/dist/line-EpckC7pZ.js +0 -30
  362. package/dist/linear-DjVN4o4U.js +0 -250
  363. package/dist/liquid-pc5Mduds.js +0 -12
  364. package/dist/lua-0TqNbT8C.js +0 -3
  365. package/dist/lua-6pXga3HV.js +0 -3
  366. package/dist/markdown-LaaQ4Eua.js +0 -2
  367. package/dist/marko-D8uDUUEs.js +0 -12
  368. package/dist/mdc-Ki3KnB5U.js +0 -13
  369. package/dist/mermaid-parser.core-DVXSGppp.js +0 -48
  370. package/dist/mermaid.core-Ra1JFCui.js +0 -895
  371. package/dist/mindmap-definition-VGOIOE7T-CRPO52xV.js +0 -960
  372. package/dist/nginx-B46vdQ9n.js +0 -4
  373. package/dist/nim-BxQNx10D.js +0 -19
  374. package/dist/ordinal-CYQpsShT.js +0 -61
  375. package/dist/packet-BFZMPI3H-Bnlch4JI.js +0 -8
  376. package/dist/perl-D1bDaADZ.js +0 -15
  377. package/dist/php-BX51InqL.js +0 -9
  378. package/dist/php-D5tmU8Cr.js +0 -16
  379. package/dist/pie-7BOR55EZ-B9egLHl5.js +0 -8
  380. package/dist/pieDiagram-ADFJNKIX-CKSgB7fx.js +0 -172
  381. package/dist/postcss-ainQkoyY.js +0 -2
  382. package/dist/pug-BcLlS7Yb.js +0 -10
  383. package/dist/python-CuBu5pyY.js +0 -2
  384. package/dist/qml-MD0NqqIl.js +0 -3
  385. package/dist/quadrantDiagram-AYHSOK5B-BHzqivzD.js +0 -1970
  386. package/dist/r-CQeHOO4c.js +0 -2
  387. package/dist/radar-NHE76QYJ-DdALhlvV.js +0 -8
  388. package/dist/razor-eRwFWsjJ.js +0 -10
  389. package/dist/regexp-Ca0eDBa2.js +0 -2
  390. package/dist/requirementDiagram-UZGBJVZJ-Darhwvir.js +0 -2194
  391. package/dist/rst-DFmSdXGd.js +0 -34
  392. package/dist/ruby-BAEFomR0.js +0 -20
  393. package/dist/ruby-DDMUvAvC.js +0 -28
  394. package/dist/sankeyDiagram-TZEHDZUN-KiSvBN_C.js +0 -884
  395. package/dist/sas-TjtLSnOp.js +0 -3
  396. package/dist/scss-C-bthdG1.js +0 -3
  397. package/dist/scss-D-6-mg-f.js +0 -3
  398. package/dist/sdbl-gc7zIVWR.js +0 -2
  399. package/dist/sequenceDiagram-WL72ISMW-D2Mo7Vtj.js +0 -3560
  400. package/dist/shaderlab-BRlB5fpk.js +0 -3
  401. package/dist/shellscript-DZa_4vvb.js +0 -2
  402. package/dist/shellsession-CIlmlgbR.js +0 -3
  403. package/dist/soy-DwSCrzEF.js +0 -5
  404. package/dist/sparql-D9kVSpEx.js +0 -3
  405. package/dist/sql-Bi3LyNPb.js +0 -2
  406. package/dist/src-B-SBGd0A.js +0 -1975
  407. package/dist/stata-DkEObyNb.js +0 -3
  408. package/dist/stateDiagram-FKZM4ZOC-BRQN2Npg.js +0 -224
  409. package/dist/stateDiagram-v2-4FDKWEC3-CeeIKiFG.js +0 -32
  410. package/dist/stylus-DEHALDNh.js +0 -2
  411. package/dist/svelte-KFuclcR6.js +0 -12
  412. package/dist/templ-C5mtYbb_.js +0 -10
  413. package/dist/tex-B4uYy1vC.js +0 -3
  414. package/dist/tex-BoVFa1ir.js +0 -3
  415. package/dist/timeline-definition-IT6M3QCI-CSwH0Pnx.js +0 -830
  416. package/dist/treemap-KMMF4GRG-COjpj6-C.js +0 -8
  417. package/dist/ts-tags-DRdTXGhb.js +0 -38
  418. package/dist/tsx-BaaPsUbd.js +0 -2
  419. package/dist/turtle-BRmolh-6.js +0 -2
  420. package/dist/twig-cEhAbahS.js +0 -33
  421. package/dist/typescript-CmJ8D0yY.js +0 -2
  422. package/dist/vue-B3C4YeUK.js +0 -8
  423. package/dist/vue-DMpjAWNv.js +0 -20
  424. package/dist/vue-html-BIZN50ug.js +0 -13
  425. package/dist/vue-vine-DxezWcjL.js +0 -22
  426. package/dist/xml-BglBgo29.js +0 -3
  427. package/dist/xml-BxRdgEAX.js +0 -3
  428. package/dist/xsl-Cni90e0k.js +0 -4
  429. package/dist/xychartDiagram-PRI3JC2R-CGXFYn39.js +0 -2022
  430. package/dist/yaml-DQRfaSRo.js +0 -2
  431. /package/dist/{abap--jVlqvLx.js → js/abap.js} +0 -0
  432. /package/dist/{actionscript-3-N1AoJtTA.js → js/actionscript-3.js} +0 -0
  433. /package/dist/{ada-CYGINLea.js → js/ada.js} +0 -0
  434. /package/dist/{andromeeda-CvsZnG9k.js → js/andromeeda.js} +0 -0
  435. /package/dist/{apache-D6X-_dyJ.js → js/apache.js} +0 -0
  436. /package/dist/{apex-C7VgAgAE.js → js/apex.js} +0 -0
  437. /package/dist/{applescript-DN64Su6U.js → js/applescript.js} +0 -0
  438. /package/dist/{ara-Dm1jHrgg.js → js/ara.js} +0 -0
  439. /package/dist/{array-CkdOJbdT.js → js/array.js} +0 -0
  440. /package/dist/{asciidoc-BpqtqRF5.js → js/asciidoc.js} +0 -0
  441. /package/dist/{asm-DUGlKYIq.js → js/asm.js} +0 -0
  442. /package/dist/{aurora-x-DwOih-un.js → js/aurora-x.js} +0 -0
  443. /package/dist/{awk-DcnVbJrN.js → js/awk.js} +0 -0
  444. /package/dist/{ayu-dark-Bd-89MKE.js → js/ayu-dark.js} +0 -0
  445. /package/dist/{ballerina-BQVdQd9X.js → js/ballerina.js} +0 -0
  446. /package/dist/{bat-juB1J52r.js → js/bat.js} +0 -0
  447. /package/dist/{beancount-ThxIlRc3.js → js/beancount.js} +0 -0
  448. /package/dist/{berry-qC18BfC_.js → js/berry.js} +0 -0
  449. /package/dist/{bibtex-CahMDY_0.js → js/bibtex.js} +0 -0
  450. /package/dist/{bicep-CHLBKS47.js → js/bicep.js} +0 -0
  451. /package/dist/{c-CX6yudYR.js → js/c2.js} +0 -0
  452. /package/dist/{cadence-DA5J9-Di.js → js/cadence.js} +0 -0
  453. /package/dist/{catppuccin-frappe-CE3kxG1f.js → js/catppuccin-frappe.js} +0 -0
  454. /package/dist/{catppuccin-latte-DW2FXeIv.js → js/catppuccin-latte.js} +0 -0
  455. /package/dist/{catppuccin-macchiato-CD5qjRSF.js → js/catppuccin-macchiato.js} +0 -0
  456. /package/dist/{catppuccin-mocha-BYwVJvjI.js → js/catppuccin-mocha.js} +0 -0
  457. /package/dist/{chunk-XAJISQIX-Bz7ki7DY.js → js/chunk-XAJISQIX.js} +0 -0
  458. /package/dist/{chunk-DNh5sLlG.js → js/chunk.js} +0 -0
  459. /package/dist/{clarity-CsFOkG3c.js → js/clarity.js} +0 -0
  460. /package/dist/{clojure-u1TZmmdQ.js → js/clojure.js} +0 -0
  461. /package/dist/{cmake-K1k8HMYR.js → js/cmake2.js} +0 -0
  462. /package/dist/{codeowners-l4eSxhtA.js → js/codeowners.js} +0 -0
  463. /package/dist/{codeql-5CeQaktT.js → js/codeql.js} +0 -0
  464. /package/dist/{common-lisp-BVttGbYJ.js → js/common-lisp.js} +0 -0
  465. /package/dist/{coq-CZjzQDnb.js → js/coq.js} +0 -0
  466. /package/dist/{csharp-BbUwciq4.js → js/csharp2.js} +0 -0
  467. /package/dist/{css-Crp0iO_o.js → js/css2.js} +0 -0
  468. /package/dist/{csv-DtT8LmMi.js → js/csv2.js} +0 -0
  469. /package/dist/{cue-BwjaQTCz.js → js/cue.js} +0 -0
  470. /package/dist/{cypher-B7e06enY.js → js/cypher.js} +0 -0
  471. /package/dist/{cytoscape.esm-CWqS6puh.js → js/cytoscape.esm.js} +0 -0
  472. /package/dist/{d-q60wkid4.js → js/d.js} +0 -0
  473. /package/dist/{dark-plus-D_fA88xf.js → js/dark-plus.js} +0 -0
  474. /package/dist/{dart-DjkWvBgr.js → js/dart.js} +0 -0
  475. /package/dist/{dax-lueLIZQI.js → js/dax.js} +0 -0
  476. /package/dist/{defaultLocale-CoJOMwPq.js → js/defaultLocale.js} +0 -0
  477. /package/dist/{desktop-DaphHKD5.js → js/desktop.js} +0 -0
  478. /package/dist/{diff-DlXnqUMK.js → js/diff2.js} +0 -0
  479. /package/dist/{docker-DZKmuwpA.js → js/docker.js} +0 -0
  480. /package/dist/{dotenv-hmNahw-8.js → js/dotenv.js} +0 -0
  481. /package/dist/{dracula-soft-vfA-TA_S.js → js/dracula-soft.js} +0 -0
  482. /package/dist/{dracula-ddM3a7au.js → js/dracula.js} +0 -0
  483. /package/dist/{dream-maker-Cxa2a8FY.js → js/dream-maker.js} +0 -0
  484. /package/dist/{emacs-lisp-w5URnZPZ.js → js/emacs-lisp.js} +0 -0
  485. /package/dist/{everforest-dark-DAPtv4yI.js → js/everforest-dark.js} +0 -0
  486. /package/dist/{everforest-light-nQzYm8GO.js → js/everforest-light.js} +0 -0
  487. /package/dist/{fennel-CJDNJZTU.js → js/fennel.js} +0 -0
  488. /package/dist/{fish-BkYaLI4-.js → js/fish.js} +0 -0
  489. /package/dist/{fluent-DShra35H.js → js/fluent.js} +0 -0
  490. /package/dist/{fortran-free-form-CgbOAJnm.js → js/fortran-free-form2.js} +0 -0
  491. /package/dist/{gdscript-DnurdQnh.js → js/gdscript2.js} +0 -0
  492. /package/dist/{gdshader-YiVaPq6D.js → js/gdshader2.js} +0 -0
  493. /package/dist/{genie-BppkvzZC.js → js/genie.js} +0 -0
  494. /package/dist/{gherkin-Bp4zdWMb.js → js/gherkin.js} +0 -0
  495. /package/dist/{github-dark-default-DVCJut02.js → js/github-dark-default.js} +0 -0
  496. /package/dist/{github-dark-dimmed-DXu9oDqW.js → js/github-dark-dimmed.js} +0 -0
  497. /package/dist/{github-dark-high-contrast-BBZdE-mX.js → js/github-dark-high-contrast.js} +0 -0
  498. /package/dist/{github-dark-DxCf_Qaz.js → js/github-dark2.js} +0 -0
  499. /package/dist/{github-light-default-BNGkGE--.js → js/github-light-default.js} +0 -0
  500. /package/dist/{github-light-high-contrast-DiSIc-nG.js → js/github-light-high-contrast.js} +0 -0
  501. /package/dist/{github-light-CfdX7txK.js → js/github-light2.js} +0 -0
  502. /package/dist/{gleam-Lw0tKp8T.js → js/gleam.js} +0 -0
  503. /package/dist/{gnuplot-BeA3etmO.js → js/gnuplot.js} +0 -0
  504. /package/dist/{go-xfE7BrfS.js → js/go2.js} +0 -0
  505. /package/dist/{groovy-C5-mv4io.js → js/groovy.js} +0 -0
  506. /package/dist/{gruvbox-dark-hard-CULu6kVy.js → js/gruvbox-dark-hard.js} +0 -0
  507. /package/dist/{gruvbox-dark-medium-BJM4uQXO.js → js/gruvbox-dark-medium.js} +0 -0
  508. /package/dist/{gruvbox-dark-soft-CVaORUwa.js → js/gruvbox-dark-soft.js} +0 -0
  509. /package/dist/{gruvbox-light-hard-B-WJAGLa.js → js/gruvbox-light-hard.js} +0 -0
  510. /package/dist/{gruvbox-light-medium-jc8FWnuC.js → js/gruvbox-light-medium.js} +0 -0
  511. /package/dist/{gruvbox-light-soft-CmvYQK92.js → js/gruvbox-light-soft.js} +0 -0
  512. /package/dist/{haskell-Hsexh2aP.js → js/haskell.js} +0 -0
  513. /package/dist/{haxe-CD_Rs3P5.js → js/haxe2.js} +0 -0
  514. /package/dist/{hcl-D098sJ_J.js → js/hcl.js} +0 -0
  515. /package/dist/{hjson-BwXHX5r6.js → js/hjson.js} +0 -0
  516. /package/dist/{hlsl-B0pnUVYG.js → js/hlsl2.js} +0 -0
  517. /package/dist/{houston-C7hMWO_I.js → js/houston.js} +0 -0
  518. /package/dist/{hy-DPQ04rHt.js → js/hy.js} +0 -0
  519. /package/dist/{imba-Bgu2n5Mo.js → js/imba.js} +0 -0
  520. /package/dist/{ini-g9mZnyrk.js → js/ini.js} +0 -0
  521. /package/dist/{init-CBay3kgM.js → js/init.js} +0 -0
  522. /package/dist/{isArrayLikeObject-Dz_TDfw0.js → js/isArrayLikeObject.js} +0 -0
  523. /package/dist/{java-CUbPyze1.js → js/java2.js} +0 -0
  524. /package/dist/{javascript-De1qhUaI.js → js/javascript2.js} +0 -0
  525. /package/dist/{json-fcFpRaf3.js → js/json2.js} +0 -0
  526. /package/dist/{json5-CPTZJOmf.js → js/json5.js} +0 -0
  527. /package/dist/{jsonc-CYrayg0k.js → js/jsonc.js} +0 -0
  528. /package/dist/{jsonl-Bsv7LjJ3.js → js/jsonl.js} +0 -0
  529. /package/dist/{jsonnet-B7LkHJxg.js → js/jsonnet.js} +0 -0
  530. /package/dist/{jssm-BopKGZKg.js → js/jssm.js} +0 -0
  531. /package/dist/{jsx-Bf3Nk9Di.js → js/jsx2.js} +0 -0
  532. /package/dist/{kanagawa-dragon-CSqqi78I.js → js/kanagawa-dragon.js} +0 -0
  533. /package/dist/{kanagawa-lotus-l2vgoxpH.js → js/kanagawa-lotus.js} +0 -0
  534. /package/dist/{kanagawa-wave-BWhFcnLj.js → js/kanagawa-wave.js} +0 -0
  535. /package/dist/{katex-BcWXJDMd.js → js/katex2.js} +0 -0
  536. /package/dist/{kdl-BbokxoZ9.js → js/kdl.js} +0 -0
  537. /package/dist/{kotlin-3dXKmwyJ.js → js/kotlin.js} +0 -0
  538. /package/dist/{kusto-Os6_yHEz.js → js/kusto.js} +0 -0
  539. /package/dist/{laserwave-8RcN1zf8.js → js/laserwave.js} +0 -0
  540. /package/dist/{lean--0Wr4Cy4.js → js/lean.js} +0 -0
  541. /package/dist/{less-Cb54jO7u.js → js/less2.js} +0 -0
  542. /package/dist/{light-plus-CP_iZQDF.js → js/light-plus.js} +0 -0
  543. /package/dist/{llvm-ILH_SX7E.js → js/llvm.js} +0 -0
  544. /package/dist/{log-DwO_GzA0.js → js/log.js} +0 -0
  545. /package/dist/{logo-B4FeRowR.js → js/logo.js} +0 -0
  546. /package/dist/{luau-DsUEyLJN.js → js/luau.js} +0 -0
  547. /package/dist/{make-p6NYc19I.js → js/make.js} +0 -0
  548. /package/dist/{markdown-CCRtgC0b.js → js/markdown2.js} +0 -0
  549. /package/dist/{marked.esm-D9xINNve.js → js/marked.esm.js} +0 -0
  550. /package/dist/{material-theme-darker-CWC5BoMv.js → js/material-theme-darker.js} +0 -0
  551. /package/dist/{material-theme-lighter-BJrV5b2o.js → js/material-theme-lighter.js} +0 -0
  552. /package/dist/{material-theme-ocean-DYpMfDiX.js → js/material-theme-ocean.js} +0 -0
  553. /package/dist/{material-theme-palenight-3Ix3iI7Q.js → js/material-theme-palenight.js} +0 -0
  554. /package/dist/{material-theme-D__z84-n.js → js/material-theme.js} +0 -0
  555. /package/dist/{math-CJAnbPum.js → js/math.js} +0 -0
  556. /package/dist/{matlab-CL0oMGfq.js → js/matlab.js} +0 -0
  557. /package/dist/{mdx-BTufVkNP.js → js/mdx.js} +0 -0
  558. /package/dist/{mermaid-FCjIh1A7.js → js/mermaid.js} +0 -0
  559. /package/dist/{min-dark-B4KRMcN3.js → js/min-dark.js} +0 -0
  560. /package/dist/{min-light-BQVJODr0.js → js/min-light.js} +0 -0
  561. /package/dist/{mipsasm-Cn6AQ4lM.js → js/mipsasm.js} +0 -0
  562. /package/dist/{mojo-C9IiQhp4.js → js/mojo.js} +0 -0
  563. /package/dist/{monokai-vDwMMRi4.js → js/monokai.js} +0 -0
  564. /package/dist/{move-BdizQ4_I.js → js/move.js} +0 -0
  565. /package/dist/{narrat-BP2kx-u2.js → js/narrat.js} +0 -0
  566. /package/dist/{nextflow-CyRmCGOe.js → js/nextflow.js} +0 -0
  567. /package/dist/{night-owl-DmjkOa5g.js → js/night-owl.js} +0 -0
  568. /package/dist/{nix-qPhlsqZI.js → js/nix.js} +0 -0
  569. /package/dist/{nord-sjxbvIbg.js → js/nord.js} +0 -0
  570. /package/dist/{nushell-puA-1bCW.js → js/nushell.js} +0 -0
  571. /package/dist/{objective-c-D-qDLNy5.js → js/objective-c.js} +0 -0
  572. /package/dist/{objective-cpp-CFxSAM6p.js → js/objective-cpp.js} +0 -0
  573. /package/dist/{ocaml-CsLB7SWJ.js → js/ocaml.js} +0 -0
  574. /package/dist/{one-dark-pro-BHH-VjFD.js → js/one-dark-pro.js} +0 -0
  575. /package/dist/{one-light-BqE6erWk.js → js/one-light.js} +0 -0
  576. /package/dist/{openscad-DJCIQfnJ.js → js/openscad.js} +0 -0
  577. /package/dist/{pascal-CPg9_ZFN.js → js/pascal.js} +0 -0
  578. /package/dist/{path-esxOUfAH.js → js/path.js} +0 -0
  579. /package/dist/{pkl-BQQ96hvn.js → js/pkl.js} +0 -0
  580. /package/dist/{plastic-BrNUBdSC.js → js/plastic.js} +0 -0
  581. /package/dist/{plsql-Co7Bxe7U.js → js/plsql.js} +0 -0
  582. /package/dist/{po-BqzJCro7.js → js/po.js} +0 -0
  583. /package/dist/{poimandres-C_AK8TlO.js → js/poimandres.js} +0 -0
  584. /package/dist/{polar-CtdYIPEe.js → js/polar.js} +0 -0
  585. /package/dist/{postcss-ChqFKb46.js → js/postcss2.js} +0 -0
  586. /package/dist/{powerquery-CDugc1w-.js → js/powerquery.js} +0 -0
  587. /package/dist/{powershell-j5X-IA59.js → js/powershell.js} +0 -0
  588. /package/dist/{prisma-Cyl7YhUw.js → js/prisma.js} +0 -0
  589. /package/dist/{prolog-DELKnUYf.js → js/prolog.js} +0 -0
  590. /package/dist/{proto-C4A_gDBY.js → js/proto.js} +0 -0
  591. /package/dist/{puppet-DFC9LyFj.js → js/puppet.js} +0 -0
  592. /package/dist/{purescript-eECq7_n2.js → js/purescript.js} +0 -0
  593. /package/dist/{python-BhdCuCld.js → js/python2.js} +0 -0
  594. /package/dist/{qmldir-BpJII-Ze.js → js/qmldir.js} +0 -0
  595. /package/dist/{qss-CpMcemMc.js → js/qss.js} +0 -0
  596. /package/dist/{r-D90zdkbN.js → js/r2.js} +0 -0
  597. /package/dist/{racket-COTs6Zfi.js → js/racket.js} +0 -0
  598. /package/dist/{raku-DfOtwMUC.js → js/raku.js} +0 -0
  599. /package/dist/{red-CWGFZsim.js → js/red.js} +0 -0
  600. /package/dist/{reg-BX5DwoEA.js → js/reg.js} +0 -0
  601. /package/dist/{regexp-Cap8fK_2.js → js/regexp2.js} +0 -0
  602. /package/dist/{rel-CzXuLSk3.js → js/rel.js} +0 -0
  603. /package/dist/{riscv-DnFIiqh3.js → js/riscv.js} +0 -0
  604. /package/dist/{rose-pine-dawn-D5sdDB-J.js → js/rose-pine-dawn.js} +0 -0
  605. /package/dist/{rose-pine-moon-2Vb7bLLO.js → js/rose-pine-moon.js} +0 -0
  606. /package/dist/{rose-pine-C4v2iQVe.js → js/rose-pine.js} +0 -0
  607. /package/dist/{rosmsg-D02ul3fM.js → js/rosmsg.js} +0 -0
  608. /package/dist/{rust-s3hBbfQg.js → js/rust.js} +0 -0
  609. /package/dist/{sass-v3HeJ9Fl.js → js/sass.js} +0 -0
  610. /package/dist/{scala-BTIBM_Vn.js → js/scala.js} +0 -0
  611. /package/dist/{scheme-C4NQMf7a.js → js/scheme.js} +0 -0
  612. /package/dist/{sdbl-BA3l-JrH.js → js/sdbl2.js} +0 -0
  613. /package/dist/{shellscript-BQ8mKDAF.js → js/shellscript2.js} +0 -0
  614. /package/dist/{slack-dark-DhXO5DWr.js → js/slack-dark.js} +0 -0
  615. /package/dist/{slack-ochin-aAGl4PPH.js → js/slack-ochin.js} +0 -0
  616. /package/dist/{smalltalk-DbwVUw_i.js → js/smalltalk.js} +0 -0
  617. /package/dist/{snazzy-light-B4S5mk83.js → js/snazzy-light.js} +0 -0
  618. /package/dist/{solarized-dark-Dexkq3Fm.js → js/solarized-dark.js} +0 -0
  619. /package/dist/{solarized-light-I-Bzy8UC.js → js/solarized-light.js} +0 -0
  620. /package/dist/{solidity-SMk0TJDc.js → js/solidity.js} +0 -0
  621. /package/dist/{splunk-DXXu2r7r.js → js/splunk.js} +0 -0
  622. /package/dist/{sql-D0eLHBiZ.js → js/sql2.js} +0 -0
  623. /package/dist/{ssh-config-DyVcFTfI.js → js/ssh-config.js} +0 -0
  624. /package/dist/{stylus-BKTuFHcX.js → js/stylus2.js} +0 -0
  625. /package/dist/{swift-Cenptrnf.js → js/swift.js} +0 -0
  626. /package/dist/{synthwave-84-BRkDuVE-.js → js/synthwave-84.js} +0 -0
  627. /package/dist/{system-verilog-Cvgukx4v.js → js/system-verilog.js} +0 -0
  628. /package/dist/{systemd-BepdslJQ.js → js/systemd.js} +0 -0
  629. /package/dist/{talonscript-Q98m-VXh.js → js/talonscript.js} +0 -0
  630. /package/dist/{tasl-uebrX98X.js → js/tasl.js} +0 -0
  631. /package/dist/{tcl-B1Ny4XFf.js → js/tcl.js} +0 -0
  632. /package/dist/{terraform-0mA5ERTe.js → js/terraform.js} +0 -0
  633. /package/dist/{tokyo-night-D0mU3-u8.js → js/tokyo-night.js} +0 -0
  634. /package/dist/{toml-vMAjra5M.js → js/toml.js} +0 -0
  635. /package/dist/{tsv-BnmbkntZ.js → js/tsv.js} +0 -0
  636. /package/dist/{tsx-C0w0w5St.js → js/tsx2.js} +0 -0
  637. /package/dist/{turtle-4UWi_qX6.js → js/turtle2.js} +0 -0
  638. /package/dist/{typescript-4YtK2JL4.js → js/typescript2.js} +0 -0
  639. /package/dist/{typespec-CILw3zvZ.js → js/typespec.js} +0 -0
  640. /package/dist/{typst-CLajFw6q.js → js/typst.js} +0 -0
  641. /package/dist/{v-MJV2RQvK.js → js/v.js} +0 -0
  642. /package/dist/{vala-Dc1TiHw1.js → js/vala.js} +0 -0
  643. /package/dist/{vb-CoJdNmGs.js → js/vb.js} +0 -0
  644. /package/dist/{verilog-C7aVmiO0.js → js/verilog.js} +0 -0
  645. /package/dist/{vesper-Cvcqyrim.js → js/vesper.js} +0 -0
  646. /package/dist/{vhdl-CYQvzAG1.js → js/vhdl.js} +0 -0
  647. /package/dist/{viml-DOyjiDI8.js → js/viml.js} +0 -0
  648. /package/dist/{vitesse-black-CUYJaB5b.js → js/vitesse-black.js} +0 -0
  649. /package/dist/{vitesse-dark-BNlzDJ1Z.js → js/vitesse-dark.js} +0 -0
  650. /package/dist/{vitesse-light-JU98KqVa.js → js/vitesse-light.js} +0 -0
  651. /package/dist/{vyper-JU_r7Ch6.js → js/vyper.js} +0 -0
  652. /package/dist/{wasm-DJ1S--fN.js → js/wasm.js} +0 -0
  653. /package/dist/{wasm-eLFiAU8u.js → js/wasm2.js} +0 -0
  654. /package/dist/{wenyan-CqkzmyWz.js → js/wenyan.js} +0 -0
  655. /package/dist/{wgsl-gV62iTnF.js → js/wgsl.js} +0 -0
  656. /package/dist/{wikitext-BfUl8La4.js → js/wikitext.js} +0 -0
  657. /package/dist/{wit-kp_bCf2U.js → js/wit.js} +0 -0
  658. /package/dist/{wolfram-aPsN9AKt.js → js/wolfram.js} +0 -0
  659. /package/dist/{yaml-P2kjOPvW.js → js/yaml2.js} +0 -0
  660. /package/dist/{zenscript-BuY4FX-t.js → js/zenscript.js} +0 -0
  661. /package/dist/{zig-CGDGjytz.js → js/zig.js} +0 -0
  662. /package/dist/{App.vue.d.ts → types/App.vue.d.ts} +0 -0
  663. /package/dist/{components → types/components}/ChatConversation/ChatConversation.vue.d.ts +0 -0
  664. /package/dist/{components → types/components}/ChatConversation/index.d.ts +0 -0
  665. /package/dist/{components → types/components}/ChatPromptInputProvider/ChatPromptInputProvider.vue.d.ts +0 -0
  666. /package/dist/{components → types/components}/ChatPromptInputProvider/index.d.ts +0 -0
  667. /package/dist/{components → types/components}/ai-elements/artifact/Artifact.vue.d.ts +0 -0
  668. /package/dist/{components → types/components}/ai-elements/artifact/ArtifactActions.vue.d.ts +0 -0
  669. /package/dist/{components → types/components}/ai-elements/artifact/ArtifactContent.vue.d.ts +0 -0
  670. /package/dist/{components → types/components}/ai-elements/artifact/ArtifactDescription.vue.d.ts +0 -0
  671. /package/dist/{components → types/components}/ai-elements/artifact/ArtifactHeader.vue.d.ts +0 -0
  672. /package/dist/{components → types/components}/ai-elements/artifact/ArtifactTitle.vue.d.ts +0 -0
  673. /package/dist/{components → types/components}/ai-elements/artifact/index.d.ts +0 -0
  674. /package/dist/{components → types/components}/ai-elements/canvas/index.d.ts +0 -0
  675. /package/dist/{components → types/components}/ai-elements/chain-of-thought/ChainOfThought.vue.d.ts +0 -0
  676. /package/dist/{components → types/components}/ai-elements/chain-of-thought/ChainOfThoughtContent.vue.d.ts +0 -0
  677. /package/dist/{components → types/components}/ai-elements/chain-of-thought/ChainOfThoughtHeader.vue.d.ts +0 -0
  678. /package/dist/{components → types/components}/ai-elements/chain-of-thought/ChainOfThoughtImage.vue.d.ts +0 -0
  679. /package/dist/{components → types/components}/ai-elements/chain-of-thought/ChainOfThoughtSearchResult.vue.d.ts +0 -0
  680. /package/dist/{components → types/components}/ai-elements/chain-of-thought/ChainOfThoughtSearchResults.vue.d.ts +0 -0
  681. /package/dist/{components → types/components}/ai-elements/chain-of-thought/ChainOfThoughtStep.vue.d.ts +0 -0
  682. /package/dist/{components → types/components}/ai-elements/chain-of-thought/context.d.ts +0 -0
  683. /package/dist/{components → types/components}/ai-elements/chain-of-thought/index.d.ts +0 -0
  684. /package/dist/{components → types/components}/ai-elements/checkpoint/Checkpoint.vue.d.ts +0 -0
  685. /package/dist/{components → types/components}/ai-elements/checkpoint/CheckpointIcon.vue.d.ts +0 -0
  686. /package/dist/{components → types/components}/ai-elements/checkpoint/index.d.ts +0 -0
  687. /package/dist/{components → types/components}/ai-elements/code-block/CodeBlock.vue.d.ts +0 -0
  688. /package/dist/{components → types/components}/ai-elements/code-block/CodeBlockCopyButton.vue.d.ts +0 -0
  689. /package/dist/{components → types/components}/ai-elements/code-block/context.d.ts +0 -0
  690. /package/dist/{components → types/components}/ai-elements/code-block/index.d.ts +0 -0
  691. /package/dist/{components → types/components}/ai-elements/code-block/utils.d.ts +0 -0
  692. /package/dist/{components → types/components}/ai-elements/confirmation/Confirmation.vue.d.ts +0 -0
  693. /package/dist/{components → types/components}/ai-elements/confirmation/ConfirmationAccepted.vue.d.ts +0 -0
  694. /package/dist/{components → types/components}/ai-elements/confirmation/ConfirmationAction.vue.d.ts +0 -0
  695. /package/dist/{components → types/components}/ai-elements/confirmation/ConfirmationActions.vue.d.ts +0 -0
  696. /package/dist/{components → types/components}/ai-elements/confirmation/ConfirmationRejected.vue.d.ts +0 -0
  697. /package/dist/{components → types/components}/ai-elements/confirmation/ConfirmationRequest.vue.d.ts +0 -0
  698. /package/dist/{components → types/components}/ai-elements/confirmation/ConfirmationTitle.vue.d.ts +0 -0
  699. /package/dist/{components → types/components}/ai-elements/confirmation/context.d.ts +0 -0
  700. /package/dist/{components → types/components}/ai-elements/confirmation/index.d.ts +0 -0
  701. /package/dist/{components → types/components}/ai-elements/connection/Connection.vue.d.ts +0 -0
  702. /package/dist/{components → types/components}/ai-elements/connection/index.d.ts +0 -0
  703. /package/dist/{components → types/components}/ai-elements/context/Context.vue.d.ts +0 -0
  704. /package/dist/{components → types/components}/ai-elements/context/ContextCacheUsage.vue.d.ts +0 -0
  705. /package/dist/{components → types/components}/ai-elements/context/ContextContent.vue.d.ts +0 -0
  706. /package/dist/{components → types/components}/ai-elements/context/ContextContentBody.vue.d.ts +0 -0
  707. /package/dist/{components → types/components}/ai-elements/context/ContextContentFooter.vue.d.ts +0 -0
  708. /package/dist/{components → types/components}/ai-elements/context/ContextContentHeader.vue.d.ts +0 -0
  709. /package/dist/{components → types/components}/ai-elements/context/ContextIcon.vue.d.ts +0 -0
  710. /package/dist/{components → types/components}/ai-elements/context/ContextInputUsage.vue.d.ts +0 -0
  711. /package/dist/{components → types/components}/ai-elements/context/ContextOutputUsage.vue.d.ts +0 -0
  712. /package/dist/{components → types/components}/ai-elements/context/ContextReasoningUsage.vue.d.ts +0 -0
  713. /package/dist/{components → types/components}/ai-elements/context/ContextTrigger.vue.d.ts +0 -0
  714. /package/dist/{components → types/components}/ai-elements/context/TokensWithCost.vue.d.ts +0 -0
  715. /package/dist/{components → types/components}/ai-elements/context/context.d.ts +0 -0
  716. /package/dist/{components → types/components}/ai-elements/context/index.d.ts +0 -0
  717. /package/dist/{components → types/components}/ai-elements/controls/Controls.vue.d.ts +0 -0
  718. /package/dist/{components → types/components}/ai-elements/controls/index.d.ts +0 -0
  719. /package/dist/{components → types/components}/ai-elements/conversation/ConversationContent.vue.d.ts +0 -0
  720. /package/dist/{components → types/components}/ai-elements/conversation/ConversationEmptyState.vue.d.ts +0 -0
  721. /package/dist/{components → types/components}/ai-elements/conversation/ConversationScrollButton.vue.d.ts +0 -0
  722. /package/dist/{components → types/components}/ai-elements/conversation/index.d.ts +0 -0
  723. /package/dist/{components → types/components}/ai-elements/edge/Animated.vue.d.ts +0 -0
  724. /package/dist/{components → types/components}/ai-elements/edge/Temporary.vue.d.ts +0 -0
  725. /package/dist/{components → types/components}/ai-elements/edge/index.d.ts +0 -0
  726. /package/dist/{components → types/components}/ai-elements/image/Image.vue.d.ts +0 -0
  727. /package/dist/{components → types/components}/ai-elements/image/index.d.ts +0 -0
  728. /package/dist/{components → types/components}/ai-elements/inline-citation/InlineCitation.vue.d.ts +0 -0
  729. /package/dist/{components → types/components}/ai-elements/inline-citation/InlineCitationCard.vue.d.ts +0 -0
  730. /package/dist/{components → types/components}/ai-elements/inline-citation/InlineCitationCardBody.vue.d.ts +0 -0
  731. /package/dist/{components → types/components}/ai-elements/inline-citation/InlineCitationCardTrigger.vue.d.ts +0 -0
  732. /package/dist/{components → types/components}/ai-elements/inline-citation/InlineCitationCarousel.vue.d.ts +0 -0
  733. /package/dist/{components → types/components}/ai-elements/inline-citation/InlineCitationCarouselContent.vue.d.ts +0 -0
  734. /package/dist/{components → types/components}/ai-elements/inline-citation/InlineCitationCarouselHeader.vue.d.ts +0 -0
  735. /package/dist/{components → types/components}/ai-elements/inline-citation/InlineCitationCarouselIndex.vue.d.ts +0 -0
  736. /package/dist/{components → types/components}/ai-elements/inline-citation/InlineCitationCarouselItem.vue.d.ts +0 -0
  737. /package/dist/{components → types/components}/ai-elements/inline-citation/InlineCitationCarouselNext.vue.d.ts +0 -0
  738. /package/dist/{components → types/components}/ai-elements/inline-citation/InlineCitationCarouselPrev.vue.d.ts +0 -0
  739. /package/dist/{components → types/components}/ai-elements/inline-citation/InlineCitationQuote.vue.d.ts +0 -0
  740. /package/dist/{components → types/components}/ai-elements/inline-citation/InlineCitationSource.vue.d.ts +0 -0
  741. /package/dist/{components → types/components}/ai-elements/inline-citation/InlineCitationText.vue.d.ts +0 -0
  742. /package/dist/{components → types/components}/ai-elements/inline-citation/index.d.ts +0 -0
  743. /package/dist/{components → types/components}/ai-elements/loader/Loader.vue.d.ts +0 -0
  744. /package/dist/{components → types/components}/ai-elements/loader/LoaderIcon.vue.d.ts +0 -0
  745. /package/dist/{components → types/components}/ai-elements/loader/index.d.ts +0 -0
  746. /package/dist/{components → types/components}/ai-elements/message/Message.vue.d.ts +0 -0
  747. /package/dist/{components → types/components}/ai-elements/message/MessageActions.vue.d.ts +0 -0
  748. /package/dist/{components → types/components}/ai-elements/message/MessageAttachment.vue.d.ts +0 -0
  749. /package/dist/{components → types/components}/ai-elements/message/MessageAttachments.vue.d.ts +0 -0
  750. /package/dist/{components → types/components}/ai-elements/message/MessageAvatar.vue.d.ts +0 -0
  751. /package/dist/{components → types/components}/ai-elements/message/MessageBranch.vue.d.ts +0 -0
  752. /package/dist/{components → types/components}/ai-elements/message/MessageBranchContent.vue.d.ts +0 -0
  753. /package/dist/{components → types/components}/ai-elements/message/MessageBranchNext.vue.d.ts +0 -0
  754. /package/dist/{components → types/components}/ai-elements/message/MessageBranchPage.vue.d.ts +0 -0
  755. /package/dist/{components → types/components}/ai-elements/message/MessageBranchPrevious.vue.d.ts +0 -0
  756. /package/dist/{components → types/components}/ai-elements/message/MessageBranchSelector.vue.d.ts +0 -0
  757. /package/dist/{components → types/components}/ai-elements/message/MessageContent.vue.d.ts +0 -0
  758. /package/dist/{components → types/components}/ai-elements/message/MessageResponse.vue.d.ts +0 -0
  759. /package/dist/{components → types/components}/ai-elements/message/MessageToolbar.vue.d.ts +0 -0
  760. /package/dist/{components → types/components}/ai-elements/message/context.d.ts +0 -0
  761. /package/dist/{components → types/components}/ai-elements/message/index.d.ts +0 -0
  762. /package/dist/{components → types/components}/ai-elements/model-selector/ModelSelector.vue.d.ts +0 -0
  763. /package/dist/{components → types/components}/ai-elements/model-selector/ModelSelectorContent.vue.d.ts +0 -0
  764. /package/dist/{components → types/components}/ai-elements/model-selector/ModelSelectorDialog.vue.d.ts +0 -0
  765. /package/dist/{components → types/components}/ai-elements/model-selector/ModelSelectorEmpty.vue.d.ts +0 -0
  766. /package/dist/{components → types/components}/ai-elements/model-selector/ModelSelectorGroup.vue.d.ts +0 -0
  767. /package/dist/{components → types/components}/ai-elements/model-selector/ModelSelectorInput.vue.d.ts +0 -0
  768. /package/dist/{components → types/components}/ai-elements/model-selector/ModelSelectorItem.vue.d.ts +0 -0
  769. /package/dist/{components → types/components}/ai-elements/model-selector/ModelSelectorList.vue.d.ts +0 -0
  770. /package/dist/{components → types/components}/ai-elements/model-selector/ModelSelectorLogo.vue.d.ts +0 -0
  771. /package/dist/{components → types/components}/ai-elements/model-selector/ModelSelectorLogoGroup.vue.d.ts +0 -0
  772. /package/dist/{components → types/components}/ai-elements/model-selector/ModelSelectorName.vue.d.ts +0 -0
  773. /package/dist/{components → types/components}/ai-elements/model-selector/ModelSelectorSeparator.vue.d.ts +0 -0
  774. /package/dist/{components → types/components}/ai-elements/model-selector/ModelSelectorShortcut.vue.d.ts +0 -0
  775. /package/dist/{components → types/components}/ai-elements/model-selector/ModelSelectorTrigger.vue.d.ts +0 -0
  776. /package/dist/{components → types/components}/ai-elements/model-selector/index.d.ts +0 -0
  777. /package/dist/{components → types/components}/ai-elements/node/Node.vue.d.ts +0 -0
  778. /package/dist/{components → types/components}/ai-elements/node/NodeAction.vue.d.ts +0 -0
  779. /package/dist/{components → types/components}/ai-elements/node/NodeContent.vue.d.ts +0 -0
  780. /package/dist/{components → types/components}/ai-elements/node/NodeDescription.vue.d.ts +0 -0
  781. /package/dist/{components → types/components}/ai-elements/node/NodeFooter.vue.d.ts +0 -0
  782. /package/dist/{components → types/components}/ai-elements/node/NodeHeader.vue.d.ts +0 -0
  783. /package/dist/{components → types/components}/ai-elements/node/NodeTitle.vue.d.ts +0 -0
  784. /package/dist/{components → types/components}/ai-elements/node/index.d.ts +0 -0
  785. /package/dist/{components → types/components}/ai-elements/open-in-chat/OpenIn.vue.d.ts +0 -0
  786. /package/dist/{components → types/components}/ai-elements/open-in-chat/OpenInContent.vue.d.ts +0 -0
  787. /package/dist/{components → types/components}/ai-elements/open-in-chat/OpenInItemLink.vue.d.ts +0 -0
  788. /package/dist/{components → types/components}/ai-elements/open-in-chat/OpenInTrigger.vue.d.ts +0 -0
  789. /package/dist/{components → types/components}/ai-elements/open-in-chat/context.d.ts +0 -0
  790. /package/dist/{components → types/components}/ai-elements/open-in-chat/index.d.ts +0 -0
  791. /package/dist/{components → types/components}/ai-elements/open-in-chat/providers/icons/ChatGPT.vue.d.ts +0 -0
  792. /package/dist/{components → types/components}/ai-elements/open-in-chat/providers/icons/Claude.vue.d.ts +0 -0
  793. /package/dist/{components → types/components}/ai-elements/open-in-chat/providers/icons/Cursor.vue.d.ts +0 -0
  794. /package/dist/{components → types/components}/ai-elements/open-in-chat/providers/icons/Github.vue.d.ts +0 -0
  795. /package/dist/{components → types/components}/ai-elements/open-in-chat/providers/icons/Scira.vue.d.ts +0 -0
  796. /package/dist/{components → types/components}/ai-elements/open-in-chat/providers/icons/V0.vue.d.ts +0 -0
  797. /package/dist/{components → types/components}/ai-elements/open-in-chat/providers/icons/index.d.ts +0 -0
  798. /package/dist/{components → types/components}/ai-elements/open-in-chat/providers/index.d.ts +0 -0
  799. /package/dist/{components → types/components}/ai-elements/open-in-chat/providers/items/OpenInChatGPT.vue.d.ts +0 -0
  800. /package/dist/{components → types/components}/ai-elements/open-in-chat/providers/items/OpenInClaude.vue.d.ts +0 -0
  801. /package/dist/{components → types/components}/ai-elements/open-in-chat/providers/items/OpenInCursor.vue.d.ts +0 -0
  802. /package/dist/{components → types/components}/ai-elements/open-in-chat/providers/items/OpenInScira.vue.d.ts +0 -0
  803. /package/dist/{components → types/components}/ai-elements/open-in-chat/providers/items/OpenInT3.vue.d.ts +0 -0
  804. /package/dist/{components → types/components}/ai-elements/open-in-chat/providers/items/OpenInv0.vue.d.ts +0 -0
  805. /package/dist/{components → types/components}/ai-elements/panel/Panel.vue.d.ts +0 -0
  806. /package/dist/{components → types/components}/ai-elements/panel/index.d.ts +0 -0
  807. /package/dist/{components → types/components}/ai-elements/plan/Plan.vue.d.ts +0 -0
  808. /package/dist/{components → types/components}/ai-elements/plan/PlanAction.vue.d.ts +0 -0
  809. /package/dist/{components → types/components}/ai-elements/plan/PlanContent.vue.d.ts +0 -0
  810. /package/dist/{components → types/components}/ai-elements/plan/PlanDescription.vue.d.ts +0 -0
  811. /package/dist/{components → types/components}/ai-elements/plan/PlanFooter.vue.d.ts +0 -0
  812. /package/dist/{components → types/components}/ai-elements/plan/PlanHeader.vue.d.ts +0 -0
  813. /package/dist/{components → types/components}/ai-elements/plan/PlanTitle.vue.d.ts +0 -0
  814. /package/dist/{components → types/components}/ai-elements/plan/PlanTrigger.vue.d.ts +0 -0
  815. /package/dist/{components → types/components}/ai-elements/plan/context.d.ts +0 -0
  816. /package/dist/{components → types/components}/ai-elements/plan/index.d.ts +0 -0
  817. /package/dist/{components → types/components}/ai-elements/prompt-input/PromptInput.vue.d.ts +0 -0
  818. /package/dist/{components → types/components}/ai-elements/prompt-input/PromptInputActionAddAttachments.vue.d.ts +0 -0
  819. /package/dist/{components → types/components}/ai-elements/prompt-input/PromptInputActionMenu.vue.d.ts +0 -0
  820. /package/dist/{components → types/components}/ai-elements/prompt-input/PromptInputActionMenuContent.vue.d.ts +0 -0
  821. /package/dist/{components → types/components}/ai-elements/prompt-input/PromptInputActionMenuItem.vue.d.ts +0 -0
  822. /package/dist/{components → types/components}/ai-elements/prompt-input/PromptInputActionMenuTrigger.vue.d.ts +0 -0
  823. /package/dist/{components → types/components}/ai-elements/prompt-input/PromptInputAttachment.vue.d.ts +0 -0
  824. /package/dist/{components → types/components}/ai-elements/prompt-input/PromptInputAttachments.vue.d.ts +0 -0
  825. /package/dist/{components → types/components}/ai-elements/prompt-input/PromptInputBody.vue.d.ts +0 -0
  826. /package/dist/{components → types/components}/ai-elements/prompt-input/PromptInputCommand.vue.d.ts +0 -0
  827. /package/dist/{components → types/components}/ai-elements/prompt-input/PromptInputCommandEmpty.vue.d.ts +0 -0
  828. /package/dist/{components → types/components}/ai-elements/prompt-input/PromptInputCommandGroup.vue.d.ts +0 -0
  829. /package/dist/{components → types/components}/ai-elements/prompt-input/PromptInputCommandInput.vue.d.ts +0 -0
  830. /package/dist/{components → types/components}/ai-elements/prompt-input/PromptInputCommandItem.vue.d.ts +0 -0
  831. /package/dist/{components → types/components}/ai-elements/prompt-input/PromptInputCommandList.vue.d.ts +0 -0
  832. /package/dist/{components → types/components}/ai-elements/prompt-input/PromptInputCommandSeparator.vue.d.ts +0 -0
  833. /package/dist/{components → types/components}/ai-elements/prompt-input/PromptInputFooter.vue.d.ts +0 -0
  834. /package/dist/{components → types/components}/ai-elements/prompt-input/PromptInputHeader.vue.d.ts +0 -0
  835. /package/dist/{components → types/components}/ai-elements/prompt-input/PromptInputHoverCard.vue.d.ts +0 -0
  836. /package/dist/{components → types/components}/ai-elements/prompt-input/PromptInputHoverCardContent.vue.d.ts +0 -0
  837. /package/dist/{components → types/components}/ai-elements/prompt-input/PromptInputHoverCardTrigger.vue.d.ts +0 -0
  838. /package/dist/{components → types/components}/ai-elements/prompt-input/PromptInputProvider.vue.d.ts +0 -0
  839. /package/dist/{components → types/components}/ai-elements/prompt-input/PromptInputSelect.vue.d.ts +0 -0
  840. /package/dist/{components → types/components}/ai-elements/prompt-input/PromptInputSelectContent.vue.d.ts +0 -0
  841. /package/dist/{components → types/components}/ai-elements/prompt-input/PromptInputSelectItem.vue.d.ts +0 -0
  842. /package/dist/{components → types/components}/ai-elements/prompt-input/PromptInputSelectTrigger.vue.d.ts +0 -0
  843. /package/dist/{components → types/components}/ai-elements/prompt-input/PromptInputSelectValue.vue.d.ts +0 -0
  844. /package/dist/{components → types/components}/ai-elements/prompt-input/PromptInputSpeechButton.vue.d.ts +0 -0
  845. /package/dist/{components → types/components}/ai-elements/prompt-input/PromptInputTab.vue.d.ts +0 -0
  846. /package/dist/{components → types/components}/ai-elements/prompt-input/PromptInputTabBody.vue.d.ts +0 -0
  847. /package/dist/{components → types/components}/ai-elements/prompt-input/PromptInputTabItem.vue.d.ts +0 -0
  848. /package/dist/{components → types/components}/ai-elements/prompt-input/PromptInputTabLabel.vue.d.ts +0 -0
  849. /package/dist/{components → types/components}/ai-elements/prompt-input/PromptInputTabsList.vue.d.ts +0 -0
  850. /package/dist/{components → types/components}/ai-elements/prompt-input/PromptInputTextarea.vue.d.ts +0 -0
  851. /package/dist/{components → types/components}/ai-elements/prompt-input/PromptInputTools.vue.d.ts +0 -0
  852. /package/dist/{components → types/components}/ai-elements/prompt-input/context.d.ts +0 -0
  853. /package/dist/{components → types/components}/ai-elements/prompt-input/index.d.ts +0 -0
  854. /package/dist/{components → types/components}/ai-elements/prompt-input/types.d.ts +0 -0
  855. /package/dist/{components → types/components}/ai-elements/queue/Queue.vue.d.ts +0 -0
  856. /package/dist/{components → types/components}/ai-elements/queue/QueueItem.vue.d.ts +0 -0
  857. /package/dist/{components → types/components}/ai-elements/queue/QueueItemAction.vue.d.ts +0 -0
  858. /package/dist/{components → types/components}/ai-elements/queue/QueueItemActions.vue.d.ts +0 -0
  859. /package/dist/{components → types/components}/ai-elements/queue/QueueItemAttachment.vue.d.ts +0 -0
  860. /package/dist/{components → types/components}/ai-elements/queue/QueueItemContent.vue.d.ts +0 -0
  861. /package/dist/{components → types/components}/ai-elements/queue/QueueItemDescription.vue.d.ts +0 -0
  862. /package/dist/{components → types/components}/ai-elements/queue/QueueItemFile.vue.d.ts +0 -0
  863. /package/dist/{components → types/components}/ai-elements/queue/QueueItemImage.vue.d.ts +0 -0
  864. /package/dist/{components → types/components}/ai-elements/queue/QueueItemIndicator.vue.d.ts +0 -0
  865. /package/dist/{components → types/components}/ai-elements/queue/QueueList.vue.d.ts +0 -0
  866. /package/dist/{components → types/components}/ai-elements/queue/QueueSection.vue.d.ts +0 -0
  867. /package/dist/{components → types/components}/ai-elements/queue/QueueSectionContent.vue.d.ts +0 -0
  868. /package/dist/{components → types/components}/ai-elements/queue/QueueSectionLabel.vue.d.ts +0 -0
  869. /package/dist/{components → types/components}/ai-elements/queue/QueueSectionTrigger.vue.d.ts +0 -0
  870. /package/dist/{components → types/components}/ai-elements/queue/index.d.ts +0 -0
  871. /package/dist/{components → types/components}/ai-elements/reasoning/Reasoning.vue.d.ts +0 -0
  872. /package/dist/{components → types/components}/ai-elements/reasoning/ReasoningContent.vue.d.ts +0 -0
  873. /package/dist/{components → types/components}/ai-elements/reasoning/ReasoningTrigger.vue.d.ts +0 -0
  874. /package/dist/{components → types/components}/ai-elements/reasoning/context.d.ts +0 -0
  875. /package/dist/{components → types/components}/ai-elements/reasoning/index.d.ts +0 -0
  876. /package/dist/{components → types/components}/ai-elements/shimmer/index.d.ts +0 -0
  877. /package/dist/{components → types/components}/ai-elements/sources/Source.vue.d.ts +0 -0
  878. /package/dist/{components → types/components}/ai-elements/sources/Sources.vue.d.ts +0 -0
  879. /package/dist/{components → types/components}/ai-elements/sources/SourcesContent.vue.d.ts +0 -0
  880. /package/dist/{components → types/components}/ai-elements/sources/SourcesTrigger.vue.d.ts +0 -0
  881. /package/dist/{components → types/components}/ai-elements/sources/index.d.ts +0 -0
  882. /package/dist/{components → types/components}/ai-elements/suggestion/Suggestion.vue.d.ts +0 -0
  883. /package/dist/{components → types/components}/ai-elements/suggestion/Suggestions.vue.d.ts +0 -0
  884. /package/dist/{components → types/components}/ai-elements/suggestion/index.d.ts +0 -0
  885. /package/dist/{components → types/components}/ai-elements/task/Task.vue.d.ts +0 -0
  886. /package/dist/{components → types/components}/ai-elements/task/TaskContent.vue.d.ts +0 -0
  887. /package/dist/{components → types/components}/ai-elements/task/TaskItem.vue.d.ts +0 -0
  888. /package/dist/{components → types/components}/ai-elements/task/TaskItemFile.vue.d.ts +0 -0
  889. /package/dist/{components → types/components}/ai-elements/task/TaskTrigger.vue.d.ts +0 -0
  890. /package/dist/{components → types/components}/ai-elements/task/index.d.ts +0 -0
  891. /package/dist/{components → types/components}/ai-elements/tool/Tool.vue.d.ts +0 -0
  892. /package/dist/{components → types/components}/ai-elements/tool/ToolContent.vue.d.ts +0 -0
  893. /package/dist/{components → types/components}/ai-elements/tool/ToolHeader.vue.d.ts +0 -0
  894. /package/dist/{components → types/components}/ai-elements/tool/ToolInput.vue.d.ts +0 -0
  895. /package/dist/{components → types/components}/ai-elements/tool/ToolOutput.vue.d.ts +0 -0
  896. /package/dist/{components → types/components}/ai-elements/tool/ToolStatusBadge.vue.d.ts +0 -0
  897. /package/dist/{components → types/components}/ai-elements/tool/index.d.ts +0 -0
  898. /package/dist/{components → types/components}/ai-elements/toolbar/Toolbar.vue.d.ts +0 -0
  899. /package/dist/{components → types/components}/ai-elements/toolbar/index.d.ts +0 -0
  900. /package/dist/{components → types/components}/ai-elements/web-preview/WebPreview.vue.d.ts +0 -0
  901. /package/dist/{components → types/components}/ai-elements/web-preview/WebPreviewBody.vue.d.ts +0 -0
  902. /package/dist/{components → types/components}/ai-elements/web-preview/WebPreviewConsole.vue.d.ts +0 -0
  903. /package/dist/{components → types/components}/ai-elements/web-preview/WebPreviewNavigation.vue.d.ts +0 -0
  904. /package/dist/{components → types/components}/ai-elements/web-preview/WebPreviewUrl.vue.d.ts +0 -0
  905. /package/dist/{components → types/components}/ai-elements/web-preview/context.d.ts +0 -0
  906. /package/dist/{components → types/components}/ai-elements/web-preview/index.d.ts +0 -0
  907. /package/dist/{components → types/components}/ui/alert/Alert.vue.d.ts +0 -0
  908. /package/dist/{components → types/components}/ui/alert/AlertDescription.vue.d.ts +0 -0
  909. /package/dist/{components → types/components}/ui/alert/AlertTitle.vue.d.ts +0 -0
  910. /package/dist/{components → types/components}/ui/alert/index.d.ts +0 -0
  911. /package/dist/{components → types/components}/ui/avatar/Avatar.vue.d.ts +0 -0
  912. /package/dist/{components → types/components}/ui/avatar/AvatarFallback.vue.d.ts +0 -0
  913. /package/dist/{components → types/components}/ui/avatar/AvatarImage.vue.d.ts +0 -0
  914. /package/dist/{components → types/components}/ui/avatar/index.d.ts +0 -0
  915. /package/dist/{components → types/components}/ui/badge/Badge.vue.d.ts +0 -0
  916. /package/dist/{components → types/components}/ui/button-group/ButtonGroup.vue.d.ts +0 -0
  917. /package/dist/{components → types/components}/ui/card/Card.vue.d.ts +0 -0
  918. /package/dist/{components → types/components}/ui/card/CardAction.vue.d.ts +0 -0
  919. /package/dist/{components → types/components}/ui/card/CardContent.vue.d.ts +0 -0
  920. /package/dist/{components → types/components}/ui/card/CardDescription.vue.d.ts +0 -0
  921. /package/dist/{components → types/components}/ui/card/CardFooter.vue.d.ts +0 -0
  922. /package/dist/{components → types/components}/ui/card/CardHeader.vue.d.ts +0 -0
  923. /package/dist/{components → types/components}/ui/card/CardTitle.vue.d.ts +0 -0
  924. /package/dist/{components → types/components}/ui/card/index.d.ts +0 -0
  925. /package/dist/{components → types/components}/ui/carousel/CarouselContent.vue.d.ts +0 -0
  926. /package/dist/{components → types/components}/ui/carousel/CarouselItem.vue.d.ts +0 -0
  927. /package/dist/{components → types/components}/ui/carousel/index.d.ts +0 -0
  928. /package/dist/{components → types/components}/ui/carousel/interface.d.ts +0 -0
  929. /package/dist/{components → types/components}/ui/collapsible/Collapsible.vue.d.ts +0 -0
  930. /package/dist/{components → types/components}/ui/collapsible/CollapsibleContent.vue.d.ts +0 -0
  931. /package/dist/{components → types/components}/ui/collapsible/CollapsibleTrigger.vue.d.ts +0 -0
  932. /package/dist/{components → types/components}/ui/collapsible/index.d.ts +0 -0
  933. /package/dist/{components → types/components}/ui/command/Command.vue.d.ts +0 -0
  934. /package/dist/{components → types/components}/ui/command/CommandDialog.vue.d.ts +0 -0
  935. /package/dist/{components → types/components}/ui/command/CommandEmpty.vue.d.ts +0 -0
  936. /package/dist/{components → types/components}/ui/command/CommandGroup.vue.d.ts +0 -0
  937. /package/dist/{components → types/components}/ui/command/CommandInput.vue.d.ts +0 -0
  938. /package/dist/{components → types/components}/ui/command/CommandItem.vue.d.ts +0 -0
  939. /package/dist/{components → types/components}/ui/command/CommandList.vue.d.ts +0 -0
  940. /package/dist/{components → types/components}/ui/command/CommandSeparator.vue.d.ts +0 -0
  941. /package/dist/{components → types/components}/ui/command/CommandShortcut.vue.d.ts +0 -0
  942. /package/dist/{components → types/components}/ui/command/index.d.ts +0 -0
  943. /package/dist/{components → types/components}/ui/dialog/Dialog.vue.d.ts +0 -0
  944. /package/dist/{components → types/components}/ui/dialog/DialogClose.vue.d.ts +0 -0
  945. /package/dist/{components → types/components}/ui/dialog/DialogContent.vue.d.ts +0 -0
  946. /package/dist/{components → types/components}/ui/dialog/DialogDescription.vue.d.ts +0 -0
  947. /package/dist/{components → types/components}/ui/dialog/DialogFooter.vue.d.ts +0 -0
  948. /package/dist/{components → types/components}/ui/dialog/DialogHeader.vue.d.ts +0 -0
  949. /package/dist/{components → types/components}/ui/dialog/DialogOverlay.vue.d.ts +0 -0
  950. /package/dist/{components → types/components}/ui/dialog/DialogScrollContent.vue.d.ts +0 -0
  951. /package/dist/{components → types/components}/ui/dialog/DialogTitle.vue.d.ts +0 -0
  952. /package/dist/{components → types/components}/ui/dialog/DialogTrigger.vue.d.ts +0 -0
  953. /package/dist/{components → types/components}/ui/dialog/index.d.ts +0 -0
  954. /package/dist/{components → types/components}/ui/dropdown-menu/DropdownMenu.vue.d.ts +0 -0
  955. /package/dist/{components → types/components}/ui/dropdown-menu/DropdownMenuCheckboxItem.vue.d.ts +0 -0
  956. /package/dist/{components → types/components}/ui/dropdown-menu/DropdownMenuContent.vue.d.ts +0 -0
  957. /package/dist/{components → types/components}/ui/dropdown-menu/DropdownMenuGroup.vue.d.ts +0 -0
  958. /package/dist/{components → types/components}/ui/dropdown-menu/DropdownMenuItem.vue.d.ts +0 -0
  959. /package/dist/{components → types/components}/ui/dropdown-menu/DropdownMenuLabel.vue.d.ts +0 -0
  960. /package/dist/{components → types/components}/ui/dropdown-menu/DropdownMenuRadioGroup.vue.d.ts +0 -0
  961. /package/dist/{components → types/components}/ui/dropdown-menu/DropdownMenuRadioItem.vue.d.ts +0 -0
  962. /package/dist/{components → types/components}/ui/dropdown-menu/DropdownMenuSeparator.vue.d.ts +0 -0
  963. /package/dist/{components → types/components}/ui/dropdown-menu/DropdownMenuShortcut.vue.d.ts +0 -0
  964. /package/dist/{components → types/components}/ui/dropdown-menu/DropdownMenuSub.vue.d.ts +0 -0
  965. /package/dist/{components → types/components}/ui/dropdown-menu/DropdownMenuSubContent.vue.d.ts +0 -0
  966. /package/dist/{components → types/components}/ui/dropdown-menu/DropdownMenuSubTrigger.vue.d.ts +0 -0
  967. /package/dist/{components → types/components}/ui/dropdown-menu/DropdownMenuTrigger.vue.d.ts +0 -0
  968. /package/dist/{components → types/components}/ui/dropdown-menu/index.d.ts +0 -0
  969. /package/dist/{components → types/components}/ui/hover-card/HoverCard.vue.d.ts +0 -0
  970. /package/dist/{components → types/components}/ui/hover-card/HoverCardContent.vue.d.ts +0 -0
  971. /package/dist/{components → types/components}/ui/hover-card/HoverCardTrigger.vue.d.ts +0 -0
  972. /package/dist/{components → types/components}/ui/hover-card/index.d.ts +0 -0
  973. /package/dist/{components → types/components}/ui/input/Input.vue.d.ts +0 -0
  974. /package/dist/{components → types/components}/ui/input/index.d.ts +0 -0
  975. /package/dist/{components → types/components}/ui/input-group/InputGroup.vue.d.ts +0 -0
  976. /package/dist/{components → types/components}/ui/input-group/InputGroupAddon.vue.d.ts +0 -0
  977. /package/dist/{components → types/components}/ui/input-group/InputGroupInput.vue.d.ts +0 -0
  978. /package/dist/{components → types/components}/ui/input-group/InputGroupText.vue.d.ts +0 -0
  979. /package/dist/{components → types/components}/ui/input-group/InputGroupTextarea.vue.d.ts +0 -0
  980. /package/dist/{components → types/components}/ui/input-group/index.d.ts +0 -0
  981. /package/dist/{components → types/components}/ui/progress/Progress.vue.d.ts +0 -0
  982. /package/dist/{components → types/components}/ui/progress/index.d.ts +0 -0
  983. /package/dist/{components → types/components}/ui/scroll-area/ScrollArea.vue.d.ts +0 -0
  984. /package/dist/{components → types/components}/ui/scroll-area/ScrollBar.vue.d.ts +0 -0
  985. /package/dist/{components → types/components}/ui/scroll-area/index.d.ts +0 -0
  986. /package/dist/{components → types/components}/ui/select/SelectContent.vue.d.ts +0 -0
  987. /package/dist/{components → types/components}/ui/select/SelectGroup.vue.d.ts +0 -0
  988. /package/dist/{components → types/components}/ui/select/SelectItem.vue.d.ts +0 -0
  989. /package/dist/{components → types/components}/ui/select/SelectItemText.vue.d.ts +0 -0
  990. /package/dist/{components → types/components}/ui/select/SelectLabel.vue.d.ts +0 -0
  991. /package/dist/{components → types/components}/ui/select/SelectScrollDownButton.vue.d.ts +0 -0
  992. /package/dist/{components → types/components}/ui/select/SelectScrollUpButton.vue.d.ts +0 -0
  993. /package/dist/{components → types/components}/ui/select/SelectSeparator.vue.d.ts +0 -0
  994. /package/dist/{components → types/components}/ui/select/SelectTrigger.vue.d.ts +0 -0
  995. /package/dist/{components → types/components}/ui/select/SelectValue.vue.d.ts +0 -0
  996. /package/dist/{components → types/components}/ui/select/index.d.ts +0 -0
  997. /package/dist/{components → types/components}/ui/separator/index.d.ts +0 -0
  998. /package/dist/{components → types/components}/ui/textarea/Textarea.vue.d.ts +0 -0
  999. /package/dist/{components → types/components}/ui/textarea/index.d.ts +0 -0
  1000. /package/dist/{components → types/components}/ui/tooltip/Tooltip.vue.d.ts +0 -0
  1001. /package/dist/{components → types/components}/ui/tooltip/TooltipContent.vue.d.ts +0 -0
  1002. /package/dist/{components → types/components}/ui/tooltip/TooltipProvider.vue.d.ts +0 -0
  1003. /package/dist/{components → types/components}/ui/tooltip/TooltipTrigger.vue.d.ts +0 -0
  1004. /package/dist/{components → types/components}/ui/tooltip/index.d.ts +0 -0
  1005. /package/dist/{index.d.ts → types/index.d.ts} +0 -0
  1006. /package/dist/{lib → types/lib}/utils.d.ts +0 -0
  1007. /package/dist/{main.d.ts → types/main.d.ts} +0 -0
  1008. /package/dist/{request → types/request}/index.d.ts +0 -0
@@ -1,4861 +0,0 @@
1
- import { a as decodeEntities, p as parseFontSize, r as calculateTextWidth, u as handleUndefinedAttr } from "./chunk-S3R3BYOJ-DHTsHczu.js";
2
- import { g as log, h as __name, p as select_default } from "./src-B-SBGd0A.js";
3
- import { A as parseGenericTypes, I as sanitizeText, L as sanitizeText3, N as renderKatexSanitized, O as hasKatex, b as getConfig2, d as defaultConfig_default, h as evaluate, s as common_default, y as getConfig } from "./chunk-ABZYJK2D-BZvlc6Ej.js";
4
- import { n as createText, r as getIconSVG } from "./chunk-JA3XYJ7Z-Dhh1_u_p.js";
5
- import { t as getSubGraphTitleMargins } from "./chunk-CVBHYZKI-DxEBlSK7.js";
6
- import { a as userNodeOverrides, i as styles2String, r as solidStateFill, t as compileStyles } from "./chunk-ATLVNIR6-C3g7rsIT.js";
7
- function t(St, lr, ur) {
8
- if (St && St.length) {
9
- let [dr, fr] = lr, pr = Math.PI / 180 * ur, mr = Math.cos(pr), hr = Math.sin(pr);
10
- for (let lr of St) {
11
- let [St, ur] = lr;
12
- lr[0] = (St - dr) * mr - (ur - fr) * hr + dr, lr[1] = (St - dr) * hr + (ur - fr) * mr + fr;
13
- }
14
- }
15
- }
16
- function e(St, lr) {
17
- return St[0] === lr[0] && St[1] === lr[1];
18
- }
19
- function s(St, lr, ur, dr = 1) {
20
- let fr = ur, pr = Math.max(lr, .1), mr = St[0] && St[0][0] && typeof St[0][0] == "number" ? [St] : St, hr = [0, 0];
21
- if (fr) for (let St of mr) t(St, hr, fr);
22
- let gr = function(St, lr, ur) {
23
- let dr = [];
24
- for (let lr of St) {
25
- let St = [...lr];
26
- e(St[0], St[St.length - 1]) || St.push([St[0][0], St[0][1]]), St.length > 2 && dr.push(St);
27
- }
28
- let fr = [];
29
- lr = Math.max(lr, .1);
30
- let pr = [];
31
- for (let St of dr) for (let lr = 0; lr < St.length - 1; lr++) {
32
- let ur = St[lr], dr = St[lr + 1];
33
- if (ur[1] !== dr[1]) {
34
- let St = Math.min(ur[1], dr[1]);
35
- pr.push({
36
- ymin: St,
37
- ymax: Math.max(ur[1], dr[1]),
38
- x: St === ur[1] ? ur[0] : dr[0],
39
- islope: (dr[0] - ur[0]) / (dr[1] - ur[1])
40
- });
41
- }
42
- }
43
- if (pr.sort(((St, lr) => St.ymin < lr.ymin ? -1 : St.ymin > lr.ymin ? 1 : St.x < lr.x ? -1 : St.x > lr.x ? 1 : St.ymax === lr.ymax ? 0 : (St.ymax - lr.ymax) / Math.abs(St.ymax - lr.ymax))), !pr.length) return fr;
44
- let mr = [], hr = pr[0].ymin, gr = 0;
45
- for (; mr.length || pr.length;) {
46
- if (pr.length) {
47
- let St = -1;
48
- for (let lr = 0; lr < pr.length && !(pr[lr].ymin > hr); lr++) St = lr;
49
- pr.splice(0, St + 1).forEach(((St) => {
50
- mr.push({
51
- s: hr,
52
- edge: St
53
- });
54
- }));
55
- }
56
- if (mr = mr.filter(((St) => !(St.edge.ymax <= hr))), mr.sort(((St, lr) => St.edge.x === lr.edge.x ? 0 : (St.edge.x - lr.edge.x) / Math.abs(St.edge.x - lr.edge.x))), (ur !== 1 || gr % lr == 0) && mr.length > 1) for (let St = 0; St < mr.length; St += 2) {
57
- let lr = St + 1;
58
- if (lr >= mr.length) break;
59
- let ur = mr[St].edge, dr = mr[lr].edge;
60
- fr.push([[Math.round(ur.x), hr], [Math.round(dr.x), hr]]);
61
- }
62
- hr += ur, mr.forEach(((St) => {
63
- St.edge.x = St.edge.x + ur * St.edge.islope;
64
- })), gr++;
65
- }
66
- return fr;
67
- }(mr, pr, dr);
68
- if (fr) {
69
- for (let St of mr) t(St, hr, -fr);
70
- (function(St, lr, ur) {
71
- let dr = [];
72
- St.forEach(((St) => dr.push(...St))), t(dr, lr, ur);
73
- })(gr, hr, -fr);
74
- }
75
- return gr;
76
- }
77
- function n(St, lr) {
78
- let ur = lr.hachureAngle + 90, dr = lr.hachureGap;
79
- dr < 0 && (dr = 4 * lr.strokeWidth), dr = Math.round(Math.max(dr, .1));
80
- let fr = 1;
81
- return lr.roughness >= 1 && (lr.randomizer?.next() || Math.random()) > .7 && (fr = dr), s(St, dr, ur, fr || 1);
82
- }
83
- var o = class {
84
- constructor(St) {
85
- this.helper = St;
86
- }
87
- fillPolygons(St, lr) {
88
- return this._fillPolygons(St, lr);
89
- }
90
- _fillPolygons(St, lr) {
91
- let ur = n(St, lr);
92
- return {
93
- type: "fillSketch",
94
- ops: this.renderLines(ur, lr)
95
- };
96
- }
97
- renderLines(St, lr) {
98
- let ur = [];
99
- for (let dr of St) ur.push(...this.helper.doubleLineOps(dr[0][0], dr[0][1], dr[1][0], dr[1][1], lr));
100
- return ur;
101
- }
102
- };
103
- function a(St) {
104
- let lr = St[0], ur = St[1];
105
- return Math.sqrt((lr[0] - ur[0]) ** 2 + (lr[1] - ur[1]) ** 2);
106
- }
107
- var h = class extends o {
108
- fillPolygons(St, lr) {
109
- let ur = lr.hachureGap;
110
- ur < 0 && (ur = 4 * lr.strokeWidth), ur = Math.max(ur, .1);
111
- let dr = n(St, Object.assign({}, lr, { hachureGap: ur })), fr = Math.PI / 180 * lr.hachureAngle, pr = [], mr = .5 * ur * Math.cos(fr), hr = .5 * ur * Math.sin(fr);
112
- for (let [St, lr] of dr) a([St, lr]) && pr.push([[St[0] - mr, St[1] + hr], [...lr]], [[St[0] + mr, St[1] - hr], [...lr]]);
113
- return {
114
- type: "fillSketch",
115
- ops: this.renderLines(pr, lr)
116
- };
117
- }
118
- }, r = class extends o {
119
- fillPolygons(St, lr) {
120
- let ur = this._fillPolygons(St, lr), dr = Object.assign({}, lr, { hachureAngle: lr.hachureAngle + 90 }), fr = this._fillPolygons(St, dr);
121
- return ur.ops = ur.ops.concat(fr.ops), ur;
122
- }
123
- }, i = class {
124
- constructor(St) {
125
- this.helper = St;
126
- }
127
- fillPolygons(St, lr) {
128
- let ur = n(St, lr = Object.assign({}, lr, { hachureAngle: 0 }));
129
- return this.dotsOnLines(ur, lr);
130
- }
131
- dotsOnLines(St, lr) {
132
- let ur = [], dr = lr.hachureGap;
133
- dr < 0 && (dr = 4 * lr.strokeWidth), dr = Math.max(dr, .1);
134
- let fr = lr.fillWeight;
135
- fr < 0 && (fr = lr.strokeWidth / 2);
136
- let pr = dr / 4;
137
- for (let mr of St) {
138
- let St = a(mr), hr = St / dr, gr = Math.ceil(hr) - 1, _r = St - gr * dr, vr = (mr[0][0] + mr[1][0]) / 2 - dr / 4, yr = Math.min(mr[0][1], mr[1][1]);
139
- for (let St = 0; St < gr; St++) {
140
- let mr = yr + _r + St * dr, hr = vr - pr + 2 * Math.random() * pr, gr = mr - pr + 2 * Math.random() * pr, br = this.helper.ellipse(hr, gr, fr, fr, lr);
141
- ur.push(...br.ops);
142
- }
143
- }
144
- return {
145
- type: "fillSketch",
146
- ops: ur
147
- };
148
- }
149
- }, c = class {
150
- constructor(St) {
151
- this.helper = St;
152
- }
153
- fillPolygons(St, lr) {
154
- let ur = n(St, lr);
155
- return {
156
- type: "fillSketch",
157
- ops: this.dashedLine(ur, lr)
158
- };
159
- }
160
- dashedLine(St, lr) {
161
- let ur = lr.dashOffset < 0 ? lr.hachureGap < 0 ? 4 * lr.strokeWidth : lr.hachureGap : lr.dashOffset, dr = lr.dashGap < 0 ? lr.hachureGap < 0 ? 4 * lr.strokeWidth : lr.hachureGap : lr.dashGap, fr = [];
162
- return St.forEach(((St) => {
163
- let pr = a(St), mr = Math.floor(pr / (ur + dr)), hr = (pr + dr - mr * (ur + dr)) / 2, gr = St[0], _r = St[1];
164
- gr[0] > _r[0] && (gr = St[1], _r = St[0]);
165
- let vr = Math.atan((_r[1] - gr[1]) / (_r[0] - gr[0]));
166
- for (let St = 0; St < mr; St++) {
167
- let pr = St * (ur + dr), mr = pr + ur, _r = [gr[0] + pr * Math.cos(vr) + hr * Math.cos(vr), gr[1] + pr * Math.sin(vr) + hr * Math.sin(vr)], yr = [gr[0] + mr * Math.cos(vr) + hr * Math.cos(vr), gr[1] + mr * Math.sin(vr) + hr * Math.sin(vr)];
168
- fr.push(...this.helper.doubleLineOps(_r[0], _r[1], yr[0], yr[1], lr));
169
- }
170
- })), fr;
171
- }
172
- }, l = class {
173
- constructor(St) {
174
- this.helper = St;
175
- }
176
- fillPolygons(St, lr) {
177
- let ur = lr.hachureGap < 0 ? 4 * lr.strokeWidth : lr.hachureGap, dr = lr.zigzagOffset < 0 ? ur : lr.zigzagOffset, fr = n(St, lr = Object.assign({}, lr, { hachureGap: ur + dr }));
178
- return {
179
- type: "fillSketch",
180
- ops: this.zigzagLines(fr, dr, lr)
181
- };
182
- }
183
- zigzagLines(St, lr, ur) {
184
- let dr = [];
185
- return St.forEach(((St) => {
186
- let fr = a(St), pr = Math.round(fr / (2 * lr)), mr = St[0], hr = St[1];
187
- mr[0] > hr[0] && (mr = St[1], hr = St[0]);
188
- let gr = Math.atan((hr[1] - mr[1]) / (hr[0] - mr[0]));
189
- for (let St = 0; St < pr; St++) {
190
- let fr = 2 * St * lr, pr = 2 * (St + 1) * lr, hr = Math.sqrt(2 * lr ** 2), _r = [mr[0] + fr * Math.cos(gr), mr[1] + fr * Math.sin(gr)], vr = [mr[0] + pr * Math.cos(gr), mr[1] + pr * Math.sin(gr)], yr = [_r[0] + hr * Math.cos(gr + Math.PI / 4), _r[1] + hr * Math.sin(gr + Math.PI / 4)];
191
- dr.push(...this.helper.doubleLineOps(_r[0], _r[1], yr[0], yr[1], ur), ...this.helper.doubleLineOps(yr[0], yr[1], vr[0], vr[1], ur));
192
- }
193
- })), dr;
194
- }
195
- }, u = {}, p = class {
196
- constructor(St) {
197
- this.seed = St;
198
- }
199
- next() {
200
- return this.seed ? (2 ** 31 - 1 & (this.seed = Math.imul(48271, this.seed))) / 2 ** 31 : Math.random();
201
- }
202
- }, f = 0, d = 1, g = 2, M = {
203
- A: 7,
204
- a: 7,
205
- C: 6,
206
- c: 6,
207
- H: 1,
208
- h: 1,
209
- L: 2,
210
- l: 2,
211
- M: 2,
212
- m: 2,
213
- Q: 4,
214
- q: 4,
215
- S: 4,
216
- s: 4,
217
- T: 2,
218
- t: 2,
219
- V: 1,
220
- v: 1,
221
- Z: 0,
222
- z: 0
223
- };
224
- function k(St, lr) {
225
- return St.type === lr;
226
- }
227
- function b(St) {
228
- let lr = [], ur = function(St) {
229
- let lr = [];
230
- for (; St !== "";) if (St.match(/^([ \t\r\n,]+)/)) St = St.substr(RegExp.$1.length);
231
- else if (St.match(/^([aAcChHlLmMqQsStTvVzZ])/)) lr[lr.length] = {
232
- type: f,
233
- text: RegExp.$1
234
- }, St = St.substr(RegExp.$1.length);
235
- else {
236
- if (!St.match(/^(([-+]?[0-9]+(\.[0-9]*)?|[-+]?\.[0-9]+)([eE][-+]?[0-9]+)?)/)) return [];
237
- lr[lr.length] = {
238
- type: d,
239
- text: `${parseFloat(RegExp.$1)}`
240
- }, St = St.substr(RegExp.$1.length);
241
- }
242
- return lr[lr.length] = {
243
- type: g,
244
- text: ""
245
- }, lr;
246
- }(St), dr = "BOD", fr = 0, pr = ur[fr];
247
- for (; !k(pr, g);) {
248
- let mr = 0, hr = [];
249
- if (dr === "BOD") {
250
- if (pr.text !== "M" && pr.text !== "m") return b("M0,0" + St);
251
- fr++, mr = M[pr.text], dr = pr.text;
252
- } else k(pr, d) ? mr = M[dr] : (fr++, mr = M[pr.text], dr = pr.text);
253
- if (!(fr + mr < ur.length)) throw Error("Path data ended short");
254
- for (let St = fr; St < fr + mr; St++) {
255
- let lr = ur[St];
256
- if (!k(lr, d)) throw Error("Param not a number: " + dr + "," + lr.text);
257
- hr[hr.length] = +lr.text;
258
- }
259
- if (typeof M[dr] != "number") throw Error("Bad segment: " + dr);
260
- {
261
- let St = {
262
- key: dr,
263
- data: hr
264
- };
265
- lr.push(St), fr += mr, pr = ur[fr], dr === "M" && (dr = "L"), dr === "m" && (dr = "l");
266
- }
267
- }
268
- return lr;
269
- }
270
- function y(St) {
271
- let lr = 0, ur = 0, dr = 0, fr = 0, pr = [];
272
- for (let { key: mr, data: hr } of St) switch (mr) {
273
- case "M":
274
- pr.push({
275
- key: "M",
276
- data: [...hr]
277
- }), [lr, ur] = hr, [dr, fr] = hr;
278
- break;
279
- case "m":
280
- lr += hr[0], ur += hr[1], pr.push({
281
- key: "M",
282
- data: [lr, ur]
283
- }), dr = lr, fr = ur;
284
- break;
285
- case "L":
286
- pr.push({
287
- key: "L",
288
- data: [...hr]
289
- }), [lr, ur] = hr;
290
- break;
291
- case "l":
292
- lr += hr[0], ur += hr[1], pr.push({
293
- key: "L",
294
- data: [lr, ur]
295
- });
296
- break;
297
- case "C":
298
- pr.push({
299
- key: "C",
300
- data: [...hr]
301
- }), lr = hr[4], ur = hr[5];
302
- break;
303
- case "c": {
304
- let St = hr.map(((St, dr) => dr % 2 ? St + ur : St + lr));
305
- pr.push({
306
- key: "C",
307
- data: St
308
- }), lr = St[4], ur = St[5];
309
- break;
310
- }
311
- case "Q":
312
- pr.push({
313
- key: "Q",
314
- data: [...hr]
315
- }), lr = hr[2], ur = hr[3];
316
- break;
317
- case "q": {
318
- let St = hr.map(((St, dr) => dr % 2 ? St + ur : St + lr));
319
- pr.push({
320
- key: "Q",
321
- data: St
322
- }), lr = St[2], ur = St[3];
323
- break;
324
- }
325
- case "A":
326
- pr.push({
327
- key: "A",
328
- data: [...hr]
329
- }), lr = hr[5], ur = hr[6];
330
- break;
331
- case "a":
332
- lr += hr[5], ur += hr[6], pr.push({
333
- key: "A",
334
- data: [
335
- hr[0],
336
- hr[1],
337
- hr[2],
338
- hr[3],
339
- hr[4],
340
- lr,
341
- ur
342
- ]
343
- });
344
- break;
345
- case "H":
346
- pr.push({
347
- key: "H",
348
- data: [...hr]
349
- }), lr = hr[0];
350
- break;
351
- case "h":
352
- lr += hr[0], pr.push({
353
- key: "H",
354
- data: [lr]
355
- });
356
- break;
357
- case "V":
358
- pr.push({
359
- key: "V",
360
- data: [...hr]
361
- }), ur = hr[0];
362
- break;
363
- case "v":
364
- ur += hr[0], pr.push({
365
- key: "V",
366
- data: [ur]
367
- });
368
- break;
369
- case "S":
370
- pr.push({
371
- key: "S",
372
- data: [...hr]
373
- }), lr = hr[2], ur = hr[3];
374
- break;
375
- case "s": {
376
- let St = hr.map(((St, dr) => dr % 2 ? St + ur : St + lr));
377
- pr.push({
378
- key: "S",
379
- data: St
380
- }), lr = St[2], ur = St[3];
381
- break;
382
- }
383
- case "T":
384
- pr.push({
385
- key: "T",
386
- data: [...hr]
387
- }), lr = hr[0], ur = hr[1];
388
- break;
389
- case "t":
390
- lr += hr[0], ur += hr[1], pr.push({
391
- key: "T",
392
- data: [lr, ur]
393
- });
394
- break;
395
- case "Z":
396
- case "z": pr.push({
397
- key: "Z",
398
- data: []
399
- }), lr = dr, ur = fr;
400
- }
401
- return pr;
402
- }
403
- function m(St) {
404
- let lr = [], ur = "", dr = 0, fr = 0, pr = 0, mr = 0, hr = 0, gr = 0;
405
- for (let { key: _r, data: vr } of St) {
406
- switch (_r) {
407
- case "M":
408
- lr.push({
409
- key: "M",
410
- data: [...vr]
411
- }), [dr, fr] = vr, [pr, mr] = vr;
412
- break;
413
- case "C":
414
- lr.push({
415
- key: "C",
416
- data: [...vr]
417
- }), dr = vr[4], fr = vr[5], hr = vr[2], gr = vr[3];
418
- break;
419
- case "L":
420
- lr.push({
421
- key: "L",
422
- data: [...vr]
423
- }), [dr, fr] = vr;
424
- break;
425
- case "H":
426
- dr = vr[0], lr.push({
427
- key: "L",
428
- data: [dr, fr]
429
- });
430
- break;
431
- case "V":
432
- fr = vr[0], lr.push({
433
- key: "L",
434
- data: [dr, fr]
435
- });
436
- break;
437
- case "S": {
438
- let St = 0, pr = 0;
439
- ur === "C" || ur === "S" ? (St = dr + (dr - hr), pr = fr + (fr - gr)) : (St = dr, pr = fr), lr.push({
440
- key: "C",
441
- data: [
442
- St,
443
- pr,
444
- ...vr
445
- ]
446
- }), hr = vr[0], gr = vr[1], dr = vr[2], fr = vr[3];
447
- break;
448
- }
449
- case "T": {
450
- let [St, pr] = vr, mr = 0, _r = 0;
451
- ur === "Q" || ur === "T" ? (mr = dr + (dr - hr), _r = fr + (fr - gr)) : (mr = dr, _r = fr);
452
- let yr = dr + 2 * (mr - dr) / 3, br = fr + 2 * (_r - fr) / 3, xr = St + 2 * (mr - St) / 3, Sr = pr + 2 * (_r - pr) / 3;
453
- lr.push({
454
- key: "C",
455
- data: [
456
- yr,
457
- br,
458
- xr,
459
- Sr,
460
- St,
461
- pr
462
- ]
463
- }), hr = mr, gr = _r, dr = St, fr = pr;
464
- break;
465
- }
466
- case "Q": {
467
- let [St, ur, pr, mr] = vr, _r = dr + 2 * (St - dr) / 3, yr = fr + 2 * (ur - fr) / 3, br = pr + 2 * (St - pr) / 3, xr = mr + 2 * (ur - mr) / 3;
468
- lr.push({
469
- key: "C",
470
- data: [
471
- _r,
472
- yr,
473
- br,
474
- xr,
475
- pr,
476
- mr
477
- ]
478
- }), hr = St, gr = ur, dr = pr, fr = mr;
479
- break;
480
- }
481
- case "A": {
482
- let St = Math.abs(vr[0]), ur = Math.abs(vr[1]), pr = vr[2], mr = vr[3], hr = vr[4], gr = vr[5], _r = vr[6];
483
- St === 0 || ur === 0 ? (lr.push({
484
- key: "C",
485
- data: [
486
- dr,
487
- fr,
488
- gr,
489
- _r,
490
- gr,
491
- _r
492
- ]
493
- }), dr = gr, fr = _r) : (dr !== gr || fr !== _r) && (x(dr, fr, gr, _r, St, ur, pr, mr, hr).forEach((function(St) {
494
- lr.push({
495
- key: "C",
496
- data: St
497
- });
498
- })), dr = gr, fr = _r);
499
- break;
500
- }
501
- case "Z": lr.push({
502
- key: "Z",
503
- data: []
504
- }), dr = pr, fr = mr;
505
- }
506
- ur = _r;
507
- }
508
- return lr;
509
- }
510
- function w(St, lr, ur) {
511
- return [St * Math.cos(ur) - lr * Math.sin(ur), St * Math.sin(ur) + lr * Math.cos(ur)];
512
- }
513
- function x(St, lr, ur, dr, fr, pr, mr, hr, gr, _r) {
514
- let vr = (yr = mr, Math.PI * yr / 180);
515
- var yr;
516
- let br = [], xr = 0, Sr = 0, Cr = 0, wr = 0;
517
- if (_r) [xr, Sr, Cr, wr] = _r;
518
- else {
519
- [St, lr] = w(St, lr, -vr), [ur, dr] = w(ur, dr, -vr);
520
- let mr = (St - ur) / 2, _r = (lr - dr) / 2, yr = mr * mr / (fr * fr) + _r * _r / (pr * pr);
521
- yr > 1 && (yr = Math.sqrt(yr), fr *= yr, pr *= yr);
522
- let br = fr * fr, Tr = pr * pr, Er = br * Tr - br * _r * _r - Tr * mr * mr, Dr = br * _r * _r + Tr * mr * mr, Or = (hr === gr ? -1 : 1) * Math.sqrt(Math.abs(Er / Dr));
523
- Cr = Or * fr * _r / pr + (St + ur) / 2, wr = Or * -pr * mr / fr + (lr + dr) / 2, xr = Math.asin(parseFloat(((lr - wr) / pr).toFixed(9))), Sr = Math.asin(parseFloat(((dr - wr) / pr).toFixed(9))), St < Cr && (xr = Math.PI - xr), ur < Cr && (Sr = Math.PI - Sr), xr < 0 && (xr = 2 * Math.PI + xr), Sr < 0 && (Sr = 2 * Math.PI + Sr), gr && xr > Sr && (xr -= 2 * Math.PI), !gr && Sr > xr && (Sr -= 2 * Math.PI);
524
- }
525
- let Tr = Sr - xr;
526
- if (Math.abs(Tr) > 120 * Math.PI / 180) {
527
- let St = Sr, lr = ur, hr = dr;
528
- Sr = gr && Sr > xr ? xr + 120 * Math.PI / 180 * 1 : xr + 120 * Math.PI / 180 * -1, br = x(ur = Cr + fr * Math.cos(Sr), dr = wr + pr * Math.sin(Sr), lr, hr, fr, pr, mr, 0, gr, [
529
- Sr,
530
- St,
531
- Cr,
532
- wr
533
- ]);
534
- }
535
- Tr = Sr - xr;
536
- let Er = Math.cos(xr), Dr = Math.sin(xr), Or = Math.cos(Sr), kr = Math.sin(Sr), Ar = Math.tan(Tr / 4), jr = 4 / 3 * fr * Ar, Mr = 4 / 3 * pr * Ar, Nr = [St, lr], Pr = [St + jr * Dr, lr - Mr * Er], Fr = [ur + jr * kr, dr - Mr * Or], Ir = [ur, dr];
537
- if (Pr[0] = 2 * Nr[0] - Pr[0], Pr[1] = 2 * Nr[1] - Pr[1], _r) return [
538
- Pr,
539
- Fr,
540
- Ir
541
- ].concat(br);
542
- {
543
- br = [
544
- Pr,
545
- Fr,
546
- Ir
547
- ].concat(br);
548
- let St = [];
549
- for (let lr = 0; lr < br.length; lr += 3) {
550
- let ur = w(br[lr][0], br[lr][1], vr), dr = w(br[lr + 1][0], br[lr + 1][1], vr), fr = w(br[lr + 2][0], br[lr + 2][1], vr);
551
- St.push([
552
- ur[0],
553
- ur[1],
554
- dr[0],
555
- dr[1],
556
- fr[0],
557
- fr[1]
558
- ]);
559
- }
560
- return St;
561
- }
562
- }
563
- var P = {
564
- randOffset: function(St, lr) {
565
- return G(St, lr);
566
- },
567
- randOffsetWithRange: function(St, lr, ur) {
568
- return E(St, lr, ur);
569
- },
570
- ellipse: function(St, lr, ur, dr, fr) {
571
- return D(St, lr, fr, T(ur, dr, fr)).opset;
572
- },
573
- doubleLineOps: function(St, lr, ur, dr, fr) {
574
- return $(St, lr, ur, dr, fr, !0);
575
- }
576
- };
577
- function v(St, lr, ur, dr, fr) {
578
- return {
579
- type: "path",
580
- ops: $(St, lr, ur, dr, fr)
581
- };
582
- }
583
- function S(St, lr, ur) {
584
- let dr = (St || []).length;
585
- if (dr > 2) {
586
- let fr = [];
587
- for (let lr = 0; lr < dr - 1; lr++) fr.push(...$(St[lr][0], St[lr][1], St[lr + 1][0], St[lr + 1][1], ur));
588
- return lr && fr.push(...$(St[dr - 1][0], St[dr - 1][1], St[0][0], St[0][1], ur)), {
589
- type: "path",
590
- ops: fr
591
- };
592
- }
593
- return dr === 2 ? v(St[0][0], St[0][1], St[1][0], St[1][1], ur) : {
594
- type: "path",
595
- ops: []
596
- };
597
- }
598
- function O(St, lr, ur, dr, fr) {
599
- return function(St, lr) {
600
- return S(St, !0, lr);
601
- }([
602
- [St, lr],
603
- [St + ur, lr],
604
- [St + ur, lr + dr],
605
- [St, lr + dr]
606
- ], fr);
607
- }
608
- function L(St, lr) {
609
- if (St.length) {
610
- let ur = typeof St[0][0] == "number" ? [St] : St, dr = j(ur[0], 1 * (1 + .2 * lr.roughness), lr), fr = lr.disableMultiStroke ? [] : j(ur[0], 1.5 * (1 + .22 * lr.roughness), z(lr));
611
- for (let St = 1; St < ur.length; St++) {
612
- let pr = ur[St];
613
- if (pr.length) {
614
- let St = j(pr, 1 * (1 + .2 * lr.roughness), lr), ur = lr.disableMultiStroke ? [] : j(pr, 1.5 * (1 + .22 * lr.roughness), z(lr));
615
- for (let lr of St) lr.op !== "move" && dr.push(lr);
616
- for (let St of ur) St.op !== "move" && fr.push(St);
617
- }
618
- }
619
- return {
620
- type: "path",
621
- ops: dr.concat(fr)
622
- };
623
- }
624
- return {
625
- type: "path",
626
- ops: []
627
- };
628
- }
629
- function T(St, lr, ur) {
630
- let dr = Math.sqrt(2 * Math.PI * Math.sqrt(((St / 2) ** 2 + (lr / 2) ** 2) / 2)), fr = Math.ceil(Math.max(ur.curveStepCount, ur.curveStepCount / Math.sqrt(200) * dr)), pr = 2 * Math.PI / fr, mr = Math.abs(St / 2), hr = Math.abs(lr / 2), gr = 1 - ur.curveFitting;
631
- return mr += G(mr * gr, ur), hr += G(hr * gr, ur), {
632
- increment: pr,
633
- rx: mr,
634
- ry: hr
635
- };
636
- }
637
- function D(St, lr, ur, dr) {
638
- let [fr, pr] = F(dr.increment, St, lr, dr.rx, dr.ry, 1, dr.increment * E(.1, E(.4, 1, ur), ur), ur), mr = q(fr, null, ur);
639
- if (!ur.disableMultiStroke && ur.roughness !== 0) {
640
- let [fr] = F(dr.increment, St, lr, dr.rx, dr.ry, 1.5, 0, ur), pr = q(fr, null, ur);
641
- mr = mr.concat(pr);
642
- }
643
- return {
644
- estimatedPoints: pr,
645
- opset: {
646
- type: "path",
647
- ops: mr
648
- }
649
- };
650
- }
651
- function A(St, lr, ur, dr, fr, pr, mr, hr, gr) {
652
- let _r = St, vr = lr, yr = Math.abs(ur / 2), br = Math.abs(dr / 2);
653
- yr += G(.01 * yr, gr), br += G(.01 * br, gr);
654
- let xr = fr, Sr = pr;
655
- for (; xr < 0;) xr += 2 * Math.PI, Sr += 2 * Math.PI;
656
- Sr - xr > 2 * Math.PI && (xr = 0, Sr = 2 * Math.PI);
657
- let Cr = 2 * Math.PI / gr.curveStepCount, wr = Math.min(Cr / 2, (Sr - xr) / 2), Tr = V(wr, _r, vr, yr, br, xr, Sr, 1, gr);
658
- if (!gr.disableMultiStroke) {
659
- let St = V(wr, _r, vr, yr, br, xr, Sr, 1.5, gr);
660
- Tr.push(...St);
661
- }
662
- return mr && (hr ? Tr.push(...$(_r, vr, _r + yr * Math.cos(xr), vr + br * Math.sin(xr), gr), ...$(_r, vr, _r + yr * Math.cos(Sr), vr + br * Math.sin(Sr), gr)) : Tr.push({
663
- op: "lineTo",
664
- data: [_r, vr]
665
- }, {
666
- op: "lineTo",
667
- data: [_r + yr * Math.cos(xr), vr + br * Math.sin(xr)]
668
- })), {
669
- type: "path",
670
- ops: Tr
671
- };
672
- }
673
- function _(St, lr) {
674
- let ur = m(y(b(St))), dr = [], fr = [0, 0], pr = [0, 0];
675
- for (let { key: St, data: mr } of ur) switch (St) {
676
- case "M":
677
- pr = [mr[0], mr[1]], fr = [mr[0], mr[1]];
678
- break;
679
- case "L":
680
- dr.push(...$(pr[0], pr[1], mr[0], mr[1], lr)), pr = [mr[0], mr[1]];
681
- break;
682
- case "C": {
683
- let [St, ur, fr, hr, gr, _r] = mr;
684
- dr.push(...Z(St, ur, fr, hr, gr, _r, pr, lr)), pr = [gr, _r];
685
- break;
686
- }
687
- case "Z": dr.push(...$(pr[0], pr[1], fr[0], fr[1], lr)), pr = [fr[0], fr[1]];
688
- }
689
- return {
690
- type: "path",
691
- ops: dr
692
- };
693
- }
694
- function I(St, lr) {
695
- let ur = [];
696
- for (let dr of St) if (dr.length) {
697
- let St = lr.maxRandomnessOffset || 0, fr = dr.length;
698
- if (fr > 2) {
699
- ur.push({
700
- op: "move",
701
- data: [dr[0][0] + G(St, lr), dr[0][1] + G(St, lr)]
702
- });
703
- for (let pr = 1; pr < fr; pr++) ur.push({
704
- op: "lineTo",
705
- data: [dr[pr][0] + G(St, lr), dr[pr][1] + G(St, lr)]
706
- });
707
- }
708
- }
709
- return {
710
- type: "fillPath",
711
- ops: ur
712
- };
713
- }
714
- function C(St, lr) {
715
- return function(St, lr) {
716
- let ur = St.fillStyle || "hachure";
717
- if (!u[ur]) switch (ur) {
718
- case "zigzag":
719
- u[ur] || (u[ur] = new h(lr));
720
- break;
721
- case "cross-hatch":
722
- u[ur] || (u[ur] = new r(lr));
723
- break;
724
- case "dots":
725
- u[ur] || (u[ur] = new i(lr));
726
- break;
727
- case "dashed":
728
- u[ur] || (u[ur] = new c(lr));
729
- break;
730
- case "zigzag-line":
731
- u[ur] || (u[ur] = new l(lr));
732
- break;
733
- default: ur = "hachure", u[ur] || (u[ur] = new o(lr));
734
- }
735
- return u[ur];
736
- }(lr, P).fillPolygons(St, lr);
737
- }
738
- function z(St) {
739
- let lr = Object.assign({}, St);
740
- return lr.randomizer = void 0, St.seed && (lr.seed = St.seed + 1), lr;
741
- }
742
- function W(St) {
743
- return St.randomizer ||= new p(St.seed || 0), St.randomizer.next();
744
- }
745
- function E(St, lr, ur, dr = 1) {
746
- return ur.roughness * dr * (W(ur) * (lr - St) + St);
747
- }
748
- function G(St, lr, ur = 1) {
749
- return E(-St, St, lr, ur);
750
- }
751
- function $(St, lr, ur, dr, fr, pr = !1) {
752
- let mr = pr ? fr.disableMultiStrokeFill : fr.disableMultiStroke, hr = R(St, lr, ur, dr, fr, !0, !1);
753
- if (mr) return hr;
754
- let gr = R(St, lr, ur, dr, fr, !0, !0);
755
- return hr.concat(gr);
756
- }
757
- function R(St, lr, ur, dr, fr, pr, mr) {
758
- let hr = (St - ur) ** 2 + (lr - dr) ** 2, gr = Math.sqrt(hr), _r = 1;
759
- _r = gr < 200 ? 1 : gr > 500 ? .4 : -.0016668 * gr + 1.233334;
760
- let vr = fr.maxRandomnessOffset || 0;
761
- vr * vr * 100 > hr && (vr = gr / 10);
762
- let yr = vr / 2, br = .2 + .2 * W(fr), xr = fr.bowing * fr.maxRandomnessOffset * (dr - lr) / 200, Sr = fr.bowing * fr.maxRandomnessOffset * (St - ur) / 200;
763
- xr = G(xr, fr, _r), Sr = G(Sr, fr, _r);
764
- let Cr = [], wr = () => G(yr, fr, _r), Tr = () => G(vr, fr, _r), Er = fr.preserveVertices;
765
- return pr && (mr ? Cr.push({
766
- op: "move",
767
- data: [St + (Er ? 0 : wr()), lr + (Er ? 0 : wr())]
768
- }) : Cr.push({
769
- op: "move",
770
- data: [St + (Er ? 0 : G(vr, fr, _r)), lr + (Er ? 0 : G(vr, fr, _r))]
771
- })), mr ? Cr.push({
772
- op: "bcurveTo",
773
- data: [
774
- xr + St + (ur - St) * br + wr(),
775
- Sr + lr + (dr - lr) * br + wr(),
776
- xr + St + 2 * (ur - St) * br + wr(),
777
- Sr + lr + 2 * (dr - lr) * br + wr(),
778
- ur + (Er ? 0 : wr()),
779
- dr + (Er ? 0 : wr())
780
- ]
781
- }) : Cr.push({
782
- op: "bcurveTo",
783
- data: [
784
- xr + St + (ur - St) * br + Tr(),
785
- Sr + lr + (dr - lr) * br + Tr(),
786
- xr + St + 2 * (ur - St) * br + Tr(),
787
- Sr + lr + 2 * (dr - lr) * br + Tr(),
788
- ur + (Er ? 0 : Tr()),
789
- dr + (Er ? 0 : Tr())
790
- ]
791
- }), Cr;
792
- }
793
- function j(St, lr, ur) {
794
- if (!St.length) return [];
795
- let dr = [];
796
- dr.push([St[0][0] + G(lr, ur), St[0][1] + G(lr, ur)]), dr.push([St[0][0] + G(lr, ur), St[0][1] + G(lr, ur)]);
797
- for (let fr = 1; fr < St.length; fr++) dr.push([St[fr][0] + G(lr, ur), St[fr][1] + G(lr, ur)]), fr === St.length - 1 && dr.push([St[fr][0] + G(lr, ur), St[fr][1] + G(lr, ur)]);
798
- return q(dr, null, ur);
799
- }
800
- function q(St, lr, ur) {
801
- let dr = St.length, fr = [];
802
- if (dr > 3) {
803
- let pr = [], mr = 1 - ur.curveTightness;
804
- fr.push({
805
- op: "move",
806
- data: [St[1][0], St[1][1]]
807
- });
808
- for (let lr = 1; lr + 2 < dr; lr++) {
809
- let ur = St[lr];
810
- pr[0] = [ur[0], ur[1]], pr[1] = [ur[0] + (mr * St[lr + 1][0] - mr * St[lr - 1][0]) / 6, ur[1] + (mr * St[lr + 1][1] - mr * St[lr - 1][1]) / 6], pr[2] = [St[lr + 1][0] + (mr * St[lr][0] - mr * St[lr + 2][0]) / 6, St[lr + 1][1] + (mr * St[lr][1] - mr * St[lr + 2][1]) / 6], pr[3] = [St[lr + 1][0], St[lr + 1][1]], fr.push({
811
- op: "bcurveTo",
812
- data: [
813
- pr[1][0],
814
- pr[1][1],
815
- pr[2][0],
816
- pr[2][1],
817
- pr[3][0],
818
- pr[3][1]
819
- ]
820
- });
821
- }
822
- if (lr && lr.length === 2) {
823
- let St = ur.maxRandomnessOffset;
824
- fr.push({
825
- op: "lineTo",
826
- data: [lr[0] + G(St, ur), lr[1] + G(St, ur)]
827
- });
828
- }
829
- } else dr === 3 ? (fr.push({
830
- op: "move",
831
- data: [St[1][0], St[1][1]]
832
- }), fr.push({
833
- op: "bcurveTo",
834
- data: [
835
- St[1][0],
836
- St[1][1],
837
- St[2][0],
838
- St[2][1],
839
- St[2][0],
840
- St[2][1]
841
- ]
842
- })) : dr === 2 && fr.push(...R(St[0][0], St[0][1], St[1][0], St[1][1], ur, !0, !0));
843
- return fr;
844
- }
845
- function F(St, lr, ur, dr, fr, pr, mr, hr) {
846
- let gr = [], _r = [];
847
- if (hr.roughness === 0) {
848
- St /= 4, _r.push([lr + dr * Math.cos(-St), ur + fr * Math.sin(-St)]);
849
- for (let pr = 0; pr <= 2 * Math.PI; pr += St) {
850
- let St = [lr + dr * Math.cos(pr), ur + fr * Math.sin(pr)];
851
- gr.push(St), _r.push(St);
852
- }
853
- _r.push([lr + dr * Math.cos(0), ur + fr * Math.sin(0)]), _r.push([lr + dr * Math.cos(St), ur + fr * Math.sin(St)]);
854
- } else {
855
- let vr = G(.5, hr) - Math.PI / 2;
856
- _r.push([G(pr, hr) + lr + .9 * dr * Math.cos(vr - St), G(pr, hr) + ur + .9 * fr * Math.sin(vr - St)]);
857
- let yr = 2 * Math.PI + vr - .01;
858
- for (let mr = vr; mr < yr; mr += St) {
859
- let St = [G(pr, hr) + lr + dr * Math.cos(mr), G(pr, hr) + ur + fr * Math.sin(mr)];
860
- gr.push(St), _r.push(St);
861
- }
862
- _r.push([G(pr, hr) + lr + dr * Math.cos(vr + 2 * Math.PI + .5 * mr), G(pr, hr) + ur + fr * Math.sin(vr + 2 * Math.PI + .5 * mr)]), _r.push([G(pr, hr) + lr + .98 * dr * Math.cos(vr + mr), G(pr, hr) + ur + .98 * fr * Math.sin(vr + mr)]), _r.push([G(pr, hr) + lr + .9 * dr * Math.cos(vr + .5 * mr), G(pr, hr) + ur + .9 * fr * Math.sin(vr + .5 * mr)]);
863
- }
864
- return [_r, gr];
865
- }
866
- function V(St, lr, ur, dr, fr, pr, mr, hr, gr) {
867
- let _r = pr + G(.1, gr), vr = [];
868
- vr.push([G(hr, gr) + lr + .9 * dr * Math.cos(_r - St), G(hr, gr) + ur + .9 * fr * Math.sin(_r - St)]);
869
- for (let pr = _r; pr <= mr; pr += St) vr.push([G(hr, gr) + lr + dr * Math.cos(pr), G(hr, gr) + ur + fr * Math.sin(pr)]);
870
- return vr.push([lr + dr * Math.cos(mr), ur + fr * Math.sin(mr)]), vr.push([lr + dr * Math.cos(mr), ur + fr * Math.sin(mr)]), q(vr, null, gr);
871
- }
872
- function Z(St, lr, ur, dr, fr, pr, mr, hr) {
873
- let gr = [], _r = [hr.maxRandomnessOffset || 1, (hr.maxRandomnessOffset || 1) + .3], vr = [0, 0], yr = hr.disableMultiStroke ? 1 : 2, br = hr.preserveVertices;
874
- for (let xr = 0; xr < yr; xr++) xr === 0 ? gr.push({
875
- op: "move",
876
- data: [mr[0], mr[1]]
877
- }) : gr.push({
878
- op: "move",
879
- data: [mr[0] + (br ? 0 : G(_r[0], hr)), mr[1] + (br ? 0 : G(_r[0], hr))]
880
- }), vr = br ? [fr, pr] : [fr + G(_r[xr], hr), pr + G(_r[xr], hr)], gr.push({
881
- op: "bcurveTo",
882
- data: [
883
- St + G(_r[xr], hr),
884
- lr + G(_r[xr], hr),
885
- ur + G(_r[xr], hr),
886
- dr + G(_r[xr], hr),
887
- vr[0],
888
- vr[1]
889
- ]
890
- });
891
- return gr;
892
- }
893
- function Q(St) {
894
- return [...St];
895
- }
896
- function H(St, lr = 0) {
897
- let ur = St.length;
898
- if (ur < 3) throw Error("A curve must have at least three points.");
899
- let dr = [];
900
- if (ur === 3) dr.push(Q(St[0]), Q(St[1]), Q(St[2]), Q(St[2]));
901
- else {
902
- let ur = [];
903
- ur.push(St[0], St[0]);
904
- for (let lr = 1; lr < St.length; lr++) ur.push(St[lr]), lr === St.length - 1 && ur.push(St[lr]);
905
- let fr = [], pr = 1 - lr;
906
- dr.push(Q(ur[0]));
907
- for (let St = 1; St + 2 < ur.length; St++) {
908
- let lr = ur[St];
909
- fr[0] = [lr[0], lr[1]], fr[1] = [lr[0] + (pr * ur[St + 1][0] - pr * ur[St - 1][0]) / 6, lr[1] + (pr * ur[St + 1][1] - pr * ur[St - 1][1]) / 6], fr[2] = [ur[St + 1][0] + (pr * ur[St][0] - pr * ur[St + 2][0]) / 6, ur[St + 1][1] + (pr * ur[St][1] - pr * ur[St + 2][1]) / 6], fr[3] = [ur[St + 1][0], ur[St + 1][1]], dr.push(fr[1], fr[2], fr[3]);
910
- }
911
- }
912
- return dr;
913
- }
914
- function N(St, lr) {
915
- return (St[0] - lr[0]) ** 2 + (St[1] - lr[1]) ** 2;
916
- }
917
- function B(St, lr, ur) {
918
- let dr = N(lr, ur);
919
- if (dr === 0) return N(St, lr);
920
- let fr = ((St[0] - lr[0]) * (ur[0] - lr[0]) + (St[1] - lr[1]) * (ur[1] - lr[1])) / dr;
921
- return fr = Math.max(0, Math.min(1, fr)), N(St, J(lr, ur, fr));
922
- }
923
- function J(St, lr, ur) {
924
- return [St[0] + (lr[0] - St[0]) * ur, St[1] + (lr[1] - St[1]) * ur];
925
- }
926
- function K(St, lr, ur, dr) {
927
- let fr = dr || [];
928
- if (function(St, lr) {
929
- let ur = St[lr + 0], dr = St[lr + 1], fr = St[lr + 2], pr = St[lr + 3], mr = 3 * dr[0] - 2 * ur[0] - pr[0];
930
- mr *= mr;
931
- let hr = 3 * dr[1] - 2 * ur[1] - pr[1];
932
- hr *= hr;
933
- let gr = 3 * fr[0] - 2 * pr[0] - ur[0];
934
- gr *= gr;
935
- let _r = 3 * fr[1] - 2 * pr[1] - ur[1];
936
- return _r *= _r, mr < gr && (mr = gr), hr < _r && (hr = _r), mr + hr;
937
- }(St, lr) < ur) {
938
- let ur = St[lr + 0];
939
- fr.length ? (pr = fr[fr.length - 1], mr = ur, Math.sqrt(N(pr, mr))) > 1 && fr.push(ur) : fr.push(ur), fr.push(St[lr + 3]);
940
- } else {
941
- let dr = .5, pr = St[lr + 0], mr = St[lr + 1], hr = St[lr + 2], gr = St[lr + 3], _r = J(pr, mr, dr), vr = J(mr, hr, dr), yr = J(hr, gr, dr), br = J(_r, vr, dr), xr = J(vr, yr, dr), Sr = J(br, xr, dr);
942
- K([
943
- pr,
944
- _r,
945
- br,
946
- Sr
947
- ], 0, ur, fr), K([
948
- Sr,
949
- xr,
950
- yr,
951
- gr
952
- ], 0, ur, fr);
953
- }
954
- var pr, mr;
955
- return fr;
956
- }
957
- function U(St, lr) {
958
- return X(St, 0, St.length, lr);
959
- }
960
- function X(St, lr, ur, dr, fr) {
961
- let pr = fr || [], mr = St[lr], hr = St[ur - 1], gr = 0, _r = 1;
962
- for (let dr = lr + 1; dr < ur - 1; ++dr) {
963
- let lr = B(St[dr], mr, hr);
964
- lr > gr && (gr = lr, _r = dr);
965
- }
966
- return Math.sqrt(gr) > dr ? (X(St, lr, _r + 1, dr, pr), X(St, _r, ur, dr, pr)) : (pr.length || pr.push(mr), pr.push(hr)), pr;
967
- }
968
- function Y(St, lr = .15, ur) {
969
- let dr = [], fr = (St.length - 1) / 3;
970
- for (let ur = 0; ur < fr; ur++) K(St, 3 * ur, lr, dr);
971
- return ur && ur > 0 ? X(dr, 0, dr.length, ur) : dr;
972
- }
973
- var tt = "none", et = class {
974
- constructor(St) {
975
- this.defaultOptions = {
976
- maxRandomnessOffset: 2,
977
- roughness: 1,
978
- bowing: 1,
979
- stroke: "#000",
980
- strokeWidth: 1,
981
- curveTightness: 0,
982
- curveFitting: .95,
983
- curveStepCount: 9,
984
- fillStyle: "hachure",
985
- fillWeight: -1,
986
- hachureAngle: -41,
987
- hachureGap: -1,
988
- dashOffset: -1,
989
- dashGap: -1,
990
- zigzagOffset: -1,
991
- seed: 0,
992
- disableMultiStroke: !1,
993
- disableMultiStrokeFill: !1,
994
- preserveVertices: !1,
995
- fillShapeRoughnessGain: .8
996
- }, this.config = St || {}, this.config.options && (this.defaultOptions = this._o(this.config.options));
997
- }
998
- static newSeed() {
999
- return Math.floor(Math.random() * 2 ** 31);
1000
- }
1001
- _o(St) {
1002
- return St ? Object.assign({}, this.defaultOptions, St) : this.defaultOptions;
1003
- }
1004
- _d(St, lr, ur) {
1005
- return {
1006
- shape: St,
1007
- sets: lr || [],
1008
- options: ur || this.defaultOptions
1009
- };
1010
- }
1011
- line(St, lr, ur, dr, fr) {
1012
- let pr = this._o(fr);
1013
- return this._d("line", [v(St, lr, ur, dr, pr)], pr);
1014
- }
1015
- rectangle(St, lr, ur, dr, fr) {
1016
- let pr = this._o(fr), mr = [], hr = O(St, lr, ur, dr, pr);
1017
- if (pr.fill) {
1018
- let fr = [
1019
- [St, lr],
1020
- [St + ur, lr],
1021
- [St + ur, lr + dr],
1022
- [St, lr + dr]
1023
- ];
1024
- pr.fillStyle === "solid" ? mr.push(I([fr], pr)) : mr.push(C([fr], pr));
1025
- }
1026
- return pr.stroke !== tt && mr.push(hr), this._d("rectangle", mr, pr);
1027
- }
1028
- ellipse(St, lr, ur, dr, fr) {
1029
- let pr = this._o(fr), mr = [], hr = T(ur, dr, pr), gr = D(St, lr, pr, hr);
1030
- if (pr.fill) if (pr.fillStyle === "solid") {
1031
- let ur = D(St, lr, pr, hr).opset;
1032
- ur.type = "fillPath", mr.push(ur);
1033
- } else mr.push(C([gr.estimatedPoints], pr));
1034
- return pr.stroke !== tt && mr.push(gr.opset), this._d("ellipse", mr, pr);
1035
- }
1036
- circle(St, lr, ur, dr) {
1037
- let fr = this.ellipse(St, lr, ur, ur, dr);
1038
- return fr.shape = "circle", fr;
1039
- }
1040
- linearPath(St, lr) {
1041
- let ur = this._o(lr);
1042
- return this._d("linearPath", [S(St, !1, ur)], ur);
1043
- }
1044
- arc(St, lr, ur, dr, fr, pr, mr = !1, hr) {
1045
- let gr = this._o(hr), _r = [], vr = A(St, lr, ur, dr, fr, pr, mr, !0, gr);
1046
- if (mr && gr.fill) if (gr.fillStyle === "solid") {
1047
- let mr = Object.assign({}, gr);
1048
- mr.disableMultiStroke = !0;
1049
- let hr = A(St, lr, ur, dr, fr, pr, !0, !1, mr);
1050
- hr.type = "fillPath", _r.push(hr);
1051
- } else _r.push(function(St, lr, ur, dr, fr, pr, mr) {
1052
- let hr = St, gr = lr, _r = Math.abs(ur / 2), vr = Math.abs(dr / 2);
1053
- _r += G(.01 * _r, mr), vr += G(.01 * vr, mr);
1054
- let yr = fr, br = pr;
1055
- for (; yr < 0;) yr += 2 * Math.PI, br += 2 * Math.PI;
1056
- br - yr > 2 * Math.PI && (yr = 0, br = 2 * Math.PI);
1057
- let xr = (br - yr) / mr.curveStepCount, Sr = [];
1058
- for (let St = yr; St <= br; St += xr) Sr.push([hr + _r * Math.cos(St), gr + vr * Math.sin(St)]);
1059
- return Sr.push([hr + _r * Math.cos(br), gr + vr * Math.sin(br)]), Sr.push([hr, gr]), C([Sr], mr);
1060
- }(St, lr, ur, dr, fr, pr, gr));
1061
- return gr.stroke !== tt && _r.push(vr), this._d("arc", _r, gr);
1062
- }
1063
- curve(St, lr) {
1064
- let ur = this._o(lr), dr = [], fr = L(St, ur);
1065
- if (ur.fill && ur.fill !== tt) if (ur.fillStyle === "solid") {
1066
- let lr = L(St, Object.assign(Object.assign({}, ur), {
1067
- disableMultiStroke: !0,
1068
- roughness: ur.roughness ? ur.roughness + ur.fillShapeRoughnessGain : 0
1069
- }));
1070
- dr.push({
1071
- type: "fillPath",
1072
- ops: this._mergedShape(lr.ops)
1073
- });
1074
- } else {
1075
- let lr = [], fr = St;
1076
- if (fr.length) {
1077
- let St = typeof fr[0][0] == "number" ? [fr] : fr;
1078
- for (let dr of St) dr.length < 3 ? lr.push(...dr) : dr.length === 3 ? lr.push(...Y(H([
1079
- dr[0],
1080
- dr[0],
1081
- dr[1],
1082
- dr[2]
1083
- ]), 10, (1 + ur.roughness) / 2)) : lr.push(...Y(H(dr), 10, (1 + ur.roughness) / 2));
1084
- }
1085
- lr.length && dr.push(C([lr], ur));
1086
- }
1087
- return ur.stroke !== tt && dr.push(fr), this._d("curve", dr, ur);
1088
- }
1089
- polygon(St, lr) {
1090
- let ur = this._o(lr), dr = [], fr = S(St, !0, ur);
1091
- return ur.fill && (ur.fillStyle === "solid" ? dr.push(I([St], ur)) : dr.push(C([St], ur))), ur.stroke !== tt && dr.push(fr), this._d("polygon", dr, ur);
1092
- }
1093
- path(St, lr) {
1094
- let ur = this._o(lr), dr = [];
1095
- if (!St) return this._d("path", dr, ur);
1096
- St = (St || "").replace(/\n/g, " ").replace(/(-\s)/g, "-").replace("/(ss)/g", " ");
1097
- let fr = ur.fill && ur.fill !== "transparent" && ur.fill !== tt, pr = ur.stroke !== tt, mr = !!(ur.simplification && ur.simplification < 1), hr = function(St, lr, ur) {
1098
- let dr = m(y(b(St))), fr = [], pr = [], mr = [0, 0], hr = [], gr = () => {
1099
- hr.length >= 4 && pr.push(...Y(hr, lr)), hr = [];
1100
- }, _r = () => {
1101
- gr(), pr.length && (fr.push(pr), pr = []);
1102
- };
1103
- for (let { key: St, data: lr } of dr) switch (St) {
1104
- case "M":
1105
- _r(), mr = [lr[0], lr[1]], pr.push(mr);
1106
- break;
1107
- case "L":
1108
- gr(), pr.push([lr[0], lr[1]]);
1109
- break;
1110
- case "C":
1111
- if (!hr.length) {
1112
- let St = pr.length ? pr[pr.length - 1] : mr;
1113
- hr.push([St[0], St[1]]);
1114
- }
1115
- hr.push([lr[0], lr[1]]), hr.push([lr[2], lr[3]]), hr.push([lr[4], lr[5]]);
1116
- break;
1117
- case "Z": gr(), pr.push([mr[0], mr[1]]);
1118
- }
1119
- if (_r(), !ur) return fr;
1120
- let vr = [];
1121
- for (let St of fr) {
1122
- let lr = U(St, ur);
1123
- lr.length && vr.push(lr);
1124
- }
1125
- return vr;
1126
- }(St, 1, mr ? 4 - 4 * (ur.simplification || 1) : (1 + ur.roughness) / 2), gr = _(St, ur);
1127
- if (fr) if (ur.fillStyle === "solid") if (hr.length === 1) {
1128
- let lr = _(St, Object.assign(Object.assign({}, ur), {
1129
- disableMultiStroke: !0,
1130
- roughness: ur.roughness ? ur.roughness + ur.fillShapeRoughnessGain : 0
1131
- }));
1132
- dr.push({
1133
- type: "fillPath",
1134
- ops: this._mergedShape(lr.ops)
1135
- });
1136
- } else dr.push(I(hr, ur));
1137
- else dr.push(C(hr, ur));
1138
- return pr && (mr ? hr.forEach(((St) => {
1139
- dr.push(S(St, !1, ur));
1140
- })) : dr.push(gr)), this._d("path", dr, ur);
1141
- }
1142
- opsToPath(St, lr) {
1143
- let ur = "";
1144
- for (let dr of St.ops) {
1145
- let St = typeof lr == "number" && lr >= 0 ? dr.data.map(((St) => +St.toFixed(lr))) : dr.data;
1146
- switch (dr.op) {
1147
- case "move":
1148
- ur += `M${St[0]} ${St[1]} `;
1149
- break;
1150
- case "bcurveTo":
1151
- ur += `C${St[0]} ${St[1]}, ${St[2]} ${St[3]}, ${St[4]} ${St[5]} `;
1152
- break;
1153
- case "lineTo": ur += `L${St[0]} ${St[1]} `;
1154
- }
1155
- }
1156
- return ur.trim();
1157
- }
1158
- toPaths(St) {
1159
- let lr = St.sets || [], ur = St.options || this.defaultOptions, dr = [];
1160
- for (let St of lr) {
1161
- let lr = null;
1162
- switch (St.type) {
1163
- case "path":
1164
- lr = {
1165
- d: this.opsToPath(St),
1166
- stroke: ur.stroke,
1167
- strokeWidth: ur.strokeWidth,
1168
- fill: tt
1169
- };
1170
- break;
1171
- case "fillPath":
1172
- lr = {
1173
- d: this.opsToPath(St),
1174
- stroke: tt,
1175
- strokeWidth: 0,
1176
- fill: ur.fill || tt
1177
- };
1178
- break;
1179
- case "fillSketch": lr = this.fillSketch(St, ur);
1180
- }
1181
- lr && dr.push(lr);
1182
- }
1183
- return dr;
1184
- }
1185
- fillSketch(St, lr) {
1186
- let ur = lr.fillWeight;
1187
- return ur < 0 && (ur = lr.strokeWidth / 2), {
1188
- d: this.opsToPath(St),
1189
- stroke: lr.fill || tt,
1190
- strokeWidth: ur,
1191
- fill: tt
1192
- };
1193
- }
1194
- _mergedShape(St) {
1195
- return St.filter(((St, lr) => lr === 0 || St.op !== "move"));
1196
- }
1197
- }, st = class {
1198
- constructor(St, lr) {
1199
- this.canvas = St, this.ctx = this.canvas.getContext("2d"), this.gen = new et(lr);
1200
- }
1201
- draw(St) {
1202
- let lr = St.sets || [], ur = St.options || this.getDefaultOptions(), dr = this.ctx, fr = St.options.fixedDecimalPlaceDigits;
1203
- for (let pr of lr) switch (pr.type) {
1204
- case "path":
1205
- dr.save(), dr.strokeStyle = ur.stroke === "none" ? "transparent" : ur.stroke, dr.lineWidth = ur.strokeWidth, ur.strokeLineDash && dr.setLineDash(ur.strokeLineDash), ur.strokeLineDashOffset && (dr.lineDashOffset = ur.strokeLineDashOffset), this._drawToContext(dr, pr, fr), dr.restore();
1206
- break;
1207
- case "fillPath": {
1208
- dr.save(), dr.fillStyle = ur.fill || "";
1209
- let lr = St.shape === "curve" || St.shape === "polygon" || St.shape === "path" ? "evenodd" : "nonzero";
1210
- this._drawToContext(dr, pr, fr, lr), dr.restore();
1211
- break;
1212
- }
1213
- case "fillSketch": this.fillSketch(dr, pr, ur);
1214
- }
1215
- }
1216
- fillSketch(St, lr, ur) {
1217
- let dr = ur.fillWeight;
1218
- dr < 0 && (dr = ur.strokeWidth / 2), St.save(), ur.fillLineDash && St.setLineDash(ur.fillLineDash), ur.fillLineDashOffset && (St.lineDashOffset = ur.fillLineDashOffset), St.strokeStyle = ur.fill || "", St.lineWidth = dr, this._drawToContext(St, lr, ur.fixedDecimalPlaceDigits), St.restore();
1219
- }
1220
- _drawToContext(St, lr, ur, dr = "nonzero") {
1221
- St.beginPath();
1222
- for (let dr of lr.ops) {
1223
- let lr = typeof ur == "number" && ur >= 0 ? dr.data.map(((St) => +St.toFixed(ur))) : dr.data;
1224
- switch (dr.op) {
1225
- case "move":
1226
- St.moveTo(lr[0], lr[1]);
1227
- break;
1228
- case "bcurveTo":
1229
- St.bezierCurveTo(lr[0], lr[1], lr[2], lr[3], lr[4], lr[5]);
1230
- break;
1231
- case "lineTo": St.lineTo(lr[0], lr[1]);
1232
- }
1233
- }
1234
- lr.type === "fillPath" ? St.fill(dr) : St.stroke();
1235
- }
1236
- get generator() {
1237
- return this.gen;
1238
- }
1239
- getDefaultOptions() {
1240
- return this.gen.defaultOptions;
1241
- }
1242
- line(St, lr, ur, dr, fr) {
1243
- let pr = this.gen.line(St, lr, ur, dr, fr);
1244
- return this.draw(pr), pr;
1245
- }
1246
- rectangle(St, lr, ur, dr, fr) {
1247
- let pr = this.gen.rectangle(St, lr, ur, dr, fr);
1248
- return this.draw(pr), pr;
1249
- }
1250
- ellipse(St, lr, ur, dr, fr) {
1251
- let pr = this.gen.ellipse(St, lr, ur, dr, fr);
1252
- return this.draw(pr), pr;
1253
- }
1254
- circle(St, lr, ur, dr) {
1255
- let fr = this.gen.circle(St, lr, ur, dr);
1256
- return this.draw(fr), fr;
1257
- }
1258
- linearPath(St, lr) {
1259
- let ur = this.gen.linearPath(St, lr);
1260
- return this.draw(ur), ur;
1261
- }
1262
- polygon(St, lr) {
1263
- let ur = this.gen.polygon(St, lr);
1264
- return this.draw(ur), ur;
1265
- }
1266
- arc(St, lr, ur, dr, fr, pr, mr = !1, hr) {
1267
- let gr = this.gen.arc(St, lr, ur, dr, fr, pr, mr, hr);
1268
- return this.draw(gr), gr;
1269
- }
1270
- curve(St, lr) {
1271
- let ur = this.gen.curve(St, lr);
1272
- return this.draw(ur), ur;
1273
- }
1274
- path(St, lr) {
1275
- let ur = this.gen.path(St, lr);
1276
- return this.draw(ur), ur;
1277
- }
1278
- }, nt = "http://www.w3.org/2000/svg", ot = class {
1279
- constructor(St, lr) {
1280
- this.svg = St, this.gen = new et(lr);
1281
- }
1282
- draw(St) {
1283
- let lr = St.sets || [], ur = St.options || this.getDefaultOptions(), dr = this.svg.ownerDocument || window.document, fr = dr.createElementNS(nt, "g"), pr = St.options.fixedDecimalPlaceDigits;
1284
- for (let mr of lr) {
1285
- let lr = null;
1286
- switch (mr.type) {
1287
- case "path":
1288
- lr = dr.createElementNS(nt, "path"), lr.setAttribute("d", this.opsToPath(mr, pr)), lr.setAttribute("stroke", ur.stroke), lr.setAttribute("stroke-width", ur.strokeWidth + ""), lr.setAttribute("fill", "none"), ur.strokeLineDash && lr.setAttribute("stroke-dasharray", ur.strokeLineDash.join(" ").trim()), ur.strokeLineDashOffset && lr.setAttribute("stroke-dashoffset", `${ur.strokeLineDashOffset}`);
1289
- break;
1290
- case "fillPath":
1291
- lr = dr.createElementNS(nt, "path"), lr.setAttribute("d", this.opsToPath(mr, pr)), lr.setAttribute("stroke", "none"), lr.setAttribute("stroke-width", "0"), lr.setAttribute("fill", ur.fill || ""), St.shape !== "curve" && St.shape !== "polygon" || lr.setAttribute("fill-rule", "evenodd");
1292
- break;
1293
- case "fillSketch": lr = this.fillSketch(dr, mr, ur);
1294
- }
1295
- lr && fr.appendChild(lr);
1296
- }
1297
- return fr;
1298
- }
1299
- fillSketch(St, lr, ur) {
1300
- let dr = ur.fillWeight;
1301
- dr < 0 && (dr = ur.strokeWidth / 2);
1302
- let fr = St.createElementNS(nt, "path");
1303
- return fr.setAttribute("d", this.opsToPath(lr, ur.fixedDecimalPlaceDigits)), fr.setAttribute("stroke", ur.fill || ""), fr.setAttribute("stroke-width", dr + ""), fr.setAttribute("fill", "none"), ur.fillLineDash && fr.setAttribute("stroke-dasharray", ur.fillLineDash.join(" ").trim()), ur.fillLineDashOffset && fr.setAttribute("stroke-dashoffset", `${ur.fillLineDashOffset}`), fr;
1304
- }
1305
- get generator() {
1306
- return this.gen;
1307
- }
1308
- getDefaultOptions() {
1309
- return this.gen.defaultOptions;
1310
- }
1311
- opsToPath(St, lr) {
1312
- return this.gen.opsToPath(St, lr);
1313
- }
1314
- line(St, lr, ur, dr, fr) {
1315
- let pr = this.gen.line(St, lr, ur, dr, fr);
1316
- return this.draw(pr);
1317
- }
1318
- rectangle(St, lr, ur, dr, fr) {
1319
- let pr = this.gen.rectangle(St, lr, ur, dr, fr);
1320
- return this.draw(pr);
1321
- }
1322
- ellipse(St, lr, ur, dr, fr) {
1323
- let pr = this.gen.ellipse(St, lr, ur, dr, fr);
1324
- return this.draw(pr);
1325
- }
1326
- circle(St, lr, ur, dr) {
1327
- let fr = this.gen.circle(St, lr, ur, dr);
1328
- return this.draw(fr);
1329
- }
1330
- linearPath(St, lr) {
1331
- let ur = this.gen.linearPath(St, lr);
1332
- return this.draw(ur);
1333
- }
1334
- polygon(St, lr) {
1335
- let ur = this.gen.polygon(St, lr);
1336
- return this.draw(ur);
1337
- }
1338
- arc(St, lr, ur, dr, fr, pr, mr = !1, hr) {
1339
- let gr = this.gen.arc(St, lr, ur, dr, fr, pr, mr, hr);
1340
- return this.draw(gr);
1341
- }
1342
- curve(St, lr) {
1343
- let ur = this.gen.curve(St, lr);
1344
- return this.draw(ur);
1345
- }
1346
- path(St, lr) {
1347
- let ur = this.gen.path(St, lr);
1348
- return this.draw(ur);
1349
- }
1350
- }, at = {
1351
- canvas: (St, lr) => new st(St, lr),
1352
- svg: (St, lr) => new ot(St, lr),
1353
- generator: (St) => new et(St),
1354
- newSeed: () => et.newSeed()
1355
- }, labelHelper = /* @__PURE__ */ __name(async (ur, fr, hr) => {
1356
- let _r, vr = fr.useHtmlLabels || evaluate(getConfig2()?.htmlLabels);
1357
- _r = hr || "node default";
1358
- let yr = ur.insert("g").attr("class", _r).attr("id", fr.domId || fr.id), Cr = yr.insert("g").attr("class", "label").attr("style", handleUndefinedAttr(fr.labelStyle)), wr;
1359
- wr = fr.label === void 0 ? "" : typeof fr.label == "string" ? fr.label : fr.label[0];
1360
- let Er = await createText(Cr, sanitizeText(decodeEntities(wr), getConfig2()), {
1361
- useHtmlLabels: vr,
1362
- width: fr.width || getConfig2().flowchart?.wrappingWidth,
1363
- cssClasses: "markdown-node-label",
1364
- style: fr.labelStyle,
1365
- addSvgBackground: !!fr.icon || !!fr.img
1366
- }), Dr = Er.getBBox(), Or = (fr?.padding ?? 0) / 2;
1367
- if (vr) {
1368
- let St = Er.children[0], ur = select_default(Er), dr = St.getElementsByTagName("img");
1369
- if (dr) {
1370
- let St = wr.replace(/<img[^>]*>/g, "").trim() === "";
1371
- await Promise.all([...dr].map((ur) => new Promise((dr) => {
1372
- function fr() {
1373
- if (ur.style.display = "flex", ur.style.flexDirection = "column", St) {
1374
- let [St = defaultConfig_default.fontSize] = parseFontSize(getConfig2().fontSize ? getConfig2().fontSize : window.getComputedStyle(document.body).fontSize), dr = St * 5 + "px";
1375
- ur.style.minWidth = dr, ur.style.maxWidth = dr;
1376
- } else ur.style.width = "100%";
1377
- dr(ur);
1378
- }
1379
- __name(fr, "setupImage"), setTimeout(() => {
1380
- ur.complete && fr();
1381
- }), ur.addEventListener("error", fr), ur.addEventListener("load", fr);
1382
- })));
1383
- }
1384
- Dr = St.getBoundingClientRect(), ur.attr("width", Dr.width), ur.attr("height", Dr.height);
1385
- }
1386
- return vr ? Cr.attr("transform", "translate(" + -Dr.width / 2 + ", " + -Dr.height / 2 + ")") : Cr.attr("transform", "translate(0, " + -Dr.height / 2 + ")"), fr.centerLabel && Cr.attr("transform", "translate(" + -Dr.width / 2 + ", " + -Dr.height / 2 + ")"), Cr.insert("rect", ":first-child"), {
1387
- shapeSvg: yr,
1388
- bbox: Dr,
1389
- halfPadding: Or,
1390
- label: Cr
1391
- };
1392
- }, "labelHelper"), insertLabel = /* @__PURE__ */ __name(async (lr, ur, dr) => {
1393
- let fr = dr.useHtmlLabels || evaluate(getConfig2()?.flowchart?.htmlLabels), pr = lr.insert("g").attr("class", "label").attr("style", dr.labelStyle || ""), hr = await createText(pr, sanitizeText(decodeEntities(ur), getConfig2()), {
1394
- useHtmlLabels: fr,
1395
- width: dr.width || getConfig2()?.flowchart?.wrappingWidth,
1396
- style: dr.labelStyle,
1397
- addSvgBackground: !!dr.icon || !!dr.img
1398
- }), _r = hr.getBBox(), vr = dr.padding / 2;
1399
- if (evaluate(getConfig2()?.flowchart?.htmlLabels)) {
1400
- let St = hr.children[0], lr = select_default(hr);
1401
- _r = St.getBoundingClientRect(), lr.attr("width", _r.width), lr.attr("height", _r.height);
1402
- }
1403
- return fr ? pr.attr("transform", "translate(" + -_r.width / 2 + ", " + -_r.height / 2 + ")") : pr.attr("transform", "translate(0, " + -_r.height / 2 + ")"), dr.centerLabel && pr.attr("transform", "translate(" + -_r.width / 2 + ", " + -_r.height / 2 + ")"), pr.insert("rect", ":first-child"), {
1404
- shapeSvg: lr,
1405
- bbox: _r,
1406
- halfPadding: vr,
1407
- label: pr
1408
- };
1409
- }, "insertLabel"), updateNodeBounds = /* @__PURE__ */ __name((St, lr) => {
1410
- let ur = lr.node().getBBox();
1411
- St.width = ur.width, St.height = ur.height;
1412
- }, "updateNodeBounds"), getNodeClasses = /* @__PURE__ */ __name((St, lr) => (St.look === "handDrawn" ? "rough-node" : "node") + " " + St.cssClasses + " " + (lr || ""), "getNodeClasses");
1413
- function createPathFromPoints(St) {
1414
- let lr = St.map((St, lr) => `${lr === 0 ? "M" : "L"}${St.x},${St.y}`);
1415
- return lr.push("Z"), lr.join(" ");
1416
- }
1417
- __name(createPathFromPoints, "createPathFromPoints");
1418
- function generateFullSineWavePoints(St, lr, ur, dr, fr, pr) {
1419
- let mr = [], hr = ur - St, gr = dr - lr, _r = hr / pr, vr = 2 * Math.PI / _r, yr = lr + gr / 2;
1420
- for (let lr = 0; lr <= 50; lr++) {
1421
- let ur = St + lr / 50 * hr, dr = yr + fr * Math.sin(vr * (ur - St));
1422
- mr.push({
1423
- x: ur,
1424
- y: dr
1425
- });
1426
- }
1427
- return mr;
1428
- }
1429
- __name(generateFullSineWavePoints, "generateFullSineWavePoints");
1430
- function generateCirclePoints(St, lr, ur, dr, fr, pr) {
1431
- let mr = [], hr = fr * Math.PI / 180, gr = (pr * Math.PI / 180 - hr) / (dr - 1);
1432
- for (let fr = 0; fr < dr; fr++) {
1433
- let dr = hr + fr * gr, pr = St + ur * Math.cos(dr), _r = lr + ur * Math.sin(dr);
1434
- mr.push({
1435
- x: -pr,
1436
- y: -_r
1437
- });
1438
- }
1439
- return mr;
1440
- }
1441
- __name(generateCirclePoints, "generateCirclePoints");
1442
- var intersect_rect_default = /* @__PURE__ */ __name((St, lr) => {
1443
- var ur = St.x, dr = St.y, fr = lr.x - ur, pr = lr.y - dr, mr = St.width / 2, hr = St.height / 2, gr, _r;
1444
- return Math.abs(pr) * mr > Math.abs(fr) * hr ? (pr < 0 && (hr = -hr), gr = pr === 0 ? 0 : hr * fr / pr, _r = hr) : (fr < 0 && (mr = -mr), gr = mr, _r = fr === 0 ? 0 : mr * pr / fr), {
1445
- x: ur + gr,
1446
- y: dr + _r
1447
- };
1448
- }, "intersectRect");
1449
- function applyStyle(St, lr) {
1450
- lr && St.attr("style", lr);
1451
- }
1452
- __name(applyStyle, "applyStyle");
1453
- async function addHtmlLabel(St) {
1454
- let lr = select_default(document.createElementNS("http://www.w3.org/2000/svg", "foreignObject")), ur = lr.append("xhtml:div"), dr = getConfig2(), fr = St.label;
1455
- St.label && hasKatex(St.label) && (fr = await renderKatexSanitized(St.label.replace(common_default.lineBreakRegex, "\n"), dr));
1456
- let pr = "<span class=\"" + (St.isNode ? "nodeLabel" : "edgeLabel") + "\" " + (St.labelStyle ? "style=\"" + St.labelStyle + "\"" : "") + ">" + fr + "</span>";
1457
- return ur.html(sanitizeText(pr, dr)), applyStyle(ur, St.labelStyle), ur.style("display", "inline-block"), ur.style("padding-right", "1px"), ur.style("white-space", "nowrap"), ur.attr("xmlns", "http://www.w3.org/1999/xhtml"), lr.node();
1458
- }
1459
- __name(addHtmlLabel, "addHtmlLabel");
1460
- var createLabel_default = /* @__PURE__ */ __name(async (lr, ur, dr, pr) => {
1461
- let mr = lr || "";
1462
- if (typeof mr == "object" && (mr = mr[0]), evaluate(getConfig2().flowchart.htmlLabels)) return mr = mr.replace(/\\n|\n/g, "<br />"), log.info("vertexText" + mr), await addHtmlLabel({
1463
- isNode: pr,
1464
- label: decodeEntities(mr).replace(/fa[blrs]?:fa-[\w-]+/g, (St) => `<i class='${St.replace(":", " ")}'></i>`),
1465
- labelStyle: ur && ur.replace("fill:", "color:")
1466
- });
1467
- {
1468
- let St = document.createElementNS("http://www.w3.org/2000/svg", "text");
1469
- St.setAttribute("style", ur.replace("color:", "fill:"));
1470
- let lr = [];
1471
- lr = typeof mr == "string" ? mr.split(/\\n|\n|<br\s*\/?>/gi) : Array.isArray(mr) ? mr : [];
1472
- for (let ur of lr) {
1473
- let lr = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
1474
- lr.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve"), lr.setAttribute("dy", "1em"), lr.setAttribute("x", "0"), dr ? lr.setAttribute("class", "title-row") : lr.setAttribute("class", "row"), lr.textContent = ur.trim(), St.appendChild(lr);
1475
- }
1476
- return St;
1477
- }
1478
- }, "createLabel"), createRoundedRectPathD = /* @__PURE__ */ __name((St, lr, ur, dr, fr) => [
1479
- "M",
1480
- St + fr,
1481
- lr,
1482
- "H",
1483
- St + ur - fr,
1484
- "A",
1485
- fr,
1486
- fr,
1487
- 0,
1488
- 0,
1489
- 1,
1490
- St + ur,
1491
- lr + fr,
1492
- "V",
1493
- lr + dr - fr,
1494
- "A",
1495
- fr,
1496
- fr,
1497
- 0,
1498
- 0,
1499
- 1,
1500
- St + ur - fr,
1501
- lr + dr,
1502
- "H",
1503
- St + fr,
1504
- "A",
1505
- fr,
1506
- fr,
1507
- 0,
1508
- 0,
1509
- 1,
1510
- St,
1511
- lr + dr - fr,
1512
- "V",
1513
- lr + fr,
1514
- "A",
1515
- fr,
1516
- fr,
1517
- 0,
1518
- 0,
1519
- 1,
1520
- St + fr,
1521
- lr,
1522
- "Z"
1523
- ].join(" "), "createRoundedRectPathD"), rect = /* @__PURE__ */ __name(async (St, lr) => {
1524
- log.info("Creating subgraph rect for ", lr.id, lr);
1525
- let ur = getConfig2(), { themeVariables: dr, handDrawnSeed: pr } = ur, { clusterBkg: hr, clusterBorder: gr } = dr, { labelStyles: _r, nodeStyles: vr, borderStyles: yr, backgroundStyles: xr } = styles2String(lr), Cr = St.insert("g").attr("class", "cluster " + lr.cssClasses).attr("id", lr.id).attr("data-look", lr.look), wr = evaluate(ur.flowchart.htmlLabels), Er = Cr.insert("g").attr("class", "cluster-label "), Ar = await createText(Er, lr.label, {
1526
- style: lr.labelStyle,
1527
- useHtmlLabels: wr,
1528
- isNode: !0
1529
- }), jr = Ar.getBBox();
1530
- if (evaluate(ur.flowchart.htmlLabels)) {
1531
- let St = Ar.children[0], lr = select_default(Ar);
1532
- jr = St.getBoundingClientRect(), lr.attr("width", jr.width), lr.attr("height", jr.height);
1533
- }
1534
- let Mr = lr.width <= jr.width + lr.padding ? jr.width + lr.padding : lr.width;
1535
- lr.width <= jr.width + lr.padding ? lr.diff = (Mr - lr.width) / 2 - lr.padding : lr.diff = -lr.padding;
1536
- let Nr = lr.height, Pr = lr.x - Mr / 2, Fr = lr.y - Nr / 2;
1537
- log.trace("Data ", lr, JSON.stringify(lr));
1538
- let Ir;
1539
- if (lr.look === "handDrawn") {
1540
- let St = at.svg(Cr), ur = userNodeOverrides(lr, {
1541
- roughness: .7,
1542
- fill: hr,
1543
- stroke: gr,
1544
- fillWeight: 3,
1545
- seed: pr
1546
- }), dr = St.path(createRoundedRectPathD(Pr, Fr, Mr, Nr, 0), ur);
1547
- Ir = Cr.insert(() => (log.debug("Rough node insert CXC", dr), dr), ":first-child"), Ir.select("path:nth-child(2)").attr("style", yr.join(";")), Ir.select("path").attr("style", xr.join(";").replace("fill", "stroke"));
1548
- } else Ir = Cr.insert("rect", ":first-child"), Ir.attr("style", vr).attr("rx", lr.rx).attr("ry", lr.ry).attr("x", Pr).attr("y", Fr).attr("width", Mr).attr("height", Nr);
1549
- let { subGraphTitleTopMargin: Lr } = getSubGraphTitleMargins(ur);
1550
- if (Er.attr("transform", `translate(${lr.x - jr.width / 2}, ${lr.y - lr.height / 2 + Lr})`), _r) {
1551
- let St = Er.select("span");
1552
- St && St.attr("style", _r);
1553
- }
1554
- let Rr = Ir.node().getBBox();
1555
- return lr.offsetX = 0, lr.width = Rr.width, lr.height = Rr.height, lr.offsetY = jr.height - lr.padding / 2, lr.intersect = function(St) {
1556
- return intersect_rect_default(lr, St);
1557
- }, {
1558
- cluster: Cr,
1559
- labelBBox: jr
1560
- };
1561
- }, "rect"), shapes = {
1562
- rect,
1563
- squareRect: rect,
1564
- roundedWithTitle: /* @__PURE__ */ __name(async (St, lr) => {
1565
- let ur = getConfig2(), { themeVariables: dr, handDrawnSeed: fr } = ur, { altBackground: pr, compositeBackground: hr, compositeTitleBackground: gr, nodeBorder: _r } = dr, vr = St.insert("g").attr("class", lr.cssClasses).attr("id", lr.id).attr("data-id", lr.id).attr("data-look", lr.look), yr = vr.insert("g", ":first-child"), xr = vr.insert("g").attr("class", "cluster-label"), Cr = vr.append("rect"), wr = xr.node().appendChild(await createLabel_default(lr.label, lr.labelStyle, void 0, !0)), Tr = wr.getBBox();
1566
- if (evaluate(ur.flowchart.htmlLabels)) {
1567
- let St = wr.children[0], lr = select_default(wr);
1568
- Tr = St.getBoundingClientRect(), lr.attr("width", Tr.width), lr.attr("height", Tr.height);
1569
- }
1570
- let Er = 0 * lr.padding, Dr = Er / 2, Or = (lr.width <= Tr.width + lr.padding ? Tr.width + lr.padding : lr.width) + Er;
1571
- lr.width <= Tr.width + lr.padding ? lr.diff = (Or - lr.width) / 2 - lr.padding : lr.diff = -lr.padding;
1572
- let kr = lr.height + Er, Ar = lr.height + Er - Tr.height - 6, jr = lr.x - Or / 2, Mr = lr.y - kr / 2;
1573
- lr.width = Or;
1574
- let Nr = lr.y - lr.height / 2 - Dr + Tr.height + 2, Pr;
1575
- if (lr.look === "handDrawn") {
1576
- let St = lr.cssClasses.includes("statediagram-cluster-alt"), ur = at.svg(vr), dr = lr.rx || lr.ry ? ur.path(createRoundedRectPathD(jr, Mr, Or, kr, 10), {
1577
- roughness: .7,
1578
- fill: gr,
1579
- fillStyle: "solid",
1580
- stroke: _r,
1581
- seed: fr
1582
- }) : ur.rectangle(jr, Mr, Or, kr, { seed: fr });
1583
- Pr = vr.insert(() => dr, ":first-child");
1584
- let mr = ur.rectangle(jr, Nr, Or, Ar, {
1585
- fill: St ? pr : hr,
1586
- fillStyle: St ? "hachure" : "solid",
1587
- stroke: _r,
1588
- seed: fr
1589
- });
1590
- Pr = vr.insert(() => dr, ":first-child"), Cr = vr.insert(() => mr);
1591
- } else Pr = yr.insert("rect", ":first-child"), Pr.attr("class", "outer").attr("x", jr).attr("y", Mr).attr("width", Or).attr("height", kr).attr("data-look", lr.look), Cr.attr("class", "inner").attr("x", jr).attr("y", Nr).attr("width", Or).attr("height", Ar);
1592
- return xr.attr("transform", `translate(${lr.x - Tr.width / 2}, ${Mr + 1 - (evaluate(ur.flowchart.htmlLabels) ? 0 : 3)})`), lr.height = Pr.node().getBBox().height, lr.offsetX = 0, lr.offsetY = Tr.height - lr.padding / 2, lr.labelBBox = Tr, lr.intersect = function(St) {
1593
- return intersect_rect_default(lr, St);
1594
- }, {
1595
- cluster: vr,
1596
- labelBBox: Tr
1597
- };
1598
- }, "roundedWithTitle"),
1599
- noteGroup: /* @__PURE__ */ __name((St, lr) => {
1600
- let ur = St.insert("g").attr("class", "note-cluster").attr("id", lr.id), dr = ur.insert("rect", ":first-child"), fr = 0 * lr.padding, pr = fr / 2;
1601
- dr.attr("rx", lr.rx).attr("ry", lr.ry).attr("x", lr.x - lr.width / 2 - pr).attr("y", lr.y - lr.height / 2 - pr).attr("width", lr.width + fr).attr("height", lr.height + fr).attr("fill", "none");
1602
- let mr = dr.node().getBBox();
1603
- return lr.width = mr.width, lr.height = mr.height, lr.intersect = function(St) {
1604
- return intersect_rect_default(lr, St);
1605
- }, {
1606
- cluster: ur,
1607
- labelBBox: {
1608
- width: 0,
1609
- height: 0
1610
- }
1611
- };
1612
- }, "noteGroup"),
1613
- divider: /* @__PURE__ */ __name((St, lr) => {
1614
- let { themeVariables: ur, handDrawnSeed: dr } = getConfig2(), { nodeBorder: fr } = ur, pr = St.insert("g").attr("class", lr.cssClasses).attr("id", lr.id).attr("data-look", lr.look), mr = pr.insert("g", ":first-child"), hr = 0 * lr.padding, gr = lr.width + hr;
1615
- lr.diff = -lr.padding;
1616
- let _r = lr.height + hr, vr = lr.x - gr / 2, yr = lr.y - _r / 2;
1617
- lr.width = gr;
1618
- let xr;
1619
- if (lr.look === "handDrawn") {
1620
- let St = at.svg(pr).rectangle(vr, yr, gr, _r, {
1621
- fill: "lightgrey",
1622
- roughness: .5,
1623
- strokeLineDash: [5],
1624
- stroke: fr,
1625
- seed: dr
1626
- });
1627
- xr = pr.insert(() => St, ":first-child");
1628
- } else xr = mr.insert("rect", ":first-child"), xr.attr("class", "divider").attr("x", vr).attr("y", yr).attr("width", gr).attr("height", _r).attr("data-look", lr.look);
1629
- return lr.height = xr.node().getBBox().height, lr.offsetX = 0, lr.offsetY = 0, lr.intersect = function(St) {
1630
- return intersect_rect_default(lr, St);
1631
- }, {
1632
- cluster: pr,
1633
- labelBBox: {}
1634
- };
1635
- }, "divider"),
1636
- kanbanSection: /* @__PURE__ */ __name(async (St, lr) => {
1637
- log.info("Creating subgraph rect for ", lr.id, lr);
1638
- let ur = getConfig2(), { themeVariables: dr, handDrawnSeed: pr } = ur, { clusterBkg: hr, clusterBorder: gr } = dr, { labelStyles: _r, nodeStyles: vr, borderStyles: yr, backgroundStyles: xr } = styles2String(lr), Cr = St.insert("g").attr("class", "cluster " + lr.cssClasses).attr("id", lr.id).attr("data-look", lr.look), wr = evaluate(ur.flowchart.htmlLabels), Er = Cr.insert("g").attr("class", "cluster-label "), Ar = await createText(Er, lr.label, {
1639
- style: lr.labelStyle,
1640
- useHtmlLabels: wr,
1641
- isNode: !0,
1642
- width: lr.width
1643
- }), jr = Ar.getBBox();
1644
- if (evaluate(ur.flowchart.htmlLabels)) {
1645
- let St = Ar.children[0], lr = select_default(Ar);
1646
- jr = St.getBoundingClientRect(), lr.attr("width", jr.width), lr.attr("height", jr.height);
1647
- }
1648
- let Mr = lr.width <= jr.width + lr.padding ? jr.width + lr.padding : lr.width;
1649
- lr.width <= jr.width + lr.padding ? lr.diff = (Mr - lr.width) / 2 - lr.padding : lr.diff = -lr.padding;
1650
- let Nr = lr.height, Pr = lr.x - Mr / 2, Fr = lr.y - Nr / 2;
1651
- log.trace("Data ", lr, JSON.stringify(lr));
1652
- let Ir;
1653
- if (lr.look === "handDrawn") {
1654
- let St = at.svg(Cr), ur = userNodeOverrides(lr, {
1655
- roughness: .7,
1656
- fill: hr,
1657
- stroke: gr,
1658
- fillWeight: 4,
1659
- seed: pr
1660
- }), dr = St.path(createRoundedRectPathD(Pr, Fr, Mr, Nr, lr.rx), ur);
1661
- Ir = Cr.insert(() => (log.debug("Rough node insert CXC", dr), dr), ":first-child"), Ir.select("path:nth-child(2)").attr("style", yr.join(";")), Ir.select("path").attr("style", xr.join(";").replace("fill", "stroke"));
1662
- } else Ir = Cr.insert("rect", ":first-child"), Ir.attr("style", vr).attr("rx", lr.rx).attr("ry", lr.ry).attr("x", Pr).attr("y", Fr).attr("width", Mr).attr("height", Nr);
1663
- let { subGraphTitleTopMargin: Lr } = getSubGraphTitleMargins(ur);
1664
- if (Er.attr("transform", `translate(${lr.x - jr.width / 2}, ${lr.y - lr.height / 2 + Lr})`), _r) {
1665
- let St = Er.select("span");
1666
- St && St.attr("style", _r);
1667
- }
1668
- let Rr = Ir.node().getBBox();
1669
- return lr.offsetX = 0, lr.width = Rr.width, lr.height = Rr.height, lr.offsetY = jr.height - lr.padding / 2, lr.intersect = function(St) {
1670
- return intersect_rect_default(lr, St);
1671
- }, {
1672
- cluster: Cr,
1673
- labelBBox: jr
1674
- };
1675
- }, "kanbanSection")
1676
- }, clusterElems = /* @__PURE__ */ new Map(), insertCluster = /* @__PURE__ */ __name(async (St, lr) => {
1677
- let ur = await shapes[lr.shape || "rect"](St, lr);
1678
- return clusterElems.set(lr.id, ur), ur;
1679
- }, "insertCluster"), clear = /* @__PURE__ */ __name(() => {
1680
- clusterElems = /* @__PURE__ */ new Map();
1681
- }, "clear");
1682
- function intersectNode(St, lr) {
1683
- return St.intersect(lr);
1684
- }
1685
- __name(intersectNode, "intersectNode");
1686
- var intersect_node_default = intersectNode;
1687
- function intersectEllipse(St, lr, ur, dr) {
1688
- var fr = St.x, pr = St.y, mr = fr - dr.x, hr = pr - dr.y, gr = Math.sqrt(lr * lr * hr * hr + ur * ur * mr * mr), _r = Math.abs(lr * ur * mr / gr);
1689
- dr.x < fr && (_r = -_r);
1690
- var vr = Math.abs(lr * ur * hr / gr);
1691
- return dr.y < pr && (vr = -vr), {
1692
- x: fr + _r,
1693
- y: pr + vr
1694
- };
1695
- }
1696
- __name(intersectEllipse, "intersectEllipse");
1697
- var intersect_ellipse_default = intersectEllipse;
1698
- function intersectCircle(St, lr, ur) {
1699
- return intersect_ellipse_default(St, lr, lr, ur);
1700
- }
1701
- __name(intersectCircle, "intersectCircle");
1702
- var intersect_circle_default = intersectCircle;
1703
- function intersectLine(St, lr, ur, dr) {
1704
- {
1705
- let fr = lr.y - St.y, pr = St.x - lr.x, mr = lr.x * St.y - St.x * lr.y, hr = fr * ur.x + pr * ur.y + mr, gr = fr * dr.x + pr * dr.y + mr, _r = 1e-6;
1706
- if (hr !== 0 && gr !== 0 && sameSign(hr, gr)) return;
1707
- let vr = dr.y - ur.y, yr = ur.x - dr.x, br = dr.x * ur.y - ur.x * dr.y, xr = vr * St.x + yr * St.y + br, Sr = vr * lr.x + yr * lr.y + br;
1708
- if (Math.abs(xr) < _r && Math.abs(Sr) < _r && sameSign(xr, Sr)) return;
1709
- let Cr = fr * yr - vr * pr;
1710
- if (Cr === 0) return;
1711
- let wr = Math.abs(Cr / 2), Tr = pr * br - yr * mr, Er = Tr < 0 ? (Tr - wr) / Cr : (Tr + wr) / Cr;
1712
- return Tr = vr * mr - fr * br, {
1713
- x: Er,
1714
- y: Tr < 0 ? (Tr - wr) / Cr : (Tr + wr) / Cr
1715
- };
1716
- }
1717
- }
1718
- __name(intersectLine, "intersectLine");
1719
- function sameSign(St, lr) {
1720
- return St * lr > 0;
1721
- }
1722
- __name(sameSign, "sameSign");
1723
- var intersect_line_default = intersectLine;
1724
- function intersectPolygon(St, lr, ur) {
1725
- let dr = St.x, fr = St.y, pr = [], mr = Infinity, hr = Infinity;
1726
- typeof lr.forEach == "function" ? lr.forEach(function(St) {
1727
- mr = Math.min(mr, St.x), hr = Math.min(hr, St.y);
1728
- }) : (mr = Math.min(mr, lr.x), hr = Math.min(hr, lr.y));
1729
- let gr = dr - St.width / 2 - mr, _r = fr - St.height / 2 - hr;
1730
- for (let dr = 0; dr < lr.length; dr++) {
1731
- let fr = lr[dr], mr = lr[dr < lr.length - 1 ? dr + 1 : 0], hr = intersect_line_default(St, ur, {
1732
- x: gr + fr.x,
1733
- y: _r + fr.y
1734
- }, {
1735
- x: gr + mr.x,
1736
- y: _r + mr.y
1737
- });
1738
- hr && pr.push(hr);
1739
- }
1740
- return pr.length ? (pr.length > 1 && pr.sort(function(St, lr) {
1741
- let dr = St.x - ur.x, fr = St.y - ur.y, pr = Math.sqrt(dr * dr + fr * fr), mr = lr.x - ur.x, hr = lr.y - ur.y, gr = Math.sqrt(mr * mr + hr * hr);
1742
- return pr < gr ? -1 : pr === gr ? 0 : 1;
1743
- }), pr[0]) : St;
1744
- }
1745
- __name(intersectPolygon, "intersectPolygon");
1746
- var intersect_default = {
1747
- node: intersect_node_default,
1748
- circle: intersect_circle_default,
1749
- ellipse: intersect_ellipse_default,
1750
- polygon: intersectPolygon,
1751
- rect: intersect_rect_default
1752
- };
1753
- function anchor(St, lr) {
1754
- let { labelStyles: ur } = styles2String(lr);
1755
- lr.labelStyle = ur;
1756
- let pr = getNodeClasses(lr), mr = pr;
1757
- pr || (mr = "anchor");
1758
- let hr = St.insert("g").attr("class", mr).attr("id", lr.domId || lr.id), { cssStyles: gr } = lr, _r = at.svg(hr), vr = userNodeOverrides(lr, {
1759
- fill: "black",
1760
- stroke: "none",
1761
- fillStyle: "solid"
1762
- });
1763
- lr.look !== "handDrawn" && (vr.roughness = 0);
1764
- let yr = _r.circle(0, 0, 2, vr), br = hr.insert(() => yr, ":first-child");
1765
- return br.attr("class", "anchor").attr("style", handleUndefinedAttr(gr)), updateNodeBounds(lr, br), lr.intersect = function(St) {
1766
- return log.info("Circle intersect", lr, 1, St), intersect_default.circle(lr, 1, St);
1767
- }, hr;
1768
- }
1769
- __name(anchor, "anchor");
1770
- function generateArcPoints(St, lr, ur, dr, fr, pr, mr) {
1771
- let hr = (St + ur) / 2, gr = (lr + dr) / 2, _r = Math.atan2(dr - lr, ur - St), vr = (ur - St) / 2, yr = (dr - lr) / 2, br = vr / fr, xr = yr / pr, Sr = Math.sqrt(br ** 2 + xr ** 2);
1772
- if (Sr > 1) throw Error("The given radii are too small to create an arc between the points.");
1773
- let Cr = Math.sqrt(1 - Sr ** 2), wr = hr + Cr * pr * Math.sin(_r) * (mr ? -1 : 1), Tr = gr - Cr * fr * Math.cos(_r) * (mr ? -1 : 1), Er = Math.atan2((lr - Tr) / pr, (St - wr) / fr), Dr = Math.atan2((dr - Tr) / pr, (ur - wr) / fr) - Er;
1774
- mr && Dr < 0 && (Dr += 2 * Math.PI), !mr && Dr > 0 && (Dr -= 2 * Math.PI);
1775
- let Or = [];
1776
- for (let St = 0; St < 20; St++) {
1777
- let lr = Er + St / 19 * Dr, ur = wr + fr * Math.cos(lr), dr = Tr + pr * Math.sin(lr);
1778
- Or.push({
1779
- x: ur,
1780
- y: dr
1781
- });
1782
- }
1783
- return Or;
1784
- }
1785
- __name(generateArcPoints, "generateArcPoints");
1786
- async function bowTieRect(St, lr) {
1787
- let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
1788
- lr.labelStyle = ur;
1789
- let { shapeSvg: fr, bbox: pr } = await labelHelper(St, lr, getNodeClasses(lr)), mr = pr.width + lr.padding + 20, hr = pr.height + lr.padding, gr = hr / 2, _r = gr / (2.5 + hr / 50), { cssStyles: vr } = lr, yr = [
1790
- {
1791
- x: mr / 2,
1792
- y: -hr / 2
1793
- },
1794
- {
1795
- x: -mr / 2,
1796
- y: -hr / 2
1797
- },
1798
- ...generateArcPoints(-mr / 2, -hr / 2, -mr / 2, hr / 2, _r, gr, !1),
1799
- {
1800
- x: mr / 2,
1801
- y: hr / 2
1802
- },
1803
- ...generateArcPoints(mr / 2, hr / 2, mr / 2, -hr / 2, _r, gr, !0)
1804
- ], br = at.svg(fr), xr = userNodeOverrides(lr, {});
1805
- lr.look !== "handDrawn" && (xr.roughness = 0, xr.fillStyle = "solid");
1806
- let Sr = createPathFromPoints(yr), Cr = br.path(Sr, xr), wr = fr.insert(() => Cr, ":first-child");
1807
- return wr.attr("class", "basic label-container"), vr && lr.look !== "handDrawn" && wr.selectAll("path").attr("style", vr), dr && lr.look !== "handDrawn" && wr.selectAll("path").attr("style", dr), wr.attr("transform", `translate(${_r / 2}, 0)`), updateNodeBounds(lr, wr), lr.intersect = function(St) {
1808
- return intersect_default.polygon(lr, yr, St);
1809
- }, fr;
1810
- }
1811
- __name(bowTieRect, "bowTieRect");
1812
- function insertPolygonShape(St, lr, ur, dr) {
1813
- return St.insert("polygon", ":first-child").attr("points", dr.map(function(St) {
1814
- return St.x + "," + St.y;
1815
- }).join(" ")).attr("class", "label-container").attr("transform", "translate(" + -lr / 2 + "," + ur / 2 + ")");
1816
- }
1817
- __name(insertPolygonShape, "insertPolygonShape");
1818
- async function card(St, lr) {
1819
- let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
1820
- lr.labelStyle = ur;
1821
- let { shapeSvg: fr, bbox: pr } = await labelHelper(St, lr, getNodeClasses(lr)), mr = pr.height + lr.padding, hr = pr.width + lr.padding + 12, gr = hr, _r = -mr, vr = [
1822
- {
1823
- x: 12,
1824
- y: _r
1825
- },
1826
- {
1827
- x: gr,
1828
- y: _r
1829
- },
1830
- {
1831
- x: gr,
1832
- y: 0
1833
- },
1834
- {
1835
- x: 0,
1836
- y: 0
1837
- },
1838
- {
1839
- x: 0,
1840
- y: _r + 12
1841
- },
1842
- {
1843
- x: 12,
1844
- y: _r
1845
- }
1846
- ], yr, { cssStyles: br } = lr;
1847
- if (lr.look === "handDrawn") {
1848
- let St = at.svg(fr), ur = userNodeOverrides(lr, {}), dr = createPathFromPoints(vr), pr = St.path(dr, ur);
1849
- yr = fr.insert(() => pr, ":first-child").attr("transform", `translate(${-hr / 2}, ${mr / 2})`), br && yr.attr("style", br);
1850
- } else yr = insertPolygonShape(fr, hr, mr, vr);
1851
- return dr && yr.attr("style", dr), updateNodeBounds(lr, yr), lr.intersect = function(St) {
1852
- return intersect_default.polygon(lr, vr, St);
1853
- }, fr;
1854
- }
1855
- __name(card, "card");
1856
- function choice(St, lr) {
1857
- let { nodeStyles: ur } = styles2String(lr);
1858
- lr.label = "";
1859
- let dr = St.insert("g").attr("class", getNodeClasses(lr)).attr("id", lr.domId ?? lr.id), { cssStyles: fr } = lr, pr = Math.max(28, lr.width ?? 0), mr = [
1860
- {
1861
- x: 0,
1862
- y: pr / 2
1863
- },
1864
- {
1865
- x: pr / 2,
1866
- y: 0
1867
- },
1868
- {
1869
- x: 0,
1870
- y: -pr / 2
1871
- },
1872
- {
1873
- x: -pr / 2,
1874
- y: 0
1875
- }
1876
- ], hr = at.svg(dr), gr = userNodeOverrides(lr, {});
1877
- lr.look !== "handDrawn" && (gr.roughness = 0, gr.fillStyle = "solid");
1878
- let _r = createPathFromPoints(mr), vr = hr.path(_r, gr), yr = dr.insert(() => vr, ":first-child");
1879
- return fr && lr.look !== "handDrawn" && yr.selectAll("path").attr("style", fr), ur && lr.look !== "handDrawn" && yr.selectAll("path").attr("style", ur), lr.width = 28, lr.height = 28, lr.intersect = function(St) {
1880
- return intersect_default.polygon(lr, mr, St);
1881
- }, dr;
1882
- }
1883
- __name(choice, "choice");
1884
- async function circle(St, lr, ur) {
1885
- let { labelStyles: pr, nodeStyles: mr } = styles2String(lr);
1886
- lr.labelStyle = pr;
1887
- let { shapeSvg: hr, bbox: gr, halfPadding: _r } = await labelHelper(St, lr, getNodeClasses(lr)), vr = ur?.padding ?? _r, yr = gr.width / 2 + vr, br, { cssStyles: xr } = lr;
1888
- if (lr.look === "handDrawn") {
1889
- let St = at.svg(hr), ur = userNodeOverrides(lr, {}), fr = St.circle(0, 0, yr * 2, ur);
1890
- br = hr.insert(() => fr, ":first-child"), br.attr("class", "basic label-container").attr("style", handleUndefinedAttr(xr));
1891
- } else br = hr.insert("circle", ":first-child").attr("class", "basic label-container").attr("style", mr).attr("r", yr).attr("cx", 0).attr("cy", 0);
1892
- return updateNodeBounds(lr, br), lr.calcIntersect = function(St, lr) {
1893
- let ur = St.width / 2;
1894
- return intersect_default.circle(St, ur, lr);
1895
- }, lr.intersect = function(St) {
1896
- return log.info("Circle intersect", lr, yr, St), intersect_default.circle(lr, yr, St);
1897
- }, hr;
1898
- }
1899
- __name(circle, "circle");
1900
- function createLine(St) {
1901
- let lr = Math.cos(Math.PI / 4), ur = Math.sin(Math.PI / 4), dr = St * 2, fr = {
1902
- x: dr / 2 * lr,
1903
- y: dr / 2 * ur
1904
- }, pr = {
1905
- x: -(dr / 2) * lr,
1906
- y: dr / 2 * ur
1907
- }, mr = {
1908
- x: -(dr / 2) * lr,
1909
- y: -(dr / 2) * ur
1910
- }, hr = {
1911
- x: dr / 2 * lr,
1912
- y: -(dr / 2) * ur
1913
- };
1914
- return `M ${pr.x},${pr.y} L ${hr.x},${hr.y}
1915
- M ${fr.x},${fr.y} L ${mr.x},${mr.y}`;
1916
- }
1917
- __name(createLine, "createLine");
1918
- function crossedCircle(St, lr) {
1919
- let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
1920
- lr.labelStyle = ur, lr.label = "";
1921
- let pr = St.insert("g").attr("class", getNodeClasses(lr)).attr("id", lr.domId ?? lr.id), mr = Math.max(30, lr?.width ?? 0), { cssStyles: hr } = lr, gr = at.svg(pr), _r = userNodeOverrides(lr, {});
1922
- lr.look !== "handDrawn" && (_r.roughness = 0, _r.fillStyle = "solid");
1923
- let vr = gr.circle(0, 0, mr * 2, _r), yr = createLine(mr), br = gr.path(yr, _r), xr = pr.insert(() => vr, ":first-child");
1924
- return xr.insert(() => br), hr && lr.look !== "handDrawn" && xr.selectAll("path").attr("style", hr), dr && lr.look !== "handDrawn" && xr.selectAll("path").attr("style", dr), updateNodeBounds(lr, xr), lr.intersect = function(St) {
1925
- return log.info("crossedCircle intersect", lr, {
1926
- radius: mr,
1927
- point: St
1928
- }), intersect_default.circle(lr, mr, St);
1929
- }, pr;
1930
- }
1931
- __name(crossedCircle, "crossedCircle");
1932
- function generateCirclePoints2(St, lr, ur, dr = 100, fr = 0, pr = 180) {
1933
- let mr = [], hr = fr * Math.PI / 180, gr = (pr * Math.PI / 180 - hr) / (dr - 1);
1934
- for (let fr = 0; fr < dr; fr++) {
1935
- let dr = hr + fr * gr, pr = St + ur * Math.cos(dr), _r = lr + ur * Math.sin(dr);
1936
- mr.push({
1937
- x: -pr,
1938
- y: -_r
1939
- });
1940
- }
1941
- return mr;
1942
- }
1943
- __name(generateCirclePoints2, "generateCirclePoints");
1944
- async function curlyBraceLeft(St, lr) {
1945
- let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
1946
- lr.labelStyle = ur;
1947
- let { shapeSvg: fr, bbox: pr, label: mr } = await labelHelper(St, lr, getNodeClasses(lr)), hr = pr.width + (lr.padding ?? 0), gr = pr.height + (lr.padding ?? 0), _r = Math.max(5, gr * .1), { cssStyles: vr } = lr, yr = [
1948
- ...generateCirclePoints2(hr / 2, -gr / 2, _r, 30, -90, 0),
1949
- {
1950
- x: -hr / 2 - _r,
1951
- y: _r
1952
- },
1953
- ...generateCirclePoints2(hr / 2 + _r * 2, -_r, _r, 20, -180, -270),
1954
- ...generateCirclePoints2(hr / 2 + _r * 2, _r, _r, 20, -90, -180),
1955
- {
1956
- x: -hr / 2 - _r,
1957
- y: -gr / 2
1958
- },
1959
- ...generateCirclePoints2(hr / 2, gr / 2, _r, 20, 0, 90)
1960
- ], br = [
1961
- {
1962
- x: hr / 2,
1963
- y: -gr / 2 - _r
1964
- },
1965
- {
1966
- x: -hr / 2,
1967
- y: -gr / 2 - _r
1968
- },
1969
- ...generateCirclePoints2(hr / 2, -gr / 2, _r, 20, -90, 0),
1970
- {
1971
- x: -hr / 2 - _r,
1972
- y: -_r
1973
- },
1974
- ...generateCirclePoints2(hr / 2 + hr * .1, -_r, _r, 20, -180, -270),
1975
- ...generateCirclePoints2(hr / 2 + hr * .1, _r, _r, 20, -90, -180),
1976
- {
1977
- x: -hr / 2 - _r,
1978
- y: gr / 2
1979
- },
1980
- ...generateCirclePoints2(hr / 2, gr / 2, _r, 20, 0, 90),
1981
- {
1982
- x: -hr / 2,
1983
- y: gr / 2 + _r
1984
- },
1985
- {
1986
- x: hr / 2,
1987
- y: gr / 2 + _r
1988
- }
1989
- ], xr = at.svg(fr), Sr = userNodeOverrides(lr, { fill: "none" });
1990
- lr.look !== "handDrawn" && (Sr.roughness = 0, Sr.fillStyle = "solid");
1991
- let Cr = createPathFromPoints(yr).replace("Z", ""), wr = xr.path(Cr, Sr), Tr = createPathFromPoints(br), Er = xr.path(Tr, { ...Sr }), Dr = fr.insert("g", ":first-child");
1992
- return Dr.insert(() => Er, ":first-child").attr("stroke-opacity", 0), Dr.insert(() => wr, ":first-child"), Dr.attr("class", "text"), vr && lr.look !== "handDrawn" && Dr.selectAll("path").attr("style", vr), dr && lr.look !== "handDrawn" && Dr.selectAll("path").attr("style", dr), Dr.attr("transform", `translate(${_r}, 0)`), mr.attr("transform", `translate(${-hr / 2 + _r - (pr.x - (pr.left ?? 0))},${-gr / 2 + (lr.padding ?? 0) / 2 - (pr.y - (pr.top ?? 0))})`), updateNodeBounds(lr, Dr), lr.intersect = function(St) {
1993
- return intersect_default.polygon(lr, br, St);
1994
- }, fr;
1995
- }
1996
- __name(curlyBraceLeft, "curlyBraceLeft");
1997
- function generateCirclePoints3(St, lr, ur, dr = 100, fr = 0, pr = 180) {
1998
- let mr = [], hr = fr * Math.PI / 180, gr = (pr * Math.PI / 180 - hr) / (dr - 1);
1999
- for (let fr = 0; fr < dr; fr++) {
2000
- let dr = hr + fr * gr, pr = St + ur * Math.cos(dr), _r = lr + ur * Math.sin(dr);
2001
- mr.push({
2002
- x: pr,
2003
- y: _r
2004
- });
2005
- }
2006
- return mr;
2007
- }
2008
- __name(generateCirclePoints3, "generateCirclePoints");
2009
- async function curlyBraceRight(St, lr) {
2010
- let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
2011
- lr.labelStyle = ur;
2012
- let { shapeSvg: fr, bbox: pr, label: mr } = await labelHelper(St, lr, getNodeClasses(lr)), hr = pr.width + (lr.padding ?? 0), gr = pr.height + (lr.padding ?? 0), _r = Math.max(5, gr * .1), { cssStyles: vr } = lr, yr = [
2013
- ...generateCirclePoints3(hr / 2, -gr / 2, _r, 20, -90, 0),
2014
- {
2015
- x: hr / 2 + _r,
2016
- y: -_r
2017
- },
2018
- ...generateCirclePoints3(hr / 2 + _r * 2, -_r, _r, 20, -180, -270),
2019
- ...generateCirclePoints3(hr / 2 + _r * 2, _r, _r, 20, -90, -180),
2020
- {
2021
- x: hr / 2 + _r,
2022
- y: gr / 2
2023
- },
2024
- ...generateCirclePoints3(hr / 2, gr / 2, _r, 20, 0, 90)
2025
- ], br = [
2026
- {
2027
- x: -hr / 2,
2028
- y: -gr / 2 - _r
2029
- },
2030
- {
2031
- x: hr / 2,
2032
- y: -gr / 2 - _r
2033
- },
2034
- ...generateCirclePoints3(hr / 2, -gr / 2, _r, 20, -90, 0),
2035
- {
2036
- x: hr / 2 + _r,
2037
- y: -_r
2038
- },
2039
- ...generateCirclePoints3(hr / 2 + _r * 2, -_r, _r, 20, -180, -270),
2040
- ...generateCirclePoints3(hr / 2 + _r * 2, _r, _r, 20, -90, -180),
2041
- {
2042
- x: hr / 2 + _r,
2043
- y: gr / 2
2044
- },
2045
- ...generateCirclePoints3(hr / 2, gr / 2, _r, 20, 0, 90),
2046
- {
2047
- x: hr / 2,
2048
- y: gr / 2 + _r
2049
- },
2050
- {
2051
- x: -hr / 2,
2052
- y: gr / 2 + _r
2053
- }
2054
- ], xr = at.svg(fr), Sr = userNodeOverrides(lr, { fill: "none" });
2055
- lr.look !== "handDrawn" && (Sr.roughness = 0, Sr.fillStyle = "solid");
2056
- let Cr = createPathFromPoints(yr).replace("Z", ""), wr = xr.path(Cr, Sr), Tr = createPathFromPoints(br), Er = xr.path(Tr, { ...Sr }), Dr = fr.insert("g", ":first-child");
2057
- return Dr.insert(() => Er, ":first-child").attr("stroke-opacity", 0), Dr.insert(() => wr, ":first-child"), Dr.attr("class", "text"), vr && lr.look !== "handDrawn" && Dr.selectAll("path").attr("style", vr), dr && lr.look !== "handDrawn" && Dr.selectAll("path").attr("style", dr), Dr.attr("transform", `translate(${-_r}, 0)`), mr.attr("transform", `translate(${-hr / 2 + (lr.padding ?? 0) / 2 - (pr.x - (pr.left ?? 0))},${-gr / 2 + (lr.padding ?? 0) / 2 - (pr.y - (pr.top ?? 0))})`), updateNodeBounds(lr, Dr), lr.intersect = function(St) {
2058
- return intersect_default.polygon(lr, br, St);
2059
- }, fr;
2060
- }
2061
- __name(curlyBraceRight, "curlyBraceRight");
2062
- function generateCirclePoints4(St, lr, ur, dr = 100, fr = 0, pr = 180) {
2063
- let mr = [], hr = fr * Math.PI / 180, gr = (pr * Math.PI / 180 - hr) / (dr - 1);
2064
- for (let fr = 0; fr < dr; fr++) {
2065
- let dr = hr + fr * gr, pr = St + ur * Math.cos(dr), _r = lr + ur * Math.sin(dr);
2066
- mr.push({
2067
- x: -pr,
2068
- y: -_r
2069
- });
2070
- }
2071
- return mr;
2072
- }
2073
- __name(generateCirclePoints4, "generateCirclePoints");
2074
- async function curlyBraces(St, lr) {
2075
- let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
2076
- lr.labelStyle = ur;
2077
- let { shapeSvg: fr, bbox: pr, label: mr } = await labelHelper(St, lr, getNodeClasses(lr)), hr = pr.width + (lr.padding ?? 0), gr = pr.height + (lr.padding ?? 0), _r = Math.max(5, gr * .1), { cssStyles: vr } = lr, yr = [
2078
- ...generateCirclePoints4(hr / 2, -gr / 2, _r, 30, -90, 0),
2079
- {
2080
- x: -hr / 2 - _r,
2081
- y: _r
2082
- },
2083
- ...generateCirclePoints4(hr / 2 + _r * 2, -_r, _r, 20, -180, -270),
2084
- ...generateCirclePoints4(hr / 2 + _r * 2, _r, _r, 20, -90, -180),
2085
- {
2086
- x: -hr / 2 - _r,
2087
- y: -gr / 2
2088
- },
2089
- ...generateCirclePoints4(hr / 2, gr / 2, _r, 20, 0, 90)
2090
- ], br = [
2091
- ...generateCirclePoints4(-hr / 2 + _r + _r / 2, -gr / 2, _r, 20, -90, -180),
2092
- {
2093
- x: hr / 2 - _r / 2,
2094
- y: _r
2095
- },
2096
- ...generateCirclePoints4(-hr / 2 - _r / 2, -_r, _r, 20, 0, 90),
2097
- ...generateCirclePoints4(-hr / 2 - _r / 2, _r, _r, 20, -90, 0),
2098
- {
2099
- x: hr / 2 - _r / 2,
2100
- y: -_r
2101
- },
2102
- ...generateCirclePoints4(-hr / 2 + _r + _r / 2, gr / 2, _r, 30, -180, -270)
2103
- ], xr = [
2104
- {
2105
- x: hr / 2,
2106
- y: -gr / 2 - _r
2107
- },
2108
- {
2109
- x: -hr / 2,
2110
- y: -gr / 2 - _r
2111
- },
2112
- ...generateCirclePoints4(hr / 2, -gr / 2, _r, 20, -90, 0),
2113
- {
2114
- x: -hr / 2 - _r,
2115
- y: -_r
2116
- },
2117
- ...generateCirclePoints4(hr / 2 + _r * 2, -_r, _r, 20, -180, -270),
2118
- ...generateCirclePoints4(hr / 2 + _r * 2, _r, _r, 20, -90, -180),
2119
- {
2120
- x: -hr / 2 - _r,
2121
- y: gr / 2
2122
- },
2123
- ...generateCirclePoints4(hr / 2, gr / 2, _r, 20, 0, 90),
2124
- {
2125
- x: -hr / 2,
2126
- y: gr / 2 + _r
2127
- },
2128
- {
2129
- x: hr / 2 - _r - _r / 2,
2130
- y: gr / 2 + _r
2131
- },
2132
- ...generateCirclePoints4(-hr / 2 + _r + _r / 2, -gr / 2, _r, 20, -90, -180),
2133
- {
2134
- x: hr / 2 - _r / 2,
2135
- y: _r
2136
- },
2137
- ...generateCirclePoints4(-hr / 2 - _r / 2, -_r, _r, 20, 0, 90),
2138
- ...generateCirclePoints4(-hr / 2 - _r / 2, _r, _r, 20, -90, 0),
2139
- {
2140
- x: hr / 2 - _r / 2,
2141
- y: -_r
2142
- },
2143
- ...generateCirclePoints4(-hr / 2 + _r + _r / 2, gr / 2, _r, 30, -180, -270)
2144
- ], Sr = at.svg(fr), Cr = userNodeOverrides(lr, { fill: "none" });
2145
- lr.look !== "handDrawn" && (Cr.roughness = 0, Cr.fillStyle = "solid");
2146
- let wr = createPathFromPoints(yr).replace("Z", ""), Tr = Sr.path(wr, Cr), Er = createPathFromPoints(br).replace("Z", ""), Dr = Sr.path(Er, Cr), Ar = createPathFromPoints(xr), jr = Sr.path(Ar, { ...Cr }), Mr = fr.insert("g", ":first-child");
2147
- return Mr.insert(() => jr, ":first-child").attr("stroke-opacity", 0), Mr.insert(() => Tr, ":first-child"), Mr.insert(() => Dr, ":first-child"), Mr.attr("class", "text"), vr && lr.look !== "handDrawn" && Mr.selectAll("path").attr("style", vr), dr && lr.look !== "handDrawn" && Mr.selectAll("path").attr("style", dr), Mr.attr("transform", `translate(${_r - _r / 4}, 0)`), mr.attr("transform", `translate(${-hr / 2 + (lr.padding ?? 0) / 2 - (pr.x - (pr.left ?? 0))},${-gr / 2 + (lr.padding ?? 0) / 2 - (pr.y - (pr.top ?? 0))})`), updateNodeBounds(lr, Mr), lr.intersect = function(St) {
2148
- return intersect_default.polygon(lr, xr, St);
2149
- }, fr;
2150
- }
2151
- __name(curlyBraces, "curlyBraces");
2152
- async function curvedTrapezoid(St, lr) {
2153
- let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
2154
- lr.labelStyle = ur;
2155
- let { shapeSvg: fr, bbox: pr } = await labelHelper(St, lr, getNodeClasses(lr)), mr = Math.max(80, (pr.width + (lr.padding ?? 0) * 2) * 1.25, lr?.width ?? 0), hr = Math.max(20, pr.height + (lr.padding ?? 0) * 2, lr?.height ?? 0), gr = hr / 2, { cssStyles: _r } = lr, vr = at.svg(fr), yr = userNodeOverrides(lr, {});
2156
- lr.look !== "handDrawn" && (yr.roughness = 0, yr.fillStyle = "solid");
2157
- let br = mr, xr = hr, Sr = br - gr, Cr = xr / 4, wr = [
2158
- {
2159
- x: Sr,
2160
- y: 0
2161
- },
2162
- {
2163
- x: Cr,
2164
- y: 0
2165
- },
2166
- {
2167
- x: 0,
2168
- y: xr / 2
2169
- },
2170
- {
2171
- x: Cr,
2172
- y: xr
2173
- },
2174
- {
2175
- x: Sr,
2176
- y: xr
2177
- },
2178
- ...generateCirclePoints(-Sr, -xr / 2, gr, 50, 270, 90)
2179
- ], Tr = createPathFromPoints(wr), Er = vr.path(Tr, yr), Dr = fr.insert(() => Er, ":first-child");
2180
- return Dr.attr("class", "basic label-container"), _r && lr.look !== "handDrawn" && Dr.selectChildren("path").attr("style", _r), dr && lr.look !== "handDrawn" && Dr.selectChildren("path").attr("style", dr), Dr.attr("transform", `translate(${-mr / 2}, ${-hr / 2})`), updateNodeBounds(lr, Dr), lr.intersect = function(St) {
2181
- return intersect_default.polygon(lr, wr, St);
2182
- }, fr;
2183
- }
2184
- __name(curvedTrapezoid, "curvedTrapezoid");
2185
- var createCylinderPathD = /* @__PURE__ */ __name((St, lr, ur, dr, fr, pr) => [
2186
- `M${St},${lr + pr}`,
2187
- `a${fr},${pr} 0,0,0 ${ur},0`,
2188
- `a${fr},${pr} 0,0,0 ${-ur},0`,
2189
- `l0,${dr}`,
2190
- `a${fr},${pr} 0,0,0 ${ur},0`,
2191
- `l0,${-dr}`
2192
- ].join(" "), "createCylinderPathD"), createOuterCylinderPathD = /* @__PURE__ */ __name((St, lr, ur, dr, fr, pr) => [
2193
- `M${St},${lr + pr}`,
2194
- `M${St + ur},${lr + pr}`,
2195
- `a${fr},${pr} 0,0,0 ${-ur},0`,
2196
- `l0,${dr}`,
2197
- `a${fr},${pr} 0,0,0 ${ur},0`,
2198
- `l0,${-dr}`
2199
- ].join(" "), "createOuterCylinderPathD"), createInnerCylinderPathD = /* @__PURE__ */ __name((St, lr, ur, dr, fr, pr) => [`M${St - ur / 2},${-dr / 2}`, `a${fr},${pr} 0,0,0 ${ur},0`].join(" "), "createInnerCylinderPathD");
2200
- async function cylinder(St, lr) {
2201
- let { labelStyles: ur, nodeStyles: fr } = styles2String(lr);
2202
- lr.labelStyle = ur;
2203
- let { shapeSvg: pr, bbox: mr, label: hr } = await labelHelper(St, lr, getNodeClasses(lr)), gr = Math.max(mr.width + lr.padding, lr.width ?? 0), _r = gr / 2, vr = _r / (2.5 + gr / 50), yr = Math.max(mr.height + vr + lr.padding, lr.height ?? 0), br, { cssStyles: xr } = lr;
2204
- if (lr.look === "handDrawn") {
2205
- let St = at.svg(pr), ur = createOuterCylinderPathD(0, 0, gr, yr, _r, vr), dr = createInnerCylinderPathD(0, vr, gr, yr, _r, vr), fr = St.path(ur, userNodeOverrides(lr, {})), mr = St.path(dr, userNodeOverrides(lr, { fill: "none" }));
2206
- br = pr.insert(() => mr, ":first-child"), br = pr.insert(() => fr, ":first-child"), br.attr("class", "basic label-container"), xr && br.attr("style", xr);
2207
- } else {
2208
- let St = createCylinderPathD(0, 0, gr, yr, _r, vr);
2209
- br = pr.insert("path", ":first-child").attr("d", St).attr("class", "basic label-container").attr("style", handleUndefinedAttr(xr)).attr("style", fr);
2210
- }
2211
- return br.attr("label-offset-y", vr), br.attr("transform", `translate(${-gr / 2}, ${-(yr / 2 + vr)})`), updateNodeBounds(lr, br), hr.attr("transform", `translate(${-(mr.width / 2) - (mr.x - (mr.left ?? 0))}, ${-(mr.height / 2) + (lr.padding ?? 0) / 1.5 - (mr.y - (mr.top ?? 0))})`), lr.intersect = function(St) {
2212
- let ur = intersect_default.rect(lr, St), dr = ur.x - (lr.x ?? 0);
2213
- if (_r != 0 && (Math.abs(dr) < (lr.width ?? 0) / 2 || Math.abs(dr) == (lr.width ?? 0) / 2 && Math.abs(ur.y - (lr.y ?? 0)) > (lr.height ?? 0) / 2 - vr)) {
2214
- let fr = vr * vr * (1 - dr * dr / (_r * _r));
2215
- fr > 0 && (fr = Math.sqrt(fr)), fr = vr - fr, St.y - (lr.y ?? 0) > 0 && (fr = -fr), ur.y += fr;
2216
- }
2217
- return ur;
2218
- }, pr;
2219
- }
2220
- __name(cylinder, "cylinder");
2221
- async function dividedRectangle(St, lr) {
2222
- let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
2223
- lr.labelStyle = ur;
2224
- let { shapeSvg: fr, bbox: pr, label: mr } = await labelHelper(St, lr, getNodeClasses(lr)), hr = pr.width + lr.padding, gr = pr.height + lr.padding, _r = gr * .2, vr = -hr / 2, yr = -gr / 2 - _r / 2, { cssStyles: br } = lr, xr = at.svg(fr), Sr = userNodeOverrides(lr, {});
2225
- lr.look !== "handDrawn" && (Sr.roughness = 0, Sr.fillStyle = "solid");
2226
- let Cr = [
2227
- {
2228
- x: vr,
2229
- y: yr + _r
2230
- },
2231
- {
2232
- x: -vr,
2233
- y: yr + _r
2234
- },
2235
- {
2236
- x: -vr,
2237
- y: -yr
2238
- },
2239
- {
2240
- x: vr,
2241
- y: -yr
2242
- },
2243
- {
2244
- x: vr,
2245
- y: yr
2246
- },
2247
- {
2248
- x: -vr,
2249
- y: yr
2250
- },
2251
- {
2252
- x: -vr,
2253
- y: yr + _r
2254
- }
2255
- ], wr = xr.polygon(Cr.map((St) => [St.x, St.y]), Sr), Tr = fr.insert(() => wr, ":first-child");
2256
- return Tr.attr("class", "basic label-container"), br && lr.look !== "handDrawn" && Tr.selectAll("path").attr("style", br), dr && lr.look !== "handDrawn" && Tr.selectAll("path").attr("style", dr), mr.attr("transform", `translate(${vr + (lr.padding ?? 0) / 2 - (pr.x - (pr.left ?? 0))}, ${yr + _r + (lr.padding ?? 0) / 2 - (pr.y - (pr.top ?? 0))})`), updateNodeBounds(lr, Tr), lr.intersect = function(St) {
2257
- return intersect_default.rect(lr, St);
2258
- }, fr;
2259
- }
2260
- __name(dividedRectangle, "dividedRectangle");
2261
- async function doublecircle(St, lr) {
2262
- let { labelStyles: ur, nodeStyles: pr } = styles2String(lr);
2263
- lr.labelStyle = ur;
2264
- let { shapeSvg: mr, bbox: hr, halfPadding: gr } = await labelHelper(St, lr, getNodeClasses(lr)), _r = hr.width / 2 + gr + 5, vr = hr.width / 2 + gr, yr, { cssStyles: br } = lr;
2265
- if (lr.look === "handDrawn") {
2266
- let St = at.svg(mr), ur = userNodeOverrides(lr, {
2267
- roughness: .2,
2268
- strokeWidth: 2.5
2269
- }), fr = userNodeOverrides(lr, {
2270
- roughness: .2,
2271
- strokeWidth: 1.5
2272
- }), pr = St.circle(0, 0, _r * 2, ur), hr = St.circle(0, 0, vr * 2, fr);
2273
- yr = mr.insert("g", ":first-child"), yr.attr("class", handleUndefinedAttr(lr.cssClasses)).attr("style", handleUndefinedAttr(br)), yr.node()?.appendChild(pr), yr.node()?.appendChild(hr);
2274
- } else {
2275
- yr = mr.insert("g", ":first-child");
2276
- let St = yr.insert("circle", ":first-child"), lr = yr.insert("circle");
2277
- yr.attr("class", "basic label-container").attr("style", pr), St.attr("class", "outer-circle").attr("style", pr).attr("r", _r).attr("cx", 0).attr("cy", 0), lr.attr("class", "inner-circle").attr("style", pr).attr("r", vr).attr("cx", 0).attr("cy", 0);
2278
- }
2279
- return updateNodeBounds(lr, yr), lr.intersect = function(St) {
2280
- return log.info("DoubleCircle intersect", lr, _r, St), intersect_default.circle(lr, _r, St);
2281
- }, mr;
2282
- }
2283
- __name(doublecircle, "doublecircle");
2284
- function filledCircle(St, lr, { config: { themeVariables: ur } }) {
2285
- let { labelStyles: dr, nodeStyles: pr } = styles2String(lr);
2286
- lr.label = "", lr.labelStyle = dr;
2287
- let mr = St.insert("g").attr("class", getNodeClasses(lr)).attr("id", lr.domId ?? lr.id), { cssStyles: hr } = lr, gr = at.svg(mr), { nodeBorder: _r } = ur, vr = userNodeOverrides(lr, { fillStyle: "solid" });
2288
- lr.look !== "handDrawn" && (vr.roughness = 0);
2289
- let yr = gr.circle(0, 0, 14, vr), br = mr.insert(() => yr, ":first-child");
2290
- return br.selectAll("path").attr("style", `fill: ${_r} !important;`), hr && hr.length > 0 && lr.look !== "handDrawn" && br.selectAll("path").attr("style", hr), pr && lr.look !== "handDrawn" && br.selectAll("path").attr("style", pr), updateNodeBounds(lr, br), lr.intersect = function(St) {
2291
- return log.info("filledCircle intersect", lr, {
2292
- radius: 7,
2293
- point: St
2294
- }), intersect_default.circle(lr, 7, St);
2295
- }, mr;
2296
- }
2297
- __name(filledCircle, "filledCircle");
2298
- async function flippedTriangle(St, lr) {
2299
- let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
2300
- lr.labelStyle = ur;
2301
- let { shapeSvg: pr, bbox: mr, label: hr } = await labelHelper(St, lr, getNodeClasses(lr)), gr = mr.width + (lr.padding ?? 0), _r = gr + mr.height, vr = gr + mr.height, yr = [
2302
- {
2303
- x: 0,
2304
- y: -_r
2305
- },
2306
- {
2307
- x: vr,
2308
- y: -_r
2309
- },
2310
- {
2311
- x: vr / 2,
2312
- y: 0
2313
- }
2314
- ], { cssStyles: br } = lr, xr = at.svg(pr), Sr = userNodeOverrides(lr, {});
2315
- lr.look !== "handDrawn" && (Sr.roughness = 0, Sr.fillStyle = "solid");
2316
- let Cr = createPathFromPoints(yr), wr = xr.path(Cr, Sr), Tr = pr.insert(() => wr, ":first-child").attr("transform", `translate(${-_r / 2}, ${_r / 2})`);
2317
- return br && lr.look !== "handDrawn" && Tr.selectChildren("path").attr("style", br), dr && lr.look !== "handDrawn" && Tr.selectChildren("path").attr("style", dr), lr.width = gr, lr.height = _r, updateNodeBounds(lr, Tr), hr.attr("transform", `translate(${-mr.width / 2 - (mr.x - (mr.left ?? 0))}, ${-_r / 2 + (lr.padding ?? 0) / 2 + (mr.y - (mr.top ?? 0))})`), lr.intersect = function(St) {
2318
- return log.info("Triangle intersect", lr, yr, St), intersect_default.polygon(lr, yr, St);
2319
- }, pr;
2320
- }
2321
- __name(flippedTriangle, "flippedTriangle");
2322
- function forkJoin(St, lr, { dir: ur, config: { state: dr, themeVariables: fr } }) {
2323
- let { nodeStyles: pr } = styles2String(lr);
2324
- lr.label = "";
2325
- let mr = St.insert("g").attr("class", getNodeClasses(lr)).attr("id", lr.domId ?? lr.id), { cssStyles: hr } = lr, gr = Math.max(70, lr?.width ?? 0), _r = Math.max(10, lr?.height ?? 0);
2326
- ur === "LR" && (gr = Math.max(10, lr?.width ?? 0), _r = Math.max(70, lr?.height ?? 0));
2327
- let vr = -1 * gr / 2, yr = -1 * _r / 2, br = at.svg(mr), xr = userNodeOverrides(lr, {
2328
- stroke: fr.lineColor,
2329
- fill: fr.lineColor
2330
- });
2331
- lr.look !== "handDrawn" && (xr.roughness = 0, xr.fillStyle = "solid");
2332
- let Sr = br.rectangle(vr, yr, gr, _r, xr), Cr = mr.insert(() => Sr, ":first-child");
2333
- hr && lr.look !== "handDrawn" && Cr.selectAll("path").attr("style", hr), pr && lr.look !== "handDrawn" && Cr.selectAll("path").attr("style", pr), updateNodeBounds(lr, Cr);
2334
- let wr = dr?.padding ?? 0;
2335
- return lr.width && lr.height && (lr.width += wr / 2 || 0, lr.height += wr / 2 || 0), lr.intersect = function(St) {
2336
- return intersect_default.rect(lr, St);
2337
- }, mr;
2338
- }
2339
- __name(forkJoin, "forkJoin");
2340
- async function halfRoundedRectangle(St, lr) {
2341
- let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
2342
- lr.labelStyle = ur;
2343
- let { shapeSvg: pr, bbox: mr } = await labelHelper(St, lr, getNodeClasses(lr)), hr = Math.max(80, mr.width + (lr.padding ?? 0) * 2, lr?.width ?? 0), gr = Math.max(50, mr.height + (lr.padding ?? 0) * 2, lr?.height ?? 0), _r = gr / 2, { cssStyles: vr } = lr, yr = at.svg(pr), br = userNodeOverrides(lr, {});
2344
- lr.look !== "handDrawn" && (br.roughness = 0, br.fillStyle = "solid");
2345
- let xr = [
2346
- {
2347
- x: -hr / 2,
2348
- y: -gr / 2
2349
- },
2350
- {
2351
- x: hr / 2 - _r,
2352
- y: -gr / 2
2353
- },
2354
- ...generateCirclePoints(-hr / 2 + _r, 0, _r, 50, 90, 270),
2355
- {
2356
- x: hr / 2 - _r,
2357
- y: gr / 2
2358
- },
2359
- {
2360
- x: -hr / 2,
2361
- y: gr / 2
2362
- }
2363
- ], Sr = createPathFromPoints(xr), Cr = yr.path(Sr, br), wr = pr.insert(() => Cr, ":first-child");
2364
- return wr.attr("class", "basic label-container"), vr && lr.look !== "handDrawn" && wr.selectChildren("path").attr("style", vr), dr && lr.look !== "handDrawn" && wr.selectChildren("path").attr("style", dr), updateNodeBounds(lr, wr), lr.intersect = function(St) {
2365
- return log.info("Pill intersect", lr, {
2366
- radius: _r,
2367
- point: St
2368
- }), intersect_default.polygon(lr, xr, St);
2369
- }, pr;
2370
- }
2371
- __name(halfRoundedRectangle, "halfRoundedRectangle");
2372
- async function hexagon(St, lr) {
2373
- let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
2374
- lr.labelStyle = ur;
2375
- let { shapeSvg: fr, bbox: pr } = await labelHelper(St, lr, getNodeClasses(lr)), mr = pr.height + (lr.padding ?? 0), hr = pr.width + (lr.padding ?? 0) * 2.5, { cssStyles: gr } = lr, _r = at.svg(fr), vr = userNodeOverrides(lr, {});
2376
- lr.look !== "handDrawn" && (vr.roughness = 0, vr.fillStyle = "solid");
2377
- let yr = hr / 2, br = yr / 6;
2378
- yr += br;
2379
- let xr = mr / 2, Sr = xr / 2, Cr = yr - Sr, wr = [
2380
- {
2381
- x: -Cr,
2382
- y: -xr
2383
- },
2384
- {
2385
- x: 0,
2386
- y: -xr
2387
- },
2388
- {
2389
- x: Cr,
2390
- y: -xr
2391
- },
2392
- {
2393
- x: yr,
2394
- y: 0
2395
- },
2396
- {
2397
- x: Cr,
2398
- y: xr
2399
- },
2400
- {
2401
- x: 0,
2402
- y: xr
2403
- },
2404
- {
2405
- x: -Cr,
2406
- y: xr
2407
- },
2408
- {
2409
- x: -yr,
2410
- y: 0
2411
- }
2412
- ], Tr = createPathFromPoints(wr), Er = _r.path(Tr, vr), Dr = fr.insert(() => Er, ":first-child");
2413
- return Dr.attr("class", "basic label-container"), gr && lr.look !== "handDrawn" && Dr.selectChildren("path").attr("style", gr), dr && lr.look !== "handDrawn" && Dr.selectChildren("path").attr("style", dr), lr.width = hr, lr.height = mr, updateNodeBounds(lr, Dr), lr.intersect = function(St) {
2414
- return intersect_default.polygon(lr, wr, St);
2415
- }, fr;
2416
- }
2417
- __name(hexagon, "hexagon");
2418
- async function hourglass(St, lr) {
2419
- let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
2420
- lr.label = "", lr.labelStyle = ur;
2421
- let { shapeSvg: pr } = await labelHelper(St, lr, getNodeClasses(lr)), mr = Math.max(30, lr?.width ?? 0), hr = Math.max(30, lr?.height ?? 0), { cssStyles: gr } = lr, _r = at.svg(pr), vr = userNodeOverrides(lr, {});
2422
- lr.look !== "handDrawn" && (vr.roughness = 0, vr.fillStyle = "solid");
2423
- let yr = [
2424
- {
2425
- x: 0,
2426
- y: 0
2427
- },
2428
- {
2429
- x: mr,
2430
- y: 0
2431
- },
2432
- {
2433
- x: 0,
2434
- y: hr
2435
- },
2436
- {
2437
- x: mr,
2438
- y: hr
2439
- }
2440
- ], br = createPathFromPoints(yr), xr = _r.path(br, vr), Sr = pr.insert(() => xr, ":first-child");
2441
- return Sr.attr("class", "basic label-container"), gr && lr.look !== "handDrawn" && Sr.selectChildren("path").attr("style", gr), dr && lr.look !== "handDrawn" && Sr.selectChildren("path").attr("style", dr), Sr.attr("transform", `translate(${-mr / 2}, ${-hr / 2})`), updateNodeBounds(lr, Sr), lr.intersect = function(St) {
2442
- return log.info("Pill intersect", lr, { points: yr }), intersect_default.polygon(lr, yr, St);
2443
- }, pr;
2444
- }
2445
- __name(hourglass, "hourglass");
2446
- async function icon(St, lr, { config: { themeVariables: ur, flowchart: dr } }) {
2447
- let { labelStyles: pr } = styles2String(lr);
2448
- lr.labelStyle = pr;
2449
- let mr = lr.assetHeight ?? 48, hr = lr.assetWidth ?? 48, gr = Math.max(mr, hr), _r = dr?.wrappingWidth;
2450
- lr.width = Math.max(gr, _r ?? 0);
2451
- let { shapeSvg: vr, bbox: yr, label: br } = await labelHelper(St, lr, "icon-shape default"), xr = lr.pos === "t", Sr = gr, Cr = gr, { nodeBorder: wr } = ur, { stylesMap: Tr } = compileStyles(lr), Dr = -Cr / 2, Ar = -Sr / 2, Mr = lr.label ? 8 : 0, Nr = at.svg(vr), Pr = userNodeOverrides(lr, {
2452
- stroke: "none",
2453
- fill: "none"
2454
- });
2455
- lr.look !== "handDrawn" && (Pr.roughness = 0, Pr.fillStyle = "solid");
2456
- let Fr = Nr.rectangle(Dr, Ar, Cr, Sr, Pr), Ir = Math.max(Cr, yr.width), Lr = Sr + yr.height + Mr, Rr = Nr.rectangle(-Ir / 2, -Lr / 2, Ir, Lr, {
2457
- ...Pr,
2458
- fill: "transparent",
2459
- stroke: "none"
2460
- }), zr = vr.insert(() => Fr, ":first-child"), Br = vr.insert(() => Rr);
2461
- if (lr.icon) {
2462
- let St = vr.append("g");
2463
- St.html(`<g>${await getIconSVG(lr.icon, {
2464
- height: gr,
2465
- width: gr,
2466
- fallbackPrefix: ""
2467
- })}</g>`);
2468
- let ur = St.node().getBBox(), dr = ur.width, fr = ur.height, pr = ur.x, mr = ur.y;
2469
- St.attr("transform", `translate(${-dr / 2 - pr},${xr ? yr.height / 2 + Mr / 2 - fr / 2 - mr : -yr.height / 2 - Mr / 2 - fr / 2 - mr})`), St.attr("style", `color: ${Tr.get("stroke") ?? wr};`);
2470
- }
2471
- return br.attr("transform", `translate(${-yr.width / 2 - (yr.x - (yr.left ?? 0))},${xr ? -Lr / 2 : Lr / 2 - yr.height})`), zr.attr("transform", `translate(0,${xr ? yr.height / 2 + Mr / 2 : -yr.height / 2 - Mr / 2})`), updateNodeBounds(lr, Br), lr.intersect = function(St) {
2472
- if (log.info("iconSquare intersect", lr, St), !lr.label) return intersect_default.rect(lr, St);
2473
- let ur = lr.x ?? 0, dr = lr.y ?? 0, pr = lr.height ?? 0, mr = [];
2474
- return mr = xr ? [
2475
- {
2476
- x: ur - yr.width / 2,
2477
- y: dr - pr / 2
2478
- },
2479
- {
2480
- x: ur + yr.width / 2,
2481
- y: dr - pr / 2
2482
- },
2483
- {
2484
- x: ur + yr.width / 2,
2485
- y: dr - pr / 2 + yr.height + Mr
2486
- },
2487
- {
2488
- x: ur + Cr / 2,
2489
- y: dr - pr / 2 + yr.height + Mr
2490
- },
2491
- {
2492
- x: ur + Cr / 2,
2493
- y: dr + pr / 2
2494
- },
2495
- {
2496
- x: ur - Cr / 2,
2497
- y: dr + pr / 2
2498
- },
2499
- {
2500
- x: ur - Cr / 2,
2501
- y: dr - pr / 2 + yr.height + Mr
2502
- },
2503
- {
2504
- x: ur - yr.width / 2,
2505
- y: dr - pr / 2 + yr.height + Mr
2506
- }
2507
- ] : [
2508
- {
2509
- x: ur - Cr / 2,
2510
- y: dr - pr / 2
2511
- },
2512
- {
2513
- x: ur + Cr / 2,
2514
- y: dr - pr / 2
2515
- },
2516
- {
2517
- x: ur + Cr / 2,
2518
- y: dr - pr / 2 + Sr
2519
- },
2520
- {
2521
- x: ur + yr.width / 2,
2522
- y: dr - pr / 2 + Sr
2523
- },
2524
- {
2525
- x: ur + yr.width / 2 / 2,
2526
- y: dr + pr / 2
2527
- },
2528
- {
2529
- x: ur - yr.width / 2,
2530
- y: dr + pr / 2
2531
- },
2532
- {
2533
- x: ur - yr.width / 2,
2534
- y: dr - pr / 2 + Sr
2535
- },
2536
- {
2537
- x: ur - Cr / 2,
2538
- y: dr - pr / 2 + Sr
2539
- }
2540
- ], intersect_default.polygon(lr, mr, St);
2541
- }, vr;
2542
- }
2543
- __name(icon, "icon");
2544
- async function iconCircle(St, lr, { config: { themeVariables: ur, flowchart: dr } }) {
2545
- let { labelStyles: pr } = styles2String(lr);
2546
- lr.labelStyle = pr;
2547
- let mr = lr.assetHeight ?? 48, hr = lr.assetWidth ?? 48, gr = Math.max(mr, hr), _r = dr?.wrappingWidth;
2548
- lr.width = Math.max(gr, _r ?? 0);
2549
- let { shapeSvg: vr, bbox: yr, label: br } = await labelHelper(St, lr, "icon-shape default"), xr = lr.label ? 8 : 0, Sr = lr.pos === "t", { nodeBorder: Cr, mainBkg: wr } = ur, { stylesMap: Tr } = compileStyles(lr), Dr = at.svg(vr), Ar = userNodeOverrides(lr, {});
2550
- lr.look !== "handDrawn" && (Ar.roughness = 0, Ar.fillStyle = "solid"), Ar.stroke = Tr.get("fill") ?? wr;
2551
- let Mr = vr.append("g");
2552
- lr.icon && Mr.html(`<g>${await getIconSVG(lr.icon, {
2553
- height: gr,
2554
- width: gr,
2555
- fallbackPrefix: ""
2556
- })}</g>`);
2557
- let Nr = Mr.node().getBBox(), Pr = Nr.width, Fr = Nr.height, Ir = Nr.x, Lr = Nr.y, Rr = Math.max(Pr, Fr) * Math.SQRT2 + 40, zr = Dr.circle(0, 0, Rr, Ar), Br = Math.max(Rr, yr.width), Vr = Rr + yr.height + xr, Hr = Dr.rectangle(-Br / 2, -Vr / 2, Br, Vr, {
2558
- ...Ar,
2559
- fill: "transparent",
2560
- stroke: "none"
2561
- }), Ur = vr.insert(() => zr, ":first-child"), Wr = vr.insert(() => Hr);
2562
- return Mr.attr("transform", `translate(${-Pr / 2 - Ir},${Sr ? yr.height / 2 + xr / 2 - Fr / 2 - Lr : -yr.height / 2 - xr / 2 - Fr / 2 - Lr})`), Mr.attr("style", `color: ${Tr.get("stroke") ?? Cr};`), br.attr("transform", `translate(${-yr.width / 2 - (yr.x - (yr.left ?? 0))},${Sr ? -Vr / 2 : Vr / 2 - yr.height})`), Ur.attr("transform", `translate(0,${Sr ? yr.height / 2 + xr / 2 : -yr.height / 2 - xr / 2})`), updateNodeBounds(lr, Wr), lr.intersect = function(St) {
2563
- return log.info("iconSquare intersect", lr, St), intersect_default.rect(lr, St);
2564
- }, vr;
2565
- }
2566
- __name(iconCircle, "iconCircle");
2567
- async function iconRounded(St, lr, { config: { themeVariables: ur, flowchart: dr } }) {
2568
- let { labelStyles: pr } = styles2String(lr);
2569
- lr.labelStyle = pr;
2570
- let mr = lr.assetHeight ?? 48, hr = lr.assetWidth ?? 48, gr = Math.max(mr, hr), _r = dr?.wrappingWidth;
2571
- lr.width = Math.max(gr, _r ?? 0);
2572
- let { shapeSvg: vr, bbox: yr, halfPadding: br, label: xr } = await labelHelper(St, lr, "icon-shape default"), Sr = lr.pos === "t", Cr = gr + br * 2, wr = gr + br * 2, { nodeBorder: Tr, mainBkg: Dr } = ur, { stylesMap: Ar } = compileStyles(lr), Mr = -wr / 2, Nr = -Cr / 2, Pr = lr.label ? 8 : 0, Fr = at.svg(vr), Ir = userNodeOverrides(lr, {});
2573
- lr.look !== "handDrawn" && (Ir.roughness = 0, Ir.fillStyle = "solid"), Ir.stroke = Ar.get("fill") ?? Dr;
2574
- let Lr = Fr.path(createRoundedRectPathD(Mr, Nr, wr, Cr, 5), Ir), Rr = Math.max(wr, yr.width), zr = Cr + yr.height + Pr, Br = Fr.rectangle(-Rr / 2, -zr / 2, Rr, zr, {
2575
- ...Ir,
2576
- fill: "transparent",
2577
- stroke: "none"
2578
- }), Vr = vr.insert(() => Lr, ":first-child").attr("class", "icon-shape2"), Hr = vr.insert(() => Br);
2579
- if (lr.icon) {
2580
- let St = vr.append("g");
2581
- St.html(`<g>${await getIconSVG(lr.icon, {
2582
- height: gr,
2583
- width: gr,
2584
- fallbackPrefix: ""
2585
- })}</g>`);
2586
- let ur = St.node().getBBox(), dr = ur.width, fr = ur.height, pr = ur.x, mr = ur.y;
2587
- St.attr("transform", `translate(${-dr / 2 - pr},${Sr ? yr.height / 2 + Pr / 2 - fr / 2 - mr : -yr.height / 2 - Pr / 2 - fr / 2 - mr})`), St.attr("style", `color: ${Ar.get("stroke") ?? Tr};`);
2588
- }
2589
- return xr.attr("transform", `translate(${-yr.width / 2 - (yr.x - (yr.left ?? 0))},${Sr ? -zr / 2 : zr / 2 - yr.height})`), Vr.attr("transform", `translate(0,${Sr ? yr.height / 2 + Pr / 2 : -yr.height / 2 - Pr / 2})`), updateNodeBounds(lr, Hr), lr.intersect = function(St) {
2590
- if (log.info("iconSquare intersect", lr, St), !lr.label) return intersect_default.rect(lr, St);
2591
- let ur = lr.x ?? 0, dr = lr.y ?? 0, pr = lr.height ?? 0, mr = [];
2592
- return mr = Sr ? [
2593
- {
2594
- x: ur - yr.width / 2,
2595
- y: dr - pr / 2
2596
- },
2597
- {
2598
- x: ur + yr.width / 2,
2599
- y: dr - pr / 2
2600
- },
2601
- {
2602
- x: ur + yr.width / 2,
2603
- y: dr - pr / 2 + yr.height + Pr
2604
- },
2605
- {
2606
- x: ur + wr / 2,
2607
- y: dr - pr / 2 + yr.height + Pr
2608
- },
2609
- {
2610
- x: ur + wr / 2,
2611
- y: dr + pr / 2
2612
- },
2613
- {
2614
- x: ur - wr / 2,
2615
- y: dr + pr / 2
2616
- },
2617
- {
2618
- x: ur - wr / 2,
2619
- y: dr - pr / 2 + yr.height + Pr
2620
- },
2621
- {
2622
- x: ur - yr.width / 2,
2623
- y: dr - pr / 2 + yr.height + Pr
2624
- }
2625
- ] : [
2626
- {
2627
- x: ur - wr / 2,
2628
- y: dr - pr / 2
2629
- },
2630
- {
2631
- x: ur + wr / 2,
2632
- y: dr - pr / 2
2633
- },
2634
- {
2635
- x: ur + wr / 2,
2636
- y: dr - pr / 2 + Cr
2637
- },
2638
- {
2639
- x: ur + yr.width / 2,
2640
- y: dr - pr / 2 + Cr
2641
- },
2642
- {
2643
- x: ur + yr.width / 2 / 2,
2644
- y: dr + pr / 2
2645
- },
2646
- {
2647
- x: ur - yr.width / 2,
2648
- y: dr + pr / 2
2649
- },
2650
- {
2651
- x: ur - yr.width / 2,
2652
- y: dr - pr / 2 + Cr
2653
- },
2654
- {
2655
- x: ur - wr / 2,
2656
- y: dr - pr / 2 + Cr
2657
- }
2658
- ], intersect_default.polygon(lr, mr, St);
2659
- }, vr;
2660
- }
2661
- __name(iconRounded, "iconRounded");
2662
- async function iconSquare(St, lr, { config: { themeVariables: ur, flowchart: dr } }) {
2663
- let { labelStyles: pr } = styles2String(lr);
2664
- lr.labelStyle = pr;
2665
- let mr = lr.assetHeight ?? 48, hr = lr.assetWidth ?? 48, gr = Math.max(mr, hr), _r = dr?.wrappingWidth;
2666
- lr.width = Math.max(gr, _r ?? 0);
2667
- let { shapeSvg: vr, bbox: yr, halfPadding: br, label: xr } = await labelHelper(St, lr, "icon-shape default"), Sr = lr.pos === "t", Cr = gr + br * 2, wr = gr + br * 2, { nodeBorder: Tr, mainBkg: Dr } = ur, { stylesMap: Ar } = compileStyles(lr), Mr = -wr / 2, Nr = -Cr / 2, Pr = lr.label ? 8 : 0, Fr = at.svg(vr), Ir = userNodeOverrides(lr, {});
2668
- lr.look !== "handDrawn" && (Ir.roughness = 0, Ir.fillStyle = "solid"), Ir.stroke = Ar.get("fill") ?? Dr;
2669
- let Lr = Fr.path(createRoundedRectPathD(Mr, Nr, wr, Cr, .1), Ir), Rr = Math.max(wr, yr.width), zr = Cr + yr.height + Pr, Br = Fr.rectangle(-Rr / 2, -zr / 2, Rr, zr, {
2670
- ...Ir,
2671
- fill: "transparent",
2672
- stroke: "none"
2673
- }), Vr = vr.insert(() => Lr, ":first-child"), Hr = vr.insert(() => Br);
2674
- if (lr.icon) {
2675
- let St = vr.append("g");
2676
- St.html(`<g>${await getIconSVG(lr.icon, {
2677
- height: gr,
2678
- width: gr,
2679
- fallbackPrefix: ""
2680
- })}</g>`);
2681
- let ur = St.node().getBBox(), dr = ur.width, fr = ur.height, pr = ur.x, mr = ur.y;
2682
- St.attr("transform", `translate(${-dr / 2 - pr},${Sr ? yr.height / 2 + Pr / 2 - fr / 2 - mr : -yr.height / 2 - Pr / 2 - fr / 2 - mr})`), St.attr("style", `color: ${Ar.get("stroke") ?? Tr};`);
2683
- }
2684
- return xr.attr("transform", `translate(${-yr.width / 2 - (yr.x - (yr.left ?? 0))},${Sr ? -zr / 2 : zr / 2 - yr.height})`), Vr.attr("transform", `translate(0,${Sr ? yr.height / 2 + Pr / 2 : -yr.height / 2 - Pr / 2})`), updateNodeBounds(lr, Hr), lr.intersect = function(St) {
2685
- if (log.info("iconSquare intersect", lr, St), !lr.label) return intersect_default.rect(lr, St);
2686
- let ur = lr.x ?? 0, dr = lr.y ?? 0, pr = lr.height ?? 0, mr = [];
2687
- return mr = Sr ? [
2688
- {
2689
- x: ur - yr.width / 2,
2690
- y: dr - pr / 2
2691
- },
2692
- {
2693
- x: ur + yr.width / 2,
2694
- y: dr - pr / 2
2695
- },
2696
- {
2697
- x: ur + yr.width / 2,
2698
- y: dr - pr / 2 + yr.height + Pr
2699
- },
2700
- {
2701
- x: ur + wr / 2,
2702
- y: dr - pr / 2 + yr.height + Pr
2703
- },
2704
- {
2705
- x: ur + wr / 2,
2706
- y: dr + pr / 2
2707
- },
2708
- {
2709
- x: ur - wr / 2,
2710
- y: dr + pr / 2
2711
- },
2712
- {
2713
- x: ur - wr / 2,
2714
- y: dr - pr / 2 + yr.height + Pr
2715
- },
2716
- {
2717
- x: ur - yr.width / 2,
2718
- y: dr - pr / 2 + yr.height + Pr
2719
- }
2720
- ] : [
2721
- {
2722
- x: ur - wr / 2,
2723
- y: dr - pr / 2
2724
- },
2725
- {
2726
- x: ur + wr / 2,
2727
- y: dr - pr / 2
2728
- },
2729
- {
2730
- x: ur + wr / 2,
2731
- y: dr - pr / 2 + Cr
2732
- },
2733
- {
2734
- x: ur + yr.width / 2,
2735
- y: dr - pr / 2 + Cr
2736
- },
2737
- {
2738
- x: ur + yr.width / 2 / 2,
2739
- y: dr + pr / 2
2740
- },
2741
- {
2742
- x: ur - yr.width / 2,
2743
- y: dr + pr / 2
2744
- },
2745
- {
2746
- x: ur - yr.width / 2,
2747
- y: dr - pr / 2 + Cr
2748
- },
2749
- {
2750
- x: ur - wr / 2,
2751
- y: dr - pr / 2 + Cr
2752
- }
2753
- ], intersect_default.polygon(lr, mr, St);
2754
- }, vr;
2755
- }
2756
- __name(iconSquare, "iconSquare");
2757
- async function imageSquare(St, lr, { config: { flowchart: ur } }) {
2758
- let dr = new Image();
2759
- dr.src = lr?.img ?? "", await dr.decode();
2760
- let pr = Number(dr.naturalWidth.toString().replace("px", "")), mr = Number(dr.naturalHeight.toString().replace("px", ""));
2761
- lr.imageAspectRatio = pr / mr;
2762
- let { labelStyles: hr } = styles2String(lr);
2763
- lr.labelStyle = hr;
2764
- let gr = ur?.wrappingWidth;
2765
- lr.defaultWidth = ur?.wrappingWidth;
2766
- let _r = Math.max(lr.label ? gr ?? 0 : 0, lr?.assetWidth ?? pr), vr = lr.constraint === "on" && lr?.assetHeight ? lr.assetHeight * lr.imageAspectRatio : _r, yr = lr.constraint === "on" ? vr / lr.imageAspectRatio : lr?.assetHeight ?? mr;
2767
- lr.width = Math.max(vr, gr ?? 0);
2768
- let { shapeSvg: br, bbox: xr, label: Sr } = await labelHelper(St, lr, "image-shape default"), Cr = lr.pos === "t", wr = -vr / 2, Tr = -yr / 2, Er = lr.label ? 8 : 0, Dr = at.svg(br), Ar = userNodeOverrides(lr, {});
2769
- lr.look !== "handDrawn" && (Ar.roughness = 0, Ar.fillStyle = "solid");
2770
- let jr = Dr.rectangle(wr, Tr, vr, yr, Ar), Mr = Math.max(vr, xr.width), Nr = yr + xr.height + Er, Pr = Dr.rectangle(-Mr / 2, -Nr / 2, Mr, Nr, {
2771
- ...Ar,
2772
- fill: "none",
2773
- stroke: "none"
2774
- }), Fr = br.insert(() => jr, ":first-child"), Ir = br.insert(() => Pr);
2775
- if (lr.img) {
2776
- let St = br.append("image");
2777
- St.attr("href", lr.img), St.attr("width", vr), St.attr("height", yr), St.attr("preserveAspectRatio", "none"), St.attr("transform", `translate(${-vr / 2},${Cr ? Nr / 2 - yr : -Nr / 2})`);
2778
- }
2779
- return Sr.attr("transform", `translate(${-xr.width / 2 - (xr.x - (xr.left ?? 0))},${Cr ? -yr / 2 - xr.height / 2 - Er / 2 : yr / 2 - xr.height / 2 + Er / 2})`), Fr.attr("transform", `translate(0,${Cr ? xr.height / 2 + Er / 2 : -xr.height / 2 - Er / 2})`), updateNodeBounds(lr, Ir), lr.intersect = function(St) {
2780
- if (log.info("iconSquare intersect", lr, St), !lr.label) return intersect_default.rect(lr, St);
2781
- let ur = lr.x ?? 0, dr = lr.y ?? 0, pr = lr.height ?? 0, mr = [];
2782
- return mr = Cr ? [
2783
- {
2784
- x: ur - xr.width / 2,
2785
- y: dr - pr / 2
2786
- },
2787
- {
2788
- x: ur + xr.width / 2,
2789
- y: dr - pr / 2
2790
- },
2791
- {
2792
- x: ur + xr.width / 2,
2793
- y: dr - pr / 2 + xr.height + Er
2794
- },
2795
- {
2796
- x: ur + vr / 2,
2797
- y: dr - pr / 2 + xr.height + Er
2798
- },
2799
- {
2800
- x: ur + vr / 2,
2801
- y: dr + pr / 2
2802
- },
2803
- {
2804
- x: ur - vr / 2,
2805
- y: dr + pr / 2
2806
- },
2807
- {
2808
- x: ur - vr / 2,
2809
- y: dr - pr / 2 + xr.height + Er
2810
- },
2811
- {
2812
- x: ur - xr.width / 2,
2813
- y: dr - pr / 2 + xr.height + Er
2814
- }
2815
- ] : [
2816
- {
2817
- x: ur - vr / 2,
2818
- y: dr - pr / 2
2819
- },
2820
- {
2821
- x: ur + vr / 2,
2822
- y: dr - pr / 2
2823
- },
2824
- {
2825
- x: ur + vr / 2,
2826
- y: dr - pr / 2 + yr
2827
- },
2828
- {
2829
- x: ur + xr.width / 2,
2830
- y: dr - pr / 2 + yr
2831
- },
2832
- {
2833
- x: ur + xr.width / 2 / 2,
2834
- y: dr + pr / 2
2835
- },
2836
- {
2837
- x: ur - xr.width / 2,
2838
- y: dr + pr / 2
2839
- },
2840
- {
2841
- x: ur - xr.width / 2,
2842
- y: dr - pr / 2 + yr
2843
- },
2844
- {
2845
- x: ur - vr / 2,
2846
- y: dr - pr / 2 + yr
2847
- }
2848
- ], intersect_default.polygon(lr, mr, St);
2849
- }, br;
2850
- }
2851
- __name(imageSquare, "imageSquare");
2852
- async function inv_trapezoid(St, lr) {
2853
- let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
2854
- lr.labelStyle = ur;
2855
- let { shapeSvg: fr, bbox: pr } = await labelHelper(St, lr, getNodeClasses(lr)), mr = Math.max(pr.width + (lr.padding ?? 0) * 2, lr?.width ?? 0), hr = Math.max(pr.height + (lr.padding ?? 0) * 2, lr?.height ?? 0), gr = [
2856
- {
2857
- x: 0,
2858
- y: 0
2859
- },
2860
- {
2861
- x: mr,
2862
- y: 0
2863
- },
2864
- {
2865
- x: mr + 3 * hr / 6,
2866
- y: -hr
2867
- },
2868
- {
2869
- x: -3 * hr / 6,
2870
- y: -hr
2871
- }
2872
- ], _r, { cssStyles: vr } = lr;
2873
- if (lr.look === "handDrawn") {
2874
- let St = at.svg(fr), ur = userNodeOverrides(lr, {}), dr = createPathFromPoints(gr), pr = St.path(dr, ur);
2875
- _r = fr.insert(() => pr, ":first-child").attr("transform", `translate(${-mr / 2}, ${hr / 2})`), vr && _r.attr("style", vr);
2876
- } else _r = insertPolygonShape(fr, mr, hr, gr);
2877
- return dr && _r.attr("style", dr), lr.width = mr, lr.height = hr, updateNodeBounds(lr, _r), lr.intersect = function(St) {
2878
- return intersect_default.polygon(lr, gr, St);
2879
- }, fr;
2880
- }
2881
- __name(inv_trapezoid, "inv_trapezoid");
2882
- async function drawRect(St, lr, ur) {
2883
- let { labelStyles: fr, nodeStyles: pr } = styles2String(lr);
2884
- lr.labelStyle = fr;
2885
- let { shapeSvg: mr, bbox: hr } = await labelHelper(St, lr, getNodeClasses(lr)), gr = Math.max(hr.width + ur.labelPaddingX * 2, lr?.width || 0), _r = Math.max(hr.height + ur.labelPaddingY * 2, lr?.height || 0), vr = -gr / 2, yr = -_r / 2, br, { rx: xr, ry: Sr } = lr, { cssStyles: Cr } = lr;
2886
- if (ur?.rx && ur.ry && (xr = ur.rx, Sr = ur.ry), lr.look === "handDrawn") {
2887
- let St = at.svg(mr), ur = userNodeOverrides(lr, {}), fr = xr || Sr ? St.path(createRoundedRectPathD(vr, yr, gr, _r, xr || 0), ur) : St.rectangle(vr, yr, gr, _r, ur);
2888
- br = mr.insert(() => fr, ":first-child"), br.attr("class", "basic label-container").attr("style", handleUndefinedAttr(Cr));
2889
- } else br = mr.insert("rect", ":first-child"), br.attr("class", "basic label-container").attr("style", pr).attr("rx", handleUndefinedAttr(xr)).attr("ry", handleUndefinedAttr(Sr)).attr("x", vr).attr("y", yr).attr("width", gr).attr("height", _r);
2890
- return updateNodeBounds(lr, br), lr.calcIntersect = function(St, lr) {
2891
- return intersect_default.rect(St, lr);
2892
- }, lr.intersect = function(St) {
2893
- return intersect_default.rect(lr, St);
2894
- }, mr;
2895
- }
2896
- __name(drawRect, "drawRect");
2897
- async function labelRect(St, lr) {
2898
- let { shapeSvg: ur, bbox: dr, label: fr } = await labelHelper(St, lr, "label"), pr = ur.insert("rect", ":first-child");
2899
- return pr.attr("width", .1).attr("height", .1), ur.attr("class", "label edgeLabel"), fr.attr("transform", `translate(${-(dr.width / 2) - (dr.x - (dr.left ?? 0))}, ${-(dr.height / 2) - (dr.y - (dr.top ?? 0))})`), updateNodeBounds(lr, pr), lr.intersect = function(St) {
2900
- return intersect_default.rect(lr, St);
2901
- }, ur;
2902
- }
2903
- __name(labelRect, "labelRect");
2904
- async function lean_left(St, lr) {
2905
- let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
2906
- lr.labelStyle = ur;
2907
- let { shapeSvg: fr, bbox: pr } = await labelHelper(St, lr, getNodeClasses(lr)), mr = Math.max(pr.width + (lr.padding ?? 0), lr?.width ?? 0), hr = Math.max(pr.height + (lr.padding ?? 0), lr?.height ?? 0), gr = [
2908
- {
2909
- x: 0,
2910
- y: 0
2911
- },
2912
- {
2913
- x: mr + 3 * hr / 6,
2914
- y: 0
2915
- },
2916
- {
2917
- x: mr,
2918
- y: -hr
2919
- },
2920
- {
2921
- x: -(3 * hr) / 6,
2922
- y: -hr
2923
- }
2924
- ], _r, { cssStyles: vr } = lr;
2925
- if (lr.look === "handDrawn") {
2926
- let St = at.svg(fr), ur = userNodeOverrides(lr, {}), dr = createPathFromPoints(gr), pr = St.path(dr, ur);
2927
- _r = fr.insert(() => pr, ":first-child").attr("transform", `translate(${-mr / 2}, ${hr / 2})`), vr && _r.attr("style", vr);
2928
- } else _r = insertPolygonShape(fr, mr, hr, gr);
2929
- return dr && _r.attr("style", dr), lr.width = mr, lr.height = hr, updateNodeBounds(lr, _r), lr.intersect = function(St) {
2930
- return intersect_default.polygon(lr, gr, St);
2931
- }, fr;
2932
- }
2933
- __name(lean_left, "lean_left");
2934
- async function lean_right(St, lr) {
2935
- let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
2936
- lr.labelStyle = ur;
2937
- let { shapeSvg: fr, bbox: pr } = await labelHelper(St, lr, getNodeClasses(lr)), mr = Math.max(pr.width + (lr.padding ?? 0), lr?.width ?? 0), hr = Math.max(pr.height + (lr.padding ?? 0), lr?.height ?? 0), gr = [
2938
- {
2939
- x: -3 * hr / 6,
2940
- y: 0
2941
- },
2942
- {
2943
- x: mr,
2944
- y: 0
2945
- },
2946
- {
2947
- x: mr + 3 * hr / 6,
2948
- y: -hr
2949
- },
2950
- {
2951
- x: 0,
2952
- y: -hr
2953
- }
2954
- ], _r, { cssStyles: vr } = lr;
2955
- if (lr.look === "handDrawn") {
2956
- let St = at.svg(fr), ur = userNodeOverrides(lr, {}), dr = createPathFromPoints(gr), pr = St.path(dr, ur);
2957
- _r = fr.insert(() => pr, ":first-child").attr("transform", `translate(${-mr / 2}, ${hr / 2})`), vr && _r.attr("style", vr);
2958
- } else _r = insertPolygonShape(fr, mr, hr, gr);
2959
- return dr && _r.attr("style", dr), lr.width = mr, lr.height = hr, updateNodeBounds(lr, _r), lr.intersect = function(St) {
2960
- return intersect_default.polygon(lr, gr, St);
2961
- }, fr;
2962
- }
2963
- __name(lean_right, "lean_right");
2964
- function lightningBolt(St, lr) {
2965
- let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
2966
- lr.label = "", lr.labelStyle = ur;
2967
- let pr = St.insert("g").attr("class", getNodeClasses(lr)).attr("id", lr.domId ?? lr.id), { cssStyles: mr } = lr, hr = Math.max(35, lr?.width ?? 0), gr = Math.max(35, lr?.height ?? 0), _r = [
2968
- {
2969
- x: hr,
2970
- y: 0
2971
- },
2972
- {
2973
- x: 0,
2974
- y: gr + 7 / 2
2975
- },
2976
- {
2977
- x: hr - 14,
2978
- y: gr + 7 / 2
2979
- },
2980
- {
2981
- x: 0,
2982
- y: 2 * gr
2983
- },
2984
- {
2985
- x: hr,
2986
- y: gr - 7 / 2
2987
- },
2988
- {
2989
- x: 14,
2990
- y: gr - 7 / 2
2991
- }
2992
- ], vr = at.svg(pr), yr = userNodeOverrides(lr, {});
2993
- lr.look !== "handDrawn" && (yr.roughness = 0, yr.fillStyle = "solid");
2994
- let br = createPathFromPoints(_r), xr = vr.path(br, yr), Sr = pr.insert(() => xr, ":first-child");
2995
- return mr && lr.look !== "handDrawn" && Sr.selectAll("path").attr("style", mr), dr && lr.look !== "handDrawn" && Sr.selectAll("path").attr("style", dr), Sr.attr("transform", `translate(-${hr / 2},${-gr})`), updateNodeBounds(lr, Sr), lr.intersect = function(St) {
2996
- return log.info("lightningBolt intersect", lr, St), intersect_default.polygon(lr, _r, St);
2997
- }, pr;
2998
- }
2999
- __name(lightningBolt, "lightningBolt");
3000
- var createCylinderPathD2 = /* @__PURE__ */ __name((St, lr, ur, dr, fr, pr, mr) => [
3001
- `M${St},${lr + pr}`,
3002
- `a${fr},${pr} 0,0,0 ${ur},0`,
3003
- `a${fr},${pr} 0,0,0 ${-ur},0`,
3004
- `l0,${dr}`,
3005
- `a${fr},${pr} 0,0,0 ${ur},0`,
3006
- `l0,${-dr}`,
3007
- `M${St},${lr + pr + mr}`,
3008
- `a${fr},${pr} 0,0,0 ${ur},0`
3009
- ].join(" "), "createCylinderPathD"), createOuterCylinderPathD2 = /* @__PURE__ */ __name((St, lr, ur, dr, fr, pr, mr) => [
3010
- `M${St},${lr + pr}`,
3011
- `M${St + ur},${lr + pr}`,
3012
- `a${fr},${pr} 0,0,0 ${-ur},0`,
3013
- `l0,${dr}`,
3014
- `a${fr},${pr} 0,0,0 ${ur},0`,
3015
- `l0,${-dr}`,
3016
- `M${St},${lr + pr + mr}`,
3017
- `a${fr},${pr} 0,0,0 ${ur},0`
3018
- ].join(" "), "createOuterCylinderPathD"), createInnerCylinderPathD2 = /* @__PURE__ */ __name((St, lr, ur, dr, fr, pr) => [`M${St - ur / 2},${-dr / 2}`, `a${fr},${pr} 0,0,0 ${ur},0`].join(" "), "createInnerCylinderPathD");
3019
- async function linedCylinder(St, lr) {
3020
- let { labelStyles: ur, nodeStyles: fr } = styles2String(lr);
3021
- lr.labelStyle = ur;
3022
- let { shapeSvg: pr, bbox: mr, label: hr } = await labelHelper(St, lr, getNodeClasses(lr)), gr = Math.max(mr.width + (lr.padding ?? 0), lr.width ?? 0), _r = gr / 2, vr = _r / (2.5 + gr / 50), yr = Math.max(mr.height + vr + (lr.padding ?? 0), lr.height ?? 0), br = yr * .1, xr, { cssStyles: Sr } = lr;
3023
- if (lr.look === "handDrawn") {
3024
- let St = at.svg(pr), ur = createOuterCylinderPathD2(0, 0, gr, yr, _r, vr, br), dr = createInnerCylinderPathD2(0, vr, gr, yr, _r, vr), fr = userNodeOverrides(lr, {}), mr = St.path(ur, fr), hr = St.path(dr, fr);
3025
- pr.insert(() => hr, ":first-child").attr("class", "line"), xr = pr.insert(() => mr, ":first-child"), xr.attr("class", "basic label-container"), Sr && xr.attr("style", Sr);
3026
- } else {
3027
- let St = createCylinderPathD2(0, 0, gr, yr, _r, vr, br);
3028
- xr = pr.insert("path", ":first-child").attr("d", St).attr("class", "basic label-container").attr("style", handleUndefinedAttr(Sr)).attr("style", fr);
3029
- }
3030
- return xr.attr("label-offset-y", vr), xr.attr("transform", `translate(${-gr / 2}, ${-(yr / 2 + vr)})`), updateNodeBounds(lr, xr), hr.attr("transform", `translate(${-(mr.width / 2) - (mr.x - (mr.left ?? 0))}, ${-(mr.height / 2) + vr - (mr.y - (mr.top ?? 0))})`), lr.intersect = function(St) {
3031
- let ur = intersect_default.rect(lr, St), dr = ur.x - (lr.x ?? 0);
3032
- if (_r != 0 && (Math.abs(dr) < (lr.width ?? 0) / 2 || Math.abs(dr) == (lr.width ?? 0) / 2 && Math.abs(ur.y - (lr.y ?? 0)) > (lr.height ?? 0) / 2 - vr)) {
3033
- let fr = vr * vr * (1 - dr * dr / (_r * _r));
3034
- fr > 0 && (fr = Math.sqrt(fr)), fr = vr - fr, St.y - (lr.y ?? 0) > 0 && (fr = -fr), ur.y += fr;
3035
- }
3036
- return ur;
3037
- }, pr;
3038
- }
3039
- __name(linedCylinder, "linedCylinder");
3040
- async function linedWaveEdgedRect(St, lr) {
3041
- let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
3042
- lr.labelStyle = ur;
3043
- let { shapeSvg: fr, bbox: pr, label: mr } = await labelHelper(St, lr, getNodeClasses(lr)), hr = Math.max(pr.width + (lr.padding ?? 0) * 2, lr?.width ?? 0), gr = Math.max(pr.height + (lr.padding ?? 0) * 2, lr?.height ?? 0), _r = gr / 4, vr = gr + _r, { cssStyles: yr } = lr, br = at.svg(fr), xr = userNodeOverrides(lr, {});
3044
- lr.look !== "handDrawn" && (xr.roughness = 0, xr.fillStyle = "solid");
3045
- let Sr = [
3046
- {
3047
- x: -hr / 2 - hr / 2 * .1,
3048
- y: -vr / 2
3049
- },
3050
- {
3051
- x: -hr / 2 - hr / 2 * .1,
3052
- y: vr / 2
3053
- },
3054
- ...generateFullSineWavePoints(-hr / 2 - hr / 2 * .1, vr / 2, hr / 2 + hr / 2 * .1, vr / 2, _r, .8),
3055
- {
3056
- x: hr / 2 + hr / 2 * .1,
3057
- y: -vr / 2
3058
- },
3059
- {
3060
- x: -hr / 2 - hr / 2 * .1,
3061
- y: -vr / 2
3062
- },
3063
- {
3064
- x: -hr / 2,
3065
- y: -vr / 2
3066
- },
3067
- {
3068
- x: -hr / 2,
3069
- y: vr / 2 * 1.1
3070
- },
3071
- {
3072
- x: -hr / 2,
3073
- y: -vr / 2
3074
- }
3075
- ], Cr = br.polygon(Sr.map((St) => [St.x, St.y]), xr), wr = fr.insert(() => Cr, ":first-child");
3076
- return wr.attr("class", "basic label-container"), yr && lr.look !== "handDrawn" && wr.selectAll("path").attr("style", yr), dr && lr.look !== "handDrawn" && wr.selectAll("path").attr("style", dr), wr.attr("transform", `translate(0,${-_r / 2})`), mr.attr("transform", `translate(${-hr / 2 + (lr.padding ?? 0) + hr / 2 * .1 / 2 - (pr.x - (pr.left ?? 0))},${-gr / 2 + (lr.padding ?? 0) - _r / 2 - (pr.y - (pr.top ?? 0))})`), updateNodeBounds(lr, wr), lr.intersect = function(St) {
3077
- return intersect_default.polygon(lr, Sr, St);
3078
- }, fr;
3079
- }
3080
- __name(linedWaveEdgedRect, "linedWaveEdgedRect");
3081
- async function multiRect(St, lr) {
3082
- let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
3083
- lr.labelStyle = ur;
3084
- let { shapeSvg: fr, bbox: pr, label: mr } = await labelHelper(St, lr, getNodeClasses(lr)), hr = Math.max(pr.width + (lr.padding ?? 0) * 2, lr?.width ?? 0), gr = Math.max(pr.height + (lr.padding ?? 0) * 2, lr?.height ?? 0), _r = -hr / 2, vr = -gr / 2, { cssStyles: yr } = lr, br = at.svg(fr), xr = userNodeOverrides(lr, {}), Sr = [
3085
- {
3086
- x: _r - 5,
3087
- y: vr + 5
3088
- },
3089
- {
3090
- x: _r - 5,
3091
- y: vr + gr + 5
3092
- },
3093
- {
3094
- x: _r + hr - 5,
3095
- y: vr + gr + 5
3096
- },
3097
- {
3098
- x: _r + hr - 5,
3099
- y: vr + gr
3100
- },
3101
- {
3102
- x: _r + hr,
3103
- y: vr + gr
3104
- },
3105
- {
3106
- x: _r + hr,
3107
- y: vr + gr - 5
3108
- },
3109
- {
3110
- x: _r + hr + 5,
3111
- y: vr + gr - 5
3112
- },
3113
- {
3114
- x: _r + hr + 5,
3115
- y: vr - 5
3116
- },
3117
- {
3118
- x: _r + 5,
3119
- y: vr - 5
3120
- },
3121
- {
3122
- x: _r + 5,
3123
- y: vr
3124
- },
3125
- {
3126
- x: _r,
3127
- y: vr
3128
- },
3129
- {
3130
- x: _r,
3131
- y: vr + 5
3132
- }
3133
- ], Cr = [
3134
- {
3135
- x: _r,
3136
- y: vr + 5
3137
- },
3138
- {
3139
- x: _r + hr - 5,
3140
- y: vr + 5
3141
- },
3142
- {
3143
- x: _r + hr - 5,
3144
- y: vr + gr
3145
- },
3146
- {
3147
- x: _r + hr,
3148
- y: vr + gr
3149
- },
3150
- {
3151
- x: _r + hr,
3152
- y: vr
3153
- },
3154
- {
3155
- x: _r,
3156
- y: vr
3157
- }
3158
- ];
3159
- lr.look !== "handDrawn" && (xr.roughness = 0, xr.fillStyle = "solid");
3160
- let wr = createPathFromPoints(Sr), Tr = br.path(wr, xr), Er = createPathFromPoints(Cr), Dr = br.path(Er, {
3161
- ...xr,
3162
- fill: "none"
3163
- }), Ar = fr.insert(() => Dr, ":first-child");
3164
- return Ar.insert(() => Tr, ":first-child"), Ar.attr("class", "basic label-container"), yr && lr.look !== "handDrawn" && Ar.selectAll("path").attr("style", yr), dr && lr.look !== "handDrawn" && Ar.selectAll("path").attr("style", dr), mr.attr("transform", `translate(${-(pr.width / 2) - 5 - (pr.x - (pr.left ?? 0))}, ${-(pr.height / 2) + 5 - (pr.y - (pr.top ?? 0))})`), updateNodeBounds(lr, Ar), lr.intersect = function(St) {
3165
- return intersect_default.polygon(lr, Sr, St);
3166
- }, fr;
3167
- }
3168
- __name(multiRect, "multiRect");
3169
- async function multiWaveEdgedRectangle(St, lr) {
3170
- let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
3171
- lr.labelStyle = ur;
3172
- let { shapeSvg: fr, bbox: pr, label: mr } = await labelHelper(St, lr, getNodeClasses(lr)), hr = Math.max(pr.width + (lr.padding ?? 0) * 2, lr?.width ?? 0), gr = Math.max(pr.height + (lr.padding ?? 0) * 2, lr?.height ?? 0), _r = gr / 4, vr = gr + _r, yr = -hr / 2, br = -vr / 2, { cssStyles: xr } = lr, Sr = generateFullSineWavePoints(yr - 5, br + vr + 5, yr + hr - 5, br + vr + 5, _r, .8), Cr = Sr?.[Sr.length - 1], wr = [
3173
- {
3174
- x: yr - 5,
3175
- y: br + 5
3176
- },
3177
- {
3178
- x: yr - 5,
3179
- y: br + vr + 5
3180
- },
3181
- ...Sr,
3182
- {
3183
- x: yr + hr - 5,
3184
- y: Cr.y - 5
3185
- },
3186
- {
3187
- x: yr + hr,
3188
- y: Cr.y - 5
3189
- },
3190
- {
3191
- x: yr + hr,
3192
- y: Cr.y - 10
3193
- },
3194
- {
3195
- x: yr + hr + 5,
3196
- y: Cr.y - 10
3197
- },
3198
- {
3199
- x: yr + hr + 5,
3200
- y: br - 5
3201
- },
3202
- {
3203
- x: yr + 5,
3204
- y: br - 5
3205
- },
3206
- {
3207
- x: yr + 5,
3208
- y: br
3209
- },
3210
- {
3211
- x: yr,
3212
- y: br
3213
- },
3214
- {
3215
- x: yr,
3216
- y: br + 5
3217
- }
3218
- ], Tr = [
3219
- {
3220
- x: yr,
3221
- y: br + 5
3222
- },
3223
- {
3224
- x: yr + hr - 5,
3225
- y: br + 5
3226
- },
3227
- {
3228
- x: yr + hr - 5,
3229
- y: Cr.y - 5
3230
- },
3231
- {
3232
- x: yr + hr,
3233
- y: Cr.y - 5
3234
- },
3235
- {
3236
- x: yr + hr,
3237
- y: br
3238
- },
3239
- {
3240
- x: yr,
3241
- y: br
3242
- }
3243
- ], Er = at.svg(fr), Dr = userNodeOverrides(lr, {});
3244
- lr.look !== "handDrawn" && (Dr.roughness = 0, Dr.fillStyle = "solid");
3245
- let Ar = createPathFromPoints(wr), jr = Er.path(Ar, Dr), Mr = createPathFromPoints(Tr), Nr = Er.path(Mr, Dr), Pr = fr.insert(() => jr, ":first-child");
3246
- return Pr.insert(() => Nr), Pr.attr("class", "basic label-container"), xr && lr.look !== "handDrawn" && Pr.selectAll("path").attr("style", xr), dr && lr.look !== "handDrawn" && Pr.selectAll("path").attr("style", dr), Pr.attr("transform", `translate(0,${-_r / 2})`), mr.attr("transform", `translate(${-(pr.width / 2) - 5 - (pr.x - (pr.left ?? 0))}, ${-(pr.height / 2) + 5 - _r / 2 - (pr.y - (pr.top ?? 0))})`), updateNodeBounds(lr, Pr), lr.intersect = function(St) {
3247
- return intersect_default.polygon(lr, wr, St);
3248
- }, fr;
3249
- }
3250
- __name(multiWaveEdgedRectangle, "multiWaveEdgedRectangle");
3251
- async function note(St, lr, { config: { themeVariables: ur } }) {
3252
- let { labelStyles: dr, nodeStyles: fr } = styles2String(lr);
3253
- lr.labelStyle = dr, lr.useHtmlLabels || getConfig().flowchart?.htmlLabels !== !1 || (lr.centerLabel = !0);
3254
- let { shapeSvg: pr, bbox: mr, label: hr } = await labelHelper(St, lr, getNodeClasses(lr)), gr = Math.max(mr.width + (lr.padding ?? 0) * 2, lr?.width ?? 0), _r = Math.max(mr.height + (lr.padding ?? 0) * 2, lr?.height ?? 0), vr = -gr / 2, yr = -_r / 2, { cssStyles: br } = lr, xr = at.svg(pr), Sr = userNodeOverrides(lr, {
3255
- fill: ur.noteBkgColor,
3256
- stroke: ur.noteBorderColor
3257
- });
3258
- lr.look !== "handDrawn" && (Sr.roughness = 0, Sr.fillStyle = "solid");
3259
- let Cr = xr.rectangle(vr, yr, gr, _r, Sr), Tr = pr.insert(() => Cr, ":first-child");
3260
- return Tr.attr("class", "basic label-container"), br && lr.look !== "handDrawn" && Tr.selectAll("path").attr("style", br), fr && lr.look !== "handDrawn" && Tr.selectAll("path").attr("style", fr), hr.attr("transform", `translate(${-mr.width / 2 - (mr.x - (mr.left ?? 0))}, ${-(mr.height / 2) - (mr.y - (mr.top ?? 0))})`), updateNodeBounds(lr, Tr), lr.intersect = function(St) {
3261
- return intersect_default.rect(lr, St);
3262
- }, pr;
3263
- }
3264
- __name(note, "note");
3265
- var createDecisionBoxPathD = /* @__PURE__ */ __name((St, lr, ur) => [
3266
- `M${St + ur / 2},${lr}`,
3267
- `L${St + ur},${lr - ur / 2}`,
3268
- `L${St + ur / 2},${lr - ur}`,
3269
- `L${St},${lr - ur / 2}`,
3270
- "Z"
3271
- ].join(" "), "createDecisionBoxPathD");
3272
- async function question(St, lr) {
3273
- let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
3274
- lr.labelStyle = ur;
3275
- let { shapeSvg: fr, bbox: pr } = await labelHelper(St, lr, getNodeClasses(lr)), mr = pr.width + lr.padding + (pr.height + lr.padding), hr = .5, gr = [
3276
- {
3277
- x: mr / 2,
3278
- y: 0
3279
- },
3280
- {
3281
- x: mr,
3282
- y: -mr / 2
3283
- },
3284
- {
3285
- x: mr / 2,
3286
- y: -mr
3287
- },
3288
- {
3289
- x: 0,
3290
- y: -mr / 2
3291
- }
3292
- ], _r, { cssStyles: vr } = lr;
3293
- if (lr.look === "handDrawn") {
3294
- let St = at.svg(fr), ur = userNodeOverrides(lr, {}), dr = createDecisionBoxPathD(0, 0, mr), pr = St.path(dr, ur);
3295
- _r = fr.insert(() => pr, ":first-child").attr("transform", `translate(${-mr / 2 + hr}, ${mr / 2})`), vr && _r.attr("style", vr);
3296
- } else _r = insertPolygonShape(fr, mr, mr, gr), _r.attr("transform", `translate(${-mr / 2 + hr}, ${mr / 2})`);
3297
- return dr && _r.attr("style", dr), updateNodeBounds(lr, _r), lr.calcIntersect = function(St, lr) {
3298
- let ur = St.width, dr = [
3299
- {
3300
- x: ur / 2,
3301
- y: 0
3302
- },
3303
- {
3304
- x: ur,
3305
- y: -ur / 2
3306
- },
3307
- {
3308
- x: ur / 2,
3309
- y: -ur
3310
- },
3311
- {
3312
- x: 0,
3313
- y: -ur / 2
3314
- }
3315
- ], fr = intersect_default.polygon(St, dr, lr);
3316
- return {
3317
- x: fr.x - .5,
3318
- y: fr.y - .5
3319
- };
3320
- }, lr.intersect = function(St) {
3321
- return this.calcIntersect(lr, St);
3322
- }, fr;
3323
- }
3324
- __name(question, "question");
3325
- async function rect_left_inv_arrow(St, lr) {
3326
- let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
3327
- lr.labelStyle = ur;
3328
- let { shapeSvg: fr, bbox: pr, label: mr } = await labelHelper(St, lr, getNodeClasses(lr)), hr = Math.max(pr.width + (lr.padding ?? 0), lr?.width ?? 0), gr = Math.max(pr.height + (lr.padding ?? 0), lr?.height ?? 0), _r = -hr / 2, vr = -gr / 2, yr = vr / 2, br = [
3329
- {
3330
- x: _r + yr,
3331
- y: vr
3332
- },
3333
- {
3334
- x: _r,
3335
- y: 0
3336
- },
3337
- {
3338
- x: _r + yr,
3339
- y: -vr
3340
- },
3341
- {
3342
- x: -_r,
3343
- y: -vr
3344
- },
3345
- {
3346
- x: -_r,
3347
- y: vr
3348
- }
3349
- ], { cssStyles: xr } = lr, Sr = at.svg(fr), Cr = userNodeOverrides(lr, {});
3350
- lr.look !== "handDrawn" && (Cr.roughness = 0, Cr.fillStyle = "solid");
3351
- let wr = createPathFromPoints(br), Tr = Sr.path(wr, Cr), Er = fr.insert(() => Tr, ":first-child");
3352
- return Er.attr("class", "basic label-container"), xr && lr.look !== "handDrawn" && Er.selectAll("path").attr("style", xr), dr && lr.look !== "handDrawn" && Er.selectAll("path").attr("style", dr), Er.attr("transform", `translate(${-yr / 2},0)`), mr.attr("transform", `translate(${-yr / 2 - pr.width / 2 - (pr.x - (pr.left ?? 0))}, ${-(pr.height / 2) - (pr.y - (pr.top ?? 0))})`), updateNodeBounds(lr, Er), lr.intersect = function(St) {
3353
- return intersect_default.polygon(lr, br, St);
3354
- }, fr;
3355
- }
3356
- __name(rect_left_inv_arrow, "rect_left_inv_arrow");
3357
- async function rectWithTitle(St, lr) {
3358
- let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
3359
- lr.labelStyle = ur;
3360
- let pr;
3361
- pr = lr.cssClasses ? "node " + lr.cssClasses : "node default";
3362
- let hr = St.insert("g").attr("class", pr).attr("id", lr.domId || lr.id), gr = hr.insert("g"), _r = hr.insert("g").attr("class", "label").attr("style", dr), vr = lr.description, yr = lr.label, xr = _r.node().appendChild(await createLabel_default(yr, lr.labelStyle, !0, !0)), Cr = {
3363
- width: 0,
3364
- height: 0
3365
- };
3366
- if (evaluate(getConfig2()?.flowchart?.htmlLabels)) {
3367
- let St = xr.children[0], lr = select_default(xr);
3368
- Cr = St.getBoundingClientRect(), lr.attr("width", Cr.width), lr.attr("height", Cr.height);
3369
- }
3370
- log.info("Text 2", vr);
3371
- let wr = vr || [], Tr = xr.getBBox(), Er = _r.node().appendChild(await createLabel_default(wr.join ? wr.join("<br/>") : wr, lr.labelStyle, !0, !0)), Dr = Er.children[0], Ar = select_default(Er);
3372
- Cr = Dr.getBoundingClientRect(), Ar.attr("width", Cr.width), Ar.attr("height", Cr.height);
3373
- let jr = (lr.padding || 0) / 2;
3374
- select_default(Er).attr("transform", "translate( " + (Cr.width > Tr.width ? 0 : (Tr.width - Cr.width) / 2) + ", " + (Tr.height + jr + 5) + ")"), select_default(xr).attr("transform", "translate( " + (Cr.width < Tr.width ? 0 : -(Tr.width - Cr.width) / 2) + ", 0)"), Cr = _r.node().getBBox(), _r.attr("transform", "translate(" + -Cr.width / 2 + ", " + (-Cr.height / 2 - jr + 3) + ")");
3375
- let Mr = Cr.width + (lr.padding || 0), Nr = Cr.height + (lr.padding || 0), Pr = -Cr.width / 2 - jr, Fr = -Cr.height / 2 - jr, Ir, Lr;
3376
- if (lr.look === "handDrawn") {
3377
- let St = at.svg(hr), ur = userNodeOverrides(lr, {}), dr = St.path(createRoundedRectPathD(Pr, Fr, Mr, Nr, lr.rx || 0), ur), pr = St.line(-Cr.width / 2 - jr, -Cr.height / 2 - jr + Tr.height + jr, Cr.width / 2 + jr, -Cr.height / 2 - jr + Tr.height + jr, ur);
3378
- Lr = hr.insert(() => (log.debug("Rough node insert CXC", dr), pr), ":first-child"), Ir = hr.insert(() => (log.debug("Rough node insert CXC", dr), dr), ":first-child");
3379
- } else Ir = gr.insert("rect", ":first-child"), Lr = gr.insert("line"), Ir.attr("class", "outer title-state").attr("style", dr).attr("x", -Cr.width / 2 - jr).attr("y", -Cr.height / 2 - jr).attr("width", Cr.width + (lr.padding || 0)).attr("height", Cr.height + (lr.padding || 0)), Lr.attr("class", "divider").attr("x1", -Cr.width / 2 - jr).attr("x2", Cr.width / 2 + jr).attr("y1", -Cr.height / 2 - jr + Tr.height + jr).attr("y2", -Cr.height / 2 - jr + Tr.height + jr);
3380
- return updateNodeBounds(lr, Ir), lr.intersect = function(St) {
3381
- return intersect_default.rect(lr, St);
3382
- }, hr;
3383
- }
3384
- __name(rectWithTitle, "rectWithTitle");
3385
- function generateArcPoints2(St, lr, ur, dr, fr, pr, mr) {
3386
- let hr = (St + ur) / 2, gr = (lr + dr) / 2, _r = Math.atan2(dr - lr, ur - St), vr = (ur - St) / 2, yr = (dr - lr) / 2, br = vr / fr, xr = yr / pr, Sr = Math.sqrt(br ** 2 + xr ** 2);
3387
- if (Sr > 1) throw Error("The given radii are too small to create an arc between the points.");
3388
- let Cr = Math.sqrt(1 - Sr ** 2), wr = hr + Cr * pr * Math.sin(_r) * (mr ? -1 : 1), Tr = gr - Cr * fr * Math.cos(_r) * (mr ? -1 : 1), Er = Math.atan2((lr - Tr) / pr, (St - wr) / fr), Dr = Math.atan2((dr - Tr) / pr, (ur - wr) / fr) - Er;
3389
- mr && Dr < 0 && (Dr += 2 * Math.PI), !mr && Dr > 0 && (Dr -= 2 * Math.PI);
3390
- let Or = [];
3391
- for (let St = 0; St < 20; St++) {
3392
- let lr = Er + St / 19 * Dr, ur = wr + fr * Math.cos(lr), dr = Tr + pr * Math.sin(lr);
3393
- Or.push({
3394
- x: ur,
3395
- y: dr
3396
- });
3397
- }
3398
- return Or;
3399
- }
3400
- __name(generateArcPoints2, "generateArcPoints");
3401
- async function roundedRect(St, lr) {
3402
- let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
3403
- lr.labelStyle = ur;
3404
- let { shapeSvg: fr, bbox: pr } = await labelHelper(St, lr, getNodeClasses(lr)), mr = lr?.padding ?? 0, hr = lr?.padding ?? 0, gr = (lr?.width ? lr?.width : pr.width) + mr * 2, _r = (lr?.height ? lr?.height : pr.height) + hr * 2, vr = lr.radius || 5, yr = lr.taper || 5, { cssStyles: br } = lr, xr = at.svg(fr), Sr = userNodeOverrides(lr, {});
3405
- lr.stroke && (Sr.stroke = lr.stroke), lr.look !== "handDrawn" && (Sr.roughness = 0, Sr.fillStyle = "solid");
3406
- let Cr = [
3407
- {
3408
- x: -gr / 2 + yr,
3409
- y: -_r / 2
3410
- },
3411
- {
3412
- x: gr / 2 - yr,
3413
- y: -_r / 2
3414
- },
3415
- ...generateArcPoints2(gr / 2 - yr, -_r / 2, gr / 2, -_r / 2 + yr, vr, vr, !0),
3416
- {
3417
- x: gr / 2,
3418
- y: -_r / 2 + yr
3419
- },
3420
- {
3421
- x: gr / 2,
3422
- y: _r / 2 - yr
3423
- },
3424
- ...generateArcPoints2(gr / 2, _r / 2 - yr, gr / 2 - yr, _r / 2, vr, vr, !0),
3425
- {
3426
- x: gr / 2 - yr,
3427
- y: _r / 2
3428
- },
3429
- {
3430
- x: -gr / 2 + yr,
3431
- y: _r / 2
3432
- },
3433
- ...generateArcPoints2(-gr / 2 + yr, _r / 2, -gr / 2, _r / 2 - yr, vr, vr, !0),
3434
- {
3435
- x: -gr / 2,
3436
- y: _r / 2 - yr
3437
- },
3438
- {
3439
- x: -gr / 2,
3440
- y: -_r / 2 + yr
3441
- },
3442
- ...generateArcPoints2(-gr / 2, -_r / 2 + yr, -gr / 2 + yr, -_r / 2, vr, vr, !0)
3443
- ], wr = createPathFromPoints(Cr), Tr = xr.path(wr, Sr), Er = fr.insert(() => Tr, ":first-child");
3444
- return Er.attr("class", "basic label-container outer-path"), br && lr.look !== "handDrawn" && Er.selectChildren("path").attr("style", br), dr && lr.look !== "handDrawn" && Er.selectChildren("path").attr("style", dr), updateNodeBounds(lr, Er), lr.intersect = function(St) {
3445
- return intersect_default.polygon(lr, Cr, St);
3446
- }, fr;
3447
- }
3448
- __name(roundedRect, "roundedRect");
3449
- async function shadedProcess(St, lr) {
3450
- let { labelStyles: ur, nodeStyles: fr } = styles2String(lr);
3451
- lr.labelStyle = ur;
3452
- let { shapeSvg: pr, bbox: mr, label: hr } = await labelHelper(St, lr, getNodeClasses(lr)), gr = lr?.padding ?? 0, _r = Math.max(mr.width + (lr.padding ?? 0) * 2, lr?.width ?? 0), vr = Math.max(mr.height + (lr.padding ?? 0) * 2, lr?.height ?? 0), yr = -mr.width / 2 - gr, br = -mr.height / 2 - gr, { cssStyles: xr } = lr, Sr = at.svg(pr), Cr = userNodeOverrides(lr, {});
3453
- lr.look !== "handDrawn" && (Cr.roughness = 0, Cr.fillStyle = "solid");
3454
- let wr = [
3455
- {
3456
- x: yr,
3457
- y: br
3458
- },
3459
- {
3460
- x: yr + _r + 8,
3461
- y: br
3462
- },
3463
- {
3464
- x: yr + _r + 8,
3465
- y: br + vr
3466
- },
3467
- {
3468
- x: yr - 8,
3469
- y: br + vr
3470
- },
3471
- {
3472
- x: yr - 8,
3473
- y: br
3474
- },
3475
- {
3476
- x: yr,
3477
- y: br
3478
- },
3479
- {
3480
- x: yr,
3481
- y: br + vr
3482
- }
3483
- ], Tr = Sr.polygon(wr.map((St) => [St.x, St.y]), Cr), Er = pr.insert(() => Tr, ":first-child");
3484
- return Er.attr("class", "basic label-container").attr("style", handleUndefinedAttr(xr)), fr && lr.look !== "handDrawn" && Er.selectAll("path").attr("style", fr), xr && lr.look !== "handDrawn" && Er.selectAll("path").attr("style", fr), hr.attr("transform", `translate(${-_r / 2 + 4 + (lr.padding ?? 0) - (mr.x - (mr.left ?? 0))},${-vr / 2 + (lr.padding ?? 0) - (mr.y - (mr.top ?? 0))})`), updateNodeBounds(lr, Er), lr.intersect = function(St) {
3485
- return intersect_default.rect(lr, St);
3486
- }, pr;
3487
- }
3488
- __name(shadedProcess, "shadedProcess");
3489
- async function slopedRect(St, lr) {
3490
- let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
3491
- lr.labelStyle = ur;
3492
- let { shapeSvg: fr, bbox: pr, label: mr } = await labelHelper(St, lr, getNodeClasses(lr)), hr = Math.max(pr.width + (lr.padding ?? 0) * 2, lr?.width ?? 0), gr = Math.max(pr.height + (lr.padding ?? 0) * 2, lr?.height ?? 0), _r = -hr / 2, vr = -gr / 2, { cssStyles: yr } = lr, br = at.svg(fr), xr = userNodeOverrides(lr, {});
3493
- lr.look !== "handDrawn" && (xr.roughness = 0, xr.fillStyle = "solid");
3494
- let Sr = [
3495
- {
3496
- x: _r,
3497
- y: vr
3498
- },
3499
- {
3500
- x: _r,
3501
- y: vr + gr
3502
- },
3503
- {
3504
- x: _r + hr,
3505
- y: vr + gr
3506
- },
3507
- {
3508
- x: _r + hr,
3509
- y: vr - gr / 2
3510
- }
3511
- ], Cr = createPathFromPoints(Sr), wr = br.path(Cr, xr), Tr = fr.insert(() => wr, ":first-child");
3512
- return Tr.attr("class", "basic label-container"), yr && lr.look !== "handDrawn" && Tr.selectChildren("path").attr("style", yr), dr && lr.look !== "handDrawn" && Tr.selectChildren("path").attr("style", dr), Tr.attr("transform", `translate(0, ${gr / 4})`), mr.attr("transform", `translate(${-hr / 2 + (lr.padding ?? 0) - (pr.x - (pr.left ?? 0))}, ${-gr / 4 + (lr.padding ?? 0) - (pr.y - (pr.top ?? 0))})`), updateNodeBounds(lr, Tr), lr.intersect = function(St) {
3513
- return intersect_default.polygon(lr, Sr, St);
3514
- }, fr;
3515
- }
3516
- __name(slopedRect, "slopedRect");
3517
- async function squareRect2(St, lr) {
3518
- return drawRect(St, lr, {
3519
- rx: 0,
3520
- ry: 0,
3521
- classes: "",
3522
- labelPaddingX: lr.labelPaddingX ?? (lr?.padding || 0) * 2,
3523
- labelPaddingY: (lr?.padding || 0) * 1
3524
- });
3525
- }
3526
- __name(squareRect2, "squareRect");
3527
- async function stadium(St, lr) {
3528
- let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
3529
- lr.labelStyle = ur;
3530
- let { shapeSvg: fr, bbox: pr } = await labelHelper(St, lr, getNodeClasses(lr)), mr = pr.height + lr.padding, hr = pr.width + mr / 4 + lr.padding, gr = mr / 2, { cssStyles: _r } = lr, vr = at.svg(fr), yr = userNodeOverrides(lr, {});
3531
- lr.look !== "handDrawn" && (yr.roughness = 0, yr.fillStyle = "solid");
3532
- let br = [
3533
- {
3534
- x: -hr / 2 + gr,
3535
- y: -mr / 2
3536
- },
3537
- {
3538
- x: hr / 2 - gr,
3539
- y: -mr / 2
3540
- },
3541
- ...generateCirclePoints(-hr / 2 + gr, 0, gr, 50, 90, 270),
3542
- {
3543
- x: hr / 2 - gr,
3544
- y: mr / 2
3545
- },
3546
- ...generateCirclePoints(hr / 2 - gr, 0, gr, 50, 270, 450)
3547
- ], xr = createPathFromPoints(br), Sr = vr.path(xr, yr), Cr = fr.insert(() => Sr, ":first-child");
3548
- return Cr.attr("class", "basic label-container outer-path"), _r && lr.look !== "handDrawn" && Cr.selectChildren("path").attr("style", _r), dr && lr.look !== "handDrawn" && Cr.selectChildren("path").attr("style", dr), updateNodeBounds(lr, Cr), lr.intersect = function(St) {
3549
- return intersect_default.polygon(lr, br, St);
3550
- }, fr;
3551
- }
3552
- __name(stadium, "stadium");
3553
- async function state(St, lr) {
3554
- return drawRect(St, lr, {
3555
- rx: 5,
3556
- ry: 5,
3557
- classes: "flowchart-node"
3558
- });
3559
- }
3560
- __name(state, "state");
3561
- function stateEnd(St, lr, { config: { themeVariables: ur } }) {
3562
- let { labelStyles: dr, nodeStyles: fr } = styles2String(lr);
3563
- lr.labelStyle = dr;
3564
- let { cssStyles: pr } = lr, { lineColor: mr, stateBorder: hr, nodeBorder: gr } = ur, _r = St.insert("g").attr("class", "node default").attr("id", lr.domId || lr.id), vr = at.svg(_r), yr = userNodeOverrides(lr, {});
3565
- lr.look !== "handDrawn" && (yr.roughness = 0, yr.fillStyle = "solid");
3566
- let br = vr.circle(0, 0, 14, {
3567
- ...yr,
3568
- stroke: mr,
3569
- strokeWidth: 2
3570
- }), xr = hr ?? gr, Sr = vr.circle(0, 0, 5, {
3571
- ...yr,
3572
- fill: xr,
3573
- stroke: xr,
3574
- strokeWidth: 2,
3575
- fillStyle: "solid"
3576
- }), Cr = _r.insert(() => br, ":first-child");
3577
- return Cr.insert(() => Sr), pr && Cr.selectAll("path").attr("style", pr), fr && Cr.selectAll("path").attr("style", fr), updateNodeBounds(lr, Cr), lr.intersect = function(St) {
3578
- return intersect_default.circle(lr, 7, St);
3579
- }, _r;
3580
- }
3581
- __name(stateEnd, "stateEnd");
3582
- function stateStart(St, lr, { config: { themeVariables: ur } }) {
3583
- let { lineColor: dr } = ur, fr = St.insert("g").attr("class", "node default").attr("id", lr.domId || lr.id), pr;
3584
- if (lr.look === "handDrawn") {
3585
- let St = at.svg(fr).circle(0, 0, 14, solidStateFill(dr));
3586
- pr = fr.insert(() => St), pr.attr("class", "state-start").attr("r", 7).attr("width", 14).attr("height", 14);
3587
- } else pr = fr.insert("circle", ":first-child"), pr.attr("class", "state-start").attr("r", 7).attr("width", 14).attr("height", 14);
3588
- return updateNodeBounds(lr, pr), lr.intersect = function(St) {
3589
- return intersect_default.circle(lr, 7, St);
3590
- }, fr;
3591
- }
3592
- __name(stateStart, "stateStart");
3593
- async function subroutine(St, lr) {
3594
- let { labelStyles: ur, nodeStyles: fr } = styles2String(lr);
3595
- lr.labelStyle = ur;
3596
- let { shapeSvg: pr, bbox: mr } = await labelHelper(St, lr, getNodeClasses(lr)), hr = (lr?.padding || 0) / 2, gr = mr.width + lr.padding, _r = mr.height + lr.padding, vr = -mr.width / 2 - hr, yr = -mr.height / 2 - hr, br = [
3597
- {
3598
- x: 0,
3599
- y: 0
3600
- },
3601
- {
3602
- x: gr,
3603
- y: 0
3604
- },
3605
- {
3606
- x: gr,
3607
- y: -_r
3608
- },
3609
- {
3610
- x: 0,
3611
- y: -_r
3612
- },
3613
- {
3614
- x: 0,
3615
- y: 0
3616
- },
3617
- {
3618
- x: -8,
3619
- y: 0
3620
- },
3621
- {
3622
- x: gr + 8,
3623
- y: 0
3624
- },
3625
- {
3626
- x: gr + 8,
3627
- y: -_r
3628
- },
3629
- {
3630
- x: -8,
3631
- y: -_r
3632
- },
3633
- {
3634
- x: -8,
3635
- y: 0
3636
- }
3637
- ];
3638
- if (lr.look === "handDrawn") {
3639
- let St = at.svg(pr), ur = userNodeOverrides(lr, {}), fr = St.rectangle(vr - 8, yr, gr + 16, _r, ur), mr = St.line(vr, yr, vr, yr + _r, ur), hr = St.line(vr + gr, yr, vr + gr, yr + _r, ur);
3640
- pr.insert(() => mr, ":first-child"), pr.insert(() => hr, ":first-child");
3641
- let br = pr.insert(() => fr, ":first-child"), { cssStyles: xr } = lr;
3642
- br.attr("class", "basic label-container").attr("style", handleUndefinedAttr(xr)), updateNodeBounds(lr, br);
3643
- } else {
3644
- let St = insertPolygonShape(pr, gr, _r, br);
3645
- fr && St.attr("style", fr), updateNodeBounds(lr, St);
3646
- }
3647
- return lr.intersect = function(St) {
3648
- return intersect_default.polygon(lr, br, St);
3649
- }, pr;
3650
- }
3651
- __name(subroutine, "subroutine");
3652
- async function taggedRect(St, lr) {
3653
- let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
3654
- lr.labelStyle = ur;
3655
- let { shapeSvg: fr, bbox: pr } = await labelHelper(St, lr, getNodeClasses(lr)), mr = Math.max(pr.width + (lr.padding ?? 0) * 2, lr?.width ?? 0), hr = Math.max(pr.height + (lr.padding ?? 0) * 2, lr?.height ?? 0), gr = -mr / 2, _r = -hr / 2, vr = .2 * hr, yr = .2 * hr, { cssStyles: br } = lr, xr = at.svg(fr), Sr = userNodeOverrides(lr, {}), Cr = [
3656
- {
3657
- x: gr - vr / 2,
3658
- y: _r
3659
- },
3660
- {
3661
- x: gr + mr + vr / 2,
3662
- y: _r
3663
- },
3664
- {
3665
- x: gr + mr + vr / 2,
3666
- y: _r + hr
3667
- },
3668
- {
3669
- x: gr - vr / 2,
3670
- y: _r + hr
3671
- }
3672
- ], wr = [
3673
- {
3674
- x: gr + mr - vr / 2,
3675
- y: _r + hr
3676
- },
3677
- {
3678
- x: gr + mr + vr / 2,
3679
- y: _r + hr
3680
- },
3681
- {
3682
- x: gr + mr + vr / 2,
3683
- y: _r + hr - yr
3684
- }
3685
- ];
3686
- lr.look !== "handDrawn" && (Sr.roughness = 0, Sr.fillStyle = "solid");
3687
- let Tr = createPathFromPoints(Cr), Er = xr.path(Tr, Sr), Dr = createPathFromPoints(wr), Ar = xr.path(Dr, {
3688
- ...Sr,
3689
- fillStyle: "solid"
3690
- }), jr = fr.insert(() => Ar, ":first-child");
3691
- return jr.insert(() => Er, ":first-child"), jr.attr("class", "basic label-container"), br && lr.look !== "handDrawn" && jr.selectAll("path").attr("style", br), dr && lr.look !== "handDrawn" && jr.selectAll("path").attr("style", dr), updateNodeBounds(lr, jr), lr.intersect = function(St) {
3692
- return intersect_default.polygon(lr, Cr, St);
3693
- }, fr;
3694
- }
3695
- __name(taggedRect, "taggedRect");
3696
- async function taggedWaveEdgedRectangle(St, lr) {
3697
- let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
3698
- lr.labelStyle = ur;
3699
- let { shapeSvg: fr, bbox: pr, label: mr } = await labelHelper(St, lr, getNodeClasses(lr)), hr = Math.max(pr.width + (lr.padding ?? 0) * 2, lr?.width ?? 0), gr = Math.max(pr.height + (lr.padding ?? 0) * 2, lr?.height ?? 0), _r = gr / 4, vr = .2 * hr, yr = .2 * gr, br = gr + _r, { cssStyles: xr } = lr, Sr = at.svg(fr), Cr = userNodeOverrides(lr, {});
3700
- lr.look !== "handDrawn" && (Cr.roughness = 0, Cr.fillStyle = "solid");
3701
- let wr = [
3702
- {
3703
- x: -hr / 2 - hr / 2 * .1,
3704
- y: br / 2
3705
- },
3706
- ...generateFullSineWavePoints(-hr / 2 - hr / 2 * .1, br / 2, hr / 2 + hr / 2 * .1, br / 2, _r, .8),
3707
- {
3708
- x: hr / 2 + hr / 2 * .1,
3709
- y: -br / 2
3710
- },
3711
- {
3712
- x: -hr / 2 - hr / 2 * .1,
3713
- y: -br / 2
3714
- }
3715
- ], Tr = -hr / 2 + hr / 2 * .1, Er = -br / 2 - yr * .4, Dr = [
3716
- {
3717
- x: Tr + hr - vr,
3718
- y: (Er + gr) * 1.4
3719
- },
3720
- {
3721
- x: Tr + hr,
3722
- y: Er + gr - yr
3723
- },
3724
- {
3725
- x: Tr + hr,
3726
- y: (Er + gr) * .9
3727
- },
3728
- ...generateFullSineWavePoints(Tr + hr, (Er + gr) * 1.3, Tr + hr - vr, (Er + gr) * 1.5, -gr * .03, .5)
3729
- ], Ar = createPathFromPoints(wr), jr = Sr.path(Ar, Cr), Mr = createPathFromPoints(Dr), Nr = Sr.path(Mr, {
3730
- ...Cr,
3731
- fillStyle: "solid"
3732
- }), Pr = fr.insert(() => Nr, ":first-child");
3733
- return Pr.insert(() => jr, ":first-child"), Pr.attr("class", "basic label-container"), xr && lr.look !== "handDrawn" && Pr.selectAll("path").attr("style", xr), dr && lr.look !== "handDrawn" && Pr.selectAll("path").attr("style", dr), Pr.attr("transform", `translate(0,${-_r / 2})`), mr.attr("transform", `translate(${-hr / 2 + (lr.padding ?? 0) - (pr.x - (pr.left ?? 0))},${-gr / 2 + (lr.padding ?? 0) - _r / 2 - (pr.y - (pr.top ?? 0))})`), updateNodeBounds(lr, Pr), lr.intersect = function(St) {
3734
- return intersect_default.polygon(lr, wr, St);
3735
- }, fr;
3736
- }
3737
- __name(taggedWaveEdgedRectangle, "taggedWaveEdgedRectangle");
3738
- async function text(St, lr) {
3739
- let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
3740
- lr.labelStyle = ur;
3741
- let { shapeSvg: fr, bbox: pr } = await labelHelper(St, lr, getNodeClasses(lr)), mr = Math.max(pr.width + lr.padding, lr?.width || 0), hr = Math.max(pr.height + lr.padding, lr?.height || 0), gr = -mr / 2, _r = -hr / 2, vr = fr.insert("rect", ":first-child");
3742
- return vr.attr("class", "text").attr("style", dr).attr("rx", 0).attr("ry", 0).attr("x", gr).attr("y", _r).attr("width", mr).attr("height", hr), updateNodeBounds(lr, vr), lr.intersect = function(St) {
3743
- return intersect_default.rect(lr, St);
3744
- }, fr;
3745
- }
3746
- __name(text, "text");
3747
- var createCylinderPathD3 = /* @__PURE__ */ __name((St, lr, ur, dr, fr, pr) => `M${St},${lr}
3748
- a${fr},${pr} 0,0,1 0,${-dr}
3749
- l${ur},0
3750
- a${fr},${pr} 0,0,1 0,${dr}
3751
- M${ur},${-dr}
3752
- a${fr},${pr} 0,0,0 0,${dr}
3753
- l${-ur},0`, "createCylinderPathD"), createOuterCylinderPathD3 = /* @__PURE__ */ __name((St, lr, ur, dr, fr, pr) => [
3754
- `M${St},${lr}`,
3755
- `M${St + ur},${lr}`,
3756
- `a${fr},${pr} 0,0,0 0,${-dr}`,
3757
- `l${-ur},0`,
3758
- `a${fr},${pr} 0,0,0 0,${dr}`,
3759
- `l${ur},0`
3760
- ].join(" "), "createOuterCylinderPathD"), createInnerCylinderPathD3 = /* @__PURE__ */ __name((St, lr, ur, dr, fr, pr) => [`M${St + ur / 2},${-dr / 2}`, `a${fr},${pr} 0,0,0 0,${dr}`].join(" "), "createInnerCylinderPathD");
3761
- async function tiltedCylinder(St, lr) {
3762
- let { labelStyles: ur, nodeStyles: fr } = styles2String(lr);
3763
- lr.labelStyle = ur;
3764
- let { shapeSvg: pr, bbox: mr, label: hr, halfPadding: gr } = await labelHelper(St, lr, getNodeClasses(lr)), _r = lr.look === "neo" ? gr * 2 : gr, vr = mr.height + _r, yr = vr / 2, br = yr / (2.5 + vr / 50), xr = mr.width + br + _r, { cssStyles: Sr } = lr, Cr;
3765
- if (lr.look === "handDrawn") {
3766
- let St = at.svg(pr), ur = createOuterCylinderPathD3(0, 0, xr, vr, br, yr), dr = createInnerCylinderPathD3(0, 0, xr, vr, br, yr), fr = St.path(ur, userNodeOverrides(lr, {})), mr = St.path(dr, userNodeOverrides(lr, { fill: "none" }));
3767
- Cr = pr.insert(() => mr, ":first-child"), Cr = pr.insert(() => fr, ":first-child"), Cr.attr("class", "basic label-container"), Sr && Cr.attr("style", Sr);
3768
- } else {
3769
- let St = createCylinderPathD3(0, 0, xr, vr, br, yr);
3770
- Cr = pr.insert("path", ":first-child").attr("d", St).attr("class", "basic label-container").attr("style", handleUndefinedAttr(Sr)).attr("style", fr), Cr.attr("class", "basic label-container"), Sr && Cr.selectAll("path").attr("style", Sr), fr && Cr.selectAll("path").attr("style", fr);
3771
- }
3772
- return Cr.attr("label-offset-x", br), Cr.attr("transform", `translate(${-xr / 2}, ${vr / 2} )`), hr.attr("transform", `translate(${-(mr.width / 2) - br - (mr.x - (mr.left ?? 0))}, ${-(mr.height / 2) - (mr.y - (mr.top ?? 0))})`), updateNodeBounds(lr, Cr), lr.intersect = function(St) {
3773
- let ur = intersect_default.rect(lr, St), dr = ur.y - (lr.y ?? 0);
3774
- if (yr != 0 && (Math.abs(dr) < (lr.height ?? 0) / 2 || Math.abs(dr) == (lr.height ?? 0) / 2 && Math.abs(ur.x - (lr.x ?? 0)) > (lr.width ?? 0) / 2 - br)) {
3775
- let fr = br * br * (1 - dr * dr / (yr * yr));
3776
- fr != 0 && (fr = Math.sqrt(Math.abs(fr))), fr = br - fr, St.x - (lr.x ?? 0) > 0 && (fr = -fr), ur.x += fr;
3777
- }
3778
- return ur;
3779
- }, pr;
3780
- }
3781
- __name(tiltedCylinder, "tiltedCylinder");
3782
- async function trapezoid(St, lr) {
3783
- let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
3784
- lr.labelStyle = ur;
3785
- let { shapeSvg: fr, bbox: pr } = await labelHelper(St, lr, getNodeClasses(lr)), mr = pr.width + lr.padding, hr = pr.height + lr.padding, gr = [
3786
- {
3787
- x: -3 * hr / 6,
3788
- y: 0
3789
- },
3790
- {
3791
- x: mr + 3 * hr / 6,
3792
- y: 0
3793
- },
3794
- {
3795
- x: mr,
3796
- y: -hr
3797
- },
3798
- {
3799
- x: 0,
3800
- y: -hr
3801
- }
3802
- ], _r, { cssStyles: vr } = lr;
3803
- if (lr.look === "handDrawn") {
3804
- let St = at.svg(fr), ur = userNodeOverrides(lr, {}), dr = createPathFromPoints(gr), pr = St.path(dr, ur);
3805
- _r = fr.insert(() => pr, ":first-child").attr("transform", `translate(${-mr / 2}, ${hr / 2})`), vr && _r.attr("style", vr);
3806
- } else _r = insertPolygonShape(fr, mr, hr, gr);
3807
- return dr && _r.attr("style", dr), lr.width = mr, lr.height = hr, updateNodeBounds(lr, _r), lr.intersect = function(St) {
3808
- return intersect_default.polygon(lr, gr, St);
3809
- }, fr;
3810
- }
3811
- __name(trapezoid, "trapezoid");
3812
- async function trapezoidalPentagon(St, lr) {
3813
- let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
3814
- lr.labelStyle = ur;
3815
- let { shapeSvg: fr, bbox: pr } = await labelHelper(St, lr, getNodeClasses(lr)), mr = Math.max(60, pr.width + (lr.padding ?? 0) * 2, lr?.width ?? 0), hr = Math.max(20, pr.height + (lr.padding ?? 0) * 2, lr?.height ?? 0), { cssStyles: gr } = lr, _r = at.svg(fr), vr = userNodeOverrides(lr, {});
3816
- lr.look !== "handDrawn" && (vr.roughness = 0, vr.fillStyle = "solid");
3817
- let yr = [
3818
- {
3819
- x: -mr / 2 * .8,
3820
- y: -hr / 2
3821
- },
3822
- {
3823
- x: mr / 2 * .8,
3824
- y: -hr / 2
3825
- },
3826
- {
3827
- x: mr / 2,
3828
- y: -hr / 2 * .6
3829
- },
3830
- {
3831
- x: mr / 2,
3832
- y: hr / 2
3833
- },
3834
- {
3835
- x: -mr / 2,
3836
- y: hr / 2
3837
- },
3838
- {
3839
- x: -mr / 2,
3840
- y: -hr / 2 * .6
3841
- }
3842
- ], br = createPathFromPoints(yr), xr = _r.path(br, vr), Sr = fr.insert(() => xr, ":first-child");
3843
- return Sr.attr("class", "basic label-container"), gr && lr.look !== "handDrawn" && Sr.selectChildren("path").attr("style", gr), dr && lr.look !== "handDrawn" && Sr.selectChildren("path").attr("style", dr), updateNodeBounds(lr, Sr), lr.intersect = function(St) {
3844
- return intersect_default.polygon(lr, yr, St);
3845
- }, fr;
3846
- }
3847
- __name(trapezoidalPentagon, "trapezoidalPentagon");
3848
- async function triangle(St, lr) {
3849
- let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
3850
- lr.labelStyle = ur;
3851
- let { shapeSvg: pr, bbox: mr, label: hr } = await labelHelper(St, lr, getNodeClasses(lr)), gr = evaluate(getConfig2().flowchart?.htmlLabels), _r = mr.width + (lr.padding ?? 0), vr = _r + mr.height, yr = _r + mr.height, xr = [
3852
- {
3853
- x: 0,
3854
- y: 0
3855
- },
3856
- {
3857
- x: yr,
3858
- y: 0
3859
- },
3860
- {
3861
- x: yr / 2,
3862
- y: -vr
3863
- }
3864
- ], { cssStyles: Cr } = lr, wr = at.svg(pr), Tr = userNodeOverrides(lr, {});
3865
- lr.look !== "handDrawn" && (Tr.roughness = 0, Tr.fillStyle = "solid");
3866
- let Er = createPathFromPoints(xr), Dr = wr.path(Er, Tr), Ar = pr.insert(() => Dr, ":first-child").attr("transform", `translate(${-vr / 2}, ${vr / 2})`);
3867
- return Cr && lr.look !== "handDrawn" && Ar.selectChildren("path").attr("style", Cr), dr && lr.look !== "handDrawn" && Ar.selectChildren("path").attr("style", dr), lr.width = _r, lr.height = vr, updateNodeBounds(lr, Ar), hr.attr("transform", `translate(${-mr.width / 2 - (mr.x - (mr.left ?? 0))}, ${vr / 2 - (mr.height + (lr.padding ?? 0) / (gr ? 2 : 1) - (mr.y - (mr.top ?? 0)))})`), lr.intersect = function(St) {
3868
- return log.info("Triangle intersect", lr, xr, St), intersect_default.polygon(lr, xr, St);
3869
- }, pr;
3870
- }
3871
- __name(triangle, "triangle");
3872
- async function waveEdgedRectangle(St, lr) {
3873
- let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
3874
- lr.labelStyle = ur;
3875
- let { shapeSvg: fr, bbox: pr, label: mr } = await labelHelper(St, lr, getNodeClasses(lr)), hr = Math.max(pr.width + (lr.padding ?? 0) * 2, lr?.width ?? 0), gr = Math.max(pr.height + (lr.padding ?? 0) * 2, lr?.height ?? 0), _r = gr / 8, vr = gr + _r, { cssStyles: yr } = lr, br = 70 - hr, xr = br > 0 ? br / 2 : 0, Sr = at.svg(fr), Cr = userNodeOverrides(lr, {});
3876
- lr.look !== "handDrawn" && (Cr.roughness = 0, Cr.fillStyle = "solid");
3877
- let wr = [
3878
- {
3879
- x: -hr / 2 - xr,
3880
- y: vr / 2
3881
- },
3882
- ...generateFullSineWavePoints(-hr / 2 - xr, vr / 2, hr / 2 + xr, vr / 2, _r, .8),
3883
- {
3884
- x: hr / 2 + xr,
3885
- y: -vr / 2
3886
- },
3887
- {
3888
- x: -hr / 2 - xr,
3889
- y: -vr / 2
3890
- }
3891
- ], Tr = createPathFromPoints(wr), Er = Sr.path(Tr, Cr), Dr = fr.insert(() => Er, ":first-child");
3892
- return Dr.attr("class", "basic label-container"), yr && lr.look !== "handDrawn" && Dr.selectAll("path").attr("style", yr), dr && lr.look !== "handDrawn" && Dr.selectAll("path").attr("style", dr), Dr.attr("transform", `translate(0,${-_r / 2})`), mr.attr("transform", `translate(${-hr / 2 + (lr.padding ?? 0) - (pr.x - (pr.left ?? 0))},${-gr / 2 + (lr.padding ?? 0) - _r - (pr.y - (pr.top ?? 0))})`), updateNodeBounds(lr, Dr), lr.intersect = function(St) {
3893
- return intersect_default.polygon(lr, wr, St);
3894
- }, fr;
3895
- }
3896
- __name(waveEdgedRectangle, "waveEdgedRectangle");
3897
- async function waveRectangle(St, lr) {
3898
- let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
3899
- lr.labelStyle = ur;
3900
- let { shapeSvg: fr, bbox: pr } = await labelHelper(St, lr, getNodeClasses(lr)), mr = Math.max(pr.width + (lr.padding ?? 0) * 2, lr?.width ?? 0), hr = Math.max(pr.height + (lr.padding ?? 0) * 2, lr?.height ?? 0), gr = mr / hr, _r = mr, vr = hr;
3901
- _r > vr * gr ? vr = _r / gr : _r = vr * gr, _r = Math.max(_r, 100), vr = Math.max(vr, 50);
3902
- let yr = Math.min(vr * .2, vr / 4), br = vr + yr * 2, { cssStyles: xr } = lr, Sr = at.svg(fr), Cr = userNodeOverrides(lr, {});
3903
- lr.look !== "handDrawn" && (Cr.roughness = 0, Cr.fillStyle = "solid");
3904
- let wr = [
3905
- {
3906
- x: -_r / 2,
3907
- y: br / 2
3908
- },
3909
- ...generateFullSineWavePoints(-_r / 2, br / 2, _r / 2, br / 2, yr, 1),
3910
- {
3911
- x: _r / 2,
3912
- y: -br / 2
3913
- },
3914
- ...generateFullSineWavePoints(_r / 2, -br / 2, -_r / 2, -br / 2, yr, -1)
3915
- ], Tr = createPathFromPoints(wr), Er = Sr.path(Tr, Cr), Dr = fr.insert(() => Er, ":first-child");
3916
- return Dr.attr("class", "basic label-container"), xr && lr.look !== "handDrawn" && Dr.selectAll("path").attr("style", xr), dr && lr.look !== "handDrawn" && Dr.selectAll("path").attr("style", dr), updateNodeBounds(lr, Dr), lr.intersect = function(St) {
3917
- return intersect_default.polygon(lr, wr, St);
3918
- }, fr;
3919
- }
3920
- __name(waveRectangle, "waveRectangle");
3921
- async function windowPane(St, lr) {
3922
- let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
3923
- lr.labelStyle = ur;
3924
- let { shapeSvg: fr, bbox: pr, label: mr } = await labelHelper(St, lr, getNodeClasses(lr)), hr = Math.max(pr.width + (lr.padding ?? 0) * 2, lr?.width ?? 0), gr = Math.max(pr.height + (lr.padding ?? 0) * 2, lr?.height ?? 0), _r = -hr / 2, vr = -gr / 2, { cssStyles: yr } = lr, br = at.svg(fr), xr = userNodeOverrides(lr, {}), Sr = [
3925
- {
3926
- x: _r - 5,
3927
- y: vr - 5
3928
- },
3929
- {
3930
- x: _r - 5,
3931
- y: vr + gr
3932
- },
3933
- {
3934
- x: _r + hr,
3935
- y: vr + gr
3936
- },
3937
- {
3938
- x: _r + hr,
3939
- y: vr - 5
3940
- }
3941
- ], Cr = `M${_r - 5},${vr - 5} L${_r + hr},${vr - 5} L${_r + hr},${vr + gr} L${_r - 5},${vr + gr} L${_r - 5},${vr - 5}
3942
- M${_r - 5},${vr} L${_r + hr},${vr}
3943
- M${_r},${vr - 5} L${_r},${vr + gr}`;
3944
- lr.look !== "handDrawn" && (xr.roughness = 0, xr.fillStyle = "solid");
3945
- let wr = br.path(Cr, xr), Tr = fr.insert(() => wr, ":first-child");
3946
- return Tr.attr("transform", `translate(${5 / 2}, ${5 / 2})`), Tr.attr("class", "basic label-container"), yr && lr.look !== "handDrawn" && Tr.selectAll("path").attr("style", yr), dr && lr.look !== "handDrawn" && Tr.selectAll("path").attr("style", dr), mr.attr("transform", `translate(${-(pr.width / 2) + 5 / 2 - (pr.x - (pr.left ?? 0))}, ${-(pr.height / 2) + 5 / 2 - (pr.y - (pr.top ?? 0))})`), updateNodeBounds(lr, Tr), lr.intersect = function(St) {
3947
- return intersect_default.polygon(lr, Sr, St);
3948
- }, fr;
3949
- }
3950
- __name(windowPane, "windowPane");
3951
- async function erBox(St, lr) {
3952
- let dr = lr;
3953
- if (dr.alias && (lr.label = dr.alias), lr.look === "handDrawn") {
3954
- let { themeVariables: ur } = getConfig(), { background: dr } = ur;
3955
- await erBox(St, {
3956
- ...lr,
3957
- id: lr.id + "-background",
3958
- look: "default",
3959
- cssStyles: ["stroke: none", `fill: ${dr}`]
3960
- });
3961
- }
3962
- let fr = getConfig();
3963
- lr.useHtmlLabels = fr.htmlLabels;
3964
- let pr = fr.er?.diagramPadding ?? 10, hr = fr.er?.entityPadding ?? 6, { cssStyles: gr } = lr, { labelStyles: _r, nodeStyles: vr } = styles2String(lr);
3965
- if (dr.attributes.length === 0 && lr.label) {
3966
- let dr = {
3967
- rx: 0,
3968
- ry: 0,
3969
- labelPaddingX: pr,
3970
- labelPaddingY: pr * 1.5,
3971
- classes: ""
3972
- };
3973
- calculateTextWidth(lr.label, fr) + dr.labelPaddingX * 2 < fr.er.minEntityWidth && (lr.width = fr.er.minEntityWidth);
3974
- let mr = await drawRect(St, lr, dr);
3975
- if (!evaluate(fr.htmlLabels)) {
3976
- let St = mr.select("text"), lr = St.node()?.getBBox();
3977
- St.attr("transform", `translate(${-lr.width / 2}, 0)`);
3978
- }
3979
- return mr;
3980
- }
3981
- fr.htmlLabels || (pr *= 1.25, hr *= 1.25);
3982
- let yr = getNodeClasses(lr);
3983
- yr ||= "node default";
3984
- let br = St.insert("g").attr("class", yr).attr("id", lr.domId || lr.id), xr = await addText(br, lr.label ?? "", fr, 0, 0, ["name"], _r);
3985
- xr.height += hr;
3986
- let Cr = 0, Tr = [], Er = [], Dr = 0, Ar = 0, jr = 0, Mr = 0, Nr = !0, Pr = !0;
3987
- for (let St of dr.attributes) {
3988
- let lr = await addText(br, St.type, fr, 0, Cr, ["attribute-type"], _r);
3989
- Dr = Math.max(Dr, lr.width + pr);
3990
- let ur = await addText(br, St.name, fr, 0, Cr, ["attribute-name"], _r);
3991
- Ar = Math.max(Ar, ur.width + pr);
3992
- let dr = await addText(br, St.keys.join(), fr, 0, Cr, ["attribute-keys"], _r);
3993
- jr = Math.max(jr, dr.width + pr);
3994
- let mr = await addText(br, St.comment, fr, 0, Cr, ["attribute-comment"], _r);
3995
- Mr = Math.max(Mr, mr.width + pr);
3996
- let gr = Math.max(lr.height, ur.height, dr.height, mr.height) + hr;
3997
- Er.push({
3998
- yOffset: Cr,
3999
- rowHeight: gr
4000
- }), Cr += gr;
4001
- }
4002
- let Fr = 4;
4003
- jr <= pr && (Nr = !1, jr = 0, Fr--), Mr <= pr && (Pr = !1, Mr = 0, Fr--);
4004
- let Ir = br.node().getBBox();
4005
- if (xr.width + pr * 2 - (Dr + Ar + jr + Mr) > 0) {
4006
- let St = xr.width + pr * 2 - (Dr + Ar + jr + Mr);
4007
- Dr += St / Fr, Ar += St / Fr, jr > 0 && (jr += St / Fr), Mr > 0 && (Mr += St / Fr);
4008
- }
4009
- let Lr = Dr + Ar + jr + Mr, Rr = at.svg(br), zr = userNodeOverrides(lr, {});
4010
- lr.look !== "handDrawn" && (zr.roughness = 0, zr.fillStyle = "solid");
4011
- let Br = 0;
4012
- Er.length > 0 && (Br = Er.reduce((St, lr) => St + (lr?.rowHeight ?? 0), 0));
4013
- let Vr = Math.max(Ir.width + pr * 2, lr?.width || 0, Lr), Hr = Math.max((Br ?? 0) + xr.height, lr?.height || 0), Ur = -Vr / 2, Wr = -Hr / 2;
4014
- br.selectAll("g:not(:first-child)").each((St, lr, ur) => {
4015
- let dr = select_default(ur[lr]), fr = dr.attr("transform"), gr = 0, _r = 0;
4016
- if (fr) {
4017
- let St = RegExp(/translate\(([^,]+),([^)]+)\)/).exec(fr);
4018
- St && (gr = parseFloat(St[1]), _r = parseFloat(St[2]), dr.attr("class").includes("attribute-name") ? gr += Dr : dr.attr("class").includes("attribute-keys") ? gr += Dr + Ar : dr.attr("class").includes("attribute-comment") && (gr += Dr + Ar + jr));
4019
- }
4020
- dr.attr("transform", `translate(${Ur + pr / 2 + gr}, ${_r + Wr + xr.height + hr / 2})`);
4021
- }), br.select(".name").attr("transform", "translate(" + -xr.width / 2 + ", " + (Wr + hr / 2) + ")");
4022
- let Gr = Rr.rectangle(Ur, Wr, Vr, Hr, zr), Kr = br.insert(() => Gr, ":first-child").attr("style", gr.join("")), { themeVariables: qr } = getConfig(), { rowEven: Jr, rowOdd: Yr, nodeBorder: Xr } = qr;
4023
- Tr.push(0);
4024
- for (let [St, lr] of Er.entries()) {
4025
- let ur = (St + 1) % 2 == 0 && lr.yOffset !== 0, dr = Rr.rectangle(Ur, xr.height + Wr + lr?.yOffset, Vr, lr?.rowHeight, {
4026
- ...zr,
4027
- fill: ur ? Jr : Yr,
4028
- stroke: Xr
4029
- });
4030
- br.insert(() => dr, "g.label").attr("style", gr.join("")).attr("class", `row-rect-${ur ? "even" : "odd"}`);
4031
- }
4032
- let Zr = Rr.line(Ur, xr.height + Wr, Vr + Ur, xr.height + Wr, zr);
4033
- br.insert(() => Zr).attr("class", "divider"), Zr = Rr.line(Dr + Ur, xr.height + Wr, Dr + Ur, Hr + Wr, zr), br.insert(() => Zr).attr("class", "divider"), Nr && (Zr = Rr.line(Dr + Ar + Ur, xr.height + Wr, Dr + Ar + Ur, Hr + Wr, zr), br.insert(() => Zr).attr("class", "divider")), Pr && (Zr = Rr.line(Dr + Ar + jr + Ur, xr.height + Wr, Dr + Ar + jr + Ur, Hr + Wr, zr), br.insert(() => Zr).attr("class", "divider"));
4034
- for (let St of Tr) Zr = Rr.line(Ur, xr.height + Wr + St, Vr + Ur, xr.height + Wr + St, zr), br.insert(() => Zr).attr("class", "divider");
4035
- if (updateNodeBounds(lr, Kr), vr && lr.look !== "handDrawn") {
4036
- let St = vr.split(";")?.filter((St) => St.includes("stroke"))?.map((St) => `${St}`).join("; ");
4037
- br.selectAll("path").attr("style", St ?? ""), br.selectAll(".row-rect-even path").attr("style", vr);
4038
- }
4039
- return lr.intersect = function(St) {
4040
- return intersect_default.rect(lr, St);
4041
- }, br;
4042
- }
4043
- __name(erBox, "erBox");
4044
- async function addText(St, lr, dr, fr = 0, pr = 0, gr = [], _r = "") {
4045
- let vr = St.insert("g").attr("class", `label ${gr.join(" ")}`).attr("transform", `translate(${fr}, ${pr})`).attr("style", _r);
4046
- lr !== parseGenericTypes(lr) && (lr = parseGenericTypes(lr), lr = lr.replaceAll("<", "&lt;").replaceAll(">", "&gt;"));
4047
- let yr = vr.node().appendChild(await createText(vr, lr, {
4048
- width: calculateTextWidth(lr, dr) + 100,
4049
- style: _r,
4050
- useHtmlLabels: dr.htmlLabels
4051
- }, dr));
4052
- if (lr.includes("&lt;") || lr.includes("&gt;")) {
4053
- let St = yr.children[0];
4054
- for (St.textContent = St.textContent.replaceAll("&lt;", "<").replaceAll("&gt;", ">"); St.childNodes[0];) St = St.childNodes[0], St.textContent = St.textContent.replaceAll("&lt;", "<").replaceAll("&gt;", ">");
4055
- }
4056
- let br = yr.getBBox();
4057
- if (evaluate(dr.htmlLabels)) {
4058
- let St = yr.children[0];
4059
- St.style.textAlign = "start";
4060
- let lr = select_default(yr);
4061
- br = St.getBoundingClientRect(), lr.attr("width", br.width), lr.attr("height", br.height);
4062
- }
4063
- return br;
4064
- }
4065
- __name(addText, "addText");
4066
- async function textHelper(St, lr, ur, dr, fr = ur.class.padding ?? 12) {
4067
- let pr = dr ? 0 : 3, mr = St.insert("g").attr("class", getNodeClasses(lr)).attr("id", lr.domId || lr.id), hr = null, gr = null, _r = null, vr = null, yr = 0, br = 0, xr = 0;
4068
- if (hr = mr.insert("g").attr("class", "annotation-group text"), lr.annotations.length > 0) {
4069
- let St = lr.annotations[0];
4070
- await addText2(hr, { text: `\xAB${St}\xBB` }, 0), yr = hr.node().getBBox().height;
4071
- }
4072
- gr = mr.insert("g").attr("class", "label-group text"), await addText2(gr, lr, 0, ["font-weight: bolder"]);
4073
- let Sr = gr.node().getBBox();
4074
- br = Sr.height, _r = mr.insert("g").attr("class", "members-group text");
4075
- let Cr = 0;
4076
- for (let St of lr.members) {
4077
- let lr = await addText2(_r, St, Cr, [St.parseClassifier()]);
4078
- Cr += lr + pr;
4079
- }
4080
- xr = _r.node().getBBox().height, xr <= 0 && (xr = fr / 2), vr = mr.insert("g").attr("class", "methods-group text");
4081
- let wr = 0;
4082
- for (let St of lr.methods) {
4083
- let lr = await addText2(vr, St, wr, [St.parseClassifier()]);
4084
- wr += lr + pr;
4085
- }
4086
- let Tr = mr.node().getBBox();
4087
- if (hr !== null) {
4088
- let St = hr.node().getBBox();
4089
- hr.attr("transform", `translate(${-St.width / 2})`);
4090
- }
4091
- return gr.attr("transform", `translate(${-Sr.width / 2}, ${yr})`), Tr = mr.node().getBBox(), _r.attr("transform", `translate(0, ${yr + br + fr * 2})`), Tr = mr.node().getBBox(), vr.attr("transform", `translate(0, ${yr + br + (xr ? xr + fr * 4 : fr * 2)})`), Tr = mr.node().getBBox(), {
4092
- shapeSvg: mr,
4093
- bbox: Tr
4094
- };
4095
- }
4096
- __name(textHelper, "textHelper");
4097
- async function addText2(lr, dr, fr, hr = []) {
4098
- let gr = lr.insert("g").attr("class", "label").attr("style", hr.join("; ")), vr = getConfig(), br = "useHtmlLabels" in dr ? dr.useHtmlLabels : evaluate(vr.htmlLabels) ?? !0, xr = "";
4099
- xr = "text" in dr ? dr.text : dr.label, !br && xr.startsWith("\\") && (xr = xr.substring(1)), hasKatex(xr) && (br = !0);
4100
- let Cr = await createText(gr, sanitizeText3(decodeEntities(xr)), {
4101
- width: calculateTextWidth(xr, vr) + 50,
4102
- classes: "markdown-node-label",
4103
- useHtmlLabels: br
4104
- }, vr), Er, Dr = 1;
4105
- if (br) {
4106
- let St = Cr.children[0], lr = select_default(Cr);
4107
- Dr = St.innerHTML.split("<br>").length, St.innerHTML.includes("</math>") && (Dr += St.innerHTML.split("<mrow>").length - 1);
4108
- let ur = St.getElementsByTagName("img");
4109
- if (ur) {
4110
- let St = xr.replace(/<img[^>]*>/g, "").trim() === "";
4111
- await Promise.all([...ur].map((lr) => new Promise((ur) => {
4112
- function dr() {
4113
- if (lr.style.display = "flex", lr.style.flexDirection = "column", St) {
4114
- let St = vr.fontSize?.toString() ?? window.getComputedStyle(document.body).fontSize, ur = parseInt(St, 10) * 5 + "px";
4115
- lr.style.minWidth = ur, lr.style.maxWidth = ur;
4116
- } else lr.style.width = "100%";
4117
- ur(lr);
4118
- }
4119
- __name(dr, "setupImage"), setTimeout(() => {
4120
- lr.complete && dr();
4121
- }), lr.addEventListener("error", dr), lr.addEventListener("load", dr);
4122
- })));
4123
- }
4124
- Er = St.getBoundingClientRect(), lr.attr("width", Er.width), lr.attr("height", Er.height);
4125
- } else {
4126
- hr.includes("font-weight: bolder") && select_default(Cr).selectAll("tspan").attr("font-weight", ""), Dr = Cr.children.length;
4127
- let St = Cr.children[0];
4128
- (Cr.textContent === "" || Cr.textContent.includes("&gt")) && (St.textContent = xr[0] + xr.substring(1).replaceAll("&gt;", ">").replaceAll("&lt;", "<").trim(), xr[1] === " " && (St.textContent = St.textContent[0] + " " + St.textContent.substring(1))), St.textContent === "undefined" && (St.textContent = ""), Er = Cr.getBBox();
4129
- }
4130
- return gr.attr("transform", "translate(0," + (-Er.height / (2 * Dr) + fr) + ")"), Er.height;
4131
- }
4132
- __name(addText2, "addText");
4133
- async function classBox(St, lr) {
4134
- let ur = getConfig2(), dr = ur.class.padding ?? 12, fr = dr, pr = lr.useHtmlLabels ?? evaluate(ur.htmlLabels) ?? !0, hr = lr;
4135
- hr.annotations = hr.annotations ?? [], hr.members = hr.members ?? [], hr.methods = hr.methods ?? [];
4136
- let { shapeSvg: gr, bbox: _r } = await textHelper(St, lr, ur, pr, fr), { labelStyles: vr, nodeStyles: yr } = styles2String(lr);
4137
- lr.labelStyle = vr, lr.cssStyles = hr.styles || "";
4138
- let xr = hr.styles?.join(";") || yr || "";
4139
- lr.cssStyles ||= xr.replaceAll("!important", "").split(";");
4140
- let Cr = hr.members.length === 0 && hr.methods.length === 0 && !ur.class?.hideEmptyMembersBox, wr = at.svg(gr), Tr = userNodeOverrides(lr, {});
4141
- lr.look !== "handDrawn" && (Tr.roughness = 0, Tr.fillStyle = "solid");
4142
- let Er = _r.width, Dr = _r.height;
4143
- hr.members.length === 0 && hr.methods.length === 0 ? Dr += fr : hr.members.length > 0 && hr.methods.length === 0 && (Dr += fr * 2);
4144
- let Ar = -Er / 2, jr = -Dr / 2, Mr = wr.rectangle(Ar - dr, jr - dr - (Cr ? dr : hr.members.length === 0 && hr.methods.length === 0 ? -dr / 2 : 0), Er + 2 * dr, Dr + 2 * dr + (Cr ? dr * 2 : hr.members.length === 0 && hr.methods.length === 0 ? -dr : 0), Tr), Nr = gr.insert(() => Mr, ":first-child");
4145
- Nr.attr("class", "basic label-container");
4146
- let Pr = Nr.node().getBBox();
4147
- gr.selectAll(".text").each((St, lr, ur) => {
4148
- let fr = select_default(ur[lr]), _r = fr.attr("transform"), vr = 0;
4149
- if (_r) {
4150
- let St = RegExp(/translate\(([^,]+),([^)]+)\)/).exec(_r);
4151
- St && (vr = parseFloat(St[2]));
4152
- }
4153
- let yr = vr + jr + dr - (Cr ? dr : hr.members.length === 0 && hr.methods.length === 0 ? -dr / 2 : 0);
4154
- pr || (yr -= 4);
4155
- let br = Ar;
4156
- (fr.attr("class").includes("label-group") || fr.attr("class").includes("annotation-group")) && (br = -fr.node()?.getBBox().width / 2 || 0, gr.selectAll("text").each(function(St, lr, ur) {
4157
- window.getComputedStyle(ur[lr]).textAnchor === "middle" && (br = 0);
4158
- })), fr.attr("transform", `translate(${br}, ${yr})`);
4159
- });
4160
- let Fr = gr.select(".annotation-group").node().getBBox().height - (Cr ? dr / 2 : 0) || 0, Ir = gr.select(".label-group").node().getBBox().height - (Cr ? dr / 2 : 0) || 0, Lr = gr.select(".members-group").node().getBBox().height - (Cr ? dr / 2 : 0) || 0;
4161
- if (hr.members.length > 0 || hr.methods.length > 0 || Cr) {
4162
- let St = wr.line(Pr.x, Fr + Ir + jr + dr, Pr.x + Pr.width, Fr + Ir + jr + dr, Tr);
4163
- gr.insert(() => St).attr("class", "divider").attr("style", xr);
4164
- }
4165
- if (Cr || hr.members.length > 0 || hr.methods.length > 0) {
4166
- let St = wr.line(Pr.x, Fr + Ir + Lr + jr + fr * 2 + dr, Pr.x + Pr.width, Fr + Ir + Lr + jr + dr + fr * 2, Tr);
4167
- gr.insert(() => St).attr("class", "divider").attr("style", xr);
4168
- }
4169
- if (hr.look !== "handDrawn" && gr.selectAll("path").attr("style", xr), Nr.select(":nth-child(2)").attr("style", xr), gr.selectAll(".divider").select("path").attr("style", xr), lr.labelStyle ? gr.selectAll("span").attr("style", lr.labelStyle) : gr.selectAll("span").attr("style", xr), !pr) {
4170
- let St = RegExp(/color\s*:\s*([^;]*)/), lr = St.exec(xr);
4171
- if (lr) {
4172
- let St = lr[0].replace("color", "fill");
4173
- gr.selectAll("tspan").attr("style", St);
4174
- } else if (vr) {
4175
- let lr = St.exec(vr);
4176
- if (lr) {
4177
- let St = lr[0].replace("color", "fill");
4178
- gr.selectAll("tspan").attr("style", St);
4179
- }
4180
- }
4181
- }
4182
- return updateNodeBounds(lr, Nr), lr.intersect = function(St) {
4183
- return intersect_default.rect(lr, St);
4184
- }, gr;
4185
- }
4186
- __name(classBox, "classBox");
4187
- async function requirementBox(St, lr) {
4188
- let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
4189
- lr.labelStyle = ur;
4190
- let fr = lr, pr = lr, hr = "verifyMethod" in lr, gr = getNodeClasses(lr), _r = St.insert("g").attr("class", gr).attr("id", lr.domId ?? lr.id), vr;
4191
- vr = hr ? await addText3(_r, `&lt;&lt;${fr.type}&gt;&gt;`, 0, lr.labelStyle) : await addText3(_r, "&lt;&lt;Element&gt;&gt;", 0, lr.labelStyle);
4192
- let yr = vr, br = await addText3(_r, fr.name, yr, lr.labelStyle + "; font-weight: bold;");
4193
- if (yr += br + 20, hr) {
4194
- let St = await addText3(_r, `${fr.requirementId ? `ID: ${fr.requirementId}` : ""}`, yr, lr.labelStyle);
4195
- yr += St;
4196
- let ur = await addText3(_r, `${fr.text ? `Text: ${fr.text}` : ""}`, yr, lr.labelStyle);
4197
- yr += ur;
4198
- let dr = await addText3(_r, `${fr.risk ? `Risk: ${fr.risk}` : ""}`, yr, lr.labelStyle);
4199
- yr += dr, await addText3(_r, `${fr.verifyMethod ? `Verification: ${fr.verifyMethod}` : ""}`, yr, lr.labelStyle);
4200
- } else {
4201
- let St = await addText3(_r, `${pr.type ? `Type: ${pr.type}` : ""}`, yr, lr.labelStyle);
4202
- yr += St, await addText3(_r, `${pr.docRef ? `Doc Ref: ${pr.docRef}` : ""}`, yr, lr.labelStyle);
4203
- }
4204
- let xr = (_r.node()?.getBBox().width ?? 200) + 20, Sr = (_r.node()?.getBBox().height ?? 200) + 20, Cr = -xr / 2, wr = -Sr / 2, Tr = at.svg(_r), Er = userNodeOverrides(lr, {});
4205
- lr.look !== "handDrawn" && (Er.roughness = 0, Er.fillStyle = "solid");
4206
- let Dr = Tr.rectangle(Cr, wr, xr, Sr, Er), Ar = _r.insert(() => Dr, ":first-child");
4207
- if (Ar.attr("class", "basic label-container").attr("style", dr), _r.selectAll(".label").each((St, lr, ur) => {
4208
- let dr = select_default(ur[lr]), fr = dr.attr("transform"), pr = 0, hr = 0;
4209
- if (fr) {
4210
- let St = RegExp(/translate\(([^,]+),([^)]+)\)/).exec(fr);
4211
- St && (pr = parseFloat(St[1]), hr = parseFloat(St[2]));
4212
- }
4213
- let gr = hr - Sr / 2, _r = Cr + 20 / 2;
4214
- (lr === 0 || lr === 1) && (_r = pr), dr.attr("transform", `translate(${_r}, ${gr + 20})`);
4215
- }), yr > vr + br + 20) {
4216
- let St = Tr.line(Cr, wr + vr + br + 20, Cr + xr, wr + vr + br + 20, Er);
4217
- _r.insert(() => St).attr("style", dr);
4218
- }
4219
- return updateNodeBounds(lr, Ar), lr.intersect = function(St) {
4220
- return intersect_default.rect(lr, St);
4221
- }, _r;
4222
- }
4223
- __name(requirementBox, "requirementBox");
4224
- async function addText3(lr, dr, fr, pr = "") {
4225
- if (dr === "") return 0;
4226
- let hr = lr.insert("g").attr("class", "label").attr("style", pr), gr = getConfig2(), vr = gr.htmlLabels ?? !0, yr = await createText(hr, sanitizeText3(decodeEntities(dr)), {
4227
- width: calculateTextWidth(dr, gr) + 50,
4228
- classes: "markdown-node-label",
4229
- useHtmlLabels: vr,
4230
- style: pr
4231
- }, gr), xr;
4232
- if (vr) {
4233
- let St = yr.children[0], lr = select_default(yr);
4234
- xr = St.getBoundingClientRect(), lr.attr("width", xr.width), lr.attr("height", xr.height);
4235
- } else {
4236
- let St = yr.children[0];
4237
- for (let lr of St.children) lr.textContent = lr.textContent.replaceAll("&gt;", ">").replaceAll("&lt;", "<"), pr && lr.setAttribute("style", pr);
4238
- xr = yr.getBBox(), xr.height += 6;
4239
- }
4240
- return hr.attr("transform", `translate(${-xr.width / 2},${-xr.height / 2 + fr})`), xr.height;
4241
- }
4242
- __name(addText3, "addText");
4243
- var colorFromPriority = /* @__PURE__ */ __name((St) => {
4244
- switch (St) {
4245
- case "Very High": return "red";
4246
- case "High": return "orange";
4247
- case "Medium": return null;
4248
- case "Low": return "blue";
4249
- case "Very Low": return "lightblue";
4250
- }
4251
- }, "colorFromPriority");
4252
- async function kanbanItem(St, lr, { config: ur }) {
4253
- let { labelStyles: dr, nodeStyles: fr } = styles2String(lr);
4254
- lr.labelStyle = dr || "";
4255
- let pr = lr.width;
4256
- lr.width = (lr.width ?? 200) - 10;
4257
- let { shapeSvg: mr, bbox: hr, label: gr } = await labelHelper(St, lr, getNodeClasses(lr)), _r = lr.padding || 10, vr = "", yr;
4258
- "ticket" in lr && lr.ticket && ur?.kanban?.ticketBaseUrl && (vr = ur?.kanban?.ticketBaseUrl.replace("#TICKET#", lr.ticket), yr = mr.insert("svg:a", ":first-child").attr("class", "kanban-ticket-link").attr("xlink:href", vr).attr("target", "_blank"));
4259
- let br = {
4260
- useHtmlLabels: lr.useHtmlLabels,
4261
- labelStyle: lr.labelStyle || "",
4262
- width: lr.width,
4263
- img: lr.img,
4264
- padding: lr.padding || 8,
4265
- centerLabel: !1
4266
- }, xr, Sr;
4267
- yr ? {label: xr, bbox: Sr} = await insertLabel(yr, "ticket" in lr && lr.ticket || "", br) : {label: xr, bbox: Sr} = await insertLabel(mr, "ticket" in lr && lr.ticket || "", br);
4268
- let { label: Cr, bbox: wr } = await insertLabel(mr, "assigned" in lr && lr.assigned || "", br);
4269
- lr.width = pr;
4270
- let Tr = lr?.width || 0, Er = Math.max(Sr.height, wr.height) / 2, Dr = Math.max(hr.height + 20, lr?.height || 0) + Er, Ar = -Tr / 2, jr = -Dr / 2;
4271
- gr.attr("transform", "translate(" + (_r - Tr / 2) + ", " + (-Er - hr.height / 2) + ")"), xr.attr("transform", "translate(" + (_r - Tr / 2) + ", " + (-Er + hr.height / 2) + ")"), Cr.attr("transform", "translate(" + (_r + Tr / 2 - wr.width - 20) + ", " + (-Er + hr.height / 2) + ")");
4272
- let Mr, { rx: Nr, ry: Pr } = lr, { cssStyles: Fr } = lr;
4273
- if (lr.look === "handDrawn") {
4274
- let St = at.svg(mr), ur = userNodeOverrides(lr, {}), dr = Nr || Pr ? St.path(createRoundedRectPathD(Ar, jr, Tr, Dr, Nr || 0), ur) : St.rectangle(Ar, jr, Tr, Dr, ur);
4275
- Mr = mr.insert(() => dr, ":first-child"), Mr.attr("class", "basic label-container").attr("style", Fr || null);
4276
- } else {
4277
- Mr = mr.insert("rect", ":first-child"), Mr.attr("class", "basic label-container __APA__").attr("style", fr).attr("rx", Nr ?? 5).attr("ry", Pr ?? 5).attr("x", Ar).attr("y", jr).attr("width", Tr).attr("height", Dr);
4278
- let St = "priority" in lr && lr.priority;
4279
- if (St) {
4280
- let lr = mr.append("line"), ur = Ar + 2, dr = jr + Math.floor((Nr ?? 0) / 2), fr = jr + Dr - Math.floor((Nr ?? 0) / 2);
4281
- lr.attr("x1", ur).attr("y1", dr).attr("x2", ur).attr("y2", fr).attr("stroke-width", "4").attr("stroke", colorFromPriority(St));
4282
- }
4283
- }
4284
- return updateNodeBounds(lr, Mr), lr.height = Dr, lr.intersect = function(St) {
4285
- return intersect_default.rect(lr, St);
4286
- }, mr;
4287
- }
4288
- __name(kanbanItem, "kanbanItem");
4289
- async function bang(St, lr) {
4290
- let { labelStyles: ur, nodeStyles: pr } = styles2String(lr);
4291
- lr.labelStyle = ur;
4292
- let { shapeSvg: mr, bbox: hr, halfPadding: gr, label: _r } = await labelHelper(St, lr, getNodeClasses(lr)), vr = hr.width + 10 * gr, yr = hr.height + 8 * gr, br = .15 * vr, { cssStyles: xr } = lr, Sr = hr.width + 20, Cr = hr.height + 20, wr = Math.max(vr, Sr), Tr = Math.max(yr, Cr);
4293
- _r.attr("transform", `translate(${-hr.width / 2}, ${-hr.height / 2})`);
4294
- let Er, Dr = `M0 0
4295
- a${br},${br} 1 0,0 ${wr * .25},${-1 * Tr * .1}
4296
- a${br},${br} 1 0,0 ${wr * .25},0
4297
- a${br},${br} 1 0,0 ${wr * .25},0
4298
- a${br},${br} 1 0,0 ${wr * .25},${Tr * .1}
4299
-
4300
- a${br},${br} 1 0,0 ${wr * .15},${Tr * .33}
4301
- a${br * .8},${br * .8} 1 0,0 0,${Tr * .34}
4302
- a${br},${br} 1 0,0 ${-1 * wr * .15},${Tr * .33}
4303
-
4304
- a${br},${br} 1 0,0 ${-1 * wr * .25},${Tr * .15}
4305
- a${br},${br} 1 0,0 ${-1 * wr * .25},0
4306
- a${br},${br} 1 0,0 ${-1 * wr * .25},0
4307
- a${br},${br} 1 0,0 ${-1 * wr * .25},${-1 * Tr * .15}
4308
-
4309
- a${br},${br} 1 0,0 ${-1 * wr * .1},${-1 * Tr * .33}
4310
- a${br * .8},${br * .8} 1 0,0 0,${-1 * Tr * .34}
4311
- a${br},${br} 1 0,0 ${wr * .1},${-1 * Tr * .33}
4312
- H0 V0 Z`;
4313
- if (lr.look === "handDrawn") {
4314
- let St = at.svg(mr), ur = userNodeOverrides(lr, {}), fr = St.path(Dr, ur);
4315
- Er = mr.insert(() => fr, ":first-child"), Er.attr("class", "basic label-container").attr("style", handleUndefinedAttr(xr));
4316
- } else Er = mr.insert("path", ":first-child").attr("class", "basic label-container").attr("style", pr).attr("d", Dr);
4317
- return Er.attr("transform", `translate(${-wr / 2}, ${-Tr / 2})`), updateNodeBounds(lr, Er), lr.calcIntersect = function(St, lr) {
4318
- return intersect_default.rect(St, lr);
4319
- }, lr.intersect = function(St) {
4320
- return log.info("Bang intersect", lr, St), intersect_default.rect(lr, St);
4321
- }, mr;
4322
- }
4323
- __name(bang, "bang");
4324
- async function cloud(St, lr) {
4325
- let { labelStyles: ur, nodeStyles: pr } = styles2String(lr);
4326
- lr.labelStyle = ur;
4327
- let { shapeSvg: mr, bbox: hr, halfPadding: gr, label: _r } = await labelHelper(St, lr, getNodeClasses(lr)), vr = hr.width + 2 * gr, yr = hr.height + 2 * gr, br = .15 * vr, xr = .25 * vr, Sr = .35 * vr, Cr = .2 * vr, { cssStyles: wr } = lr, Tr, Er = `M0 0
4328
- a${br},${br} 0 0,1 ${vr * .25},${-1 * vr * .1}
4329
- a${Sr},${Sr} 1 0,1 ${vr * .4},${-1 * vr * .1}
4330
- a${xr},${xr} 1 0,1 ${vr * .35},${vr * .2}
4331
-
4332
- a${br},${br} 1 0,1 ${vr * .15},${yr * .35}
4333
- a${Cr},${Cr} 1 0,1 ${-1 * vr * .15},${yr * .65}
4334
-
4335
- a${xr},${br} 1 0,1 ${-1 * vr * .25},${vr * .15}
4336
- a${Sr},${Sr} 1 0,1 ${-1 * vr * .5},0
4337
- a${br},${br} 1 0,1 ${-1 * vr * .25},${-1 * vr * .15}
4338
-
4339
- a${br},${br} 1 0,1 ${-1 * vr * .1},${-1 * yr * .35}
4340
- a${Cr},${Cr} 1 0,1 ${vr * .1},${-1 * yr * .65}
4341
- H0 V0 Z`;
4342
- if (lr.look === "handDrawn") {
4343
- let St = at.svg(mr), ur = userNodeOverrides(lr, {}), fr = St.path(Er, ur);
4344
- Tr = mr.insert(() => fr, ":first-child"), Tr.attr("class", "basic label-container").attr("style", handleUndefinedAttr(wr));
4345
- } else Tr = mr.insert("path", ":first-child").attr("class", "basic label-container").attr("style", pr).attr("d", Er);
4346
- return _r.attr("transform", `translate(${-hr.width / 2}, ${-hr.height / 2})`), Tr.attr("transform", `translate(${-vr / 2}, ${-yr / 2})`), updateNodeBounds(lr, Tr), lr.calcIntersect = function(St, lr) {
4347
- return intersect_default.rect(St, lr);
4348
- }, lr.intersect = function(St) {
4349
- return log.info("Cloud intersect", lr, St), intersect_default.rect(lr, St);
4350
- }, mr;
4351
- }
4352
- __name(cloud, "cloud");
4353
- async function defaultMindmapNode(St, lr) {
4354
- let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
4355
- lr.labelStyle = ur;
4356
- let { shapeSvg: fr, bbox: pr, halfPadding: mr, label: hr } = await labelHelper(St, lr, getNodeClasses(lr)), gr = pr.width + 8 * mr, _r = pr.height + 2 * mr, vr = `
4357
- M${-gr / 2} ${_r / 2 - 5}
4358
- v${-_r + 10}
4359
- q0,-5 5,-5
4360
- h${gr - 10}
4361
- q5,0 5,5
4362
- v${_r - 10}
4363
- q0,5 -5,5
4364
- h${-gr + 10}
4365
- q-5,0 -5,-5
4366
- Z
4367
- `, yr = fr.append("path").attr("id", "node-" + lr.id).attr("class", "node-bkg node-" + lr.type).attr("style", dr).attr("d", vr);
4368
- return fr.append("line").attr("class", "node-line-").attr("x1", -gr / 2).attr("y1", _r / 2).attr("x2", gr / 2).attr("y2", _r / 2), hr.attr("transform", `translate(${-pr.width / 2}, ${-pr.height / 2})`), fr.append(() => hr.node()), updateNodeBounds(lr, yr), lr.calcIntersect = function(St, lr) {
4369
- return intersect_default.rect(St, lr);
4370
- }, lr.intersect = function(St) {
4371
- return intersect_default.rect(lr, St);
4372
- }, fr;
4373
- }
4374
- __name(defaultMindmapNode, "defaultMindmapNode");
4375
- async function mindmapCircle(St, lr) {
4376
- return circle(St, lr, { padding: lr.padding ?? 0 });
4377
- }
4378
- __name(mindmapCircle, "mindmapCircle");
4379
- var shapesDefs = [
4380
- {
4381
- semanticName: "Process",
4382
- name: "Rectangle",
4383
- shortName: "rect",
4384
- description: "Standard process shape",
4385
- aliases: [
4386
- "proc",
4387
- "process",
4388
- "rectangle"
4389
- ],
4390
- internalAliases: ["squareRect"],
4391
- handler: squareRect2
4392
- },
4393
- {
4394
- semanticName: "Event",
4395
- name: "Rounded Rectangle",
4396
- shortName: "rounded",
4397
- description: "Represents an event",
4398
- aliases: ["event"],
4399
- internalAliases: ["roundedRect"],
4400
- handler: roundedRect
4401
- },
4402
- {
4403
- semanticName: "Terminal Point",
4404
- name: "Stadium",
4405
- shortName: "stadium",
4406
- description: "Terminal point",
4407
- aliases: ["terminal", "pill"],
4408
- handler: stadium
4409
- },
4410
- {
4411
- semanticName: "Subprocess",
4412
- name: "Framed Rectangle",
4413
- shortName: "fr-rect",
4414
- description: "Subprocess",
4415
- aliases: [
4416
- "subprocess",
4417
- "subproc",
4418
- "framed-rectangle",
4419
- "subroutine"
4420
- ],
4421
- handler: subroutine
4422
- },
4423
- {
4424
- semanticName: "Database",
4425
- name: "Cylinder",
4426
- shortName: "cyl",
4427
- description: "Database storage",
4428
- aliases: [
4429
- "db",
4430
- "database",
4431
- "cylinder"
4432
- ],
4433
- handler: cylinder
4434
- },
4435
- {
4436
- semanticName: "Start",
4437
- name: "Circle",
4438
- shortName: "circle",
4439
- description: "Starting point",
4440
- aliases: ["circ"],
4441
- handler: circle
4442
- },
4443
- {
4444
- semanticName: "Bang",
4445
- name: "Bang",
4446
- shortName: "bang",
4447
- description: "Bang",
4448
- aliases: ["bang"],
4449
- handler: bang
4450
- },
4451
- {
4452
- semanticName: "Cloud",
4453
- name: "Cloud",
4454
- shortName: "cloud",
4455
- description: "cloud",
4456
- aliases: ["cloud"],
4457
- handler: cloud
4458
- },
4459
- {
4460
- semanticName: "Decision",
4461
- name: "Diamond",
4462
- shortName: "diam",
4463
- description: "Decision-making step",
4464
- aliases: [
4465
- "decision",
4466
- "diamond",
4467
- "question"
4468
- ],
4469
- handler: question
4470
- },
4471
- {
4472
- semanticName: "Prepare Conditional",
4473
- name: "Hexagon",
4474
- shortName: "hex",
4475
- description: "Preparation or condition step",
4476
- aliases: ["hexagon", "prepare"],
4477
- handler: hexagon
4478
- },
4479
- {
4480
- semanticName: "Data Input/Output",
4481
- name: "Lean Right",
4482
- shortName: "lean-r",
4483
- description: "Represents input or output",
4484
- aliases: ["lean-right", "in-out"],
4485
- internalAliases: ["lean_right"],
4486
- handler: lean_right
4487
- },
4488
- {
4489
- semanticName: "Data Input/Output",
4490
- name: "Lean Left",
4491
- shortName: "lean-l",
4492
- description: "Represents output or input",
4493
- aliases: ["lean-left", "out-in"],
4494
- internalAliases: ["lean_left"],
4495
- handler: lean_left
4496
- },
4497
- {
4498
- semanticName: "Priority Action",
4499
- name: "Trapezoid Base Bottom",
4500
- shortName: "trap-b",
4501
- description: "Priority action",
4502
- aliases: [
4503
- "priority",
4504
- "trapezoid-bottom",
4505
- "trapezoid"
4506
- ],
4507
- handler: trapezoid
4508
- },
4509
- {
4510
- semanticName: "Manual Operation",
4511
- name: "Trapezoid Base Top",
4512
- shortName: "trap-t",
4513
- description: "Represents a manual task",
4514
- aliases: [
4515
- "manual",
4516
- "trapezoid-top",
4517
- "inv-trapezoid"
4518
- ],
4519
- internalAliases: ["inv_trapezoid"],
4520
- handler: inv_trapezoid
4521
- },
4522
- {
4523
- semanticName: "Stop",
4524
- name: "Double Circle",
4525
- shortName: "dbl-circ",
4526
- description: "Represents a stop point",
4527
- aliases: ["double-circle"],
4528
- internalAliases: ["doublecircle"],
4529
- handler: doublecircle
4530
- },
4531
- {
4532
- semanticName: "Text Block",
4533
- name: "Text Block",
4534
- shortName: "text",
4535
- description: "Text block",
4536
- handler: text
4537
- },
4538
- {
4539
- semanticName: "Card",
4540
- name: "Notched Rectangle",
4541
- shortName: "notch-rect",
4542
- description: "Represents a card",
4543
- aliases: ["card", "notched-rectangle"],
4544
- handler: card
4545
- },
4546
- {
4547
- semanticName: "Lined/Shaded Process",
4548
- name: "Lined Rectangle",
4549
- shortName: "lin-rect",
4550
- description: "Lined process shape",
4551
- aliases: [
4552
- "lined-rectangle",
4553
- "lined-process",
4554
- "lin-proc",
4555
- "shaded-process"
4556
- ],
4557
- handler: shadedProcess
4558
- },
4559
- {
4560
- semanticName: "Start",
4561
- name: "Small Circle",
4562
- shortName: "sm-circ",
4563
- description: "Small starting point",
4564
- aliases: ["start", "small-circle"],
4565
- internalAliases: ["stateStart"],
4566
- handler: stateStart
4567
- },
4568
- {
4569
- semanticName: "Stop",
4570
- name: "Framed Circle",
4571
- shortName: "fr-circ",
4572
- description: "Stop point",
4573
- aliases: ["stop", "framed-circle"],
4574
- internalAliases: ["stateEnd"],
4575
- handler: stateEnd
4576
- },
4577
- {
4578
- semanticName: "Fork/Join",
4579
- name: "Filled Rectangle",
4580
- shortName: "fork",
4581
- description: "Fork or join in process flow",
4582
- aliases: ["join"],
4583
- internalAliases: ["forkJoin"],
4584
- handler: forkJoin
4585
- },
4586
- {
4587
- semanticName: "Collate",
4588
- name: "Hourglass",
4589
- shortName: "hourglass",
4590
- description: "Represents a collate operation",
4591
- aliases: ["hourglass", "collate"],
4592
- handler: hourglass
4593
- },
4594
- {
4595
- semanticName: "Comment",
4596
- name: "Curly Brace",
4597
- shortName: "brace",
4598
- description: "Adds a comment",
4599
- aliases: ["comment", "brace-l"],
4600
- handler: curlyBraceLeft
4601
- },
4602
- {
4603
- semanticName: "Comment Right",
4604
- name: "Curly Brace",
4605
- shortName: "brace-r",
4606
- description: "Adds a comment",
4607
- handler: curlyBraceRight
4608
- },
4609
- {
4610
- semanticName: "Comment with braces on both sides",
4611
- name: "Curly Braces",
4612
- shortName: "braces",
4613
- description: "Adds a comment",
4614
- handler: curlyBraces
4615
- },
4616
- {
4617
- semanticName: "Com Link",
4618
- name: "Lightning Bolt",
4619
- shortName: "bolt",
4620
- description: "Communication link",
4621
- aliases: ["com-link", "lightning-bolt"],
4622
- handler: lightningBolt
4623
- },
4624
- {
4625
- semanticName: "Document",
4626
- name: "Document",
4627
- shortName: "doc",
4628
- description: "Represents a document",
4629
- aliases: ["doc", "document"],
4630
- handler: waveEdgedRectangle
4631
- },
4632
- {
4633
- semanticName: "Delay",
4634
- name: "Half-Rounded Rectangle",
4635
- shortName: "delay",
4636
- description: "Represents a delay",
4637
- aliases: ["half-rounded-rectangle"],
4638
- handler: halfRoundedRectangle
4639
- },
4640
- {
4641
- semanticName: "Direct Access Storage",
4642
- name: "Horizontal Cylinder",
4643
- shortName: "h-cyl",
4644
- description: "Direct access storage",
4645
- aliases: ["das", "horizontal-cylinder"],
4646
- handler: tiltedCylinder
4647
- },
4648
- {
4649
- semanticName: "Disk Storage",
4650
- name: "Lined Cylinder",
4651
- shortName: "lin-cyl",
4652
- description: "Disk storage",
4653
- aliases: ["disk", "lined-cylinder"],
4654
- handler: linedCylinder
4655
- },
4656
- {
4657
- semanticName: "Display",
4658
- name: "Curved Trapezoid",
4659
- shortName: "curv-trap",
4660
- description: "Represents a display",
4661
- aliases: ["curved-trapezoid", "display"],
4662
- handler: curvedTrapezoid
4663
- },
4664
- {
4665
- semanticName: "Divided Process",
4666
- name: "Divided Rectangle",
4667
- shortName: "div-rect",
4668
- description: "Divided process shape",
4669
- aliases: [
4670
- "div-proc",
4671
- "divided-rectangle",
4672
- "divided-process"
4673
- ],
4674
- handler: dividedRectangle
4675
- },
4676
- {
4677
- semanticName: "Extract",
4678
- name: "Triangle",
4679
- shortName: "tri",
4680
- description: "Extraction process",
4681
- aliases: ["extract", "triangle"],
4682
- handler: triangle
4683
- },
4684
- {
4685
- semanticName: "Internal Storage",
4686
- name: "Window Pane",
4687
- shortName: "win-pane",
4688
- description: "Internal storage",
4689
- aliases: ["internal-storage", "window-pane"],
4690
- handler: windowPane
4691
- },
4692
- {
4693
- semanticName: "Junction",
4694
- name: "Filled Circle",
4695
- shortName: "f-circ",
4696
- description: "Junction point",
4697
- aliases: ["junction", "filled-circle"],
4698
- handler: filledCircle
4699
- },
4700
- {
4701
- semanticName: "Loop Limit",
4702
- name: "Trapezoidal Pentagon",
4703
- shortName: "notch-pent",
4704
- description: "Loop limit step",
4705
- aliases: ["loop-limit", "notched-pentagon"],
4706
- handler: trapezoidalPentagon
4707
- },
4708
- {
4709
- semanticName: "Manual File",
4710
- name: "Flipped Triangle",
4711
- shortName: "flip-tri",
4712
- description: "Manual file operation",
4713
- aliases: ["manual-file", "flipped-triangle"],
4714
- handler: flippedTriangle
4715
- },
4716
- {
4717
- semanticName: "Manual Input",
4718
- name: "Sloped Rectangle",
4719
- shortName: "sl-rect",
4720
- description: "Manual input step",
4721
- aliases: ["manual-input", "sloped-rectangle"],
4722
- handler: slopedRect
4723
- },
4724
- {
4725
- semanticName: "Multi-Document",
4726
- name: "Stacked Document",
4727
- shortName: "docs",
4728
- description: "Multiple documents",
4729
- aliases: [
4730
- "documents",
4731
- "st-doc",
4732
- "stacked-document"
4733
- ],
4734
- handler: multiWaveEdgedRectangle
4735
- },
4736
- {
4737
- semanticName: "Multi-Process",
4738
- name: "Stacked Rectangle",
4739
- shortName: "st-rect",
4740
- description: "Multiple processes",
4741
- aliases: [
4742
- "procs",
4743
- "processes",
4744
- "stacked-rectangle"
4745
- ],
4746
- handler: multiRect
4747
- },
4748
- {
4749
- semanticName: "Stored Data",
4750
- name: "Bow Tie Rectangle",
4751
- shortName: "bow-rect",
4752
- description: "Stored data",
4753
- aliases: ["stored-data", "bow-tie-rectangle"],
4754
- handler: bowTieRect
4755
- },
4756
- {
4757
- semanticName: "Summary",
4758
- name: "Crossed Circle",
4759
- shortName: "cross-circ",
4760
- description: "Summary",
4761
- aliases: ["summary", "crossed-circle"],
4762
- handler: crossedCircle
4763
- },
4764
- {
4765
- semanticName: "Tagged Document",
4766
- name: "Tagged Document",
4767
- shortName: "tag-doc",
4768
- description: "Tagged document",
4769
- aliases: ["tag-doc", "tagged-document"],
4770
- handler: taggedWaveEdgedRectangle
4771
- },
4772
- {
4773
- semanticName: "Tagged Process",
4774
- name: "Tagged Rectangle",
4775
- shortName: "tag-rect",
4776
- description: "Tagged process",
4777
- aliases: [
4778
- "tagged-rectangle",
4779
- "tag-proc",
4780
- "tagged-process"
4781
- ],
4782
- handler: taggedRect
4783
- },
4784
- {
4785
- semanticName: "Paper Tape",
4786
- name: "Flag",
4787
- shortName: "flag",
4788
- description: "Paper tape",
4789
- aliases: ["paper-tape"],
4790
- handler: waveRectangle
4791
- },
4792
- {
4793
- semanticName: "Odd",
4794
- name: "Odd",
4795
- shortName: "odd",
4796
- description: "Odd shape",
4797
- internalAliases: ["rect_left_inv_arrow"],
4798
- handler: rect_left_inv_arrow
4799
- },
4800
- {
4801
- semanticName: "Lined Document",
4802
- name: "Lined Document",
4803
- shortName: "lin-doc",
4804
- description: "Lined document",
4805
- aliases: ["lined-document"],
4806
- handler: linedWaveEdgedRect
4807
- }
4808
- ], shapes2 = (/* @__PURE__ */ __name(() => {
4809
- let St = {
4810
- state,
4811
- choice,
4812
- note,
4813
- rectWithTitle,
4814
- labelRect,
4815
- iconSquare,
4816
- iconCircle,
4817
- icon,
4818
- iconRounded,
4819
- imageSquare,
4820
- anchor,
4821
- kanbanItem,
4822
- mindmapCircle,
4823
- defaultMindmapNode,
4824
- classBox,
4825
- erBox,
4826
- requirementBox
4827
- }, lr = [...Object.entries(St), ...shapesDefs.flatMap((St) => [
4828
- St.shortName,
4829
- ..."aliases" in St ? St.aliases : [],
4830
- ..."internalAliases" in St ? St.internalAliases : []
4831
- ].map((lr) => [lr, St.handler]))];
4832
- return Object.fromEntries(lr);
4833
- }, "generateShapeMap"))();
4834
- function isValidShape(St) {
4835
- return St in shapes2;
4836
- }
4837
- __name(isValidShape, "isValidShape");
4838
- var nodeElems = /* @__PURE__ */ new Map();
4839
- async function insertNode(St, lr, ur) {
4840
- let dr, fr;
4841
- lr.shape === "rect" && (lr.rx && lr.ry ? lr.shape = "roundedRect" : lr.shape = "squareRect");
4842
- let pr = lr.shape ? shapes2[lr.shape] : void 0;
4843
- if (!pr) throw Error(`No such shape: ${lr.shape}. Please check your syntax.`);
4844
- if (lr.link) {
4845
- let mr;
4846
- ur.config.securityLevel === "sandbox" ? mr = "_top" : lr.linkTarget && (mr = lr.linkTarget || "_blank"), dr = St.insert("svg:a").attr("xlink:href", lr.link).attr("target", mr ?? null), fr = await pr(dr, lr, ur);
4847
- } else fr = await pr(St, lr, ur), dr = fr;
4848
- return lr.tooltip && fr.attr("title", lr.tooltip), nodeElems.set(lr.id, dr), lr.haveCallback && dr.attr("class", dr.attr("class") + " clickable"), dr;
4849
- }
4850
- __name(insertNode, "insertNode");
4851
- var setNodeElem = /* @__PURE__ */ __name((St, lr) => {
4852
- nodeElems.set(lr.id, St);
4853
- }, "setNodeElem"), clear2 = /* @__PURE__ */ __name(() => {
4854
- nodeElems.clear();
4855
- }, "clear"), positionNode = /* @__PURE__ */ __name((St) => {
4856
- let lr = nodeElems.get(St.id);
4857
- log.trace("Transforming node", St.diff, St, "translate(" + (St.x - St.width / 2 - 5) + ", " + St.width / 2 + ")");
4858
- let ur = St.diff || 0;
4859
- return St.clusterNode ? lr.attr("transform", "translate(" + (St.x + ur - St.width / 2) + ", " + (St.y - St.height / 2 - 8) + ")") : lr.attr("transform", "translate(" + St.x + ", " + St.y + ")"), ur;
4860
- }, "positionNode");
4861
- export { insertNode as a, positionNode as c, at as d, insertCluster as i, setNodeElem as l, clear2 as n, isValidShape as o, createLabel_default as r, labelHelper as s, clear as t, updateNodeBounds as u };