minerva-design 1.4.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (824) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +21 -21
  3. package/custom-elements.json +3072 -611
  4. package/dist/angular/fesm2022/minerva-angular.mjs +1491 -5
  5. package/dist/angular/fesm2022/minerva-angular.mjs.map +1 -1
  6. package/dist/angular/types/minerva-angular.d.ts +595 -5
  7. package/dist/charts/canvas.d.cts +4 -3
  8. package/dist/charts/canvas.d.ts +4 -3
  9. package/dist/charts/core.cjs +1 -1
  10. package/dist/charts/core.d.cts +6 -4
  11. package/dist/charts/core.d.ts +6 -4
  12. package/dist/charts/core.js +24 -16
  13. package/dist/charts/engine/axis.cjs +1 -1
  14. package/dist/charts/engine/axis.cjs.map +1 -1
  15. package/dist/charts/engine/axis.js +42 -19
  16. package/dist/charts/engine/axis.js.map +1 -1
  17. package/dist/charts/engine/canvas.cjs +1 -1
  18. package/dist/charts/engine/canvas.cjs.map +1 -1
  19. package/dist/charts/engine/canvas.js +155 -127
  20. package/dist/charts/engine/canvas.js.map +1 -1
  21. package/dist/charts/engine/chart.cjs +1 -1
  22. package/dist/charts/engine/chart.cjs.map +1 -1
  23. package/dist/charts/engine/chart.js +370 -255
  24. package/dist/charts/engine/chart.js.map +1 -1
  25. package/dist/charts/engine/color.cjs +1 -1
  26. package/dist/charts/engine/color.cjs.map +1 -1
  27. package/dist/charts/engine/color.d.cts +18 -0
  28. package/dist/charts/engine/color.d.ts +18 -0
  29. package/dist/charts/engine/color.js +48 -2
  30. package/dist/charts/engine/color.js.map +1 -1
  31. package/dist/charts/engine/controller.cjs +2 -2
  32. package/dist/charts/engine/controller.cjs.map +1 -1
  33. package/dist/charts/engine/controller.d.cts +34 -1
  34. package/dist/charts/engine/controller.d.ts +34 -1
  35. package/dist/charts/engine/controller.js +318 -273
  36. package/dist/charts/engine/controller.js.map +1 -1
  37. package/dist/charts/engine/data.cjs +1 -1
  38. package/dist/charts/engine/data.cjs.map +1 -1
  39. package/dist/charts/engine/data.d.cts +3 -1
  40. package/dist/charts/engine/data.d.ts +3 -1
  41. package/dist/charts/engine/data.js +6 -4
  42. package/dist/charts/engine/data.js.map +1 -1
  43. package/dist/charts/engine/defaults.cjs +2 -0
  44. package/dist/charts/engine/defaults.cjs.map +1 -0
  45. package/dist/charts/engine/defaults.d.cts +20 -0
  46. package/dist/charts/engine/defaults.d.ts +20 -0
  47. package/dist/charts/engine/defaults.js +35 -0
  48. package/dist/charts/engine/defaults.js.map +1 -0
  49. package/dist/charts/engine/format.cjs +1 -1
  50. package/dist/charts/engine/format.cjs.map +1 -1
  51. package/dist/charts/engine/format.d.cts +6 -0
  52. package/dist/charts/engine/format.d.ts +6 -0
  53. package/dist/charts/engine/format.js +15 -2
  54. package/dist/charts/engine/format.js.map +1 -1
  55. package/dist/charts/engine/graph/chart.cjs +2 -0
  56. package/dist/charts/engine/graph/chart.cjs.map +1 -0
  57. package/dist/charts/engine/graph/chart.d.cts +3 -0
  58. package/dist/charts/engine/graph/chart.d.ts +3 -0
  59. package/dist/charts/engine/graph/chart.js +1708 -0
  60. package/dist/charts/engine/graph/chart.js.map +1 -0
  61. package/dist/charts/engine/graph/circular.cjs +2 -0
  62. package/dist/charts/engine/graph/circular.cjs.map +1 -0
  63. package/dist/charts/engine/graph/circular.d.cts +16 -0
  64. package/dist/charts/engine/graph/circular.d.ts +16 -0
  65. package/dist/charts/engine/graph/circular.js +62 -0
  66. package/dist/charts/engine/graph/circular.js.map +1 -0
  67. package/dist/charts/engine/graph/dag.cjs +2 -0
  68. package/dist/charts/engine/graph/dag.cjs.map +1 -0
  69. package/dist/charts/engine/graph/dag.d.cts +34 -0
  70. package/dist/charts/engine/graph/dag.d.ts +34 -0
  71. package/dist/charts/engine/graph/dag.js +339 -0
  72. package/dist/charts/engine/graph/dag.js.map +1 -0
  73. package/dist/charts/engine/graph/dom.cjs +2 -0
  74. package/dist/charts/engine/graph/dom.cjs.map +1 -0
  75. package/dist/charts/engine/graph/dom.d.cts +23 -0
  76. package/dist/charts/engine/graph/dom.d.ts +23 -0
  77. package/dist/charts/engine/graph/dom.js +158 -0
  78. package/dist/charts/engine/graph/dom.js.map +1 -0
  79. package/dist/charts/engine/graph/force.cjs +2 -0
  80. package/dist/charts/engine/graph/force.cjs.map +1 -0
  81. package/dist/charts/engine/graph/force.d.cts +76 -0
  82. package/dist/charts/engine/graph/force.d.ts +76 -0
  83. package/dist/charts/engine/graph/force.js +423 -0
  84. package/dist/charts/engine/graph/force.js.map +1 -0
  85. package/dist/charts/engine/graph/geometry.cjs +2 -0
  86. package/dist/charts/engine/graph/geometry.cjs.map +1 -0
  87. package/dist/charts/engine/graph/geometry.d.cts +50 -0
  88. package/dist/charts/engine/graph/geometry.d.ts +50 -0
  89. package/dist/charts/engine/graph/geometry.js +197 -0
  90. package/dist/charts/engine/graph/geometry.js.map +1 -0
  91. package/dist/charts/engine/graph/index.cjs +1 -0
  92. package/dist/charts/engine/graph/index.d.cts +6 -0
  93. package/dist/charts/engine/graph/index.d.ts +6 -0
  94. package/dist/charts/engine/graph/index.js +6 -0
  95. package/dist/charts/engine/graph/labels.cjs +2 -0
  96. package/dist/charts/engine/graph/labels.cjs.map +1 -0
  97. package/dist/charts/engine/graph/labels.d.cts +12 -0
  98. package/dist/charts/engine/graph/labels.d.ts +12 -0
  99. package/dist/charts/engine/graph/labels.js +128 -0
  100. package/dist/charts/engine/graph/labels.js.map +1 -0
  101. package/dist/charts/engine/graph/model.cjs +2 -0
  102. package/dist/charts/engine/graph/model.cjs.map +1 -0
  103. package/dist/charts/engine/graph/model.d.cts +52 -0
  104. package/dist/charts/engine/graph/model.d.ts +52 -0
  105. package/dist/charts/engine/graph/model.js +108 -0
  106. package/dist/charts/engine/graph/model.js.map +1 -0
  107. package/dist/charts/engine/graph/sizing.cjs +2 -0
  108. package/dist/charts/engine/graph/sizing.cjs.map +1 -0
  109. package/dist/charts/engine/graph/sizing.d.cts +33 -0
  110. package/dist/charts/engine/graph/sizing.d.ts +33 -0
  111. package/dist/charts/engine/graph/sizing.js +60 -0
  112. package/dist/charts/engine/graph/sizing.js.map +1 -0
  113. package/dist/charts/engine/graph/tree.cjs +2 -0
  114. package/dist/charts/engine/graph/tree.cjs.map +1 -0
  115. package/dist/charts/engine/graph/tree.d.cts +30 -0
  116. package/dist/charts/engine/graph/tree.d.ts +30 -0
  117. package/dist/charts/engine/graph/tree.js +218 -0
  118. package/dist/charts/engine/graph/tree.js.map +1 -0
  119. package/dist/charts/engine/graph/types.d.cts +640 -0
  120. package/dist/charts/engine/graph/types.d.ts +640 -0
  121. package/dist/charts/engine/graph/worker.cjs +52 -0
  122. package/dist/charts/engine/graph/worker.cjs.map +1 -0
  123. package/dist/charts/engine/graph/worker.d.cts +36 -0
  124. package/dist/charts/engine/graph/worker.d.ts +36 -0
  125. package/dist/charts/engine/graph/worker.js +135 -0
  126. package/dist/charts/engine/graph/worker.js.map +1 -0
  127. package/dist/charts/engine/items.cjs +1 -1
  128. package/dist/charts/engine/items.cjs.map +1 -1
  129. package/dist/charts/engine/items.d.cts +15 -2
  130. package/dist/charts/engine/items.d.ts +15 -2
  131. package/dist/charts/engine/items.js +131 -112
  132. package/dist/charts/engine/items.js.map +1 -1
  133. package/dist/charts/engine/labels.cjs +1 -1
  134. package/dist/charts/engine/labels.cjs.map +1 -1
  135. package/dist/charts/engine/labels.d.cts +17 -0
  136. package/dist/charts/engine/labels.d.ts +17 -0
  137. package/dist/charts/engine/labels.js +28 -4
  138. package/dist/charts/engine/labels.js.map +1 -1
  139. package/dist/charts/engine/layout.cjs +1 -1
  140. package/dist/charts/engine/layout.cjs.map +1 -1
  141. package/dist/charts/engine/layout.d.cts +9 -0
  142. package/dist/charts/engine/layout.d.ts +9 -0
  143. package/dist/charts/engine/layout.js +11 -2
  144. package/dist/charts/engine/layout.js.map +1 -1
  145. package/dist/charts/engine/model.cjs +1 -1
  146. package/dist/charts/engine/model.cjs.map +1 -1
  147. package/dist/charts/engine/model.d.cts +73 -3
  148. package/dist/charts/engine/model.d.ts +73 -3
  149. package/dist/charts/engine/model.js +258 -154
  150. package/dist/charts/engine/model.js.map +1 -1
  151. package/dist/charts/engine/orderbook/field.cjs +37 -0
  152. package/dist/charts/engine/orderbook/field.cjs.map +1 -0
  153. package/dist/charts/engine/orderbook/field.d.cts +92 -0
  154. package/dist/charts/engine/orderbook/field.d.ts +92 -0
  155. package/dist/charts/engine/orderbook/field.js +297 -0
  156. package/dist/charts/engine/orderbook/field.js.map +1 -0
  157. package/dist/charts/engine/orderbook/format.cjs +1 -1
  158. package/dist/charts/engine/orderbook/format.cjs.map +1 -1
  159. package/dist/charts/engine/orderbook/format.d.cts +3 -2
  160. package/dist/charts/engine/orderbook/format.d.ts +3 -2
  161. package/dist/charts/engine/orderbook/format.js +5 -5
  162. package/dist/charts/engine/orderbook/format.js.map +1 -1
  163. package/dist/charts/engine/orderbook/heatmap.cjs +1 -1
  164. package/dist/charts/engine/orderbook/heatmap.cjs.map +1 -1
  165. package/dist/charts/engine/orderbook/heatmap.js +566 -475
  166. package/dist/charts/engine/orderbook/heatmap.js.map +1 -1
  167. package/dist/charts/engine/orderbook/host.cjs +1 -1
  168. package/dist/charts/engine/orderbook/host.cjs.map +1 -1
  169. package/dist/charts/engine/orderbook/host.d.cts +8 -1
  170. package/dist/charts/engine/orderbook/host.d.ts +8 -1
  171. package/dist/charts/engine/orderbook/host.js +27 -5
  172. package/dist/charts/engine/orderbook/host.js.map +1 -1
  173. package/dist/charts/engine/orderbook/ladder.cjs +1 -1
  174. package/dist/charts/engine/orderbook/ladder.cjs.map +1 -1
  175. package/dist/charts/engine/orderbook/ladder.js +1 -1
  176. package/dist/charts/engine/orderbook/ladder.js.map +1 -1
  177. package/dist/charts/engine/orderbook/layout.cjs +2 -0
  178. package/dist/charts/engine/orderbook/layout.cjs.map +1 -0
  179. package/dist/charts/engine/orderbook/layout.d.cts +42 -0
  180. package/dist/charts/engine/orderbook/layout.d.ts +42 -0
  181. package/dist/charts/engine/orderbook/layout.js +76 -0
  182. package/dist/charts/engine/orderbook/layout.js.map +1 -0
  183. package/dist/charts/engine/orderbook/tape.cjs +1 -1
  184. package/dist/charts/engine/orderbook/tape.cjs.map +1 -1
  185. package/dist/charts/engine/orderbook/tape.js +4 -4
  186. package/dist/charts/engine/orderbook/tape.js.map +1 -1
  187. package/dist/charts/engine/orderbook/types.d.cts +27 -3
  188. package/dist/charts/engine/orderbook/types.d.ts +27 -3
  189. package/dist/charts/engine/overlay.cjs +1 -1
  190. package/dist/charts/engine/overlay.cjs.map +1 -1
  191. package/dist/charts/engine/overlay.d.cts +27 -0
  192. package/dist/charts/engine/overlay.d.ts +27 -0
  193. package/dist/charts/engine/overlay.js +34 -12
  194. package/dist/charts/engine/overlay.js.map +1 -1
  195. package/dist/charts/engine/presets.cjs +2 -2
  196. package/dist/charts/engine/presets.cjs.map +1 -1
  197. package/dist/charts/engine/presets.d.cts +35 -3
  198. package/dist/charts/engine/presets.d.ts +35 -3
  199. package/dist/charts/engine/presets.js +121 -101
  200. package/dist/charts/engine/presets.js.map +1 -1
  201. package/dist/charts/engine/renderers/canvas2d.cjs +1 -1
  202. package/dist/charts/engine/renderers/canvas2d.cjs.map +1 -1
  203. package/dist/charts/engine/renderers/canvas2d.js +13 -9
  204. package/dist/charts/engine/renderers/canvas2d.js.map +1 -1
  205. package/dist/charts/engine/renderers/detect.cjs +1 -1
  206. package/dist/charts/engine/renderers/detect.cjs.map +1 -1
  207. package/dist/charts/engine/renderers/detect.d.cts +2 -1
  208. package/dist/charts/engine/renderers/detect.d.ts +2 -1
  209. package/dist/charts/engine/renderers/detect.js +23 -21
  210. package/dist/charts/engine/renderers/detect.js.map +1 -1
  211. package/dist/charts/engine/renderers/follow.cjs +2 -0
  212. package/dist/charts/engine/renderers/follow.cjs.map +1 -0
  213. package/dist/charts/engine/renderers/follow.d.cts +8 -0
  214. package/dist/charts/engine/renderers/follow.d.ts +8 -0
  215. package/dist/charts/engine/renderers/follow.js +10 -0
  216. package/dist/charts/engine/renderers/follow.js.map +1 -0
  217. package/dist/charts/engine/renderers/gl-budget.cjs +2 -0
  218. package/dist/charts/engine/renderers/gl-budget.cjs.map +1 -0
  219. package/dist/charts/engine/renderers/gl-budget.d.cts +32 -0
  220. package/dist/charts/engine/renderers/gl-budget.d.ts +32 -0
  221. package/dist/charts/engine/renderers/gl-budget.js +95 -0
  222. package/dist/charts/engine/renderers/gl-budget.js.map +1 -0
  223. package/dist/charts/engine/renderers/gl.cjs +1 -1
  224. package/dist/charts/engine/renderers/gl.cjs.map +1 -1
  225. package/dist/charts/engine/renderers/gl.js +1 -1
  226. package/dist/charts/engine/renderers/gl.js.map +1 -1
  227. package/dist/charts/engine/renderers/shaders.cjs +9 -6
  228. package/dist/charts/engine/renderers/shaders.cjs.map +1 -1
  229. package/dist/charts/engine/renderers/shaders.d.cts +1 -1
  230. package/dist/charts/engine/renderers/shaders.d.ts +1 -1
  231. package/dist/charts/engine/renderers/shaders.js +9 -6
  232. package/dist/charts/engine/renderers/shaders.js.map +1 -1
  233. package/dist/charts/engine/renderers/types.cjs.map +1 -1
  234. package/dist/charts/engine/renderers/types.d.cts +2 -0
  235. package/dist/charts/engine/renderers/types.d.ts +2 -0
  236. package/dist/charts/engine/renderers/types.js.map +1 -1
  237. package/dist/charts/engine/renderers/webgl.cjs +1 -1
  238. package/dist/charts/engine/renderers/webgl.cjs.map +1 -1
  239. package/dist/charts/engine/renderers/webgl.js +85 -64
  240. package/dist/charts/engine/renderers/webgl.js.map +1 -1
  241. package/dist/charts/engine/renderers/webgl2.cjs +1 -1
  242. package/dist/charts/engine/renderers/webgl2.cjs.map +1 -1
  243. package/dist/charts/engine/renderers/webgl2.js +72 -58
  244. package/dist/charts/engine/renderers/webgl2.js.map +1 -1
  245. package/dist/charts/engine/renderers/webgpu.cjs +1 -1
  246. package/dist/charts/engine/renderers/webgpu.cjs.map +1 -1
  247. package/dist/charts/engine/renderers/webgpu.js +1 -1
  248. package/dist/charts/engine/renderers/webgpu.js.map +1 -1
  249. package/dist/charts/engine/scene.cjs +1 -1
  250. package/dist/charts/engine/scene.cjs.map +1 -1
  251. package/dist/charts/engine/scene.d.cts +104 -4
  252. package/dist/charts/engine/scene.d.ts +104 -4
  253. package/dist/charts/engine/scene.js +412 -193
  254. package/dist/charts/engine/scene.js.map +1 -1
  255. package/dist/charts/engine/shapes/bullet.cjs +1 -1
  256. package/dist/charts/engine/shapes/bullet.cjs.map +1 -1
  257. package/dist/charts/engine/shapes/bullet.js +110 -110
  258. package/dist/charts/engine/shapes/bullet.js.map +1 -1
  259. package/dist/charts/engine/shapes/chart.cjs +1 -1
  260. package/dist/charts/engine/shapes/chart.cjs.map +1 -1
  261. package/dist/charts/engine/shapes/chart.js +4 -1
  262. package/dist/charts/engine/shapes/chart.js.map +1 -1
  263. package/dist/charts/engine/shapes/chord.cjs +2 -0
  264. package/dist/charts/engine/shapes/chord.cjs.map +1 -0
  265. package/dist/charts/engine/shapes/chord.d.cts +18 -0
  266. package/dist/charts/engine/shapes/chord.d.ts +18 -0
  267. package/dist/charts/engine/shapes/chord.js +419 -0
  268. package/dist/charts/engine/shapes/chord.js.map +1 -0
  269. package/dist/charts/engine/shapes/draw.cjs +1 -1
  270. package/dist/charts/engine/shapes/draw.cjs.map +1 -1
  271. package/dist/charts/engine/shapes/draw.d.cts +5 -1
  272. package/dist/charts/engine/shapes/draw.d.ts +5 -1
  273. package/dist/charts/engine/shapes/draw.js +47 -17
  274. package/dist/charts/engine/shapes/draw.js.map +1 -1
  275. package/dist/charts/engine/shapes/hit.cjs +1 -1
  276. package/dist/charts/engine/shapes/hit.cjs.map +1 -1
  277. package/dist/charts/engine/shapes/hit.d.cts +3 -1
  278. package/dist/charts/engine/shapes/hit.d.ts +3 -1
  279. package/dist/charts/engine/shapes/hit.js +75 -46
  280. package/dist/charts/engine/shapes/hit.js.map +1 -1
  281. package/dist/charts/engine/shapes/index.d.cts +3 -2
  282. package/dist/charts/engine/shapes/index.d.ts +3 -2
  283. package/dist/charts/engine/shapes/labels.cjs +1 -1
  284. package/dist/charts/engine/shapes/labels.cjs.map +1 -1
  285. package/dist/charts/engine/shapes/labels.js +12 -4
  286. package/dist/charts/engine/shapes/labels.js.map +1 -1
  287. package/dist/charts/engine/shapes/layout.cjs +2 -2
  288. package/dist/charts/engine/shapes/layout.cjs.map +1 -1
  289. package/dist/charts/engine/shapes/layout.d.cts +3 -1
  290. package/dist/charts/engine/shapes/layout.d.ts +3 -1
  291. package/dist/charts/engine/shapes/layout.js +106 -78
  292. package/dist/charts/engine/shapes/layout.js.map +1 -1
  293. package/dist/charts/engine/shapes/scene.cjs +1 -1
  294. package/dist/charts/engine/shapes/scene.cjs.map +1 -1
  295. package/dist/charts/engine/shapes/scene.d.cts +33 -3
  296. package/dist/charts/engine/shapes/scene.d.ts +33 -3
  297. package/dist/charts/engine/shapes/scene.js +62 -19
  298. package/dist/charts/engine/shapes/scene.js.map +1 -1
  299. package/dist/charts/engine/shapes/types.d.cts +121 -8
  300. package/dist/charts/engine/shapes/types.d.ts +121 -8
  301. package/dist/charts/engine/signature.cjs +1 -1
  302. package/dist/charts/engine/signature.cjs.map +1 -1
  303. package/dist/charts/engine/signature.js +1 -1
  304. package/dist/charts/engine/signature.js.map +1 -1
  305. package/dist/charts/engine/three-d/canvas2d.cjs +1 -1
  306. package/dist/charts/engine/three-d/canvas2d.cjs.map +1 -1
  307. package/dist/charts/engine/three-d/canvas2d.d.cts +41 -3
  308. package/dist/charts/engine/three-d/canvas2d.d.ts +41 -3
  309. package/dist/charts/engine/three-d/canvas2d.js +166 -67
  310. package/dist/charts/engine/three-d/canvas2d.js.map +1 -1
  311. package/dist/charts/engine/three-d/chart.cjs +1 -1
  312. package/dist/charts/engine/three-d/chart.cjs.map +1 -1
  313. package/dist/charts/engine/three-d/chart.js +219 -215
  314. package/dist/charts/engine/three-d/chart.js.map +1 -1
  315. package/dist/charts/engine/three-d/detect.cjs +1 -1
  316. package/dist/charts/engine/three-d/detect.cjs.map +1 -1
  317. package/dist/charts/engine/three-d/detect.d.cts +3 -2
  318. package/dist/charts/engine/three-d/detect.d.ts +3 -2
  319. package/dist/charts/engine/three-d/detect.js +22 -20
  320. package/dist/charts/engine/three-d/detect.js.map +1 -1
  321. package/dist/charts/engine/three-d/geometry.cjs +1 -1
  322. package/dist/charts/engine/three-d/geometry.cjs.map +1 -1
  323. package/dist/charts/engine/three-d/geometry.d.cts +6 -0
  324. package/dist/charts/engine/three-d/geometry.d.ts +6 -0
  325. package/dist/charts/engine/three-d/geometry.js +106 -90
  326. package/dist/charts/engine/three-d/geometry.js.map +1 -1
  327. package/dist/charts/engine/three-d/model.cjs +1 -1
  328. package/dist/charts/engine/three-d/model.cjs.map +1 -1
  329. package/dist/charts/engine/three-d/model.d.cts +2 -0
  330. package/dist/charts/engine/three-d/model.d.ts +2 -0
  331. package/dist/charts/engine/three-d/model.js +2 -0
  332. package/dist/charts/engine/three-d/model.js.map +1 -1
  333. package/dist/charts/engine/three-d/oit.cjs +109 -0
  334. package/dist/charts/engine/three-d/oit.cjs.map +1 -0
  335. package/dist/charts/engine/three-d/oit.d.cts +34 -0
  336. package/dist/charts/engine/three-d/oit.d.ts +34 -0
  337. package/dist/charts/engine/three-d/oit.js +111 -0
  338. package/dist/charts/engine/three-d/oit.js.map +1 -0
  339. package/dist/charts/engine/three-d/overlay.cjs +1 -1
  340. package/dist/charts/engine/three-d/overlay.cjs.map +1 -1
  341. package/dist/charts/engine/three-d/overlay.js +43 -36
  342. package/dist/charts/engine/three-d/overlay.js.map +1 -1
  343. package/dist/charts/engine/three-d/render-types.cjs +1 -1
  344. package/dist/charts/engine/three-d/render-types.cjs.map +1 -1
  345. package/dist/charts/engine/three-d/render-types.d.cts +37 -3
  346. package/dist/charts/engine/three-d/render-types.d.ts +37 -3
  347. package/dist/charts/engine/three-d/render-types.js +6 -10
  348. package/dist/charts/engine/three-d/render-types.js.map +1 -1
  349. package/dist/charts/engine/three-d/shaders.cjs +109 -48
  350. package/dist/charts/engine/three-d/shaders.cjs.map +1 -1
  351. package/dist/charts/engine/three-d/shaders.d.cts +12 -5
  352. package/dist/charts/engine/three-d/shaders.d.ts +12 -5
  353. package/dist/charts/engine/three-d/shaders.js +118 -55
  354. package/dist/charts/engine/three-d/shaders.js.map +1 -1
  355. package/dist/charts/engine/three-d/sort.cjs +1 -1
  356. package/dist/charts/engine/three-d/sort.cjs.map +1 -1
  357. package/dist/charts/engine/three-d/sort.d.cts +18 -5
  358. package/dist/charts/engine/three-d/sort.d.ts +18 -5
  359. package/dist/charts/engine/three-d/sort.js +129 -43
  360. package/dist/charts/engine/three-d/sort.js.map +1 -1
  361. package/dist/charts/engine/three-d/types.d.cts +36 -0
  362. package/dist/charts/engine/three-d/types.d.ts +36 -0
  363. package/dist/charts/engine/three-d/webgl.cjs +1 -1
  364. package/dist/charts/engine/three-d/webgl.cjs.map +1 -1
  365. package/dist/charts/engine/three-d/webgl.d.cts +9 -0
  366. package/dist/charts/engine/three-d/webgl.d.ts +9 -0
  367. package/dist/charts/engine/three-d/webgl.js +199 -74
  368. package/dist/charts/engine/three-d/webgl.js.map +1 -1
  369. package/dist/charts/engine/three-d/webgpu.cjs +1 -1
  370. package/dist/charts/engine/three-d/webgpu.cjs.map +1 -1
  371. package/dist/charts/engine/three-d/webgpu.js +231 -94
  372. package/dist/charts/engine/three-d/webgpu.js.map +1 -1
  373. package/dist/charts/engine/trading/chart.cjs +1 -1
  374. package/dist/charts/engine/trading/chart.cjs.map +1 -1
  375. package/dist/charts/engine/trading/chart.d.cts +10 -1
  376. package/dist/charts/engine/trading/chart.d.ts +10 -1
  377. package/dist/charts/engine/trading/chart.js +1677 -813
  378. package/dist/charts/engine/trading/chart.js.map +1 -1
  379. package/dist/charts/engine/trading/drawings.cjs +2 -1
  380. package/dist/charts/engine/trading/drawings.cjs.map +1 -1
  381. package/dist/charts/engine/trading/drawings.d.cts +53 -9
  382. package/dist/charts/engine/trading/drawings.d.ts +53 -9
  383. package/dist/charts/engine/trading/drawings.js +346 -71
  384. package/dist/charts/engine/trading/drawings.js.map +1 -1
  385. package/dist/charts/engine/trading/format.cjs +1 -1
  386. package/dist/charts/engine/trading/format.cjs.map +1 -1
  387. package/dist/charts/engine/trading/format.d.cts +19 -0
  388. package/dist/charts/engine/trading/format.d.ts +19 -0
  389. package/dist/charts/engine/trading/format.js +65 -21
  390. package/dist/charts/engine/trading/format.js.map +1 -1
  391. package/dist/charts/engine/trading/geometry.cjs +1 -1
  392. package/dist/charts/engine/trading/geometry.cjs.map +1 -1
  393. package/dist/charts/engine/trading/geometry.d.cts +16 -0
  394. package/dist/charts/engine/trading/geometry.d.ts +16 -0
  395. package/dist/charts/engine/trading/geometry.js +19 -4
  396. package/dist/charts/engine/trading/geometry.js.map +1 -1
  397. package/dist/charts/engine/trading/index.cjs +1 -1
  398. package/dist/charts/engine/trading/index.d.cts +2 -1
  399. package/dist/charts/engine/trading/index.d.ts +2 -1
  400. package/dist/charts/engine/trading/index.js +4 -3
  401. package/dist/charts/engine/trading/indicators.cjs +1 -1
  402. package/dist/charts/engine/trading/indicators.cjs.map +1 -1
  403. package/dist/charts/engine/trading/indicators.d.cts +180 -10
  404. package/dist/charts/engine/trading/indicators.d.ts +180 -10
  405. package/dist/charts/engine/trading/indicators.js +449 -173
  406. package/dist/charts/engine/trading/indicators.js.map +1 -1
  407. package/dist/charts/engine/trading/labels.cjs +1 -1
  408. package/dist/charts/engine/trading/labels.cjs.map +1 -1
  409. package/dist/charts/engine/trading/labels.js +104 -4
  410. package/dist/charts/engine/trading/labels.js.map +1 -1
  411. package/dist/charts/engine/trading/store.cjs +1 -1
  412. package/dist/charts/engine/trading/store.cjs.map +1 -1
  413. package/dist/charts/engine/trading/store.d.cts +21 -0
  414. package/dist/charts/engine/trading/store.d.ts +21 -0
  415. package/dist/charts/engine/trading/store.js +22 -1
  416. package/dist/charts/engine/trading/store.js.map +1 -1
  417. package/dist/charts/engine/trading/studies.cjs +1 -1
  418. package/dist/charts/engine/trading/studies.cjs.map +1 -1
  419. package/dist/charts/engine/trading/studies.d.cts +49 -8
  420. package/dist/charts/engine/trading/studies.d.ts +49 -8
  421. package/dist/charts/engine/trading/studies.js +352 -93
  422. package/dist/charts/engine/trading/studies.js.map +1 -1
  423. package/dist/charts/engine/trading/sync.cjs +2 -0
  424. package/dist/charts/engine/trading/sync.cjs.map +1 -0
  425. package/dist/charts/engine/trading/sync.d.cts +8 -0
  426. package/dist/charts/engine/trading/sync.d.ts +8 -0
  427. package/dist/charts/engine/trading/sync.js +25 -0
  428. package/dist/charts/engine/trading/sync.js.map +1 -0
  429. package/dist/charts/engine/trading/types.d.cts +514 -16
  430. package/dist/charts/engine/trading/types.d.ts +514 -16
  431. package/dist/charts/engine/types.d.cts +106 -11
  432. package/dist/charts/engine/types.d.ts +106 -11
  433. package/dist/charts/index.cjs +1 -1
  434. package/dist/charts/index.d.cts +3 -2
  435. package/dist/charts/index.d.ts +3 -2
  436. package/dist/charts/index.js +30 -22
  437. package/dist/charts/react/charts.cjs +1 -1
  438. package/dist/charts/react/charts.cjs.map +1 -1
  439. package/dist/charts/react/charts.js +51 -34
  440. package/dist/charts/react/charts.js.map +1 -1
  441. package/dist/charts/react/graph.cjs +2 -0
  442. package/dist/charts/react/graph.cjs.map +1 -0
  443. package/dist/charts/react/graph.d.cts +219 -0
  444. package/dist/charts/react/graph.d.ts +219 -0
  445. package/dist/charts/react/graph.js +160 -0
  446. package/dist/charts/react/graph.js.map +1 -0
  447. package/dist/charts/react/orderbook.cjs +1 -1
  448. package/dist/charts/react/orderbook.cjs.map +1 -1
  449. package/dist/charts/react/orderbook.d.cts +3 -1
  450. package/dist/charts/react/orderbook.d.ts +3 -1
  451. package/dist/charts/react/orderbook.js +1 -0
  452. package/dist/charts/react/orderbook.js.map +1 -1
  453. package/dist/charts/react/shapes.cjs +1 -1
  454. package/dist/charts/react/shapes.cjs.map +1 -1
  455. package/dist/charts/react/shapes.d.cts +88 -4
  456. package/dist/charts/react/shapes.d.ts +88 -4
  457. package/dist/charts/react/shapes.js +55 -12
  458. package/dist/charts/react/shapes.js.map +1 -1
  459. package/dist/charts/react/three-d.cjs +1 -1
  460. package/dist/charts/react/three-d.cjs.map +1 -1
  461. package/dist/charts/react/three-d.d.cts +7 -0
  462. package/dist/charts/react/three-d.d.ts +7 -0
  463. package/dist/charts/react/three-d.js +14 -13
  464. package/dist/charts/react/three-d.js.map +1 -1
  465. package/dist/charts/react/trading.cjs +1 -1
  466. package/dist/charts/react/trading.cjs.map +1 -1
  467. package/dist/charts/react/trading.d.cts +54 -2
  468. package/dist/charts/react/trading.d.ts +54 -2
  469. package/dist/charts/react/trading.js +68 -37
  470. package/dist/charts/react/trading.js.map +1 -1
  471. package/dist/charts/react/types.d.cts +11 -0
  472. package/dist/charts/react/types.d.ts +11 -0
  473. package/dist/core/contracts.cjs +1 -1
  474. package/dist/core/contracts.cjs.map +1 -1
  475. package/dist/core/contracts.js +1 -1
  476. package/dist/core/contracts.js.map +1 -1
  477. package/dist/native/charts/src/canvas.cjs +1 -1
  478. package/dist/native/charts/src/canvas.js +5 -4
  479. package/dist/native/charts/src/engine/axis.cjs +1 -1
  480. package/dist/native/charts/src/engine/axis.cjs.map +1 -1
  481. package/dist/native/charts/src/engine/axis.js +42 -19
  482. package/dist/native/charts/src/engine/axis.js.map +1 -1
  483. package/dist/native/charts/src/engine/color.cjs +1 -1
  484. package/dist/native/charts/src/engine/color.cjs.map +1 -1
  485. package/dist/native/charts/src/engine/color.js +47 -5
  486. package/dist/native/charts/src/engine/color.js.map +1 -1
  487. package/dist/native/charts/src/engine/controller.cjs +2 -2
  488. package/dist/native/charts/src/engine/controller.cjs.map +1 -1
  489. package/dist/native/charts/src/engine/controller.js +296 -251
  490. package/dist/native/charts/src/engine/controller.js.map +1 -1
  491. package/dist/native/charts/src/engine/data.cjs +1 -1
  492. package/dist/native/charts/src/engine/data.cjs.map +1 -1
  493. package/dist/native/charts/src/engine/data.js +6 -4
  494. package/dist/native/charts/src/engine/data.js.map +1 -1
  495. package/dist/native/charts/src/engine/format.cjs +1 -1
  496. package/dist/native/charts/src/engine/format.cjs.map +1 -1
  497. package/dist/native/charts/src/engine/format.js +15 -2
  498. package/dist/native/charts/src/engine/format.js.map +1 -1
  499. package/dist/native/charts/src/engine/labels.cjs +1 -1
  500. package/dist/native/charts/src/engine/labels.cjs.map +1 -1
  501. package/dist/native/charts/src/engine/labels.js +42 -5
  502. package/dist/native/charts/src/engine/labels.js.map +1 -1
  503. package/dist/native/charts/src/engine/layout.cjs +1 -1
  504. package/dist/native/charts/src/engine/layout.cjs.map +1 -1
  505. package/dist/native/charts/src/engine/layout.js +11 -2
  506. package/dist/native/charts/src/engine/layout.js.map +1 -1
  507. package/dist/native/charts/src/engine/model.cjs +1 -1
  508. package/dist/native/charts/src/engine/model.cjs.map +1 -1
  509. package/dist/native/charts/src/engine/model.js +278 -174
  510. package/dist/native/charts/src/engine/model.js.map +1 -1
  511. package/dist/native/charts/src/engine/overlay.cjs.map +1 -1
  512. package/dist/native/charts/src/engine/overlay.js.map +1 -1
  513. package/dist/native/charts/src/engine/presets.cjs +2 -2
  514. package/dist/native/charts/src/engine/presets.cjs.map +1 -1
  515. package/dist/native/charts/src/engine/presets.js +110 -90
  516. package/dist/native/charts/src/engine/presets.js.map +1 -1
  517. package/dist/native/charts/src/engine/scene.cjs +1 -1
  518. package/dist/native/charts/src/engine/scene.cjs.map +1 -1
  519. package/dist/native/charts/src/engine/scene.js +421 -202
  520. package/dist/native/charts/src/engine/scene.js.map +1 -1
  521. package/dist/native/charts/src/engine/shapes/bullet.cjs +1 -1
  522. package/dist/native/charts/src/engine/shapes/bullet.cjs.map +1 -1
  523. package/dist/native/charts/src/engine/shapes/bullet.js +110 -110
  524. package/dist/native/charts/src/engine/shapes/bullet.js.map +1 -1
  525. package/dist/native/charts/src/engine/shapes/calendar.cjs +1 -1
  526. package/dist/native/charts/src/engine/shapes/calendar.cjs.map +1 -1
  527. package/dist/native/charts/src/engine/shapes/calendar.js +21 -16
  528. package/dist/native/charts/src/engine/shapes/calendar.js.map +1 -1
  529. package/dist/native/charts/src/engine/shapes/chord.cjs +2 -0
  530. package/dist/native/charts/src/engine/shapes/chord.cjs.map +1 -0
  531. package/dist/native/charts/src/engine/shapes/chord.js +419 -0
  532. package/dist/native/charts/src/engine/shapes/chord.js.map +1 -0
  533. package/dist/native/charts/src/engine/shapes/draw.cjs +1 -1
  534. package/dist/native/charts/src/engine/shapes/draw.cjs.map +1 -1
  535. package/dist/native/charts/src/engine/shapes/draw.js +47 -17
  536. package/dist/native/charts/src/engine/shapes/draw.js.map +1 -1
  537. package/dist/native/charts/src/engine/shapes/hit.cjs +1 -1
  538. package/dist/native/charts/src/engine/shapes/hit.cjs.map +1 -1
  539. package/dist/native/charts/src/engine/shapes/hit.js +73 -44
  540. package/dist/native/charts/src/engine/shapes/hit.js.map +1 -1
  541. package/dist/native/charts/src/engine/shapes/labels.cjs +1 -1
  542. package/dist/native/charts/src/engine/shapes/labels.cjs.map +1 -1
  543. package/dist/native/charts/src/engine/shapes/labels.js +12 -4
  544. package/dist/native/charts/src/engine/shapes/labels.js.map +1 -1
  545. package/dist/native/charts/src/engine/shapes/layout.cjs +2 -2
  546. package/dist/native/charts/src/engine/shapes/layout.cjs.map +1 -1
  547. package/dist/native/charts/src/engine/shapes/layout.js +136 -94
  548. package/dist/native/charts/src/engine/shapes/layout.js.map +1 -1
  549. package/dist/native/charts/src/engine/shapes/scene.cjs +1 -1
  550. package/dist/native/charts/src/engine/shapes/scene.cjs.map +1 -1
  551. package/dist/native/charts/src/engine/shapes/scene.js +62 -19
  552. package/dist/native/charts/src/engine/shapes/scene.js.map +1 -1
  553. package/dist/native/components/Chart/ChartBase.cjs +1 -1
  554. package/dist/native/components/Chart/ChartBase.cjs.map +1 -1
  555. package/dist/native/components/Chart/ChartBase.js +127 -115
  556. package/dist/native/components/Chart/ChartBase.js.map +1 -1
  557. package/dist/native/components/Chart/charts.cjs +1 -1
  558. package/dist/native/components/Chart/charts.cjs.map +1 -1
  559. package/dist/native/components/Chart/charts.js +8 -5
  560. package/dist/native/components/Chart/charts.js.map +1 -1
  561. package/dist/native/components/Chart/scene.cjs +1 -1
  562. package/dist/native/components/Chart/scene.cjs.map +1 -1
  563. package/dist/native/components/Chart/scene.d.cts +6 -1
  564. package/dist/native/components/Chart/scene.d.ts +6 -1
  565. package/dist/native/components/Chart/scene.js +226 -108
  566. package/dist/native/components/Chart/scene.js.map +1 -1
  567. package/dist/native/components/Chart/types.d.cts +7 -1
  568. package/dist/native/components/Chart/types.d.ts +7 -1
  569. package/dist/native/components/Charts/charts.cjs +1 -1
  570. package/dist/native/components/Charts/charts.cjs.map +1 -1
  571. package/dist/native/components/Charts/charts.js +60 -43
  572. package/dist/native/components/Charts/charts.js.map +1 -1
  573. package/dist/native/components/Charts/types.d.cts +11 -0
  574. package/dist/native/components/Charts/types.d.ts +11 -0
  575. package/dist/native/components/ShapeChart/ShapeChartBase.cjs +1 -1
  576. package/dist/native/components/ShapeChart/ShapeChartBase.cjs.map +1 -1
  577. package/dist/native/components/ShapeChart/ShapeChartBase.d.cts +1 -1
  578. package/dist/native/components/ShapeChart/ShapeChartBase.d.ts +1 -1
  579. package/dist/native/components/ShapeChart/ShapeChartBase.js +97 -106
  580. package/dist/native/components/ShapeChart/ShapeChartBase.js.map +1 -1
  581. package/dist/native/components/ShapeChart/charts.cjs +1 -1
  582. package/dist/native/components/ShapeChart/charts.cjs.map +1 -1
  583. package/dist/native/components/ShapeChart/charts.d.cts +6 -1
  584. package/dist/native/components/ShapeChart/charts.d.ts +6 -1
  585. package/dist/native/components/ShapeChart/charts.js +138 -96
  586. package/dist/native/components/ShapeChart/charts.js.map +1 -1
  587. package/dist/native/components/ShapeChart/draw.cjs +1 -1
  588. package/dist/native/components/ShapeChart/draw.cjs.map +1 -1
  589. package/dist/native/components/ShapeChart/draw.d.cts +1 -1
  590. package/dist/native/components/ShapeChart/draw.d.ts +1 -1
  591. package/dist/native/components/ShapeChart/draw.js +26 -17
  592. package/dist/native/components/ShapeChart/draw.js.map +1 -1
  593. package/dist/native/components/ShapeChart/geometry.cjs +1 -1
  594. package/dist/native/components/ShapeChart/geometry.cjs.map +1 -1
  595. package/dist/native/components/ShapeChart/geometry.js +233 -70
  596. package/dist/native/components/ShapeChart/geometry.js.map +1 -1
  597. package/dist/native/components/ShapeChart/index.cjs +1 -1
  598. package/dist/native/components/ShapeChart/index.d.cts +1 -1
  599. package/dist/native/components/ShapeChart/index.d.ts +1 -1
  600. package/dist/native/components/ShapeChart/index.js +2 -2
  601. package/dist/native/components/ShapeChart/recorder.cjs +1 -1
  602. package/dist/native/components/ShapeChart/recorder.cjs.map +1 -1
  603. package/dist/native/components/ShapeChart/recorder.d.cts +10 -1
  604. package/dist/native/components/ShapeChart/recorder.d.ts +10 -1
  605. package/dist/native/components/ShapeChart/recorder.js +19 -10
  606. package/dist/native/components/ShapeChart/recorder.js.map +1 -1
  607. package/dist/native/components/ShapeChart/types.d.cts +95 -8
  608. package/dist/native/components/ShapeChart/types.d.ts +95 -8
  609. package/dist/native/index.cjs +1 -1
  610. package/dist/native/index.js +2 -2
  611. package/dist/native/source/components/Chart/ChartBase.tsx +19 -6
  612. package/dist/native/source/components/Chart/charts.tsx +10 -3
  613. package/dist/native/source/components/Chart/scene.tsx +243 -14
  614. package/dist/native/source/components/Chart/types.ts +7 -0
  615. package/dist/native/source/components/Charts/charts.tsx +37 -2
  616. package/dist/native/source/components/Charts/types.ts +11 -0
  617. package/dist/native/source/components/ShapeChart/ShapeChartBase.tsx +10 -34
  618. package/dist/native/source/components/ShapeChart/charts.tsx +91 -35
  619. package/dist/native/source/components/ShapeChart/draw.tsx +39 -8
  620. package/dist/native/source/components/ShapeChart/geometry.ts +376 -25
  621. package/dist/native/source/components/ShapeChart/index.ts +1 -0
  622. package/dist/native/source/components/ShapeChart/recorder.ts +20 -5
  623. package/dist/native/source/components/ShapeChart/types.ts +99 -6
  624. package/dist/native/source/manifest.ts +1 -0
  625. package/dist/taro/chart-a11y.d.ts +7 -0
  626. package/dist/taro/charts.d.ts +29 -6
  627. package/dist/taro/index.js +3129 -1902
  628. package/dist/taro/shape-charts.d.ts +99 -5
  629. package/dist/uni/AreaChart.vue +2 -1
  630. package/dist/uni/AreaChart.vue.d.ts +5 -1
  631. package/dist/uni/Badge.vue.d.ts +1 -1
  632. package/dist/uni/BarChart.vue +2 -1
  633. package/dist/uni/BarChart.vue.d.ts +5 -1
  634. package/dist/uni/BoxPlotChart.vue +2 -1
  635. package/dist/uni/BoxPlotChart.vue.d.ts +8 -0
  636. package/dist/uni/BubbleChart.vue +2 -1
  637. package/dist/uni/BubbleChart.vue.d.ts +4 -0
  638. package/dist/uni/BulletChart.vue.d.ts +4 -0
  639. package/dist/uni/CalendarHeatmap.vue.d.ts +2 -0
  640. package/dist/uni/CandlestickChart.vue +2 -1
  641. package/dist/uni/CandlestickChart.vue.d.ts +4 -0
  642. package/dist/uni/Chart.vue +2 -1
  643. package/dist/uni/Chart.vue.d.ts +4 -0
  644. package/dist/uni/ChordChart.vue +93 -0
  645. package/dist/uni/ChordChart.vue.d.ts +136 -0
  646. package/dist/uni/Divider.vue.d.ts +1 -1
  647. package/dist/uni/DonutChart.vue.d.ts +5 -1
  648. package/dist/uni/FunnelChart.vue.d.ts +4 -0
  649. package/dist/uni/GanttChart.vue +2 -1
  650. package/dist/uni/GanttChart.vue.d.ts +15 -0
  651. package/dist/uni/GaugeChart.vue.d.ts +5 -1
  652. package/dist/uni/HeatmapChart.vue +2 -1
  653. package/dist/uni/HeatmapChart.vue.d.ts +8 -2
  654. package/dist/uni/HistogramChart.vue +2 -1
  655. package/dist/uni/HistogramChart.vue.d.ts +4 -0
  656. package/dist/uni/HorizontalBarChart.vue +2 -1
  657. package/dist/uni/HorizontalBarChart.vue.d.ts +3 -1
  658. package/dist/uni/LineChart.vue +2 -1
  659. package/dist/uni/LineChart.vue.d.ts +4 -0
  660. package/dist/uni/MixedChart.vue +2 -1
  661. package/dist/uni/MixedChart.vue.d.ts +4 -0
  662. package/dist/uni/PieChart.vue.d.ts +5 -1
  663. package/dist/uni/QuadrantChart.vue +2 -1
  664. package/dist/uni/QuadrantChart.vue.d.ts +4 -0
  665. package/dist/uni/RadarChart.vue.d.ts +4 -0
  666. package/dist/uni/RadialBarChart.vue.d.ts +4 -0
  667. package/dist/uni/RangeAreaChart.vue +2 -1
  668. package/dist/uni/RangeAreaChart.vue.d.ts +4 -0
  669. package/dist/uni/SankeyChart.vue.d.ts +4 -0
  670. package/dist/uni/ScatterChart.vue +2 -1
  671. package/dist/uni/ScatterChart.vue.d.ts +4 -0
  672. package/dist/uni/Sparkline.vue +2 -1
  673. package/dist/uni/Sparkline.vue.d.ts +4 -0
  674. package/dist/uni/SunburstChart.vue.d.ts +4 -0
  675. package/dist/uni/ToastProvider.vue.d.ts +1 -1
  676. package/dist/uni/TreemapChart.vue.d.ts +4 -0
  677. package/dist/uni/WaterfallChart.vue +2 -1
  678. package/dist/uni/WaterfallChart.vue.d.ts +9 -0
  679. package/dist/uni/chart-a11y.d.ts +7 -0
  680. package/dist/uni/chart-a11y.js +29 -0
  681. package/dist/uni/chart-canvas.d.ts +12 -0
  682. package/dist/uni/chart-canvas.js +15 -1
  683. package/dist/uni/chart-types.d.ts +36 -5
  684. package/dist/uni/chart-types.js +31 -3
  685. package/dist/uni/charts-canvas.js +3 -2
  686. package/dist/uni/index.d.ts +2 -1
  687. package/dist/uni/index.js +1 -0
  688. package/dist/uni/manifest.d.ts +7 -0
  689. package/dist/uni/manifest.js +10 -0
  690. package/dist/uni/named-chart-options.d.ts +11 -2
  691. package/dist/uni/named-chart-options.js +21 -1
  692. package/dist/uni/shape-chart-canvas.d.ts +3 -3
  693. package/dist/uni/shape-chart-canvas.js +17 -58
  694. package/dist/uni/shape-chart-types.d.ts +53 -3
  695. package/dist/uni/shape-chart-types.js +45 -1
  696. package/dist/vue/charts-global.d.ts +48 -0
  697. package/dist/vue/charts.d.ts +18 -0
  698. package/dist/vue/charts.js +56 -0
  699. package/dist/vue/charts.js.map +1 -0
  700. package/dist/vue/components/Chart/Bar3DChart.vue.d.ts +2 -0
  701. package/dist/vue/components/Chart/BoxPlotChart.vue.d.ts +8 -0
  702. package/dist/vue/components/Chart/BoxPlotChart.vue.js.map +1 -1
  703. package/dist/vue/components/Chart/BoxPlotChart.vue_vue_type_script_setup_true_lang.js +8 -2
  704. package/dist/vue/components/Chart/BoxPlotChart.vue_vue_type_script_setup_true_lang.js.map +1 -1
  705. package/dist/vue/components/Chart/ChordChart.vue.d.ts +153 -0
  706. package/dist/vue/components/Chart/ChordChart.vue.js +7 -0
  707. package/dist/vue/components/Chart/ChordChart.vue.js.map +1 -0
  708. package/dist/vue/components/Chart/ChordChart.vue_vue_type_script_setup_true_lang.js +81 -0
  709. package/dist/vue/components/Chart/ChordChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  710. package/dist/vue/components/Chart/DependencyGraph.vue.d.ts +181 -0
  711. package/dist/vue/components/Chart/DependencyGraph.vue.js +7 -0
  712. package/dist/vue/components/Chart/DependencyGraph.vue.js.map +1 -0
  713. package/dist/vue/components/Chart/DependencyGraph.vue_vue_type_script_setup_true_lang.js +65 -0
  714. package/dist/vue/components/Chart/DependencyGraph.vue_vue_type_script_setup_true_lang.js.map +1 -0
  715. package/dist/vue/components/Chart/GanttChart.vue.d.ts +19 -0
  716. package/dist/vue/components/Chart/GanttChart.vue.js.map +1 -1
  717. package/dist/vue/components/Chart/GanttChart.vue_vue_type_script_setup_true_lang.js +12 -1
  718. package/dist/vue/components/Chart/GanttChart.vue_vue_type_script_setup_true_lang.js.map +1 -1
  719. package/dist/vue/components/Chart/GraphChart.vue.d.ts +186 -0
  720. package/dist/vue/components/Chart/GraphChart.vue.js +7 -0
  721. package/dist/vue/components/Chart/GraphChart.vue.js.map +1 -0
  722. package/dist/vue/components/Chart/GraphChart.vue_vue_type_script_setup_true_lang.js +62 -0
  723. package/dist/vue/components/Chart/GraphChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  724. package/dist/vue/components/Chart/HeatmapChart.vue.d.ts +9 -5
  725. package/dist/vue/components/Chart/HeatmapChart.vue.js.map +1 -1
  726. package/dist/vue/components/Chart/HeatmapChart.vue_vue_type_script_setup_true_lang.js +3 -1
  727. package/dist/vue/components/Chart/HeatmapChart.vue_vue_type_script_setup_true_lang.js.map +1 -1
  728. package/dist/vue/components/Chart/Line3DChart.vue.d.ts +2 -0
  729. package/dist/vue/components/Chart/OrderBookHeatmap.vue.d.ts +2 -0
  730. package/dist/vue/components/Chart/Scatter3DChart.vue.d.ts +2 -0
  731. package/dist/vue/components/Chart/Surface3DChart.vue.d.ts +2 -0
  732. package/dist/vue/components/Chart/TimeAndSales.vue.d.ts +2 -0
  733. package/dist/vue/components/Chart/TradingChart.vue.d.ts +58 -1
  734. package/dist/vue/components/Chart/TradingChart.vue.js.map +1 -1
  735. package/dist/vue/components/Chart/TradingChart.vue_vue_type_script_setup_true_lang.js +31 -0
  736. package/dist/vue/components/Chart/TradingChart.vue_vue_type_script_setup_true_lang.js.map +1 -1
  737. package/dist/vue/components/Chart/TreeChart.vue.d.ts +174 -0
  738. package/dist/vue/components/Chart/TreeChart.vue.js +7 -0
  739. package/dist/vue/components/Chart/TreeChart.vue.js.map +1 -0
  740. package/dist/vue/components/Chart/TreeChart.vue_vue_type_script_setup_true_lang.js +56 -0
  741. package/dist/vue/components/Chart/TreeChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  742. package/dist/vue/components/Chart/WaterfallChart.vue.d.ts +12 -1
  743. package/dist/vue/components/Chart/WaterfallChart.vue.js.map +1 -1
  744. package/dist/vue/components/Chart/WaterfallChart.vue_vue_type_script_setup_true_lang.js +8 -2
  745. package/dist/vue/components/Chart/WaterfallChart.vue_vue_type_script_setup_true_lang.js.map +1 -1
  746. package/dist/vue/components/Chart/graph.d.ts +156 -0
  747. package/dist/vue/components/Chart/graph.js +137 -0
  748. package/dist/vue/components/Chart/graph.js.map +1 -0
  749. package/dist/vue/components/Chart/index.d.ts +5 -1
  750. package/dist/vue/components/Chart/index.js +5 -1
  751. package/dist/vue/components/Chart/orderbook.d.ts +5 -1
  752. package/dist/vue/components/Chart/orderbook.js +2 -0
  753. package/dist/vue/components/Chart/orderbook.js.map +1 -1
  754. package/dist/vue/components/Chart/three-d.d.ts +3 -0
  755. package/dist/vue/components/Chart/three-d.js +2 -0
  756. package/dist/vue/components/Chart/three-d.js.map +1 -1
  757. package/dist/vue/components/Chart/trading.d.ts +30 -3
  758. package/dist/vue/components/Chart/trading.js +9 -0
  759. package/dist/vue/components/Chart/trading.js.map +1 -1
  760. package/dist/vue/components/Chart/types.d.ts +74 -2
  761. package/dist/vue/global.d.ts +2 -38
  762. package/dist/vue/groups/charts.js +10 -2
  763. package/dist/vue/groups/charts.js.map +1 -1
  764. package/dist/vue/index.js +6 -2
  765. package/dist/vue/internal/register.d.ts +7 -0
  766. package/dist/vue/internal/register.js +14 -0
  767. package/dist/vue/internal/register.js.map +1 -0
  768. package/dist/vue/plugin.d.ts +9 -4
  769. package/dist/vue/plugin.js +6 -11
  770. package/dist/vue/plugin.js.map +1 -1
  771. package/dist/weapp/area-chart/index.wxml +1 -1
  772. package/dist/weapp/bar-chart/index.wxml +1 -1
  773. package/dist/weapp/box-plot-chart/index.wxml +1 -1
  774. package/dist/weapp/bubble-chart/index.wxml +1 -1
  775. package/dist/weapp/candlestick-chart/index.wxml +1 -1
  776. package/dist/weapp/chart/index.wxml +1 -1
  777. package/dist/weapp/charts/canvas.js +1987 -175
  778. package/dist/weapp/charts/core.js +3 -0
  779. package/dist/weapp/chord-chart/index.js +1 -0
  780. package/dist/weapp/chord-chart/index.json +1 -0
  781. package/dist/weapp/chord-chart/index.wxml +1 -0
  782. package/dist/weapp/chord-chart/index.wxss +1 -0
  783. package/dist/weapp/controls.js +148 -57
  784. package/dist/weapp/gantt-chart/index.wxml +1 -1
  785. package/dist/weapp/heatmap-chart/index.wxml +1 -1
  786. package/dist/weapp/histogram-chart/index.wxml +1 -1
  787. package/dist/weapp/horizontal-bar-chart/index.wxml +1 -1
  788. package/dist/weapp/line-chart/index.wxml +1 -1
  789. package/dist/weapp/mixed-chart/index.wxml +1 -1
  790. package/dist/weapp/quadrant-chart/index.wxml +1 -1
  791. package/dist/weapp/range-area-chart/index.wxml +1 -1
  792. package/dist/weapp/scatter-chart/index.wxml +1 -1
  793. package/dist/weapp/sparkline/index.wxml +1 -1
  794. package/dist/weapp/types.d.ts +96 -4
  795. package/dist/weapp/waterfall-chart/index.wxml +1 -1
  796. package/dist/web-components/components/chart/charts.d.ts +4 -2
  797. package/dist/web-components/components/chart/charts.js +8 -1
  798. package/dist/web-components/components/chart/charts.js.map +1 -1
  799. package/dist/web-components/components/chart/extended.d.ts +21 -7
  800. package/dist/web-components/components/chart/extended.js +29 -9
  801. package/dist/web-components/components/chart/extended.js.map +1 -1
  802. package/dist/web-components/components/chart/shapes-extended.d.ts +37 -1
  803. package/dist/web-components/components/chart/shapes-extended.js +27 -1
  804. package/dist/web-components/components/chart/shapes-extended.js.map +1 -1
  805. package/dist/web-components/components/chart-3d/chart-3d.d.ts +1 -1
  806. package/dist/web-components/components/chart-3d/chart-3d.js.map +1 -1
  807. package/dist/web-components/components/graph/graph.d.ts +156 -0
  808. package/dist/web-components/components/graph/graph.js +150 -0
  809. package/dist/web-components/components/graph/graph.js.map +1 -0
  810. package/dist/web-components/components/trading-chart/trading-chart.d.ts +49 -2
  811. package/dist/web-components/components/trading-chart/trading-chart.js +62 -0
  812. package/dist/web-components/components/trading-chart/trading-chart.js.map +1 -1
  813. package/dist/web-components/elements/chart.d.ts +1 -1
  814. package/dist/web-components/elements/chart.js +6 -5
  815. package/dist/web-components/elements/chart.js.map +1 -1
  816. package/dist/web-components/elements/graph.d.ts +2 -0
  817. package/dist/web-components/elements/graph.js +12 -0
  818. package/dist/web-components/elements/graph.js.map +1 -0
  819. package/dist/web-components/html-custom-data.json +318 -4
  820. package/dist/web-components/types/react.d.ts +63 -4
  821. package/dist/web-components/types/solid.d.ts +55 -8
  822. package/dist/web-components/types/svelte.d.ts +55 -8
  823. package/dist/web-components/types/vue.d.ts +55 -4
  824. package/package.json +16 -1
@@ -0,0 +1,76 @@
1
+ import { GraphForceLayoutOptions, GraphForceSimulation, GraphEdge, GraphLayoutResult, GraphNode } from './types.js';
2
+ /** Data of a simulation (index-based, transferable to a worker) */
3
+ export interface ForceKernelInit {
4
+ n: number;
5
+ /** Initial positions (NaN = automatic) */
6
+ x: Float64Array;
7
+ y: Float64Array;
8
+ radius: Float64Array;
9
+ /** 1 = pinned at its initial position */
10
+ fixed: Uint8Array;
11
+ source: Int32Array;
12
+ target: Int32Array;
13
+ /** Strength multiplier per link */
14
+ weight: Float64Array;
15
+ linkDistance: number;
16
+ /** NaN = 1 / min(degree) */
17
+ linkStrength: number;
18
+ charge: number;
19
+ theta: number;
20
+ gravity: number;
21
+ /** Extra spacing of the collisions; negative disables them */
22
+ collide: number;
23
+ velocityDecay: number;
24
+ iterations: number;
25
+ seed: number;
26
+ /** Starting temperature (1 for a new layout, lower to refine one) */
27
+ alpha: number;
28
+ /** Width / height of the view: gravity stretches the layout to it */
29
+ aspect: number;
30
+ /** Charge multiplier per node (merged nodes of a coarse level) */
31
+ mass?: Float64Array;
32
+ /**
33
+ * Multilevel start: a fresh layout of at least this many nodes is first
34
+ * computed on a coarsened graph (0 = never)
35
+ */
36
+ coarsen?: number;
37
+ }
38
+ export type ForceKernel = (init: ForceKernelInit) => GraphForceSimulation;
39
+ /** Returns the simulation factory (self-contained: serialized into workers) */
40
+ export declare function forceKernel(): ForceKernel;
41
+ export declare const FORCE_DEFAULTS: {
42
+ linkDistance: number;
43
+ charge: number;
44
+ theta: number;
45
+ gravity: number;
46
+ collide: number;
47
+ velocityDecay: number;
48
+ iterations: number;
49
+ seed: number;
50
+ /** Smallest fresh layout computed with a multilevel start */
51
+ multilevel: number;
52
+ };
53
+ /** Kernel input from index-based data */
54
+ export declare const forceInit: (n: number, source: Int32Array, target: Int32Array, options: GraphForceLayoutOptions | undefined, extra?: {
55
+ x?: Float64Array;
56
+ y?: Float64Array;
57
+ radius?: Float64Array;
58
+ fixed?: Uint8Array;
59
+ weight?: Float64Array;
60
+ alpha?: number;
61
+ aspect?: number;
62
+ }) => ForceKernelInit;
63
+ /** Index of the ids and the valid edges (unknown ids are skipped) */
64
+ export declare const indexGraph: (nodes: readonly GraphNode[], edges: readonly GraphEdge[]) => {
65
+ index: Map<string, number>;
66
+ source: Int32Array;
67
+ target: Int32Array;
68
+ edge: Int32Array;
69
+ };
70
+ /**
71
+ * A force simulation of the nodes and edges, stepped by the caller (no DOM,
72
+ * no timers: usable in workers and mini-programs)
73
+ */
74
+ export declare const createForceSimulation: (nodes: readonly GraphNode[], edges: readonly GraphEdge[], options?: GraphForceLayoutOptions) => GraphForceSimulation;
75
+ /** Runs a force simulation to the end and returns the positions (synchronous) */
76
+ export declare const forceLayout: (nodes: readonly GraphNode[], edges: readonly GraphEdge[], options?: GraphForceLayoutOptions) => GraphLayoutResult;
@@ -0,0 +1,423 @@
1
+ //#region src/engine/graph/force.ts
2
+ function e() {
3
+ return function e(t) {
4
+ let n = t.n, r = .3, i = t.x, a = t.y, o = t.radius, s = new Float64Array(n), c = new Float64Array(n), l = new Float64Array(n).fill(NaN), u = new Float64Array(n).fill(NaN), d = new Uint8Array(n), f = t.seed | 0 || 1, p = () => {
5
+ f = f + 1831565813 | 0;
6
+ let e = Math.imul(f ^ f >>> 15, 1 | f);
7
+ return e = e + Math.imul(e ^ e >>> 7, 61 | e) ^ e, ((e ^ e >>> 14) >>> 0) / 4294967296;
8
+ }, m = () => (p() - .5) * 1e-6, h = t.mass, g = t.alpha >= 1 && n >= (t.coarsen || Infinity);
9
+ for (let e = 0; e < n && g; e++) (t.fixed[e] || Number.isFinite(i[e]) || Number.isFinite(a[e])) && (g = !1);
10
+ let _ = Math.PI * (3 - Math.sqrt(5)), v = Math.max(10, t.linkDistance * .35);
11
+ for (let e = 0; e < n; e++) {
12
+ if (!(Number.isFinite(i[e]) && Number.isFinite(a[e]))) {
13
+ let t = v * Math.sqrt(.5 + e), n = e * _;
14
+ i[e] = t * Math.cos(n) + m(), a[e] = t * Math.sin(n) + m();
15
+ }
16
+ t.fixed[e] && (d[e] = 1, l[e] = i[e], u[e] = a[e]);
17
+ }
18
+ let y = t.source.length, b = t.source, x = t.target, S = new Int32Array(n);
19
+ for (let e = 0; e < y; e++) S[b[e]]++, S[x[e]]++;
20
+ let C = new Float64Array(y), ee = new Float64Array(y);
21
+ for (let e = 0; e < y; e++) {
22
+ let n = S[b[e]], r = S[x[e]];
23
+ C[e] = n / (n + r);
24
+ let i = Number.isFinite(t.linkStrength) ? t.linkStrength : 1 / Math.min(n, r);
25
+ ee[e] = i * (t.weight[e] || 1);
26
+ }
27
+ let w = t.alpha > 0 ? t.alpha : 1, T = .001, E = 1 - T ** (1 / Math.max(1, t.iterations)), D = 0, te = t.theta, ne = t.charge, O = new Float64Array(n);
28
+ for (let e = 0; e < n; e++) O[e] = ne * (h ? h[e] : 1);
29
+ let k = t.collide, A = 0;
30
+ for (let e = 0; e < n; e++) A = Math.max(A, o[e]);
31
+ let j = null, M = g ? new Int32Array(n).fill(-1) : null, N = g ? new Float64Array(n) : null, P = g ? new Float64Array(n) : null;
32
+ if (M && N && P) {
33
+ let i = new Int32Array(n);
34
+ for (let e = 0; e < y; e++) b[e] !== x[e] && (i[b[e]]++, i[x[e]]++);
35
+ let a = new Int32Array(n + 1);
36
+ for (let e = 0; e < n; e++) a[e + 1] = a[e] + i[e];
37
+ let s = new Int32Array(a[n]), c = a.slice(0, n);
38
+ for (let e = 0; e < y; e++) b[e] !== x[e] && (s[c[b[e]]++] = x[e], s[c[x[e]]++] = b[e]);
39
+ let l = 0;
40
+ for (let e = 0; e < n; e++) l = Math.max(l, i[e]);
41
+ let u = new Int32Array(l + 2);
42
+ for (let e = 0; e < n; e++) u[i[e] + 1]++;
43
+ for (let e = 0; e <= l; e++) u[e + 1] += u[e];
44
+ let d = new Int32Array(n);
45
+ for (let e = 0; e < n; e++) d[u[i[e]]++] = e;
46
+ let f = (e) => h ? h[e] : 1, m = new Int32Array(n), g = 0;
47
+ for (let e = 0; e < n; e++) {
48
+ let t = d[e];
49
+ if (M[t] >= 0) continue;
50
+ let n = -1;
51
+ for (let e = a[t]; e < a[t + 1]; e++) {
52
+ let r = s[e];
53
+ r === t || M[r] >= 0 || (n < 0 || f(r) < f(n)) && (n = r);
54
+ }
55
+ n < 0 || (M[t] = M[n] = g, m[g++] = 2);
56
+ }
57
+ for (let e = 0; e < n; e++) {
58
+ let t = d[e];
59
+ if (M[t] >= 0) continue;
60
+ let n = -1;
61
+ for (let e = a[t]; e < a[t + 1]; e++) {
62
+ let r = M[s[e]];
63
+ r < 0 || i[t] > 1 && m[r] >= 3 || (n < 0 || m[r] < m[n]) && (n = r);
64
+ }
65
+ n >= 0 ? (M[t] = n, m[n]++) : (M[t] = g, m[g++] = 1);
66
+ }
67
+ if (g <= n * .8) {
68
+ let i = new Float64Array(g), a = new Float64Array(g);
69
+ for (let e = 0; e < n; e++) i[M[e]] += f(e), a[M[e]] += o[e] * o[e];
70
+ for (let e = 0; e < g; e++) a[e] = Math.sqrt(a[e]);
71
+ let s = [];
72
+ for (let e = 0; e < y; e++) {
73
+ let t = M[b[e]], n = M[x[e]];
74
+ t !== n && s.push(t < n ? t * g + n : n * g + t);
75
+ }
76
+ let c = Float64Array.from(s).sort(), l = [], u = [];
77
+ for (let e = 0; e < c.length; e++) e && c[e] === c[e - 1] || (l.push(Math.floor(c[e] / g)), u.push(c[e] % g));
78
+ j = e({
79
+ ...t,
80
+ n: g,
81
+ x: new Float64Array(g).fill(NaN),
82
+ y: new Float64Array(g).fill(NaN),
83
+ radius: a,
84
+ fixed: new Uint8Array(g),
85
+ source: Int32Array.from(l),
86
+ target: Int32Array.from(u),
87
+ weight: new Float64Array(l.length).fill(1),
88
+ mass: i,
89
+ alpha: 1
90
+ });
91
+ for (let e = 0; e < n; e++) {
92
+ let n = p() * Math.PI * 2, r = (t.linkDistance * .5 + o[e]) * (.4 + .6 * p());
93
+ N[e] = Math.cos(n) * r, P[e] = Math.sin(n) * r;
94
+ }
95
+ w = Math.min(w, r), E = 1 - (T / w) ** (1 / Math.max(1, Math.round(t.iterations * .15)));
96
+ }
97
+ }
98
+ let F = () => {
99
+ if (!j || !M || !N || !P) return;
100
+ let e = j.x, t = j.y;
101
+ for (let r = 0; r < n; r++) i[r] = e[M[r]] + N[r], a[r] = t[M[r]] + P[r];
102
+ }, I = () => {
103
+ F(), j = null;
104
+ };
105
+ F();
106
+ let L = 0, R = /* @__PURE__ */ new Float64Array(), z = /* @__PURE__ */ new Float64Array(), B = /* @__PURE__ */ new Float64Array(), V = /* @__PURE__ */ new Int32Array(), H = /* @__PURE__ */ new Int32Array(), U = /* @__PURE__ */ new Uint8Array(), W = /* @__PURE__ */ new Float64Array(), G = /* @__PURE__ */ new Float64Array(), K = /* @__PURE__ */ new Float64Array(), q = new Int32Array(n), J = 0, re = (e) => {
107
+ if (e <= L) return;
108
+ let t = Math.max(e, L * 2, 64), n = (e) => {
109
+ let n = new Float64Array(t);
110
+ return n.set(e), n;
111
+ };
112
+ R = n(R), z = n(z), B = n(B), W = n(W), G = n(G), K = n(K);
113
+ let r = new Int32Array(t * 4);
114
+ r.set(V), V = r;
115
+ let i = new Int32Array(t);
116
+ i.set(H), H = i;
117
+ let a = new Uint8Array(t);
118
+ a.set(U), U = a, L = t;
119
+ }, ie = (e, t, n) => {
120
+ re(J + 1);
121
+ let r = J++;
122
+ return R[r] = e, z[r] = t, B[r] = n, V[r * 4] = -1, V[r * 4 + 1] = -1, V[r * 4 + 2] = -1, V[r * 4 + 3] = -1, H[r] = -1, U[r] = 0, r;
123
+ }, ae = (e, t, n) => {
124
+ let r = B[e] / 2;
125
+ return +(t >= R[e] + r) | (n >= z[e] + r ? 2 : 0);
126
+ }, oe = (e, t) => {
127
+ let n = B[e] / 2;
128
+ return ie(R[e] + (t & 1 ? n : 0), z[e] + (t & 2 ? n : 0), n);
129
+ }, se = (e) => {
130
+ let t = 0, n = i[e], r = a[e];
131
+ for (let o = 0;; o++) {
132
+ if (U[t]) {
133
+ let i = ae(t, n, r), a = V[t * 4 + i];
134
+ if (a < 0) {
135
+ a = oe(t, i), V[t * 4 + i] = a, H[a] = e, q[e] = -1;
136
+ return;
137
+ }
138
+ t = a;
139
+ continue;
140
+ }
141
+ let s = H[t];
142
+ if (s < 0) {
143
+ H[t] = e, q[e] = -1;
144
+ return;
145
+ }
146
+ if (i[s] === n && a[s] === r || o > 48) {
147
+ q[e] = s, H[t] = e;
148
+ return;
149
+ }
150
+ H[t] = -1, U[t] = 1;
151
+ let c = ae(t, i[s], a[s]), l = oe(t, c);
152
+ V[t * 4 + c] = l, H[l] = s;
153
+ }
154
+ }, ce = () => {
155
+ let e = Infinity, t = Infinity, r = -Infinity, o = -Infinity;
156
+ for (let s = 0; s < n; s++) i[s] < e && (e = i[s]), i[s] > r && (r = i[s]), a[s] < t && (t = a[s]), a[s] > o && (o = a[s]);
157
+ let s = Math.max(r - e, o - t, 1) * 1.0001 + 1e-6;
158
+ J = 0, re(n * 2 + 8), ie(e, t, s);
159
+ for (let e = 0; e < n; e++) se(e);
160
+ for (let e = J - 1; e >= 0; e--) if (U[e]) {
161
+ let t = 0, n = 0, r = 0, i = 0;
162
+ for (let a = 0; a < 4; a++) {
163
+ let o = V[e * 4 + a];
164
+ if (o < 0) continue;
165
+ let s = Math.abs(W[o]);
166
+ t += W[o], n += s, r += s * G[o], i += s * K[o];
167
+ }
168
+ W[e] = t, G[e] = n ? r / n : R[e], K[e] = n ? i / n : z[e];
169
+ } else {
170
+ let t = 0;
171
+ for (let n = H[e]; n >= 0; n = q[n]) t += O[n];
172
+ W[e] = t, G[e] = i[H[e]], K[e] = a[H[e]];
173
+ }
174
+ }, Y = /* @__PURE__ */ new Int32Array(256), le = new Int32Array(n), ue = () => {
175
+ if (!ne || n < 2) return;
176
+ ce();
177
+ let e = te * (1 + .5 * Math.min(1, w / r)), t = 1 / (e * e), o = 0, l = 0;
178
+ for (Y[l++] = 0; l;) {
179
+ let e = Y[--l];
180
+ if (U[e]) {
181
+ if (l + 4 > Y.length) {
182
+ let e = new Int32Array(Y.length * 2);
183
+ e.set(Y), Y = e;
184
+ }
185
+ for (let t = 0; t < 4; t++) {
186
+ let n = V[e * 4 + t];
187
+ n >= 0 && (Y[l++] = n);
188
+ }
189
+ } else for (let t = H[e]; t >= 0; t = q[t]) le[o++] = t;
190
+ }
191
+ for (let e = 0; e < o; e++) {
192
+ let n = le[e], r = i[n], o = a[n];
193
+ for (l = 0, Y[l++] = 0; l;) {
194
+ let e = Y[--l];
195
+ if (W[e]) {
196
+ if (U[e]) {
197
+ let i = G[e] - r, a = K[e] - o, u = B[e], d = i * i + a * a;
198
+ if (u * u * t < d) {
199
+ d < 1 && (d = Math.sqrt(d));
200
+ let t = W[e] * w / d;
201
+ s[n] += i * t, c[n] += a * t;
202
+ continue;
203
+ }
204
+ if (l + 4 > Y.length) {
205
+ let e = new Int32Array(Y.length * 2);
206
+ e.set(Y), Y = e;
207
+ }
208
+ for (let t = 0; t < 4; t++) {
209
+ let n = V[e * 4 + t];
210
+ n >= 0 && (Y[l++] = n);
211
+ }
212
+ } else for (let t = H[e]; t >= 0; t = q[t]) {
213
+ if (t === n) continue;
214
+ let e = i[t] - r, l = a[t] - o, u = e * e + l * l;
215
+ e === 0 && (e = m(), u += e * e), l === 0 && (l = m(), u += l * l), u < 1 && (u = Math.sqrt(u));
216
+ let d = O[t] * w / u;
217
+ s[n] += e * d, c[n] += l * d;
218
+ }
219
+ }
220
+ }
221
+ }
222
+ }, de = () => {
223
+ let e = t.linkDistance;
224
+ for (let t = 0; t < y; t++) {
225
+ let n = b[t], r = x[t];
226
+ if (n === r) continue;
227
+ let l = i[r] + s[r] - i[n] - s[n] || m(), u = a[r] + c[r] - a[n] - c[n] || m(), d = Math.sqrt(l * l + u * u);
228
+ d = (d - e - o[n] - o[r]) / d * w * ee[t], l *= d, u *= d;
229
+ let f = C[t];
230
+ s[r] -= l * f, c[r] -= u * f, s[n] += l * (1 - f), c[n] += u * (1 - f);
231
+ }
232
+ }, fe = () => {
233
+ let e = t.gravity * w;
234
+ if (!e) return;
235
+ let r = Math.sqrt(Math.max(.25, Math.min(4, t.aspect > 0 ? t.aspect : 1))), o = e / r, l = e * r;
236
+ for (let e = 0; e < n; e++) s[e] -= i[e] * o, c[e] -= a[e] * l;
237
+ }, X = 1;
238
+ for (; X < n * 2;) X <<= 1;
239
+ let Z = new Int32Array(X + 1), pe = new Int32Array(n), me = new Int32Array(n), he = (e, t) => (Math.imul(e, 73856093) ^ Math.imul(t, 19349663)) & X - 1, ge = (e, t, r) => {
240
+ let i = Math.max(1e-6, (A + r) * 2);
241
+ Z.fill(0);
242
+ for (let r = 0; r < n; r++) {
243
+ let n = he(Math.floor(e[r] / i), Math.floor(t[r] / i));
244
+ me[r] = n, Z[n + 1]++;
245
+ }
246
+ for (let e = 0; e < X; e++) Z[e + 1] += Z[e];
247
+ let a = Z.slice(0, X);
248
+ for (let e = 0; e < n; e++) pe[a[me[e]]++] = e;
249
+ return i;
250
+ }, Q = new Int32Array(X).fill(-1), _e = (e, t, r, i) => {
251
+ let a = ge(e, t, r);
252
+ Q.fill(-1);
253
+ for (let r = 0; r < n; r++) {
254
+ let n = Math.floor(e[r] / a), o = Math.floor(t[r] / a);
255
+ for (let e = -1; e <= 1; e++) for (let t = -1; t <= 1; t++) {
256
+ let a = he(n + t, o + e);
257
+ if (Q[a] !== r) {
258
+ Q[a] = r;
259
+ for (let e = Z[a]; e < Z[a + 1]; e++) {
260
+ let t = pe[e];
261
+ t > r && i(r, t);
262
+ }
263
+ }
264
+ }
265
+ }
266
+ }, ve = new Float64Array(n), ye = new Float64Array(n), be = () => {
267
+ if (!(k < 0 || n < 2)) {
268
+ for (let e = 0; e < n; e++) ve[e] = i[e] + s[e], ye[e] = a[e] + c[e];
269
+ _e(ve, ye, k, (e, t) => {
270
+ let n = o[e] + k, r = o[t] + k, l = n + r, u = i[e] + s[e] - i[t] - s[t], d = a[e] + c[e] - a[t] - c[t], f = u * u + d * d;
271
+ if (f >= l * l) return;
272
+ u === 0 && (u = m(), f += u * u), d === 0 && (d = m(), f += d * d);
273
+ let p = Math.sqrt(f), h = (l - p) / p * .7;
274
+ u *= h, d *= h;
275
+ let g = r * r, _ = g / (n * n + g);
276
+ s[e] += u * _, c[e] += d * _, s[t] -= u * (1 - _), c[t] -= d * (1 - _);
277
+ });
278
+ }
279
+ }, xe = () => {
280
+ let e = 0, t = 0;
281
+ for (let r = 0; r < n; r++) {
282
+ if (!Number.isNaN(l[r])) return;
283
+ e += i[r], t += a[r];
284
+ }
285
+ e /= n || 1, t /= n || 1;
286
+ for (let r = 0; r < n; r++) i[r] -= e, a[r] -= t;
287
+ }, Se = t.aspect > 0 ? t.aspect : 1, Ce = t.alpha >= 1 && n > 2 && Math.abs(Math.log(Se)) > .15, we = () => {
288
+ let e = 0, t = 0, r = 0;
289
+ for (let o = 0; o < n; o++) {
290
+ if (!Number.isNaN(l[o])) return;
291
+ e += i[o] * i[o], t += a[o] * a[o], r += i[o] * a[o];
292
+ }
293
+ if (Math.hypot(e - t, 2 * r) < (e + t) * .04) return;
294
+ let o = .5 * Math.atan2(2 * r, e - t), u = (Se > 1 ? 0 : Math.PI / 2) - o;
295
+ if (u > Math.PI / 2 && (u -= Math.PI), u < -Math.PI / 2 && (u += Math.PI), u *= .12, Math.abs(u) < 1e-5) return;
296
+ let d = Math.cos(u), f = Math.sin(u);
297
+ for (let e = 0; e < n; e++) {
298
+ let t = i[e], n = s[e];
299
+ i[e] = t * d - a[e] * f, a[e] = t * f + a[e] * d, s[e] = n * d - c[e] * f, c[e] = n * f + c[e] * d;
300
+ }
301
+ }, Te = () => {
302
+ w += (D - w) * E, de(), ue(), fe(), be();
303
+ let e = 1 - t.velocityDecay;
304
+ for (let t = 0; t < n; t++) Number.isNaN(l[t]) ? (s[t] *= e, c[t] *= e, i[t] += s[t], a[t] += c[t]) : (i[t] = l[t], a[t] = u[t], s[t] = c[t] = 0);
305
+ xe(), Ce && we();
306
+ }, $ = () => !j && w < T && D === 0;
307
+ return {
308
+ x: i,
309
+ y: a,
310
+ tick(e = 1) {
311
+ for (let t = 0; t < e; t++) {
312
+ if (j) {
313
+ j.tick(1) ? F() : I();
314
+ continue;
315
+ }
316
+ if ($()) return !1;
317
+ Te();
318
+ }
319
+ return !$();
320
+ },
321
+ alpha: () => j ? Math.max(w, j.alpha()) : w,
322
+ reheat(e = .3) {
323
+ j && I(), w = Math.max(w, e);
324
+ },
325
+ drag(e, t, r) {
326
+ e < 0 || e >= n || (j && I(), l[e] = i[e] = t, u[e] = a[e] = r, D = .3, w < .3 && (w = .3));
327
+ },
328
+ release(e, t) {
329
+ D = 0, !(e < 0 || e >= n || t || d[e]) && (l[e] = NaN, u[e] = NaN);
330
+ },
331
+ done: $,
332
+ settle() {
333
+ let e = Math.max(0, k);
334
+ for (let t = 0; t < 80; t++) {
335
+ let t = !1;
336
+ if (_e(i, a, e, (n, r) => {
337
+ let s = o[n] + o[r] + e * 2, c = i[n] - i[r], u = a[n] - a[r], d = c * c + u * u;
338
+ if (d >= s * s * .9999) return;
339
+ d === 0 && (c = p() - .5, u = p() - .5, d = c * c + u * u);
340
+ let f = Math.sqrt(d), m = (s - f) / f, h = +!!Number.isNaN(l[n]), g = +!!Number.isNaN(l[r]);
341
+ if (!h && !g) return;
342
+ let _ = h / (h + g), v = g / (h + g);
343
+ i[n] += c * m * _ * 1.001, a[n] += u * m * _ * 1.001, i[r] -= c * m * v * 1.001, a[r] -= u * m * v * 1.001, t = !0;
344
+ }), !t) break;
345
+ }
346
+ }
347
+ };
348
+ };
349
+ }
350
+ var t = {
351
+ linkDistance: 60,
352
+ charge: -160,
353
+ theta: .9,
354
+ gravity: .04,
355
+ collide: 2,
356
+ velocityDecay: .4,
357
+ iterations: 300,
358
+ seed: 1,
359
+ multilevel: 400
360
+ }, n = (e, n, r, i, a = {}) => {
361
+ let o = i ?? {}, s = o.collide === !1 ? -1 : typeof o.collide == "number" ? Math.max(0, o.collide) : t.collide;
362
+ return {
363
+ n: e,
364
+ x: a.x ?? new Float64Array(e).fill(NaN),
365
+ y: a.y ?? new Float64Array(e).fill(NaN),
366
+ radius: a.radius ?? new Float64Array(e).fill(6),
367
+ fixed: a.fixed ?? new Uint8Array(e),
368
+ source: n,
369
+ target: r,
370
+ weight: a.weight ?? new Float64Array(n.length).fill(1),
371
+ linkDistance: o.linkDistance ?? t.linkDistance,
372
+ linkStrength: o.linkStrength ?? NaN,
373
+ charge: o.charge ?? t.charge,
374
+ theta: o.theta ?? t.theta,
375
+ gravity: o.gravity ?? t.gravity,
376
+ collide: s,
377
+ velocityDecay: o.velocityDecay ?? t.velocityDecay,
378
+ iterations: o.iterations ?? t.iterations,
379
+ seed: o.seed ?? t.seed,
380
+ alpha: a.alpha ?? 1,
381
+ aspect: a.aspect ?? 1,
382
+ coarsen: o.multilevel === !1 ? 0 : t.multilevel
383
+ };
384
+ }, r = (e, t) => {
385
+ let n = /* @__PURE__ */ new Map();
386
+ e.forEach((e, t) => {
387
+ n.has(e.id) || n.set(e.id, t);
388
+ });
389
+ let r = [], i = [], a = [];
390
+ return t.forEach((e, t) => {
391
+ let o = n.get(e.source), s = n.get(e.target);
392
+ o !== void 0 && s !== void 0 && (r.push(o), i.push(s), a.push(t));
393
+ }), {
394
+ index: n,
395
+ source: Int32Array.from(r),
396
+ target: Int32Array.from(i),
397
+ edge: Int32Array.from(a)
398
+ };
399
+ }, i = (t, i, a) => {
400
+ let { source: o, target: s, edge: c } = r(t, i), l = t.length, u = new Float64Array(l).fill(NaN), d = new Float64Array(l).fill(NaN), f = new Uint8Array(l), p = new Float64Array(l);
401
+ t.forEach((e, t) => {
402
+ Number.isFinite(e.x) && Number.isFinite(e.y) && (u[t] = e.x, d[t] = e.y, e.fixed && (f[t] = 1)), p[t] = a?.radius?.(e, t) ?? 6;
403
+ });
404
+ let m = Array.from(c, (e) => i[e].value), h = m.filter((e) => Number.isFinite(e) && e > 0), g = h.length ? h.reduce((e, t) => e + t, 0) / h.length : 1, _ = Float64Array.from(m, (e) => Number.isFinite(e) && e > 0 ? Math.max(.5, Math.min(2, Math.sqrt(e / g))) : 1);
405
+ return e()(n(l, o, s, a, {
406
+ x: u,
407
+ y: d,
408
+ fixed: f,
409
+ radius: p,
410
+ weight: _
411
+ }));
412
+ }, a = (e, t, n) => i(e, t, n), o = (e, t, n) => {
413
+ let r = i(e, t, n);
414
+ for (; r.tick(16););
415
+ return r.settle(), {
416
+ x: r.x,
417
+ y: r.y
418
+ };
419
+ };
420
+ //#endregion
421
+ export { t as FORCE_DEFAULTS, a as createForceSimulation, n as forceInit, e as forceKernel, o as forceLayout, r as indexGraph };
422
+
423
+ //# sourceMappingURL=force.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"force.js","names":["forceKernel","createSim","init","REFINE_ALPHA","x","y","radius","vx","vy","fx","fy","pinned","seed","random","t","jiggle","mass","fresh","i","angle","spread","r","a","m","src","tgt","count","l","bias","strength","b","base","alpha","alphaMin","alphaDecay","alphaTarget","theta","charge","nodeCharge","collidePad","maxRadius","coarse","group","offsetX","offsetY","degree","adjStart","adj","fill","maxDegree","byDegree","d","order","weightOf","size","cn","o","u","best","v","g","cmass","cradius","keys","sorted","cs","ct","k","project","cx","cy","finishCoarse","cap","qx0","qy0","qsize","qchild","qpoint","qinner","qmass","qcx","qcy","nextPoint","qcount","grow","need","next","copyF","c","p","q","newQuad","x0","y0","quadrant","half","py","childQuad","insert","px","depth","j","buildTree","x1","y1","weight","sx","sy","w","stack","spatial","manyBody","open","top","s","xi","yi","dx","dy","f","links","distance","gravity","stretch","gx","gy","tableSize","cellStart","cellItems","cellOf","hash","bucket","cell","pad","h","fillAt","visited","eachPair","oy","ox","pair","collide","ri","rj","rj2","share","center","aspect","orient","align","sxx","syy","sxy","axis","turn","pvx","step","decay","done","value","px2","py2","keep","pass","moved","push","fi","fj","si","sj","FORCE_DEFAULTS","forceInit","options","extra","n","source","indexGraph","index","node","e","edges","edge","simulationOf","nodes","fixed","values","known","mean","target","createForceSimulation","forceLayout","sim"],"sources":["../../../../../charts/src/engine/graph/force.ts"],"sourcesContent":["// Force-directed layout: Barnes–Hut many-body (flat quadtree), links (d3\n// semantics), gravity, centering and collisions (hash grid), with alpha\n// cooling and a deterministic seed. `forceKernel` is self-contained (no\n// reference to anything outside its body): it is serialized into the Web\n// Worker of large graphs (see worker.ts).\n\nimport type {\n GraphForceLayoutOptions,\n GraphForceSimulation,\n GraphEdge,\n GraphLayoutResult,\n GraphNode,\n} from \"./types\";\n\n/** Data of a simulation (index-based, transferable to a worker) */\nexport interface ForceKernelInit {\n n: number;\n /** Initial positions (NaN = automatic) */\n x: Float64Array;\n y: Float64Array;\n radius: Float64Array;\n /** 1 = pinned at its initial position */\n fixed: Uint8Array;\n source: Int32Array;\n target: Int32Array;\n /** Strength multiplier per link */\n weight: Float64Array;\n linkDistance: number;\n /** NaN = 1 / min(degree) */\n linkStrength: number;\n charge: number;\n theta: number;\n gravity: number;\n /** Extra spacing of the collisions; negative disables them */\n collide: number;\n velocityDecay: number;\n iterations: number;\n seed: number;\n /** Starting temperature (1 for a new layout, lower to refine one) */\n alpha: number;\n /** Width / height of the view: gravity stretches the layout to it */\n aspect: number;\n /** Charge multiplier per node (merged nodes of a coarse level) */\n mass?: Float64Array;\n /**\n * Multilevel start: a fresh layout of at least this many nodes is first\n * computed on a coarsened graph (0 = never)\n */\n coarsen?: number;\n}\n\nexport type ForceKernel = (init: ForceKernelInit) => GraphForceSimulation;\n\n/** Returns the simulation factory (self-contained: serialized into workers) */\nexport function forceKernel(): ForceKernel {\n return function createSim(init: ForceKernelInit): GraphForceSimulation {\n const n = init.n;\n // multilevel refinement: starting temperature and share of `iterations`\n const REFINE_ALPHA = 0.3;\n const REFINE_SHARE = 0.15;\n const THETA_BOOST = 0.5;\n const x = init.x;\n const y = init.y;\n const radius = init.radius;\n const vx = new Float64Array(n);\n const vy = new Float64Array(n);\n const fx = new Float64Array(n).fill(NaN);\n const fy = new Float64Array(n).fill(NaN);\n const pinned = new Uint8Array(n);\n let seed = init.seed | 0 || 1;\n const random = () => {\n // mulberry32\n seed = (seed + 0x6d2b79f5) | 0;\n let t = Math.imul(seed ^ (seed >>> 15), 1 | seed);\n t = (t + Math.imul(t ^ (t >>> 7), 61 | t)) ^ t;\n return ((t ^ (t >>> 14)) >>> 0) / 4294967296;\n };\n const jiggle = () => (random() - 0.5) * 1e-6;\n const mass = init.mass;\n\n // a fresh layout (no known position) of a large graph starts from the\n // layout of a coarsened graph\n let fresh = init.alpha >= 1 && n >= (init.coarsen || Infinity);\n for (let i = 0; i < n && fresh; i++)\n if (init.fixed[i] || Number.isFinite(x[i]) || Number.isFinite(y[i]))\n fresh = false;\n\n // phyllotaxis start (like d3), seeded jitter keeps it deterministic\n const angle = Math.PI * (3 - Math.sqrt(5));\n const spread = Math.max(10, init.linkDistance * 0.35);\n for (let i = 0; i < n; i++) {\n if (!(Number.isFinite(x[i]) && Number.isFinite(y[i]))) {\n const r = spread * Math.sqrt(0.5 + i);\n const a = i * angle;\n x[i] = r * Math.cos(a) + jiggle();\n y[i] = r * Math.sin(a) + jiggle();\n }\n if (init.fixed[i]) {\n pinned[i] = 1;\n fx[i] = x[i];\n fy[i] = y[i];\n }\n }\n\n // links\n const m = init.source.length;\n const src = init.source;\n const tgt = init.target;\n const count = new Int32Array(n);\n for (let l = 0; l < m; l++) {\n count[src[l]]++;\n count[tgt[l]]++;\n }\n const bias = new Float64Array(m);\n const strength = new Float64Array(m);\n for (let l = 0; l < m; l++) {\n const a = count[src[l]];\n const b = count[tgt[l]];\n bias[l] = a / (a + b);\n const base = Number.isFinite(init.linkStrength)\n ? init.linkStrength\n : 1 / Math.min(a, b);\n strength[l] = base * (init.weight[l] || 1);\n }\n\n let alpha = init.alpha > 0 ? init.alpha : 1;\n const alphaMin = 0.001;\n let alphaDecay = 1 - Math.pow(alphaMin, 1 / Math.max(1, init.iterations));\n let alphaTarget = 0;\n const theta = init.theta;\n const charge = init.charge;\n const nodeCharge = new Float64Array(n);\n for (let i = 0; i < n; i++) nodeCharge[i] = charge * (mass ? mass[i] : 1);\n const collidePad = init.collide;\n let maxRadius = 0;\n for (let i = 0; i < n; i++) maxRadius = Math.max(maxRadius, radius[i]);\n\n // ---- multilevel start: neighbors are merged (a matching, then the\n // leftover nodes join a neighbor's group), the coarse graph is laid out\n // by a nested simulation (recursively coarsened), then its positions are\n // spread to the members and refined with a short cooling\n let coarse: GraphForceSimulation | null = null;\n const group = fresh ? new Int32Array(n).fill(-1) : null;\n const offsetX = fresh ? new Float64Array(n) : null;\n const offsetY = fresh ? new Float64Array(n) : null;\n if (group && offsetX && offsetY) {\n const degree = new Int32Array(n);\n for (let l = 0; l < m; l++) {\n if (src[l] === tgt[l]) continue;\n degree[src[l]]++;\n degree[tgt[l]]++;\n }\n const adjStart = new Int32Array(n + 1);\n for (let i = 0; i < n; i++) adjStart[i + 1] = adjStart[i] + degree[i];\n const adj = new Int32Array(adjStart[n]);\n const fill = adjStart.slice(0, n);\n for (let l = 0; l < m; l++) {\n if (src[l] === tgt[l]) continue;\n adj[fill[src[l]]++] = tgt[l];\n adj[fill[tgt[l]]++] = src[l];\n }\n // nodes by increasing degree (counting sort): leaves pair with hubs\n let maxDegree = 0;\n for (let i = 0; i < n; i++) maxDegree = Math.max(maxDegree, degree[i]);\n const byDegree = new Int32Array(maxDegree + 2);\n for (let i = 0; i < n; i++) byDegree[degree[i] + 1]++;\n for (let d = 0; d <= maxDegree; d++) byDegree[d + 1] += byDegree[d];\n const order = new Int32Array(n);\n for (let i = 0; i < n; i++) order[byDegree[degree[i]]++] = i;\n const weightOf = (i: number) => (mass ? mass[i] : 1);\n const size = new Int32Array(n);\n let cn = 0;\n for (let o = 0; o < n; o++) {\n const u = order[o];\n if (group[u] >= 0) continue;\n let best = -1;\n for (let a = adjStart[u]; a < adjStart[u + 1]; a++) {\n const v = adj[a];\n if (v === u || group[v] >= 0) continue;\n if (best < 0 || weightOf(v) < weightOf(best)) best = v;\n }\n if (best < 0) continue;\n group[u] = group[best] = cn;\n size[cn++] = 2;\n }\n for (let o = 0; o < n; o++) {\n const u = order[o];\n if (group[u] >= 0) continue;\n let best = -1;\n for (let a = adjStart[u]; a < adjStart[u + 1]; a++) {\n const g = group[adj[a]];\n // leaves always join their neighbor (\"solar systems\")\n if (g < 0 || (degree[u] > 1 && size[g] >= 3)) continue;\n if (best < 0 || size[g] < size[best]) best = g;\n }\n if (best >= 0) {\n group[u] = best;\n size[best]++;\n } else {\n group[u] = cn;\n size[cn++] = 1;\n }\n }\n if (cn <= n * 0.8) {\n const cmass = new Float64Array(cn);\n const cradius = new Float64Array(cn);\n for (let i = 0; i < n; i++) {\n cmass[group[i]] += weightOf(i);\n cradius[group[i]] += radius[i] * radius[i];\n }\n for (let g = 0; g < cn; g++) cradius[g] = Math.sqrt(cradius[g]);\n // coarse links: deduplicated pairs of groups\n const keys: number[] = [];\n for (let l = 0; l < m; l++) {\n const a = group[src[l]];\n const b = group[tgt[l]];\n if (a !== b) keys.push(a < b ? a * cn + b : b * cn + a);\n }\n const sorted = Float64Array.from(keys).sort();\n const cs: number[] = [];\n const ct: number[] = [];\n for (let k = 0; k < sorted.length; k++) {\n if (k && sorted[k] === sorted[k - 1]) continue;\n cs.push(Math.floor(sorted[k] / cn));\n ct.push(sorted[k] % cn);\n }\n coarse = createSim({\n ...init,\n n: cn,\n x: new Float64Array(cn).fill(NaN),\n y: new Float64Array(cn).fill(NaN),\n radius: cradius,\n fixed: new Uint8Array(cn),\n source: Int32Array.from(cs),\n target: Int32Array.from(ct),\n weight: new Float64Array(cs.length).fill(1),\n mass: cmass,\n alpha: 1,\n });\n // members spread around their group, a refinement finishes the layout\n for (let i = 0; i < n; i++) {\n const a = random() * Math.PI * 2;\n const d =\n (init.linkDistance * 0.5 + radius[i]) * (0.4 + 0.6 * random());\n offsetX[i] = Math.cos(a) * d;\n offsetY[i] = Math.sin(a) * d;\n }\n alpha = Math.min(alpha, REFINE_ALPHA);\n alphaDecay =\n 1 -\n Math.pow(\n alphaMin / alpha,\n 1 / Math.max(1, Math.round(init.iterations * REFINE_SHARE)),\n );\n }\n }\n const project = () => {\n if (!coarse || !group || !offsetX || !offsetY) return;\n const cx = coarse.x;\n const cy = coarse.y;\n for (let i = 0; i < n; i++) {\n x[i] = cx[group[i]] + offsetX[i];\n y[i] = cy[group[i]] + offsetY[i];\n }\n };\n const finishCoarse = () => {\n project();\n coarse = null;\n };\n project();\n\n // ---- flat quadtree (rebuilt every tick)\n let cap = 0;\n let qx0 = new Float64Array(0);\n let qy0 = new Float64Array(0);\n let qsize = new Float64Array(0);\n let qchild = new Int32Array(0);\n let qpoint = new Int32Array(0);\n let qinner = new Uint8Array(0);\n let qmass = new Float64Array(0);\n let qcx = new Float64Array(0);\n let qcy = new Float64Array(0);\n const nextPoint = new Int32Array(n);\n let qcount = 0;\n\n const grow = (need: number) => {\n if (need <= cap) return;\n const next = Math.max(need, cap * 2, 64);\n const copyF = (a: Float64Array) => {\n const b = new Float64Array(next);\n b.set(a);\n return b;\n };\n qx0 = copyF(qx0);\n qy0 = copyF(qy0);\n qsize = copyF(qsize);\n qmass = copyF(qmass);\n qcx = copyF(qcx);\n qcy = copyF(qcy);\n const c = new Int32Array(next * 4);\n c.set(qchild);\n qchild = c;\n const p = new Int32Array(next);\n p.set(qpoint);\n qpoint = p;\n const q = new Uint8Array(next);\n q.set(qinner);\n qinner = q;\n cap = next;\n };\n\n const newQuad = (x0: number, y0: number, size: number) => {\n grow(qcount + 1);\n const q = qcount++;\n qx0[q] = x0;\n qy0[q] = y0;\n qsize[q] = size;\n qchild[q * 4] = -1;\n qchild[q * 4 + 1] = -1;\n qchild[q * 4 + 2] = -1;\n qchild[q * 4 + 3] = -1;\n qpoint[q] = -1;\n qinner[q] = 0;\n return q;\n };\n\n const quadrant = (q: number, px: number, py: number) => {\n const half = qsize[q] / 2;\n return (px >= qx0[q] + half ? 1 : 0) | (py >= qy0[q] + half ? 2 : 0);\n };\n\n const childQuad = (q: number, k: number) => {\n const half = qsize[q] / 2;\n return newQuad(\n qx0[q] + (k & 1 ? half : 0),\n qy0[q] + (k & 2 ? half : 0),\n half,\n );\n };\n\n const insert = (i: number) => {\n let q = 0;\n const px = x[i];\n const py = y[i];\n for (let depth = 0; ; depth++) {\n if (qinner[q]) {\n const k = quadrant(q, px, py);\n let c = qchild[q * 4 + k];\n if (c < 0) {\n c = childQuad(q, k);\n qchild[q * 4 + k] = c;\n qpoint[c] = i;\n nextPoint[i] = -1;\n return;\n }\n q = c;\n continue;\n }\n const j = qpoint[q];\n if (j < 0) {\n qpoint[q] = i;\n nextPoint[i] = -1;\n return;\n }\n if ((x[j] === px && y[j] === py) || depth > 48) {\n nextPoint[i] = j;\n qpoint[q] = i;\n return;\n }\n // split: the points of the leaf move to a child\n qpoint[q] = -1;\n qinner[q] = 1;\n const k = quadrant(q, x[j], y[j]);\n const c = childQuad(q, k);\n qchild[q * 4 + k] = c;\n qpoint[c] = j;\n }\n };\n\n const buildTree = () => {\n let x0 = Infinity;\n let y0 = Infinity;\n let x1 = -Infinity;\n let y1 = -Infinity;\n for (let i = 0; i < n; i++) {\n if (x[i] < x0) x0 = x[i];\n if (x[i] > x1) x1 = x[i];\n if (y[i] < y0) y0 = y[i];\n if (y[i] > y1) y1 = y[i];\n }\n const size = Math.max(x1 - x0, y1 - y0, 1) * 1.0001 + 1e-6;\n qcount = 0;\n grow(n * 2 + 8);\n newQuad(x0, y0, size);\n for (let i = 0; i < n; i++) insert(i);\n // aggregates, children before parents\n for (let q = qcount - 1; q >= 0; q--) {\n if (qinner[q]) {\n let mass = 0;\n let weight = 0;\n let sx = 0;\n let sy = 0;\n for (let k = 0; k < 4; k++) {\n const c = qchild[q * 4 + k];\n if (c < 0) continue;\n const w = Math.abs(qmass[c]);\n mass += qmass[c];\n weight += w;\n sx += w * qcx[c];\n sy += w * qcy[c];\n }\n qmass[q] = mass;\n qcx[q] = weight ? sx / weight : qx0[q];\n qcy[q] = weight ? sy / weight : qy0[q];\n } else {\n let mass = 0;\n for (let j = qpoint[q]; j >= 0; j = nextPoint[j])\n mass += nodeCharge[j];\n qmass[q] = mass;\n qcx[q] = x[qpoint[q]];\n qcy[q] = y[qpoint[q]];\n }\n }\n };\n\n let stack = new Int32Array(256);\n const spatial = new Int32Array(n);\n const manyBody = () => {\n if (!charge || n < 2) return;\n buildTree();\n // adaptive accuracy: a hot layout moves a lot anyway, coarser\n // approximations are enough; full accuracy when it cools down\n const t = theta * (1 + THETA_BOOST * Math.min(1, alpha / REFINE_ALPHA));\n const open = 1 / (t * t);\n // nodes in tree order: neighbors walk the same cells (cache friendly)\n let count = 0;\n let top = 0;\n stack[top++] = 0;\n while (top) {\n const q = stack[--top];\n if (qinner[q]) {\n if (top + 4 > stack.length) {\n const s = new Int32Array(stack.length * 2);\n s.set(stack);\n stack = s;\n }\n for (let k = 0; k < 4; k++) {\n const c = qchild[q * 4 + k];\n if (c >= 0) stack[top++] = c;\n }\n } else {\n for (let j = qpoint[q]; j >= 0; j = nextPoint[j])\n spatial[count++] = j;\n }\n }\n for (let o = 0; o < count; o++) {\n const i = spatial[o];\n const xi = x[i];\n const yi = y[i];\n top = 0;\n stack[top++] = 0;\n while (top) {\n const q = stack[--top];\n if (!qmass[q]) continue;\n if (qinner[q]) {\n const dx = qcx[q] - xi;\n const dy = qcy[q] - yi;\n const w = qsize[q];\n let l = dx * dx + dy * dy;\n if (w * w * open < l) {\n if (l < 1) l = Math.sqrt(l);\n const f = (qmass[q] * alpha) / l;\n vx[i] += dx * f;\n vy[i] += dy * f;\n continue;\n }\n if (top + 4 > stack.length) {\n const s = new Int32Array(stack.length * 2);\n s.set(stack);\n stack = s;\n }\n for (let k = 0; k < 4; k++) {\n const c = qchild[q * 4 + k];\n if (c >= 0) stack[top++] = c;\n }\n } else {\n for (let j = qpoint[q]; j >= 0; j = nextPoint[j]) {\n if (j === i) continue;\n let dx = x[j] - xi;\n let dy = y[j] - yi;\n let l = dx * dx + dy * dy;\n if (dx === 0) {\n dx = jiggle();\n l += dx * dx;\n }\n if (dy === 0) {\n dy = jiggle();\n l += dy * dy;\n }\n if (l < 1) l = Math.sqrt(l);\n const f = (nodeCharge[j] * alpha) / l;\n vx[i] += dx * f;\n vy[i] += dy * f;\n }\n }\n }\n }\n };\n\n const links = () => {\n const distance = init.linkDistance;\n for (let l = 0; l < m; l++) {\n const s = src[l];\n const t = tgt[l];\n if (s === t) continue;\n let dx = x[t] + vx[t] - x[s] - vx[s] || jiggle();\n let dy = y[t] + vy[t] - y[s] - vy[s] || jiggle();\n let d = Math.sqrt(dx * dx + dy * dy);\n d = ((d - distance - radius[s] - radius[t]) / d) * alpha * strength[l];\n dx *= d;\n dy *= d;\n const b = bias[l];\n vx[t] -= dx * b;\n vy[t] -= dy * b;\n vx[s] += dx * (1 - b);\n vy[s] += dy * (1 - b);\n }\n };\n\n const gravity = () => {\n const g = init.gravity * alpha;\n if (!g) return;\n // a stronger pull along the short side of the view\n const stretch = Math.sqrt(\n Math.max(0.25, Math.min(4, init.aspect > 0 ? init.aspect : 1)),\n );\n const gx = g / stretch;\n const gy = g * stretch;\n for (let i = 0; i < n; i++) {\n vx[i] -= x[i] * gx;\n vy[i] -= y[i] * gy;\n }\n };\n\n // ---- hash grid of the collisions\n let tableSize = 1;\n while (tableSize < n * 2) tableSize <<= 1;\n const cellStart = new Int32Array(tableSize + 1);\n const cellItems = new Int32Array(n);\n const cellOf = new Int32Array(n);\n const hash = (cx: number, cy: number) =>\n (Math.imul(cx, 73856093) ^ Math.imul(cy, 19349663)) & (tableSize - 1);\n\n /** Buckets the nodes by cell of (`px`, `py`); returns the cell size */\n const bucket = (px: Float64Array, py: Float64Array, pad: number) => {\n const cell = Math.max(1e-6, (maxRadius + pad) * 2);\n cellStart.fill(0);\n for (let i = 0; i < n; i++) {\n const h = hash(Math.floor(px[i] / cell), Math.floor(py[i] / cell));\n cellOf[i] = h;\n cellStart[h + 1]++;\n }\n for (let h = 0; h < tableSize; h++) cellStart[h + 1] += cellStart[h];\n const fillAt = cellStart.slice(0, tableSize);\n for (let i = 0; i < n; i++) cellItems[fillAt[cellOf[i]]++] = i;\n return cell;\n };\n\n const visited = new Int32Array(tableSize).fill(-1);\n\n /** Calls `pair(i, j)` (i < j) for nodes in neighboring cells */\n const eachPair = (\n px: Float64Array,\n py: Float64Array,\n pad: number,\n pair: (i: number, j: number) => void,\n ) => {\n const cell = bucket(px, py, pad);\n visited.fill(-1);\n for (let i = 0; i < n; i++) {\n const cx = Math.floor(px[i] / cell);\n const cy = Math.floor(py[i] / cell);\n for (let oy = -1; oy <= 1; oy++) {\n for (let ox = -1; ox <= 1; ox++) {\n const h = hash(cx + ox, cy + oy);\n // two neighbor cells may share a bucket: visit it once\n if (visited[h] === i) continue;\n visited[h] = i;\n for (let k = cellStart[h]; k < cellStart[h + 1]; k++) {\n const j = cellItems[k];\n if (j > i) pair(i, j);\n }\n }\n }\n }\n };\n\n const px = new Float64Array(n);\n const py = new Float64Array(n);\n const collide = () => {\n if (collidePad < 0 || n < 2) return;\n for (let i = 0; i < n; i++) {\n px[i] = x[i] + vx[i];\n py[i] = y[i] + vy[i];\n }\n eachPair(px, py, collidePad, (i, j) => {\n const ri = radius[i] + collidePad;\n const rj = radius[j] + collidePad;\n const r = ri + rj;\n let dx = x[i] + vx[i] - x[j] - vx[j];\n let dy = y[i] + vy[i] - y[j] - vy[j];\n let l = dx * dx + dy * dy;\n if (l >= r * r) return;\n if (dx === 0) {\n dx = jiggle();\n l += dx * dx;\n }\n if (dy === 0) {\n dy = jiggle();\n l += dy * dy;\n }\n const d = Math.sqrt(l);\n const f = ((r - d) / d) * 0.7;\n dx *= f;\n dy *= f;\n const rj2 = rj * rj;\n const share = rj2 / (ri * ri + rj2);\n vx[i] += dx * share;\n vy[i] += dy * share;\n vx[j] -= dx * (1 - share);\n vy[j] -= dy * (1 - share);\n });\n };\n\n const center = () => {\n let sx = 0;\n let sy = 0;\n for (let i = 0; i < n; i++) {\n if (!Number.isNaN(fx[i])) return;\n sx += x[i];\n sy += y[i];\n }\n sx /= n || 1;\n sy /= n || 1;\n for (let i = 0; i < n; i++) {\n x[i] -= sx;\n y[i] -= sy;\n }\n };\n\n // a fresh layout turns its long axis toward the long side of the view\n // (rigid, so the forces are unchanged): wide boxes are filled, not just\n // their middle\n const aspect = init.aspect > 0 ? init.aspect : 1;\n const orient =\n init.alpha >= 1 && n > 2 && Math.abs(Math.log(aspect)) > 0.15;\n const align = () => {\n let sxx = 0;\n let syy = 0;\n let sxy = 0;\n for (let i = 0; i < n; i++) {\n if (!Number.isNaN(fx[i])) return;\n sxx += x[i] * x[i];\n syy += y[i] * y[i];\n sxy += x[i] * y[i];\n }\n const spread2 = Math.hypot(sxx - syy, 2 * sxy);\n // a round layout has no long axis\n if (spread2 < (sxx + syy) * 0.04) return;\n const axis = 0.5 * Math.atan2(2 * sxy, sxx - syy);\n let turn = (aspect > 1 ? 0 : Math.PI / 2) - axis;\n if (turn > Math.PI / 2) turn -= Math.PI;\n if (turn < -Math.PI / 2) turn += Math.PI;\n turn *= 0.12;\n if (Math.abs(turn) < 1e-5) return;\n const c = Math.cos(turn);\n const s = Math.sin(turn);\n for (let i = 0; i < n; i++) {\n const px = x[i];\n const pvx = vx[i];\n x[i] = px * c - y[i] * s;\n y[i] = px * s + y[i] * c;\n vx[i] = pvx * c - vy[i] * s;\n vy[i] = pvx * s + vy[i] * c;\n }\n };\n\n const step = () => {\n alpha += (alphaTarget - alpha) * alphaDecay;\n links();\n manyBody();\n gravity();\n collide();\n const decay = 1 - init.velocityDecay;\n for (let i = 0; i < n; i++) {\n if (Number.isNaN(fx[i])) {\n vx[i] *= decay;\n vy[i] *= decay;\n x[i] += vx[i];\n y[i] += vy[i];\n } else {\n x[i] = fx[i];\n y[i] = fy[i];\n vx[i] = vy[i] = 0;\n }\n }\n center();\n if (orient) align();\n };\n\n const done = () => !coarse && alpha < alphaMin && alphaTarget === 0;\n\n return {\n x,\n y,\n tick(k = 1) {\n for (let i = 0; i < k; i++) {\n if (coarse) {\n if (coarse.tick(1)) project();\n else finishCoarse();\n continue;\n }\n if (done()) return false;\n step();\n }\n return !done();\n },\n alpha: () => (coarse ? Math.max(alpha, coarse.alpha()) : alpha),\n reheat(value = 0.3) {\n if (coarse) finishCoarse();\n alpha = Math.max(alpha, value);\n },\n drag(i, px2, py2) {\n if (i < 0 || i >= n) return;\n if (coarse) finishCoarse();\n fx[i] = x[i] = px2;\n fy[i] = y[i] = py2;\n alphaTarget = 0.3;\n if (alpha < 0.3) alpha = 0.3;\n },\n release(i, keep) {\n alphaTarget = 0;\n if (i < 0 || i >= n || keep || pinned[i]) return;\n fx[i] = NaN;\n fy[i] = NaN;\n },\n done,\n settle() {\n // position-based passes until no two nodes overlap\n const pad = Math.max(0, collidePad);\n for (let pass = 0; pass < 80; pass++) {\n let moved = false;\n eachPair(x, y, pad, (i, j) => {\n const r = radius[i] + radius[j] + pad * 2;\n let dx = x[i] - x[j];\n let dy = y[i] - y[j];\n let l = dx * dx + dy * dy;\n if (l >= r * r * 0.9999) return;\n if (l === 0) {\n dx = random() - 0.5;\n dy = random() - 0.5;\n l = dx * dx + dy * dy;\n }\n const d = Math.sqrt(l);\n const push = (r - d) / d;\n const fi = Number.isNaN(fx[i]) ? 1 : 0;\n const fj = Number.isNaN(fx[j]) ? 1 : 0;\n if (!fi && !fj) return;\n const si = fi / (fi + fj);\n const sj = fj / (fi + fj);\n x[i] += dx * push * si * 1.001;\n y[i] += dy * push * si * 1.001;\n x[j] -= dx * push * sj * 1.001;\n y[j] -= dy * push * sj * 1.001;\n moved = true;\n });\n if (!moved) break;\n }\n },\n };\n };\n}\n\n// ------------------------------------------------------------- inputs\n\nexport const FORCE_DEFAULTS = {\n linkDistance: 60,\n charge: -160,\n theta: 0.9,\n gravity: 0.04,\n collide: 2,\n velocityDecay: 0.4,\n iterations: 300,\n seed: 1,\n /** Smallest fresh layout computed with a multilevel start */\n multilevel: 400,\n};\n\n/** Kernel input from index-based data */\nexport const forceInit = (\n n: number,\n source: Int32Array,\n target: Int32Array,\n options: GraphForceLayoutOptions | undefined,\n extra: {\n x?: Float64Array;\n y?: Float64Array;\n radius?: Float64Array;\n fixed?: Uint8Array;\n weight?: Float64Array;\n alpha?: number;\n aspect?: number;\n } = {},\n): ForceKernelInit => {\n const o = options ?? {};\n const collide =\n o.collide === false\n ? -1\n : typeof o.collide === \"number\"\n ? Math.max(0, o.collide)\n : FORCE_DEFAULTS.collide;\n return {\n n,\n x: extra.x ?? new Float64Array(n).fill(NaN),\n y: extra.y ?? new Float64Array(n).fill(NaN),\n radius: extra.radius ?? new Float64Array(n).fill(6),\n fixed: extra.fixed ?? new Uint8Array(n),\n source,\n target,\n weight: extra.weight ?? new Float64Array(source.length).fill(1),\n linkDistance: o.linkDistance ?? FORCE_DEFAULTS.linkDistance,\n linkStrength: o.linkStrength ?? NaN,\n charge: o.charge ?? FORCE_DEFAULTS.charge,\n theta: o.theta ?? FORCE_DEFAULTS.theta,\n gravity: o.gravity ?? FORCE_DEFAULTS.gravity,\n collide,\n velocityDecay: o.velocityDecay ?? FORCE_DEFAULTS.velocityDecay,\n iterations: o.iterations ?? FORCE_DEFAULTS.iterations,\n seed: o.seed ?? FORCE_DEFAULTS.seed,\n alpha: extra.alpha ?? 1,\n aspect: extra.aspect ?? 1,\n coarsen: o.multilevel === false ? 0 : FORCE_DEFAULTS.multilevel,\n };\n};\n\n/** Index of the ids and the valid edges (unknown ids are skipped) */\nexport const indexGraph = (\n nodes: readonly GraphNode[],\n edges: readonly GraphEdge[],\n): {\n index: Map<string, number>;\n source: Int32Array;\n target: Int32Array;\n edge: Int32Array;\n} => {\n const index = new Map<string, number>();\n nodes.forEach((node, i) => {\n if (!index.has(node.id)) index.set(node.id, i);\n });\n const s: number[] = [];\n const t: number[] = [];\n const e: number[] = [];\n edges.forEach((edge, k) => {\n const a = index.get(edge.source);\n const b = index.get(edge.target);\n if (a === undefined || b === undefined) return;\n s.push(a);\n t.push(b);\n e.push(k);\n });\n return {\n index,\n source: Int32Array.from(s),\n target: Int32Array.from(t),\n edge: Int32Array.from(e),\n };\n};\n\nconst simulationOf = (\n nodes: readonly GraphNode[],\n edges: readonly GraphEdge[],\n options: GraphForceLayoutOptions | undefined,\n): GraphForceSimulation => {\n const { source, target, edge } = indexGraph(nodes, edges);\n const n = nodes.length;\n const x = new Float64Array(n).fill(NaN);\n const y = new Float64Array(n).fill(NaN);\n const fixed = new Uint8Array(n);\n const radius = new Float64Array(n);\n nodes.forEach((node, i) => {\n if (Number.isFinite(node.x) && Number.isFinite(node.y)) {\n x[i] = node.x!;\n y[i] = node.y!;\n if (node.fixed) fixed[i] = 1;\n }\n radius[i] = options?.radius?.(node, i) ?? 6;\n });\n const values = Array.from(edge, (k) => edges[k].value);\n const known = values.filter((v): v is number => Number.isFinite(v) && v! > 0);\n const mean = known.length\n ? known.reduce((a, b) => a + b, 0) / known.length\n : 1;\n const weight = Float64Array.from(values, (v) =>\n Number.isFinite(v) && v! > 0\n ? Math.max(0.5, Math.min(2, Math.sqrt(v! / mean)))\n : 1,\n );\n return forceKernel()(\n forceInit(n, source, target, options, { x, y, fixed, radius, weight }),\n );\n};\n\n/**\n * A force simulation of the nodes and edges, stepped by the caller (no DOM,\n * no timers: usable in workers and mini-programs)\n */\nexport const createForceSimulation = (\n nodes: readonly GraphNode[],\n edges: readonly GraphEdge[],\n options?: GraphForceLayoutOptions,\n): GraphForceSimulation => simulationOf(nodes, edges, options);\n\n/** Runs a force simulation to the end and returns the positions (synchronous) */\nexport const forceLayout = (\n nodes: readonly GraphNode[],\n edges: readonly GraphEdge[],\n options?: GraphForceLayoutOptions,\n): GraphLayoutResult => {\n const sim = simulationOf(nodes, edges, options);\n while (sim.tick(16));\n sim.settle();\n return { x: sim.x, y: sim.y };\n};\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ var e=(e,t,n,r,i,a,o,s,c)=>{let l=Math.hypot(r-t,i-n)+Math.hypot(a-r,o-i)+Math.hypot(s-a,c-o),u=Math.max(4,Math.min(28,Math.ceil(l/10)));for(let l=1;l<=u;l++){let d=l/u,f=1-d,p=f*f*f,m=3*f*f*d,h=3*f*d*d,g=d*d*d;e.push(p*t+m*r+h*a+g*s,p*n+m*i+h*o+g*c)}},t=(t,n,r,i,a,o)=>{let s=[t,n];return e(s,t,n,t+(r-t)*2/3,n+(i-n)*2/3,a+(r-a)*2/3,o+(i-o)*2/3,a,o),s},n=(t,n)=>{let r=[t[0],t[1]];for(let i=2;i<t.length;i+=2){let a=t[i-2],o=t[i-1],s=t[i],c=t[i+1];if(n){let t=(o+c)/2;e(r,a,o,a,t,s,t,s,c)}else{let t=(a+s)/2;e(r,a,o,t,o,t,c,s,c)}}return r},r=(e,t,n,r,i,a)=>{let o=e[e.length-2],s=e[e.length-1],c=Math.hypot(t-o,n-s),l=Math.hypot(r-t,i-n),u=Math.min(a,c/2,l/2);if(u<.5){e.push(t,n);return}let d=t-(t-o)/c*u,f=n-(n-s)/c*u,p=t+(r-t)/l*u,m=n+(i-n)/l*u;e.push(d,f);for(let r=1;r<=4;r++){let i=r/4,a=1-i;e.push(a*a*d+2*a*i*t+i*i*p,a*a*f+2*a*i*n+i*i*m)}},i=(e,t,n)=>{let r=[e[0],e[1]];for(let n=2;n<e.length;n+=2){let i=e[n-2],a=e[n-1],o=e[n],s=e[n+1];if(Math.abs(t?o-i:s-a)>.5){if(t){let e=(a+s)/2;r.push(i,e,o,e)}else{let e=(i+o)/2;r.push(e,a,e,s)}}r.push(o,s)}return a(r,n)},a=(e,t)=>{let n=[e[0],e[1]],i=e.length-2;for(let a=2;a<i;a+=2)r(n,e[a],e[a+1],e[a+2],e[a+3],t);return i>=2&&n.push(e[i],e[i+1]),n},o=(e,t,n,r=1)=>{let i=(e+t)/2,a=Math.abs(t-e)/2,o=2*Math.max(4,Math.min(32,Math.ceil(a/12))),s=[],c=e<t?Math.PI:0,l=e<t?0:Math.PI;for(let e=0;e<=o;e++){let t=c+(l-c)*e/o;s.push(i+a*Math.cos(t),n-a*r*Math.sin(t))}return s},s=(t,n,r,i,a,o)=>{let s=.42,c=.8,l=Math.max(i,a)+o*2.2,u=r-s,d=r+s,f=[t+Math.cos(u)*i,n+Math.sin(u)*i];return e(f,f[0],f[1],t+Math.cos(r-c)*l,n+Math.sin(r-c)*l,t+Math.cos(r+c)*l,n+Math.sin(r+c)*l,t+Math.cos(d)*a,n+Math.sin(d)*a),f},c=e=>{let t=0;for(let n=2;n<e.length;n+=2)t+=Math.hypot(e[n]-e[n-2],e[n+1]-e[n-1]);return t},l=(e,t,n)=>{let r=c(e);if(r<=t+n+1e-6){if(e.length<4)return e;let i=u(e,(t+n>0?t/(t+n):.5)*r);return[i[0],i[1],i[0],i[1]]}let i=[],a=u(e,t),o=u(e,r-n);i.push(a[0],a[1]);let s=0;for(let a=2;a<e.length;a+=2)s+=Math.hypot(e[a]-e[a-2],e[a+1]-e[a-1]),s>t&&s<r-n&&i.push(e[a],e[a+1]);return i.push(o[0],o[1]),i},u=(e,t)=>{let n=0;for(let r=2;r<e.length;r+=2){let i=e[r]-e[r-2],a=e[r+1]-e[r-1],o=Math.hypot(i,a);if(n+o>=t&&o>0){let s=(t-n)/o;return[e[r-2]+i*s,e[r-1]+a*s,i/o,a/o]}n+=o}let r=e.length-2,i=r>=2?e[r]-e[r-2]:1,a=r>=2?e[r+1]-e[r-1]:0,o=Math.hypot(i,a)||1;return[e[r],e[r+1],i/o,a/o]},d=e=>{for(let t=e.length-4;t>=0;t-=2){let n=e[e.length-2]-e[t],r=e[e.length-1]-e[t+1],i=Math.hypot(n,r);if(i>1e-9)return[n/i,r/i]}return[1,0]},f=(e,t,n,r,i)=>{if(!e)return t/2;let a=Math.abs(r),o=Math.abs(i),s=a>1e-9?t/2/a:1/0,c=o>1e-9?n/2/o:1/0;return Math.min(s,c)},p=(e,t,n,r,i,a,o)=>{let s=a*.42,c=t-r*a,l=n-i*a,u=c-i*s,d=l+r*s,f=c+i*s,p=l-r*s;e.push(u,d,t,n,f,p,u,d,o,o),e.push(t,n,c,l,o,o);let m=(u+c)/2,h=(d+l)/2,g=(f+c)/2,_=(p+l)/2;e.push(t,n,m,h,o,o,t,n,g,_,o,o)},m=(e,t,n,r,i,a,o,s)=>{let c=[t,n,r,i,a,o];c[0]>c[2]&&(c=[c[2],c[3],c[0],c[1],c[4],c[5]]),c[2]>c[4]&&(c=[c[0],c[1],c[4],c[5],c[2],c[3]]),c[0]>c[2]&&(c=[c[2],c[3],c[0],c[1],c[4],c[5]]);let[l,u,d,f,p,m]=c;if(!(p-l>1e-12))return;let h=u+(m-u)*(d-l)/(p-l);e.push(l,u,u,d,Math.max(f,h),Math.min(f,h),p,m,m,s,s,s)},h=(e,t,n,r,i)=>{let a=i*.5,o=e-n*i,s=t-r*i;return[e,t,o-r*a,s+n*a,e-n*i*.72,t-r*i*.72,o+r*a,s-n*a]},g=(e,t,n,r,i,a,o,s)=>{let[c,l,u,d,f,p,g,_]=h(n,r,i,a,o);m(e,c,l,u,d,f,p,s),m(e,c,l,f,p,g,_,s),t.push(u,d,c,l,g,_,f,p,u,d,s,s)},_=(e,t,n,r)=>{let i=[],a=c(e),o=t+n;if(o<=0||a<=0)return e.slice();for(let n=0;n<a;n+=o){let o=Math.min(a,n+t),s=u(e,n);i.push(s[0],s[1]);let c=0;for(let t=2;t<e.length;t+=2)c+=Math.hypot(e[t]-e[t-2],e[t+1]-e[t-1]),c>n&&c<o&&i.push(e[t],e[t+1]);let l=u(e,o);i.push(l[0],l[1],r,r)}return i},v=(e,t,n)=>{let r=1/0;for(let i=2;i<e.length;i+=2){let a=e[i-2],o=e[i-1],s=e[i]-a,c=e[i+1]-o,l=s*s+c*c,u=l>0?Math.max(0,Math.min(1,((t-a)*s+(n-o)*c)/l)):0,d=a+s*u-t,f=o+c*u-n;r=Math.min(r,d*d+f*f)}return r};exports.arcPath=o,exports.arrowHead=p,exports.boundaryDistance=f,exports.cubicPoints=e,exports.dashPath=_,exports.distanceToPath=v,exports.endDirection=d,exports.filledArrow=g,exports.loopPath=s,exports.orthogonalPath=i,exports.pathLength=c,exports.pointAt=u,exports.quadraticPath=t,exports.roundCorners=a,exports.splinePath=n,exports.triangleArea=m,exports.trimPath=l;
2
+ //# sourceMappingURL=geometry.cjs.map