minerva-design 1.3.0 → 1.4.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 (1166) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/README.md +21 -21
  3. package/custom-elements.json +13630 -4757
  4. package/dist/angular/fesm2022/minerva-angular.mjs +6872 -172
  5. package/dist/angular/fesm2022/minerva-angular.mjs.map +1 -1
  6. package/dist/angular/types/minerva-angular.d.ts +2240 -0
  7. package/dist/charts/canvas.d.cts +7 -2
  8. package/dist/charts/canvas.d.ts +7 -2
  9. package/dist/charts/core.cjs +1 -1
  10. package/dist/charts/core.d.cts +7 -4
  11. package/dist/charts/core.d.ts +7 -4
  12. package/dist/charts/core.js +19 -8
  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 +6 -6
  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.d.cts +11 -1
  20. package/dist/charts/engine/canvas.d.ts +11 -1
  21. package/dist/charts/engine/canvas.js +118 -68
  22. package/dist/charts/engine/canvas.js.map +1 -1
  23. package/dist/charts/engine/chart.cjs +1 -1
  24. package/dist/charts/engine/chart.cjs.map +1 -1
  25. package/dist/charts/engine/chart.d.cts +1 -1
  26. package/dist/charts/engine/chart.d.ts +1 -1
  27. package/dist/charts/engine/chart.js +307 -285
  28. package/dist/charts/engine/chart.js.map +1 -1
  29. package/dist/charts/engine/color.cjs +1 -1
  30. package/dist/charts/engine/color.cjs.map +1 -1
  31. package/dist/charts/engine/color.js +2 -2
  32. package/dist/charts/engine/color.js.map +1 -1
  33. package/dist/charts/engine/controller.cjs +1 -1
  34. package/dist/charts/engine/controller.cjs.map +1 -1
  35. package/dist/charts/engine/controller.d.cts +12 -3
  36. package/dist/charts/engine/controller.d.ts +12 -3
  37. package/dist/charts/engine/controller.js +359 -299
  38. package/dist/charts/engine/controller.js.map +1 -1
  39. package/dist/charts/engine/data.cjs +1 -1
  40. package/dist/charts/engine/data.cjs.map +1 -1
  41. package/dist/charts/engine/data.d.cts +6 -0
  42. package/dist/charts/engine/data.d.ts +6 -0
  43. package/dist/charts/engine/data.js +63 -49
  44. package/dist/charts/engine/data.js.map +1 -1
  45. package/dist/charts/engine/format.cjs +1 -1
  46. package/dist/charts/engine/format.cjs.map +1 -1
  47. package/dist/charts/engine/format.d.cts +21 -6
  48. package/dist/charts/engine/format.d.ts +21 -6
  49. package/dist/charts/engine/format.js +46 -21
  50. package/dist/charts/engine/format.js.map +1 -1
  51. package/dist/charts/engine/items.cjs +1 -1
  52. package/dist/charts/engine/items.cjs.map +1 -1
  53. package/dist/charts/engine/items.js +211 -54
  54. package/dist/charts/engine/items.js.map +1 -1
  55. package/dist/charts/engine/labels.cjs +2 -0
  56. package/dist/charts/engine/labels.cjs.map +1 -0
  57. package/dist/charts/engine/labels.d.cts +13 -0
  58. package/dist/charts/engine/labels.d.ts +13 -0
  59. package/dist/charts/engine/labels.js +74 -0
  60. package/dist/charts/engine/labels.js.map +1 -0
  61. package/dist/charts/engine/layout.cjs +1 -1
  62. package/dist/charts/engine/layout.cjs.map +1 -1
  63. package/dist/charts/engine/layout.d.cts +34 -2
  64. package/dist/charts/engine/layout.d.ts +34 -2
  65. package/dist/charts/engine/layout.js +53 -12
  66. package/dist/charts/engine/layout.js.map +1 -1
  67. package/dist/charts/engine/locale.cjs +2 -0
  68. package/dist/charts/engine/locale.cjs.map +1 -0
  69. package/dist/charts/engine/locale.d.cts +33 -0
  70. package/dist/charts/engine/locale.d.ts +33 -0
  71. package/dist/charts/engine/locale.js +68 -0
  72. package/dist/charts/engine/locale.js.map +1 -0
  73. package/dist/charts/engine/model.cjs +1 -1
  74. package/dist/charts/engine/model.cjs.map +1 -1
  75. package/dist/charts/engine/model.d.cts +39 -1
  76. package/dist/charts/engine/model.d.ts +39 -1
  77. package/dist/charts/engine/model.js +212 -105
  78. package/dist/charts/engine/model.js.map +1 -1
  79. package/dist/charts/engine/orderbook/book.cjs +2 -0
  80. package/dist/charts/engine/orderbook/book.cjs.map +1 -0
  81. package/dist/charts/engine/orderbook/book.d.cts +28 -0
  82. package/dist/charts/engine/orderbook/book.d.ts +28 -0
  83. package/dist/charts/engine/orderbook/book.js +134 -0
  84. package/dist/charts/engine/orderbook/book.js.map +1 -0
  85. package/dist/charts/engine/orderbook/depth.cjs +2 -0
  86. package/dist/charts/engine/orderbook/depth.cjs.map +1 -0
  87. package/dist/charts/engine/orderbook/depth.d.cts +7 -0
  88. package/dist/charts/engine/orderbook/depth.d.ts +7 -0
  89. package/dist/charts/engine/orderbook/depth.js +413 -0
  90. package/dist/charts/engine/orderbook/depth.js.map +1 -0
  91. package/dist/charts/engine/orderbook/format.cjs +2 -0
  92. package/dist/charts/engine/orderbook/format.cjs.map +1 -0
  93. package/dist/charts/engine/orderbook/format.d.cts +48 -0
  94. package/dist/charts/engine/orderbook/format.d.ts +48 -0
  95. package/dist/charts/engine/orderbook/format.js +65 -0
  96. package/dist/charts/engine/orderbook/format.js.map +1 -0
  97. package/dist/charts/engine/orderbook/heatmap.cjs +2 -0
  98. package/dist/charts/engine/orderbook/heatmap.cjs.map +1 -0
  99. package/dist/charts/engine/orderbook/heatmap.d.cts +9 -0
  100. package/dist/charts/engine/orderbook/heatmap.d.ts +9 -0
  101. package/dist/charts/engine/orderbook/heatmap.js +703 -0
  102. package/dist/charts/engine/orderbook/heatmap.js.map +1 -0
  103. package/dist/charts/engine/orderbook/host.cjs +2 -0
  104. package/dist/charts/engine/orderbook/host.cjs.map +1 -0
  105. package/dist/charts/engine/orderbook/host.d.cts +50 -0
  106. package/dist/charts/engine/orderbook/host.d.ts +50 -0
  107. package/dist/charts/engine/orderbook/host.js +161 -0
  108. package/dist/charts/engine/orderbook/host.js.map +1 -0
  109. package/dist/charts/engine/orderbook/index.cjs +1 -0
  110. package/dist/charts/engine/orderbook/index.d.cts +6 -0
  111. package/dist/charts/engine/orderbook/index.d.ts +6 -0
  112. package/dist/charts/engine/orderbook/index.js +6 -0
  113. package/dist/charts/engine/orderbook/ladder.cjs +2 -0
  114. package/dist/charts/engine/orderbook/ladder.cjs.map +1 -0
  115. package/dist/charts/engine/orderbook/ladder.d.cts +6 -0
  116. package/dist/charts/engine/orderbook/ladder.d.ts +6 -0
  117. package/dist/charts/engine/orderbook/ladder.js +341 -0
  118. package/dist/charts/engine/orderbook/ladder.js.map +1 -0
  119. package/dist/charts/engine/orderbook/tape.cjs +2 -0
  120. package/dist/charts/engine/orderbook/tape.cjs.map +1 -0
  121. package/dist/charts/engine/orderbook/tape.d.cts +6 -0
  122. package/dist/charts/engine/orderbook/tape.d.ts +6 -0
  123. package/dist/charts/engine/orderbook/tape.js +450 -0
  124. package/dist/charts/engine/orderbook/tape.js.map +1 -0
  125. package/dist/charts/engine/orderbook/types.d.cts +735 -0
  126. package/dist/charts/engine/orderbook/types.d.ts +735 -0
  127. package/dist/charts/engine/overlay.cjs +1 -1
  128. package/dist/charts/engine/overlay.cjs.map +1 -1
  129. package/dist/charts/engine/overlay.d.cts +18 -2
  130. package/dist/charts/engine/overlay.d.ts +18 -2
  131. package/dist/charts/engine/overlay.js +132 -96
  132. package/dist/charts/engine/overlay.js.map +1 -1
  133. package/dist/charts/engine/presets.cjs +2 -2
  134. package/dist/charts/engine/presets.cjs.map +1 -1
  135. package/dist/charts/engine/presets.d.cts +249 -1
  136. package/dist/charts/engine/presets.d.ts +249 -1
  137. package/dist/charts/engine/presets.js +367 -29
  138. package/dist/charts/engine/presets.js.map +1 -1
  139. package/dist/charts/engine/renderers/detect.cjs +1 -1
  140. package/dist/charts/engine/renderers/detect.cjs.map +1 -1
  141. package/dist/charts/engine/renderers/detect.js +18 -15
  142. package/dist/charts/engine/renderers/detect.js.map +1 -1
  143. package/dist/charts/engine/renderers/gl.cjs +2 -0
  144. package/dist/charts/engine/renderers/gl.cjs.map +1 -0
  145. package/dist/charts/engine/renderers/gl.d.cts +21 -0
  146. package/dist/charts/engine/renderers/gl.d.ts +21 -0
  147. package/dist/charts/engine/renderers/gl.js +56 -0
  148. package/dist/charts/engine/renderers/gl.js.map +1 -0
  149. package/dist/charts/engine/renderers/shaders.cjs +143 -1
  150. package/dist/charts/engine/renderers/shaders.cjs.map +1 -1
  151. package/dist/charts/engine/renderers/shaders.d.cts +16 -0
  152. package/dist/charts/engine/renderers/shaders.d.ts +16 -0
  153. package/dist/charts/engine/renderers/shaders.js +139 -1
  154. package/dist/charts/engine/renderers/shaders.js.map +1 -1
  155. package/dist/charts/engine/renderers/webgl.cjs +2 -0
  156. package/dist/charts/engine/renderers/webgl.cjs.map +1 -0
  157. package/dist/charts/engine/renderers/webgl.d.cts +4 -0
  158. package/dist/charts/engine/renderers/webgl.d.ts +4 -0
  159. package/dist/charts/engine/renderers/webgl.js +133 -0
  160. package/dist/charts/engine/renderers/webgl.js.map +1 -0
  161. package/dist/charts/engine/renderers/webgl2.cjs +1 -1
  162. package/dist/charts/engine/renderers/webgl2.cjs.map +1 -1
  163. package/dist/charts/engine/renderers/webgl2.d.cts +0 -1
  164. package/dist/charts/engine/renderers/webgl2.d.ts +0 -1
  165. package/dist/charts/engine/renderers/webgl2.js +59 -108
  166. package/dist/charts/engine/renderers/webgl2.js.map +1 -1
  167. package/dist/charts/engine/scale.cjs +1 -1
  168. package/dist/charts/engine/scale.cjs.map +1 -1
  169. package/dist/charts/engine/scale.js +1 -1
  170. package/dist/charts/engine/scale.js.map +1 -1
  171. package/dist/charts/engine/scene.cjs +1 -1
  172. package/dist/charts/engine/scene.cjs.map +1 -1
  173. package/dist/charts/engine/scene.d.cts +14 -4
  174. package/dist/charts/engine/scene.d.ts +14 -4
  175. package/dist/charts/engine/scene.js +292 -163
  176. package/dist/charts/engine/scene.js.map +1 -1
  177. package/dist/charts/engine/shapes/bullet.cjs +2 -0
  178. package/dist/charts/engine/shapes/bullet.cjs.map +1 -0
  179. package/dist/charts/engine/shapes/bullet.d.cts +6 -0
  180. package/dist/charts/engine/shapes/bullet.d.ts +6 -0
  181. package/dist/charts/engine/shapes/bullet.js +255 -0
  182. package/dist/charts/engine/shapes/bullet.js.map +1 -0
  183. package/dist/charts/engine/shapes/calendar.cjs +2 -0
  184. package/dist/charts/engine/shapes/calendar.cjs.map +1 -0
  185. package/dist/charts/engine/shapes/calendar.d.cts +38 -0
  186. package/dist/charts/engine/shapes/calendar.d.ts +38 -0
  187. package/dist/charts/engine/shapes/calendar.js +369 -0
  188. package/dist/charts/engine/shapes/calendar.js.map +1 -0
  189. package/dist/charts/engine/shapes/canvas.cjs +1 -1
  190. package/dist/charts/engine/shapes/canvas.cjs.map +1 -1
  191. package/dist/charts/engine/shapes/canvas.d.cts +7 -0
  192. package/dist/charts/engine/shapes/canvas.d.ts +7 -0
  193. package/dist/charts/engine/shapes/canvas.js +22 -13
  194. package/dist/charts/engine/shapes/canvas.js.map +1 -1
  195. package/dist/charts/engine/shapes/chart.cjs +1 -1
  196. package/dist/charts/engine/shapes/chart.cjs.map +1 -1
  197. package/dist/charts/engine/shapes/chart.d.cts +3 -2
  198. package/dist/charts/engine/shapes/chart.d.ts +3 -2
  199. package/dist/charts/engine/shapes/chart.js +45 -26
  200. package/dist/charts/engine/shapes/chart.js.map +1 -1
  201. package/dist/charts/engine/shapes/draw.cjs +1 -1
  202. package/dist/charts/engine/shapes/draw.cjs.map +1 -1
  203. package/dist/charts/engine/shapes/draw.d.cts +3 -1
  204. package/dist/charts/engine/shapes/draw.d.ts +3 -1
  205. package/dist/charts/engine/shapes/draw.js +31 -18
  206. package/dist/charts/engine/shapes/draw.js.map +1 -1
  207. package/dist/charts/engine/shapes/funnel.cjs +1 -1
  208. package/dist/charts/engine/shapes/funnel.cjs.map +1 -1
  209. package/dist/charts/engine/shapes/funnel.js +3 -3
  210. package/dist/charts/engine/shapes/funnel.js.map +1 -1
  211. package/dist/charts/engine/shapes/gauge.cjs +1 -1
  212. package/dist/charts/engine/shapes/gauge.cjs.map +1 -1
  213. package/dist/charts/engine/shapes/gauge.js +132 -95
  214. package/dist/charts/engine/shapes/gauge.js.map +1 -1
  215. package/dist/charts/engine/shapes/hit.cjs +1 -1
  216. package/dist/charts/engine/shapes/hit.cjs.map +1 -1
  217. package/dist/charts/engine/shapes/hit.d.cts +3 -1
  218. package/dist/charts/engine/shapes/hit.d.ts +3 -1
  219. package/dist/charts/engine/shapes/hit.js +29 -8
  220. package/dist/charts/engine/shapes/hit.js.map +1 -1
  221. package/dist/charts/engine/shapes/index.d.cts +4 -1
  222. package/dist/charts/engine/shapes/index.d.ts +4 -1
  223. package/dist/charts/engine/shapes/labels.cjs +2 -0
  224. package/dist/charts/engine/shapes/labels.cjs.map +1 -0
  225. package/dist/charts/engine/shapes/labels.d.cts +14 -0
  226. package/dist/charts/engine/shapes/labels.d.ts +14 -0
  227. package/dist/charts/engine/shapes/labels.js +146 -0
  228. package/dist/charts/engine/shapes/labels.js.map +1 -0
  229. package/dist/charts/engine/shapes/layout.cjs +2 -2
  230. package/dist/charts/engine/shapes/layout.cjs.map +1 -1
  231. package/dist/charts/engine/shapes/layout.d.cts +8 -3
  232. package/dist/charts/engine/shapes/layout.d.ts +8 -3
  233. package/dist/charts/engine/shapes/layout.js +200 -113
  234. package/dist/charts/engine/shapes/layout.js.map +1 -1
  235. package/dist/charts/engine/shapes/pie.cjs +1 -1
  236. package/dist/charts/engine/shapes/pie.cjs.map +1 -1
  237. package/dist/charts/engine/shapes/pie.js +2 -2
  238. package/dist/charts/engine/shapes/pie.js.map +1 -1
  239. package/dist/charts/engine/shapes/radar.cjs +1 -1
  240. package/dist/charts/engine/shapes/radar.cjs.map +1 -1
  241. package/dist/charts/engine/shapes/radar.d.cts +2 -2
  242. package/dist/charts/engine/shapes/radar.d.ts +2 -2
  243. package/dist/charts/engine/shapes/radar.js +50 -49
  244. package/dist/charts/engine/shapes/radar.js.map +1 -1
  245. package/dist/charts/engine/shapes/radialBar.cjs +2 -0
  246. package/dist/charts/engine/shapes/radialBar.cjs.map +1 -0
  247. package/dist/charts/engine/shapes/radialBar.d.cts +8 -0
  248. package/dist/charts/engine/shapes/radialBar.d.ts +8 -0
  249. package/dist/charts/engine/shapes/radialBar.js +155 -0
  250. package/dist/charts/engine/shapes/radialBar.js.map +1 -0
  251. package/dist/charts/engine/shapes/runtime.cjs +1 -1
  252. package/dist/charts/engine/shapes/runtime.cjs.map +1 -1
  253. package/dist/charts/engine/shapes/runtime.d.cts +9 -2
  254. package/dist/charts/engine/shapes/runtime.d.ts +9 -2
  255. package/dist/charts/engine/shapes/runtime.js +61 -51
  256. package/dist/charts/engine/shapes/runtime.js.map +1 -1
  257. package/dist/charts/engine/shapes/sankey.cjs +2 -0
  258. package/dist/charts/engine/shapes/sankey.cjs.map +1 -0
  259. package/dist/charts/engine/shapes/sankey.d.cts +29 -0
  260. package/dist/charts/engine/shapes/sankey.d.ts +29 -0
  261. package/dist/charts/engine/shapes/sankey.js +372 -0
  262. package/dist/charts/engine/shapes/sankey.js.map +1 -0
  263. package/dist/charts/engine/shapes/scene.cjs +1 -1
  264. package/dist/charts/engine/shapes/scene.cjs.map +1 -1
  265. package/dist/charts/engine/shapes/scene.d.cts +62 -8
  266. package/dist/charts/engine/shapes/scene.d.ts +62 -8
  267. package/dist/charts/engine/shapes/scene.js +33 -31
  268. package/dist/charts/engine/shapes/scene.js.map +1 -1
  269. package/dist/charts/engine/shapes/sunburst.cjs +2 -0
  270. package/dist/charts/engine/shapes/sunburst.cjs.map +1 -0
  271. package/dist/charts/engine/shapes/sunburst.d.cts +6 -0
  272. package/dist/charts/engine/shapes/sunburst.d.ts +6 -0
  273. package/dist/charts/engine/shapes/sunburst.js +261 -0
  274. package/dist/charts/engine/shapes/sunburst.js.map +1 -0
  275. package/dist/charts/engine/shapes/treemap.cjs +1 -1
  276. package/dist/charts/engine/shapes/treemap.cjs.map +1 -1
  277. package/dist/charts/engine/shapes/treemap.js +2 -2
  278. package/dist/charts/engine/shapes/treemap.js.map +1 -1
  279. package/dist/charts/engine/shapes/types.d.cts +439 -12
  280. package/dist/charts/engine/shapes/types.d.ts +439 -12
  281. package/dist/charts/engine/three-d/canvas2d.cjs +2 -0
  282. package/dist/charts/engine/three-d/canvas2d.cjs.map +1 -0
  283. package/dist/charts/engine/three-d/canvas2d.d.cts +4 -0
  284. package/dist/charts/engine/three-d/canvas2d.d.ts +4 -0
  285. package/dist/charts/engine/three-d/canvas2d.js +104 -0
  286. package/dist/charts/engine/three-d/canvas2d.js.map +1 -0
  287. package/dist/charts/engine/three-d/chart.cjs +2 -0
  288. package/dist/charts/engine/three-d/chart.cjs.map +1 -0
  289. package/dist/charts/engine/three-d/chart.d.cts +15 -0
  290. package/dist/charts/engine/three-d/chart.d.ts +15 -0
  291. package/dist/charts/engine/three-d/chart.js +621 -0
  292. package/dist/charts/engine/three-d/chart.js.map +1 -0
  293. package/dist/charts/engine/three-d/colormap.cjs +2 -0
  294. package/dist/charts/engine/three-d/colormap.cjs.map +1 -0
  295. package/dist/charts/engine/three-d/colormap.d.cts +16 -0
  296. package/dist/charts/engine/three-d/colormap.d.ts +16 -0
  297. package/dist/charts/engine/three-d/colormap.js +166 -0
  298. package/dist/charts/engine/three-d/colormap.js.map +1 -0
  299. package/dist/charts/engine/three-d/contours.cjs +2 -0
  300. package/dist/charts/engine/three-d/contours.cjs.map +1 -0
  301. package/dist/charts/engine/three-d/contours.d.cts +7 -0
  302. package/dist/charts/engine/three-d/contours.d.ts +7 -0
  303. package/dist/charts/engine/three-d/contours.js +47 -0
  304. package/dist/charts/engine/three-d/contours.js.map +1 -0
  305. package/dist/charts/engine/three-d/detect.cjs +2 -0
  306. package/dist/charts/engine/three-d/detect.cjs.map +1 -0
  307. package/dist/charts/engine/three-d/detect.d.cts +11 -0
  308. package/dist/charts/engine/three-d/detect.d.ts +11 -0
  309. package/dist/charts/engine/three-d/detect.js +35 -0
  310. package/dist/charts/engine/three-d/detect.js.map +1 -0
  311. package/dist/charts/engine/three-d/dom.cjs +2 -0
  312. package/dist/charts/engine/three-d/dom.cjs.map +1 -0
  313. package/dist/charts/engine/three-d/dom.d.cts +21 -0
  314. package/dist/charts/engine/three-d/dom.d.ts +21 -0
  315. package/dist/charts/engine/three-d/dom.js +98 -0
  316. package/dist/charts/engine/three-d/dom.js.map +1 -0
  317. package/dist/charts/engine/three-d/geometry.cjs +2 -0
  318. package/dist/charts/engine/three-d/geometry.cjs.map +1 -0
  319. package/dist/charts/engine/three-d/geometry.d.cts +76 -0
  320. package/dist/charts/engine/three-d/geometry.d.ts +76 -0
  321. package/dist/charts/engine/three-d/geometry.js +529 -0
  322. package/dist/charts/engine/three-d/geometry.js.map +1 -0
  323. package/dist/charts/engine/three-d/hover.cjs +2 -0
  324. package/dist/charts/engine/three-d/hover.cjs.map +1 -0
  325. package/dist/charts/engine/three-d/hover.d.cts +25 -0
  326. package/dist/charts/engine/three-d/hover.d.ts +25 -0
  327. package/dist/charts/engine/three-d/hover.js +131 -0
  328. package/dist/charts/engine/three-d/hover.js.map +1 -0
  329. package/dist/charts/engine/three-d/index.cjs +1 -0
  330. package/dist/charts/engine/three-d/index.d.cts +2 -0
  331. package/dist/charts/engine/three-d/index.d.ts +2 -0
  332. package/dist/charts/engine/three-d/index.js +2 -0
  333. package/dist/charts/engine/three-d/labels.cjs +2 -0
  334. package/dist/charts/engine/three-d/labels.cjs.map +1 -0
  335. package/dist/charts/engine/three-d/labels.d.cts +23 -0
  336. package/dist/charts/engine/three-d/labels.d.ts +23 -0
  337. package/dist/charts/engine/three-d/labels.js +136 -0
  338. package/dist/charts/engine/three-d/labels.js.map +1 -0
  339. package/dist/charts/engine/three-d/math.cjs +2 -0
  340. package/dist/charts/engine/three-d/math.cjs.map +1 -0
  341. package/dist/charts/engine/three-d/math.d.cts +84 -0
  342. package/dist/charts/engine/three-d/math.d.ts +84 -0
  343. package/dist/charts/engine/three-d/math.js +150 -0
  344. package/dist/charts/engine/three-d/math.js.map +1 -0
  345. package/dist/charts/engine/three-d/model.cjs +2 -0
  346. package/dist/charts/engine/three-d/model.cjs.map +1 -0
  347. package/dist/charts/engine/three-d/model.d.cts +130 -0
  348. package/dist/charts/engine/three-d/model.d.ts +130 -0
  349. package/dist/charts/engine/three-d/model.js +277 -0
  350. package/dist/charts/engine/three-d/model.js.map +1 -0
  351. package/dist/charts/engine/three-d/overlay.cjs +2 -0
  352. package/dist/charts/engine/three-d/overlay.cjs.map +1 -0
  353. package/dist/charts/engine/three-d/overlay.d.cts +72 -0
  354. package/dist/charts/engine/three-d/overlay.d.ts +72 -0
  355. package/dist/charts/engine/three-d/overlay.js +197 -0
  356. package/dist/charts/engine/three-d/overlay.js.map +1 -0
  357. package/dist/charts/engine/three-d/pick.cjs +2 -0
  358. package/dist/charts/engine/three-d/pick.cjs.map +1 -0
  359. package/dist/charts/engine/three-d/pick.d.cts +52 -0
  360. package/dist/charts/engine/three-d/pick.d.ts +52 -0
  361. package/dist/charts/engine/three-d/pick.js +220 -0
  362. package/dist/charts/engine/three-d/pick.js.map +1 -0
  363. package/dist/charts/engine/three-d/render-types.cjs +2 -0
  364. package/dist/charts/engine/three-d/render-types.cjs.map +1 -0
  365. package/dist/charts/engine/three-d/render-types.d.cts +82 -0
  366. package/dist/charts/engine/three-d/render-types.d.ts +82 -0
  367. package/dist/charts/engine/three-d/render-types.js +13 -0
  368. package/dist/charts/engine/three-d/render-types.js.map +1 -0
  369. package/dist/charts/engine/three-d/shaders.cjs +276 -0
  370. package/dist/charts/engine/three-d/shaders.cjs.map +1 -0
  371. package/dist/charts/engine/three-d/shaders.d.cts +26 -0
  372. package/dist/charts/engine/three-d/shaders.d.ts +26 -0
  373. package/dist/charts/engine/three-d/shaders.js +191 -0
  374. package/dist/charts/engine/three-d/shaders.js.map +1 -0
  375. package/dist/charts/engine/three-d/sort.cjs +2 -0
  376. package/dist/charts/engine/three-d/sort.cjs.map +1 -0
  377. package/dist/charts/engine/three-d/sort.d.cts +18 -0
  378. package/dist/charts/engine/three-d/sort.d.ts +18 -0
  379. package/dist/charts/engine/three-d/sort.js +71 -0
  380. package/dist/charts/engine/three-d/sort.js.map +1 -0
  381. package/dist/charts/engine/three-d/types.d.cts +588 -0
  382. package/dist/charts/engine/three-d/types.d.ts +588 -0
  383. package/dist/charts/engine/three-d/webgl.cjs +2 -0
  384. package/dist/charts/engine/three-d/webgl.cjs.map +1 -0
  385. package/dist/charts/engine/three-d/webgl.d.cts +10 -0
  386. package/dist/charts/engine/three-d/webgl.d.ts +10 -0
  387. package/dist/charts/engine/three-d/webgl.js +130 -0
  388. package/dist/charts/engine/three-d/webgl.js.map +1 -0
  389. package/dist/charts/engine/three-d/webgpu.cjs +2 -0
  390. package/dist/charts/engine/three-d/webgpu.cjs.map +1 -0
  391. package/dist/charts/engine/three-d/webgpu.d.cts +5 -0
  392. package/dist/charts/engine/three-d/webgpu.d.ts +5 -0
  393. package/dist/charts/engine/three-d/webgpu.js +249 -0
  394. package/dist/charts/engine/three-d/webgpu.js.map +1 -0
  395. package/dist/charts/engine/time.cjs +1 -1
  396. package/dist/charts/engine/time.cjs.map +1 -1
  397. package/dist/charts/engine/time.d.cts +13 -4
  398. package/dist/charts/engine/time.d.ts +13 -4
  399. package/dist/charts/engine/time.js +156 -91
  400. package/dist/charts/engine/time.js.map +1 -1
  401. package/dist/charts/engine/trading/chart.cjs +2 -0
  402. package/dist/charts/engine/trading/chart.cjs.map +1 -0
  403. package/dist/charts/engine/trading/chart.d.cts +3 -0
  404. package/dist/charts/engine/trading/chart.d.ts +3 -0
  405. package/dist/charts/engine/trading/chart.js +1507 -0
  406. package/dist/charts/engine/trading/chart.js.map +1 -0
  407. package/dist/charts/engine/trading/drawings.cjs +2 -0
  408. package/dist/charts/engine/trading/drawings.cjs.map +1 -0
  409. package/dist/charts/engine/trading/drawings.d.cts +57 -0
  410. package/dist/charts/engine/trading/drawings.d.ts +57 -0
  411. package/dist/charts/engine/trading/drawings.js +160 -0
  412. package/dist/charts/engine/trading/drawings.js.map +1 -0
  413. package/dist/charts/engine/trading/format.cjs +2 -0
  414. package/dist/charts/engine/trading/format.cjs.map +1 -0
  415. package/dist/charts/engine/trading/format.d.cts +60 -0
  416. package/dist/charts/engine/trading/format.d.ts +60 -0
  417. package/dist/charts/engine/trading/format.js +131 -0
  418. package/dist/charts/engine/trading/format.js.map +1 -0
  419. package/dist/charts/engine/trading/geometry.cjs +2 -0
  420. package/dist/charts/engine/trading/geometry.cjs.map +1 -0
  421. package/dist/charts/engine/trading/geometry.d.cts +55 -0
  422. package/dist/charts/engine/trading/geometry.d.ts +55 -0
  423. package/dist/charts/engine/trading/geometry.js +131 -0
  424. package/dist/charts/engine/trading/geometry.js.map +1 -0
  425. package/dist/charts/engine/trading/index.cjs +1 -0
  426. package/dist/charts/engine/trading/index.d.cts +3 -0
  427. package/dist/charts/engine/trading/index.d.ts +3 -0
  428. package/dist/charts/engine/trading/index.js +3 -0
  429. package/dist/charts/engine/trading/indicators.cjs +2 -0
  430. package/dist/charts/engine/trading/indicators.cjs.map +1 -0
  431. package/dist/charts/engine/trading/indicators.d.cts +105 -0
  432. package/dist/charts/engine/trading/indicators.d.ts +105 -0
  433. package/dist/charts/engine/trading/indicators.js +268 -0
  434. package/dist/charts/engine/trading/indicators.js.map +1 -0
  435. package/dist/charts/engine/trading/labels.cjs +2 -0
  436. package/dist/charts/engine/trading/labels.cjs.map +1 -0
  437. package/dist/charts/engine/trading/labels.d.cts +7 -0
  438. package/dist/charts/engine/trading/labels.d.ts +7 -0
  439. package/dist/charts/engine/trading/labels.js +91 -0
  440. package/dist/charts/engine/trading/labels.js.map +1 -0
  441. package/dist/charts/engine/trading/scale.cjs +2 -0
  442. package/dist/charts/engine/trading/scale.cjs.map +1 -0
  443. package/dist/charts/engine/trading/scale.d.cts +46 -0
  444. package/dist/charts/engine/trading/scale.d.ts +46 -0
  445. package/dist/charts/engine/trading/scale.js +100 -0
  446. package/dist/charts/engine/trading/scale.js.map +1 -0
  447. package/dist/charts/engine/trading/store.cjs +2 -0
  448. package/dist/charts/engine/trading/store.cjs.map +1 -0
  449. package/dist/charts/engine/trading/store.d.cts +62 -0
  450. package/dist/charts/engine/trading/store.d.ts +62 -0
  451. package/dist/charts/engine/trading/store.js +129 -0
  452. package/dist/charts/engine/trading/store.js.map +1 -0
  453. package/dist/charts/engine/trading/studies.cjs +2 -0
  454. package/dist/charts/engine/trading/studies.cjs.map +1 -0
  455. package/dist/charts/engine/trading/studies.d.cts +52 -0
  456. package/dist/charts/engine/trading/studies.d.ts +52 -0
  457. package/dist/charts/engine/trading/studies.js +254 -0
  458. package/dist/charts/engine/trading/studies.js.map +1 -0
  459. package/dist/charts/engine/trading/types.d.cts +656 -0
  460. package/dist/charts/engine/trading/types.d.ts +656 -0
  461. package/dist/charts/engine/types.d.cts +165 -14
  462. package/dist/charts/engine/types.d.ts +165 -14
  463. package/dist/charts/index.cjs +1 -1
  464. package/dist/charts/index.d.cts +7 -4
  465. package/dist/charts/index.d.ts +7 -4
  466. package/dist/charts/index.js +22 -11
  467. package/dist/charts/react/Chart.cjs +1 -1
  468. package/dist/charts/react/Chart.cjs.map +1 -1
  469. package/dist/charts/react/Chart.d.cts +4 -4
  470. package/dist/charts/react/Chart.d.ts +4 -4
  471. package/dist/charts/react/Chart.js +5 -1
  472. package/dist/charts/react/Chart.js.map +1 -1
  473. package/dist/charts/react/charts.cjs +1 -1
  474. package/dist/charts/react/charts.cjs.map +1 -1
  475. package/dist/charts/react/charts.d.cts +39 -1
  476. package/dist/charts/react/charts.d.ts +39 -1
  477. package/dist/charts/react/charts.js +303 -131
  478. package/dist/charts/react/charts.js.map +1 -1
  479. package/dist/charts/react/orderbook.cjs +2 -0
  480. package/dist/charts/react/orderbook.cjs.map +1 -0
  481. package/dist/charts/react/orderbook.d.cts +142 -0
  482. package/dist/charts/react/orderbook.d.ts +142 -0
  483. package/dist/charts/react/orderbook.js +182 -0
  484. package/dist/charts/react/orderbook.js.map +1 -0
  485. package/dist/charts/react/shapes.cjs +1 -1
  486. package/dist/charts/react/shapes.cjs.map +1 -1
  487. package/dist/charts/react/shapes.d.cts +291 -9
  488. package/dist/charts/react/shapes.d.ts +291 -9
  489. package/dist/charts/react/shapes.js +280 -93
  490. package/dist/charts/react/shapes.js.map +1 -1
  491. package/dist/charts/react/three-d.cjs +2 -0
  492. package/dist/charts/react/three-d.cjs.map +1 -0
  493. package/dist/charts/react/three-d.d.cts +151 -0
  494. package/dist/charts/react/three-d.d.ts +151 -0
  495. package/dist/charts/react/three-d.js +154 -0
  496. package/dist/charts/react/three-d.js.map +1 -0
  497. package/dist/charts/react/trading.cjs +2 -0
  498. package/dist/charts/react/trading.cjs.map +1 -0
  499. package/dist/charts/react/trading.d.cts +93 -0
  500. package/dist/charts/react/trading.d.ts +93 -0
  501. package/dist/charts/react/trading.js +95 -0
  502. package/dist/charts/react/trading.js.map +1 -0
  503. package/dist/charts/react/types.d.cts +132 -8
  504. package/dist/charts/react/types.d.ts +132 -8
  505. package/dist/core/contracts.cjs +1 -1
  506. package/dist/core/contracts.cjs.map +1 -1
  507. package/dist/core/contracts.js +1 -1
  508. package/dist/core/contracts.js.map +1 -1
  509. package/dist/native/charts/src/canvas.cjs +1 -1
  510. package/dist/native/charts/src/canvas.js +9 -3
  511. package/dist/native/charts/src/engine/axis.cjs +1 -1
  512. package/dist/native/charts/src/engine/axis.cjs.map +1 -1
  513. package/dist/native/charts/src/engine/axis.js +6 -6
  514. package/dist/native/charts/src/engine/axis.js.map +1 -1
  515. package/dist/native/charts/src/engine/controller.cjs +1 -1
  516. package/dist/native/charts/src/engine/controller.cjs.map +1 -1
  517. package/dist/native/charts/src/engine/controller.js +352 -292
  518. package/dist/native/charts/src/engine/controller.js.map +1 -1
  519. package/dist/native/charts/src/engine/data.cjs +1 -1
  520. package/dist/native/charts/src/engine/data.cjs.map +1 -1
  521. package/dist/native/charts/src/engine/data.js +63 -49
  522. package/dist/native/charts/src/engine/data.js.map +1 -1
  523. package/dist/native/charts/src/engine/format.cjs +1 -1
  524. package/dist/native/charts/src/engine/format.cjs.map +1 -1
  525. package/dist/native/charts/src/engine/format.js +46 -21
  526. package/dist/native/charts/src/engine/format.js.map +1 -1
  527. package/dist/native/charts/src/engine/labels.cjs +2 -0
  528. package/dist/native/charts/src/engine/labels.cjs.map +1 -0
  529. package/dist/native/charts/src/engine/labels.js +74 -0
  530. package/dist/native/charts/src/engine/labels.js.map +1 -0
  531. package/dist/native/charts/src/engine/layout.cjs +1 -1
  532. package/dist/native/charts/src/engine/layout.cjs.map +1 -1
  533. package/dist/native/charts/src/engine/layout.js +53 -12
  534. package/dist/native/charts/src/engine/layout.js.map +1 -1
  535. package/dist/native/charts/src/engine/locale.cjs +2 -0
  536. package/dist/native/charts/src/engine/locale.cjs.map +1 -0
  537. package/dist/native/charts/src/engine/locale.js +60 -0
  538. package/dist/native/charts/src/engine/locale.js.map +1 -0
  539. package/dist/native/charts/src/engine/model.cjs +1 -1
  540. package/dist/native/charts/src/engine/model.cjs.map +1 -1
  541. package/dist/native/charts/src/engine/model.js +223 -116
  542. package/dist/native/charts/src/engine/model.js.map +1 -1
  543. package/dist/native/charts/src/engine/overlay.cjs +1 -1
  544. package/dist/native/charts/src/engine/overlay.cjs.map +1 -1
  545. package/dist/native/charts/src/engine/overlay.js +46 -23
  546. package/dist/native/charts/src/engine/overlay.js.map +1 -1
  547. package/dist/native/charts/src/engine/presets.cjs +2 -2
  548. package/dist/native/charts/src/engine/presets.cjs.map +1 -1
  549. package/dist/native/charts/src/engine/presets.js +448 -33
  550. package/dist/native/charts/src/engine/presets.js.map +1 -1
  551. package/dist/native/charts/src/engine/scale.cjs +1 -1
  552. package/dist/native/charts/src/engine/scale.cjs.map +1 -1
  553. package/dist/native/charts/src/engine/scale.js +1 -1
  554. package/dist/native/charts/src/engine/scale.js.map +1 -1
  555. package/dist/native/charts/src/engine/scene.cjs +1 -1
  556. package/dist/native/charts/src/engine/scene.cjs.map +1 -1
  557. package/dist/native/charts/src/engine/scene.js +296 -167
  558. package/dist/native/charts/src/engine/scene.js.map +1 -1
  559. package/dist/native/charts/src/engine/shapes/bullet.cjs +2 -0
  560. package/dist/native/charts/src/engine/shapes/bullet.cjs.map +1 -0
  561. package/dist/native/charts/src/engine/shapes/bullet.js +255 -0
  562. package/dist/native/charts/src/engine/shapes/bullet.js.map +1 -0
  563. package/dist/native/charts/src/engine/shapes/calendar.cjs +2 -0
  564. package/dist/native/charts/src/engine/shapes/calendar.cjs.map +1 -0
  565. package/dist/native/charts/src/engine/shapes/calendar.js +364 -0
  566. package/dist/native/charts/src/engine/shapes/calendar.js.map +1 -0
  567. package/dist/native/charts/src/engine/shapes/canvas.cjs +2 -0
  568. package/dist/native/charts/src/engine/shapes/canvas.cjs.map +1 -0
  569. package/dist/native/charts/src/engine/shapes/canvas.js +168 -0
  570. package/dist/native/charts/src/engine/shapes/canvas.js.map +1 -0
  571. package/dist/native/charts/src/engine/shapes/draw.cjs +2 -0
  572. package/dist/native/charts/src/engine/shapes/draw.cjs.map +1 -0
  573. package/dist/native/charts/src/engine/shapes/draw.js +165 -0
  574. package/dist/native/charts/src/engine/shapes/draw.js.map +1 -0
  575. package/dist/native/charts/src/engine/shapes/funnel.cjs +2 -0
  576. package/dist/native/charts/src/engine/shapes/funnel.cjs.map +1 -0
  577. package/dist/native/charts/src/engine/shapes/funnel.js +149 -0
  578. package/dist/native/charts/src/engine/shapes/funnel.js.map +1 -0
  579. package/dist/native/charts/src/engine/shapes/gauge.cjs +2 -0
  580. package/dist/native/charts/src/engine/shapes/gauge.cjs.map +1 -0
  581. package/dist/native/charts/src/engine/shapes/gauge.js +210 -0
  582. package/dist/native/charts/src/engine/shapes/gauge.js.map +1 -0
  583. package/dist/native/charts/src/engine/shapes/hit.cjs +2 -0
  584. package/dist/native/charts/src/engine/shapes/hit.cjs.map +1 -0
  585. package/dist/native/charts/src/engine/shapes/hit.js +106 -0
  586. package/dist/native/charts/src/engine/shapes/hit.js.map +1 -0
  587. package/dist/native/charts/src/engine/shapes/labels.cjs +2 -0
  588. package/dist/native/charts/src/engine/shapes/labels.cjs.map +1 -0
  589. package/dist/native/charts/src/engine/shapes/labels.js +146 -0
  590. package/dist/native/charts/src/engine/shapes/labels.js.map +1 -0
  591. package/dist/native/charts/src/engine/shapes/layout.cjs +3 -0
  592. package/dist/native/charts/src/engine/shapes/layout.cjs.map +1 -0
  593. package/dist/native/charts/src/engine/shapes/layout.js +331 -0
  594. package/dist/native/charts/src/engine/shapes/layout.js.map +1 -0
  595. package/dist/native/charts/src/engine/shapes/pie.cjs +2 -0
  596. package/dist/native/charts/src/engine/shapes/pie.cjs.map +1 -0
  597. package/dist/native/charts/src/engine/shapes/pie.js +302 -0
  598. package/dist/native/charts/src/engine/shapes/pie.js.map +1 -0
  599. package/dist/native/charts/src/engine/shapes/radar.cjs +2 -0
  600. package/dist/native/charts/src/engine/shapes/radar.cjs.map +1 -0
  601. package/dist/native/charts/src/engine/shapes/radar.js +198 -0
  602. package/dist/native/charts/src/engine/shapes/radar.js.map +1 -0
  603. package/dist/native/charts/src/engine/shapes/radialBar.cjs +2 -0
  604. package/dist/native/charts/src/engine/shapes/radialBar.cjs.map +1 -0
  605. package/dist/native/charts/src/engine/shapes/radialBar.js +155 -0
  606. package/dist/native/charts/src/engine/shapes/radialBar.js.map +1 -0
  607. package/dist/native/charts/src/engine/shapes/runtime.cjs +2 -0
  608. package/dist/native/charts/src/engine/shapes/runtime.cjs.map +1 -0
  609. package/dist/native/charts/src/engine/shapes/runtime.js +107 -0
  610. package/dist/native/charts/src/engine/shapes/runtime.js.map +1 -0
  611. package/dist/native/charts/src/engine/shapes/sankey.cjs +2 -0
  612. package/dist/native/charts/src/engine/shapes/sankey.cjs.map +1 -0
  613. package/dist/native/charts/src/engine/shapes/sankey.js +372 -0
  614. package/dist/native/charts/src/engine/shapes/sankey.js.map +1 -0
  615. package/dist/native/charts/src/engine/shapes/scene.cjs +2 -0
  616. package/dist/native/charts/src/engine/shapes/scene.cjs.map +1 -0
  617. package/dist/native/charts/src/engine/shapes/scene.js +125 -0
  618. package/dist/native/charts/src/engine/shapes/scene.js.map +1 -0
  619. package/dist/native/charts/src/engine/shapes/sunburst.cjs +2 -0
  620. package/dist/native/charts/src/engine/shapes/sunburst.cjs.map +1 -0
  621. package/dist/native/charts/src/engine/shapes/sunburst.js +261 -0
  622. package/dist/native/charts/src/engine/shapes/sunburst.js.map +1 -0
  623. package/dist/native/charts/src/engine/shapes/treemap.cjs +2 -0
  624. package/dist/native/charts/src/engine/shapes/treemap.cjs.map +1 -0
  625. package/dist/native/charts/src/engine/shapes/treemap.js +213 -0
  626. package/dist/native/charts/src/engine/shapes/treemap.js.map +1 -0
  627. package/dist/native/charts/src/engine/time.cjs +1 -1
  628. package/dist/native/charts/src/engine/time.cjs.map +1 -1
  629. package/dist/native/charts/src/engine/time.js +156 -91
  630. package/dist/native/charts/src/engine/time.js.map +1 -1
  631. package/dist/native/components/Chart/ChartBase.cjs +1 -1
  632. package/dist/native/components/Chart/ChartBase.cjs.map +1 -1
  633. package/dist/native/components/Chart/ChartBase.d.cts +1 -1
  634. package/dist/native/components/Chart/ChartBase.d.ts +1 -1
  635. package/dist/native/components/Chart/ChartBase.js +110 -107
  636. package/dist/native/components/Chart/ChartBase.js.map +1 -1
  637. package/dist/native/components/Chart/charts.cjs +1 -1
  638. package/dist/native/components/Chart/charts.cjs.map +1 -1
  639. package/dist/native/components/Chart/charts.d.cts +6 -1
  640. package/dist/native/components/Chart/charts.d.ts +6 -1
  641. package/dist/native/components/Chart/charts.js +53 -29
  642. package/dist/native/components/Chart/charts.js.map +1 -1
  643. package/dist/native/components/Chart/index.cjs +1 -1
  644. package/dist/native/components/Chart/index.d.cts +1 -1
  645. package/dist/native/components/Chart/index.d.ts +1 -1
  646. package/dist/native/components/Chart/index.js +2 -2
  647. package/dist/native/components/Chart/scene.cjs +1 -1
  648. package/dist/native/components/Chart/scene.cjs.map +1 -1
  649. package/dist/native/components/Chart/scene.js +234 -217
  650. package/dist/native/components/Chart/scene.js.map +1 -1
  651. package/dist/native/components/Chart/types.d.cts +26 -3
  652. package/dist/native/components/Chart/types.d.ts +26 -3
  653. package/dist/native/components/Charts/charts.cjs +2 -0
  654. package/dist/native/components/Charts/charts.cjs.map +1 -0
  655. package/dist/native/components/Charts/charts.d.cts +41 -0
  656. package/dist/native/components/Charts/charts.d.ts +41 -0
  657. package/dist/native/components/Charts/charts.js +338 -0
  658. package/dist/native/components/Charts/charts.js.map +1 -0
  659. package/dist/native/components/Charts/index.cjs +1 -0
  660. package/dist/native/components/Charts/index.d.cts +2 -0
  661. package/dist/native/components/Charts/index.d.ts +2 -0
  662. package/dist/native/components/Charts/index.js +2 -0
  663. package/dist/native/components/Charts/types.d.cts +144 -0
  664. package/dist/native/components/Charts/types.d.ts +144 -0
  665. package/dist/native/components/ShapeChart/ShapeChartBase.cjs +2 -0
  666. package/dist/native/components/ShapeChart/ShapeChartBase.cjs.map +1 -0
  667. package/dist/native/components/ShapeChart/ShapeChartBase.d.cts +24 -0
  668. package/dist/native/components/ShapeChart/ShapeChartBase.d.ts +24 -0
  669. package/dist/native/components/ShapeChart/ShapeChartBase.js +271 -0
  670. package/dist/native/components/ShapeChart/ShapeChartBase.js.map +1 -0
  671. package/dist/native/components/ShapeChart/charts.cjs +2 -0
  672. package/dist/native/components/ShapeChart/charts.cjs.map +1 -0
  673. package/dist/native/components/ShapeChart/charts.d.cts +38 -0
  674. package/dist/native/components/ShapeChart/charts.d.ts +38 -0
  675. package/dist/native/components/ShapeChart/charts.js +387 -0
  676. package/dist/native/components/ShapeChart/charts.js.map +1 -0
  677. package/dist/native/components/ShapeChart/draw.cjs +2 -0
  678. package/dist/native/components/ShapeChart/draw.cjs.map +1 -0
  679. package/dist/native/components/ShapeChart/draw.d.cts +4 -0
  680. package/dist/native/components/ShapeChart/draw.d.ts +4 -0
  681. package/dist/native/components/ShapeChart/draw.js +104 -0
  682. package/dist/native/components/ShapeChart/draw.js.map +1 -0
  683. package/dist/native/components/ShapeChart/geometry.cjs +2 -0
  684. package/dist/native/components/ShapeChart/geometry.cjs.map +1 -0
  685. package/dist/native/components/ShapeChart/geometry.d.cts +71 -0
  686. package/dist/native/components/ShapeChart/geometry.d.ts +71 -0
  687. package/dist/native/components/ShapeChart/geometry.js +602 -0
  688. package/dist/native/components/ShapeChart/geometry.js.map +1 -0
  689. package/dist/native/components/ShapeChart/index.cjs +1 -0
  690. package/dist/native/components/ShapeChart/index.d.cts +2 -0
  691. package/dist/native/components/ShapeChart/index.d.ts +2 -0
  692. package/dist/native/components/ShapeChart/index.js +2 -0
  693. package/dist/native/components/ShapeChart/recorder.cjs +2 -0
  694. package/dist/native/components/ShapeChart/recorder.cjs.map +1 -0
  695. package/dist/native/components/ShapeChart/recorder.d.cts +106 -0
  696. package/dist/native/components/ShapeChart/recorder.d.ts +106 -0
  697. package/dist/native/components/ShapeChart/recorder.js +574 -0
  698. package/dist/native/components/ShapeChart/recorder.js.map +1 -0
  699. package/dist/native/components/ShapeChart/types.d.cts +509 -0
  700. package/dist/native/components/ShapeChart/types.d.ts +509 -0
  701. package/dist/native/index.cjs +1 -1
  702. package/dist/native/index.d.cts +2 -0
  703. package/dist/native/index.d.ts +2 -0
  704. package/dist/native/index.js +14 -10
  705. package/dist/native/manifest.d.cts +6 -4
  706. package/dist/native/manifest.d.ts +6 -4
  707. package/dist/native/source/components/Chart/ChartBase.tsx +8 -1
  708. package/dist/native/source/components/Chart/charts.tsx +42 -6
  709. package/dist/native/source/components/Chart/index.ts +1 -0
  710. package/dist/native/source/components/Chart/scene.tsx +154 -84
  711. package/dist/native/source/components/Chart/types.ts +31 -1
  712. package/dist/native/source/components/Charts/charts.tsx +493 -0
  713. package/dist/native/source/components/Charts/index.ts +14 -0
  714. package/dist/native/source/components/Charts/types.ts +207 -0
  715. package/dist/native/source/components/ShapeChart/ShapeChartBase.tsx +484 -0
  716. package/dist/native/source/components/ShapeChart/charts.tsx +605 -0
  717. package/dist/native/source/components/ShapeChart/draw.tsx +170 -0
  718. package/dist/native/source/components/ShapeChart/geometry.ts +1185 -0
  719. package/dist/native/source/components/ShapeChart/index.ts +15 -0
  720. package/dist/native/source/components/ShapeChart/recorder.ts +830 -0
  721. package/dist/native/source/components/ShapeChart/types.ts +564 -0
  722. package/dist/native/source/index.ts +2 -0
  723. package/dist/native/source/manifest.ts +30 -4
  724. package/dist/taro/charts.d.ts +209 -4
  725. package/dist/taro/index.d.ts +1 -0
  726. package/dist/taro/index.js +7517 -1856
  727. package/dist/taro/manifest.d.ts +1 -0
  728. package/dist/taro/shape-charts.d.ts +537 -0
  729. package/dist/uni/AreaChart.vue +68 -0
  730. package/dist/uni/AreaChart.vue.d.ts +120 -0
  731. package/dist/uni/Badge.vue.d.ts +1 -1
  732. package/dist/uni/BoxPlotChart.vue +66 -0
  733. package/dist/uni/BoxPlotChart.vue.d.ts +102 -0
  734. package/dist/uni/BubbleChart.vue +68 -0
  735. package/dist/uni/BubbleChart.vue.d.ts +106 -0
  736. package/dist/uni/BulletChart.vue +86 -0
  737. package/dist/uni/BulletChart.vue.d.ts +110 -0
  738. package/dist/uni/CalendarHeatmap.vue +92 -0
  739. package/dist/uni/CalendarHeatmap.vue.d.ts +129 -0
  740. package/dist/uni/CandlestickChart.vue +66 -0
  741. package/dist/uni/CandlestickChart.vue.d.ts +100 -0
  742. package/dist/uni/DonutChart.vue +72 -0
  743. package/dist/uni/DonutChart.vue.d.ts +114 -0
  744. package/dist/uni/FunnelChart.vue +67 -0
  745. package/dist/uni/FunnelChart.vue.d.ts +104 -0
  746. package/dist/uni/GanttChart.vue +67 -0
  747. package/dist/uni/GanttChart.vue.d.ts +123 -0
  748. package/dist/uni/GaugeChart.vue +77 -0
  749. package/dist/uni/GaugeChart.vue.d.ts +123 -0
  750. package/dist/uni/HeatmapChart.vue +66 -0
  751. package/dist/uni/HeatmapChart.vue.d.ts +114 -0
  752. package/dist/uni/HistogramChart.vue +66 -0
  753. package/dist/uni/HistogramChart.vue.d.ts +121 -0
  754. package/dist/uni/HorizontalBarChart.vue +68 -0
  755. package/dist/uni/HorizontalBarChart.vue.d.ts +127 -0
  756. package/dist/uni/Input.vue.d.ts +1 -1
  757. package/dist/uni/MixedChart.vue +68 -0
  758. package/dist/uni/MixedChart.vue.d.ts +106 -0
  759. package/dist/uni/NumberInput.vue.d.ts +1 -1
  760. package/dist/uni/PieChart.vue +72 -0
  761. package/dist/uni/PieChart.vue.d.ts +114 -0
  762. package/dist/uni/RadarChart.vue +67 -0
  763. package/dist/uni/RadarChart.vue.d.ts +110 -0
  764. package/dist/uni/RadialBarChart.vue +90 -0
  765. package/dist/uni/RadialBarChart.vue.d.ts +132 -0
  766. package/dist/uni/RangeAreaChart.vue +68 -0
  767. package/dist/uni/RangeAreaChart.vue.d.ts +102 -0
  768. package/dist/uni/ResponsiveGrid.vue.d.ts +1 -1
  769. package/dist/uni/SankeyChart.vue +88 -0
  770. package/dist/uni/SankeyChart.vue.d.ts +121 -0
  771. package/dist/uni/ShapeChart.vue +73 -0
  772. package/dist/uni/ShapeChart.vue.d.ts +54 -0
  773. package/dist/uni/Sparkline.vue +58 -0
  774. package/dist/uni/Sparkline.vue.d.ts +77 -0
  775. package/dist/uni/SunburstChart.vue +90 -0
  776. package/dist/uni/SunburstChart.vue.d.ts +114 -0
  777. package/dist/uni/Textarea.vue.d.ts +1 -1
  778. package/dist/uni/TimePicker.vue.d.ts +1 -1
  779. package/dist/uni/TreemapChart.vue +65 -0
  780. package/dist/uni/TreemapChart.vue.d.ts +100 -0
  781. package/dist/uni/WaterfallChart.vue +66 -0
  782. package/dist/uni/WaterfallChart.vue.d.ts +125 -0
  783. package/dist/uni/chart-types.d.ts +216 -2
  784. package/dist/uni/chart-types.js +174 -0
  785. package/dist/uni/charts-canvas.js +8 -3
  786. package/dist/uni/index.d.ts +26 -1
  787. package/dist/uni/index.js +26 -1
  788. package/dist/uni/manifest.d.ts +272 -0
  789. package/dist/uni/manifest.js +387 -0
  790. package/dist/uni/named-chart-options.d.ts +88 -0
  791. package/dist/uni/named-chart-options.js +156 -0
  792. package/dist/uni/shape-chart-canvas.d.ts +51 -0
  793. package/dist/uni/shape-chart-canvas.js +342 -0
  794. package/dist/uni/shape-chart-types.d.ts +381 -0
  795. package/dist/uni/shape-chart-types.js +261 -0
  796. package/dist/vue/components/Chart/AreaChart.vue.d.ts +124 -0
  797. package/dist/vue/components/Chart/AreaChart.vue.js +7 -0
  798. package/dist/vue/components/Chart/AreaChart.vue.js.map +1 -0
  799. package/dist/vue/components/Chart/AreaChart.vue_vue_type_script_setup_true_lang.js +49 -0
  800. package/dist/vue/components/Chart/AreaChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  801. package/dist/vue/components/Chart/Bar3DChart.vue.d.ts +132 -0
  802. package/dist/vue/components/Chart/Bar3DChart.vue.js +7 -0
  803. package/dist/vue/components/Chart/Bar3DChart.vue.js.map +1 -0
  804. package/dist/vue/components/Chart/Bar3DChart.vue_vue_type_script_setup_true_lang.js +55 -0
  805. package/dist/vue/components/Chart/Bar3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  806. package/dist/vue/components/Chart/BarChart.vue.d.ts +123 -0
  807. package/dist/vue/components/Chart/BarChart.vue.js +7 -0
  808. package/dist/vue/components/Chart/BarChart.vue.js.map +1 -0
  809. package/dist/vue/components/Chart/BarChart.vue_vue_type_script_setup_true_lang.js +53 -0
  810. package/dist/vue/components/Chart/BarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  811. package/dist/vue/components/Chart/BoxPlotChart.vue.d.ts +112 -0
  812. package/dist/vue/components/Chart/BoxPlotChart.vue.js +7 -0
  813. package/dist/vue/components/Chart/BoxPlotChart.vue.js.map +1 -0
  814. package/dist/vue/components/Chart/BoxPlotChart.vue_vue_type_script_setup_true_lang.js +57 -0
  815. package/dist/vue/components/Chart/BoxPlotChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  816. package/dist/vue/components/Chart/BubbleChart.vue.d.ts +106 -0
  817. package/dist/vue/components/Chart/BubbleChart.vue.js +7 -0
  818. package/dist/vue/components/Chart/BubbleChart.vue.js.map +1 -0
  819. package/dist/vue/components/Chart/BubbleChart.vue_vue_type_script_setup_true_lang.js +52 -0
  820. package/dist/vue/components/Chart/BubbleChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  821. package/dist/vue/components/Chart/BulletChart.vue.d.ts +117 -0
  822. package/dist/vue/components/Chart/BulletChart.vue.js +7 -0
  823. package/dist/vue/components/Chart/BulletChart.vue.js.map +1 -0
  824. package/dist/vue/components/Chart/BulletChart.vue_vue_type_script_setup_true_lang.js +64 -0
  825. package/dist/vue/components/Chart/BulletChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  826. package/dist/vue/components/Chart/CalendarHeatmap.vue.d.ts +144 -0
  827. package/dist/vue/components/Chart/CalendarHeatmap.vue.js +7 -0
  828. package/dist/vue/components/Chart/CalendarHeatmap.vue.js.map +1 -0
  829. package/dist/vue/components/Chart/CalendarHeatmap.vue_vue_type_script_setup_true_lang.js +77 -0
  830. package/dist/vue/components/Chart/CalendarHeatmap.vue_vue_type_script_setup_true_lang.js.map +1 -0
  831. package/dist/vue/components/Chart/CandlestickChart.vue.d.ts +94 -0
  832. package/dist/vue/components/Chart/CandlestickChart.vue.js +7 -0
  833. package/dist/vue/components/Chart/CandlestickChart.vue.js.map +1 -0
  834. package/dist/vue/components/Chart/CandlestickChart.vue_vue_type_script_setup_true_lang.js +44 -0
  835. package/dist/vue/components/Chart/CandlestickChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  836. package/dist/vue/components/Chart/Chart.vue.d.ts +103 -0
  837. package/dist/vue/components/Chart/Chart.vue.js +7 -0
  838. package/dist/vue/components/Chart/Chart.vue.js.map +1 -0
  839. package/dist/vue/components/Chart/Chart.vue_vue_type_script_setup_true_lang.js +47 -0
  840. package/dist/vue/components/Chart/Chart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  841. package/dist/vue/components/Chart/DepthChart.vue.d.ts +139 -0
  842. package/dist/vue/components/Chart/DepthChart.vue.js +7 -0
  843. package/dist/vue/components/Chart/DepthChart.vue.js.map +1 -0
  844. package/dist/vue/components/Chart/DepthChart.vue_vue_type_script_setup_true_lang.js +42 -0
  845. package/dist/vue/components/Chart/DepthChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  846. package/dist/vue/components/Chart/DonutChart.vue.d.ts +104 -0
  847. package/dist/vue/components/Chart/DonutChart.vue.js +7 -0
  848. package/dist/vue/components/Chart/DonutChart.vue.js.map +1 -0
  849. package/dist/vue/components/Chart/DonutChart.vue_vue_type_script_setup_true_lang.js +53 -0
  850. package/dist/vue/components/Chart/DonutChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  851. package/dist/vue/components/Chart/FunnelChart.vue.d.ts +105 -0
  852. package/dist/vue/components/Chart/FunnelChart.vue.js +7 -0
  853. package/dist/vue/components/Chart/FunnelChart.vue.js.map +1 -0
  854. package/dist/vue/components/Chart/FunnelChart.vue_vue_type_script_setup_true_lang.js +58 -0
  855. package/dist/vue/components/Chart/FunnelChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  856. package/dist/vue/components/Chart/GanttChart.vue.d.ts +132 -0
  857. package/dist/vue/components/Chart/GanttChart.vue.js +7 -0
  858. package/dist/vue/components/Chart/GanttChart.vue.js.map +1 -0
  859. package/dist/vue/components/Chart/GanttChart.vue_vue_type_script_setup_true_lang.js +98 -0
  860. package/dist/vue/components/Chart/GanttChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  861. package/dist/vue/components/Chart/GaugeChart.vue.d.ts +132 -0
  862. package/dist/vue/components/Chart/GaugeChart.vue.js +7 -0
  863. package/dist/vue/components/Chart/GaugeChart.vue.js.map +1 -0
  864. package/dist/vue/components/Chart/GaugeChart.vue_vue_type_script_setup_true_lang.js +71 -0
  865. package/dist/vue/components/Chart/GaugeChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  866. package/dist/vue/components/Chart/HeatmapChart.vue.d.ts +125 -0
  867. package/dist/vue/components/Chart/HeatmapChart.vue.js +7 -0
  868. package/dist/vue/components/Chart/HeatmapChart.vue.js.map +1 -0
  869. package/dist/vue/components/Chart/HeatmapChart.vue_vue_type_script_setup_true_lang.js +65 -0
  870. package/dist/vue/components/Chart/HeatmapChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  871. package/dist/vue/components/Chart/HistogramChart.vue.d.ts +132 -0
  872. package/dist/vue/components/Chart/HistogramChart.vue.js +7 -0
  873. package/dist/vue/components/Chart/HistogramChart.vue.js.map +1 -0
  874. package/dist/vue/components/Chart/HistogramChart.vue_vue_type_script_setup_true_lang.js +66 -0
  875. package/dist/vue/components/Chart/HistogramChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  876. package/dist/vue/components/Chart/HorizontalBarChart.vue.d.ts +121 -0
  877. package/dist/vue/components/Chart/HorizontalBarChart.vue.js +7 -0
  878. package/dist/vue/components/Chart/HorizontalBarChart.vue.js.map +1 -0
  879. package/dist/vue/components/Chart/HorizontalBarChart.vue_vue_type_script_setup_true_lang.js +55 -0
  880. package/dist/vue/components/Chart/HorizontalBarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  881. package/dist/vue/components/Chart/Line3DChart.vue.d.ts +121 -0
  882. package/dist/vue/components/Chart/Line3DChart.vue.js +7 -0
  883. package/dist/vue/components/Chart/Line3DChart.vue.js.map +1 -0
  884. package/dist/vue/components/Chart/Line3DChart.vue_vue_type_script_setup_true_lang.js +47 -0
  885. package/dist/vue/components/Chart/Line3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  886. package/dist/vue/components/Chart/LineChart.vue.d.ts +125 -0
  887. package/dist/vue/components/Chart/LineChart.vue.js +7 -0
  888. package/dist/vue/components/Chart/LineChart.vue.js.map +1 -0
  889. package/dist/vue/components/Chart/LineChart.vue_vue_type_script_setup_true_lang.js +50 -0
  890. package/dist/vue/components/Chart/LineChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  891. package/dist/vue/components/Chart/MixedChart.vue.d.ts +103 -0
  892. package/dist/vue/components/Chart/MixedChart.vue.js +7 -0
  893. package/dist/vue/components/Chart/MixedChart.vue.js.map +1 -0
  894. package/dist/vue/components/Chart/MixedChart.vue_vue_type_script_setup_true_lang.js +47 -0
  895. package/dist/vue/components/Chart/MixedChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  896. package/dist/vue/components/Chart/OrderBook.vue.d.ts +125 -0
  897. package/dist/vue/components/Chart/OrderBook.vue.js +7 -0
  898. package/dist/vue/components/Chart/OrderBook.vue.js.map +1 -0
  899. package/dist/vue/components/Chart/OrderBook.vue_vue_type_script_setup_true_lang.js +38 -0
  900. package/dist/vue/components/Chart/OrderBook.vue_vue_type_script_setup_true_lang.js.map +1 -0
  901. package/dist/vue/components/Chart/OrderBookHeatmap.vue.d.ts +128 -0
  902. package/dist/vue/components/Chart/OrderBookHeatmap.vue.js +7 -0
  903. package/dist/vue/components/Chart/OrderBookHeatmap.vue.js.map +1 -0
  904. package/dist/vue/components/Chart/OrderBookHeatmap.vue_vue_type_script_setup_true_lang.js +46 -0
  905. package/dist/vue/components/Chart/OrderBookHeatmap.vue_vue_type_script_setup_true_lang.js.map +1 -0
  906. package/dist/vue/components/Chart/PieChart.vue.d.ts +104 -0
  907. package/dist/vue/components/Chart/PieChart.vue.js +7 -0
  908. package/dist/vue/components/Chart/PieChart.vue.js.map +1 -0
  909. package/dist/vue/components/Chart/PieChart.vue_vue_type_script_setup_true_lang.js +53 -0
  910. package/dist/vue/components/Chart/PieChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  911. package/dist/vue/components/Chart/QuadrantChart.vue.d.ts +186 -0
  912. package/dist/vue/components/Chart/QuadrantChart.vue.js +7 -0
  913. package/dist/vue/components/Chart/QuadrantChart.vue.js.map +1 -0
  914. package/dist/vue/components/Chart/QuadrantChart.vue_vue_type_script_setup_true_lang.js +107 -0
  915. package/dist/vue/components/Chart/QuadrantChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  916. package/dist/vue/components/Chart/RadarChart.vue.d.ts +111 -0
  917. package/dist/vue/components/Chart/RadarChart.vue.js +7 -0
  918. package/dist/vue/components/Chart/RadarChart.vue.js.map +1 -0
  919. package/dist/vue/components/Chart/RadarChart.vue_vue_type_script_setup_true_lang.js +61 -0
  920. package/dist/vue/components/Chart/RadarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  921. package/dist/vue/components/Chart/RadialBarChart.vue.d.ts +147 -0
  922. package/dist/vue/components/Chart/RadialBarChart.vue.js +7 -0
  923. package/dist/vue/components/Chart/RadialBarChart.vue.js.map +1 -0
  924. package/dist/vue/components/Chart/RadialBarChart.vue_vue_type_script_setup_true_lang.js +78 -0
  925. package/dist/vue/components/Chart/RadialBarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  926. package/dist/vue/components/Chart/RangeAreaChart.vue.d.ts +106 -0
  927. package/dist/vue/components/Chart/RangeAreaChart.vue.js +7 -0
  928. package/dist/vue/components/Chart/RangeAreaChart.vue.js.map +1 -0
  929. package/dist/vue/components/Chart/RangeAreaChart.vue_vue_type_script_setup_true_lang.js +51 -0
  930. package/dist/vue/components/Chart/RangeAreaChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  931. package/dist/vue/components/Chart/SankeyChart.vue.d.ts +132 -0
  932. package/dist/vue/components/Chart/SankeyChart.vue.js +7 -0
  933. package/dist/vue/components/Chart/SankeyChart.vue.js.map +1 -0
  934. package/dist/vue/components/Chart/SankeyChart.vue_vue_type_script_setup_true_lang.js +71 -0
  935. package/dist/vue/components/Chart/SankeyChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  936. package/dist/vue/components/Chart/Scatter3DChart.vue.d.ts +121 -0
  937. package/dist/vue/components/Chart/Scatter3DChart.vue.js +7 -0
  938. package/dist/vue/components/Chart/Scatter3DChart.vue.js.map +1 -0
  939. package/dist/vue/components/Chart/Scatter3DChart.vue_vue_type_script_setup_true_lang.js +47 -0
  940. package/dist/vue/components/Chart/Scatter3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  941. package/dist/vue/components/Chart/ScatterChart.vue.d.ts +94 -0
  942. package/dist/vue/components/Chart/ScatterChart.vue.js +7 -0
  943. package/dist/vue/components/Chart/ScatterChart.vue.js.map +1 -0
  944. package/dist/vue/components/Chart/ScatterChart.vue_vue_type_script_setup_true_lang.js +44 -0
  945. package/dist/vue/components/Chart/ScatterChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  946. package/dist/vue/components/Chart/ShapeChart.vue.d.ts +39 -0
  947. package/dist/vue/components/Chart/ShapeChart.vue.js +7 -0
  948. package/dist/vue/components/Chart/ShapeChart.vue.js.map +1 -0
  949. package/dist/vue/components/Chart/ShapeChart.vue_vue_type_script_setup_true_lang.js +43 -0
  950. package/dist/vue/components/Chart/ShapeChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  951. package/dist/vue/components/Chart/Sparkline.vue.d.ts +90 -0
  952. package/dist/vue/components/Chart/Sparkline.vue.js +7 -0
  953. package/dist/vue/components/Chart/Sparkline.vue.js.map +1 -0
  954. package/dist/vue/components/Chart/Sparkline.vue_vue_type_script_setup_true_lang.js +66 -0
  955. package/dist/vue/components/Chart/Sparkline.vue_vue_type_script_setup_true_lang.js.map +1 -0
  956. package/dist/vue/components/Chart/SunburstChart.vue.d.ts +123 -0
  957. package/dist/vue/components/Chart/SunburstChart.vue.js +7 -0
  958. package/dist/vue/components/Chart/SunburstChart.vue.js.map +1 -0
  959. package/dist/vue/components/Chart/SunburstChart.vue_vue_type_script_setup_true_lang.js +68 -0
  960. package/dist/vue/components/Chart/SunburstChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  961. package/dist/vue/components/Chart/Surface3DChart.vue.d.ts +143 -0
  962. package/dist/vue/components/Chart/Surface3DChart.vue.js +7 -0
  963. package/dist/vue/components/Chart/Surface3DChart.vue.js.map +1 -0
  964. package/dist/vue/components/Chart/Surface3DChart.vue_vue_type_script_setup_true_lang.js +60 -0
  965. package/dist/vue/components/Chart/Surface3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  966. package/dist/vue/components/Chart/TimeAndSales.vue.d.ts +114 -0
  967. package/dist/vue/components/Chart/TimeAndSales.vue.js +7 -0
  968. package/dist/vue/components/Chart/TimeAndSales.vue.js.map +1 -0
  969. package/dist/vue/components/Chart/TimeAndSales.vue_vue_type_script_setup_true_lang.js +46 -0
  970. package/dist/vue/components/Chart/TimeAndSales.vue_vue_type_script_setup_true_lang.js.map +1 -0
  971. package/dist/vue/components/Chart/TradingChart.vue.d.ts +160 -0
  972. package/dist/vue/components/Chart/TradingChart.vue.js +7 -0
  973. package/dist/vue/components/Chart/TradingChart.vue.js.map +1 -0
  974. package/dist/vue/components/Chart/TradingChart.vue_vue_type_script_setup_true_lang.js +70 -0
  975. package/dist/vue/components/Chart/TradingChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  976. package/dist/vue/components/Chart/TreemapChart.vue.d.ts +97 -0
  977. package/dist/vue/components/Chart/TreemapChart.vue.js +7 -0
  978. package/dist/vue/components/Chart/TreemapChart.vue.js.map +1 -0
  979. package/dist/vue/components/Chart/TreemapChart.vue_vue_type_script_setup_true_lang.js +54 -0
  980. package/dist/vue/components/Chart/TreemapChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  981. package/dist/vue/components/Chart/WaterfallChart.vue.d.ts +132 -0
  982. package/dist/vue/components/Chart/WaterfallChart.vue.js +7 -0
  983. package/dist/vue/components/Chart/WaterfallChart.vue.js.map +1 -0
  984. package/dist/vue/components/Chart/WaterfallChart.vue_vue_type_script_setup_true_lang.js +68 -0
  985. package/dist/vue/components/Chart/WaterfallChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  986. package/dist/vue/components/Chart/cartesian.d.ts +47 -0
  987. package/dist/vue/components/Chart/cartesian.js +56 -0
  988. package/dist/vue/components/Chart/cartesian.js.map +1 -0
  989. package/dist/vue/components/Chart/engine.d.ts +35 -0
  990. package/dist/vue/components/Chart/engine.js +35 -0
  991. package/dist/vue/components/Chart/engine.js.map +1 -0
  992. package/dist/vue/components/Chart/index.d.ts +41 -0
  993. package/dist/vue/components/Chart/index.js +40 -0
  994. package/dist/vue/components/Chart/orderbook.d.ts +359 -0
  995. package/dist/vue/components/Chart/orderbook.js +126 -0
  996. package/dist/vue/components/Chart/orderbook.js.map +1 -0
  997. package/dist/vue/components/Chart/props.d.ts +188 -0
  998. package/dist/vue/components/Chart/props.js +92 -0
  999. package/dist/vue/components/Chart/props.js.map +1 -0
  1000. package/dist/vue/components/Chart/shape.d.ts +41 -0
  1001. package/dist/vue/components/Chart/shape.js +42 -0
  1002. package/dist/vue/components/Chart/shape.js.map +1 -0
  1003. package/dist/vue/components/Chart/three-d.d.ts +106 -0
  1004. package/dist/vue/components/Chart/three-d.js +88 -0
  1005. package/dist/vue/components/Chart/three-d.js.map +1 -0
  1006. package/dist/vue/components/Chart/trading.d.ts +105 -0
  1007. package/dist/vue/components/Chart/trading.js +55 -0
  1008. package/dist/vue/components/Chart/trading.js.map +1 -0
  1009. package/dist/vue/components/Chart/types.d.ts +137 -0
  1010. package/dist/vue/global.d.ts +38 -0
  1011. package/dist/vue/groups/charts.d.ts +1 -0
  1012. package/dist/vue/groups/charts.js +87 -0
  1013. package/dist/vue/groups/charts.js.map +1 -0
  1014. package/dist/vue/index.d.ts +1 -0
  1015. package/dist/vue/index.js +63 -23
  1016. package/dist/vue/plugin.js +12 -10
  1017. package/dist/vue/plugin.js.map +1 -1
  1018. package/dist/weapp/area-chart/index.js +1 -0
  1019. package/dist/weapp/area-chart/index.json +1 -0
  1020. package/dist/weapp/area-chart/index.wxml +1 -0
  1021. package/dist/weapp/area-chart/index.wxss +1 -0
  1022. package/dist/weapp/box-plot-chart/index.js +1 -0
  1023. package/dist/weapp/box-plot-chart/index.json +1 -0
  1024. package/dist/weapp/box-plot-chart/index.wxml +1 -0
  1025. package/dist/weapp/box-plot-chart/index.wxss +1 -0
  1026. package/dist/weapp/bubble-chart/index.js +1 -0
  1027. package/dist/weapp/bubble-chart/index.json +1 -0
  1028. package/dist/weapp/bubble-chart/index.wxml +1 -0
  1029. package/dist/weapp/bubble-chart/index.wxss +1 -0
  1030. package/dist/weapp/bullet-chart/index.js +1 -0
  1031. package/dist/weapp/bullet-chart/index.json +1 -0
  1032. package/dist/weapp/bullet-chart/index.wxml +1 -0
  1033. package/dist/weapp/bullet-chart/index.wxss +1 -0
  1034. package/dist/weapp/calendar-heatmap/index.js +1 -0
  1035. package/dist/weapp/calendar-heatmap/index.json +1 -0
  1036. package/dist/weapp/calendar-heatmap/index.wxml +1 -0
  1037. package/dist/weapp/calendar-heatmap/index.wxss +1 -0
  1038. package/dist/weapp/candlestick-chart/index.js +1 -0
  1039. package/dist/weapp/candlestick-chart/index.json +1 -0
  1040. package/dist/weapp/candlestick-chart/index.wxml +1 -0
  1041. package/dist/weapp/candlestick-chart/index.wxss +1 -0
  1042. package/dist/weapp/charts/canvas.js +11436 -0
  1043. package/dist/weapp/charts/core.d.ts +2 -0
  1044. package/dist/weapp/charts/core.js +41 -0
  1045. package/dist/weapp/controls.js +1433 -4478
  1046. package/dist/weapp/donut-chart/index.js +1 -0
  1047. package/dist/weapp/donut-chart/index.json +1 -0
  1048. package/dist/weapp/donut-chart/index.wxml +1 -0
  1049. package/dist/weapp/donut-chart/index.wxss +1 -0
  1050. package/dist/weapp/funnel-chart/index.js +1 -0
  1051. package/dist/weapp/funnel-chart/index.json +1 -0
  1052. package/dist/weapp/funnel-chart/index.wxml +1 -0
  1053. package/dist/weapp/funnel-chart/index.wxss +1 -0
  1054. package/dist/weapp/gantt-chart/index.js +1 -0
  1055. package/dist/weapp/gantt-chart/index.json +1 -0
  1056. package/dist/weapp/gantt-chart/index.wxml +1 -0
  1057. package/dist/weapp/gantt-chart/index.wxss +1 -0
  1058. package/dist/weapp/gauge-chart/index.js +1 -0
  1059. package/dist/weapp/gauge-chart/index.json +1 -0
  1060. package/dist/weapp/gauge-chart/index.wxml +1 -0
  1061. package/dist/weapp/gauge-chart/index.wxss +1 -0
  1062. package/dist/weapp/heatmap-chart/index.js +1 -0
  1063. package/dist/weapp/heatmap-chart/index.json +1 -0
  1064. package/dist/weapp/heatmap-chart/index.wxml +1 -0
  1065. package/dist/weapp/heatmap-chart/index.wxss +1 -0
  1066. package/dist/weapp/histogram-chart/index.js +1 -0
  1067. package/dist/weapp/histogram-chart/index.json +1 -0
  1068. package/dist/weapp/histogram-chart/index.wxml +1 -0
  1069. package/dist/weapp/histogram-chart/index.wxss +1 -0
  1070. package/dist/weapp/horizontal-bar-chart/index.js +1 -0
  1071. package/dist/weapp/horizontal-bar-chart/index.json +1 -0
  1072. package/dist/weapp/horizontal-bar-chart/index.wxml +1 -0
  1073. package/dist/weapp/horizontal-bar-chart/index.wxss +1 -0
  1074. package/dist/weapp/mixed-chart/index.js +1 -0
  1075. package/dist/weapp/mixed-chart/index.json +1 -0
  1076. package/dist/weapp/mixed-chart/index.wxml +1 -0
  1077. package/dist/weapp/mixed-chart/index.wxss +1 -0
  1078. package/dist/weapp/pie-chart/index.js +1 -0
  1079. package/dist/weapp/pie-chart/index.json +1 -0
  1080. package/dist/weapp/pie-chart/index.wxml +1 -0
  1081. package/dist/weapp/pie-chart/index.wxss +1 -0
  1082. package/dist/weapp/radar-chart/index.js +1 -0
  1083. package/dist/weapp/radar-chart/index.json +1 -0
  1084. package/dist/weapp/radar-chart/index.wxml +1 -0
  1085. package/dist/weapp/radar-chart/index.wxss +1 -0
  1086. package/dist/weapp/radial-bar-chart/index.js +1 -0
  1087. package/dist/weapp/radial-bar-chart/index.json +1 -0
  1088. package/dist/weapp/radial-bar-chart/index.wxml +1 -0
  1089. package/dist/weapp/radial-bar-chart/index.wxss +1 -0
  1090. package/dist/weapp/range-area-chart/index.js +1 -0
  1091. package/dist/weapp/range-area-chart/index.json +1 -0
  1092. package/dist/weapp/range-area-chart/index.wxml +1 -0
  1093. package/dist/weapp/range-area-chart/index.wxss +1 -0
  1094. package/dist/weapp/sankey-chart/index.js +1 -0
  1095. package/dist/weapp/sankey-chart/index.json +1 -0
  1096. package/dist/weapp/sankey-chart/index.wxml +1 -0
  1097. package/dist/weapp/sankey-chart/index.wxss +1 -0
  1098. package/dist/weapp/shape-chart/index.js +1 -0
  1099. package/dist/weapp/shape-chart/index.json +1 -0
  1100. package/dist/weapp/shape-chart/index.wxml +1 -0
  1101. package/dist/weapp/shape-chart/index.wxss +1 -0
  1102. package/dist/weapp/sparkline/index.js +1 -0
  1103. package/dist/weapp/sparkline/index.json +1 -0
  1104. package/dist/weapp/sparkline/index.wxml +1 -0
  1105. package/dist/weapp/sparkline/index.wxss +1 -0
  1106. package/dist/weapp/sunburst-chart/index.js +1 -0
  1107. package/dist/weapp/sunburst-chart/index.json +1 -0
  1108. package/dist/weapp/sunburst-chart/index.wxml +1 -0
  1109. package/dist/weapp/sunburst-chart/index.wxss +1 -0
  1110. package/dist/weapp/treemap-chart/index.js +1 -0
  1111. package/dist/weapp/treemap-chart/index.json +1 -0
  1112. package/dist/weapp/treemap-chart/index.wxml +1 -0
  1113. package/dist/weapp/treemap-chart/index.wxss +1 -0
  1114. package/dist/weapp/types.d.ts +466 -0
  1115. package/dist/weapp/waterfall-chart/index.js +1 -0
  1116. package/dist/weapp/waterfall-chart/index.json +1 -0
  1117. package/dist/weapp/waterfall-chart/index.wxml +1 -0
  1118. package/dist/weapp/waterfall-chart/index.wxss +1 -0
  1119. package/dist/web-components/components/chart/chart.d.ts +58 -0
  1120. package/dist/web-components/components/chart/chart.js +55 -0
  1121. package/dist/web-components/components/chart/chart.js.map +1 -0
  1122. package/dist/web-components/components/chart/charts.d.ts +252 -0
  1123. package/dist/web-components/components/chart/charts.js +201 -0
  1124. package/dist/web-components/components/chart/charts.js.map +1 -0
  1125. package/dist/web-components/components/chart/engine-element.d.ts +53 -0
  1126. package/dist/web-components/components/chart/engine-element.js +77 -0
  1127. package/dist/web-components/components/chart/engine-element.js.map +1 -0
  1128. package/dist/web-components/components/chart/extended.d.ts +224 -0
  1129. package/dist/web-components/components/chart/extended.js +183 -0
  1130. package/dist/web-components/components/chart/extended.js.map +1 -0
  1131. package/dist/web-components/components/chart/series.d.ts +7 -0
  1132. package/dist/web-components/components/chart/series.js +14 -0
  1133. package/dist/web-components/components/chart/series.js.map +1 -0
  1134. package/dist/web-components/components/chart/shape-chart.d.ts +199 -0
  1135. package/dist/web-components/components/chart/shape-chart.js +161 -0
  1136. package/dist/web-components/components/chart/shape-chart.js.map +1 -0
  1137. package/dist/web-components/components/chart/shapes-extended.d.ts +162 -0
  1138. package/dist/web-components/components/chart/shapes-extended.js +156 -0
  1139. package/dist/web-components/components/chart/shapes-extended.js.map +1 -0
  1140. package/dist/web-components/components/chart-3d/chart-3d.d.ts +111 -0
  1141. package/dist/web-components/components/chart-3d/chart-3d.js +97 -0
  1142. package/dist/web-components/components/chart-3d/chart-3d.js.map +1 -0
  1143. package/dist/web-components/components/order-book/order-book.d.ts +165 -0
  1144. package/dist/web-components/components/order-book/order-book.js +174 -0
  1145. package/dist/web-components/components/order-book/order-book.js.map +1 -0
  1146. package/dist/web-components/components/trading-chart/trading-chart.d.ts +96 -0
  1147. package/dist/web-components/components/trading-chart/trading-chart.js +96 -0
  1148. package/dist/web-components/components/trading-chart/trading-chart.js.map +1 -0
  1149. package/dist/web-components/elements/chart-3d.d.ts +2 -0
  1150. package/dist/web-components/elements/chart-3d.js +13 -0
  1151. package/dist/web-components/elements/chart-3d.js.map +1 -0
  1152. package/dist/web-components/elements/chart.d.ts +7 -0
  1153. package/dist/web-components/elements/chart.js +43 -0
  1154. package/dist/web-components/elements/chart.js.map +1 -0
  1155. package/dist/web-components/elements/order-book.d.ts +2 -0
  1156. package/dist/web-components/elements/order-book.js +13 -0
  1157. package/dist/web-components/elements/order-book.js.map +1 -0
  1158. package/dist/web-components/elements/trading-chart.d.ts +2 -0
  1159. package/dist/web-components/elements/trading-chart.js +8 -0
  1160. package/dist/web-components/elements/trading-chart.js.map +1 -0
  1161. package/dist/web-components/html-custom-data.json +1192 -29
  1162. package/dist/web-components/types/react.d.ts +435 -0
  1163. package/dist/web-components/types/solid.d.ts +321 -0
  1164. package/dist/web-components/types/svelte.d.ts +321 -0
  1165. package/dist/web-components/types/vue.d.ts +359 -0
  1166. package/package.json +113 -1
@@ -0,0 +1,104 @@
1
+ import { drawOrder as e } from "./render-types.js";
2
+ //#region src/engine/three-d/canvas2d.ts
3
+ var t = 4e4, n = 0, r = 1, i = 2, a = (e, t, n, r, i, a, o) => {
4
+ let s = new Float32Array(i), c = new Float32Array(i), l = new Float32Array(i), u = new Float32Array(i);
5
+ for (let d = 0; d < i; d++) {
6
+ let i = d * n + r, f = t[i], p = t[i + 1], m = t[i + 2], h = e[3] * f + e[7] * p + e[11] * m + e[15], g = 1 / (h > 1e-9 ? h : 1e-9);
7
+ s[d] = ((e[0] * f + e[4] * p + e[8] * m + e[12]) * g + 1) * .5 * a, c[d] = (1 - (e[1] * f + e[5] * p + e[9] * m + e[13]) * g) * .5 * o, l[d] = (e[2] * f + e[6] * p + e[10] * m + e[14]) * g, u[d] = h;
8
+ }
9
+ return {
10
+ x: s,
11
+ y: c,
12
+ z: l,
13
+ w: u
14
+ };
15
+ }, o = (e) => e < 0 ? 0 : e > 255 ? 255 : Math.round(e), s = (s) => {
16
+ let l = s.getContext("2d");
17
+ if (!l) return null;
18
+ let u = /* @__PURE__ */ new Map(), d = (e, t, n) => {
19
+ let r = o(e) << 16 | o(t) << 8 | o(n), i = u.get(r);
20
+ return i === void 0 && (i = `rgb(${r >> 16},${r >> 8 & 255},${r & 255})`, u.size > 4096 && u.clear(), u.set(r, i)), i;
21
+ }, f = (o, u) => {
22
+ let { width: f, height: p } = s, m = u.dpr;
23
+ l.setTransform(1, 0, 0, 1, 0, 0), l.clearRect(0, 0, f, p);
24
+ let h = e(o), g = u.viewProj, [_, v, y, b] = u.lighting, x = u.light, S = u.fog[0] * 255, C = u.fog[1] * 255, w = u.fog[2] * 255, T = 0;
25
+ for (let e of h) e.kind === "points" && (T += e.count);
26
+ let E = Math.max(1, Math.ceil(T / t)), D = [], O = [], k = [], A = 0;
27
+ for (let e of h) A += e.kind === "mesh" ? e.indices.length / 3 : e.kind === "points" ? Math.ceil(e.count / E) : e.count;
28
+ let j = new Float32Array(A), M = new Uint8Array(A), N = new Uint16Array(A), P = new Uint32Array(A), F = 0;
29
+ h.forEach((e, t) => {
30
+ let o = e.kind === "mesh" ? e.vertices : e.data;
31
+ if (O.push(new Float32Array(o)), k.push(new Uint8Array(o)), e.kind === "mesh") {
32
+ let r = O[t], i = a(g, r, 7, 0, e.vertexCount, f, p);
33
+ D.push(i);
34
+ let o = e.indices;
35
+ for (let e = 0; e + 2 < o.length; e += 3) {
36
+ let r = o[e], a = o[e + 1], s = o[e + 2];
37
+ i.w[r] <= 0 || i.w[a] <= 0 || i.w[s] <= 0 || (j[F] = (i.z[r] + i.z[a] + i.z[s]) / 3, M[F] = n, N[F] = t, P[F] = e, F++);
38
+ }
39
+ } else if (e.kind === "points") {
40
+ let n = O[t], i = a(g, n, 5, 0, e.count, f, p);
41
+ D.push(i);
42
+ for (let n = 0; n < e.count; n += E) i.w[n] <= 0 || (j[F] = i.z[n], M[F] = r, N[F] = t, P[F] = n, F++);
43
+ } else {
44
+ let n = O[t], r = a(g, n, 7, 0, e.count, f, p), o = a(g, n, 7, 3, e.count, f, p);
45
+ D.push({
46
+ x: c(r.x, o.x),
47
+ y: c(r.y, o.y),
48
+ z: c(r.z, o.z),
49
+ w: c(r.w, o.w)
50
+ });
51
+ let s = e.bias * 5;
52
+ for (let n = 0; n < e.count; n++) r.w[n] <= 0 || o.w[n] <= 0 || (j[F] = (r.z[n] + o.z[n]) / 2 - s, M[F] = i, N[F] = t, P[F] = n, F++);
53
+ }
54
+ });
55
+ let I = new Uint32Array(F);
56
+ for (let e = 0; e < F; e++) I[e] = e;
57
+ I.sort((e, t) => j[t] - j[e]), l.lineJoin = "round", l.lineCap = "round";
58
+ let L = -1, R = (e) => {
59
+ e !== L && (l.globalAlpha = e, L = e);
60
+ }, z = u.distance - u.radius;
61
+ for (let e = 0; e < F; e++) {
62
+ let t = I[e], a = h[N[t]], o = D[N[t]], s = O[N[t]], c = k[N[t]];
63
+ if (!a || !o || !s || !c) continue;
64
+ let f = P[t];
65
+ if (a.kind === "mesh" && M[t] === n) {
66
+ let e = a.indices[f], t = a.indices[f + 1], n = a.indices[f + 2], r = s[e * 7], i = s[e * 7 + 1], p = s[e * 7 + 2], m = s[t * 7] - r, h = s[t * 7 + 1] - i, g = s[t * 7 + 2] - p, S = s[n * 7] - r, C = s[n * 7 + 1] - i, w = s[n * 7 + 2] - p, T = h * w - g * C, E = g * S - m * w, D = m * C - h * S, O = Math.hypot(T, E, D) || 1;
67
+ T /= O, E /= O, D /= O;
68
+ let k = u.eye[0] - r, A = u.eye[1] - i, j = u.eye[2] - p, M = Math.hypot(k, A, j) || 1;
69
+ k /= M, A /= M, j /= M, T * k + E * A + D * j < 0 && (T = -T, E = -E, D = -D);
70
+ let N = Math.max(0, T * x[0] + E * x[1] + D * x[2]), P = x[0] + k, F = x[1] + A, I = x[2] + j, L = Math.hypot(P, F, I) || 1;
71
+ P /= L, F /= L, I /= L;
72
+ let z = Math.max(0, T * P + E * F + D * I) ** +b * y * 255, B = _ + v * N, V = e * 28 + 24, H = t * 28 + 24, U = n * 28 + 24, W = (c[V] + c[H] + c[U]) / 3, G = (c[V + 1] + c[H + 1] + c[U + 1]) / 3, K = (c[V + 2] + c[H + 2] + c[U + 2]) / 3, q = (c[V + 3] + c[H + 3] + c[U + 3]) / 765, J = d(W * B + z, G * B + z, K * B + z);
73
+ R(a.opacity * q), l.beginPath(), l.moveTo(o.x[e], o.y[e]), l.lineTo(o.x[t], o.y[t]), l.lineTo(o.x[n], o.y[n]), l.closePath(), l.fillStyle = J, l.fill(), a.opacity >= 1 && (l.strokeStyle = J, l.lineWidth = .75, l.stroke());
74
+ } else if (a.kind === "points" && M[t] === r) {
75
+ let e = a.perspective && !u.orthographic ? Math.max(.5, Math.min(2, u.distance / Math.max(o.w[f], 1e-6))) : 1, t = Math.max(.5, s[f * 5 + 3] * m * e / 2), n = f * 20 + 16, r = s[f * 5] - u.eye[0], i = s[f * 5 + 1] - u.eye[1], p = s[f * 5 + 2] - u.eye[2], h = Math.max(0, Math.min(1, (Math.hypot(r, i, p) - z) / (2 * u.radius))) * .45, g = c[n] + (S - c[n]) * h, _ = c[n + 1] + (C - c[n + 1]) * h, v = c[n + 2] + (w - c[n + 2]) * h;
76
+ R(a.opacity * (c[n + 3] / 255)), l.fillStyle = d(g, _, v), t < 1.5 ? l.fillRect(o.x[f] - t, o.y[f] - t, t * 2, t * 2) : (l.beginPath(), l.arc(o.x[f], o.y[f], t, 0, Math.PI * 2), l.fill());
77
+ } else if (a.kind === "lines" && M[t] === i) {
78
+ let e = f * 28 + 24, t = o.x.length / 2;
79
+ R(a.opacity * (c[e + 3] / 255)), l.strokeStyle = d(c[e], c[e + 1], c[e + 2]), l.lineWidth = Math.max(.5, a.width * m), l.beginPath(), l.moveTo(o.x[f], o.y[f]), l.lineTo(o.x[t + f], o.y[t + f]), l.stroke();
80
+ }
81
+ }
82
+ l.globalAlpha = 1;
83
+ };
84
+ return {
85
+ kind: "canvas2d",
86
+ canvas: s,
87
+ resize(e, t) {
88
+ s.width = Math.max(1, e), s.height = Math.max(1, t);
89
+ },
90
+ render(e, t) {
91
+ f(e, t);
92
+ },
93
+ destroy() {
94
+ u.clear(), l.setTransform(1, 0, 0, 1, 0, 0), l.clearRect(0, 0, s.width, s.height);
95
+ }
96
+ };
97
+ }, c = (e, t) => {
98
+ let n = new Float32Array(e.length + t.length);
99
+ return n.set(e, 0), n.set(t, e.length), n;
100
+ };
101
+ //#endregion
102
+ export { t as CPU_POINT_BUDGET, s as createCanvas2d3D };
103
+
104
+ //# sourceMappingURL=canvas2d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canvas2d.js","names":["CPU_POINT_BUDGET","TRIANGLE","POINT","SEGMENT","projectAll","x","count","y","z","w","i","o","stride","offset","px","data","py","pz","cw","m","iw","width","height","clamp255","v","createCanvas2d3D","ctx","canvas","styles","style","key","r","g","b","s","render","dpr","frame","ordered","drawOrder","items","ambient","diffuse","specular","shininess","L","fogR","fogG","fogB","totalPoints","item","pointStride","projected","floats","bytes","capacity","depth","kind","owner","element","n","raw","f32","k","p","idx","t","a","c","concat","bias","order","currentAlpha","alpha","value","near","u8","e","ax","ay","az","ux","uy","uz","vx","vy","vz","nx","ny","nz","len","ex","ey","ez","el","lambert","hx","hy","hz","hl","spec","light","ca","cb","cc","bl","ac","fill","scale","radius","wx","wy","wz","fog","half","out"],"sources":["../../../../../charts/src/engine/three-d/canvas2d.ts"],"sourcesContent":["// Canvas2D backend of the 3D charts: CPU projection and the painter's\n// algorithm (every triangle, dot and segment sorted back to front), flat\n// lighting per triangle. Point clouds are decimated to a fixed budget; the\n// chart also resamples the surfaces (`CPU_BUDGET`) for this backend.\n\nimport {\n drawOrder,\n type Frame3D,\n type Item3D,\n type Renderer3D,\n} from \"./render-types\";\n\n/** Largest number of dots drawn per frame (by stride over every point item) */\nexport const CPU_POINT_BUDGET = 40_000;\n\nconst TRIANGLE = 0;\nconst POINT = 1;\nconst SEGMENT = 2;\n\ninterface Projected {\n x: Float32Array;\n y: Float32Array;\n z: Float32Array;\n w: Float32Array;\n}\n\nconst projectAll = (\n m: Float32Array,\n data: Float32Array,\n stride: number,\n offset: number,\n count: number,\n width: number,\n height: number,\n): Projected => {\n const x = new Float32Array(count);\n const y = new Float32Array(count);\n const z = new Float32Array(count);\n const w = new Float32Array(count);\n for (let i = 0; i < count; i++) {\n const o = i * stride + offset;\n const px = data[o];\n const py = data[o + 1];\n const pz = data[o + 2];\n const cw = m[3] * px + m[7] * py + m[11] * pz + m[15];\n const iw = 1 / (cw > 1e-9 ? cw : 1e-9);\n x[i] = ((m[0] * px + m[4] * py + m[8] * pz + m[12]) * iw + 1) * 0.5 * width;\n y[i] =\n (1 - (m[1] * px + m[5] * py + m[9] * pz + m[13]) * iw) * 0.5 * height;\n z[i] = (m[2] * px + m[6] * py + m[10] * pz + m[14]) * iw;\n w[i] = cw;\n }\n return { x, y, z, w };\n};\n\nconst clamp255 = (v: number) => (v < 0 ? 0 : v > 255 ? 255 : Math.round(v));\n\nexport const createCanvas2d3D = (\n canvas: HTMLCanvasElement,\n): Renderer3D | null => {\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) return null;\n const styles = new Map<number, string>();\n const style = (r: number, g: number, b: number) => {\n const key = (clamp255(r) << 16) | (clamp255(g) << 8) | clamp255(b);\n let s = styles.get(key);\n if (s === undefined) {\n s = `rgb(${key >> 16},${(key >> 8) & 255},${key & 255})`;\n if (styles.size > 4096) styles.clear();\n styles.set(key, s);\n }\n return s;\n };\n\n const render = (items: readonly Item3D[], frame: Frame3D) => {\n const { width, height } = canvas;\n const dpr = frame.dpr;\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.clearRect(0, 0, width, height);\n const ordered = drawOrder(items);\n const m = frame.viewProj;\n const [ambient, diffuse, specular, shininess] = frame.lighting;\n const L = frame.light;\n const fogR = frame.fog[0] * 255;\n const fogG = frame.fog[1] * 255;\n const fogB = frame.fog[2] * 255;\n\n let totalPoints = 0;\n for (const item of ordered)\n if (item.kind === \"points\") totalPoints += item.count;\n const pointStride = Math.max(1, Math.ceil(totalPoints / CPU_POINT_BUDGET));\n\n // ---- collect the primitives\n const projected: (Projected | null)[] = [];\n // typed views of every item (floats and bytes of the same buffer)\n const floats: Float32Array[] = [];\n const bytes: Uint8Array[] = [];\n let capacity = 0;\n for (const item of ordered) {\n capacity +=\n item.kind === \"mesh\"\n ? item.indices.length / 3\n : item.kind === \"points\"\n ? Math.ceil(item.count / pointStride)\n : item.count;\n }\n const depth = new Float32Array(capacity);\n const kind = new Uint8Array(capacity);\n const owner = new Uint16Array(capacity);\n const element = new Uint32Array(capacity);\n let n = 0;\n ordered.forEach((item, k) => {\n const raw = item.kind === \"mesh\" ? item.vertices : item.data;\n floats.push(new Float32Array(raw));\n bytes.push(new Uint8Array(raw));\n if (item.kind === \"mesh\") {\n const f32 = floats[k]!;\n const p = projectAll(m, f32, 7, 0, item.vertexCount, width, height);\n projected.push(p);\n const idx = item.indices;\n for (let t = 0; t + 2 < idx.length; t += 3) {\n const a = idx[t];\n const b = idx[t + 1];\n const c = idx[t + 2];\n if (p.w[a] <= 0 || p.w[b] <= 0 || p.w[c] <= 0) continue;\n depth[n] = (p.z[a] + p.z[b] + p.z[c]) / 3;\n kind[n] = TRIANGLE;\n owner[n] = k;\n element[n] = t;\n n++;\n }\n } else if (item.kind === \"points\") {\n const f32 = floats[k]!;\n const p = projectAll(m, f32, 5, 0, item.count, width, height);\n projected.push(p);\n for (let i = 0; i < item.count; i += pointStride) {\n if (p.w[i] <= 0) continue;\n depth[n] = p.z[i];\n kind[n] = POINT;\n owner[n] = k;\n element[n] = i;\n n++;\n }\n } else {\n const f32 = floats[k]!;\n // both ends: projected as two interleaved point lists\n const a = projectAll(m, f32, 7, 0, item.count, width, height);\n const b = projectAll(m, f32, 7, 3, item.count, width, height);\n projected.push({\n x: concat(a.x, b.x),\n y: concat(a.y, b.y),\n z: concat(a.z, b.z),\n w: concat(a.w, b.w),\n });\n const bias = item.bias * 5;\n for (let i = 0; i < item.count; i++) {\n if (a.w[i] <= 0 || b.w[i] <= 0) continue;\n depth[n] = (a.z[i] + b.z[i]) / 2 - bias;\n kind[n] = SEGMENT;\n owner[n] = k;\n element[n] = i;\n n++;\n }\n }\n });\n const order = new Uint32Array(n);\n for (let i = 0; i < n; i++) order[i] = i;\n order.sort((a, b) => depth[b] - depth[a]);\n\n // ---- draw back to front\n ctx.lineJoin = \"round\";\n ctx.lineCap = \"round\";\n let currentAlpha = -1;\n const alpha = (value: number) => {\n if (value !== currentAlpha) {\n ctx.globalAlpha = value;\n currentAlpha = value;\n }\n };\n const near = frame.distance - frame.radius;\n for (let o = 0; o < n; o++) {\n const i = order[o];\n const item = ordered[owner[i]];\n const p = projected[owner[i]];\n const f32 = floats[owner[i]];\n const u8 = bytes[owner[i]];\n if (!item || !p || !f32 || !u8) continue;\n const e = element[i];\n if (item.kind === \"mesh\" && kind[i] === TRIANGLE) {\n const a = item.indices[e];\n const b = item.indices[e + 1];\n const c = item.indices[e + 2];\n // flat normal facing the camera\n const ax = f32[a * 7],\n ay = f32[a * 7 + 1],\n az = f32[a * 7 + 2];\n const ux = f32[b * 7] - ax,\n uy = f32[b * 7 + 1] - ay,\n uz = f32[b * 7 + 2] - az;\n const vx = f32[c * 7] - ax,\n vy = f32[c * 7 + 1] - ay,\n vz = f32[c * 7 + 2] - az;\n let nx = uy * vz - uz * vy;\n let ny = uz * vx - ux * vz;\n let nz = ux * vy - uy * vx;\n const len = Math.hypot(nx, ny, nz) || 1;\n nx /= len;\n ny /= len;\n nz /= len;\n let ex = frame.eye[0] - ax;\n let ey = frame.eye[1] - ay;\n let ez = frame.eye[2] - az;\n const el = Math.hypot(ex, ey, ez) || 1;\n ex /= el;\n ey /= el;\n ez /= el;\n if (nx * ex + ny * ey + nz * ez < 0) {\n nx = -nx;\n ny = -ny;\n nz = -nz;\n }\n const lambert = Math.max(0, nx * L[0] + ny * L[1] + nz * L[2]);\n let hx = L[0] + ex;\n let hy = L[1] + ey;\n let hz = L[2] + ez;\n const hl = Math.hypot(hx, hy, hz) || 1;\n hx /= hl;\n hy /= hl;\n hz /= hl;\n const spec =\n Math.pow(Math.max(0, nx * hx + ny * hy + nz * hz), shininess) *\n specular *\n 255;\n const light = ambient + diffuse * lambert;\n const ca = a * 28 + 24;\n const cb = b * 28 + 24;\n const cc = c * 28 + 24;\n const r = (u8[ca] + u8[cb] + u8[cc]) / 3;\n const g = (u8[ca + 1] + u8[cb + 1] + u8[cc + 1]) / 3;\n const bl = (u8[ca + 2] + u8[cb + 2] + u8[cc + 2]) / 3;\n const ac = (u8[ca + 3] + u8[cb + 3] + u8[cc + 3]) / 765;\n const fill = style(\n r * light + spec,\n g * light + spec,\n bl * light + spec,\n );\n alpha(item.opacity * ac);\n ctx.beginPath();\n ctx.moveTo(p.x[a], p.y[a]);\n ctx.lineTo(p.x[b], p.y[b]);\n ctx.lineTo(p.x[c], p.y[c]);\n ctx.closePath();\n ctx.fillStyle = fill;\n ctx.fill();\n if (item.opacity >= 1) {\n // hides the seams between neighbouring triangles\n ctx.strokeStyle = fill;\n ctx.lineWidth = 0.75;\n ctx.stroke();\n }\n } else if (item.kind === \"points\" && kind[i] === POINT) {\n const scale =\n item.perspective && !frame.orthographic\n ? Math.max(\n 0.5,\n Math.min(2, frame.distance / Math.max(p.w[e], 1e-6)),\n )\n : 1;\n const radius = Math.max(0.5, (f32[e * 5 + 3] * dpr * scale) / 2);\n const c = e * 20 + 16;\n const wx = f32[e * 5] - frame.eye[0];\n const wy = f32[e * 5 + 1] - frame.eye[1];\n const wz = f32[e * 5 + 2] - frame.eye[2];\n const fog =\n Math.max(\n 0,\n Math.min(1, (Math.hypot(wx, wy, wz) - near) / (2 * frame.radius)),\n ) * 0.45;\n const r = u8[c] + (fogR - u8[c]) * fog;\n const g = u8[c + 1] + (fogG - u8[c + 1]) * fog;\n const b = u8[c + 2] + (fogB - u8[c + 2]) * fog;\n alpha(item.opacity * (u8[c + 3] / 255));\n ctx.fillStyle = style(r, g, b);\n if (radius < 1.5) {\n ctx.fillRect(\n p.x[e] - radius,\n p.y[e] - radius,\n radius * 2,\n radius * 2,\n );\n } else {\n ctx.beginPath();\n ctx.arc(p.x[e], p.y[e], radius, 0, Math.PI * 2);\n ctx.fill();\n }\n } else if (item.kind === \"lines\" && kind[i] === SEGMENT) {\n const c = e * 28 + 24;\n const half = p.x.length / 2;\n alpha(item.opacity * (u8[c + 3] / 255));\n ctx.strokeStyle = style(u8[c], u8[c + 1], u8[c + 2]);\n ctx.lineWidth = Math.max(0.5, item.width * dpr);\n ctx.beginPath();\n ctx.moveTo(p.x[e], p.y[e]);\n ctx.lineTo(p.x[half + e], p.y[half + e]);\n ctx.stroke();\n }\n }\n ctx.globalAlpha = 1;\n };\n\n return {\n kind: \"canvas2d\",\n canvas,\n resize(width, height) {\n canvas.width = Math.max(1, width);\n canvas.height = Math.max(1, height);\n },\n render(items, frame) {\n render(items, frame);\n },\n destroy() {\n styles.clear();\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n },\n };\n};\n\nconst concat = (a: Float32Array, b: Float32Array) => {\n const out = new Float32Array(a.length + b.length);\n out.set(a, 0);\n out.set(b, a.length);\n return out;\n};\n"],"mappings":";;AAaA,IAAaA,IAAmB,KAE1BC,IAAW,GACXC,IAAQ,GACRC,IAAU,GASVC,KACJ,GACA,GACA,GACA,GACA,GACA,GACA,MACc;CACd,IAAMC,IAAI,IAAI,aAAaC,CAAK,GAC1BC,IAAI,IAAI,aAAaD,CAAK,GAC1BE,IAAI,IAAI,aAAaF,CAAK,GAC1BG,IAAI,IAAI,aAAaH,CAAK;CAChC,KAAK,IAAII,IAAI,GAAGA,IAAIJ,GAAO,KAAK;EAC9B,IAAMK,IAAID,IAAIE,IAASC,GACjBC,IAAKC,EAAKJ,IACVK,IAAKD,EAAKJ,IAAI,IACdM,IAAKF,EAAKJ,IAAI,IACdO,IAAKC,EAAE,KAAKL,IAAKK,EAAE,KAAKH,IAAKG,EAAE,MAAMF,IAAKE,EAAE,KAC5CC,IAAK,KAAKF,IAAK,OAAOA,IAAK;EAKjC,AAJA,EAAER,OAAOS,EAAE,KAAKL,IAAKK,EAAE,KAAKH,IAAKG,EAAE,KAAKF,IAAKE,EAAE,OAAOC,IAAK,KAAK,KAAMC,GACtE,EAAEX,MACC,KAAKS,EAAE,KAAKL,IAAKK,EAAE,KAAKH,IAAKG,EAAE,KAAKF,IAAKE,EAAE,OAAOC,KAAM,KAAME,GACjE,EAAEZ,MAAMS,EAAE,KAAKL,IAAKK,EAAE,KAAKH,IAAKG,EAAE,MAAMF,IAAKE,EAAE,OAAOC,GACtD,EAAEV,KAAKQ;CACT;CACA,OAAO;EAAE;EAAG;EAAG;EAAG;CAAE;AACtB,GAEMK,KAAY,MAAeC,IAAI,IAAI,IAAIA,IAAI,MAAM,MAAM,KAAK,MAAMA,CAAC,GAE5DC,KACX,MACsB;CACtB,IAAMC,IAAMC,EAAO,WAAW,IAAI;CAClC,IAAI,CAACD,GAAK,OAAO;CACjB,IAAME,oBAAS,IAAI,IAAoB,GACjCC,KAAS,GAAW,GAAW,MAAc;EACjD,IAAMC,IAAOP,EAASQ,CAAC,KAAK,KAAOR,EAASS,CAAC,KAAK,IAAKT,EAASU,CAAC,GAC7DC,IAAIN,EAAO,IAAIE,CAAG;EAMtB,OALII,MAAM,KAAA,MACR,IAAI,OAAOJ,KAAO,GAAG,GAAIA,KAAO,IAAK,IAAI,GAAGA,IAAM,IAAI,IAClDF,EAAO,OAAO,QAAMA,EAAO,MAAM,GACrCA,EAAO,IAAIE,GAAKI,CAAC,IAEZA;CACT,GAEMC,KAAU,GAA0B,MAAmB;EAC3D,IAAM,EAAE,UAAO,cAAWR,GACpBS,IAAMC,EAAM;EAElB,AADAX,EAAI,aAAa,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GACjCA,EAAI,UAAU,GAAG,GAAGL,GAAOC,CAAM;EACjC,IAAMgB,IAAUC,EAAUC,CAAK,GACzBrB,IAAIkB,EAAM,UACV,CAACI,GAASC,GAASC,GAAUC,KAAaP,EAAM,UAChDQ,IAAIR,EAAM,OACVS,IAAOT,EAAM,IAAI,KAAK,KACtBU,IAAOV,EAAM,IAAI,KAAK,KACtBW,IAAOX,EAAM,IAAI,KAAK,KAExBY,IAAc;EAClB,KAAK,IAAMC,KAAQZ,GACjB,AAAIY,EAAK,SAAS,aAAU,KAAeA,EAAK;EAClD,IAAMC,IAAc,KAAK,IAAI,GAAG,KAAK,KAAKF,IAAcjD,CAAgB,CAAC,GAGnEoD,IAAkC,CAAC,GAEnCC,IAAyB,CAAC,GAC1BC,IAAsB,CAAC,GACzBC,IAAW;EACf,KAAK,IAAML,KAAQZ,GACjB,KACEY,EAAK,SAAS,SACVA,EAAK,QAAQ,SAAS,IACtBA,EAAK,SAAS,WACZ,KAAK,KAAKA,EAAK,QAAQC,CAAW,IAClCD,EAAK;EAEf,IAAMM,IAAQ,IAAI,aAAaD,CAAQ,GACjCE,IAAO,IAAI,WAAWF,CAAQ,GAC9BG,IAAQ,IAAI,YAAYH,CAAQ,GAChCI,IAAU,IAAI,YAAYJ,CAAQ,GACpCK,IAAI;EACR,EAAQ,SAAS,GAAM,MAAM;GAC3B,IAAMC,IAAMX,EAAK,SAAS,SAASA,EAAK,WAAWA,EAAK;GAGxD,IAFAG,EAAO,KAAK,IAAI,aAAaQ,CAAG,CAAC,GACjCP,EAAM,KAAK,IAAI,WAAWO,CAAG,CAAC,GAC1BX,EAAK,SAAS,QAAQ;IACxB,IAAMY,IAAMT,EAAOU,IACbC,IAAI5D,EAAWe,GAAG2C,GAAK,GAAG,GAAGZ,EAAK,aAAa7B,GAAOC,CAAM;IAClE,EAAU,KAAK0C,CAAC;IAChB,IAAMC,IAAMf,EAAK;IACjB,KAAK,IAAIgB,IAAI,GAAGA,IAAI,IAAID,EAAI,QAAQ,KAAK,GAAG;KAC1C,IAAME,IAAIF,EAAIC,IACRjC,IAAIgC,EAAIC,IAAI,IACZE,IAAIH,EAAIC,IAAI;KAClB,AAAIF,EAAE,EAAEG,MAAM,KAAKH,EAAE,EAAE/B,MAAM,KAAK+B,EAAE,EAAEI,MAAM,MAC5C,EAAMR,MAAMI,EAAE,EAAEG,KAAKH,EAAE,EAAE/B,KAAK+B,EAAE,EAAEI,MAAM,GACxC,EAAKR,KAAK3D,GACV,EAAM2D,KAAKG,GACX,EAAQH,KAAKM,GACb;IACF;GACF,OAAO,IAAIhB,EAAK,SAAS,UAAU;IACjC,IAAMY,IAAMT,EAAOU,IACbC,IAAI5D,EAAWe,GAAG2C,GAAK,GAAG,GAAGZ,EAAK,OAAO7B,GAAOC,CAAM;IAC5D,EAAU,KAAK0C,CAAC;IAChB,KAAK,IAAItD,IAAI,GAAGA,IAAIwC,EAAK,OAAO,KAAKC,GACnC,AAAIa,EAAE,EAAEtD,MAAM,MACd,EAAMkD,KAAKI,EAAE,EAAEtD,IACf,EAAKkD,KAAK1D,GACV,EAAM0D,KAAKG,GACX,EAAQH,KAAKlD,GACb;GAEJ,OAAO;IACL,IAAMoD,IAAMT,EAAOU,IAEbI,IAAI/D,EAAWe,GAAG2C,GAAK,GAAG,GAAGZ,EAAK,OAAO7B,GAAOC,CAAM,GACtDW,IAAI7B,EAAWe,GAAG2C,GAAK,GAAG,GAAGZ,EAAK,OAAO7B,GAAOC,CAAM;IAC5D,EAAU,KAAK;KACb,GAAG+C,EAAOF,EAAE,GAAGlC,EAAE,CAAC;KAClB,GAAGoC,EAAOF,EAAE,GAAGlC,EAAE,CAAC;KAClB,GAAGoC,EAAOF,EAAE,GAAGlC,EAAE,CAAC;KAClB,GAAGoC,EAAOF,EAAE,GAAGlC,EAAE,CAAC;IACpB,CAAC;IACD,IAAMqC,IAAOpB,EAAK,OAAO;IACzB,KAAK,IAAIxC,IAAI,GAAGA,IAAIwC,EAAK,OAAO,KAC9B,AAAIiB,EAAE,EAAEzD,MAAM,KAAKuB,EAAE,EAAEvB,MAAM,MAC7B,EAAMkD,MAAMO,EAAE,EAAEzD,KAAKuB,EAAE,EAAEvB,MAAM,IAAI4D,GACnC,EAAKV,KAAKzD,GACV,EAAMyD,KAAKG,GACX,EAAQH,KAAKlD,GACb;GAEJ;EACF,CAAC;EACD,IAAM6D,IAAQ,IAAI,YAAYX,CAAC;EAC/B,KAAK,IAAIlD,IAAI,GAAGA,IAAIkD,GAAG,KAAK,EAAMlD,KAAKA;EAKvC,AAJA6D,EAAM,MAAM,GAAG,MAAMf,EAAMvB,KAAKuB,EAAMW,EAAE,GAGxC,EAAI,WAAW,SACf,EAAI,UAAU;EACd,IAAIK,IAAe,IACbC,KAAS,MAAkB;GAC/B,AAAIC,MAAUF,MACZ,EAAI,cAAcE,GAClB,IAAeA;EAEnB,GACMC,IAAOtC,EAAM,WAAWA,EAAM;EACpC,KAAK,IAAI1B,IAAI,GAAGA,IAAIiD,GAAG,KAAK;GAC1B,IAAMlD,IAAI6D,EAAM5D,IACVuC,IAAOZ,EAAQoB,EAAMhD,KACrBsD,IAAIZ,EAAUM,EAAMhD,KACpBoD,IAAMT,EAAOK,EAAMhD,KACnBkE,IAAKtB,EAAMI,EAAMhD;GACvB,IAAI,CAACwC,KAAQ,CAACc,KAAK,CAACF,KAAO,CAACc,GAAI;GAChC,IAAMC,IAAIlB,EAAQjD;GAClB,IAAIwC,EAAK,SAAS,UAAUO,EAAK/C,OAAOT,GAAU;IAChD,IAAMkE,IAAIjB,EAAK,QAAQ2B,IACjB5C,IAAIiB,EAAK,QAAQ2B,IAAI,IACrBT,IAAIlB,EAAK,QAAQ2B,IAAI,IAErBC,IAAKhB,EAAIK,IAAI,IACjBY,IAAKjB,EAAIK,IAAI,IAAI,IACjBa,IAAKlB,EAAIK,IAAI,IAAI,IACbc,IAAKnB,EAAI7B,IAAI,KAAK6C,GACtBI,IAAKpB,EAAI7B,IAAI,IAAI,KAAK8C,GACtBI,IAAKrB,EAAI7B,IAAI,IAAI,KAAK+C,GAClBI,IAAKtB,EAAIM,IAAI,KAAKU,GACtBO,IAAKvB,EAAIM,IAAI,IAAI,KAAKW,GACtBO,IAAKxB,EAAIM,IAAI,IAAI,KAAKY,GACpBO,IAAKL,IAAKI,IAAKH,IAAKE,GACpBG,IAAKL,IAAKC,IAAKH,IAAKK,GACpBG,IAAKR,IAAKI,IAAKH,IAAKE,GAClBM,IAAM,KAAK,MAAMH,GAAIC,GAAIC,CAAE,KAAK;IAGtC,AAFA,KAAMC,GACN,KAAMA,GACN,KAAMA;IACN,IAAIC,IAAKtD,EAAM,IAAI,KAAKyC,GACpBc,IAAKvD,EAAM,IAAI,KAAK0C,GACpBc,IAAKxD,EAAM,IAAI,KAAK2C,GAClBc,IAAK,KAAK,MAAMH,GAAIC,GAAIC,CAAE,KAAK;IAIrC,AAHA,KAAMC,GACN,KAAMA,GACN,KAAMA,GACFP,IAAKI,IAAKH,IAAKI,IAAKH,IAAKI,IAAK,MAChC,IAAK,CAACN,GACN,IAAK,CAACC,GACN,IAAK,CAACC;IAER,IAAMM,IAAU,KAAK,IAAI,GAAGR,IAAK1C,EAAE,KAAK2C,IAAK3C,EAAE,KAAK4C,IAAK5C,EAAE,EAAE,GACzDmD,IAAKnD,EAAE,KAAK8C,GACZM,IAAKpD,EAAE,KAAK+C,GACZM,IAAKrD,EAAE,KAAKgD,GACVM,IAAK,KAAK,MAAMH,GAAIC,GAAIC,CAAE,KAAK;IAGrC,AAFA,KAAMC,GACN,KAAMA,GACN,KAAMA;IACN,IAAMC,IACK,KAAK,IAAI,GAAGb,IAAKS,IAAKR,IAAKS,IAAKR,IAAKS,CAAE,MAAGtD,IACnDD,IACA,KACI0D,IAAQ5D,IAAUC,IAAUqD,GAC5BO,IAAKnC,IAAI,KAAK,IACdoC,IAAKtE,IAAI,KAAK,IACduE,IAAKpC,IAAI,KAAK,IACdrC,KAAK6C,EAAG0B,KAAM1B,EAAG2B,KAAM3B,EAAG4B,MAAO,GACjCxE,KAAK4C,EAAG0B,IAAK,KAAK1B,EAAG2B,IAAK,KAAK3B,EAAG4B,IAAK,MAAM,GAC7CC,KAAM7B,EAAG0B,IAAK,KAAK1B,EAAG2B,IAAK,KAAK3B,EAAG4B,IAAK,MAAM,GAC9CE,KAAM9B,EAAG0B,IAAK,KAAK1B,EAAG2B,IAAK,KAAK3B,EAAG4B,IAAK,MAAM,KAC9CG,IAAO9E,EACXE,IAAIsE,IAAQD,GACZpE,IAAIqE,IAAQD,GACZK,IAAKJ,IAAQD,CACf;IASA,AARA3B,EAAMvB,EAAK,UAAUwD,CAAE,GACvBhF,EAAI,UAAU,GACdA,EAAI,OAAOsC,EAAE,EAAEG,IAAIH,EAAE,EAAEG,EAAE,GACzBzC,EAAI,OAAOsC,EAAE,EAAE/B,IAAI+B,EAAE,EAAE/B,EAAE,GACzBP,EAAI,OAAOsC,EAAE,EAAEI,IAAIJ,EAAE,EAAEI,EAAE,GACzB1C,EAAI,UAAU,GACd,EAAI,YAAYiF,GAChBjF,EAAI,KAAK,GACLwB,EAAK,WAAW,MAElB,EAAI,cAAcyD,GAClB,EAAI,YAAY,KAChBjF,EAAI,OAAO;GAEf,OAAO,IAAIwB,EAAK,SAAS,YAAYO,EAAK/C,OAAOR,GAAO;IACtD,IAAM0G,IACJ1D,EAAK,eAAe,CAACb,EAAM,eACvB,KAAK,IACH,IACA,KAAK,IAAI,GAAGA,EAAM,WAAW,KAAK,IAAI2B,EAAE,EAAEa,IAAI,IAAI,CAAC,CACrD,IACA,GACAgC,IAAS,KAAK,IAAI,IAAM/C,EAAIe,IAAI,IAAI,KAAKzC,IAAMwE,IAAS,CAAC,GACzDxC,IAAIS,IAAI,KAAK,IACbiC,IAAKhD,EAAIe,IAAI,KAAKxC,EAAM,IAAI,IAC5B0E,IAAKjD,EAAIe,IAAI,IAAI,KAAKxC,EAAM,IAAI,IAChC2E,IAAKlD,EAAIe,IAAI,IAAI,KAAKxC,EAAM,IAAI,IAChC4E,IACJ,KAAK,IACH,GACA,KAAK,IAAI,IAAI,KAAK,MAAMH,GAAIC,GAAIC,CAAE,IAAIrC,MAAS,IAAItC,EAAM,OAAO,CAClE,IAAI,KACAN,IAAI6C,EAAGR,MAAMtB,IAAO8B,EAAGR,MAAM6C,GAC7BjF,IAAI4C,EAAGR,IAAI,MAAMrB,IAAO6B,EAAGR,IAAI,MAAM6C,GACrChF,IAAI2C,EAAGR,IAAI,MAAMpB,IAAO4B,EAAGR,IAAI,MAAM6C;IAG3C,AAFAxC,EAAMvB,EAAK,WAAW0B,EAAGR,IAAI,KAAK,IAAI,GACtC,EAAI,YAAYvC,EAAME,GAAGC,GAAGC,CAAC,GACzB4E,IAAS,MACXnF,EAAI,SACFsC,EAAE,EAAEa,KAAKgC,GACT7C,EAAE,EAAEa,KAAKgC,GACTA,IAAS,GACTA,IAAS,CACX,KAEAnF,EAAI,UAAU,GACdA,EAAI,IAAIsC,EAAE,EAAEa,IAAIb,EAAE,EAAEa,IAAIgC,GAAQ,GAAG,KAAK,KAAK,CAAC,GAC9CnF,EAAI,KAAK;GAEb,OAAO,IAAIwB,EAAK,SAAS,WAAWO,EAAK/C,OAAOP,GAAS;IACvD,IAAMiE,IAAIS,IAAI,KAAK,IACbqC,IAAOlD,EAAE,EAAE,SAAS;IAO1B,AANAS,EAAMvB,EAAK,WAAW0B,EAAGR,IAAI,KAAK,IAAI,GACtC,EAAI,cAAcvC,EAAM+C,EAAGR,IAAIQ,EAAGR,IAAI,IAAIQ,EAAGR,IAAI,EAAE,GACnD,EAAI,YAAY,KAAK,IAAI,IAAKlB,EAAK,QAAQd,CAAG,GAC9CV,EAAI,UAAU,GACdA,EAAI,OAAOsC,EAAE,EAAEa,IAAIb,EAAE,EAAEa,EAAE,GACzBnD,EAAI,OAAOsC,EAAE,EAAEkD,IAAOrC,IAAIb,EAAE,EAAEkD,IAAOrC,EAAE,GACvCnD,EAAI,OAAO;GACb;EACF;EACA,EAAI,cAAc;CACpB;CAEA,OAAO;EACL,MAAM;EACN;EACA,OAAO,GAAO,GAAQ;GAEpB,AADA,EAAO,QAAQ,KAAK,IAAI,GAAGL,CAAK,GAChC,EAAO,SAAS,KAAK,IAAI,GAAGC,CAAM;EACpC;EACA,OAAO,GAAO,GAAO;GACnB,EAAOkB,GAAOH,CAAK;EACrB;EACA,UAAU;GAGR,AAFAT,EAAO,MAAM,GACbF,EAAI,aAAa,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GACjCA,EAAI,UAAU,GAAG,GAAGC,EAAO,OAAOA,EAAO,MAAM;EACjD;CACF;AACF,GAEM0C,KAAU,GAAiB,MAAoB;CACnD,IAAM8C,IAAM,IAAI,aAAahD,EAAE,SAASlC,EAAE,MAAM;CAGhD,OAFAkF,EAAI,IAAIhD,GAAG,CAAC,GACZgD,EAAI,IAAIlF,GAAGkC,EAAE,MAAM,GACZgD;AACT"}
@@ -0,0 +1,2 @@
1
+ const e=require("../color.cjs"),t=require("../locale.cjs"),n=require("../scale.cjs"),r=require("../theme.cjs"),i=require("./colormap.cjs"),a=require("./detect.cjs"),o=require("./dom.cjs"),s=require("./labels.cjs"),c=require("./model.cjs"),l=require("./geometry.cjs"),u=require("./hover.cjs"),d=require("./math.cjs"),f=require("./overlay.cjs"),ee=require("./pick.cjs"),te=require("./sort.cjs");var ne=(e,t,n)=>{let r=t===1?e*16:t===2?e*400:e;return Math.exp(Math.max(-1,Math.min(1,r*(n?.01:.0025))))},p={ambient:.5,diffuse:.6,specular:.25,shininess:32},re=12,ie=.45,ae=5,oe=380,se=e=>d.clampCamera({azimuth:e?.azimuth??d.DEFAULT_CAMERA.azimuth,elevation:e?.elevation??d.DEFAULT_CAMERA.elevation,zoom:e?.zoom??d.DEFAULT_CAMERA.zoom,pan:[0,0],projection:e?.projection??d.DEFAULT_CAMERA.projection}),m=e=>({...e,pan:[e.pan[0],e.pan[1]]}),ce=(e,t)=>e.azimuth===t.azimuth&&e.elevation===t.elevation&&e.zoom===t.zoom&&e.pan[0]===t.pan[0]&&e.pan[1]===t.pan[1]&&e.projection===t.projection,le=(e,t,n)=>{let r=(t.azimuth-e.azimuth)%360;return r>180&&(r-=360),r<-180&&(r+=360),d.clampCamera({azimuth:e.azimuth+r*n,elevation:e.elevation+(t.elevation-e.elevation)*n,zoom:e.zoom*(t.zoom/e.zoom)**+n,pan:[e.pan[0]+(t.pan[0]-e.pan[0])*n,e.pan[1]+(t.pan[1]-e.pan[1])*n],projection:n<.5?e.projection:t.projection})},ue=(e,t,n)=>{let r=Math.max(30,Math.min(72,e*.08)),i=Math.max(14,Math.min(28,t*.05)),a=Math.max(30,Math.min(56,t*.1)),o=n?74:0,s={x:r,y:i,width:Math.max(10,e-r*2-o),height:Math.max(10,t-i-a)};if(!n)return{fit:s,bar:null};let c=Math.max(40,Math.min(260,t*.62));return{fit:s,bar:{x:e-66,y:(t-c)/2+8,w:12,h:c}}},de=(de,pe)=>{let h=de.ownerDocument,g=h.defaultView,_=o.createChart3DDom(de),v=_.stage,y=pe,b=r.readTheme(_.root,y.palette),me=0,x=!1,S=new Map,C=(e,t)=>{S.get(e)?.forEach(e=>e(t))},he=new Set,w=c.buildModel(y),T,E,ge=``,_e=0,ve=l.createGeometryBuilder(),D={items:[],targets:[],counts:[]},O=!0,k=ee.createPicker(),ye=te.createDepthSorter(),A=null,be=0,xe=()=>{},Se=new Promise(e=>{xe=e}),j=se(y.camera),Ce=JSON.stringify(y.camera??{}),M=m(j),N=null,P=0,F=!0,I=null,L=null,R=f.overlayStyle(b,fe(b)),z=null,B=null,V=null,H=null,we=!1,U=!0,W=0,G=typeof g?.matchMedia==`function`?g.matchMedia(`(prefers-reduced-motion: reduce)`):null,K=()=>{let e=y.interaction;if(e===!1)return null;let t=typeof e==`object`?e:{};return{rotate:t.rotate??!0,zoom:t.zoom??!0,wheel:t.wheel??`modifier`,pan:t.pan??!0,keyboard:t.keyboard??!0}},Te=()=>{let e=y.autoRotate;return e===!0?re:typeof e==`number`&&Number.isFinite(e)?e:0},Ee=()=>y.colorBar!==!1&&!!w.colorDomain,De=()=>({...y,series:y.series.map((e,t)=>{let n=e.id??String(t);return he.has(n)?{...e,hidden:!e.hidden}:e})}),Oe=t=>b.resolve?b.resolve(t,[.5,.5,.5,1]):e.parseColor(t)??[.5,.5,.5,1],ke=()=>{let t=`${JSON.stringify(y.colorScale??`viridis`)}|${me}`;(t!==ge||!E)&&(ge=t,E=i.colorLut(i.colorStops(y.colorScale,(t,n)=>b.resolve?b.resolve(t,n):e.parseColor(t)??n)),_e++);let n=b.palette.length?b.palette:[b.primary];T={series:w.series.map((e,t)=>e.color?Oe(e.color):n[t%n.length]??b.primary),resolve:Oe,lut:E,wire:[b.text[0],b.text[1],b.text[2],.38]}},q=()=>{w=c.buildModel(De()),ke(),O=!0,R=f.overlayStyle(b,fe(b)),je(),Me(),J(!0),z&&H&&Ue(H.x,H.y)},Ae=``,je=()=>{let t=y.legend,n=w.series.filter(e=>e.name).length,r=t===void 0?n>1:!!t,i=typeof t==`object`?t:{},a=i.toggle??!0,c=i.position===`bottom`,l=`${r}|${c}|${a}`;if(r&&w.series.forEach((t,n)=>{l+=`\n${t.id}\u0001${t.name}\u0001${e.toCss(T.series[n]??b.primary)}\u0001${t.hidden}`}),l===Ae)return;Ae=l;let u=[..._.legend.children].indexOf(h.activeElement);_.legend.replaceChildren(),_.legend.style.display=r?`flex`:`none`,r&&(_.legend.style.order=c?`1`:`0`,_.legend.style.padding=c?`8px 4px 0`:`0 4px 8px`,w.series.forEach((t,n)=>{if(!t.name)return;let r=h.createElement(a?`button`:`span`);r instanceof HTMLButtonElement&&(r.type=`button`,r.setAttribute(`aria-pressed`,String(!t.hidden)),r.addEventListener(`click`,()=>{he.has(t.id)?he.delete(t.id):he.add(t.id);let{labels:e}=w.locale;_.live.textContent=s.fill(t.hidden?e.shown:e.hidden,{name:t.name}),q()})),o.style(r,{display:`inline-flex`,alignItems:`center`,gap:`6px`,padding:`2px 4px`,margin:`0`,border:`0`,borderRadius:`4px`,background:`none`,font:`inherit`,color:`var(--text-secondary-color, #6b7280)`,cursor:a?`pointer`:`default`,opacity:t.hidden?`0.45`:`1`,textDecoration:t.hidden?`line-through`:`none`}),r.append(o.swatch(h,e.toCss(T.series[n]??b.primary),t.type!==`bar`&&t.type!==`surface`),h.createTextNode(t.name)),_.legend.appendChild(r)}),u>=0&&_.legend.children[u]?.focus())},Me=()=>{let{labels:e,count:t}=w.locale,n=w.series.map(e=>e.name).filter(Boolean).join(e.listSeparator);v.setAttribute(`aria-roledescription`,e.chart),v.setAttribute(`aria-label`,y.ariaLabel??(n?s.fill(e.chartNamed,{names:n}):e.chart)),K()?.keyboard?v.tabIndex=0:v.removeAttribute(`tabindex`),v.style.cursor=K()?.rotate?`grab`:`default`;let r=[];r.push(s.fill(e.seriesCount,{count:t(w.series.length)}));for(let n of w.series){let i=n.name||s.fill(e.series,{n:n.index+1}),a=n.type===`surface`?s.fill(e.grid,{rows:t(n.grid.rows),cols:t(n.grid.cols)}):n.type===`bar`?s.fill(e.bars,{count:t(n.bars.count)}):s.fill(n.type===`line`?e.vertices:e.points,{count:t(n.cols.count)});r.push(s.fill(n.hidden?e.seriesSummaryHidden:e.seriesSummary,{name:i,type:e[n.type],size:a}))}for(let t of[`x`,`y`,`z`]){let n=w[t],i=n.categories?n.categories.join(e.listSeparator):s.fill(e.range,{min:n.format(n.domain[0]),max:n.format(n.domain[1])});r.push(s.fill(n.title?e.axisTitled:e.axis,{axis:t.toUpperCase(),title:n.title,range:i}))}_.summary.textContent=r.join(` `)};function J(e=!0){e&&(F=!0),!(x||P||!g)&&(P=g.requestAnimationFrame(Fe))}let Ne=()=>Te()!==0&&U&&!we&&!Z&&!N&&!G?.matches&&h.visibilityState!==`hidden`,Pe=e=>{let t=[0,0,0];for(let n=0;n<3;n++)t[n]=-e.right[n]*.35+e.up[n]*.55-e.forward[n]*.7;return t[2]+=.35,d.normalize(t)};function Fe(e){if(P=0,x)return;let t=v.clientWidth,n=v.clientHeight;if(t<=0||n<=0)return;let r=g?.devicePixelRatio||1;if(N){let t=Math.min(1,(e-N.start)/oe),n=1-(1-t)**3;M=le(N.from,N.to,n),t>=1&&(M=m(N.to),N=null,C(`camera`,m(M))),F=!0}else if(Ne()){let t=W?Math.min(.1,(e-W)/1e3):0;t>0&&(M=d.clampCamera({...M,azimuth:M.azimuth-Te()*t}),F=!0),W=e}else W=0;o.sizeCanvas(_.background,t,n,r),o.sizeCanvas(_.foreground,t,n,r);let i=ue(t,n,Ee()),a=y.camera?.fov??32,s=[w.x.half,w.y.half,w.z.half],c=d.cameraFrame(M,s,t,n,i.fit,a);if(I=c,L=i,F){F=!1;let e=_.background.getContext(`2d`);if(e&&(e.setTransform(r,0,0,r,0,0),e.clearRect(0,0,t,n),y.box!==!1&&f.drawWalls(e,c,w,R)),A){O&&(D=ve(w,T,A.kind===`canvas2d`?l.CPU_BUDGET:l.GPU_BUDGET,_e),O=!1,k.reset());let e=Math.max(1,Math.round(t*r)),i=Math.max(1,Math.round(n*r));(A.canvas.width!==e||A.canvas.height!==i)&&A.resize(e,i),A.canvas.style.width=`${t}px`,A.canvas.style.height=`${n}px`;let a=y.lighting??{},o={viewProj:c.viewProj,eye:c.eye,light:Pe(c),orthographic:c.orthographic,distance:c.distance,radius:c.radius,width:e,height:i,dpr:r,lighting:[a.ambient??p.ambient,a.diffuse??p.diffuse,a.specular??p.specular,a.shininess??p.shininess],fog:b.background};A.render(A.kind===`canvas2d`?D.items:ye(D.items,o),o)}}Ie(c,i,t,n,r),(N||Ne())&&J(!0)}let Ie=(e,t,n,r,i)=>{let a=_.foreground.getContext(`2d`);if(a){if(a.setTransform(i,0,0,i,0,0),a.clearRect(0,0,n,r),y.box!==!1&&f.drawAxes(a,e,w,R,{left:4,top:4,right:t.bar?t.bar.x-10:n-4,bottom:r-4}),t.bar&&w.colorDomain){let e=typeof y.colorBar==`object`?y.colorBar:{};f.drawColorBar(a,t.bar,E,w.colorDomain,e.format??Le(),e.title??(w.colorFromZ?w.z.title:``),R,n)}if(z&&B){let t=u.highlightShape(D.targets,z,B.color);t&&f.drawHighlight(a,e,w,t,R)}}},Le=()=>{let e=w.colorDomain,{locale:t}=w;if(!e)return t.value;if(w.colorFromZ&&y.zAxis?.format)return y.zAxis.format;let r=n.tickStep(e[0],e[1],5);return r>0?t.ticks(r,Math.max(Math.abs(e[0]),Math.abs(e[1]))):t.value},Re=()=>y.tooltip!==!1,ze=()=>({x:v.offsetLeft,y:v.offsetTop}),Y=e=>{let t=e&&!O?u.hoverEvent(w,D.targets,e,T,ze()):null,n=t===null!=(B===null)||!!t&&!!B&&(t.seriesIndex!==B.seriesIndex||t.index!==B.index||t.type!==B.type);if(z=t?e:null,B=t,Be(),I&&L){let e=v.clientWidth,t=v.clientHeight;e>0&&t>0&&Ie(I,L,e,t,g?.devicePixelRatio||1)}n&&C(`hover`,t)},Be=()=>{let e=_.tooltip;if(!B||!z||!Re()){e.style.display=`none`;return}let t=typeof y.tooltip==`object`?y.tooltip.render:void 0,n=t?t(B):Ve(B);if(n===null){e.style.display=`none`;return}typeof n==`string`?e.textContent=n:e.replaceChildren(n),e.style.display=`block`;let r=v.clientWidth,i=v.clientHeight,a=e.offsetWidth,o=e.offsetHeight,s=z.x+16;s+a>r-4&&(s=z.x-16-a),s=Math.max(4,s);let c=Math.max(4,Math.min(i-o-4,z.y-o/2));e.style.transform=`translate(${Math.round(s)}px, ${Math.round(c)}px)`},Ve=e=>{let t=h.createDocumentFragment(),n=o.style(h.createElement(`div`),{display:`flex`,alignItems:`center`,gap:`6px`,fontWeight:`600`,marginBottom:`4px`,color:`var(--text-color, #1f2937)`});n.append(o.swatch(h,e.color,e.type!==`bar`),h.createTextNode(e.seriesName||s.fill(w.locale.labels.series,{n:e.seriesIndex+1}))),t.append(n);let r=typeof y.colorBar==`object`&&y.colorBar.title?y.colorBar.title:``;for(let n of u.tooltipRows(w,e,r)){let e=o.style(h.createElement(`div`),{display:`flex`,alignItems:`center`,gap:`8px`}),r=o.style(h.createElement(`span`),{flex:`1 1 auto`,color:`var(--text-secondary-color, #6b7280)`});r.textContent=n.name;let i=o.style(h.createElement(`span`),{fontWeight:n.name?`600`:`400`,fontVariantNumeric:`tabular-nums`,marginLeft:n.name?`12px`:`0`});i.textContent=n.value,n.name?e.append(r,i):e.append(i),t.append(e)}return t},He=(e,t)=>!I||O||!A?null:k.pick(D.targets,I,e,t),X=0,Ue=(e,t)=>{V={x:e,y:t},!X&&g&&(X=g.requestAnimationFrame(()=>{X=0;let e=V;V=null,!(!e||x||Z)&&Y(He(e.x,e.y))}))},Z=null,Q=new Map,We=e=>{let t=v.getBoundingClientRect();return{x:e.clientX-t.left,y:e.clientY-t.top}},Ge=()=>L?.fit.height??Math.max(1,v.clientHeight),$=(e,t=!0)=>{let n=d.clampCamera(e);ce(n,M)||(M=n,N=null,z&&Y(null),J(!0),t&&C(`camera`,m(M)))},Ke=e=>{if(G?.matches||!g){$(e);return}N={from:m(M),to:m(e),start:g.performance.now()},J(!0)},qe=()=>{let e=[...Q.values()],t=e[0]??{x:0,y:0},n=e[1]??t;return{distance:Math.hypot(t.x-n.x,t.y-n.y),center:{x:(t.x+n.x)/2,y:(t.y+n.y)/2}}},Je=(e,t)=>{Z={mode:e,pointers:Q,start:m(M),origin:t,distance:e===`pinch`?qe().distance:0,moved:!1},N=null,z&&Y(null),v.style.cursor=e===`rotate`?`grabbing`:`move`},Ye=e=>{let t=K();if(!t)return;let n=We(e);if(Q.set(e.pointerId,n),v.setPointerCapture?.(e.pointerId),Q.size===2&&(t.zoom||t.pan)){Je(`pinch`,qe().center);return}if(Q.size>1)return;let r=t.pan&&(e.button===2||e.shiftKey||e.button===1);r?Je(`pan`,n):t.rotate&&e.button===0?Je(`rotate`,n):Z=null,(r||e.button===1)&&e.preventDefault()},Xe=e=>{let t=We(e);if(H=t,Q.has(e.pointerId)&&Q.set(e.pointerId,t),!Z){if(e.pointerType===`touch`&&Q.size)return;(Re()||S.get(`hover`)?.size||S.get(`click`)?.size)&&Ue(t.x,t.y);return}let n=K();if(!n)return;if(Z.mode===`pinch`){let{distance:e,center:t}=qe(),r=Z.distance>0?e/Z.distance:1,i=Ge();$({...Z.start,zoom:n.zoom?Z.start.zoom*r:Z.start.zoom,pan:n.pan?[Z.start.pan[0]+(t.x-Z.origin.x)/i,Z.start.pan[1]+(t.y-Z.origin.y)/i]:Z.start.pan}),Z.moved=!0;return}let r=t.x-Z.origin.x,i=t.y-Z.origin.y;if(!(!Z.moved&&Math.hypot(r,i)<3)){if(Z.moved=!0,Z.mode===`pan`){let e=Ge();$({...Z.start,pan:[Z.start.pan[0]+r/e,Z.start.pan[1]+i/e]})}else $({...Z.start,azimuth:Z.start.azimuth-r*ie,elevation:Z.start.elevation+i*ie})}},Ze=e=>{let t=Z;if(Q.delete(e.pointerId),v.hasPointerCapture?.(e.pointerId)&&v.releasePointerCapture(e.pointerId),Q.size===1&&t?.mode===`pinch`){let e=[...Q.values()][0];Je(`rotate`,e);return}if(!Q.size){if(Z=null,v.style.cursor=K()?.rotate?`grab`:`default`,t&&!t.moved&&e.button===0){let t=We(e),n=He(t.x,t.y);Y(n),B&&C(`click`,B)}Ne()&&J(!1)}},Qe=e=>{Q.delete(e.pointerId),Q.size||(Z=null,v.style.cursor=K()?.rotate?`grab`:`default`)},$e=e=>{e.pointerType!==`touch`&&(we=!0)},et=()=>{we=!1,V=null,H=null,!Z&&z&&Y(null),Ne()&&J(!1)},tt=e=>{let t=K();if(!t?.zoom)return;let n=e.ctrlKey&&!e.metaKey;if(t.wheel===`modifier`&&!e.ctrlKey&&!e.metaKey)return;e.preventDefault();let r=ne(e.deltaY,e.deltaMode,n),i=M.zoom/r,a=L;if(!a){$({...M,zoom:i});return}let o=d.clampCamera({...M,zoom:i}),s=o.zoom/M.zoom,c=a.fit.height,l=a.fit.x+a.fit.width/2+M.pan[0]*c,u=a.fit.y+a.fit.height/2+M.pan[1]*c,f=We(e),ee=f.x-s*(f.x-l),te=f.y-s*(f.y-u);$({...o,pan:[M.pan[0]+(ee-l)/c,M.pan[1]+(te-u)/c]}),z&&Y(null)},nt=e=>{K()&&(e.preventDefault(),Ke(j))},rt=e=>{K()?.pan&&e.preventDefault()},it=()=>{let e;try{e=v.matches(`:focus-visible`)}catch{e=!0}e&&(v.style.boxShadow=`0 0 0 2px var(--primary-color, #4f46e5)`)},at=()=>{v.style.boxShadow=``},ot=e=>{let t=K();if(!t?.keyboard)return;let n=null,r=e.shiftKey?15:ae;switch(e.key){case`ArrowLeft`:t.rotate&&(n={...M,azimuth:M.azimuth+r});break;case`ArrowRight`:t.rotate&&(n={...M,azimuth:M.azimuth-r});break;case`ArrowUp`:t.rotate&&(n={...M,elevation:M.elevation+r});break;case`ArrowDown`:t.rotate&&(n={...M,elevation:M.elevation-r});break;case`+`:case`=`:t.zoom&&(n={...M,zoom:M.zoom*1.2});break;case`-`:case`_`:t.zoom&&(n={...M,zoom:M.zoom/1.2});break;case`0`:case`Home`:e.preventDefault(),Ke(j);return;case`Escape`:H=null,z&&(e.preventDefault(),Y(null));return;default:return}n&&(e.preventDefault(),$(n))};v.addEventListener(`pointerdown`,Ye),v.addEventListener(`pointermove`,Xe),v.addEventListener(`pointerup`,Ze),v.addEventListener(`pointercancel`,Qe),v.addEventListener(`pointerenter`,$e),v.addEventListener(`pointerleave`,et),v.addEventListener(`wheel`,tt,{passive:!1}),v.addEventListener(`dblclick`,nt),v.addEventListener(`contextmenu`,rt),v.addEventListener(`keydown`,ot),v.addEventListener(`focus`,it),v.addEventListener(`blur`,at);let st=typeof ResizeObserver==`function`?new ResizeObserver(()=>{k.reset(),J(!0)}):null;st?.observe(v);let ct=typeof IntersectionObserver==`function`?new IntersectionObserver(e=>{let t=e[e.length-1];if(!t)return;let n=U;U=t.isIntersecting,U&&!n&&J(!0)}):null;ct?.observe(v);let lt=()=>{h.visibilityState!==`hidden`&&J(!1)};h.addEventListener(`visibilitychange`,lt);let ut=null,dt=()=>{ft(),J(!0)},ft=()=>{ut?.removeEventListener?.(`change`,dt),ut=typeof g?.matchMedia==`function`?g.matchMedia(`(resolution: ${g.devicePixelRatio||1}dppx)`):null,ut?.addEventListener?.(`change`,dt)};ft();let pt=()=>J(!1);G?.addEventListener?.(`change`,pt);let mt=()=>{if(x)return;let e=r.readTheme(_.root,y.palette);r.themeColorsChanged(b,e)&&me++,b=e,q()},ht=r.watchTheme(mt),gt=typeof g?.MutationObserver==`function`?new g.MutationObserver(()=>{!x&&t.resolveLocale(y.locale)!==w.locale.locale&&q()}):null;gt?.observe(h.documentElement,{attributes:!0,attributeFilter:[`lang`]});let _t=async(e=new Set)=>{let t=++be,n=await a.createRenderer3D(y.renderer??`auto`,()=>{let e=o.layerCanvas(h);return e.className=`minerva-chart-data`,e},t=>{x||A?.kind!==t||(A.destroy(),A.canvas.remove(),A=null,_t(new Set([...e,t])))},e);if(x||t!==be){n?.destroy();return}A&&(A.destroy(),A.canvas.remove()),A=n,O=!0,n?(_.root.dataset.renderer=n.kind,v.insertBefore(n.canvas,_.foreground),C(`renderer`,n.kind)):delete _.root.dataset.renderer,xe(n?.kind??null),J(!0)};return ke(),q(),_t(),{setOptions(e){if(x)return;let t=y;y=e,(e.palette??[]).join()!==(t.palette??[]).join()&&(b=r.readTheme(_.root,e.palette),me++);let n=JSON.stringify(e.camera??{});n!==Ce&&(Ce=n,j=se(e.camera),$({...j})),(e.renderer??`auto`)!==(t.renderer??`auto`)&&_t(),q()},resize(){k.reset(),J(!0)},resetCamera(){$(m(j))},getCamera:()=>m(M),setCamera(e){x||$({azimuth:e.azimuth??M.azimuth,elevation:e.elevation??M.elevation,zoom:e.zoom??M.zoom,pan:e.pan?[e.pan[0],e.pan[1]]:M.pan,projection:e.projection??M.projection})},getRenderer:()=>A?.kind??null,ready:Se,refreshTheme:mt,on(e,t){let n=S.get(e);return n||(n=new Set,S.set(e,n)),n.add(t),()=>{n.delete(t)}},destroy(){x||(x=!0,be++,P&&g?.cancelAnimationFrame(P),X&&g?.cancelAnimationFrame(X),P=0,X=0,st?.disconnect(),ct?.disconnect(),h.removeEventListener(`visibilitychange`,lt),ut?.removeEventListener?.(`change`,dt),G?.removeEventListener?.(`change`,pt),ht(),gt?.disconnect(),v.removeEventListener(`pointerdown`,Ye),v.removeEventListener(`pointermove`,Xe),v.removeEventListener(`pointerup`,Ze),v.removeEventListener(`pointercancel`,Qe),v.removeEventListener(`pointerenter`,$e),v.removeEventListener(`pointerleave`,et),v.removeEventListener(`wheel`,tt),v.removeEventListener(`dblclick`,nt),v.removeEventListener(`contextmenu`,rt),v.removeEventListener(`keydown`,ot),v.removeEventListener(`focus`,it),v.removeEventListener(`blur`,at),A?.destroy(),A=null,S.clear(),xe(null),_.root.remove())}}};function fe(t){return e.luminance(t.background)<.4||e.luminance(t.text)>.6}exports.createChart3D=de,exports.initialCamera=se,exports.stageLayout=ue;
2
+ //# sourceMappingURL=chart.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart.cjs","names":["clampCamera","DEFAULT_CAMERA","createChart3DDom","readTheme","buildModel","createGeometryBuilder","createPicker","createDepthSorter","overlayStyle","parseColor","colorLut","colorStops","toCss","fill","swatch","normalize","cameraFrame","CPU_BUDGET","GPU_BUDGET","highlightShape","tickStep","hoverEvent","style","tooltipRows","themeColorsChanged","watchTheme","resolveLocale","createRenderer3D","layerCanvas","luminance","require_color","require_locale","require_scale","require_theme","require_colormap","require_detect","require_dom","require_labels","require_model","require_geometry","require_hover","require_math","require_overlay","require_pick","require_sort","wheelFactor","pixels","deltaMode","deltaY","pinch","DEFAULT_LIGHTING","ROTATE_SPEED","DRAG_DEGREES","KEY_DEGREES","TWEEN_MS","initialCamera","camera","copyCamera","c","sameCamera","a","b","lerpCamera","da","t","stageLayout","side","width","top","height","bottom","barSpace","colorBar","fit","h","createChart3D","doc","container","win","dom","stage","options","initialOptions","theme","themeVersion","destroyed","listeners","emit","type","fn","event","toggled","model","colors","lut","lutKey","lutId","buildGeometry","geometry","geometryDirty","picker","sortTransparent","renderer","rendererToken","resolveReady","ready","resolve","homeCamera","cameraKey","tween","frameId","dataDirty","lastFrame","lastLayout","overlay","isDark","hoverHit","hoverEvt","pendingHover","lastPointer","pointerInside","visible","lastRotate","reducedMotion","interaction","o","rotateSpeed","showsColorBar","effectiveOptions","id","s","i","resolveColor","value","refreshColors","key","f","palette","m","rebuild","renderLegend","updateAccessibility","invalidate","scheduleHover","legendKey","named","show","config","toggle","focused","item","labels","names","lines","count","name","size","axis","range","data","frame","rotating","drag","lightDirection","v","dpr","time","eased","dt","layout","fov","half","bg","w","l","frame3d","drawForeground","fg","colorBarFormat","shape","d","locale","step","tooltipEnabled","stageOffset","setHover","hit","changed","renderTooltip","tip","custom","content","defaultTooltip","tw","th","x","y","fragment","header","valueName","row","el","n","pickAt","hoverFrame","p","pointers","local","r","fitHeight","setCameraInternal","clamped","next","notify","animateTo","target","pinchInfo","pts","startDrag","mode","onPointerDown","ia","pan","onPointerMove","scale","distance","center","dx","dy","onPointerUp","wasDrag","rest","onPointerCancel","onPointerEnter","onPointerLeave","onWheel","factor","zoom","ratio","cx","cy","nx","ny","onDoubleClick","onContextMenu","onFocus","keyboard","onBlur","onKeyDown","resizeObserver","intersection","entry","entries","was","onVisibility","dprQuery","onDprChange","watchDpr","onMotionChange","refreshTheme","unwatchTheme","langObserver","initRenderer","token","canvas","kind","exclude","previous","set","listener"],"sources":["../../../../../charts/src/engine/three-d/chart.ts"],"sourcesContent":["// createChart3D: 3D scatter / surface / bar / line charts. The data layer\n// is drawn by a GPU backend (WebGPU -> WebGL2 -> WebGL) or by Canvas2D (CPU\n// projection, painter's algorithm); walls, labels, color bar and hover\n// highlight are 2D canvases around it. Frames are drawn on demand: the only\n// animation loop is the optional auto rotation (paused off-screen, while\n// hovered and with prefers-reduced-motion).\n\nimport { luminance, parseColor, toCss, type Rgba } from \"../color\";\nimport { resolveLocale } from \"../locale\";\nimport { tickStep } from \"../scale\";\nimport {\n readTheme,\n themeColorsChanged,\n watchTheme,\n type ChartTheme,\n} from \"../theme\";\nimport type { ChartRendererKind } from \"../types\";\nimport { colorLut, colorStops, type ColorLut } from \"./colormap\";\nimport { createRenderer3D } from \"./detect\";\nimport {\n createChart3DDom,\n layerCanvas,\n sizeCanvas,\n style,\n swatch,\n} from \"./dom\";\nimport {\n CPU_BUDGET,\n GPU_BUDGET,\n createGeometryBuilder,\n type Geometry,\n type GeometryColors,\n} from \"./geometry\";\nimport { highlightShape, hoverEvent, tooltipRows } from \"./hover\";\nimport { fill } from \"./labels\";\nimport {\n DEFAULT_CAMERA,\n cameraFrame,\n clampCamera,\n normalize,\n type CameraFrame,\n type FitRect,\n type Vec3,\n} from \"./math\";\nimport { buildModel, type Model3D } from \"./model\";\nimport {\n drawAxes,\n drawColorBar,\n drawHighlight,\n drawWalls,\n overlayStyle,\n type HighlightShape,\n type OverlayStyle,\n} from \"./overlay\";\nimport { createPicker, type PickHit } from \"./pick\";\nimport type { Frame3D, Renderer3D } from \"./render-types\";\nimport { createDepthSorter } from \"./sort\";\nimport type {\n Chart3DCameraOptions,\n Chart3DCameraState,\n Chart3DEventMap,\n Chart3DHoverEvent,\n Chart3DInstance,\n Chart3DInteractionOptions,\n Chart3DOptions,\n} from \"./types\";\n\n/** Zoom factor of a wheel event (same feel as the 2D charts) */\nconst wheelFactor = (deltaY: number, deltaMode: number, pinch: boolean) => {\n const pixels =\n deltaMode === 1 ? deltaY * 16 : deltaMode === 2 ? deltaY * 400 : deltaY;\n const speed = pinch ? 0.01 : 0.0025;\n return Math.exp(Math.max(-1, Math.min(1, pixels * speed)));\n};\n\nconst DEFAULT_LIGHTING = {\n ambient: 0.5,\n diffuse: 0.6,\n specular: 0.25,\n shininess: 32,\n};\n\nconst ROTATE_SPEED = 12;\nconst DRAG_DEGREES = 0.45;\nconst KEY_DEGREES = 5;\nconst TWEEN_MS = 380;\n\n/** Camera of the options (also the one restored by a reset) */\nexport const initialCamera = (\n camera: Chart3DCameraOptions | undefined,\n): Chart3DCameraState =>\n clampCamera({\n azimuth: camera?.azimuth ?? DEFAULT_CAMERA.azimuth,\n elevation: camera?.elevation ?? DEFAULT_CAMERA.elevation,\n zoom: camera?.zoom ?? DEFAULT_CAMERA.zoom,\n pan: [0, 0],\n projection: camera?.projection ?? DEFAULT_CAMERA.projection,\n });\n\nconst copyCamera = (c: Chart3DCameraState): Chart3DCameraState => ({\n ...c,\n pan: [c.pan[0], c.pan[1]],\n});\n\nconst sameCamera = (a: Chart3DCameraState, b: Chart3DCameraState) =>\n a.azimuth === b.azimuth &&\n a.elevation === b.elevation &&\n a.zoom === b.zoom &&\n a.pan[0] === b.pan[0] &&\n a.pan[1] === b.pan[1] &&\n a.projection === b.projection;\n\n/** Interpolated camera (shortest way around for the azimuth) */\nconst lerpCamera = (\n a: Chart3DCameraState,\n b: Chart3DCameraState,\n t: number,\n): Chart3DCameraState => {\n let da = (b.azimuth - a.azimuth) % 360;\n if (da > 180) da -= 360;\n if (da < -180) da += 360;\n return clampCamera({\n azimuth: a.azimuth + da * t,\n elevation: a.elevation + (b.elevation - a.elevation) * t,\n zoom: a.zoom * Math.pow(b.zoom / a.zoom, t),\n pan: [\n a.pan[0] + (b.pan[0] - a.pan[0]) * t,\n a.pan[1] + (b.pan[1] - a.pan[1]) * t,\n ],\n projection: t < 0.5 ? a.projection : b.projection,\n });\n};\n\n/** Layout of the stage: area the box is fitted into and the color bar */\nexport const stageLayout = (\n width: number,\n height: number,\n colorBar: boolean,\n): {\n fit: FitRect;\n bar: { x: number; y: number; w: number; h: number } | null;\n} => {\n const side = Math.max(30, Math.min(72, width * 0.08));\n const top = Math.max(14, Math.min(28, height * 0.05));\n const bottom = Math.max(30, Math.min(56, height * 0.1));\n const barSpace = colorBar ? 74 : 0;\n const fit: FitRect = {\n x: side,\n y: top,\n width: Math.max(10, width - side * 2 - barSpace),\n height: Math.max(10, height - top - bottom),\n };\n if (!colorBar) return { fit, bar: null };\n const h = Math.max(40, Math.min(260, height * 0.62));\n return {\n fit,\n bar: { x: width - 66, y: (height - h) / 2 + 8, w: 12, h },\n };\n};\n\nexport const createChart3D = (\n container: HTMLElement,\n initialOptions: Chart3DOptions,\n): Chart3DInstance => {\n const doc = container.ownerDocument;\n const win = doc.defaultView;\n const dom = createChart3DDom(container);\n const stage = dom.stage;\n let options = initialOptions;\n let theme: ChartTheme = readTheme(dom.root, options.palette);\n let themeVersion = 0;\n let destroyed = false;\n\n const listeners = new Map<keyof Chart3DEventMap, Set<(e: never) => void>>();\n const emit = <K extends keyof Chart3DEventMap>(\n type: K,\n event: Chart3DEventMap[K],\n ) => {\n listeners\n .get(type)\n ?.forEach((fn) => (fn as (e: Chart3DEventMap[K]) => void)(event));\n };\n\n // ------------------------------------------------------------- state\n\n /** Series whose visibility the legend flipped (ids) */\n const toggled = new Set<string>();\n let model: Model3D = buildModel(options);\n let colors: GeometryColors;\n let lut: ColorLut;\n let lutKey = \"\";\n let lutId = 0;\n const buildGeometry = createGeometryBuilder();\n let geometry: Geometry = { items: [], targets: [], counts: [] };\n let geometryDirty = true;\n const picker = createPicker();\n const sortTransparent = createDepthSorter();\n\n let renderer: Renderer3D | null = null;\n let rendererToken = 0;\n let resolveReady: (kind: ChartRendererKind | null) => void = () => {};\n const ready = new Promise<ChartRendererKind | null>((resolve) => {\n resolveReady = resolve;\n });\n\n let homeCamera = initialCamera(options.camera);\n let cameraKey = JSON.stringify(options.camera ?? {});\n let camera = copyCamera(homeCamera);\n let tween: {\n from: Chart3DCameraState;\n to: Chart3DCameraState;\n start: number;\n } | null = null;\n\n let frameId = 0;\n let dataDirty = true;\n let lastFrame: CameraFrame | null = null;\n let lastLayout: ReturnType<typeof stageLayout> | null = null;\n let overlay: OverlayStyle = overlayStyle(theme, isDark(theme));\n\n let hoverHit: PickHit | null = null;\n let hoverEvt: Chart3DHoverEvent | null = null;\n let pendingHover: { x: number; y: number } | null = null;\n let lastPointer: { x: number; y: number } | null = null;\n let pointerInside = false;\n let visible = true;\n let lastRotate = 0;\n\n const reducedMotion =\n typeof win?.matchMedia === \"function\"\n ? win.matchMedia(\"(prefers-reduced-motion: reduce)\")\n : null;\n\n // ------------------------------------------------------------ options\n\n const interaction = (): Required<Chart3DInteractionOptions> | null => {\n const o = options.interaction;\n if (o === false) return null;\n const c = typeof o === \"object\" ? o : {};\n return {\n rotate: c.rotate ?? true,\n zoom: c.zoom ?? true,\n wheel: c.wheel ?? \"modifier\",\n pan: c.pan ?? true,\n keyboard: c.keyboard ?? true,\n };\n };\n\n const rotateSpeed = () => {\n const a = options.autoRotate;\n if (a === true) return ROTATE_SPEED;\n return typeof a === \"number\" && Number.isFinite(a) ? a : 0;\n };\n\n const showsColorBar = () => {\n const o = options.colorBar;\n if (o === false) return false;\n return !!model.colorDomain;\n };\n\n const effectiveOptions = (): Chart3DOptions => ({\n ...options,\n series: options.series.map((s, i) => {\n const id = s.id ?? String(i);\n return toggled.has(id) ? { ...s, hidden: !s.hidden } : s;\n }),\n });\n\n const resolveColor = (value: string): Rgba =>\n theme.resolve\n ? theme.resolve(value, [0.5, 0.5, 0.5, 1])\n : (parseColor(value) ?? [0.5, 0.5, 0.5, 1]);\n\n const refreshColors = () => {\n const key = `${JSON.stringify(options.colorScale ?? \"viridis\")}|${themeVersion}`;\n if (key !== lutKey || !lut) {\n lutKey = key;\n lut = colorLut(\n colorStops(options.colorScale, (c, f) =>\n theme.resolve ? theme.resolve(c, f) : (parseColor(c) ?? f),\n ),\n );\n lutId++;\n }\n const palette = theme.palette.length ? theme.palette : [theme.primary];\n colors = {\n series: model.series.map((m, i) =>\n m.color\n ? resolveColor(m.color)\n : (palette[i % palette.length] ?? theme.primary),\n ),\n resolve: resolveColor,\n lut,\n wire: [theme.text[0], theme.text[1], theme.text[2], 0.38],\n };\n };\n\n const rebuild = () => {\n model = buildModel(effectiveOptions());\n refreshColors();\n geometryDirty = true;\n overlay = overlayStyle(theme, isDark(theme));\n renderLegend();\n updateAccessibility();\n invalidate(true);\n // the hovered item may have moved (live data): pick it again after the frame\n if (hoverHit && lastPointer) scheduleHover(lastPointer.x, lastPointer.y);\n };\n\n // ------------------------------------------------------------- legend\n\n let legendKey = \"\";\n const renderLegend = () => {\n const o = options.legend;\n const named = model.series.filter((s) => s.name).length;\n const show = o === undefined ? named > 1 : !!o;\n const config = typeof o === \"object\" ? o : {};\n const toggle = config.toggle ?? true;\n const bottom = config.position === \"bottom\";\n let key = `${show}|${bottom}|${toggle}`;\n if (show) {\n model.series.forEach((s, i) => {\n key += `\\n${s.id}\\u0001${s.name}\\u0001${toCss(colors.series[i] ?? theme.primary)}\\u0001${s.hidden}`;\n });\n }\n if (key === legendKey) return;\n legendKey = key;\n const focused = [...dom.legend.children].indexOf(\n doc.activeElement as Element,\n );\n dom.legend.replaceChildren();\n dom.legend.style.display = show ? \"flex\" : \"none\";\n if (!show) return;\n dom.legend.style.order = bottom ? \"1\" : \"0\";\n dom.legend.style.padding = bottom ? \"8px 4px 0\" : \"0 4px 8px\";\n model.series.forEach((s, i) => {\n if (!s.name) return;\n const item = doc.createElement(toggle ? \"button\" : \"span\");\n if (item instanceof HTMLButtonElement) {\n item.type = \"button\";\n item.setAttribute(\"aria-pressed\", String(!s.hidden));\n item.addEventListener(\"click\", () => {\n if (toggled.has(s.id)) toggled.delete(s.id);\n else toggled.add(s.id);\n const { labels } = model.locale;\n dom.live.textContent = fill(s.hidden ? labels.shown : labels.hidden, {\n name: s.name,\n });\n rebuild();\n });\n }\n style(item, {\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: \"6px\",\n padding: \"2px 4px\",\n margin: \"0\",\n border: \"0\",\n borderRadius: \"4px\",\n background: \"none\",\n font: \"inherit\",\n color: \"var(--text-secondary-color, #6b7280)\",\n cursor: toggle ? \"pointer\" : \"default\",\n opacity: s.hidden ? \"0.45\" : \"1\",\n textDecoration: s.hidden ? \"line-through\" : \"none\",\n });\n item.append(\n swatch(\n doc,\n toCss(colors.series[i] ?? theme.primary),\n s.type !== \"bar\" && s.type !== \"surface\",\n ),\n doc.createTextNode(s.name),\n );\n dom.legend.appendChild(item);\n });\n if (focused >= 0)\n (dom.legend.children[focused] as HTMLElement | undefined)?.focus();\n };\n\n // ------------------------------------------------------ accessibility\n\n const updateAccessibility = () => {\n const { labels, count } = model.locale;\n const names = model.series\n .map((s) => s.name)\n .filter(Boolean)\n .join(labels.listSeparator);\n stage.setAttribute(\"aria-roledescription\", labels.chart);\n stage.setAttribute(\n \"aria-label\",\n options.ariaLabel ??\n (names ? fill(labels.chartNamed, { names }) : labels.chart),\n );\n const keyboard = interaction()?.keyboard;\n if (keyboard) stage.tabIndex = 0;\n else stage.removeAttribute(\"tabindex\");\n stage.style.cursor = interaction()?.rotate ? \"grab\" : \"default\";\n const lines: string[] = [];\n lines.push(fill(labels.seriesCount, { count: count(model.series.length) }));\n for (const m of model.series) {\n const name = m.name || fill(labels.series, { n: m.index + 1 });\n const size =\n m.type === \"surface\"\n ? fill(labels.grid, {\n rows: count(m.grid.rows),\n cols: count(m.grid.cols),\n })\n : m.type === \"bar\"\n ? fill(labels.bars, { count: count(m.bars.count) })\n : fill(m.type === \"line\" ? labels.vertices : labels.points, {\n count: count(m.cols.count),\n });\n lines.push(\n fill(m.hidden ? labels.seriesSummaryHidden : labels.seriesSummary, {\n name,\n type: labels[m.type],\n size,\n }),\n );\n }\n for (const key of [\"x\", \"y\", \"z\"] as const) {\n const axis = model[key];\n const range = axis.categories\n ? axis.categories.join(labels.listSeparator)\n : fill(labels.range, {\n min: axis.format(axis.domain[0]),\n max: axis.format(axis.domain[1]),\n });\n lines.push(\n fill(axis.title ? labels.axisTitled : labels.axis, {\n axis: key.toUpperCase(),\n title: axis.title,\n range,\n }),\n );\n }\n dom.summary.textContent = lines.join(\" \");\n };\n\n // -------------------------------------------------------------- frame\n\n function invalidate(data = true) {\n if (data) dataDirty = true;\n if (destroyed || frameId || !win) return;\n frameId = win.requestAnimationFrame(frame);\n }\n\n const rotating = () =>\n rotateSpeed() !== 0 &&\n visible &&\n !pointerInside &&\n !drag &&\n !tween &&\n !reducedMotion?.matches &&\n !(doc.visibilityState === \"hidden\");\n\n const lightDirection = (f: CameraFrame): Vec3 => {\n // a headlight from the upper left, slightly raised towards the sky\n const v: Vec3 = [0, 0, 0];\n for (let i = 0; i < 3; i++) {\n v[i] = -f.right[i]! * 0.35 + f.up[i]! * 0.55 - f.forward[i]! * 0.7;\n }\n v[2] += 0.35;\n return normalize(v);\n };\n\n function frame(time: number) {\n frameId = 0;\n if (destroyed) return;\n const width = stage.clientWidth;\n const height = stage.clientHeight;\n if (width <= 0 || height <= 0) return;\n const dpr = win?.devicePixelRatio || 1;\n // camera animations\n if (tween) {\n const t = Math.min(1, (time - tween.start) / TWEEN_MS);\n const eased = 1 - Math.pow(1 - t, 3);\n camera = lerpCamera(tween.from, tween.to, eased);\n if (t >= 1) {\n camera = copyCamera(tween.to);\n tween = null;\n emit(\"camera\", copyCamera(camera));\n }\n dataDirty = true;\n } else if (rotating()) {\n const dt = lastRotate ? Math.min(0.1, (time - lastRotate) / 1000) : 0;\n if (dt > 0) {\n camera = clampCamera({\n ...camera,\n azimuth: camera.azimuth - rotateSpeed() * dt,\n });\n dataDirty = true;\n }\n lastRotate = time;\n } else {\n lastRotate = 0;\n }\n\n sizeCanvas(dom.background, width, height, dpr);\n sizeCanvas(dom.foreground, width, height, dpr);\n const layout = stageLayout(width, height, showsColorBar());\n const fov = options.camera?.fov ?? 32;\n const half: Vec3 = [model.x.half, model.y.half, model.z.half];\n const f = cameraFrame(camera, half, width, height, layout.fit, fov);\n lastFrame = f;\n lastLayout = layout;\n\n if (dataDirty) {\n dataDirty = false;\n const bg = dom.background.getContext(\"2d\");\n if (bg) {\n bg.setTransform(dpr, 0, 0, dpr, 0, 0);\n bg.clearRect(0, 0, width, height);\n if (options.box !== false) drawWalls(bg, f, model, overlay);\n }\n if (renderer) {\n if (geometryDirty) {\n geometry = buildGeometry(\n model,\n colors,\n renderer.kind === \"canvas2d\" ? CPU_BUDGET : GPU_BUDGET,\n lutId,\n );\n geometryDirty = false;\n picker.reset();\n }\n const w = Math.max(1, Math.round(width * dpr));\n const h = Math.max(1, Math.round(height * dpr));\n if (renderer.canvas.width !== w || renderer.canvas.height !== h)\n renderer.resize(w, h);\n renderer.canvas.style.width = `${width}px`;\n renderer.canvas.style.height = `${height}px`;\n const l = options.lighting ?? {};\n const frame3d: Frame3D = {\n viewProj: f.viewProj,\n eye: f.eye,\n light: lightDirection(f),\n orthographic: f.orthographic,\n distance: f.distance,\n radius: f.radius,\n width: w,\n height: h,\n dpr,\n lighting: [\n l.ambient ?? DEFAULT_LIGHTING.ambient,\n l.diffuse ?? DEFAULT_LIGHTING.diffuse,\n l.specular ?? DEFAULT_LIGHTING.specular,\n l.shininess ?? DEFAULT_LIGHTING.shininess,\n ],\n fog: theme.background,\n };\n renderer.render(\n renderer.kind === \"canvas2d\"\n ? geometry.items\n : sortTransparent(geometry.items, frame3d),\n frame3d,\n );\n }\n }\n drawForeground(f, layout, width, height, dpr);\n if (tween || rotating()) invalidate(true);\n }\n\n const drawForeground = (\n f: CameraFrame,\n layout: ReturnType<typeof stageLayout>,\n width: number,\n height: number,\n dpr: number,\n ) => {\n const fg = dom.foreground.getContext(\"2d\");\n if (!fg) return;\n fg.setTransform(dpr, 0, 0, dpr, 0, 0);\n fg.clearRect(0, 0, width, height);\n if (options.box !== false) {\n drawAxes(fg, f, model, overlay, {\n left: 4,\n top: 4,\n right: layout.bar ? layout.bar.x - 10 : width - 4,\n bottom: height - 4,\n });\n }\n if (layout.bar && model.colorDomain) {\n const o = typeof options.colorBar === \"object\" ? options.colorBar : {};\n drawColorBar(\n fg,\n layout.bar,\n lut,\n model.colorDomain,\n o.format ?? colorBarFormat(),\n o.title ?? (model.colorFromZ ? model.z.title : \"\"),\n overlay,\n width,\n );\n }\n if (hoverHit && hoverEvt) {\n const shape: HighlightShape | null = highlightShape(\n geometry.targets,\n hoverHit,\n hoverEvt.color,\n );\n if (shape) drawHighlight(fg, f, model, shape, overlay);\n }\n };\n\n const colorBarFormat = () => {\n const d = model.colorDomain;\n const { locale } = model;\n if (!d) return locale.value;\n if (model.colorFromZ && options.zAxis?.format) return options.zAxis.format;\n const step = tickStep(d[0], d[1], 5);\n return step > 0\n ? locale.ticks(step, Math.max(Math.abs(d[0]), Math.abs(d[1])))\n : locale.value;\n };\n\n // -------------------------------------------------------------- hover\n\n const tooltipEnabled = () => options.tooltip !== false;\n\n const stageOffset = () => ({ x: stage.offsetLeft, y: stage.offsetTop });\n\n const setHover = (hit: PickHit | null) => {\n const event =\n hit && !geometryDirty\n ? hoverEvent(model, geometry.targets, hit, colors, stageOffset())\n : null;\n const changed =\n (event === null) !== (hoverEvt === null) ||\n (!!event &&\n !!hoverEvt &&\n (event.seriesIndex !== hoverEvt.seriesIndex ||\n event.index !== hoverEvt.index ||\n event.type !== hoverEvt.type));\n hoverHit = event ? hit : null;\n hoverEvt = event;\n renderTooltip();\n if (lastFrame && lastLayout) {\n const width = stage.clientWidth;\n const height = stage.clientHeight;\n if (width > 0 && height > 0)\n drawForeground(\n lastFrame,\n lastLayout,\n width,\n height,\n win?.devicePixelRatio || 1,\n );\n }\n if (changed) emit(\"hover\", event);\n };\n\n const renderTooltip = () => {\n const tip = dom.tooltip;\n if (!hoverEvt || !hoverHit || !tooltipEnabled()) {\n tip.style.display = \"none\";\n return;\n }\n const custom =\n typeof options.tooltip === \"object\" ? options.tooltip.render : undefined;\n const content = custom ? custom(hoverEvt) : defaultTooltip(hoverEvt);\n if (content === null) {\n tip.style.display = \"none\";\n return;\n }\n if (typeof content === \"string\") tip.textContent = content;\n else tip.replaceChildren(content);\n tip.style.display = \"block\";\n const width = stage.clientWidth;\n const height = stage.clientHeight;\n const tw = tip.offsetWidth;\n const th = tip.offsetHeight;\n let x = hoverHit.x + 16;\n if (x + tw > width - 4) x = hoverHit.x - 16 - tw;\n x = Math.max(4, x);\n const y = Math.max(4, Math.min(height - th - 4, hoverHit.y - th / 2));\n tip.style.transform = `translate(${Math.round(x)}px, ${Math.round(y)}px)`;\n };\n\n const defaultTooltip = (event: Chart3DHoverEvent): Node => {\n const fragment = doc.createDocumentFragment();\n const header = style(doc.createElement(\"div\"), {\n display: \"flex\",\n alignItems: \"center\",\n gap: \"6px\",\n fontWeight: \"600\",\n marginBottom: \"4px\",\n color: \"var(--text-color, #1f2937)\",\n });\n header.append(\n swatch(doc, event.color, event.type !== \"bar\"),\n doc.createTextNode(\n event.seriesName ||\n fill(model.locale.labels.series, { n: event.seriesIndex + 1 }),\n ),\n );\n fragment.append(header);\n const valueName =\n typeof options.colorBar === \"object\" && options.colorBar.title\n ? options.colorBar.title\n : \"\";\n for (const row of tooltipRows(model, event, valueName)) {\n const el = style(doc.createElement(\"div\"), {\n display: \"flex\",\n alignItems: \"center\",\n gap: \"8px\",\n });\n const n = style(doc.createElement(\"span\"), {\n flex: \"1 1 auto\",\n color: \"var(--text-secondary-color, #6b7280)\",\n });\n n.textContent = row.name;\n const v = style(doc.createElement(\"span\"), {\n fontWeight: row.name ? \"600\" : \"400\",\n fontVariantNumeric: \"tabular-nums\",\n marginLeft: row.name ? \"12px\" : \"0\",\n });\n v.textContent = row.value;\n if (row.name) el.append(n, v);\n else el.append(v);\n fragment.append(el);\n }\n return fragment;\n };\n\n const pickAt = (x: number, y: number): PickHit | null => {\n if (!lastFrame || geometryDirty || !renderer) return null;\n return picker.pick(geometry.targets, lastFrame, x, y);\n };\n\n let hoverFrame = 0;\n const scheduleHover = (x: number, y: number) => {\n pendingHover = { x, y };\n if (hoverFrame || !win) return;\n hoverFrame = win.requestAnimationFrame(() => {\n hoverFrame = 0;\n const p = pendingHover;\n pendingHover = null;\n if (!p || destroyed || drag) return;\n setHover(pickAt(p.x, p.y));\n });\n };\n\n // -------------------------------------------------------- interaction\n\n interface DragState {\n mode: \"rotate\" | \"pan\" | \"pinch\";\n pointers: Map<number, { x: number; y: number }>;\n start: Chart3DCameraState;\n origin: { x: number; y: number };\n distance: number;\n moved: boolean;\n }\n let drag: DragState | null = null;\n const pointers = new Map<number, { x: number; y: number }>();\n\n const local = (e: { clientX: number; clientY: number }) => {\n const r = stage.getBoundingClientRect();\n return { x: e.clientX - r.left, y: e.clientY - r.top };\n };\n\n const fitHeight = () =>\n lastLayout?.fit.height ?? Math.max(1, stage.clientHeight);\n\n const setCameraInternal = (next: Chart3DCameraState, notify = true) => {\n const clamped = clampCamera(next);\n if (sameCamera(clamped, camera)) return;\n camera = clamped;\n tween = null;\n if (hoverHit) setHover(null);\n invalidate(true);\n if (notify) emit(\"camera\", copyCamera(camera));\n };\n\n const animateTo = (target: Chart3DCameraState) => {\n if (reducedMotion?.matches || !win) {\n setCameraInternal(target);\n return;\n }\n tween = {\n from: copyCamera(camera),\n to: copyCamera(target),\n start: win.performance.now(),\n };\n invalidate(true);\n };\n\n const pinchInfo = () => {\n const pts = [...pointers.values()];\n const a = pts[0] ?? { x: 0, y: 0 };\n const b = pts[1] ?? a;\n return {\n distance: Math.hypot(a.x - b.x, a.y - b.y),\n center: { x: (a.x + b.x) / 2, y: (a.y + b.y) / 2 },\n };\n };\n\n const startDrag = (\n mode: DragState[\"mode\"],\n origin: { x: number; y: number },\n ) => {\n drag = {\n mode,\n pointers,\n start: copyCamera(camera),\n origin,\n distance: mode === \"pinch\" ? pinchInfo().distance : 0,\n moved: false,\n };\n tween = null;\n if (hoverHit) setHover(null);\n stage.style.cursor = mode === \"rotate\" ? \"grabbing\" : \"move\";\n };\n\n const onPointerDown = (e: PointerEvent) => {\n const ia = interaction();\n if (!ia) return;\n const p = local(e);\n pointers.set(e.pointerId, p);\n stage.setPointerCapture?.(e.pointerId);\n if (pointers.size === 2 && (ia.zoom || ia.pan)) {\n startDrag(\"pinch\", pinchInfo().center);\n return;\n }\n if (pointers.size > 1) return;\n const pan = ia.pan && (e.button === 2 || e.shiftKey || e.button === 1);\n if (pan) startDrag(\"pan\", p);\n else if (ia.rotate && e.button === 0) startDrag(\"rotate\", p);\n else drag = null;\n if (pan || e.button === 1) e.preventDefault();\n };\n\n const onPointerMove = (e: PointerEvent) => {\n const p = local(e);\n lastPointer = p;\n if (pointers.has(e.pointerId)) pointers.set(e.pointerId, p);\n if (!drag) {\n if (e.pointerType === \"touch\" && pointers.size) return;\n if (\n tooltipEnabled() ||\n listeners.get(\"hover\")?.size ||\n listeners.get(\"click\")?.size\n )\n scheduleHover(p.x, p.y);\n return;\n }\n const ia = interaction();\n if (!ia) return;\n if (drag.mode === \"pinch\") {\n const { distance, center } = pinchInfo();\n const scale = drag.distance > 0 ? distance / drag.distance : 1;\n const h = fitHeight();\n setCameraInternal({\n ...drag.start,\n zoom: ia.zoom ? drag.start.zoom * scale : drag.start.zoom,\n pan: ia.pan\n ? [\n drag.start.pan[0] + (center.x - drag.origin.x) / h,\n drag.start.pan[1] + (center.y - drag.origin.y) / h,\n ]\n : drag.start.pan,\n });\n drag.moved = true;\n return;\n }\n const dx = p.x - drag.origin.x;\n const dy = p.y - drag.origin.y;\n if (!drag.moved && Math.hypot(dx, dy) < 3) return;\n drag.moved = true;\n if (drag.mode === \"pan\") {\n const h = fitHeight();\n setCameraInternal({\n ...drag.start,\n pan: [drag.start.pan[0] + dx / h, drag.start.pan[1] + dy / h],\n });\n } else {\n setCameraInternal({\n ...drag.start,\n azimuth: drag.start.azimuth - dx * DRAG_DEGREES,\n elevation: drag.start.elevation + dy * DRAG_DEGREES,\n });\n }\n };\n\n const onPointerUp = (e: PointerEvent) => {\n const wasDrag = drag;\n pointers.delete(e.pointerId);\n if (stage.hasPointerCapture?.(e.pointerId))\n stage.releasePointerCapture(e.pointerId);\n if (pointers.size === 1 && wasDrag?.mode === \"pinch\") {\n // continue with the remaining finger as a rotation\n const rest = [...pointers.values()][0]!;\n startDrag(\"rotate\", rest);\n return;\n }\n if (pointers.size) return;\n drag = null;\n stage.style.cursor = interaction()?.rotate ? \"grab\" : \"default\";\n if (wasDrag && !wasDrag.moved && e.button === 0) {\n const p = local(e);\n const hit = pickAt(p.x, p.y);\n setHover(hit);\n if (hoverEvt) emit(\"click\", hoverEvt);\n }\n if (rotating()) invalidate(false);\n };\n\n const onPointerCancel = (e: PointerEvent) => {\n pointers.delete(e.pointerId);\n if (!pointers.size) {\n drag = null;\n stage.style.cursor = interaction()?.rotate ? \"grab\" : \"default\";\n }\n };\n\n const onPointerEnter = (e: PointerEvent) => {\n if (e.pointerType !== \"touch\") pointerInside = true;\n };\n\n const onPointerLeave = () => {\n pointerInside = false;\n pendingHover = null;\n lastPointer = null;\n if (!drag && hoverHit) setHover(null);\n if (rotating()) invalidate(false);\n };\n\n const onWheel = (e: WheelEvent) => {\n const ia = interaction();\n if (!ia?.zoom) return;\n const pinch = e.ctrlKey && !e.metaKey;\n if (ia.wheel === \"modifier\" && !e.ctrlKey && !e.metaKey) return;\n e.preventDefault();\n const factor = wheelFactor(e.deltaY, e.deltaMode, pinch);\n const zoom = camera.zoom / factor;\n // keep the point under the pointer in place\n const layout = lastLayout;\n if (!layout) {\n setCameraInternal({ ...camera, zoom });\n return;\n }\n const clamped = clampCamera({ ...camera, zoom });\n const ratio = clamped.zoom / camera.zoom;\n const h = layout.fit.height;\n const cx = layout.fit.x + layout.fit.width / 2 + camera.pan[0] * h;\n const cy = layout.fit.y + layout.fit.height / 2 + camera.pan[1] * h;\n const m = local(e);\n const nx = m.x - ratio * (m.x - cx);\n const ny = m.y - ratio * (m.y - cy);\n setCameraInternal({\n ...clamped,\n pan: [camera.pan[0] + (nx - cx) / h, camera.pan[1] + (ny - cy) / h],\n });\n if (hoverHit) setHover(null);\n };\n\n const onDoubleClick = (e: MouseEvent) => {\n if (!interaction()) return;\n e.preventDefault();\n animateTo(homeCamera);\n };\n\n const onContextMenu = (e: MouseEvent) => {\n if (interaction()?.pan) e.preventDefault();\n };\n\n // a focus ring for keyboard users only\n const onFocus = () => {\n let keyboard: boolean;\n try {\n keyboard = stage.matches(\":focus-visible\");\n } catch {\n keyboard = true;\n }\n if (keyboard)\n stage.style.boxShadow = \"0 0 0 2px var(--primary-color, #4f46e5)\";\n };\n\n const onBlur = () => {\n stage.style.boxShadow = \"\";\n };\n\n const onKeyDown = (e: KeyboardEvent) => {\n const ia = interaction();\n if (!ia?.keyboard) return;\n let next: Chart3DCameraState | null = null;\n const step = e.shiftKey ? KEY_DEGREES * 3 : KEY_DEGREES;\n switch (e.key) {\n case \"ArrowLeft\":\n if (ia.rotate) next = { ...camera, azimuth: camera.azimuth + step };\n break;\n case \"ArrowRight\":\n if (ia.rotate) next = { ...camera, azimuth: camera.azimuth - step };\n break;\n case \"ArrowUp\":\n if (ia.rotate) next = { ...camera, elevation: camera.elevation + step };\n break;\n case \"ArrowDown\":\n if (ia.rotate) next = { ...camera, elevation: camera.elevation - step };\n break;\n case \"+\":\n case \"=\":\n if (ia.zoom) next = { ...camera, zoom: camera.zoom * 1.2 };\n break;\n case \"-\":\n case \"_\":\n if (ia.zoom) next = { ...camera, zoom: camera.zoom / 1.2 };\n break;\n case \"0\":\n case \"Home\":\n e.preventDefault();\n animateTo(homeCamera);\n return;\n case \"Escape\":\n lastPointer = null;\n if (hoverHit) {\n e.preventDefault();\n setHover(null);\n }\n return;\n default:\n return;\n }\n if (!next) return;\n e.preventDefault();\n setCameraInternal(next);\n };\n\n stage.addEventListener(\"pointerdown\", onPointerDown);\n stage.addEventListener(\"pointermove\", onPointerMove);\n stage.addEventListener(\"pointerup\", onPointerUp);\n stage.addEventListener(\"pointercancel\", onPointerCancel);\n stage.addEventListener(\"pointerenter\", onPointerEnter);\n stage.addEventListener(\"pointerleave\", onPointerLeave);\n stage.addEventListener(\"wheel\", onWheel, { passive: false });\n stage.addEventListener(\"dblclick\", onDoubleClick);\n stage.addEventListener(\"contextmenu\", onContextMenu);\n stage.addEventListener(\"keydown\", onKeyDown);\n stage.addEventListener(\"focus\", onFocus);\n stage.addEventListener(\"blur\", onBlur);\n\n // ----------------------------------------------------------- watchers\n\n const resizeObserver =\n typeof ResizeObserver === \"function\"\n ? new ResizeObserver(() => {\n picker.reset();\n invalidate(true);\n })\n : null;\n resizeObserver?.observe(stage);\n\n const intersection =\n typeof IntersectionObserver === \"function\"\n ? new IntersectionObserver((entries) => {\n const entry = entries[entries.length - 1];\n if (!entry) return;\n const was = visible;\n visible = entry.isIntersecting;\n if (visible && !was) invalidate(true);\n })\n : null;\n intersection?.observe(stage);\n\n const onVisibility = () => {\n if (doc.visibilityState !== \"hidden\") invalidate(false);\n };\n doc.addEventListener(\"visibilitychange\", onVisibility);\n\n // device pixel ratio changes (zoom, moving to another screen)\n let dprQuery: MediaQueryList | null = null;\n const onDprChange = () => {\n watchDpr();\n invalidate(true);\n };\n const watchDpr = () => {\n dprQuery?.removeEventListener?.(\"change\", onDprChange);\n dprQuery =\n typeof win?.matchMedia === \"function\"\n ? win.matchMedia(`(resolution: ${win.devicePixelRatio || 1}dppx)`)\n : null;\n dprQuery?.addEventListener?.(\"change\", onDprChange);\n };\n watchDpr();\n\n const onMotionChange = () => invalidate(false);\n reducedMotion?.addEventListener?.(\"change\", onMotionChange);\n\n const refreshTheme = () => {\n if (destroyed) return;\n const next = readTheme(dom.root, options.palette);\n if (themeColorsChanged(theme, next)) themeVersion++;\n theme = next;\n rebuild();\n };\n const unwatchTheme = watchTheme(refreshTheme);\n\n // texts follow the page language when no `locale` is set\n const langObserver =\n typeof win?.MutationObserver === \"function\"\n ? new win.MutationObserver(() => {\n if (\n !destroyed &&\n resolveLocale(options.locale) !== model.locale.locale\n )\n rebuild();\n })\n : null;\n langObserver?.observe(doc.documentElement, {\n attributes: true,\n attributeFilter: [\"lang\"],\n });\n\n // ----------------------------------------------------------- renderer\n\n const initRenderer = async (exclude: Set<ChartRendererKind> = new Set()) => {\n const token = ++rendererToken;\n const next = await createRenderer3D(\n options.renderer ?? \"auto\",\n () => {\n const canvas = layerCanvas(doc);\n canvas.className = \"minerva-chart-data\";\n return canvas;\n },\n (kind) => {\n if (destroyed || renderer?.kind !== kind) return;\n renderer.destroy();\n renderer.canvas.remove();\n renderer = null;\n void initRenderer(new Set([...exclude, kind]));\n },\n exclude,\n );\n if (destroyed || token !== rendererToken) {\n next?.destroy();\n return;\n }\n if (renderer) {\n renderer.destroy();\n renderer.canvas.remove();\n }\n renderer = next;\n geometryDirty = true;\n if (next) {\n dom.root.dataset.renderer = next.kind;\n stage.insertBefore(next.canvas, dom.foreground);\n emit(\"renderer\", next.kind);\n } else {\n delete dom.root.dataset.renderer;\n }\n resolveReady(next?.kind ?? null);\n invalidate(true);\n };\n\n refreshColors();\n rebuild();\n void initRenderer();\n\n // ---------------------------------------------------------------- api\n\n const instance: Chart3DInstance = {\n setOptions(next) {\n if (destroyed) return;\n const previous = options;\n options = next;\n if ((next.palette ?? []).join() !== (previous.palette ?? []).join()) {\n theme = readTheme(dom.root, next.palette);\n themeVersion++;\n }\n const key = JSON.stringify(next.camera ?? {});\n if (key !== cameraKey) {\n cameraKey = key;\n homeCamera = initialCamera(next.camera);\n setCameraInternal({ ...homeCamera });\n }\n if ((next.renderer ?? \"auto\") !== (previous.renderer ?? \"auto\"))\n void initRenderer();\n rebuild();\n },\n resize() {\n picker.reset();\n invalidate(true);\n },\n resetCamera() {\n setCameraInternal(copyCamera(homeCamera));\n },\n getCamera: () => copyCamera(camera),\n setCamera(next) {\n if (destroyed) return;\n setCameraInternal({\n azimuth: next.azimuth ?? camera.azimuth,\n elevation: next.elevation ?? camera.elevation,\n zoom: next.zoom ?? camera.zoom,\n pan: next.pan ? [next.pan[0], next.pan[1]] : camera.pan,\n projection: next.projection ?? camera.projection,\n });\n },\n getRenderer: () => renderer?.kind ?? null,\n ready,\n refreshTheme,\n on(type, listener) {\n let set = listeners.get(type);\n if (!set) {\n set = new Set();\n listeners.set(type, set);\n }\n set.add(listener as (e: never) => void);\n return () => {\n set.delete(listener as (e: never) => void);\n };\n },\n destroy() {\n if (destroyed) return;\n destroyed = true;\n rendererToken++;\n if (frameId) win?.cancelAnimationFrame(frameId);\n if (hoverFrame) win?.cancelAnimationFrame(hoverFrame);\n frameId = 0;\n hoverFrame = 0;\n resizeObserver?.disconnect();\n intersection?.disconnect();\n doc.removeEventListener(\"visibilitychange\", onVisibility);\n dprQuery?.removeEventListener?.(\"change\", onDprChange);\n reducedMotion?.removeEventListener?.(\"change\", onMotionChange);\n unwatchTheme();\n langObserver?.disconnect();\n stage.removeEventListener(\"pointerdown\", onPointerDown);\n stage.removeEventListener(\"pointermove\", onPointerMove);\n stage.removeEventListener(\"pointerup\", onPointerUp);\n stage.removeEventListener(\"pointercancel\", onPointerCancel);\n stage.removeEventListener(\"pointerenter\", onPointerEnter);\n stage.removeEventListener(\"pointerleave\", onPointerLeave);\n stage.removeEventListener(\"wheel\", onWheel);\n stage.removeEventListener(\"dblclick\", onDoubleClick);\n stage.removeEventListener(\"contextmenu\", onContextMenu);\n stage.removeEventListener(\"keydown\", onKeyDown);\n stage.removeEventListener(\"focus\", onFocus);\n stage.removeEventListener(\"blur\", onBlur);\n renderer?.destroy();\n renderer = null;\n listeners.clear();\n resolveReady(null);\n dom.root.remove();\n },\n };\n return instance;\n};\n\nfunction isDark(theme: ChartTheme): boolean {\n return luminance(theme.background) < 0.4 || luminance(theme.text) > 0.6;\n}\n"],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { FitRect } from './math.cjs';
2
+ import { Chart3DCameraOptions, Chart3DCameraState, Chart3DInstance, Chart3DOptions } from './types.cjs';
3
+ /** Camera of the options (also the one restored by a reset) */
4
+ export declare const initialCamera: (camera: Chart3DCameraOptions | undefined) => Chart3DCameraState;
5
+ /** Layout of the stage: area the box is fitted into and the color bar */
6
+ export declare const stageLayout: (width: number, height: number, colorBar: boolean) => {
7
+ fit: FitRect;
8
+ bar: {
9
+ x: number;
10
+ y: number;
11
+ w: number;
12
+ h: number;
13
+ } | null;
14
+ };
15
+ export declare const createChart3D: (container: HTMLElement, initialOptions: Chart3DOptions) => Chart3DInstance;
@@ -0,0 +1,15 @@
1
+ import { FitRect } from './math.js';
2
+ import { Chart3DCameraOptions, Chart3DCameraState, Chart3DInstance, Chart3DOptions } from './types.js';
3
+ /** Camera of the options (also the one restored by a reset) */
4
+ export declare const initialCamera: (camera: Chart3DCameraOptions | undefined) => Chart3DCameraState;
5
+ /** Layout of the stage: area the box is fitted into and the color bar */
6
+ export declare const stageLayout: (width: number, height: number, colorBar: boolean) => {
7
+ fit: FitRect;
8
+ bar: {
9
+ x: number;
10
+ y: number;
11
+ w: number;
12
+ h: number;
13
+ } | null;
14
+ };
15
+ export declare const createChart3D: (container: HTMLElement, initialOptions: Chart3DOptions) => Chart3DInstance;