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,277 @@
1
+ import { ensureSpan as e, linearTicks as t, niceDomain as n, tickStep as r } from "../scale.js";
2
+ import { locale3D as i } from "./labels.js";
3
+ //#region src/engine/three-d/model.ts
4
+ var a = () => ({
5
+ min: Infinity,
6
+ max: -Infinity
7
+ }), o = (e, t = e.length) => {
8
+ let n = Infinity, r = -Infinity;
9
+ for (let i = 0; i < t; i++) {
10
+ let t = e[i];
11
+ t < n && (n = t), t > r && (r = t);
12
+ }
13
+ return {
14
+ min: n,
15
+ max: r
16
+ };
17
+ }, s = (e, t) => {
18
+ t.min < e.min && (e.min = t.min), t.max > e.max && (e.max = t.max);
19
+ }, c = (e) => !Array.isArray(e) && typeof e.x == "object" && e.x !== null, l = /* @__PURE__ */ new WeakMap(), u = (e) => {
20
+ let t = l.get(e);
21
+ if (t) return t;
22
+ let n;
23
+ if (c(e)) n = {
24
+ count: Math.min(e.x.length, e.y.length, e.z.length),
25
+ x: e.x,
26
+ y: e.y,
27
+ z: e.z,
28
+ size: e.size ?? null,
29
+ value: e.value ?? null,
30
+ colors: null,
31
+ labels: e.label ?? null
32
+ };
33
+ else {
34
+ let t = e, r = t.length, i = new Float64Array(r), a = new Float64Array(r), o = new Float64Array(r), s = null, c = null, l = null, u = null;
35
+ for (let e = 0; e < r; e++) {
36
+ let n = t[e];
37
+ if (Array.isArray(n)) {
38
+ let t = n;
39
+ i[e] = t[0] ?? NaN, a[e] = t[1] ?? NaN, o[e] = t[2] ?? NaN;
40
+ continue;
41
+ }
42
+ let d = n;
43
+ i[e] = d.x, a[e] = d.y, o[e] = d.z, d.size !== void 0 && (s ?? (s = new Float32Array(r).fill(NaN)), s[e] = d.size), d.value !== void 0 && (c ?? (c = new Float64Array(r).fill(NaN)), c[e] = d.value), d.color !== void 0 && (l ?? (l = Array(r)), l[e] = d.color), d.label !== void 0 && (u ?? (u = Array(r)), u[e] = d.label);
44
+ }
45
+ n = {
46
+ count: r,
47
+ x: i,
48
+ y: a,
49
+ z: o,
50
+ size: s,
51
+ value: c,
52
+ colors: l,
53
+ labels: u
54
+ };
55
+ }
56
+ let r = {
57
+ ...n,
58
+ extent: {
59
+ x: o(n.x, n.count),
60
+ y: o(n.y, n.count),
61
+ z: o(n.z, n.count),
62
+ value: n.value ? o(n.value, n.count) : a()
63
+ }
64
+ };
65
+ return l.set(e, r), r;
66
+ }, d = /* @__PURE__ */ new WeakMap(), f = (e) => {
67
+ let t = new Float64Array(e);
68
+ for (let n = 0; n < e; n++) t[n] = n;
69
+ return t;
70
+ }, p = (e) => {
71
+ let t = d.get(e);
72
+ if (t) return t;
73
+ let n = Math.max(0, Math.floor(e.cols)), r = Math.max(0, Math.floor(e.rows)), i = r >= 2 && n >= 2 && e.z.length >= r * n, s = e.x && e.x.length >= n ? e.x : f(n), c = e.y && e.y.length >= r ? e.y : f(r), l = e.value && e.value.length >= r * n ? e.value : null, u = {
74
+ rows: i ? r : 0,
75
+ cols: i ? n : 0,
76
+ z: e.z,
77
+ x: s,
78
+ y: c,
79
+ value: l,
80
+ extent: {
81
+ x: i ? o(s, n) : a(),
82
+ y: i ? o(c, r) : a(),
83
+ z: i ? o(e.z, r * n) : a(),
84
+ value: i && l ? o(l, r * n) : a()
85
+ }
86
+ };
87
+ return d.set(e, u), u;
88
+ }, m = (e) => Array.isArray(e) ? {
89
+ x: e[0],
90
+ y: e[1],
91
+ z: e[2]
92
+ } : e, h = class {
93
+ constructor(e) {
94
+ this.lookup = /* @__PURE__ */ new Map(), this.names = e ? [...e] : [], this.fixed = !!e, this.names.forEach((e, t) => this.lookup.set(e, t));
95
+ }
96
+ index(e) {
97
+ if (typeof e == "number" && this.fixed) return Number.isInteger(e) && e >= 0 && e < this.names.length ? e : -1;
98
+ let t = String(e), n = this.lookup.get(t);
99
+ return n === void 0 ? this.fixed ? -1 : (this.names.push(t), this.lookup.set(t, this.names.length - 1), this.names.length - 1) : n;
100
+ }
101
+ }, g = (e, t, n) => {
102
+ let r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map();
103
+ return e.map((e) => {
104
+ let o = e.data, c = o.length, l = new Int32Array(c), u = new Int32Array(c), d = new Float64Array(c), f = new Float64Array(c), p = new Float64Array(c), h = new Int32Array(c), g = null, _ = null, v = null, y = a(), b = a(), x = a(), S = 0;
105
+ for (let a = 0; a < c; a++) {
106
+ let C = m(o[a]), w = t.index(C.x), T = n.index(C.y), E = C.z;
107
+ if (w < 0 || T < 0 || E === null || !Number.isFinite(E)) continue;
108
+ let D = T * 1000003 + w, O = E >= 0 ? r : i, k = e.hidden ? 0 : O.get(D) ?? 0;
109
+ e.hidden || O.set(D, k + E), l[S] = w, u[S] = T, d[S] = k, f[S] = k + E, p[S] = E, h[S] = a, C.value !== void 0 && (g ?? (g = new Float64Array(c).fill(NaN)), g[S] = C.value, s(x, {
110
+ min: C.value,
111
+ max: C.value
112
+ })), C.color !== void 0 && (_ ?? (_ = Array(c)), _[S] = C.color), C.label !== void 0 && (v ?? (v = Array(c)), v[S] = C.label), s(y, {
113
+ min: Math.min(k, k + E),
114
+ max: Math.max(k, k + E)
115
+ }), s(b, {
116
+ min: E,
117
+ max: E
118
+ }), S++;
119
+ }
120
+ return {
121
+ count: S,
122
+ xi: l,
123
+ yi: u,
124
+ z0: d,
125
+ z1: f,
126
+ z: p,
127
+ source: h,
128
+ value: g,
129
+ colors: _,
130
+ labels: v,
131
+ extent: {
132
+ z: y,
133
+ height: b,
134
+ value: x
135
+ }
136
+ };
137
+ });
138
+ }, _ = (e, t) => {
139
+ let [n, r] = e.domain;
140
+ return ((t - n) / (r - n || 1) * 2 - 1) * e.half;
141
+ }, v = (i, a, o, s, c, l, u) => {
142
+ let d = a ?? {}, f = Math.max(2, d.tickCount ?? 5);
143
+ if (c) {
144
+ let e = Math.max(1, c.length), t = (e) => {
145
+ let t = Math.round(e);
146
+ return d.format ? d.format(t) : c[t] ?? String(t);
147
+ }, n = Array.from({ length: c.length }, (e, t) => t);
148
+ return {
149
+ key: i,
150
+ title: d.title ?? "",
151
+ categories: c,
152
+ domain: [-.5, e - .5],
153
+ half: s,
154
+ ticks: n,
155
+ labels: n.map(t),
156
+ format: t,
157
+ grid: d.grid ?? !0,
158
+ visible: d.visible ?? !0
159
+ };
160
+ }
161
+ let p = d.min ?? o.min, m = d.max ?? o.max;
162
+ if (l && d.min === void 0 && p > 0 && (p = 0), l && d.max === void 0 && m < 0 && (m = 0), [p, m] = e(p, m), d.nice ?? !0) {
163
+ let [e, t] = n(p, m, f);
164
+ d.min === void 0 && (p = e), d.max === void 0 && (m = t);
165
+ }
166
+ let h = t(p, m, f), g = r(p, m, f), _ = d.format ?? u.ticks(g, Math.max(Math.abs(p), Math.abs(m)));
167
+ return {
168
+ key: i,
169
+ title: d.title ?? "",
170
+ categories: null,
171
+ domain: [p, m],
172
+ half: s,
173
+ ticks: h,
174
+ labels: h.map(_),
175
+ format: d.format ?? u.value,
176
+ grid: d.grid ?? !0,
177
+ visible: d.visible ?? !0
178
+ };
179
+ }, y = (e) => e.type ?? "scatter", b = (e, t) => e === void 0 || !Number.isFinite(e) ? t : Math.max(0, Math.min(1, e)), x = (e) => {
180
+ let t = (e ?? [
181
+ 1,
182
+ 1,
183
+ .7
184
+ ]).map((e) => Number.isFinite(e) && e > 0 ? e : 1), n = Math.max(t[0], t[1], t[2]);
185
+ return [
186
+ t[0] / n,
187
+ t[1] / n,
188
+ t[2] / n
189
+ ];
190
+ }, S = (t, n = i(t.locale, t.labels)) => {
191
+ let r = x(t.aspect), o = {
192
+ x: a(),
193
+ y: a(),
194
+ z: a()
195
+ }, c = t.series.filter((e) => y(e) === "bar"), l = c.length || t.xAxis?.categories ? new h(t.xAxis?.categories) : null, d = c.length || t.yAxis?.categories ? new h(t.yAxis?.categories) : null, f = l && d ? g(c, l, d) : [], m = 0, _ = t.series.map((e, t) => {
196
+ let n = y(e), r = {
197
+ index: t,
198
+ id: e.id ?? String(t),
199
+ name: e.name ?? "",
200
+ hidden: !!e.hidden,
201
+ color: e.color,
202
+ format: e.format
203
+ };
204
+ switch (n) {
205
+ case "surface": {
206
+ let t = e, i = p(t.data);
207
+ return s(o.x, i.extent.x), s(o.y, i.extent.y), s(o.z, i.extent.z), {
208
+ ...r,
209
+ type: n,
210
+ series: t,
211
+ grid: i,
212
+ colorBy: t.colorBy ?? (i.value ? "value" : "z"),
213
+ opacity: b(t.opacity, 1)
214
+ };
215
+ }
216
+ case "bar": {
217
+ let t = e, i = f[m++];
218
+ return s(o.z, i.extent.z), {
219
+ ...r,
220
+ type: n,
221
+ series: t,
222
+ bars: i,
223
+ colorBy: t.colorBy ?? "series",
224
+ opacity: b(t.opacity, 1)
225
+ };
226
+ }
227
+ default: {
228
+ let t = e, i = u(t.data);
229
+ s(o.x, i.extent.x), s(o.y, i.extent.y), s(o.z, i.extent.z);
230
+ let a = {
231
+ ...r,
232
+ cols: i,
233
+ colorBy: t.colorBy ?? (i.value ? "value" : "series"),
234
+ opacity: b(t.opacity, 1)
235
+ };
236
+ return n === "line" ? {
237
+ ...a,
238
+ type: "line",
239
+ series: t
240
+ } : {
241
+ ...a,
242
+ type: "scatter",
243
+ series: t
244
+ };
245
+ }
246
+ }
247
+ }), S = v("x", t.xAxis, o.x, r[0], l ? l.names : null, !1, n), C = v("y", t.yAxis, o.y, r[1], d ? d.names : null, !1, n), w = v("z", t.zAxis, o.z, r[2], null, c.length > 0, n), T = a(), E = !0, D = !1;
248
+ for (let e of _) {
249
+ if (e.hidden || e.colorBy === "series") continue;
250
+ D = !0;
251
+ let t = e.colorBy === "value";
252
+ if (e.type === "surface") {
253
+ let n = t && e.grid.value ? e.grid.extent.value : e.grid.extent.z;
254
+ t && e.grid.value && (E = !1), s(T, n);
255
+ } else if (e.type === "bar") {
256
+ let n = t && e.bars.value ? e.bars.extent.value : e.bars.extent.height;
257
+ t && e.bars.value && (E = !1), s(T, n);
258
+ } else {
259
+ let n = t && e.cols.value ? e.cols.extent.value : e.cols.extent.z;
260
+ t && e.cols.value && (E = !1), s(T, n);
261
+ }
262
+ }
263
+ let O = null;
264
+ return D && (O = t.valueRange ? [t.valueRange[0], t.valueRange[1]] : e(T.min, T.max)), {
265
+ series: _,
266
+ x: S,
267
+ y: C,
268
+ z: w,
269
+ colorDomain: O,
270
+ colorFromZ: E,
271
+ locale: n
272
+ };
273
+ };
274
+ //#endregion
275
+ export { h as CategoryIndex, g as barColumns, x as boxHalf, S as buildModel, u as pointColumns, y as seriesType, p as surfaceGrid, _ as toWorld };
276
+
277
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","names":["emptyExtent","extentOf","values","min","max","count","v","merge","other","target","isColumns","data","pointCache","pointColumns","cached","columns","list","x","y","z","size","value","colors","labels","i","item","tuple","point","result","gridCache","indices","out","surfaceGrid","cols","rows","valid","grid","barDatum","CategoryIndex","categories","name","found","barColumns","positive","negative","series","s","n","xi","yi","z0","z1","source","zExtent","heightExtent","valueExtent","d","cx","xCategories","cy","yCategories","h","key","stack","base","toWorld","axis","buildAxis","o","options","ticks","extent","includeZero","ensureSpan","nMin","nMax","niceDomain","linearTicks","step","tickStep","tick","locale","seriesType","clamp01","fallback","boxHalf","safe","aspect","largest","buildModel","locale3D","half","barSeries","bars","barIndex","models","type","index","common","color","colorFromZ","usesScale","m","byValue","e","colorDomain"],"sources":["../../../../../charts/src/engine/three-d/model.ts"],"sourcesContent":["// Options -> model: data columns (cached per data object), axis domains,\n// ticks and the world mapping of the 3D charts. The box spans\n// [-half, half] on every axis; the largest side is 2 world units.\n\nimport { ensureSpan, linearTicks, niceDomain, tickStep } from \"../scale\";\nimport { locale3D, type Locale3D } from \"./labels\";\nimport type {\n Bar3DDatum,\n Bar3DSeries,\n Chart3DAxisOptions,\n Chart3DColorBy,\n Chart3DColumnData,\n Chart3DOptions,\n Chart3DPoint,\n Chart3DPointData,\n Chart3DSeries,\n Chart3DSeriesType,\n Line3DSeries,\n Scatter3DSeries,\n Surface3DData,\n Surface3DSeries,\n} from \"./types\";\n\nexport type AxisKey = \"x\" | \"y\" | \"z\";\n\nexport interface Extent {\n min: number;\n max: number;\n}\n\nconst emptyExtent = (): Extent => ({ min: Infinity, max: -Infinity });\n\nconst extentOf = (values: ArrayLike<number>, count = values.length) => {\n let min = Infinity;\n let max = -Infinity;\n for (let i = 0; i < count; i++) {\n const v = values[i];\n if (v < min) min = v;\n if (v > max) max = v;\n }\n return { min, max };\n};\n\nconst merge = (target: Extent, other: Extent) => {\n if (other.min < target.min) target.min = other.min;\n if (other.max > target.max) target.max = other.max;\n};\n\n// ------------------------------------------------------------------ points\n\n/** Columns of a scatter / line series */\nexport interface PointColumns {\n count: number;\n x: ArrayLike<number>;\n y: ArrayLike<number>;\n z: ArrayLike<number>;\n size: ArrayLike<number> | null;\n value: ArrayLike<number> | null;\n colors: readonly (string | undefined)[] | null;\n labels: readonly (string | undefined)[] | null;\n extent: Record<AxisKey | \"value\", Extent>;\n}\n\nconst isColumns = (data: Chart3DPointData): data is Chart3DColumnData =>\n !Array.isArray(data) &&\n typeof (data as Chart3DColumnData).x === \"object\" &&\n (data as Chart3DColumnData).x !== null;\n\nconst pointCache = new WeakMap<object, PointColumns>();\n\n/** Columns of points written as objects, tuples or columns (cached per data object) */\nexport const pointColumns = (data: Chart3DPointData): PointColumns => {\n const cached = pointCache.get(data);\n if (cached) return cached;\n let columns: Omit<PointColumns, \"extent\">;\n if (isColumns(data)) {\n const count = Math.min(data.x.length, data.y.length, data.z.length);\n columns = {\n count,\n x: data.x,\n y: data.y,\n z: data.z,\n size: data.size ?? null,\n value: data.value ?? null,\n colors: null,\n labels: data.label ?? null,\n };\n } else {\n const list = data as readonly (\n Chart3DPoint | readonly [number, number, number]\n )[];\n const count = list.length;\n const x = new Float64Array(count);\n const y = new Float64Array(count);\n const z = new Float64Array(count);\n let size: Float32Array | null = null;\n let value: Float64Array | null = null;\n let colors: (string | undefined)[] | null = null;\n let labels: (string | undefined)[] | null = null;\n for (let i = 0; i < count; i++) {\n const item = list[i];\n if (Array.isArray(item)) {\n const tuple = item as readonly [number, number, number];\n x[i] = tuple[0] ?? NaN;\n y[i] = tuple[1] ?? NaN;\n z[i] = tuple[2] ?? NaN;\n continue;\n }\n const point = item as Chart3DPoint;\n x[i] = point.x;\n y[i] = point.y;\n z[i] = point.z;\n if (point.size !== undefined) {\n size ??= new Float32Array(count).fill(NaN);\n size[i] = point.size;\n }\n if (point.value !== undefined) {\n value ??= new Float64Array(count).fill(NaN);\n value[i] = point.value;\n }\n if (point.color !== undefined) {\n colors ??= new Array<string | undefined>(count);\n colors[i] = point.color;\n }\n if (point.label !== undefined) {\n labels ??= new Array<string | undefined>(count);\n labels[i] = point.label;\n }\n }\n columns = { count, x, y, z, size, value, colors, labels };\n }\n const result: PointColumns = {\n ...columns,\n extent: {\n x: extentOf(columns.x, columns.count),\n y: extentOf(columns.y, columns.count),\n z: extentOf(columns.z, columns.count),\n value: columns.value\n ? extentOf(columns.value, columns.count)\n : emptyExtent(),\n },\n };\n pointCache.set(data, result);\n return result;\n};\n\n// ----------------------------------------------------------------- surface\n\n/** A surface grid with its coordinates */\nexport interface SurfaceGrid {\n rows: number;\n cols: number;\n z: ArrayLike<number>;\n x: ArrayLike<number>;\n y: ArrayLike<number>;\n value: ArrayLike<number> | null;\n extent: Record<AxisKey | \"value\", Extent>;\n}\n\nconst gridCache = new WeakMap<object, SurfaceGrid>();\n\nconst indices = (count: number) => {\n const out = new Float64Array(count);\n for (let i = 0; i < count; i++) out[i] = i;\n return out;\n};\n\nexport const surfaceGrid = (data: Surface3DData): SurfaceGrid => {\n const cached = gridCache.get(data);\n if (cached) return cached;\n const cols = Math.max(0, Math.floor(data.cols));\n const rows = Math.max(0, Math.floor(data.rows));\n const valid = rows >= 2 && cols >= 2 && data.z.length >= rows * cols;\n const x = data.x && data.x.length >= cols ? data.x : indices(cols);\n const y = data.y && data.y.length >= rows ? data.y : indices(rows);\n const value =\n data.value && data.value.length >= rows * cols ? data.value : null;\n const grid: SurfaceGrid = {\n rows: valid ? rows : 0,\n cols: valid ? cols : 0,\n z: data.z,\n x,\n y,\n value,\n extent: {\n x: valid ? extentOf(x, cols) : emptyExtent(),\n y: valid ? extentOf(y, rows) : emptyExtent(),\n z: valid ? extentOf(data.z, rows * cols) : emptyExtent(),\n value: valid && value ? extentOf(value, rows * cols) : emptyExtent(),\n },\n };\n gridCache.set(data, grid);\n return grid;\n};\n\n// -------------------------------------------------------------------- bars\n\n/** Bars of a series resolved to category indices */\nexport interface BarColumns {\n count: number;\n /** Category index on x / y */\n xi: Int32Array;\n yi: Int32Array;\n /** Bottom and top of every bar (stacked on the series before) */\n z0: Float64Array;\n z1: Float64Array;\n /** Height of the datum itself */\n z: Float64Array;\n /** Index of the datum in the series data */\n source: Int32Array;\n value: Float64Array | null;\n colors: (string | undefined)[] | null;\n labels: (string | undefined)[] | null;\n /** `z`: bottoms and tops (stacks included), `height`: the heights of the data */\n extent: Record<\"z\" | \"height\" | \"value\", Extent>;\n}\n\ntype BarInput = Bar3DSeries[\"data\"][number];\n\nconst barDatum = (item: BarInput): Bar3DDatum =>\n Array.isArray(item)\n ? {\n x: (\n item as readonly [string | number, string | number, number | null]\n )[0],\n y: (\n item as readonly [string | number, string | number, number | null]\n )[1],\n z: (\n item as readonly [string | number, string | number, number | null]\n )[2],\n }\n : (item as Bar3DDatum);\n\n/** Category axis of the bars: names given by the axis or collected from the data */\nexport class CategoryIndex {\n readonly names: string[];\n private readonly lookup = new Map<string, number>();\n private readonly fixed: boolean;\n\n constructor(categories: readonly string[] | undefined) {\n this.names = categories ? [...categories] : [];\n this.fixed = !!categories;\n this.names.forEach((name, i) => this.lookup.set(name, i));\n }\n\n /** Index of a category name (numbers are indices when the categories are given) */\n index(value: string | number): number {\n if (typeof value === \"number\" && this.fixed) {\n return Number.isInteger(value) && value >= 0 && value < this.names.length\n ? value\n : -1;\n }\n const name = String(value);\n const found = this.lookup.get(name);\n if (found !== undefined) return found;\n if (this.fixed) return -1;\n this.names.push(name);\n this.lookup.set(name, this.names.length - 1);\n return this.names.length - 1;\n }\n}\n\n/** Bars of every bar series, stacked in series order where cells coincide */\nexport const barColumns = (\n series: readonly Bar3DSeries[],\n xCategories: CategoryIndex,\n yCategories: CategoryIndex,\n): BarColumns[] => {\n const positive = new Map<number, number>();\n const negative = new Map<number, number>();\n return series.map((s) => {\n const data = s.data as readonly BarInput[];\n const n = data.length;\n const xi = new Int32Array(n);\n const yi = new Int32Array(n);\n const z0 = new Float64Array(n);\n const z1 = new Float64Array(n);\n const z = new Float64Array(n);\n const source = new Int32Array(n);\n let value: Float64Array | null = null;\n let colors: (string | undefined)[] | null = null;\n let labels: (string | undefined)[] | null = null;\n const zExtent = emptyExtent();\n const heightExtent = emptyExtent();\n const valueExtent = emptyExtent();\n let count = 0;\n for (let i = 0; i < n; i++) {\n const d = barDatum(data[i]);\n const cx = xCategories.index(d.x);\n const cy = yCategories.index(d.y);\n const h = d.z;\n if (cx < 0 || cy < 0 || h === null || !Number.isFinite(h)) continue;\n const key = cy * 1_000_003 + cx;\n const stack = h >= 0 ? positive : negative;\n const base = s.hidden ? 0 : (stack.get(key) ?? 0);\n if (!s.hidden) stack.set(key, base + h);\n xi[count] = cx;\n yi[count] = cy;\n z0[count] = base;\n z1[count] = base + h;\n z[count] = h;\n source[count] = i;\n if (d.value !== undefined) {\n value ??= new Float64Array(n).fill(NaN);\n value[count] = d.value;\n merge(valueExtent, { min: d.value, max: d.value });\n }\n if (d.color !== undefined) {\n colors ??= new Array<string | undefined>(n);\n colors[count] = d.color;\n }\n if (d.label !== undefined) {\n labels ??= new Array<string | undefined>(n);\n labels[count] = d.label;\n }\n merge(zExtent, {\n min: Math.min(base, base + h),\n max: Math.max(base, base + h),\n });\n merge(heightExtent, { min: h, max: h });\n count++;\n }\n return {\n count,\n xi,\n yi,\n z0,\n z1,\n z,\n source,\n value,\n colors,\n labels,\n extent: { z: zExtent, height: heightExtent, value: valueExtent },\n };\n });\n};\n\n// -------------------------------------------------------------------- axes\n\nexport interface AxisModel {\n key: AxisKey;\n title: string;\n /** Category names (category axis) or `null` */\n categories: string[] | null;\n domain: [number, number];\n /** Half extent of the axis in world units */\n half: number;\n ticks: number[];\n labels: string[];\n /** Full label of any value (tooltips) */\n format: (value: number) => string;\n grid: boolean;\n visible: boolean;\n}\n\n/** World coordinate of a data value */\nexport const toWorld = (axis: AxisModel, value: number): number => {\n const [min, max] = axis.domain;\n return (((value - min) / (max - min || 1)) * 2 - 1) * axis.half;\n};\n\n/** Data value of a world coordinate */\nexport const fromWorld = (axis: AxisModel, world: number): number => {\n const [min, max] = axis.domain;\n return min + ((world / axis.half + 1) / 2) * (max - min);\n};\n\nconst buildAxis = (\n key: AxisKey,\n options: Chart3DAxisOptions | undefined,\n extent: Extent,\n half: number,\n categories: string[] | null,\n includeZero: boolean,\n locale: Locale3D,\n): AxisModel => {\n const o = options ?? {};\n const count = Math.max(2, o.tickCount ?? 5);\n if (categories) {\n const n = Math.max(1, categories.length);\n const name = (v: number) => {\n const i = Math.round(v);\n return o.format ? o.format(i) : (categories[i] ?? String(i));\n };\n const ticks = Array.from({ length: categories.length }, (_, i) => i);\n return {\n key,\n title: o.title ?? \"\",\n categories,\n domain: [-0.5, n - 0.5],\n half,\n ticks,\n labels: ticks.map(name),\n format: name,\n grid: o.grid ?? true,\n visible: o.visible ?? true,\n };\n }\n let min = o.min ?? extent.min;\n let max = o.max ?? extent.max;\n if (includeZero && o.min === undefined && min > 0) min = 0;\n if (includeZero && o.max === undefined && max < 0) max = 0;\n [min, max] = ensureSpan(min, max);\n if (o.nice ?? true) {\n const [nMin, nMax] = niceDomain(min, max, count);\n if (o.min === undefined) min = nMin;\n if (o.max === undefined) max = nMax;\n }\n const ticks = linearTicks(min, max, count);\n const step = tickStep(min, max, count);\n const tick =\n o.format ?? locale.ticks(step, Math.max(Math.abs(min), Math.abs(max)));\n return {\n key,\n title: o.title ?? \"\",\n categories: null,\n domain: [min, max],\n half,\n ticks,\n labels: ticks.map(tick),\n format: o.format ?? locale.value,\n grid: o.grid ?? true,\n visible: o.visible ?? true,\n };\n};\n\n// ------------------------------------------------------------------ series\n\nexport const seriesType = (series: Chart3DSeries): Chart3DSeriesType =>\n series.type ?? \"scatter\";\n\ninterface SeriesModelBase {\n index: number;\n id: string;\n name: string;\n hidden: boolean;\n /** Color option (resolved later with the theme) */\n color: string | undefined;\n colorBy: Chart3DColorBy;\n opacity: number;\n format: ((value: number) => string) | undefined;\n}\n\nexport interface ScatterModel extends SeriesModelBase {\n type: \"scatter\";\n series: Scatter3DSeries;\n cols: PointColumns;\n}\n\nexport interface LineModel extends SeriesModelBase {\n type: \"line\";\n series: Line3DSeries;\n cols: PointColumns;\n}\n\nexport interface SurfaceModel extends SeriesModelBase {\n type: \"surface\";\n series: Surface3DSeries;\n grid: SurfaceGrid;\n}\n\nexport interface BarModel extends SeriesModelBase {\n type: \"bar\";\n series: Bar3DSeries;\n bars: BarColumns;\n}\n\nexport type SeriesModel = ScatterModel | LineModel | SurfaceModel | BarModel;\n\nexport interface Model3D {\n series: SeriesModel[];\n x: AxisModel;\n y: AxisModel;\n z: AxisModel;\n /** Range mapped to the color scale; `null` when no visible series uses it */\n colorDomain: [number, number] | null;\n /** Whether the color domain comes from the heights only (the color bar reuses the z format) */\n colorFromZ: boolean;\n /** Texts and number formats of the `locale` / `labels` options */\n locale: Locale3D;\n}\n\nconst clamp01 = (v: number | undefined, fallback: number) =>\n v === undefined || !Number.isFinite(v)\n ? fallback\n : Math.max(0, Math.min(1, v));\n\n/** Half extents of the box: `aspect` scaled so the largest side is 2 */\nexport const boxHalf = (\n aspect: readonly [number, number, number] | undefined,\n): [number, number, number] => {\n const a = aspect ?? [1, 1, 0.7];\n const safe = a.map((v) => (Number.isFinite(v) && v > 0 ? v : 1)) as [\n number,\n number,\n number,\n ];\n const largest = Math.max(safe[0], safe[1], safe[2]);\n return [safe[0] / largest, safe[1] / largest, safe[2] / largest];\n};\n\nexport const buildModel = (\n options: Chart3DOptions,\n locale: Locale3D = locale3D(options.locale, options.labels),\n): Model3D => {\n const half = boxHalf(options.aspect);\n const extent = { x: emptyExtent(), y: emptyExtent(), z: emptyExtent() };\n const barSeries = options.series.filter((s) => seriesType(s) === \"bar\");\n const xCategories =\n barSeries.length || options.xAxis?.categories\n ? new CategoryIndex(options.xAxis?.categories)\n : null;\n const yCategories =\n barSeries.length || options.yAxis?.categories\n ? new CategoryIndex(options.yAxis?.categories)\n : null;\n const bars =\n xCategories && yCategories\n ? barColumns(barSeries as Bar3DSeries[], xCategories, yCategories)\n : [];\n let barIndex = 0;\n\n const models: SeriesModel[] = options.series.map((series, index) => {\n const type = seriesType(series);\n const base = {\n index,\n id: series.id ?? String(index),\n name: series.name ?? \"\",\n hidden: !!series.hidden,\n color: series.color,\n format: series.format,\n };\n switch (type) {\n case \"surface\": {\n const s = series as Surface3DSeries;\n const grid = surfaceGrid(s.data);\n merge(extent.x, grid.extent.x);\n merge(extent.y, grid.extent.y);\n merge(extent.z, grid.extent.z);\n return {\n ...base,\n type,\n series: s,\n grid,\n colorBy: s.colorBy ?? (grid.value ? \"value\" : \"z\"),\n opacity: clamp01(s.opacity, 1),\n };\n }\n case \"bar\": {\n const s = series as Bar3DSeries;\n const columns = bars[barIndex++]!;\n merge(extent.z, columns.extent.z);\n return {\n ...base,\n type,\n series: s,\n bars: columns,\n colorBy: s.colorBy ?? \"series\",\n opacity: clamp01(s.opacity, 1),\n };\n }\n default: {\n const s = series as Scatter3DSeries | Line3DSeries;\n const cols = pointColumns(s.data);\n merge(extent.x, cols.extent.x);\n merge(extent.y, cols.extent.y);\n merge(extent.z, cols.extent.z);\n const common = {\n ...base,\n cols,\n colorBy: s.colorBy ?? (cols.value ? \"value\" : \"series\"),\n opacity: clamp01(s.opacity, 1),\n } as const;\n return type === \"line\"\n ? { ...common, type: \"line\", series: s as Line3DSeries }\n : { ...common, type: \"scatter\", series: s as Scatter3DSeries };\n }\n }\n });\n\n const x = buildAxis(\n \"x\",\n options.xAxis,\n extent.x,\n half[0],\n xCategories ? xCategories.names : null,\n false,\n locale,\n );\n const y = buildAxis(\n \"y\",\n options.yAxis,\n extent.y,\n half[1],\n yCategories ? yCategories.names : null,\n false,\n locale,\n );\n const z = buildAxis(\n \"z\",\n options.zAxis,\n extent.z,\n half[2],\n null,\n barSeries.length > 0,\n locale,\n );\n\n // color domain: the colored quantity of every visible series using the scale\n const color = emptyExtent();\n let colorFromZ = true;\n let usesScale = false;\n for (const m of models) {\n if (m.hidden || m.colorBy === \"series\") continue;\n usesScale = true;\n const byValue = m.colorBy === \"value\";\n if (m.type === \"surface\") {\n const e = byValue && m.grid.value ? m.grid.extent.value : m.grid.extent.z;\n if (byValue && m.grid.value) colorFromZ = false;\n merge(color, e);\n } else if (m.type === \"bar\") {\n const e =\n byValue && m.bars.value ? m.bars.extent.value : m.bars.extent.height;\n if (byValue && m.bars.value) colorFromZ = false;\n merge(color, e);\n } else {\n const e = byValue && m.cols.value ? m.cols.extent.value : m.cols.extent.z;\n if (byValue && m.cols.value) colorFromZ = false;\n merge(color, e);\n }\n }\n let colorDomain: [number, number] | null = null;\n if (usesScale) {\n colorDomain = options.valueRange\n ? [options.valueRange[0], options.valueRange[1]]\n : ensureSpan(color.min, color.max);\n }\n return { series: models, x, y, z, colorDomain, colorFromZ, locale };\n};\n"],"mappings":";;;AA8BA,IAAMA,WAA6B;CAAE,KAAK;CAAU,KAAK;AAAU,IAE7DC,KAAY,GAA2B,IAAQC,EAAO,WAAW;CACrE,IAAIC,IAAM,UACNC,IAAM;CACV,KAAK,IAAI,IAAI,GAAG,IAAIC,GAAO,KAAK;EAC9B,IAAMC,IAAIJ,EAAO;EAEjB,AADII,IAAIH,MAAK,IAAMG,IACfA,IAAIF,MAAK,IAAME;CACrB;CACA,OAAO;EAAE;EAAK;CAAI;AACpB,GAEMC,KAAS,GAAgB,MAAkB;CAE/C,AADIC,EAAM,MAAMC,EAAO,QAAK,EAAO,MAAMD,EAAM,MAC3CA,EAAM,MAAMC,EAAO,QAAK,EAAO,MAAMD,EAAM;AACjD,GAiBME,KAAa,MACjB,CAAC,MAAM,QAAQC,CAAI,KACnB,OAAQA,EAA2B,KAAM,YACxCA,EAA2B,MAAM,MAE9BC,oBAAa,IAAI,QAA8B,GAGxCC,KAAgB,MAAyC;CACpE,IAAMC,IAASF,EAAW,IAAID,CAAI;CAClC,IAAIG,GAAQ,OAAOA;CACnB,IAAIC;CACJ,IAAIL,EAAUC,CAAI,GAEhB,IAAU;EACR,OAFY,KAAK,IAAIA,EAAK,EAAE,QAAQA,EAAK,EAAE,QAAQA,EAAK,EAAE,MAE1D;EACA,GAAGA,EAAK;EACR,GAAGA,EAAK;EACR,GAAGA,EAAK;EACR,MAAMA,EAAK,QAAQ;EACnB,OAAOA,EAAK,SAAS;EACrB,QAAQ;EACR,QAAQA,EAAK,SAAS;CACxB;MACK;EACL,IAAMK,IAAOL,GAGPN,IAAQW,EAAK,QACbC,IAAI,IAAI,aAAaZ,CAAK,GAC1Ba,IAAI,IAAI,aAAab,CAAK,GAC1Bc,IAAI,IAAI,aAAad,CAAK,GAC5Be,IAA4B,MAC5BC,IAA6B,MAC7BC,IAAwC,MACxCC,IAAwC;EAC5C,KAAK,IAAIC,IAAI,GAAGA,IAAInB,GAAO,KAAK;GAC9B,IAAMoB,IAAOT,EAAKQ;GAClB,IAAI,MAAM,QAAQC,CAAI,GAAG;IACvB,IAAMC,IAAQD;IAGd,AAFA,EAAED,KAAKE,EAAM,MAAM,KACnB,EAAEF,KAAKE,EAAM,MAAM,KACnB,EAAEF,KAAKE,EAAM,MAAM;IACnB;GACF;GACA,IAAMC,IAAQF;GAgBd,AAfA,EAAED,KAAKG,EAAM,GACb,EAAEH,KAAKG,EAAM,GACb,EAAEH,KAAKG,EAAM,GACTA,EAAM,SAAS,KAAA,MACjBP,MAAA,IAAS,IAAI,aAAaf,CAAK,CAAC,CAAC,KAAK,GAAG,IACzC,EAAKmB,KAAKG,EAAM,OAEdA,EAAM,UAAU,KAAA,MAClBN,MAAA,IAAU,IAAI,aAAahB,CAAK,CAAC,CAAC,KAAK,GAAG,IAC1C,EAAMmB,KAAKG,EAAM,QAEfA,EAAM,UAAU,KAAA,MAClBL,MAAA,IAAe,MAA0BjB,CAAK,IAC9C,EAAOmB,KAAKG,EAAM,QAEhBA,EAAM,UAAU,KAAA,MAClBJ,MAAA,IAAe,MAA0BlB,CAAK,IAC9C,EAAOmB,KAAKG,EAAM;EAEtB;EACA,IAAU;GAAE;GAAO;GAAG;GAAG;GAAG;GAAM;GAAO;GAAQ;EAAO;CAC1D;CACA,IAAMC,IAAuB;EAC3B,GAAGb;EACH,QAAQ;GACN,GAAGd,EAASc,EAAQ,GAAGA,EAAQ,KAAK;GACpC,GAAGd,EAASc,EAAQ,GAAGA,EAAQ,KAAK;GACpC,GAAGd,EAASc,EAAQ,GAAGA,EAAQ,KAAK;GACpC,OAAOA,EAAQ,QACXd,EAASc,EAAQ,OAAOA,EAAQ,KAAK,IACrCf,EAAY;EAClB;CACF;CAEA,OADAY,EAAW,IAAID,GAAMiB,CAAM,GACpBA;AACT,GAeMC,oBAAY,IAAI,QAA6B,GAE7CC,KAAW,MAAkB;CACjC,IAAMC,IAAM,IAAI,aAAa1B,CAAK;CAClC,KAAK,IAAImB,IAAI,GAAGA,IAAInB,GAAO,KAAK,EAAImB,KAAKA;CACzC,OAAOO;AACT,GAEaC,KAAe,MAAqC;CAC/D,IAAMlB,IAASe,EAAU,IAAIlB,CAAI;CACjC,IAAIG,GAAQ,OAAOA;CACnB,IAAMmB,IAAO,KAAK,IAAI,GAAG,KAAK,MAAMtB,EAAK,IAAI,CAAC,GACxCuB,IAAO,KAAK,IAAI,GAAG,KAAK,MAAMvB,EAAK,IAAI,CAAC,GACxCwB,IAAQD,KAAQ,KAAKD,KAAQ,KAAKtB,EAAK,EAAE,UAAUuB,IAAOD,GAC1DhB,IAAIN,EAAK,KAAKA,EAAK,EAAE,UAAUsB,IAAOtB,EAAK,IAAImB,EAAQG,CAAI,GAC3Df,IAAIP,EAAK,KAAKA,EAAK,EAAE,UAAUuB,IAAOvB,EAAK,IAAImB,EAAQI,CAAI,GAC3Db,IACJV,EAAK,SAASA,EAAK,MAAM,UAAUuB,IAAOD,IAAOtB,EAAK,QAAQ,MAC1DyB,IAAoB;EACxB,MAAMD,IAAQD,IAAO;EACrB,MAAMC,IAAQF,IAAO;EACrB,GAAGtB,EAAK;EACR;EACA;EACA;EACA,QAAQ;GACN,GAAGwB,IAAQlC,EAASgB,GAAGgB,CAAI,IAAIjC,EAAY;GAC3C,GAAGmC,IAAQlC,EAASiB,GAAGgB,CAAI,IAAIlC,EAAY;GAC3C,GAAGmC,IAAQlC,EAASU,EAAK,GAAGuB,IAAOD,CAAI,IAAIjC,EAAY;GACvD,OAAOmC,KAASd,IAAQpB,EAASoB,GAAOa,IAAOD,CAAI,IAAIjC,EAAY;EACrE;CACF;CAEA,OADA6B,EAAU,IAAIlB,GAAMyB,CAAI,GACjBA;AACT,GA0BMC,KAAY,MAChB,MAAM,QAAQZ,CAAI,IACd;CACE,GACEA,EACA;CACF,GACEA,EACA;CACF,GACEA,EACA;AACJ,IACCA,GAGMa,IAAb,MAA2B;CAKzB,YAAY,GAA2C;EAGrD,AANwB,KAAA,yBAAA,IAAI,IAAoB,GAIhD,KAAK,QAAQC,IAAa,CAAC,GAAGA,CAAU,IAAI,CAAC,GAC7C,KAAK,QAAQ,CAAC,CAACA,GACf,KAAK,MAAM,SAAS,GAAM,MAAM,KAAK,OAAO,IAAIC,GAAMhB,CAAC,CAAC;CAC1D;CAGA,MAAM,GAAgC;EACpC,IAAI,OAAOH,KAAU,YAAY,KAAK,OACpC,OAAO,OAAO,UAAUA,CAAK,KAAKA,KAAS,KAAKA,IAAQ,KAAK,MAAM,SAC/DA,IACA;EAEN,IAAMmB,IAAO,OAAOnB,CAAK,GACnBoB,IAAQ,KAAK,OAAO,IAAID,CAAI;EAKlC,OAJIC,MAAU,KAAA,IACV,KAAK,QAAc,MACvB,KAAK,MAAM,KAAKD,CAAI,GACpB,KAAK,OAAO,IAAIA,GAAM,KAAK,MAAM,SAAS,CAAC,GACpC,KAAK,MAAM,SAAS,KAJKC;CAKlC;AACF,GAGaC,KACX,GACA,GACA,MACiB;CACjB,IAAMC,oBAAW,IAAI,IAAoB,GACnCC,oBAAW,IAAI,IAAoB;CACzC,OAAOC,EAAO,KAAK,MAAM;EACvB,IAAMlC,IAAOmC,EAAE,MACTC,IAAIpC,EAAK,QACTqC,IAAK,IAAI,WAAWD,CAAC,GACrBE,IAAK,IAAI,WAAWF,CAAC,GACrBG,IAAK,IAAI,aAAaH,CAAC,GACvBI,IAAK,IAAI,aAAaJ,CAAC,GACvB5B,IAAI,IAAI,aAAa4B,CAAC,GACtBK,IAAS,IAAI,WAAWL,CAAC,GAC3B1B,IAA6B,MAC7BC,IAAwC,MACxCC,IAAwC,MACtC8B,IAAUrD,EAAY,GACtBsD,IAAetD,EAAY,GAC3BuD,IAAcvD,EAAY,GAC5BK,IAAQ;EACZ,KAAK,IAAImB,IAAI,GAAGA,IAAIuB,GAAG,KAAK;GAC1B,IAAMS,IAAInB,EAAS1B,EAAKa,EAAE,GACpBiC,IAAKC,EAAY,MAAMF,EAAE,CAAC,GAC1BG,IAAKC,EAAY,MAAMJ,EAAE,CAAC,GAC1BK,IAAIL,EAAE;GACZ,IAAIC,IAAK,KAAKE,IAAK,KAAKE,MAAM,QAAQ,CAAC,OAAO,SAASA,CAAC,GAAG;GAC3D,IAAMC,IAAMH,IAAK,UAAYF,GACvBM,IAAQF,KAAK,IAAIlB,IAAWC,GAC5BoB,IAAOlB,EAAE,SAAS,IAAKiB,EAAM,IAAID,CAAG,KAAK;GA0B/C,AAzBKhB,EAAE,UAAQiB,EAAM,IAAID,GAAKE,IAAOH,CAAC,GACtC,EAAGxD,KAASoD,GACZ,EAAGpD,KAASsD,GACZ,EAAGtD,KAAS2D,GACZ,EAAG3D,KAAS2D,IAAOH,GACnB,EAAExD,KAASwD,GACX,EAAOxD,KAASmB,GACZgC,EAAE,UAAU,KAAA,MACdnC,MAAA,IAAU,IAAI,aAAa0B,CAAC,CAAC,CAAC,KAAK,GAAG,IACtC,EAAM1C,KAASmD,EAAE,OACjBjD,EAAMgD,GAAa;IAAE,KAAKC,EAAE;IAAO,KAAKA,EAAE;GAAM,CAAC,IAE/CA,EAAE,UAAU,KAAA,MACdlC,MAAA,IAAe,MAA0ByB,CAAC,IAC1C,EAAO1C,KAASmD,EAAE,QAEhBA,EAAE,UAAU,KAAA,MACdjC,MAAA,IAAe,MAA0BwB,CAAC,IAC1C,EAAO1C,KAASmD,EAAE,QAEpBjD,EAAM8C,GAAS;IACb,KAAK,KAAK,IAAIW,GAAMA,IAAOH,CAAC;IAC5B,KAAK,KAAK,IAAIG,GAAMA,IAAOH,CAAC;GAC9B,CAAC,GACDtD,EAAM+C,GAAc;IAAE,KAAKO;IAAG,KAAKA;GAAE,CAAC,GACtC;EACF;EACA,OAAO;GACL;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,QAAQ;IAAE,GAAGR;IAAS,QAAQC;IAAc,OAAOC;GAAY;EACjE;CACF,CAAC;AACH,GAqBaU,KAAW,GAAiB,MAA0B;CACjE,IAAM,CAAC9D,GAAKC,KAAO8D,EAAK;CACxB,SAAU7C,IAAQlB,MAAQC,IAAMD,KAAO,KAAM,IAAI,KAAK+D,EAAK;AAC7D,GAQMC,KACJ,GACA,GACA,GACA,GACA,GACA,GACA,MACc;CACd,IAAMC,IAAIC,KAAW,CAAC,GAChBhE,IAAQ,KAAK,IAAI,GAAG+D,EAAE,aAAa,CAAC;CAC1C,IAAI7B,GAAY;EACd,IAAMQ,IAAI,KAAK,IAAI,GAAGR,EAAW,MAAM,GACjCC,KAAQ,MAAc;GAC1B,IAAMhB,IAAI,KAAK,MAAMlB,CAAC;GACtB,OAAO8D,EAAE,SAASA,EAAE,OAAO5C,CAAC,IAAKe,EAAWf,MAAM,OAAOA,CAAC;EAC5D,GACM8C,IAAQ,MAAM,KAAK,EAAE,QAAQ/B,EAAW,OAAO,IAAI,GAAG,MAAMf,CAAC;EACnE,OAAO;GACL;GACA,OAAO4C,EAAE,SAAS;GAClB;GACA,QAAQ,CAAC,KAAMrB,IAAI,EAAG;GACtB;GACA;GACA,QAAQuB,EAAM,IAAI9B,CAAI;GACtB,QAAQA;GACR,MAAM4B,EAAE,QAAQ;GAChB,SAASA,EAAE,WAAW;EACxB;CACF;CACA,IAAIjE,IAAMiE,EAAE,OAAOG,EAAO,KACtBnE,IAAMgE,EAAE,OAAOG,EAAO;CAI1B,IAHIC,KAAeJ,EAAE,QAAQ,KAAA,KAAajE,IAAM,MAAG,IAAM,IACrDqE,KAAeJ,EAAE,QAAQ,KAAA,KAAahE,IAAM,MAAG,IAAM,IACzD,CAACD,GAAKC,KAAOqE,EAAWtE,GAAKC,CAAG,GAC5BgE,EAAE,QAAQ,IAAM;EAClB,IAAM,CAACM,GAAMC,KAAQC,EAAWzE,GAAKC,GAAKC,CAAK;EAE/C,AADI+D,EAAE,QAAQ,KAAA,MAAW,IAAMM,IAC3BN,EAAE,QAAQ,KAAA,MAAW,IAAMO;CACjC;CACA,IAAML,IAAQO,EAAY1E,GAAKC,GAAKC,CAAK,GACnCyE,IAAOC,EAAS5E,GAAKC,GAAKC,CAAK,GAC/B2E,IACJZ,EAAE,UAAUa,EAAO,MAAMH,GAAM,KAAK,IAAI,KAAK,IAAI3E,CAAG,GAAG,KAAK,IAAIC,CAAG,CAAC,CAAC;CACvE,OAAO;EACL;EACA,OAAOgE,EAAE,SAAS;EAClB,YAAY;EACZ,QAAQ,CAACjE,GAAKC,CAAG;EACjB;EACA;EACA,QAAQkE,EAAM,IAAIU,CAAI;EACtB,QAAQZ,EAAE,UAAUa,EAAO;EAC3B,MAAMb,EAAE,QAAQ;EAChB,SAASA,EAAE,WAAW;CACxB;AACF,GAIac,KAAc,MACzBrC,EAAO,QAAQ,WAqDXsC,KAAW,GAAuB,MACtC7E,MAAM,KAAA,KAAa,CAAC,OAAO,SAASA,CAAC,IACjC8E,IACA,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG9E,CAAC,CAAC,GAGnB+E,KACX,MAC6B;CAE7B,IAAMC,KADIC,KAAU;EAAC;EAAG;EAAG;CAAG,EAAA,CACf,KAAK,MAAO,OAAO,SAASjF,CAAC,KAAKA,IAAI,IAAIA,IAAI,CAAE,GAKzDkF,IAAU,KAAK,IAAIF,EAAK,IAAIA,EAAK,IAAIA,EAAK,EAAE;CAClD,OAAO;EAACA,EAAK,KAAKE;EAASF,EAAK,KAAKE;EAASF,EAAK,KAAKE;CAAO;AACjE,GAEaC,KACX,GACA,IAAmBC,EAASrB,EAAQ,QAAQA,EAAQ,MAAM,MAC9C;CACZ,IAAMsB,IAAON,EAAQhB,EAAQ,MAAM,GAC7BE,IAAS;EAAE,GAAGvE,EAAY;EAAG,GAAGA,EAAY;EAAG,GAAGA,EAAY;CAAE,GAChE4F,IAAYvB,EAAQ,OAAO,QAAQ,MAAMa,EAAWpC,CAAC,MAAM,KAAK,GAChEY,IACJkC,EAAU,UAAUvB,EAAQ,OAAO,aAC/B,IAAI/B,EAAc+B,EAAQ,OAAO,UAAU,IAC3C,MACAT,IACJgC,EAAU,UAAUvB,EAAQ,OAAO,aAC/B,IAAI/B,EAAc+B,EAAQ,OAAO,UAAU,IAC3C,MACAwB,IACJnC,KAAeE,IACXlB,EAAWkD,GAA4BlC,GAAaE,CAAW,IAC/D,CAAC,GACHkC,IAAW,GAETC,IAAwB1B,EAAQ,OAAO,KAAK,GAAQ,MAAU;EAClE,IAAM2B,IAAOd,EAAWrC,CAAM,GACxBmB,IAAO;GACX;GACA,IAAInB,EAAO,MAAM,OAAOoD,CAAK;GAC7B,MAAMpD,EAAO,QAAQ;GACrB,QAAQ,CAAC,CAACA,EAAO;GACjB,OAAOA,EAAO;GACd,QAAQA,EAAO;EACjB;EACA,QAAQmD,GAAR;GACE,KAAK,WAAW;IACd,IAAMlD,IAAID,GACJT,IAAOJ,EAAYc,EAAE,IAAI;IAI/B,OAHAvC,EAAMgE,EAAO,GAAGnC,EAAK,OAAO,CAAC,GAC7B7B,EAAMgE,EAAO,GAAGnC,EAAK,OAAO,CAAC,GAC7B7B,EAAMgE,EAAO,GAAGnC,EAAK,OAAO,CAAC,GACtB;KACL,GAAG4B;KACH;KACA,QAAQlB;KACR;KACA,SAASA,EAAE,YAAYV,EAAK,QAAQ,UAAU;KAC9C,SAAS+C,EAAQrC,EAAE,SAAS,CAAC;IAC/B;GACF;GACA,KAAK,OAAO;IACV,IAAMA,IAAID,GACJ9B,IAAU8E,EAAK;IAErB,OADAtF,EAAMgE,EAAO,GAAGxD,EAAQ,OAAO,CAAC,GACzB;KACL,GAAGiD;KACH;KACA,QAAQlB;KACR,MAAM/B;KACN,SAAS+B,EAAE,WAAW;KACtB,SAASqC,EAAQrC,EAAE,SAAS,CAAC;IAC/B;GACF;GACA,SAAS;IACP,IAAMA,IAAID,GACJZ,IAAOpB,EAAaiC,EAAE,IAAI;IAGhC,AAFAvC,EAAMgE,EAAO,GAAGtC,EAAK,OAAO,CAAC,GAC7B1B,EAAMgE,EAAO,GAAGtC,EAAK,OAAO,CAAC,GAC7B1B,EAAMgE,EAAO,GAAGtC,EAAK,OAAO,CAAC;IAC7B,IAAMiE,IAAS;KACb,GAAGlC;KACH;KACA,SAASlB,EAAE,YAAYb,EAAK,QAAQ,UAAU;KAC9C,SAASkD,EAAQrC,EAAE,SAAS,CAAC;IAC/B;IACA,OAAOkD,MAAS,SACZ;KAAE,GAAGE;KAAQ,MAAM;KAAQ,QAAQpD;IAAkB,IACrD;KAAE,GAAGoD;KAAQ,MAAM;KAAW,QAAQpD;IAAqB;GACjE;EACF;CACF,CAAC,GAEK7B,IAAIkD,EACR,KACAE,EAAQ,OACRE,EAAO,GACPoB,EAAK,IACLjC,IAAcA,EAAY,QAAQ,MAClC,IACAuB,CACF,GACM/D,IAAIiD,EACR,KACAE,EAAQ,OACRE,EAAO,GACPoB,EAAK,IACL/B,IAAcA,EAAY,QAAQ,MAClC,IACAqB,CACF,GACM9D,IAAIgD,EACR,KACAE,EAAQ,OACRE,EAAO,GACPoB,EAAK,IACL,MACAC,EAAU,SAAS,GACnBX,CACF,GAGMkB,IAAQnG,EAAY,GACtBoG,IAAa,IACbC,IAAY;CAChB,KAAK,IAAMC,KAAKP,GAAQ;EACtB,IAAIO,EAAE,UAAUA,EAAE,YAAY,UAAU;EACxC,IAAY;EACZ,IAAMC,IAAUD,EAAE,YAAY;EAC9B,IAAIA,EAAE,SAAS,WAAW;GACxB,IAAME,IAAID,KAAWD,EAAE,KAAK,QAAQA,EAAE,KAAK,OAAO,QAAQA,EAAE,KAAK,OAAO;GAExE,AADIC,KAAWD,EAAE,KAAK,UAAO,IAAa,KAC1C/F,EAAM4F,GAAOK,CAAC;EAChB,OAAO,IAAIF,EAAE,SAAS,OAAO;GAC3B,IAAME,IACJD,KAAWD,EAAE,KAAK,QAAQA,EAAE,KAAK,OAAO,QAAQA,EAAE,KAAK,OAAO;GAEhE,AADIC,KAAWD,EAAE,KAAK,UAAO,IAAa,KAC1C/F,EAAM4F,GAAOK,CAAC;EAChB,OAAO;GACL,IAAMA,IAAID,KAAWD,EAAE,KAAK,QAAQA,EAAE,KAAK,OAAO,QAAQA,EAAE,KAAK,OAAO;GAExE,AADIC,KAAWD,EAAE,KAAK,UAAO,IAAa,KAC1C/F,EAAM4F,GAAOK,CAAC;EAChB;CACF;CACA,IAAIC,IAAuC;CAM3C,OALIJ,MACF,IAAchC,EAAQ,aAClB,CAACA,EAAQ,WAAW,IAAIA,EAAQ,WAAW,EAAE,IAC7CI,EAAW0B,EAAM,KAAKA,EAAM,GAAG,IAE9B;EAAE,QAAQJ;EAAQ;EAAG;EAAG;EAAG;EAAa;EAAY;CAAO;AACpE"}
@@ -0,0 +1,2 @@
1
+ const e=require("../color.cjs"),t=require("../scale.cjs"),n=require("./model.cjs"),r=require("./math.cjs");var i=(t,n)=>({text:e.toCss(t.text),muted:e.toCss(t.textMuted),grid:e.toCss(t.grid),axis:e.toCss(t.axis),wall:e.toCss(t.text,n?.045:.025),background:e.toCss(t.background),font:t.fontFamily,fontSize:t.fontSize}),a=[`x`,`y`,`z`],o=e=>{if(e.categories){let t=[];for(let r=0;r<e.categories.length-1;r++)t.push(n.toWorld(e,r+.5));return t}return e.ticks.filter(t=>t>e.domain[0]&&t<e.domain[1]).map(t=>n.toWorld(e,t))},s=e=>[e.eye[0]>=0?-1:1,e.eye[1]>=0?-1:1,e.eye[2]>=0?-1:1],c=e=>[e.x.half,e.y.half,e.z.half],l=(e,t,n)=>{let r=[n[0],n[1],n[2]];return r[e]=t,r},u=(e,t,n,i)=>{let u=c(n),d=s(t),f=e=>r.project(t,e[0],e[1],e[2]);e.lineWidth=1;for(let t=0;t<3;t++){let r=(t+1)%3,s=(t+2)%3,c=[0,0,0];c[t]=d[t]*u[t];let p=(e,t)=>{let n=[c[0],c[1],c[2]];return n[r]=e*u[r],n[s]=t*u[s],f(n)},m=[p(-1,-1),p(1,-1),p(1,1),p(-1,1)];e.beginPath(),m.forEach((t,n)=>n?e.lineTo(t.x,t.y):e.moveTo(t.x,t.y)),e.closePath(),e.fillStyle=i.wall,e.fill(),e.beginPath();for(let[t,i]of[[r,s],[s,r]]){let r=n[a[t]];if(r.grid)for(let n of o(r)){let r=l(t,n,c),a=l(t,n,c);r[i]=-u[i],a[i]=u[i];let o=f(r),s=f(a);e.moveTo(o.x,o.y),e.lineTo(s.x,s.y)}}e.strokeStyle=i.grid,e.stroke(),e.beginPath(),m.forEach((t,n)=>n?e.lineTo(t.x,t.y):e.moveTo(t.x,t.y)),e.closePath(),e.strokeStyle=i.axis,e.stroke()}},d=(e,t,n=2)=>e.x<t.x+t.w+n&&t.x<e.x+e.w+n&&e.y<t.y+t.h+n&&t.y<e.y+e.h+n,f=(e,t,n)=>{let i=c(t),a=e.eye;if(n===0)return[0,(a[1]>=0?1:-1)*i[1],-i[2]];if(n===1)return[(a[0]>=0?1:-1)*i[0],0,-i[2]];let o=[-i[0],-i[1],0],s=1/0;for(let t of[-1,1])for(let n of[-1,1]){let a=r.project(e,t*i[0],n*i[1],0);a.x<s&&(s=a.x,o=[t*i[0],n*i[1],0])}return o},p=(e,t,i,o,s={left:0,top:0,right:t.width,bottom:t.height})=>{let c=r.project(t,0,0,0),u=[],p=o.fontSize,m=`${p}px ${o.font}`,h=`600 ${p+1}px ${o.font}`;for(let g=0;g<3;g++){let _=i[a[g]];if(!_.visible)continue;let v=f(t,i,g),y=r.project(t,...l(g,-_.half,v)),b=r.project(t,...l(g,_.half,v)),x=b.x-y.x,S=b.y-y.y,C=Math.hypot(x,S);if(C<24)continue;x/=C,S/=C;let w=-S,T=x,E=(y.x+b.x)/2,D=(y.y+b.y)/2;w*(E-c.x)+T*(D-c.y)<0&&(w=-w,T=-T),g===2&&(w=E<c.x?-1:1,T=0);let O=w>.35?`left`:w<-.35?`right`:`center`,k=T>.35?`top`:T<-.35?`bottom`:`middle`;e.font=m,e.textAlign=O,e.textBaseline=k;let A=_.ticks.map((i,a)=>{let o=r.project(t,...l(g,n.toWorld(_,i),v)),s=_.labels[a]??``,c=e.measureText(s).width,u=o.x+w*8,d=o.y+T*8;return{tick:o,text:s,x:u,y:d,rect:{x:O===`left`?u:O===`right`?u-c:u-c/2,y:k===`top`?d:k===`bottom`?d-p:d-p/2,w:c,h:p}}}),j=1;for(;j<A.length;j++){let e=A.filter((e,t)=>t%j===0);if(e.every((t,n)=>!e.slice(0,n).some(e=>d(t.rect,e.rect))))break}let M=0;if(e.beginPath(),A.forEach((t,n)=>{n%j||u.some(e=>d(t.rect,e))||(u.push(t.rect),e.moveTo(t.tick.x,t.tick.y),e.lineTo(t.tick.x+w*4,t.tick.y+T*4),M=Math.max(M,Math.abs(w)*t.rect.w+Math.abs(T)*t.rect.h))}),e.strokeStyle=o.axis,e.lineWidth=1,e.stroke(),e.fillStyle=o.muted,A.forEach((t,n)=>{n%j||!u.includes(t.rect)||e.fillText(t.text,t.x,t.y)}),!_.title)continue;let N=8+M+10,P=E+w*N,F=D+T*N;e.font=h,e.fillStyle=o.text;let I=e.measureText(_.title).width,L=p+1;if(g===2)P=Math.max(s.left+L,Math.min(s.right-L,P)),F=Math.max(s.top+I/2,Math.min(s.bottom-I/2,F)),e.save(),e.translate(P,F),e.rotate(-Math.PI/2),e.textAlign=`center`,e.textBaseline=w<0?`bottom`:`top`,e.fillText(_.title,0,0),e.restore();else{let t=O===`left`?P:O===`right`?P-I:P-I/2,n=k===`top`?F:k===`bottom`?F-L:F-L/2;P+=Math.max(0,s.left-t)-Math.max(0,t+I-s.right),F+=Math.max(0,s.top-n)-Math.max(0,n+L-s.bottom),e.textAlign=O,e.textBaseline=k,e.fillText(_.title,P,F)}}},m=(n,r,i,a,o,s,c,l=1/0)=>{let u=n.createLinearGradient(0,r.y+r.h,0,r.y);for(let t=0;t<=24;t++){let n=i.rgba[Math.round(t/24*(i.rgba.length-1))];n&&u.addColorStop(t/24,e.toCss(n))}n.fillStyle=u,n.beginPath(),typeof n.roundRect==`function`?n.roundRect(r.x,r.y,r.w,r.h,3):n.rect(r.x,r.y,r.w,r.h),n.fill(),n.strokeStyle=c.axis,n.lineWidth=1,n.stroke();let[d,f]=a,p=f-d||1;n.font=`${c.fontSize}px ${c.font}`,n.fillStyle=c.muted,n.textAlign=`left`,n.textBaseline=`middle`;let m=t.linearTicks(d,f,Math.max(2,Math.round(r.h/40)));n.beginPath();for(let e of m){let t=r.y+r.h-(e-d)/p*r.h;t<r.y-.5||t>r.y+r.h+.5||(n.moveTo(r.x+r.w,t),n.lineTo(r.x+r.w+4,t),n.fillText(o(e),r.x+r.w+7,t))}if(n.strokeStyle=c.axis,n.stroke(),s){n.font=`600 ${c.fontSize}px ${c.font}`,n.fillStyle=c.text,n.textAlign=`left`,n.textBaseline=`bottom`;let e=n.measureText(s).width;n.fillText(s,Math.max(4,Math.min(r.x,l-4-e)),r.y-8)}},h=(e,t,n,i,a)=>{if(e.save(),i.kind===`point`)e.beginPath(),e.arc(i.x,i.y,i.radius+3,0,Math.PI*2),e.lineWidth=3,e.strokeStyle=a.background,e.stroke(),e.lineWidth=1.5,e.strokeStyle=a.text,e.stroke();else if(i.kind===`box`){let{min:n,max:o}=i,s=e=>r.project(t,e&1?o[0]:n[0],e&2?o[1]:n[1],e&4?o[2]:n[2]),c=Array.from({length:8},(e,t)=>s(t));e.beginPath();for(let t=0;t<8;t++)for(let n of[1,2,4]){if(t&n)continue;let r=c[t],i=c[t|n];e.moveTo(r.x,r.y),e.lineTo(i.x,i.y)}e.lineJoin=`round`,e.lineWidth=3.5,e.strokeStyle=a.background,e.stroke(),e.lineWidth=1.5,e.strokeStyle=a.text,e.stroke()}else{let[o,s,c]=i.world,l=r.project(t,o,s,c),u=r.project(t,o,s,-n.z.half);e.beginPath(),e.setLineDash([3,3]),e.moveTo(l.x,l.y),e.lineTo(u.x,u.y),e.lineWidth=1,e.strokeStyle=a.text,e.stroke(),e.setLineDash([]),e.beginPath(),e.arc(u.x,u.y,2.5,0,Math.PI*2),e.fillStyle=a.text,e.fill(),e.beginPath(),e.arc(l.x,l.y,5,0,Math.PI*2),e.fillStyle=i.color,e.fill(),e.lineWidth=2,e.strokeStyle=a.background,e.stroke(),e.beginPath(),e.arc(l.x,l.y,7,0,Math.PI*2),e.lineWidth=1.25,e.strokeStyle=a.text,e.stroke()}e.restore()};exports.drawAxes=p,exports.drawColorBar=m,exports.drawHighlight=h,exports.drawWalls=u,exports.farWalls=s,exports.gridPositions=o,exports.labelEdge=f,exports.overlayStyle=i;
2
+ //# sourceMappingURL=overlay.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overlay.cjs","names":["toCss","toWorld","project","linearTicks","require_color","require_scale","require_model","require_math","overlayStyle","theme","dark","AXES","gridPositions","axis","out","i","farWalls","frame","half","axes","at","p","rest","value","drawWalls","h","walls","P","a","b","c","base","corner","sb","sc","quad","ctx","q","style","along","across","w","p0","p1","s0","s1","overlaps","pad","labelEdge","eye","best","left","sx","sy","drawAxes","center","placed","size","labelFont","titleFont","edge","e0","e1","dx","dy","length","ox","oy","mx","my","align","baseline","labels","s","tick","text","x","y","step","kept","l","o","extent","distance","tx","ty","tw","th","bounds","top","drawColorBar","gradient","rect","lut","min","max","domain","span","ticks","t","format","title","right","drawHighlight","shape","pts","bit","z","floor"],"sources":["../../../../../charts/src/engine/three-d/overlay.ts"],"sourcesContent":["// 2D overlay of the 3D charts: the far walls of the axis box with their grid\n// lines (below the data), then the tick labels, axis titles, color bar and\n// hover highlight (above the data). Text is always horizontal (screen\n// aligned) so it stays readable whatever the camera.\n\nimport { toCss, type Rgba } from \"../color\";\nimport { linearTicks } from \"../scale\";\nimport type { ColorLut } from \"./colormap\";\nimport { project, type CameraFrame, type Vec3 } from \"./math\";\nimport { toWorld, type AxisModel, type Model3D } from \"./model\";\n\nexport interface OverlayStyle {\n text: string;\n muted: string;\n grid: string;\n axis: string;\n /** Tint of the walls */\n wall: string;\n /** Background (rings of the hover marker) */\n background: string;\n font: string;\n fontSize: number;\n}\n\nexport const overlayStyle = (\n theme: {\n text: Rgba;\n textMuted: Rgba;\n grid: Rgba;\n axis: Rgba;\n background: Rgba;\n fontFamily: string;\n fontSize: number;\n },\n dark: boolean,\n): OverlayStyle => ({\n text: toCss(theme.text),\n muted: toCss(theme.textMuted),\n grid: toCss(theme.grid),\n axis: toCss(theme.axis),\n wall: toCss(theme.text, dark ? 0.045 : 0.025),\n background: toCss(theme.background),\n font: theme.fontFamily,\n fontSize: theme.fontSize,\n});\n\ntype Axes = Pick<Model3D, \"x\" | \"y\" | \"z\">;\n\nconst AXES: readonly (\"x\" | \"y\" | \"z\")[] = [\"x\", \"y\", \"z\"];\n\n/** World positions of the grid lines of an axis (category axes: between the categories) */\nexport const gridPositions = (axis: AxisModel): number[] => {\n if (axis.categories) {\n const out: number[] = [];\n for (let i = 0; i < axis.categories.length - 1; i++)\n out.push(toWorld(axis, i + 0.5));\n return out;\n }\n return axis.ticks\n .filter((t) => t > axis.domain[0] && t < axis.domain[1])\n .map((t) => toWorld(axis, t));\n};\n\n/** Side (-1 / 1) of the far wall perpendicular to every axis */\nexport const farWalls = (frame: CameraFrame): [number, number, number] => [\n frame.eye[0] >= 0 ? -1 : 1,\n frame.eye[1] >= 0 ? -1 : 1,\n frame.eye[2] >= 0 ? -1 : 1,\n];\n\nconst half = (axes: Axes): Vec3 => [axes.x.half, axes.y.half, axes.z.half];\n\nconst at = (axis: number, value: number, rest: Vec3): Vec3 => {\n const p: Vec3 = [rest[0], rest[1], rest[2]];\n p[axis] = value;\n return p;\n};\n\n/** Far walls, their grid lines and borders */\nexport const drawWalls = (\n ctx: CanvasRenderingContext2D,\n frame: CameraFrame,\n axes: Axes,\n style: OverlayStyle,\n): void => {\n const h = half(axes);\n const walls = farWalls(frame);\n const P = (p: Vec3) => project(frame, p[0], p[1], p[2]);\n ctx.lineWidth = 1;\n for (let a = 0; a < 3; a++) {\n const b = (a + 1) % 3;\n const c = (a + 2) % 3;\n const base: Vec3 = [0, 0, 0];\n base[a] = walls[a] * h[a];\n const corner = (sb: number, sc: number) => {\n const p: Vec3 = [base[0], base[1], base[2]];\n p[b] = sb * h[b];\n p[c] = sc * h[c];\n return P(p);\n };\n const quad = [corner(-1, -1), corner(1, -1), corner(1, 1), corner(-1, 1)];\n ctx.beginPath();\n quad.forEach((q, i) => (i ? ctx.lineTo(q.x, q.y) : ctx.moveTo(q.x, q.y)));\n ctx.closePath();\n ctx.fillStyle = style.wall;\n ctx.fill();\n // grid lines of the two axes spanning the wall\n ctx.beginPath();\n for (const [along, across] of [\n [b, c],\n [c, b],\n ] as const) {\n const axis = axes[AXES[along]!];\n if (!axis.grid) continue;\n for (const w of gridPositions(axis)) {\n const p0 = at(along, w, base);\n const p1 = at(along, w, base);\n p0[across] = -h[across];\n p1[across] = h[across];\n const s0 = P(p0);\n const s1 = P(p1);\n ctx.moveTo(s0.x, s0.y);\n ctx.lineTo(s1.x, s1.y);\n }\n }\n ctx.strokeStyle = style.grid;\n ctx.stroke();\n ctx.beginPath();\n quad.forEach((q, i) => (i ? ctx.lineTo(q.x, q.y) : ctx.moveTo(q.x, q.y)));\n ctx.closePath();\n ctx.strokeStyle = style.axis;\n ctx.stroke();\n }\n};\n\ninterface Rect {\n x: number;\n y: number;\n w: number;\n h: number;\n}\n\nconst overlaps = (a: Rect, b: Rect, pad = 2) =>\n a.x < b.x + b.w + pad &&\n b.x < a.x + a.w + pad &&\n a.y < b.y + b.h + pad &&\n b.y < a.y + a.h + pad;\n\n/** Edge (fixed coordinates of the two other axes) carrying the labels of an axis */\nexport const labelEdge = (\n frame: CameraFrame,\n axes: Axes,\n axis: number,\n): Vec3 => {\n const h = half(axes);\n const eye = frame.eye;\n if (axis === 0) return [0, (eye[1] >= 0 ? 1 : -1) * h[1], -h[2]];\n if (axis === 1) return [(eye[0] >= 0 ? 1 : -1) * h[0], 0, -h[2]];\n // vertical axis: the leftmost vertical edge on screen\n let best: Vec3 = [-h[0], -h[1], 0];\n let left = Infinity;\n for (const sx of [-1, 1]) {\n for (const sy of [-1, 1]) {\n const p = project(frame, sx * h[0], sy * h[1], 0);\n if (p.x < left) {\n left = p.x;\n best = [sx * h[0], sy * h[1], 0];\n }\n }\n }\n return best;\n};\n\n/** Area the labels and titles must stay in (CSS pixels of the stage) */\nexport interface OverlayBounds {\n left: number;\n top: number;\n right: number;\n bottom: number;\n}\n\n/** Tick labels and titles of the three axes */\nexport const drawAxes = (\n ctx: CanvasRenderingContext2D,\n frame: CameraFrame,\n axes: Axes,\n style: OverlayStyle,\n bounds: OverlayBounds = {\n left: 0,\n top: 0,\n right: frame.width,\n bottom: frame.height,\n },\n): void => {\n const center = project(frame, 0, 0, 0);\n const placed: Rect[] = [];\n const size = style.fontSize;\n const labelFont = `${size}px ${style.font}`;\n const titleFont = `600 ${size + 1}px ${style.font}`;\n for (let a = 0; a < 3; a++) {\n const axis = axes[AXES[a]!];\n if (!axis.visible) continue;\n const edge = labelEdge(frame, axes, a);\n const e0 = project(frame, ...at(a, -axis.half, edge));\n const e1 = project(frame, ...at(a, axis.half, edge));\n let dx = e1.x - e0.x;\n let dy = e1.y - e0.y;\n const length = Math.hypot(dx, dy);\n // seen end-on: no room for labels\n if (length < 24) continue;\n dx /= length;\n dy /= length;\n let ox = -dy;\n let oy = dx;\n const mx = (e0.x + e1.x) / 2;\n const my = (e0.y + e1.y) / 2;\n if (ox * (mx - center.x) + oy * (my - center.y) < 0) {\n ox = -ox;\n oy = -oy;\n }\n // vertical axis: labels go sideways\n if (a === 2) {\n ox = mx < center.x ? -1 : 1;\n oy = 0;\n }\n const align: CanvasTextAlign =\n ox > 0.35 ? \"left\" : ox < -0.35 ? \"right\" : \"center\";\n const baseline: CanvasTextBaseline =\n oy > 0.35 ? \"top\" : oy < -0.35 ? \"bottom\" : \"middle\";\n ctx.font = labelFont;\n ctx.textAlign = align;\n ctx.textBaseline = baseline;\n const gap = 8;\n const labels = axis.ticks.map((tick, i) => {\n const s = project(frame, ...at(a, toWorld(axis, tick), edge));\n const text = axis.labels[i] ?? \"\";\n const w = ctx.measureText(text).width;\n const x = s.x + ox * gap;\n const y = s.y + oy * gap;\n const rx = align === \"left\" ? x : align === \"right\" ? x - w : x - w / 2;\n const ry =\n baseline === \"top\"\n ? y\n : baseline === \"bottom\"\n ? y - size\n : y - size / 2;\n return { tick: s, text, x, y, rect: { x: rx, y: ry, w, h: size } };\n });\n // thin the labels until they do not overlap\n let step = 1;\n for (; step < labels.length; step++) {\n const kept = labels.filter((_, i) => i % step === 0);\n if (\n kept.every(\n (l, i) => !kept.slice(0, i).some((o) => overlaps(l.rect, o.rect)),\n )\n ) {\n break;\n }\n }\n let extent = 0;\n ctx.beginPath();\n labels.forEach((l, i) => {\n if (i % step) return;\n if (placed.some((o) => overlaps(l.rect, o))) return;\n placed.push(l.rect);\n ctx.moveTo(l.tick.x, l.tick.y);\n ctx.lineTo(l.tick.x + ox * 4, l.tick.y + oy * 4);\n extent = Math.max(\n extent,\n Math.abs(ox) * l.rect.w + Math.abs(oy) * l.rect.h,\n );\n });\n ctx.strokeStyle = style.axis;\n ctx.lineWidth = 1;\n ctx.stroke();\n ctx.fillStyle = style.muted;\n labels.forEach((l, i) => {\n if (i % step || !placed.includes(l.rect)) return;\n ctx.fillText(l.text, l.x, l.y);\n });\n if (!axis.title) continue;\n const distance = gap + extent + 10;\n let tx = mx + ox * distance;\n let ty = my + oy * distance;\n ctx.font = titleFont;\n ctx.fillStyle = style.text;\n const tw = ctx.measureText(axis.title).width;\n const th = size + 1;\n if (a === 2) {\n tx = Math.max(bounds.left + th, Math.min(bounds.right - th, tx));\n ty = Math.max(bounds.top + tw / 2, Math.min(bounds.bottom - tw / 2, ty));\n ctx.save();\n ctx.translate(tx, ty);\n ctx.rotate(-Math.PI / 2);\n ctx.textAlign = \"center\";\n ctx.textBaseline = ox < 0 ? \"bottom\" : \"top\";\n ctx.fillText(axis.title, 0, 0);\n ctx.restore();\n } else {\n // keep the whole title inside the bounds\n const left =\n align === \"left\" ? tx : align === \"right\" ? tx - tw : tx - tw / 2;\n const top =\n baseline === \"top\" ? ty : baseline === \"bottom\" ? ty - th : ty - th / 2;\n tx +=\n Math.max(0, bounds.left - left) - Math.max(0, left + tw - bounds.right);\n ty +=\n Math.max(0, bounds.top - top) - Math.max(0, top + th - bounds.bottom);\n ctx.textAlign = align;\n ctx.textBaseline = baseline;\n ctx.fillText(axis.title, tx, ty);\n }\n }\n};\n\n/** Vertical color bar with its ticks and title */\nexport const drawColorBar = (\n ctx: CanvasRenderingContext2D,\n rect: Rect,\n lut: ColorLut,\n domain: readonly [number, number],\n format: (value: number) => string,\n title: string,\n style: OverlayStyle,\n /** Right end of the stage: the title is shifted left to fit */\n right = Infinity,\n): void => {\n const gradient = ctx.createLinearGradient(0, rect.y + rect.h, 0, rect.y);\n const samples = 24;\n for (let i = 0; i <= samples; i++) {\n const c = lut.rgba[Math.round((i / samples) * (lut.rgba.length - 1))];\n if (c) gradient.addColorStop(i / samples, toCss(c));\n }\n ctx.fillStyle = gradient;\n ctx.beginPath();\n if (typeof ctx.roundRect === \"function\")\n ctx.roundRect(rect.x, rect.y, rect.w, rect.h, 3);\n else ctx.rect(rect.x, rect.y, rect.w, rect.h);\n ctx.fill();\n ctx.strokeStyle = style.axis;\n ctx.lineWidth = 1;\n ctx.stroke();\n const [min, max] = domain;\n const span = max - min || 1;\n ctx.font = `${style.fontSize}px ${style.font}`;\n ctx.fillStyle = style.muted;\n ctx.textAlign = \"left\";\n ctx.textBaseline = \"middle\";\n const ticks = linearTicks(min, max, Math.max(2, Math.round(rect.h / 40)));\n ctx.beginPath();\n for (const t of ticks) {\n const y = rect.y + rect.h - ((t - min) / span) * rect.h;\n if (y < rect.y - 0.5 || y > rect.y + rect.h + 0.5) continue;\n ctx.moveTo(rect.x + rect.w, y);\n ctx.lineTo(rect.x + rect.w + 4, y);\n ctx.fillText(format(t), rect.x + rect.w + 7, y);\n }\n ctx.strokeStyle = style.axis;\n ctx.stroke();\n if (title) {\n ctx.font = `600 ${style.fontSize}px ${style.font}`;\n ctx.fillStyle = style.text;\n ctx.textAlign = \"left\";\n ctx.textBaseline = \"bottom\";\n const w = ctx.measureText(title).width;\n ctx.fillText(\n title,\n Math.max(4, Math.min(rect.x, right - 4 - w)),\n rect.y - 8,\n );\n }\n};\n\n/** Highlight of the hovered item */\nexport type HighlightShape =\n | { kind: \"point\"; x: number; y: number; radius: number; color: string }\n | { kind: \"box\"; min: Vec3; max: Vec3; color: string }\n | { kind: \"vertex\"; world: Vec3; color: string };\n\nexport const drawHighlight = (\n ctx: CanvasRenderingContext2D,\n frame: CameraFrame,\n axes: Axes,\n shape: HighlightShape,\n style: OverlayStyle,\n): void => {\n ctx.save();\n if (shape.kind === \"point\") {\n ctx.beginPath();\n ctx.arc(shape.x, shape.y, shape.radius + 3, 0, Math.PI * 2);\n ctx.lineWidth = 3;\n ctx.strokeStyle = style.background;\n ctx.stroke();\n ctx.lineWidth = 1.5;\n ctx.strokeStyle = style.text;\n ctx.stroke();\n } else if (shape.kind === \"box\") {\n const { min, max } = shape;\n const corner = (i: number) =>\n project(\n frame,\n i & 1 ? max[0] : min[0],\n i & 2 ? max[1] : min[1],\n i & 4 ? max[2] : min[2],\n );\n const pts = Array.from({ length: 8 }, (_, i) => corner(i));\n ctx.beginPath();\n for (let i = 0; i < 8; i++) {\n for (const bit of [1, 2, 4]) {\n if (i & bit) continue;\n const a = pts[i]!;\n const b = pts[i | bit]!;\n ctx.moveTo(a.x, a.y);\n ctx.lineTo(b.x, b.y);\n }\n }\n ctx.lineJoin = \"round\";\n ctx.lineWidth = 3.5;\n ctx.strokeStyle = style.background;\n ctx.stroke();\n ctx.lineWidth = 1.5;\n ctx.strokeStyle = style.text;\n ctx.stroke();\n } else {\n const [x, y, z] = shape.world;\n const top = project(frame, x, y, z);\n const floor = project(frame, x, y, -axes.z.half);\n ctx.beginPath();\n ctx.setLineDash([3, 3]);\n ctx.moveTo(top.x, top.y);\n ctx.lineTo(floor.x, floor.y);\n ctx.lineWidth = 1;\n ctx.strokeStyle = style.text;\n ctx.stroke();\n ctx.setLineDash([]);\n ctx.beginPath();\n ctx.arc(floor.x, floor.y, 2.5, 0, Math.PI * 2);\n ctx.fillStyle = style.text;\n ctx.fill();\n ctx.beginPath();\n ctx.arc(top.x, top.y, 5, 0, Math.PI * 2);\n ctx.fillStyle = shape.color;\n ctx.fill();\n ctx.lineWidth = 2;\n ctx.strokeStyle = style.background;\n ctx.stroke();\n ctx.beginPath();\n ctx.arc(top.x, top.y, 7, 0, Math.PI * 2);\n ctx.lineWidth = 1.25;\n ctx.strokeStyle = style.text;\n ctx.stroke();\n }\n ctx.restore();\n};\n"],"mappings":"2GAwBA,IAAaQ,GACX,EASA,KACkB,CAClB,KAAMR,EAAAA,MAAMS,EAAM,IAAI,EACtB,MAAOT,EAAAA,MAAMS,EAAM,SAAS,EAC5B,KAAMT,EAAAA,MAAMS,EAAM,IAAI,EACtB,KAAMT,EAAAA,MAAMS,EAAM,IAAI,EACtB,KAAMT,EAAAA,MAAMS,EAAM,KAAMC,EAAO,KAAQ,IAAK,EAC5C,WAAYV,EAAAA,MAAMS,EAAM,UAAU,EAClC,KAAMA,EAAM,WACZ,SAAUA,EAAM,QAClB,GAIME,EAAqC,CAAC,IAAK,IAAK,GAAG,EAG5CC,EAAiB,GAA8B,CAC1D,GAAIC,EAAK,WAAY,CACnB,IAAMC,EAAgB,CAAC,EACvB,IAAK,IAAIC,EAAI,EAAGA,EAAIF,EAAK,WAAW,OAAS,EAAG,IAC9CC,EAAI,KAAKb,EAAAA,QAAQY,EAAME,EAAI,EAAG,CAAC,EACjC,OAAOD,CACT,CACA,OAAOD,EAAK,MACT,OAAQ,GAAM,EAAIA,EAAK,OAAO,IAAM,EAAIA,EAAK,OAAO,EAAE,CAAC,CACvD,IAAK,GAAMZ,EAAAA,QAAQY,EAAM,CAAC,CAAC,CAChC,EAGaG,EAAY,GAAiD,CACxEC,EAAM,IAAI,IAAM,EAAI,GAAK,EACzBA,EAAM,IAAI,IAAM,EAAI,GAAK,EACzBA,EAAM,IAAI,IAAM,EAAI,GAAK,CAC3B,EAEMC,EAAQ,GAAqB,CAACC,EAAK,EAAE,KAAMA,EAAK,EAAE,KAAMA,EAAK,EAAE,IAAI,EAEnEC,GAAM,EAAc,EAAe,IAAqB,CAC5D,IAAMC,EAAU,CAACC,EAAK,GAAIA,EAAK,GAAIA,EAAK,EAAE,EAE1C,MADA,GAAET,GAAQU,EACHF,CACT,EAGaG,GACX,EACA,EACA,EACA,IACS,CACT,IAAMC,EAAIP,EAAKC,CAAI,EACbO,EAAQV,EAASC,CAAK,EACtBU,EAAK,GAAYzB,EAAAA,QAAQe,EAAOI,EAAE,GAAIA,EAAE,GAAIA,EAAE,EAAE,EACtD,EAAI,UAAY,EAChB,IAAK,IAAIO,EAAI,EAAGA,EAAI,EAAG,IAAK,CAC1B,IAAMC,GAAKD,EAAI,GAAK,EACdE,GAAKF,EAAI,GAAK,EACdG,EAAa,CAAC,EAAG,EAAG,CAAC,EAC3B,EAAKH,GAAKF,EAAME,GAAKH,EAAEG,GACvB,IAAMI,GAAU,EAAY,IAAe,CACzC,IAAMX,EAAU,CAACU,EAAK,GAAIA,EAAK,GAAIA,EAAK,EAAE,EAG1C,MAFA,GAAEF,GAAKI,EAAKR,EAAEI,GACd,EAAEC,GAAKI,EAAKT,EAAEK,GACPH,EAAEN,CAAC,CACZ,EACMc,EAAO,CAACH,EAAO,GAAI,EAAE,EAAGA,EAAO,EAAG,EAAE,EAAGA,EAAO,EAAG,CAAC,EAAGA,EAAO,GAAI,CAAC,CAAC,EACxEI,EAAI,UAAU,EACdD,EAAK,SAAS,EAAG,IAAOpB,EAAIqB,EAAI,OAAOC,EAAE,EAAGA,EAAE,CAAC,EAAID,EAAI,OAAOC,EAAE,EAAGA,EAAE,CAAC,CAAE,EACxED,EAAI,UAAU,EACd,EAAI,UAAYE,EAAM,KACtBF,EAAI,KAAK,EAETA,EAAI,UAAU,EACd,IAAK,GAAM,CAACG,EAAOC,IAAW,CAC5B,CAACX,EAAGC,CAAC,EACL,CAACA,EAAGD,CAAC,CACP,EAAY,CACV,IAAMhB,EAAOM,EAAKR,EAAK4B,IACvB,GAAK1B,EAAK,KACV,IAAK,IAAM4B,KAAK7B,EAAcC,CAAI,EAAG,CACnC,IAAM6B,EAAKtB,EAAGmB,EAAOE,EAAGV,CAAI,EACtBY,EAAKvB,EAAGmB,EAAOE,EAAGV,CAAI,EAC5B,EAAGS,GAAU,CAACf,EAAEe,GAChB,EAAGA,GAAUf,EAAEe,GACf,IAAMI,EAAKjB,EAAEe,CAAE,EACTG,EAAKlB,EAAEgB,CAAE,EACfP,EAAI,OAAOQ,EAAG,EAAGA,EAAG,CAAC,EACrBR,EAAI,OAAOS,EAAG,EAAGA,EAAG,CAAC,CACvB,CACF,CACA,EAAI,YAAcP,EAAM,KACxBF,EAAI,OAAO,EACXA,EAAI,UAAU,EACdD,EAAK,SAAS,EAAG,IAAOpB,EAAIqB,EAAI,OAAOC,EAAE,EAAGA,EAAE,CAAC,EAAID,EAAI,OAAOC,EAAE,EAAGA,EAAE,CAAC,CAAE,EACxED,EAAI,UAAU,EACd,EAAI,YAAcE,EAAM,KACxBF,EAAI,OAAO,CACb,CACF,EASMU,GAAY,EAAS,EAAS,EAAM,IACxClB,EAAE,EAAIC,EAAE,EAAIA,EAAE,EAAIkB,GAClBlB,EAAE,EAAID,EAAE,EAAIA,EAAE,EAAImB,GAClBnB,EAAE,EAAIC,EAAE,EAAIA,EAAE,EAAIkB,GAClBlB,EAAE,EAAID,EAAE,EAAIA,EAAE,EAAImB,EAGPC,GACX,EACA,EACA,IACS,CACT,IAAMvB,EAAIP,EAAKC,CAAI,EACb8B,EAAMhC,EAAM,IAClB,GAAIJ,IAAS,EAAG,MAAO,CAAC,GAAIoC,EAAI,IAAM,EAAI,EAAI,IAAMxB,EAAE,GAAI,CAACA,EAAE,EAAE,EAC/D,GAAIZ,IAAS,EAAG,MAAO,EAAEoC,EAAI,IAAM,EAAI,EAAI,IAAMxB,EAAE,GAAI,EAAG,CAACA,EAAE,EAAE,EAE/D,IAAIyB,EAAa,CAAC,CAACzB,EAAE,GAAI,CAACA,EAAE,GAAI,CAAC,EAC7B0B,EAAO,IACX,IAAK,IAAMC,IAAM,CAAC,GAAI,CAAC,EACrB,IAAK,IAAMC,IAAM,CAAC,GAAI,CAAC,EAAG,CACxB,IAAMhC,EAAInB,EAAAA,QAAQe,EAAOmC,EAAK3B,EAAE,GAAI4B,EAAK5B,EAAE,GAAI,CAAC,EAC5CJ,EAAE,EAAI8B,IACR,EAAO9B,EAAE,EACT,EAAO,CAAC+B,EAAK3B,EAAE,GAAI4B,EAAK5B,EAAE,GAAI,CAAC,EAEnC,CAEF,OAAOyB,CACT,EAWaI,GACX,EACA,EACA,EACA,EACA,EAAwB,CACtB,KAAM,EACN,IAAK,EACL,MAAOrC,EAAM,MACb,OAAQA,EAAM,MAChB,IACS,CACT,IAAMsC,EAASrD,EAAAA,QAAQe,EAAO,EAAG,EAAG,CAAC,EAC/BuC,EAAiB,CAAC,EAClBC,EAAOnB,EAAM,SACboB,EAAY,GAAGD,EAAK,KAAKnB,EAAM,OAC/BqB,EAAY,OAAOF,EAAO,EAAE,KAAKnB,EAAM,OAC7C,IAAK,IAAIV,EAAI,EAAGA,EAAI,EAAG,IAAK,CAC1B,IAAMf,EAAOM,EAAKR,EAAKiB,IACvB,GAAI,CAACf,EAAK,QAAS,SACnB,IAAM+C,EAAOZ,EAAU/B,EAAOE,EAAMS,CAAC,EAC/BiC,EAAK3D,EAAAA,QAAQe,EAAO,GAAGG,EAAGQ,EAAG,CAACf,EAAK,KAAM+C,CAAI,CAAC,EAC9CE,EAAK5D,EAAAA,QAAQe,EAAO,GAAGG,EAAGQ,EAAGf,EAAK,KAAM+C,CAAI,CAAC,EAC/CG,EAAKD,EAAG,EAAID,EAAG,EACfG,EAAKF,EAAG,EAAID,EAAG,EACbI,EAAS,KAAK,MAAMF,EAAIC,CAAE,EAEhC,GAAIC,EAAS,GAAI,SACjB,GAAMA,EACN,GAAMA,EACN,IAAIC,EAAK,CAACF,EACNG,EAAKJ,EACHK,GAAMP,EAAG,EAAIC,EAAG,GAAK,EACrBO,GAAMR,EAAG,EAAIC,EAAG,GAAK,EACvBI,GAAME,EAAKb,EAAO,GAAKY,GAAME,EAAKd,EAAO,GAAK,IAChD,EAAK,CAACW,EACN,EAAK,CAACC,GAGJvC,IAAM,IACR,EAAKwC,EAAKb,EAAO,EAAI,GAAK,EAC1B,EAAK,GAEP,IAAMe,EACJJ,EAAK,IAAO,OAASA,EAAK,KAAQ,QAAU,SACxCK,EACJJ,EAAK,IAAO,MAAQA,EAAK,KAAQ,SAAW,SAC9C,EAAI,KAAOT,EACX,EAAI,UAAYY,EAChB,EAAI,aAAeC,EACnB,IACMC,EAAS3D,EAAK,MAAM,KAAK,EAAM,IAAM,CACzC,IAAM4D,EAAIvE,EAAAA,QAAQe,EAAO,GAAGG,EAAGQ,EAAG3B,EAAAA,QAAQY,EAAM6D,CAAI,EAAGd,CAAI,CAAC,EACtDe,EAAO9D,EAAK,OAAOE,IAAM,GACzB0B,EAAIL,EAAI,YAAYuC,CAAI,CAAC,CAAC,MAC1BC,EAAIH,EAAE,EAAIP,EAAK,EACfW,EAAIJ,EAAE,EAAIN,EAAK,EAQrB,MAAO,CAAE,KAAMM,EAAG,OAAM,IAAG,IAAG,KAAM,CAAE,EAP3BH,IAAU,OAASM,EAAIN,IAAU,QAAUM,EAAInC,EAAImC,EAAInC,EAAI,EAOzB,EAL3C8B,IAAa,MACTM,EACAN,IAAa,SACXM,EAAIpB,EACJoB,EAAIpB,EAAO,EACiC,IAAG,EAAGA,CAAK,CAAE,CACnE,CAAC,EAEGqB,EAAO,EACX,KAAOA,EAAON,EAAO,OAAQ,IAAQ,CACnC,IAAMO,EAAOP,EAAO,QAAQ,EAAG,IAAMzD,EAAI+D,IAAS,CAAC,EACnD,GACEC,EAAK,OACF,EAAG,IAAM,CAACA,EAAK,MAAM,EAAGhE,CAAC,CAAC,CAAC,KAAM,GAAM+B,EAASkC,EAAE,KAAMC,EAAE,IAAI,CAAC,CAClE,EAEA,KAEJ,CACA,IAAIC,EAAS,EAqBb,GApBA9C,EAAI,UAAU,EACdoC,EAAO,SAAS,EAAG,IAAM,CACnBzD,EAAI+D,GACJtB,EAAO,KAAM,GAAMV,EAASkC,EAAE,KAAMC,CAAC,CAAC,IAC1CzB,EAAO,KAAKwB,EAAE,IAAI,EAClB5C,EAAI,OAAO4C,EAAE,KAAK,EAAGA,EAAE,KAAK,CAAC,EAC7B5C,EAAI,OAAO4C,EAAE,KAAK,EAAId,EAAK,EAAGc,EAAE,KAAK,EAAIb,EAAK,CAAC,EAC/C,EAAS,KAAK,IACZe,EACA,KAAK,IAAIhB,CAAE,EAAIc,EAAE,KAAK,EAAI,KAAK,IAAIb,CAAE,EAAIa,EAAE,KAAK,CAClD,EACF,CAAC,EACD,EAAI,YAAc1C,EAAM,KACxB,EAAI,UAAY,EAChBF,EAAI,OAAO,EACX,EAAI,UAAYE,EAAM,MACtBkC,EAAO,SAAS,EAAG,IAAM,CACnBzD,EAAI+D,GAAQ,CAACtB,EAAO,SAASwB,EAAE,IAAI,GACvC5C,EAAI,SAAS4C,EAAE,KAAMA,EAAE,EAAGA,EAAE,CAAC,CAC/B,CAAC,EACG,CAACnE,EAAK,MAAO,SACjB,IAAMsE,EAAW,EAAMD,EAAS,GAC5BE,EAAKhB,EAAKF,EAAKiB,EACfE,EAAKhB,EAAKF,EAAKgB,EACnB,EAAI,KAAOxB,EACX,EAAI,UAAYrB,EAAM,KACtB,IAAMgD,EAAKlD,EAAI,YAAYvB,EAAK,KAAK,CAAC,CAAC,MACjC0E,EAAK9B,EAAO,EAClB,GAAI7B,IAAM,EACR,EAAK,KAAK,IAAI4D,EAAO,KAAOD,EAAI,KAAK,IAAIC,EAAO,MAAQD,EAAIH,CAAE,CAAC,EAC/D,EAAK,KAAK,IAAII,EAAO,IAAMF,EAAK,EAAG,KAAK,IAAIE,EAAO,OAASF,EAAK,EAAGD,CAAE,CAAC,EACvEjD,EAAI,KAAK,EACTA,EAAI,UAAUgD,EAAIC,CAAE,EACpBjD,EAAI,OAAO,CAAC,KAAK,GAAK,CAAC,EACvB,EAAI,UAAY,SAChB,EAAI,aAAe8B,EAAK,EAAI,SAAW,MACvC9B,EAAI,SAASvB,EAAK,MAAO,EAAG,CAAC,EAC7BuB,EAAI,QAAQ,MACP,CAEL,IAAMe,EACJmB,IAAU,OAASc,EAAKd,IAAU,QAAUc,EAAKE,EAAKF,EAAKE,EAAK,EAC5DG,EACJlB,IAAa,MAAQc,EAAKd,IAAa,SAAWc,EAAKE,EAAKF,EAAKE,EAAK,EACxE,GACE,KAAK,IAAI,EAAGC,EAAO,KAAOrC,CAAI,EAAI,KAAK,IAAI,EAAGA,EAAOmC,EAAKE,EAAO,KAAK,EACxE,GACE,KAAK,IAAI,EAAGA,EAAO,IAAMC,CAAG,EAAI,KAAK,IAAI,EAAGA,EAAMF,EAAKC,EAAO,MAAM,EACtE,EAAI,UAAYlB,EAChB,EAAI,aAAeC,EACnBnC,EAAI,SAASvB,EAAK,MAAOuE,EAAIC,CAAE,CACjC,CACF,CACF,EAGaK,GACX,EACA,EACA,EACA,EACA,EACA,EACA,EAEA,EAAQ,MACC,CACT,IAAMC,EAAWvD,EAAI,qBAAqB,EAAGwD,EAAK,EAAIA,EAAK,EAAG,EAAGA,EAAK,CAAC,EAEvE,IAAK,IAAI7E,EAAI,EAAGA,GAAK,GAAS,IAAK,CACjC,IAAMe,EAAI+D,EAAI,KAAK,KAAK,MAAO9E,EAAI,IAAY8E,EAAI,KAAK,OAAS,EAAE,GAC/D/D,GAAG6D,EAAS,aAAa5E,EAAI,GAASf,EAAAA,MAAM8B,CAAC,CAAC,CACpD,CACA,EAAI,UAAY6D,EAChBvD,EAAI,UAAU,EACV,OAAOA,EAAI,WAAc,WAC3BA,EAAI,UAAUwD,EAAK,EAAGA,EAAK,EAAGA,EAAK,EAAGA,EAAK,EAAG,CAAC,EAC5CxD,EAAI,KAAKwD,EAAK,EAAGA,EAAK,EAAGA,EAAK,EAAGA,EAAK,CAAC,EAC5CxD,EAAI,KAAK,EACT,EAAI,YAAcE,EAAM,KACxB,EAAI,UAAY,EAChBF,EAAI,OAAO,EACX,GAAM,CAAC0D,EAAKC,GAAOC,EACbC,EAAOF,EAAMD,GAAO,EAC1B,EAAI,KAAO,GAAGxD,EAAM,SAAS,KAAKA,EAAM,OACxC,EAAI,UAAYA,EAAM,MACtB,EAAI,UAAY,OAChB,EAAI,aAAe,SACnB,IAAM4D,EAAQ/F,EAAAA,YAAY2F,EAAKC,EAAK,KAAK,IAAI,EAAG,KAAK,MAAMH,EAAK,EAAI,EAAE,CAAC,CAAC,EACxExD,EAAI,UAAU,EACd,IAAK,IAAM+D,KAAKD,EAAO,CACrB,IAAMrB,EAAIe,EAAK,EAAIA,EAAK,GAAMO,EAAIL,GAAOG,EAAQL,EAAK,EAClDf,EAAIe,EAAK,EAAI,IAAOf,EAAIe,EAAK,EAAIA,EAAK,EAAI,KAC9CxD,EAAI,OAAOwD,EAAK,EAAIA,EAAK,EAAGf,CAAC,EAC7BzC,EAAI,OAAOwD,EAAK,EAAIA,EAAK,EAAI,EAAGf,CAAC,EACjCzC,EAAI,SAASgE,EAAOD,CAAC,EAAGP,EAAK,EAAIA,EAAK,EAAI,EAAGf,CAAC,EAChD,CAGA,GAFA,EAAI,YAAcvC,EAAM,KACxBF,EAAI,OAAO,EACPiE,EAAO,CACT,EAAI,KAAO,OAAO/D,EAAM,SAAS,KAAKA,EAAM,OAC5C,EAAI,UAAYA,EAAM,KACtB,EAAI,UAAY,OAChB,EAAI,aAAe,SACnB,IAAMG,EAAIL,EAAI,YAAYiE,CAAK,CAAC,CAAC,MACjCjE,EAAI,SACFiE,EACA,KAAK,IAAI,EAAG,KAAK,IAAIT,EAAK,EAAGU,EAAQ,EAAI7D,CAAC,CAAC,EAC3CmD,EAAK,EAAI,CACX,CACF,CACF,EAQaW,GACX,EACA,EACA,EACA,EACA,IACS,CAET,GADAnE,EAAI,KAAK,EACLoE,EAAM,OAAS,QACjBpE,EAAI,UAAU,EACdA,EAAI,IAAIoE,EAAM,EAAGA,EAAM,EAAGA,EAAM,OAAS,EAAG,EAAG,KAAK,GAAK,CAAC,EAC1D,EAAI,UAAY,EAChB,EAAI,YAAclE,EAAM,WACxBF,EAAI,OAAO,EACX,EAAI,UAAY,IAChB,EAAI,YAAcE,EAAM,KACxBF,EAAI,OAAO,OACN,GAAIoE,EAAM,OAAS,MAAO,CAC/B,GAAM,CAAE,MAAK,OAAQA,EACfxE,EAAU,GACd9B,EAAAA,QACEe,EACAF,EAAI,EAAIgF,EAAI,GAAKD,EAAI,GACrB/E,EAAI,EAAIgF,EAAI,GAAKD,EAAI,GACrB/E,EAAI,EAAIgF,EAAI,GAAKD,EAAI,EACvB,EACIW,EAAM,MAAM,KAAK,CAAE,OAAQ,CAAE,GAAI,EAAG,IAAMzE,EAAOjB,CAAC,CAAC,EACzDqB,EAAI,UAAU,EACd,IAAK,IAAIrB,EAAI,EAAGA,EAAI,EAAG,IACrB,IAAK,IAAM2F,IAAO,CAAC,EAAG,EAAG,CAAC,EAAG,CAC3B,GAAI3F,EAAI2F,EAAK,SACb,IAAM9E,EAAI6E,EAAI1F,GACRc,EAAI4E,EAAI1F,EAAI2F,GAClBtE,EAAI,OAAOR,EAAE,EAAGA,EAAE,CAAC,EACnBQ,EAAI,OAAOP,EAAE,EAAGA,EAAE,CAAC,CACrB,CAEF,EAAI,SAAW,QACf,EAAI,UAAY,IAChB,EAAI,YAAcS,EAAM,WACxBF,EAAI,OAAO,EACX,EAAI,UAAY,IAChB,EAAI,YAAcE,EAAM,KACxBF,EAAI,OAAO,CACb,KAAO,CACL,GAAM,CAACwC,EAAGC,EAAG8B,GAAKH,EAAM,MAClBf,EAAMvF,EAAAA,QAAQe,EAAO2D,EAAGC,EAAG8B,CAAC,EAC5BC,EAAQ1G,EAAAA,QAAQe,EAAO2D,EAAGC,EAAG,CAAC1D,EAAK,EAAE,IAAI,EAC/CiB,EAAI,UAAU,EACdA,EAAI,YAAY,CAAC,EAAG,CAAC,CAAC,EACtBA,EAAI,OAAOqD,EAAI,EAAGA,EAAI,CAAC,EACvBrD,EAAI,OAAOwE,EAAM,EAAGA,EAAM,CAAC,EAC3B,EAAI,UAAY,EAChB,EAAI,YAActE,EAAM,KACxBF,EAAI,OAAO,EACXA,EAAI,YAAY,CAAC,CAAC,EAClBA,EAAI,UAAU,EACdA,EAAI,IAAIwE,EAAM,EAAGA,EAAM,EAAG,IAAK,EAAG,KAAK,GAAK,CAAC,EAC7C,EAAI,UAAYtE,EAAM,KACtBF,EAAI,KAAK,EACTA,EAAI,UAAU,EACdA,EAAI,IAAIqD,EAAI,EAAGA,EAAI,EAAG,EAAG,EAAG,KAAK,GAAK,CAAC,EACvC,EAAI,UAAYe,EAAM,MACtBpE,EAAI,KAAK,EACT,EAAI,UAAY,EAChB,EAAI,YAAcE,EAAM,WACxBF,EAAI,OAAO,EACXA,EAAI,UAAU,EACdA,EAAI,IAAIqD,EAAI,EAAGA,EAAI,EAAG,EAAG,EAAG,KAAK,GAAK,CAAC,EACvC,EAAI,UAAY,KAChB,EAAI,YAAcnD,EAAM,KACxBF,EAAI,OAAO,CACb,CACAA,EAAI,QAAQ,CACd"}
@@ -0,0 +1,72 @@
1
+ import { Rgba } from '../color.cjs';
2
+ import { ColorLut } from './colormap.cjs';
3
+ import { CameraFrame, Vec3 } from './math.cjs';
4
+ import { AxisModel, Model3D } from './model.cjs';
5
+ export interface OverlayStyle {
6
+ text: string;
7
+ muted: string;
8
+ grid: string;
9
+ axis: string;
10
+ /** Tint of the walls */
11
+ wall: string;
12
+ /** Background (rings of the hover marker) */
13
+ background: string;
14
+ font: string;
15
+ fontSize: number;
16
+ }
17
+ export declare const overlayStyle: (theme: {
18
+ text: Rgba;
19
+ textMuted: Rgba;
20
+ grid: Rgba;
21
+ axis: Rgba;
22
+ background: Rgba;
23
+ fontFamily: string;
24
+ fontSize: number;
25
+ }, dark: boolean) => OverlayStyle;
26
+ type Axes = Pick<Model3D, "x" | "y" | "z">;
27
+ /** World positions of the grid lines of an axis (category axes: between the categories) */
28
+ export declare const gridPositions: (axis: AxisModel) => number[];
29
+ /** Side (-1 / 1) of the far wall perpendicular to every axis */
30
+ export declare const farWalls: (frame: CameraFrame) => [number, number, number];
31
+ /** Far walls, their grid lines and borders */
32
+ export declare const drawWalls: (ctx: CanvasRenderingContext2D, frame: CameraFrame, axes: Axes, style: OverlayStyle) => void;
33
+ interface Rect {
34
+ x: number;
35
+ y: number;
36
+ w: number;
37
+ h: number;
38
+ }
39
+ /** Edge (fixed coordinates of the two other axes) carrying the labels of an axis */
40
+ export declare const labelEdge: (frame: CameraFrame, axes: Axes, axis: number) => Vec3;
41
+ /** Area the labels and titles must stay in (CSS pixels of the stage) */
42
+ export interface OverlayBounds {
43
+ left: number;
44
+ top: number;
45
+ right: number;
46
+ bottom: number;
47
+ }
48
+ /** Tick labels and titles of the three axes */
49
+ export declare const drawAxes: (ctx: CanvasRenderingContext2D, frame: CameraFrame, axes: Axes, style: OverlayStyle, bounds?: OverlayBounds) => void;
50
+ /** Vertical color bar with its ticks and title */
51
+ export declare const drawColorBar: (ctx: CanvasRenderingContext2D, rect: Rect, lut: ColorLut, domain: readonly [number, number], format: (value: number) => string, title: string, style: OverlayStyle,
52
+ /** Right end of the stage: the title is shifted left to fit */
53
+ right?: number) => void;
54
+ /** Highlight of the hovered item */
55
+ export type HighlightShape = {
56
+ kind: "point";
57
+ x: number;
58
+ y: number;
59
+ radius: number;
60
+ color: string;
61
+ } | {
62
+ kind: "box";
63
+ min: Vec3;
64
+ max: Vec3;
65
+ color: string;
66
+ } | {
67
+ kind: "vertex";
68
+ world: Vec3;
69
+ color: string;
70
+ };
71
+ export declare const drawHighlight: (ctx: CanvasRenderingContext2D, frame: CameraFrame, axes: Axes, shape: HighlightShape, style: OverlayStyle) => void;
72
+ export {};
@@ -0,0 +1,72 @@
1
+ import { Rgba } from '../color.js';
2
+ import { ColorLut } from './colormap.js';
3
+ import { CameraFrame, Vec3 } from './math.js';
4
+ import { AxisModel, Model3D } from './model.js';
5
+ export interface OverlayStyle {
6
+ text: string;
7
+ muted: string;
8
+ grid: string;
9
+ axis: string;
10
+ /** Tint of the walls */
11
+ wall: string;
12
+ /** Background (rings of the hover marker) */
13
+ background: string;
14
+ font: string;
15
+ fontSize: number;
16
+ }
17
+ export declare const overlayStyle: (theme: {
18
+ text: Rgba;
19
+ textMuted: Rgba;
20
+ grid: Rgba;
21
+ axis: Rgba;
22
+ background: Rgba;
23
+ fontFamily: string;
24
+ fontSize: number;
25
+ }, dark: boolean) => OverlayStyle;
26
+ type Axes = Pick<Model3D, "x" | "y" | "z">;
27
+ /** World positions of the grid lines of an axis (category axes: between the categories) */
28
+ export declare const gridPositions: (axis: AxisModel) => number[];
29
+ /** Side (-1 / 1) of the far wall perpendicular to every axis */
30
+ export declare const farWalls: (frame: CameraFrame) => [number, number, number];
31
+ /** Far walls, their grid lines and borders */
32
+ export declare const drawWalls: (ctx: CanvasRenderingContext2D, frame: CameraFrame, axes: Axes, style: OverlayStyle) => void;
33
+ interface Rect {
34
+ x: number;
35
+ y: number;
36
+ w: number;
37
+ h: number;
38
+ }
39
+ /** Edge (fixed coordinates of the two other axes) carrying the labels of an axis */
40
+ export declare const labelEdge: (frame: CameraFrame, axes: Axes, axis: number) => Vec3;
41
+ /** Area the labels and titles must stay in (CSS pixels of the stage) */
42
+ export interface OverlayBounds {
43
+ left: number;
44
+ top: number;
45
+ right: number;
46
+ bottom: number;
47
+ }
48
+ /** Tick labels and titles of the three axes */
49
+ export declare const drawAxes: (ctx: CanvasRenderingContext2D, frame: CameraFrame, axes: Axes, style: OverlayStyle, bounds?: OverlayBounds) => void;
50
+ /** Vertical color bar with its ticks and title */
51
+ export declare const drawColorBar: (ctx: CanvasRenderingContext2D, rect: Rect, lut: ColorLut, domain: readonly [number, number], format: (value: number) => string, title: string, style: OverlayStyle,
52
+ /** Right end of the stage: the title is shifted left to fit */
53
+ right?: number) => void;
54
+ /** Highlight of the hovered item */
55
+ export type HighlightShape = {
56
+ kind: "point";
57
+ x: number;
58
+ y: number;
59
+ radius: number;
60
+ color: string;
61
+ } | {
62
+ kind: "box";
63
+ min: Vec3;
64
+ max: Vec3;
65
+ color: string;
66
+ } | {
67
+ kind: "vertex";
68
+ world: Vec3;
69
+ color: string;
70
+ };
71
+ export declare const drawHighlight: (ctx: CanvasRenderingContext2D, frame: CameraFrame, axes: Axes, shape: HighlightShape, style: OverlayStyle) => void;
72
+ export {};