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
@@ -1 +1 @@
1
- {"version":3,"file":"webgl2.cjs","names":["GLSL_LINE","GLSL_AREA","GLSL_BAR","GLSL_SCATTER","instanceRange","require_range","require_shaders","ATTRIBUTES","compile","shader","s","gl","type","code","vs","source","fs","program","attributes","i","name","SOFTWARE_RENDERER","isSoftwareRenderer","info","createWebGl2Renderer","canvas","requireHardware","line","area","bar","scatter","programs","lost","handleLost","event","onLost","resources","setupAttributes","F","item","first","release","res","upload","existing","buffer","vao","params","frame","width","height","t","seen","items","instances","p0","p1","p2","p3","key","p"],"sources":["../../../../../charts/src/engine/renderers/webgl2.ts"],"sourcesContent":["// WebGL2 backend: same instanced primitives as WebGPU, in GLSL ES 3.0.\n\nimport { instanceRange } from \"./range\";\nimport { GLSL_AREA, GLSL_BAR, GLSL_LINE, GLSL_SCATTER } from \"./shaders\";\nimport {\n AREA_STRIDE,\n BAR_STRIDE,\n SCATTER_STRIDE,\n type ChartRenderer,\n type RenderFrame,\n type RenderItem,\n type RendererLostHandler,\n} from \"./types\";\n\ninterface Program {\n program: WebGLProgram;\n xform: WebGLUniformLocation | null;\n viewport: WebGLUniformLocation | null;\n color: WebGLUniformLocation | null;\n params: WebGLUniformLocation | null;\n}\n\ninterface ItemResources {\n version: number;\n kind: RenderItem[\"kind\"];\n buffer: WebGLBuffer;\n vao: WebGLVertexArrayObject;\n /** First instance the attribute pointers start at */\n first: number;\n}\n\nconst ATTRIBUTES: Record<RenderItem[\"kind\"], string[]> = {\n line: [\"a_a\", \"a_b\"],\n area: [\"a_a\", \"a_b\"],\n bar: [\"a_inst\", \"a_color\"],\n scatter: [\"a_pos\", \"a_size\", \"a_color\"],\n};\n\nconst compile = (\n gl: WebGL2RenderingContext,\n source: { vertex: string; fragment: string },\n attributes: string[],\n): Program | null => {\n const shader = (type: number, code: string) => {\n const s = gl.createShader(type);\n if (!s) return null;\n gl.shaderSource(s, code);\n gl.compileShader(s);\n if (!gl.getShaderParameter(s, gl.COMPILE_STATUS)) {\n gl.deleteShader(s);\n return null;\n }\n return s;\n };\n const vs = shader(gl.VERTEX_SHADER, source.vertex);\n const fs = shader(gl.FRAGMENT_SHADER, source.fragment);\n const program = gl.createProgram();\n if (!vs || !fs || !program) return null;\n gl.attachShader(program, vs);\n gl.attachShader(program, fs);\n attributes.forEach((name, i) => gl.bindAttribLocation(program, i, name));\n gl.linkProgram(program);\n gl.deleteShader(vs);\n gl.deleteShader(fs);\n if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {\n gl.deleteProgram(program);\n return null;\n }\n return {\n program,\n xform: gl.getUniformLocation(program, \"u_xform\"),\n viewport: gl.getUniformLocation(program, \"u_viewport\"),\n color: gl.getUniformLocation(program, \"u_color\"),\n params: gl.getUniformLocation(program, \"u_params\"),\n };\n};\n\nexport const SOFTWARE_RENDERER =\n /swiftshader|llvmpipe|softpipe|software|basic render driver|microsoft basic/i;\n\n/** Software rasterizer (SwiftShader, llvmpipe, ...) behind the WebGL context */\nconst isSoftwareRenderer = (gl: WebGL2RenderingContext): boolean => {\n const info = gl.getExtension(\"WEBGL_debug_renderer_info\");\n const name = info\n ? gl.getParameter(info.UNMASKED_RENDERER_WEBGL)\n : gl.getParameter(gl.RENDERER);\n return SOFTWARE_RENDERER.test(String(name ?? \"\"));\n};\n\nexport const createWebGl2Renderer = (\n canvas: HTMLCanvasElement,\n onLost: RendererLostHandler,\n /** Refuses software rendering (SwiftShader, blocklisted GPUs): Canvas2D with decimation is faster there */\n requireHardware = false,\n): ChartRenderer | null => {\n const gl = canvas.getContext(\"webgl2\", {\n alpha: true,\n premultipliedAlpha: true,\n antialias: false,\n depth: false,\n stencil: false,\n preserveDrawingBuffer: false,\n failIfMajorPerformanceCaveat: requireHardware,\n });\n if (!gl) return null;\n if (requireHardware && isSoftwareRenderer(gl)) {\n gl.getExtension(\"WEBGL_lose_context\")?.loseContext();\n return null;\n }\n\n const line = compile(gl, GLSL_LINE, ATTRIBUTES.line);\n const area = compile(gl, GLSL_AREA, ATTRIBUTES.area);\n const bar = compile(gl, GLSL_BAR, ATTRIBUTES.bar);\n const scatter = compile(gl, GLSL_SCATTER, ATTRIBUTES.scatter);\n if (!line || !area || !bar || !scatter) return null;\n const programs = { line, area, bar, scatter };\n\n let lost = false;\n const handleLost = (event: Event) => {\n event.preventDefault();\n lost = true;\n onLost();\n };\n canvas.addEventListener(\"webglcontextlost\", handleLost);\n\n const resources = new Map<string, ItemResources>();\n\n /** WebGL2 has no base instance: the pointers start at the first instance */\n const setupAttributes = (item: RenderItem, first: number) => {\n const F = gl.FLOAT;\n switch (item.kind) {\n case \"line\":\n gl.enableVertexAttribArray(0);\n gl.vertexAttribPointer(0, 2, F, false, 8, first * 8);\n gl.vertexAttribDivisor(0, 1);\n gl.enableVertexAttribArray(1);\n gl.vertexAttribPointer(1, 2, F, false, 8, first * 8 + 8);\n gl.vertexAttribDivisor(1, 1);\n break;\n case \"area\": {\n const stride = AREA_STRIDE * 4;\n gl.enableVertexAttribArray(0);\n gl.vertexAttribPointer(0, 3, F, false, stride, first * stride);\n gl.vertexAttribDivisor(0, 1);\n gl.enableVertexAttribArray(1);\n gl.vertexAttribPointer(1, 3, F, false, stride, (first + 1) * stride);\n gl.vertexAttribDivisor(1, 1);\n break;\n }\n case \"bar\":\n gl.enableVertexAttribArray(0);\n gl.vertexAttribPointer(0, 3, F, false, BAR_STRIDE, first * BAR_STRIDE);\n gl.vertexAttribDivisor(0, 1);\n gl.enableVertexAttribArray(1);\n gl.vertexAttribPointer(\n 1,\n 4,\n gl.UNSIGNED_BYTE,\n true,\n BAR_STRIDE,\n first * BAR_STRIDE + 12,\n );\n gl.vertexAttribDivisor(1, 1);\n break;\n default:\n gl.enableVertexAttribArray(0);\n gl.vertexAttribPointer(0, 2, F, false, SCATTER_STRIDE, 0);\n gl.vertexAttribDivisor(0, 1);\n gl.enableVertexAttribArray(1);\n gl.vertexAttribPointer(1, 1, F, false, SCATTER_STRIDE, 8);\n gl.vertexAttribDivisor(1, 1);\n gl.enableVertexAttribArray(2);\n gl.vertexAttribPointer(\n 2,\n 4,\n gl.UNSIGNED_BYTE,\n true,\n SCATTER_STRIDE,\n 12,\n );\n gl.vertexAttribDivisor(2, 1);\n break;\n }\n };\n\n const release = (res: ItemResources) => {\n gl.deleteBuffer(res.buffer);\n gl.deleteVertexArray(res.vao);\n };\n\n const upload = (item: RenderItem): ItemResources | null => {\n const existing = resources.get(item.key);\n if (\n existing &&\n existing.version === item.version &&\n existing.kind === item.kind\n ) {\n return existing;\n }\n if (existing) release(existing);\n const buffer = gl.createBuffer();\n const vao = gl.createVertexArray();\n if (!buffer || !vao) return null;\n gl.bindVertexArray(vao);\n gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\n switch (item.kind) {\n case \"line\":\n gl.bufferData(\n gl.ARRAY_BUFFER,\n item.points,\n gl.STATIC_DRAW,\n 0,\n item.count * 2,\n );\n break;\n case \"area\":\n gl.bufferData(\n gl.ARRAY_BUFFER,\n item.points,\n gl.STATIC_DRAW,\n 0,\n item.count * AREA_STRIDE,\n );\n break;\n default:\n gl.bufferData(gl.ARRAY_BUFFER, item.instances, gl.STATIC_DRAW);\n break;\n }\n setupAttributes(item, 0);\n gl.bindVertexArray(null);\n const res = {\n version: item.version,\n kind: item.kind,\n buffer,\n vao,\n first: 0,\n };\n resources.set(item.key, res);\n return res;\n };\n\n const params = (\n item: RenderItem,\n frame: RenderFrame,\n ): [number, number, number, number] => {\n switch (item.kind) {\n case \"line\":\n return [(item.width * frame.dpr) / 2, 0, 0, 0];\n case \"area\":\n return [0, item.opacity, 0, 0];\n case \"bar\":\n return [item.halfWidth, item.radius, item.inset, item.minHalf];\n default:\n return [item.opacity, item.stroke, 0, 0];\n }\n };\n\n return {\n kind: \"webgl2\",\n canvas,\n resize(width, height) {\n canvas.width = Math.max(1, width);\n canvas.height = Math.max(1, height);\n },\n render(items, frame) {\n if (lost || gl.isContextLost()) return;\n gl.viewport(0, 0, canvas.width, canvas.height);\n gl.clearColor(0, 0, 0, 0);\n gl.clear(gl.COLOR_BUFFER_BIT);\n gl.enable(gl.BLEND);\n gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA);\n const t = frame.transform;\n const seen = new Set<string>();\n for (const item of items) {\n seen.add(item.key);\n const [first, instances] = instanceRange(item, frame);\n if (instances <= 0) continue;\n const res = upload(item);\n if (!res) continue;\n const program = programs[item.kind];\n gl.useProgram(program.program);\n gl.uniform4f(program.xform, t.xScale, t.xOffset, t.yScale, t.yOffset);\n gl.uniform4f(program.viewport, frame.width, frame.height, frame.dpr, 0);\n gl.uniform4f(\n program.color,\n item.color[0],\n item.color[1],\n item.color[2],\n item.color[3],\n );\n const [p0, p1, p2, p3] = params(item, frame);\n gl.uniform4f(program.params, p0, p1, p2, p3);\n gl.bindVertexArray(res.vao);\n if (res.first !== first) {\n gl.bindBuffer(gl.ARRAY_BUFFER, res.buffer);\n setupAttributes(item, first);\n res.first = first;\n }\n gl.drawArraysInstanced(gl.TRIANGLE_STRIP, 0, 4, instances);\n }\n gl.bindVertexArray(null);\n for (const [key, res] of resources) {\n if (!seen.has(key)) {\n release(res);\n resources.delete(key);\n }\n }\n },\n destroy() {\n canvas.removeEventListener(\"webglcontextlost\", handleLost);\n if (!gl.isContextLost()) {\n for (const res of resources.values()) release(res);\n for (const p of Object.values(programs)) gl.deleteProgram(p.program);\n }\n resources.clear();\n gl.getExtension(\"WEBGL_lose_context\")?.loseContext();\n },\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"webgl2.cjs","names":["glContextAttributes","isSoftwareRenderer","compileProgram","GLSL_LINE","GLSL_AREA","GLSL_BAR","GLSL_SCATTER","instanceRange","itemParams","require_gl","require_range","require_shaders","ATTRIBUTES","createWebGl2Renderer","gl","canvas","requireHardware","line","area","bar","scatter","programs","lost","handleLost","event","onLost","resources","setupAttributes","F","item","first","release","res","upload","existing","buffer","vao","width","height","t","frame","seen","items","instances","program","p0","p1","p2","p3","key","p"],"sources":["../../../../../charts/src/engine/renderers/webgl2.ts"],"sourcesContent":["// WebGL2 backend: same instanced primitives as WebGPU, in GLSL ES 3.0.\n\nimport {\n compileProgram,\n glContextAttributes,\n isSoftwareRenderer,\n itemParams,\n} from \"./gl\";\nimport { instanceRange } from \"./range\";\nimport { GLSL_AREA, GLSL_BAR, GLSL_LINE, GLSL_SCATTER } from \"./shaders\";\nimport {\n AREA_STRIDE,\n BAR_STRIDE,\n SCATTER_STRIDE,\n type ChartRenderer,\n type RenderItem,\n type RendererLostHandler,\n} from \"./types\";\n\ninterface ItemResources {\n version: number;\n kind: RenderItem[\"kind\"];\n buffer: WebGLBuffer;\n vao: WebGLVertexArrayObject;\n /** First instance the attribute pointers start at */\n first: number;\n}\n\nconst ATTRIBUTES: Record<RenderItem[\"kind\"], string[]> = {\n line: [\"a_a\", \"a_b\"],\n area: [\"a_a\", \"a_b\"],\n bar: [\"a_inst\", \"a_color\"],\n scatter: [\"a_pos\", \"a_size\", \"a_color\"],\n};\n\nexport const createWebGl2Renderer = (\n canvas: HTMLCanvasElement,\n onLost: RendererLostHandler,\n /** Refuses software rendering (SwiftShader, blocklisted GPUs): Canvas2D with decimation is faster there */\n requireHardware = false,\n): ChartRenderer | null => {\n const gl = canvas.getContext(\"webgl2\", glContextAttributes(requireHardware));\n if (!gl) return null;\n if (requireHardware && isSoftwareRenderer(gl)) {\n gl.getExtension(\"WEBGL_lose_context\")?.loseContext();\n return null;\n }\n\n const line = compileProgram(gl, GLSL_LINE, ATTRIBUTES.line);\n const area = compileProgram(gl, GLSL_AREA, ATTRIBUTES.area);\n const bar = compileProgram(gl, GLSL_BAR, ATTRIBUTES.bar);\n const scatter = compileProgram(gl, GLSL_SCATTER, ATTRIBUTES.scatter);\n if (!line || !area || !bar || !scatter) return null;\n const programs = { line, area, bar, scatter };\n\n let lost = false;\n const handleLost = (event: Event) => {\n event.preventDefault();\n lost = true;\n onLost();\n };\n canvas.addEventListener(\"webglcontextlost\", handleLost);\n\n const resources = new Map<string, ItemResources>();\n\n /** WebGL2 has no base instance: the pointers start at the first instance */\n const setupAttributes = (item: RenderItem, first: number) => {\n const F = gl.FLOAT;\n switch (item.kind) {\n case \"line\":\n gl.enableVertexAttribArray(0);\n gl.vertexAttribPointer(0, 2, F, false, 8, first * 8);\n gl.vertexAttribDivisor(0, 1);\n gl.enableVertexAttribArray(1);\n gl.vertexAttribPointer(1, 2, F, false, 8, first * 8 + 8);\n gl.vertexAttribDivisor(1, 1);\n break;\n case \"area\": {\n const stride = AREA_STRIDE * 4;\n gl.enableVertexAttribArray(0);\n gl.vertexAttribPointer(0, 3, F, false, stride, first * stride);\n gl.vertexAttribDivisor(0, 1);\n gl.enableVertexAttribArray(1);\n gl.vertexAttribPointer(1, 3, F, false, stride, (first + 1) * stride);\n gl.vertexAttribDivisor(1, 1);\n break;\n }\n case \"bar\":\n gl.enableVertexAttribArray(0);\n gl.vertexAttribPointer(0, 3, F, false, BAR_STRIDE, first * BAR_STRIDE);\n gl.vertexAttribDivisor(0, 1);\n gl.enableVertexAttribArray(1);\n gl.vertexAttribPointer(\n 1,\n 4,\n gl.UNSIGNED_BYTE,\n true,\n BAR_STRIDE,\n first * BAR_STRIDE + 12,\n );\n gl.vertexAttribDivisor(1, 1);\n break;\n default:\n gl.enableVertexAttribArray(0);\n gl.vertexAttribPointer(0, 2, F, false, SCATTER_STRIDE, 0);\n gl.vertexAttribDivisor(0, 1);\n gl.enableVertexAttribArray(1);\n gl.vertexAttribPointer(1, 1, F, false, SCATTER_STRIDE, 8);\n gl.vertexAttribDivisor(1, 1);\n gl.enableVertexAttribArray(2);\n gl.vertexAttribPointer(\n 2,\n 4,\n gl.UNSIGNED_BYTE,\n true,\n SCATTER_STRIDE,\n 12,\n );\n gl.vertexAttribDivisor(2, 1);\n break;\n }\n };\n\n const release = (res: ItemResources) => {\n gl.deleteBuffer(res.buffer);\n gl.deleteVertexArray(res.vao);\n };\n\n const upload = (item: RenderItem): ItemResources | null => {\n const existing = resources.get(item.key);\n if (\n existing &&\n existing.version === item.version &&\n existing.kind === item.kind\n ) {\n return existing;\n }\n if (existing) release(existing);\n const buffer = gl.createBuffer();\n const vao = gl.createVertexArray();\n if (!buffer || !vao) return null;\n gl.bindVertexArray(vao);\n gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\n switch (item.kind) {\n case \"line\":\n gl.bufferData(\n gl.ARRAY_BUFFER,\n item.points,\n gl.STATIC_DRAW,\n 0,\n item.count * 2,\n );\n break;\n case \"area\":\n gl.bufferData(\n gl.ARRAY_BUFFER,\n item.points,\n gl.STATIC_DRAW,\n 0,\n item.count * AREA_STRIDE,\n );\n break;\n default:\n gl.bufferData(gl.ARRAY_BUFFER, item.instances, gl.STATIC_DRAW);\n break;\n }\n setupAttributes(item, 0);\n gl.bindVertexArray(null);\n const res = {\n version: item.version,\n kind: item.kind,\n buffer,\n vao,\n first: 0,\n };\n resources.set(item.key, res);\n return res;\n };\n\n return {\n kind: \"webgl2\",\n canvas,\n resize(width, height) {\n canvas.width = Math.max(1, width);\n canvas.height = Math.max(1, height);\n },\n render(items, frame) {\n if (lost || gl.isContextLost()) return;\n gl.viewport(0, 0, canvas.width, canvas.height);\n gl.clearColor(0, 0, 0, 0);\n gl.clear(gl.COLOR_BUFFER_BIT);\n gl.enable(gl.BLEND);\n gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA);\n const t = frame.transform;\n const seen = new Set<string>();\n for (const item of items) {\n seen.add(item.key);\n const [first, instances] = instanceRange(item, frame);\n if (instances <= 0) continue;\n const res = upload(item);\n if (!res) continue;\n const program = programs[item.kind];\n gl.useProgram(program.program);\n gl.uniform4f(program.xform, t.xScale, t.xOffset, t.yScale, t.yOffset);\n gl.uniform4f(program.viewport, frame.width, frame.height, frame.dpr, 0);\n gl.uniform4f(\n program.color,\n item.color[0],\n item.color[1],\n item.color[2],\n item.color[3],\n );\n const [p0, p1, p2, p3] = itemParams(item, frame);\n gl.uniform4f(program.params, p0, p1, p2, p3);\n gl.bindVertexArray(res.vao);\n if (res.first !== first) {\n gl.bindBuffer(gl.ARRAY_BUFFER, res.buffer);\n setupAttributes(item, first);\n res.first = first;\n }\n gl.drawArraysInstanced(gl.TRIANGLE_STRIP, 0, 4, instances);\n }\n gl.bindVertexArray(null);\n for (const [key, res] of resources) {\n if (!seen.has(key)) {\n release(res);\n resources.delete(key);\n }\n }\n },\n destroy() {\n canvas.removeEventListener(\"webglcontextlost\", handleLost);\n if (!gl.isContextLost()) {\n for (const res of resources.values()) release(res);\n for (const p of Object.values(programs)) gl.deleteProgram(p.program);\n }\n resources.clear();\n gl.getExtension(\"WEBGL_lose_context\")?.loseContext();\n },\n };\n};\n"],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  import { ChartRenderer, RendererLostHandler } from './types.cjs';
2
- export declare const SOFTWARE_RENDERER: RegExp;
3
2
  export declare const createWebGl2Renderer: (canvas: HTMLCanvasElement, onLost: RendererLostHandler,
4
3
  /** Refuses software rendering (SwiftShader, blocklisted GPUs): Canvas2D with decimation is faster there */
5
4
  requireHardware?: boolean) => ChartRenderer | null;
@@ -1,5 +1,4 @@
1
1
  import { ChartRenderer, RendererLostHandler } from './types.js';
2
- export declare const SOFTWARE_RENDERER: RegExp;
3
2
  export declare const createWebGl2Renderer: (canvas: HTMLCanvasElement, onLost: RendererLostHandler,
4
3
  /** Refuses software rendering (SwiftShader, blocklisted GPUs): Canvas2D with decimation is faster there */
5
4
  requireHardware?: boolean) => ChartRenderer | null;
@@ -1,7 +1,8 @@
1
- import { instanceRange as e } from "./range.js";
2
- import { GLSL_AREA as t, GLSL_BAR as n, GLSL_LINE as r, GLSL_SCATTER as i } from "./shaders.js";
1
+ import { compileProgram as e, glContextAttributes as t, isSoftwareRenderer as n, itemParams as r } from "./gl.js";
2
+ import { instanceRange as i } from "./range.js";
3
+ import { GLSL_AREA as a, GLSL_BAR as o, GLSL_LINE as s, GLSL_SCATTER as c } from "./shaders.js";
3
4
  //#region src/engine/renderers/webgl2.ts
4
- var a = {
5
+ var l = {
5
6
  line: ["a_a", "a_b"],
6
7
  area: ["a_a", "a_b"],
7
8
  bar: ["a_inst", "a_color"],
@@ -10,76 +11,53 @@ var a = {
10
11
  "a_size",
11
12
  "a_color"
12
13
  ]
13
- }, o = (e, t, n) => {
14
- let r = (t, n) => {
15
- let r = e.createShader(t);
16
- return r ? (e.shaderSource(r, n), e.compileShader(r), e.getShaderParameter(r, e.COMPILE_STATUS) ? r : (e.deleteShader(r), null)) : null;
17
- }, i = r(e.VERTEX_SHADER, t.vertex), a = r(e.FRAGMENT_SHADER, t.fragment), o = e.createProgram();
18
- return !i || !a || !o ? null : (e.attachShader(o, i), e.attachShader(o, a), n.forEach((t, n) => e.bindAttribLocation(o, n, t)), e.linkProgram(o), e.deleteShader(i), e.deleteShader(a), e.getProgramParameter(o, e.LINK_STATUS) ? {
19
- program: o,
20
- xform: e.getUniformLocation(o, "u_xform"),
21
- viewport: e.getUniformLocation(o, "u_viewport"),
22
- color: e.getUniformLocation(o, "u_color"),
23
- params: e.getUniformLocation(o, "u_params")
24
- } : (e.deleteProgram(o), null));
25
- }, s = /swiftshader|llvmpipe|softpipe|software|basic render driver|microsoft basic/i, c = (e) => {
26
- let t = e.getExtension("WEBGL_debug_renderer_info"), n = t ? e.getParameter(t.UNMASKED_RENDERER_WEBGL) : e.getParameter(e.RENDERER);
27
- return s.test(String(n ?? ""));
28
- }, l = (s, l, u = !1) => {
29
- let d = s.getContext("webgl2", {
30
- alpha: !0,
31
- premultipliedAlpha: !0,
32
- antialias: !1,
33
- depth: !1,
34
- stencil: !1,
35
- preserveDrawingBuffer: !1,
36
- failIfMajorPerformanceCaveat: u
37
- });
38
- if (!d) return null;
39
- if (u && c(d)) return d.getExtension("WEBGL_lose_context")?.loseContext(), null;
40
- let f = o(d, r, a.line), p = o(d, t, a.area), m = o(d, n, a.bar), h = o(d, i, a.scatter);
41
- if (!f || !p || !m || !h) return null;
42
- let g = {
43
- line: f,
44
- area: p,
45
- bar: m,
46
- scatter: h
47
- }, _ = !1, v = (e) => {
48
- e.preventDefault(), _ = !0, l();
14
+ }, u = (u, d, f = !1) => {
15
+ let p = u.getContext("webgl2", t(f));
16
+ if (!p) return null;
17
+ if (f && n(p)) return p.getExtension("WEBGL_lose_context")?.loseContext(), null;
18
+ let m = e(p, s, l.line), h = e(p, a, l.area), g = e(p, o, l.bar), _ = e(p, c, l.scatter);
19
+ if (!m || !h || !g || !_) return null;
20
+ let v = {
21
+ line: m,
22
+ area: h,
23
+ bar: g,
24
+ scatter: _
25
+ }, y = !1, b = (e) => {
26
+ e.preventDefault(), y = !0, d();
49
27
  };
50
- s.addEventListener("webglcontextlost", v);
51
- let y = /* @__PURE__ */ new Map(), b = (e, t) => {
52
- let n = d.FLOAT;
28
+ u.addEventListener("webglcontextlost", b);
29
+ let x = /* @__PURE__ */ new Map(), S = (e, t) => {
30
+ let n = p.FLOAT;
53
31
  switch (e.kind) {
54
32
  case "line":
55
- d.enableVertexAttribArray(0), d.vertexAttribPointer(0, 2, n, !1, 8, t * 8), d.vertexAttribDivisor(0, 1), d.enableVertexAttribArray(1), d.vertexAttribPointer(1, 2, n, !1, 8, t * 8 + 8), d.vertexAttribDivisor(1, 1);
33
+ p.enableVertexAttribArray(0), p.vertexAttribPointer(0, 2, n, !1, 8, t * 8), p.vertexAttribDivisor(0, 1), p.enableVertexAttribArray(1), p.vertexAttribPointer(1, 2, n, !1, 8, t * 8 + 8), p.vertexAttribDivisor(1, 1);
56
34
  break;
57
35
  case "area":
58
- d.enableVertexAttribArray(0), d.vertexAttribPointer(0, 3, n, !1, 12, t * 12), d.vertexAttribDivisor(0, 1), d.enableVertexAttribArray(1), d.vertexAttribPointer(1, 3, n, !1, 12, (t + 1) * 12), d.vertexAttribDivisor(1, 1);
36
+ p.enableVertexAttribArray(0), p.vertexAttribPointer(0, 3, n, !1, 12, t * 12), p.vertexAttribDivisor(0, 1), p.enableVertexAttribArray(1), p.vertexAttribPointer(1, 3, n, !1, 12, (t + 1) * 12), p.vertexAttribDivisor(1, 1);
59
37
  break;
60
38
  case "bar":
61
- d.enableVertexAttribArray(0), d.vertexAttribPointer(0, 3, n, !1, 16, t * 16), d.vertexAttribDivisor(0, 1), d.enableVertexAttribArray(1), d.vertexAttribPointer(1, 4, d.UNSIGNED_BYTE, !0, 16, t * 16 + 12), d.vertexAttribDivisor(1, 1);
39
+ p.enableVertexAttribArray(0), p.vertexAttribPointer(0, 3, n, !1, 16, t * 16), p.vertexAttribDivisor(0, 1), p.enableVertexAttribArray(1), p.vertexAttribPointer(1, 4, p.UNSIGNED_BYTE, !0, 16, t * 16 + 12), p.vertexAttribDivisor(1, 1);
62
40
  break;
63
- default: d.enableVertexAttribArray(0), d.vertexAttribPointer(0, 2, n, !1, 16, 0), d.vertexAttribDivisor(0, 1), d.enableVertexAttribArray(1), d.vertexAttribPointer(1, 1, n, !1, 16, 8), d.vertexAttribDivisor(1, 1), d.enableVertexAttribArray(2), d.vertexAttribPointer(2, 4, d.UNSIGNED_BYTE, !0, 16, 12), d.vertexAttribDivisor(2, 1);
41
+ default: p.enableVertexAttribArray(0), p.vertexAttribPointer(0, 2, n, !1, 16, 0), p.vertexAttribDivisor(0, 1), p.enableVertexAttribArray(1), p.vertexAttribPointer(1, 1, n, !1, 16, 8), p.vertexAttribDivisor(1, 1), p.enableVertexAttribArray(2), p.vertexAttribPointer(2, 4, p.UNSIGNED_BYTE, !0, 16, 12), p.vertexAttribDivisor(2, 1);
64
42
  }
65
- }, x = (e) => {
66
- d.deleteBuffer(e.buffer), d.deleteVertexArray(e.vao);
67
- }, S = (e) => {
68
- let t = y.get(e.key);
43
+ }, C = (e) => {
44
+ p.deleteBuffer(e.buffer), p.deleteVertexArray(e.vao);
45
+ }, w = (e) => {
46
+ let t = x.get(e.key);
69
47
  if (t && t.version === e.version && t.kind === e.kind) return t;
70
- t && x(t);
71
- let n = d.createBuffer(), r = d.createVertexArray();
48
+ t && C(t);
49
+ let n = p.createBuffer(), r = p.createVertexArray();
72
50
  if (!n || !r) return null;
73
- switch (d.bindVertexArray(r), d.bindBuffer(d.ARRAY_BUFFER, n), e.kind) {
51
+ switch (p.bindVertexArray(r), p.bindBuffer(p.ARRAY_BUFFER, n), e.kind) {
74
52
  case "line":
75
- d.bufferData(d.ARRAY_BUFFER, e.points, d.STATIC_DRAW, 0, e.count * 2);
53
+ p.bufferData(p.ARRAY_BUFFER, e.points, p.STATIC_DRAW, 0, e.count * 2);
76
54
  break;
77
55
  case "area":
78
- d.bufferData(d.ARRAY_BUFFER, e.points, d.STATIC_DRAW, 0, e.count * 3);
56
+ p.bufferData(p.ARRAY_BUFFER, e.points, p.STATIC_DRAW, 0, e.count * 3);
79
57
  break;
80
- default: d.bufferData(d.ARRAY_BUFFER, e.instances, d.STATIC_DRAW);
58
+ default: p.bufferData(p.ARRAY_BUFFER, e.instances, p.STATIC_DRAW);
81
59
  }
82
- b(e, 0), d.bindVertexArray(null);
60
+ S(e, 0), p.bindVertexArray(null);
83
61
  let i = {
84
62
  version: e.version,
85
63
  kind: e.kind,
@@ -87,69 +65,42 @@ var a = {
87
65
  vao: r,
88
66
  first: 0
89
67
  };
90
- return y.set(e.key, i), i;
91
- }, C = (e, t) => {
92
- switch (e.kind) {
93
- case "line": return [
94
- e.width * t.dpr / 2,
95
- 0,
96
- 0,
97
- 0
98
- ];
99
- case "area": return [
100
- 0,
101
- e.opacity,
102
- 0,
103
- 0
104
- ];
105
- case "bar": return [
106
- e.halfWidth,
107
- e.radius,
108
- e.inset,
109
- e.minHalf
110
- ];
111
- default: return [
112
- e.opacity,
113
- e.stroke,
114
- 0,
115
- 0
116
- ];
117
- }
68
+ return x.set(e.key, i), i;
118
69
  };
119
70
  return {
120
71
  kind: "webgl2",
121
- canvas: s,
72
+ canvas: u,
122
73
  resize(e, t) {
123
- s.width = Math.max(1, e), s.height = Math.max(1, t);
74
+ u.width = Math.max(1, e), u.height = Math.max(1, t);
124
75
  },
125
- render(t, n) {
126
- if (_ || d.isContextLost()) return;
127
- d.viewport(0, 0, s.width, s.height), d.clearColor(0, 0, 0, 0), d.clear(d.COLOR_BUFFER_BIT), d.enable(d.BLEND), d.blendFunc(d.ONE, d.ONE_MINUS_SRC_ALPHA);
128
- let r = n.transform, i = /* @__PURE__ */ new Set();
129
- for (let a of t) {
130
- i.add(a.key);
131
- let [t, o] = e(a, n);
132
- if (o <= 0) continue;
133
- let s = S(a);
134
- if (!s) continue;
135
- let c = g[a.kind];
136
- d.useProgram(c.program), d.uniform4f(c.xform, r.xScale, r.xOffset, r.yScale, r.yOffset), d.uniform4f(c.viewport, n.width, n.height, n.dpr, 0), d.uniform4f(c.color, a.color[0], a.color[1], a.color[2], a.color[3]);
137
- let [l, u, f, p] = C(a, n);
138
- d.uniform4f(c.params, l, u, f, p), d.bindVertexArray(s.vao), s.first !== t && (d.bindBuffer(d.ARRAY_BUFFER, s.buffer), b(a, t), s.first = t), d.drawArraysInstanced(d.TRIANGLE_STRIP, 0, 4, o);
76
+ render(e, t) {
77
+ if (y || p.isContextLost()) return;
78
+ p.viewport(0, 0, u.width, u.height), p.clearColor(0, 0, 0, 0), p.clear(p.COLOR_BUFFER_BIT), p.enable(p.BLEND), p.blendFunc(p.ONE, p.ONE_MINUS_SRC_ALPHA);
79
+ let n = t.transform, a = /* @__PURE__ */ new Set();
80
+ for (let o of e) {
81
+ a.add(o.key);
82
+ let [e, s] = i(o, t);
83
+ if (s <= 0) continue;
84
+ let c = w(o);
85
+ if (!c) continue;
86
+ let l = v[o.kind];
87
+ p.useProgram(l.program), p.uniform4f(l.xform, n.xScale, n.xOffset, n.yScale, n.yOffset), p.uniform4f(l.viewport, t.width, t.height, t.dpr, 0), p.uniform4f(l.color, o.color[0], o.color[1], o.color[2], o.color[3]);
88
+ let [u, d, f, m] = r(o, t);
89
+ p.uniform4f(l.params, u, d, f, m), p.bindVertexArray(c.vao), c.first !== e && (p.bindBuffer(p.ARRAY_BUFFER, c.buffer), S(o, e), c.first = e), p.drawArraysInstanced(p.TRIANGLE_STRIP, 0, 4, s);
139
90
  }
140
- d.bindVertexArray(null);
141
- for (let [e, t] of y) i.has(e) || (x(t), y.delete(e));
91
+ p.bindVertexArray(null);
92
+ for (let [e, t] of x) a.has(e) || (C(t), x.delete(e));
142
93
  },
143
94
  destroy() {
144
- if (s.removeEventListener("webglcontextlost", v), !d.isContextLost()) {
145
- for (let e of y.values()) x(e);
146
- for (let e of Object.values(g)) d.deleteProgram(e.program);
95
+ if (u.removeEventListener("webglcontextlost", b), !p.isContextLost()) {
96
+ for (let e of x.values()) C(e);
97
+ for (let e of Object.values(v)) p.deleteProgram(e.program);
147
98
  }
148
- y.clear(), d.getExtension("WEBGL_lose_context")?.loseContext();
99
+ x.clear(), p.getExtension("WEBGL_lose_context")?.loseContext();
149
100
  }
150
101
  };
151
102
  };
152
103
  //#endregion
153
- export { s as SOFTWARE_RENDERER, l as createWebGl2Renderer };
104
+ export { u as createWebGl2Renderer };
154
105
 
155
106
  //# sourceMappingURL=webgl2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"webgl2.js","names":["ATTRIBUTES","compile","shader","s","gl","type","code","vs","source","fs","program","attributes","i","name","SOFTWARE_RENDERER","isSoftwareRenderer","info","createWebGl2Renderer","canvas","requireHardware","line","GLSL_LINE","area","GLSL_AREA","bar","GLSL_BAR","scatter","GLSL_SCATTER","programs","lost","handleLost","event","onLost","resources","setupAttributes","F","item","first","release","res","upload","existing","buffer","vao","params","frame","width","height","t","seen","items","instances","instanceRange","p0","p1","p2","p3","key","p"],"sources":["../../../../../charts/src/engine/renderers/webgl2.ts"],"sourcesContent":["// WebGL2 backend: same instanced primitives as WebGPU, in GLSL ES 3.0.\n\nimport { instanceRange } from \"./range\";\nimport { GLSL_AREA, GLSL_BAR, GLSL_LINE, GLSL_SCATTER } from \"./shaders\";\nimport {\n AREA_STRIDE,\n BAR_STRIDE,\n SCATTER_STRIDE,\n type ChartRenderer,\n type RenderFrame,\n type RenderItem,\n type RendererLostHandler,\n} from \"./types\";\n\ninterface Program {\n program: WebGLProgram;\n xform: WebGLUniformLocation | null;\n viewport: WebGLUniformLocation | null;\n color: WebGLUniformLocation | null;\n params: WebGLUniformLocation | null;\n}\n\ninterface ItemResources {\n version: number;\n kind: RenderItem[\"kind\"];\n buffer: WebGLBuffer;\n vao: WebGLVertexArrayObject;\n /** First instance the attribute pointers start at */\n first: number;\n}\n\nconst ATTRIBUTES: Record<RenderItem[\"kind\"], string[]> = {\n line: [\"a_a\", \"a_b\"],\n area: [\"a_a\", \"a_b\"],\n bar: [\"a_inst\", \"a_color\"],\n scatter: [\"a_pos\", \"a_size\", \"a_color\"],\n};\n\nconst compile = (\n gl: WebGL2RenderingContext,\n source: { vertex: string; fragment: string },\n attributes: string[],\n): Program | null => {\n const shader = (type: number, code: string) => {\n const s = gl.createShader(type);\n if (!s) return null;\n gl.shaderSource(s, code);\n gl.compileShader(s);\n if (!gl.getShaderParameter(s, gl.COMPILE_STATUS)) {\n gl.deleteShader(s);\n return null;\n }\n return s;\n };\n const vs = shader(gl.VERTEX_SHADER, source.vertex);\n const fs = shader(gl.FRAGMENT_SHADER, source.fragment);\n const program = gl.createProgram();\n if (!vs || !fs || !program) return null;\n gl.attachShader(program, vs);\n gl.attachShader(program, fs);\n attributes.forEach((name, i) => gl.bindAttribLocation(program, i, name));\n gl.linkProgram(program);\n gl.deleteShader(vs);\n gl.deleteShader(fs);\n if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {\n gl.deleteProgram(program);\n return null;\n }\n return {\n program,\n xform: gl.getUniformLocation(program, \"u_xform\"),\n viewport: gl.getUniformLocation(program, \"u_viewport\"),\n color: gl.getUniformLocation(program, \"u_color\"),\n params: gl.getUniformLocation(program, \"u_params\"),\n };\n};\n\nexport const SOFTWARE_RENDERER =\n /swiftshader|llvmpipe|softpipe|software|basic render driver|microsoft basic/i;\n\n/** Software rasterizer (SwiftShader, llvmpipe, ...) behind the WebGL context */\nconst isSoftwareRenderer = (gl: WebGL2RenderingContext): boolean => {\n const info = gl.getExtension(\"WEBGL_debug_renderer_info\");\n const name = info\n ? gl.getParameter(info.UNMASKED_RENDERER_WEBGL)\n : gl.getParameter(gl.RENDERER);\n return SOFTWARE_RENDERER.test(String(name ?? \"\"));\n};\n\nexport const createWebGl2Renderer = (\n canvas: HTMLCanvasElement,\n onLost: RendererLostHandler,\n /** Refuses software rendering (SwiftShader, blocklisted GPUs): Canvas2D with decimation is faster there */\n requireHardware = false,\n): ChartRenderer | null => {\n const gl = canvas.getContext(\"webgl2\", {\n alpha: true,\n premultipliedAlpha: true,\n antialias: false,\n depth: false,\n stencil: false,\n preserveDrawingBuffer: false,\n failIfMajorPerformanceCaveat: requireHardware,\n });\n if (!gl) return null;\n if (requireHardware && isSoftwareRenderer(gl)) {\n gl.getExtension(\"WEBGL_lose_context\")?.loseContext();\n return null;\n }\n\n const line = compile(gl, GLSL_LINE, ATTRIBUTES.line);\n const area = compile(gl, GLSL_AREA, ATTRIBUTES.area);\n const bar = compile(gl, GLSL_BAR, ATTRIBUTES.bar);\n const scatter = compile(gl, GLSL_SCATTER, ATTRIBUTES.scatter);\n if (!line || !area || !bar || !scatter) return null;\n const programs = { line, area, bar, scatter };\n\n let lost = false;\n const handleLost = (event: Event) => {\n event.preventDefault();\n lost = true;\n onLost();\n };\n canvas.addEventListener(\"webglcontextlost\", handleLost);\n\n const resources = new Map<string, ItemResources>();\n\n /** WebGL2 has no base instance: the pointers start at the first instance */\n const setupAttributes = (item: RenderItem, first: number) => {\n const F = gl.FLOAT;\n switch (item.kind) {\n case \"line\":\n gl.enableVertexAttribArray(0);\n gl.vertexAttribPointer(0, 2, F, false, 8, first * 8);\n gl.vertexAttribDivisor(0, 1);\n gl.enableVertexAttribArray(1);\n gl.vertexAttribPointer(1, 2, F, false, 8, first * 8 + 8);\n gl.vertexAttribDivisor(1, 1);\n break;\n case \"area\": {\n const stride = AREA_STRIDE * 4;\n gl.enableVertexAttribArray(0);\n gl.vertexAttribPointer(0, 3, F, false, stride, first * stride);\n gl.vertexAttribDivisor(0, 1);\n gl.enableVertexAttribArray(1);\n gl.vertexAttribPointer(1, 3, F, false, stride, (first + 1) * stride);\n gl.vertexAttribDivisor(1, 1);\n break;\n }\n case \"bar\":\n gl.enableVertexAttribArray(0);\n gl.vertexAttribPointer(0, 3, F, false, BAR_STRIDE, first * BAR_STRIDE);\n gl.vertexAttribDivisor(0, 1);\n gl.enableVertexAttribArray(1);\n gl.vertexAttribPointer(\n 1,\n 4,\n gl.UNSIGNED_BYTE,\n true,\n BAR_STRIDE,\n first * BAR_STRIDE + 12,\n );\n gl.vertexAttribDivisor(1, 1);\n break;\n default:\n gl.enableVertexAttribArray(0);\n gl.vertexAttribPointer(0, 2, F, false, SCATTER_STRIDE, 0);\n gl.vertexAttribDivisor(0, 1);\n gl.enableVertexAttribArray(1);\n gl.vertexAttribPointer(1, 1, F, false, SCATTER_STRIDE, 8);\n gl.vertexAttribDivisor(1, 1);\n gl.enableVertexAttribArray(2);\n gl.vertexAttribPointer(\n 2,\n 4,\n gl.UNSIGNED_BYTE,\n true,\n SCATTER_STRIDE,\n 12,\n );\n gl.vertexAttribDivisor(2, 1);\n break;\n }\n };\n\n const release = (res: ItemResources) => {\n gl.deleteBuffer(res.buffer);\n gl.deleteVertexArray(res.vao);\n };\n\n const upload = (item: RenderItem): ItemResources | null => {\n const existing = resources.get(item.key);\n if (\n existing &&\n existing.version === item.version &&\n existing.kind === item.kind\n ) {\n return existing;\n }\n if (existing) release(existing);\n const buffer = gl.createBuffer();\n const vao = gl.createVertexArray();\n if (!buffer || !vao) return null;\n gl.bindVertexArray(vao);\n gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\n switch (item.kind) {\n case \"line\":\n gl.bufferData(\n gl.ARRAY_BUFFER,\n item.points,\n gl.STATIC_DRAW,\n 0,\n item.count * 2,\n );\n break;\n case \"area\":\n gl.bufferData(\n gl.ARRAY_BUFFER,\n item.points,\n gl.STATIC_DRAW,\n 0,\n item.count * AREA_STRIDE,\n );\n break;\n default:\n gl.bufferData(gl.ARRAY_BUFFER, item.instances, gl.STATIC_DRAW);\n break;\n }\n setupAttributes(item, 0);\n gl.bindVertexArray(null);\n const res = {\n version: item.version,\n kind: item.kind,\n buffer,\n vao,\n first: 0,\n };\n resources.set(item.key, res);\n return res;\n };\n\n const params = (\n item: RenderItem,\n frame: RenderFrame,\n ): [number, number, number, number] => {\n switch (item.kind) {\n case \"line\":\n return [(item.width * frame.dpr) / 2, 0, 0, 0];\n case \"area\":\n return [0, item.opacity, 0, 0];\n case \"bar\":\n return [item.halfWidth, item.radius, item.inset, item.minHalf];\n default:\n return [item.opacity, item.stroke, 0, 0];\n }\n };\n\n return {\n kind: \"webgl2\",\n canvas,\n resize(width, height) {\n canvas.width = Math.max(1, width);\n canvas.height = Math.max(1, height);\n },\n render(items, frame) {\n if (lost || gl.isContextLost()) return;\n gl.viewport(0, 0, canvas.width, canvas.height);\n gl.clearColor(0, 0, 0, 0);\n gl.clear(gl.COLOR_BUFFER_BIT);\n gl.enable(gl.BLEND);\n gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA);\n const t = frame.transform;\n const seen = new Set<string>();\n for (const item of items) {\n seen.add(item.key);\n const [first, instances] = instanceRange(item, frame);\n if (instances <= 0) continue;\n const res = upload(item);\n if (!res) continue;\n const program = programs[item.kind];\n gl.useProgram(program.program);\n gl.uniform4f(program.xform, t.xScale, t.xOffset, t.yScale, t.yOffset);\n gl.uniform4f(program.viewport, frame.width, frame.height, frame.dpr, 0);\n gl.uniform4f(\n program.color,\n item.color[0],\n item.color[1],\n item.color[2],\n item.color[3],\n );\n const [p0, p1, p2, p3] = params(item, frame);\n gl.uniform4f(program.params, p0, p1, p2, p3);\n gl.bindVertexArray(res.vao);\n if (res.first !== first) {\n gl.bindBuffer(gl.ARRAY_BUFFER, res.buffer);\n setupAttributes(item, first);\n res.first = first;\n }\n gl.drawArraysInstanced(gl.TRIANGLE_STRIP, 0, 4, instances);\n }\n gl.bindVertexArray(null);\n for (const [key, res] of resources) {\n if (!seen.has(key)) {\n release(res);\n resources.delete(key);\n }\n }\n },\n destroy() {\n canvas.removeEventListener(\"webglcontextlost\", handleLost);\n if (!gl.isContextLost()) {\n for (const res of resources.values()) release(res);\n for (const p of Object.values(programs)) gl.deleteProgram(p.program);\n }\n resources.clear();\n gl.getExtension(\"WEBGL_lose_context\")?.loseContext();\n },\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"webgl2.js","names":["ATTRIBUTES","createWebGl2Renderer","gl","canvas","glContextAttributes","requireHardware","isSoftwareRenderer","line","compileProgram","GLSL_LINE","area","GLSL_AREA","bar","GLSL_BAR","scatter","GLSL_SCATTER","programs","lost","handleLost","event","onLost","resources","setupAttributes","F","item","first","release","res","upload","existing","buffer","vao","width","height","t","frame","seen","items","instances","instanceRange","program","p0","p1","p2","p3","itemParams","key","p"],"sources":["../../../../../charts/src/engine/renderers/webgl2.ts"],"sourcesContent":["// WebGL2 backend: same instanced primitives as WebGPU, in GLSL ES 3.0.\n\nimport {\n compileProgram,\n glContextAttributes,\n isSoftwareRenderer,\n itemParams,\n} from \"./gl\";\nimport { instanceRange } from \"./range\";\nimport { GLSL_AREA, GLSL_BAR, GLSL_LINE, GLSL_SCATTER } from \"./shaders\";\nimport {\n AREA_STRIDE,\n BAR_STRIDE,\n SCATTER_STRIDE,\n type ChartRenderer,\n type RenderItem,\n type RendererLostHandler,\n} from \"./types\";\n\ninterface ItemResources {\n version: number;\n kind: RenderItem[\"kind\"];\n buffer: WebGLBuffer;\n vao: WebGLVertexArrayObject;\n /** First instance the attribute pointers start at */\n first: number;\n}\n\nconst ATTRIBUTES: Record<RenderItem[\"kind\"], string[]> = {\n line: [\"a_a\", \"a_b\"],\n area: [\"a_a\", \"a_b\"],\n bar: [\"a_inst\", \"a_color\"],\n scatter: [\"a_pos\", \"a_size\", \"a_color\"],\n};\n\nexport const createWebGl2Renderer = (\n canvas: HTMLCanvasElement,\n onLost: RendererLostHandler,\n /** Refuses software rendering (SwiftShader, blocklisted GPUs): Canvas2D with decimation is faster there */\n requireHardware = false,\n): ChartRenderer | null => {\n const gl = canvas.getContext(\"webgl2\", glContextAttributes(requireHardware));\n if (!gl) return null;\n if (requireHardware && isSoftwareRenderer(gl)) {\n gl.getExtension(\"WEBGL_lose_context\")?.loseContext();\n return null;\n }\n\n const line = compileProgram(gl, GLSL_LINE, ATTRIBUTES.line);\n const area = compileProgram(gl, GLSL_AREA, ATTRIBUTES.area);\n const bar = compileProgram(gl, GLSL_BAR, ATTRIBUTES.bar);\n const scatter = compileProgram(gl, GLSL_SCATTER, ATTRIBUTES.scatter);\n if (!line || !area || !bar || !scatter) return null;\n const programs = { line, area, bar, scatter };\n\n let lost = false;\n const handleLost = (event: Event) => {\n event.preventDefault();\n lost = true;\n onLost();\n };\n canvas.addEventListener(\"webglcontextlost\", handleLost);\n\n const resources = new Map<string, ItemResources>();\n\n /** WebGL2 has no base instance: the pointers start at the first instance */\n const setupAttributes = (item: RenderItem, first: number) => {\n const F = gl.FLOAT;\n switch (item.kind) {\n case \"line\":\n gl.enableVertexAttribArray(0);\n gl.vertexAttribPointer(0, 2, F, false, 8, first * 8);\n gl.vertexAttribDivisor(0, 1);\n gl.enableVertexAttribArray(1);\n gl.vertexAttribPointer(1, 2, F, false, 8, first * 8 + 8);\n gl.vertexAttribDivisor(1, 1);\n break;\n case \"area\": {\n const stride = AREA_STRIDE * 4;\n gl.enableVertexAttribArray(0);\n gl.vertexAttribPointer(0, 3, F, false, stride, first * stride);\n gl.vertexAttribDivisor(0, 1);\n gl.enableVertexAttribArray(1);\n gl.vertexAttribPointer(1, 3, F, false, stride, (first + 1) * stride);\n gl.vertexAttribDivisor(1, 1);\n break;\n }\n case \"bar\":\n gl.enableVertexAttribArray(0);\n gl.vertexAttribPointer(0, 3, F, false, BAR_STRIDE, first * BAR_STRIDE);\n gl.vertexAttribDivisor(0, 1);\n gl.enableVertexAttribArray(1);\n gl.vertexAttribPointer(\n 1,\n 4,\n gl.UNSIGNED_BYTE,\n true,\n BAR_STRIDE,\n first * BAR_STRIDE + 12,\n );\n gl.vertexAttribDivisor(1, 1);\n break;\n default:\n gl.enableVertexAttribArray(0);\n gl.vertexAttribPointer(0, 2, F, false, SCATTER_STRIDE, 0);\n gl.vertexAttribDivisor(0, 1);\n gl.enableVertexAttribArray(1);\n gl.vertexAttribPointer(1, 1, F, false, SCATTER_STRIDE, 8);\n gl.vertexAttribDivisor(1, 1);\n gl.enableVertexAttribArray(2);\n gl.vertexAttribPointer(\n 2,\n 4,\n gl.UNSIGNED_BYTE,\n true,\n SCATTER_STRIDE,\n 12,\n );\n gl.vertexAttribDivisor(2, 1);\n break;\n }\n };\n\n const release = (res: ItemResources) => {\n gl.deleteBuffer(res.buffer);\n gl.deleteVertexArray(res.vao);\n };\n\n const upload = (item: RenderItem): ItemResources | null => {\n const existing = resources.get(item.key);\n if (\n existing &&\n existing.version === item.version &&\n existing.kind === item.kind\n ) {\n return existing;\n }\n if (existing) release(existing);\n const buffer = gl.createBuffer();\n const vao = gl.createVertexArray();\n if (!buffer || !vao) return null;\n gl.bindVertexArray(vao);\n gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\n switch (item.kind) {\n case \"line\":\n gl.bufferData(\n gl.ARRAY_BUFFER,\n item.points,\n gl.STATIC_DRAW,\n 0,\n item.count * 2,\n );\n break;\n case \"area\":\n gl.bufferData(\n gl.ARRAY_BUFFER,\n item.points,\n gl.STATIC_DRAW,\n 0,\n item.count * AREA_STRIDE,\n );\n break;\n default:\n gl.bufferData(gl.ARRAY_BUFFER, item.instances, gl.STATIC_DRAW);\n break;\n }\n setupAttributes(item, 0);\n gl.bindVertexArray(null);\n const res = {\n version: item.version,\n kind: item.kind,\n buffer,\n vao,\n first: 0,\n };\n resources.set(item.key, res);\n return res;\n };\n\n return {\n kind: \"webgl2\",\n canvas,\n resize(width, height) {\n canvas.width = Math.max(1, width);\n canvas.height = Math.max(1, height);\n },\n render(items, frame) {\n if (lost || gl.isContextLost()) return;\n gl.viewport(0, 0, canvas.width, canvas.height);\n gl.clearColor(0, 0, 0, 0);\n gl.clear(gl.COLOR_BUFFER_BIT);\n gl.enable(gl.BLEND);\n gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA);\n const t = frame.transform;\n const seen = new Set<string>();\n for (const item of items) {\n seen.add(item.key);\n const [first, instances] = instanceRange(item, frame);\n if (instances <= 0) continue;\n const res = upload(item);\n if (!res) continue;\n const program = programs[item.kind];\n gl.useProgram(program.program);\n gl.uniform4f(program.xform, t.xScale, t.xOffset, t.yScale, t.yOffset);\n gl.uniform4f(program.viewport, frame.width, frame.height, frame.dpr, 0);\n gl.uniform4f(\n program.color,\n item.color[0],\n item.color[1],\n item.color[2],\n item.color[3],\n );\n const [p0, p1, p2, p3] = itemParams(item, frame);\n gl.uniform4f(program.params, p0, p1, p2, p3);\n gl.bindVertexArray(res.vao);\n if (res.first !== first) {\n gl.bindBuffer(gl.ARRAY_BUFFER, res.buffer);\n setupAttributes(item, first);\n res.first = first;\n }\n gl.drawArraysInstanced(gl.TRIANGLE_STRIP, 0, 4, instances);\n }\n gl.bindVertexArray(null);\n for (const [key, res] of resources) {\n if (!seen.has(key)) {\n release(res);\n resources.delete(key);\n }\n }\n },\n destroy() {\n canvas.removeEventListener(\"webglcontextlost\", handleLost);\n if (!gl.isContextLost()) {\n for (const res of resources.values()) release(res);\n for (const p of Object.values(programs)) gl.deleteProgram(p.program);\n }\n resources.clear();\n gl.getExtension(\"WEBGL_lose_context\")?.loseContext();\n },\n };\n};\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- var e=Math.sqrt(50),t=Math.sqrt(10),n=Math.sqrt(2),r=(r,i,a)=>{let o=Math.abs(i-r);if(!(o>0)||!Number.isFinite(o))return 0;let s=o/Math.max(1,a),c=10**Math.floor(Math.log10(s)),l=s/c;return(l>=e?10:l>=t?5:l>=n?2:1)*c},i=(e,t)=>{let n=Math.max(0,-Math.floor(Math.log10(t))+1);return n>0&&n<20?+e.toFixed(n):e},a=(e,t,n)=>{e>t&&([e,t]=[t,e]);let a=r(e,t,n);if(!a)return Number.isFinite(e)?[e]:[];let o=Math.ceil(e/a-1e-9),s=Math.floor(t/a+1e-9),c=[];for(let e=o;e<=s&&c.length<1e3;e++)c.push(i(e*a,a));return c},o=(e,t,n)=>{e>t&&([e,t]=[t,e]);let a=r(e,t,n);for(let o=0;o<3&&a;o++){let o=Math.floor(e/a)*a,s=Math.ceil(t/a)*a;e=i(o,a),t=i(s,a);let c=r(e,t,n);if(c===a)break;a=c}return[e,t]},s=(e,t,n=[0,1])=>{if(!Number.isFinite(e)||!Number.isFinite(t))return n;if(e>t&&([e,t]=[t,e]),t-e>0)return[e,t];let r=e===0?1:Math.abs(e)*.1;return[e-r,t+r]},c=e=>e>0&&Number.isFinite(e)?Math.min(12,Math.max(0,-Math.floor(Math.log10(e)+1e-9))):0;exports.ensureSpan=s,exports.linearTicks=a,exports.niceDomain=o,exports.stepDecimals=c,exports.tickStep=r;
1
+ var e=Math.sqrt(50),t=Math.sqrt(10),n=Math.sqrt(2),r=(r,i,a)=>{let o=Math.abs(i-r);if(!(o>0)||!Number.isFinite(o))return 0;let s=o/Math.max(1,a),c=10**Math.floor(Math.log10(s)),l=s/c;return(l>=e?10:l>=t?5:l>=n?2:1)*c},i=(e,t)=>{let n=Math.max(0,-Math.floor(Math.log10(t))+1);return n>0&&n<20?+e.toFixed(n):e},a=(e,t,n)=>{e>t&&([e,t]=[t,e]);let a=r(e,t,n);if(!a)return Number.isFinite(e)?[e]:[];let o=Math.ceil(e/a-1e-9),s=Math.floor(t/a+1e-9),c=[];for(let e=o;e<=s&&c.length<1e3;e++)c.push(i(e*a,a)||0);return c},o=(e,t,n)=>{e>t&&([e,t]=[t,e]);let a=r(e,t,n);for(let o=0;o<3&&a;o++){let o=Math.floor(e/a)*a,s=Math.ceil(t/a)*a;e=i(o,a),t=i(s,a);let c=r(e,t,n);if(c===a)break;a=c}return[e,t]},s=(e,t,n=[0,1])=>{if(!Number.isFinite(e)||!Number.isFinite(t))return n;if(e>t&&([e,t]=[t,e]),t-e>0)return[e,t];let r=e===0?1:Math.abs(e)*.1;return[e-r,t+r]},c=e=>e>0&&Number.isFinite(e)?Math.min(12,Math.max(0,-Math.floor(Math.log10(e)+1e-9))):0;exports.ensureSpan=s,exports.linearTicks=a,exports.niceDomain=o,exports.stepDecimals=c,exports.tickStep=r;
2
2
  //# sourceMappingURL=scale.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"scale.cjs","names":["E10","E5","E2","tickStep","span","max","min","raw","count","base","error","roundTo","decimals","step","value","linearTicks","start","end","ticks","i","niceDomain","nextMin","nextMax","next","ensureSpan","fallback","pad","stepDecimals"],"sources":["../../../../charts/src/engine/scale.ts"],"sourcesContent":["// Numeric ticks and ranges.\n\nconst E10 = Math.sqrt(50);\nconst E5 = Math.sqrt(10);\nconst E2 = Math.sqrt(2);\n\n/** Tick step close to `(max - min) / count`, of the form 1, 2 or 5 × 10^k */\nexport const tickStep = (min: number, max: number, count: number): number => {\n const span = Math.abs(max - min);\n if (!(span > 0) || !Number.isFinite(span)) return 0;\n const raw = span / Math.max(1, count);\n const power = Math.floor(Math.log10(raw));\n const base = 10 ** power;\n const error = raw / base;\n const factor = error >= E10 ? 10 : error >= E5 ? 5 : error >= E2 ? 2 : 1;\n return factor * base;\n};\n\n/** Rounds a value computed from a step (avoids 0.30000000000000004) */\nconst roundTo = (value: number, step: number): number => {\n const decimals = Math.max(0, -Math.floor(Math.log10(step)) + 1);\n return decimals > 0 && decimals < 20 ? +value.toFixed(decimals) : value;\n};\n\n/** Tick values inside [min, max] */\nexport const linearTicks = (\n min: number,\n max: number,\n count: number,\n): number[] => {\n if (min > max) [min, max] = [max, min];\n const step = tickStep(min, max, count);\n if (!step) return Number.isFinite(min) ? [min] : [];\n const start = Math.ceil(min / step - 1e-9);\n const end = Math.floor(max / step + 1e-9);\n const ticks: number[] = [];\n // Guard against pathological ranges\n for (let i = start; i <= end && ticks.length < 1000; i++) {\n ticks.push(roundTo(i * step, step));\n }\n return ticks;\n};\n\n/** Extends [min, max] to tick boundaries */\nexport const niceDomain = (\n min: number,\n max: number,\n count: number,\n): [number, number] => {\n if (min > max) [min, max] = [max, min];\n let step = tickStep(min, max, count);\n for (let i = 0; i < 3 && step; i++) {\n const nextMin = Math.floor(min / step) * step;\n const nextMax = Math.ceil(max / step) * step;\n min = roundTo(nextMin, step);\n max = roundTo(nextMax, step);\n const next = tickStep(min, max, count);\n if (next === step) break;\n step = next;\n }\n return [min, max];\n};\n\n/**\n * Range covering [min, max] with a usable span: a single value (or no data)\n * becomes a small range around it.\n */\nexport const ensureSpan = (\n min: number,\n max: number,\n fallback: [number, number] = [0, 1],\n): [number, number] => {\n if (!Number.isFinite(min) || !Number.isFinite(max)) return fallback;\n if (min > max) [min, max] = [max, min];\n if (max - min > 0) return [min, max];\n const pad = min === 0 ? 1 : Math.abs(min) * 0.1;\n return [min - pad, max + pad];\n};\n\n/** Number of decimals that keeps ticks distinct for a step */\nexport const stepDecimals = (step: number): number =>\n step > 0 && Number.isFinite(step)\n ? Math.min(12, Math.max(0, -Math.floor(Math.log10(step) + 1e-9)))\n : 0;\n"],"mappings":"AAEA,IAAMA,EAAM,KAAK,KAAK,EAAE,EAClBC,EAAK,KAAK,KAAK,EAAE,EACjBC,EAAK,KAAK,KAAK,CAAC,EAGTC,GAAY,EAAa,EAAa,IAA0B,CAC3E,IAAMC,EAAO,KAAK,IAAIC,EAAMC,CAAG,EAC/B,GAAI,EAAEF,EAAO,IAAM,CAAC,OAAO,SAASA,CAAI,EAAG,MAAO,GAClD,IAAMG,EAAMH,EAAO,KAAK,IAAI,EAAGI,CAAK,EAE9BC,EAAO,IADC,KAAK,MAAM,KAAK,MAAMF,CAAG,CACpB,EACbG,EAAQH,EAAME,EAEpB,OADeC,GAASV,EAAM,GAAKU,GAAST,EAAK,EAAIS,GAASR,EAAK,EAAI,GACvDO,CAClB,EAGME,GAAW,EAAe,IAAyB,CACvD,IAAMC,EAAW,KAAK,IAAI,EAAG,CAAC,KAAK,MAAM,KAAK,MAAMC,CAAI,CAAC,EAAI,CAAC,EAC9D,OAAOD,EAAW,GAAKA,EAAW,GAAK,CAACE,EAAM,QAAQF,CAAQ,EAAIE,CACpE,EAGaC,GACX,EACA,EACA,IACa,CACTT,EAAMD,IAAK,CAACC,EAAKD,GAAO,CAACA,EAAKC,CAAG,GACrC,IAAMO,EAAOV,EAASG,EAAKD,EAAKG,CAAK,EACrC,GAAI,CAACK,EAAM,OAAO,OAAO,SAASP,CAAG,EAAI,CAACA,CAAG,EAAI,CAAC,EAClD,IAAMU,EAAQ,KAAK,KAAKV,EAAMO,EAAO,IAAI,EACnCI,EAAM,KAAK,MAAMZ,EAAMQ,EAAO,IAAI,EAClCK,EAAkB,CAAC,EAEzB,IAAK,IAAIC,EAAIH,EAAOG,GAAKF,GAAOC,EAAM,OAAS,IAAM,IACnDA,EAAM,KAAKP,EAAQQ,EAAIN,EAAMA,CAAI,CAAC,EAEpC,OAAOK,CACT,EAGaE,GACX,EACA,EACA,IACqB,CACjBd,EAAMD,IAAK,CAACC,EAAKD,GAAO,CAACA,EAAKC,CAAG,GACrC,IAAIO,EAAOV,EAASG,EAAKD,EAAKG,CAAK,EACnC,IAAK,IAAIW,EAAI,EAAGA,EAAI,GAAKN,EAAM,IAAK,CAClC,IAAMQ,EAAU,KAAK,MAAMf,EAAMO,CAAI,EAAIA,EACnCS,EAAU,KAAK,KAAKjB,EAAMQ,CAAI,EAAIA,EACxC,EAAMF,EAAQU,EAASR,CAAI,EAC3B,EAAMF,EAAQW,EAAST,CAAI,EAC3B,IAAMU,EAAOpB,EAASG,EAAKD,EAAKG,CAAK,EACrC,GAAIe,IAASV,EAAM,MACnB,EAAOU,CACT,CACA,MAAO,CAACjB,EAAKD,CAAG,CAClB,EAMamB,GACX,EACA,EACA,EAA6B,CAAC,EAAG,CAAC,IACb,CACrB,GAAI,CAAC,OAAO,SAASlB,CAAG,GAAK,CAAC,OAAO,SAASD,CAAG,EAAG,OAAOoB,EAE3D,GADInB,EAAMD,IAAK,CAACC,EAAKD,GAAO,CAACA,EAAKC,CAAG,GACjCD,EAAMC,EAAM,EAAG,MAAO,CAACA,EAAKD,CAAG,EACnC,IAAMqB,EAAMpB,IAAQ,EAAI,EAAI,KAAK,IAAIA,CAAG,EAAI,GAC5C,MAAO,CAACA,EAAMoB,EAAKrB,EAAMqB,CAAG,CAC9B,EAGaC,EAAgB,GAC3Bd,EAAO,GAAK,OAAO,SAASA,CAAI,EAC5B,KAAK,IAAI,GAAI,KAAK,IAAI,EAAG,CAAC,KAAK,MAAM,KAAK,MAAMA,CAAI,EAAI,IAAI,CAAC,CAAC,EAC9D"}
1
+ {"version":3,"file":"scale.cjs","names":["E10","E5","E2","tickStep","span","max","min","raw","count","base","error","roundTo","decimals","step","value","linearTicks","start","end","ticks","i","niceDomain","nextMin","nextMax","next","ensureSpan","fallback","pad","stepDecimals"],"sources":["../../../../charts/src/engine/scale.ts"],"sourcesContent":["// Numeric ticks and ranges.\n\nconst E10 = Math.sqrt(50);\nconst E5 = Math.sqrt(10);\nconst E2 = Math.sqrt(2);\n\n/** Tick step close to `(max - min) / count`, of the form 1, 2 or 5 × 10^k */\nexport const tickStep = (min: number, max: number, count: number): number => {\n const span = Math.abs(max - min);\n if (!(span > 0) || !Number.isFinite(span)) return 0;\n const raw = span / Math.max(1, count);\n const power = Math.floor(Math.log10(raw));\n const base = 10 ** power;\n const error = raw / base;\n const factor = error >= E10 ? 10 : error >= E5 ? 5 : error >= E2 ? 2 : 1;\n return factor * base;\n};\n\n/** Rounds a value computed from a step (avoids 0.30000000000000004) */\nconst roundTo = (value: number, step: number): number => {\n const decimals = Math.max(0, -Math.floor(Math.log10(step)) + 1);\n return decimals > 0 && decimals < 20 ? +value.toFixed(decimals) : value;\n};\n\n/** Tick values inside [min, max] */\nexport const linearTicks = (\n min: number,\n max: number,\n count: number,\n): number[] => {\n if (min > max) [min, max] = [max, min];\n const step = tickStep(min, max, count);\n if (!step) return Number.isFinite(min) ? [min] : [];\n const start = Math.ceil(min / step - 1e-9);\n const end = Math.floor(max / step + 1e-9);\n const ticks: number[] = [];\n // Guard against pathological ranges\n for (let i = start; i <= end && ticks.length < 1000; i++) {\n // `|| 0`: no -0 for the formatters (Intl writes \"-0\")\n ticks.push(roundTo(i * step, step) || 0);\n }\n return ticks;\n};\n\n/** Extends [min, max] to tick boundaries */\nexport const niceDomain = (\n min: number,\n max: number,\n count: number,\n): [number, number] => {\n if (min > max) [min, max] = [max, min];\n let step = tickStep(min, max, count);\n for (let i = 0; i < 3 && step; i++) {\n const nextMin = Math.floor(min / step) * step;\n const nextMax = Math.ceil(max / step) * step;\n min = roundTo(nextMin, step);\n max = roundTo(nextMax, step);\n const next = tickStep(min, max, count);\n if (next === step) break;\n step = next;\n }\n return [min, max];\n};\n\n/**\n * Range covering [min, max] with a usable span: a single value (or no data)\n * becomes a small range around it.\n */\nexport const ensureSpan = (\n min: number,\n max: number,\n fallback: [number, number] = [0, 1],\n): [number, number] => {\n if (!Number.isFinite(min) || !Number.isFinite(max)) return fallback;\n if (min > max) [min, max] = [max, min];\n if (max - min > 0) return [min, max];\n const pad = min === 0 ? 1 : Math.abs(min) * 0.1;\n return [min - pad, max + pad];\n};\n\n/** Number of decimals that keeps ticks distinct for a step */\nexport const stepDecimals = (step: number): number =>\n step > 0 && Number.isFinite(step)\n ? Math.min(12, Math.max(0, -Math.floor(Math.log10(step) + 1e-9)))\n : 0;\n"],"mappings":"AAEA,IAAMA,EAAM,KAAK,KAAK,EAAE,EAClBC,EAAK,KAAK,KAAK,EAAE,EACjBC,EAAK,KAAK,KAAK,CAAC,EAGTC,GAAY,EAAa,EAAa,IAA0B,CAC3E,IAAMC,EAAO,KAAK,IAAIC,EAAMC,CAAG,EAC/B,GAAI,EAAEF,EAAO,IAAM,CAAC,OAAO,SAASA,CAAI,EAAG,MAAO,GAClD,IAAMG,EAAMH,EAAO,KAAK,IAAI,EAAGI,CAAK,EAE9BC,EAAO,IADC,KAAK,MAAM,KAAK,MAAMF,CAAG,CACpB,EACbG,EAAQH,EAAME,EAEpB,OADeC,GAASV,EAAM,GAAKU,GAAST,EAAK,EAAIS,GAASR,EAAK,EAAI,GACvDO,CAClB,EAGME,GAAW,EAAe,IAAyB,CACvD,IAAMC,EAAW,KAAK,IAAI,EAAG,CAAC,KAAK,MAAM,KAAK,MAAMC,CAAI,CAAC,EAAI,CAAC,EAC9D,OAAOD,EAAW,GAAKA,EAAW,GAAK,CAACE,EAAM,QAAQF,CAAQ,EAAIE,CACpE,EAGaC,GACX,EACA,EACA,IACa,CACTT,EAAMD,IAAK,CAACC,EAAKD,GAAO,CAACA,EAAKC,CAAG,GACrC,IAAMO,EAAOV,EAASG,EAAKD,EAAKG,CAAK,EACrC,GAAI,CAACK,EAAM,OAAO,OAAO,SAASP,CAAG,EAAI,CAACA,CAAG,EAAI,CAAC,EAClD,IAAMU,EAAQ,KAAK,KAAKV,EAAMO,EAAO,IAAI,EACnCI,EAAM,KAAK,MAAMZ,EAAMQ,EAAO,IAAI,EAClCK,EAAkB,CAAC,EAEzB,IAAK,IAAIC,EAAIH,EAAOG,GAAKF,GAAOC,EAAM,OAAS,IAAM,IAEnDA,EAAM,KAAKP,EAAQQ,EAAIN,EAAMA,CAAI,GAAK,CAAC,EAEzC,OAAOK,CACT,EAGaE,GACX,EACA,EACA,IACqB,CACjBd,EAAMD,IAAK,CAACC,EAAKD,GAAO,CAACA,EAAKC,CAAG,GACrC,IAAIO,EAAOV,EAASG,EAAKD,EAAKG,CAAK,EACnC,IAAK,IAAIW,EAAI,EAAGA,EAAI,GAAKN,EAAM,IAAK,CAClC,IAAMQ,EAAU,KAAK,MAAMf,EAAMO,CAAI,EAAIA,EACnCS,EAAU,KAAK,KAAKjB,EAAMQ,CAAI,EAAIA,EACxC,EAAMF,EAAQU,EAASR,CAAI,EAC3B,EAAMF,EAAQW,EAAST,CAAI,EAC3B,IAAMU,EAAOpB,EAASG,EAAKD,EAAKG,CAAK,EACrC,GAAIe,IAASV,EAAM,MACnB,EAAOU,CACT,CACA,MAAO,CAACjB,EAAKD,CAAG,CAClB,EAMamB,GACX,EACA,EACA,EAA6B,CAAC,EAAG,CAAC,IACb,CACrB,GAAI,CAAC,OAAO,SAASlB,CAAG,GAAK,CAAC,OAAO,SAASD,CAAG,EAAG,OAAOoB,EAE3D,GADInB,EAAMD,IAAK,CAACC,EAAKD,GAAO,CAACA,EAAKC,CAAG,GACjCD,EAAMC,EAAM,EAAG,MAAO,CAACA,EAAKD,CAAG,EACnC,IAAMqB,EAAMpB,IAAQ,EAAI,EAAI,KAAK,IAAIA,CAAG,EAAI,GAC5C,MAAO,CAACA,EAAMoB,EAAKrB,EAAMqB,CAAG,CAC9B,EAGaC,EAAgB,GAC3Bd,EAAO,GAAK,OAAO,SAASA,CAAI,EAC5B,KAAK,IAAI,GAAI,KAAK,IAAI,EAAG,CAAC,KAAK,MAAM,KAAK,MAAMA,CAAI,EAAI,IAAI,CAAC,CAAC,EAC9D"}
@@ -12,7 +12,7 @@ var e = Math.sqrt(50), t = Math.sqrt(10), n = Math.sqrt(2), r = (r, i, a) => {
12
12
  let a = r(e, t, n);
13
13
  if (!a) return Number.isFinite(e) ? [e] : [];
14
14
  let o = Math.ceil(e / a - 1e-9), s = Math.floor(t / a + 1e-9), c = [];
15
- for (let e = o; e <= s && c.length < 1e3; e++) c.push(i(e * a, a));
15
+ for (let e = o; e <= s && c.length < 1e3; e++) c.push(i(e * a, a) || 0);
16
16
  return c;
17
17
  }, o = (e, t, n) => {
18
18
  e > t && ([e, t] = [t, e]);
@@ -1 +1 @@
1
- {"version":3,"file":"scale.js","names":["E10","E5","E2","tickStep","span","max","min","raw","count","base","error","roundTo","decimals","step","value","linearTicks","start","end","ticks","i","niceDomain","nextMin","nextMax","next","ensureSpan","fallback","pad","stepDecimals"],"sources":["../../../../charts/src/engine/scale.ts"],"sourcesContent":["// Numeric ticks and ranges.\n\nconst E10 = Math.sqrt(50);\nconst E5 = Math.sqrt(10);\nconst E2 = Math.sqrt(2);\n\n/** Tick step close to `(max - min) / count`, of the form 1, 2 or 5 × 10^k */\nexport const tickStep = (min: number, max: number, count: number): number => {\n const span = Math.abs(max - min);\n if (!(span > 0) || !Number.isFinite(span)) return 0;\n const raw = span / Math.max(1, count);\n const power = Math.floor(Math.log10(raw));\n const base = 10 ** power;\n const error = raw / base;\n const factor = error >= E10 ? 10 : error >= E5 ? 5 : error >= E2 ? 2 : 1;\n return factor * base;\n};\n\n/** Rounds a value computed from a step (avoids 0.30000000000000004) */\nconst roundTo = (value: number, step: number): number => {\n const decimals = Math.max(0, -Math.floor(Math.log10(step)) + 1);\n return decimals > 0 && decimals < 20 ? +value.toFixed(decimals) : value;\n};\n\n/** Tick values inside [min, max] */\nexport const linearTicks = (\n min: number,\n max: number,\n count: number,\n): number[] => {\n if (min > max) [min, max] = [max, min];\n const step = tickStep(min, max, count);\n if (!step) return Number.isFinite(min) ? [min] : [];\n const start = Math.ceil(min / step - 1e-9);\n const end = Math.floor(max / step + 1e-9);\n const ticks: number[] = [];\n // Guard against pathological ranges\n for (let i = start; i <= end && ticks.length < 1000; i++) {\n ticks.push(roundTo(i * step, step));\n }\n return ticks;\n};\n\n/** Extends [min, max] to tick boundaries */\nexport const niceDomain = (\n min: number,\n max: number,\n count: number,\n): [number, number] => {\n if (min > max) [min, max] = [max, min];\n let step = tickStep(min, max, count);\n for (let i = 0; i < 3 && step; i++) {\n const nextMin = Math.floor(min / step) * step;\n const nextMax = Math.ceil(max / step) * step;\n min = roundTo(nextMin, step);\n max = roundTo(nextMax, step);\n const next = tickStep(min, max, count);\n if (next === step) break;\n step = next;\n }\n return [min, max];\n};\n\n/**\n * Range covering [min, max] with a usable span: a single value (or no data)\n * becomes a small range around it.\n */\nexport const ensureSpan = (\n min: number,\n max: number,\n fallback: [number, number] = [0, 1],\n): [number, number] => {\n if (!Number.isFinite(min) || !Number.isFinite(max)) return fallback;\n if (min > max) [min, max] = [max, min];\n if (max - min > 0) return [min, max];\n const pad = min === 0 ? 1 : Math.abs(min) * 0.1;\n return [min - pad, max + pad];\n};\n\n/** Number of decimals that keeps ticks distinct for a step */\nexport const stepDecimals = (step: number): number =>\n step > 0 && Number.isFinite(step)\n ? Math.min(12, Math.max(0, -Math.floor(Math.log10(step) + 1e-9)))\n : 0;\n"],"mappings":";AAEA,IAAMA,IAAM,KAAK,KAAK,EAAE,GAClBC,IAAK,KAAK,KAAK,EAAE,GACjBC,IAAK,KAAK,KAAK,CAAC,GAGTC,KAAY,GAAa,GAAa,MAA0B;CAC3E,IAAMC,IAAO,KAAK,IAAIC,IAAMC,CAAG;CAC/B,IAAI,EAAEF,IAAO,MAAM,CAAC,OAAO,SAASA,CAAI,GAAG,OAAO;CAClD,IAAMG,IAAMH,IAAO,KAAK,IAAI,GAAGI,CAAK,GAE9BC,IAAO,MADC,KAAK,MAAM,KAAK,MAAMF,CAAG,CACpB,GACbG,IAAQH,IAAME;CAEpB,QADeC,KAASV,IAAM,KAAKU,KAAST,IAAK,IAAIS,KAASR,IAAK,IAAI,KACvDO;AAClB,GAGME,KAAW,GAAe,MAAyB;CACvD,IAAMC,IAAW,KAAK,IAAI,GAAG,CAAC,KAAK,MAAM,KAAK,MAAMC,CAAI,CAAC,IAAI,CAAC;CAC9D,OAAOD,IAAW,KAAKA,IAAW,KAAK,CAACE,EAAM,QAAQF,CAAQ,IAAIE;AACpE,GAGaC,KACX,GACA,GACA,MACa;CACb,AAAIT,IAAMD,MAAK,CAACC,GAAKD,KAAO,CAACA,GAAKC,CAAG;CACrC,IAAMO,IAAOV,EAASG,GAAKD,GAAKG,CAAK;CACrC,IAAI,CAACK,GAAM,OAAO,OAAO,SAASP,CAAG,IAAI,CAACA,CAAG,IAAI,CAAC;CAClD,IAAMU,IAAQ,KAAK,KAAKV,IAAMO,IAAO,IAAI,GACnCI,IAAM,KAAK,MAAMZ,IAAMQ,IAAO,IAAI,GAClCK,IAAkB,CAAC;CAEzB,KAAK,IAAIC,IAAIH,GAAOG,KAAKF,KAAOC,EAAM,SAAS,KAAM,KACnD,EAAM,KAAKP,EAAQQ,IAAIN,GAAMA,CAAI,CAAC;CAEpC,OAAOK;AACT,GAGaE,KACX,GACA,GACA,MACqB;CACrB,AAAId,IAAMD,MAAK,CAACC,GAAKD,KAAO,CAACA,GAAKC,CAAG;CACrC,IAAIO,IAAOV,EAASG,GAAKD,GAAKG,CAAK;CACnC,KAAK,IAAIW,IAAI,GAAGA,IAAI,KAAKN,GAAM,KAAK;EAClC,IAAMQ,IAAU,KAAK,MAAMf,IAAMO,CAAI,IAAIA,GACnCS,IAAU,KAAK,KAAKjB,IAAMQ,CAAI,IAAIA;EAExC,AADA,IAAMF,EAAQU,GAASR,CAAI,GAC3B,IAAMF,EAAQW,GAAST,CAAI;EAC3B,IAAMU,IAAOpB,EAASG,GAAKD,GAAKG,CAAK;EACrC,IAAIe,MAASV,GAAM;EACnB,IAAOU;CACT;CACA,OAAO,CAACjB,GAAKD,CAAG;AAClB,GAMamB,KACX,GACA,GACA,IAA6B,CAAC,GAAG,CAAC,MACb;CACrB,IAAI,CAAC,OAAO,SAASlB,CAAG,KAAK,CAAC,OAAO,SAASD,CAAG,GAAG,OAAOoB;CAE3D,IADInB,IAAMD,MAAK,CAACC,GAAKD,KAAO,CAACA,GAAKC,CAAG,IACjCD,IAAMC,IAAM,GAAG,OAAO,CAACA,GAAKD,CAAG;CACnC,IAAMqB,IAAMpB,MAAQ,IAAI,IAAI,KAAK,IAAIA,CAAG,IAAI;CAC5C,OAAO,CAACA,IAAMoB,GAAKrB,IAAMqB,CAAG;AAC9B,GAGaC,KAAgB,MAC3Bd,IAAO,KAAK,OAAO,SAASA,CAAI,IAC5B,KAAK,IAAI,IAAI,KAAK,IAAI,GAAG,CAAC,KAAK,MAAM,KAAK,MAAMA,CAAI,IAAI,IAAI,CAAC,CAAC,IAC9D"}
1
+ {"version":3,"file":"scale.js","names":["E10","E5","E2","tickStep","span","max","min","raw","count","base","error","roundTo","decimals","step","value","linearTicks","start","end","ticks","i","niceDomain","nextMin","nextMax","next","ensureSpan","fallback","pad","stepDecimals"],"sources":["../../../../charts/src/engine/scale.ts"],"sourcesContent":["// Numeric ticks and ranges.\n\nconst E10 = Math.sqrt(50);\nconst E5 = Math.sqrt(10);\nconst E2 = Math.sqrt(2);\n\n/** Tick step close to `(max - min) / count`, of the form 1, 2 or 5 × 10^k */\nexport const tickStep = (min: number, max: number, count: number): number => {\n const span = Math.abs(max - min);\n if (!(span > 0) || !Number.isFinite(span)) return 0;\n const raw = span / Math.max(1, count);\n const power = Math.floor(Math.log10(raw));\n const base = 10 ** power;\n const error = raw / base;\n const factor = error >= E10 ? 10 : error >= E5 ? 5 : error >= E2 ? 2 : 1;\n return factor * base;\n};\n\n/** Rounds a value computed from a step (avoids 0.30000000000000004) */\nconst roundTo = (value: number, step: number): number => {\n const decimals = Math.max(0, -Math.floor(Math.log10(step)) + 1);\n return decimals > 0 && decimals < 20 ? +value.toFixed(decimals) : value;\n};\n\n/** Tick values inside [min, max] */\nexport const linearTicks = (\n min: number,\n max: number,\n count: number,\n): number[] => {\n if (min > max) [min, max] = [max, min];\n const step = tickStep(min, max, count);\n if (!step) return Number.isFinite(min) ? [min] : [];\n const start = Math.ceil(min / step - 1e-9);\n const end = Math.floor(max / step + 1e-9);\n const ticks: number[] = [];\n // Guard against pathological ranges\n for (let i = start; i <= end && ticks.length < 1000; i++) {\n // `|| 0`: no -0 for the formatters (Intl writes \"-0\")\n ticks.push(roundTo(i * step, step) || 0);\n }\n return ticks;\n};\n\n/** Extends [min, max] to tick boundaries */\nexport const niceDomain = (\n min: number,\n max: number,\n count: number,\n): [number, number] => {\n if (min > max) [min, max] = [max, min];\n let step = tickStep(min, max, count);\n for (let i = 0; i < 3 && step; i++) {\n const nextMin = Math.floor(min / step) * step;\n const nextMax = Math.ceil(max / step) * step;\n min = roundTo(nextMin, step);\n max = roundTo(nextMax, step);\n const next = tickStep(min, max, count);\n if (next === step) break;\n step = next;\n }\n return [min, max];\n};\n\n/**\n * Range covering [min, max] with a usable span: a single value (or no data)\n * becomes a small range around it.\n */\nexport const ensureSpan = (\n min: number,\n max: number,\n fallback: [number, number] = [0, 1],\n): [number, number] => {\n if (!Number.isFinite(min) || !Number.isFinite(max)) return fallback;\n if (min > max) [min, max] = [max, min];\n if (max - min > 0) return [min, max];\n const pad = min === 0 ? 1 : Math.abs(min) * 0.1;\n return [min - pad, max + pad];\n};\n\n/** Number of decimals that keeps ticks distinct for a step */\nexport const stepDecimals = (step: number): number =>\n step > 0 && Number.isFinite(step)\n ? Math.min(12, Math.max(0, -Math.floor(Math.log10(step) + 1e-9)))\n : 0;\n"],"mappings":";AAEA,IAAMA,IAAM,KAAK,KAAK,EAAE,GAClBC,IAAK,KAAK,KAAK,EAAE,GACjBC,IAAK,KAAK,KAAK,CAAC,GAGTC,KAAY,GAAa,GAAa,MAA0B;CAC3E,IAAMC,IAAO,KAAK,IAAIC,IAAMC,CAAG;CAC/B,IAAI,EAAEF,IAAO,MAAM,CAAC,OAAO,SAASA,CAAI,GAAG,OAAO;CAClD,IAAMG,IAAMH,IAAO,KAAK,IAAI,GAAGI,CAAK,GAE9BC,IAAO,MADC,KAAK,MAAM,KAAK,MAAMF,CAAG,CACpB,GACbG,IAAQH,IAAME;CAEpB,QADeC,KAASV,IAAM,KAAKU,KAAST,IAAK,IAAIS,KAASR,IAAK,IAAI,KACvDO;AAClB,GAGME,KAAW,GAAe,MAAyB;CACvD,IAAMC,IAAW,KAAK,IAAI,GAAG,CAAC,KAAK,MAAM,KAAK,MAAMC,CAAI,CAAC,IAAI,CAAC;CAC9D,OAAOD,IAAW,KAAKA,IAAW,KAAK,CAACE,EAAM,QAAQF,CAAQ,IAAIE;AACpE,GAGaC,KACX,GACA,GACA,MACa;CACb,AAAIT,IAAMD,MAAK,CAACC,GAAKD,KAAO,CAACA,GAAKC,CAAG;CACrC,IAAMO,IAAOV,EAASG,GAAKD,GAAKG,CAAK;CACrC,IAAI,CAACK,GAAM,OAAO,OAAO,SAASP,CAAG,IAAI,CAACA,CAAG,IAAI,CAAC;CAClD,IAAMU,IAAQ,KAAK,KAAKV,IAAMO,IAAO,IAAI,GACnCI,IAAM,KAAK,MAAMZ,IAAMQ,IAAO,IAAI,GAClCK,IAAkB,CAAC;CAEzB,KAAK,IAAIC,IAAIH,GAAOG,KAAKF,KAAOC,EAAM,SAAS,KAAM,KAEnD,EAAM,KAAKP,EAAQQ,IAAIN,GAAMA,CAAI,KAAK,CAAC;CAEzC,OAAOK;AACT,GAGaE,KACX,GACA,GACA,MACqB;CACrB,AAAId,IAAMD,MAAK,CAACC,GAAKD,KAAO,CAACA,GAAKC,CAAG;CACrC,IAAIO,IAAOV,EAASG,GAAKD,GAAKG,CAAK;CACnC,KAAK,IAAIW,IAAI,GAAGA,IAAI,KAAKN,GAAM,KAAK;EAClC,IAAMQ,IAAU,KAAK,MAAMf,IAAMO,CAAI,IAAIA,GACnCS,IAAU,KAAK,KAAKjB,IAAMQ,CAAI,IAAIA;EAExC,AADA,IAAMF,EAAQU,GAASR,CAAI,GAC3B,IAAMF,EAAQW,GAAST,CAAI;EAC3B,IAAMU,IAAOpB,EAASG,GAAKD,GAAKG,CAAK;EACrC,IAAIe,MAASV,GAAM;EACnB,IAAOU;CACT;CACA,OAAO,CAACjB,GAAKD,CAAG;AAClB,GAMamB,KACX,GACA,GACA,IAA6B,CAAC,GAAG,CAAC,MACb;CACrB,IAAI,CAAC,OAAO,SAASlB,CAAG,KAAK,CAAC,OAAO,SAASD,CAAG,GAAG,OAAOoB;CAE3D,IADInB,IAAMD,MAAK,CAACC,GAAKD,KAAO,CAACA,GAAKC,CAAG,IACjCD,IAAMC,IAAM,GAAG,OAAO,CAACA,GAAKD,CAAG;CACnC,IAAMqB,IAAMpB,MAAQ,IAAI,IAAI,KAAK,IAAIA,CAAG,IAAI;CAC5C,OAAO,CAACA,IAAMoB,GAAKrB,IAAMqB,CAAG;AAC9B,GAGaC,KAAgB,MAC3Bd,IAAO,KAAK,OAAO,SAASA,CAAI,IAC5B,KAAK,IAAI,IAAI,KAAK,IAAI,GAAG,CAAC,KAAK,MAAM,KAAK,MAAMA,CAAI,IAAI,IAAI,CAAC,CAAC,IAC9D"}
@@ -1,2 +1,2 @@
1
- const e=require("./data.cjs"),t=require("./color.cjs"),n=require("./layout.cjs"),r=require("./model.cjs"),i=require("./format.cjs"),a=require("./axis.cjs");var o={top:12,right:16,bottom:4,left:4},s=(e,t)=>t,c=(e,n)=>{let r=n.resolve??s;return(e??[]).map(e=>{if(e.type===`rect`){let i=e.color?r(e.color,n.primary):n.primary;return{type:`rect`,x0:e.x0,x1:e.x1,y0:e.y0,y1:e.y1,color:i,opacity:e.opacity??.08,label:e.label,labelPosition:e.labelPosition??`top-left`,labelColor:e.labelColor?r(e.labelColor,i):t.mix(i,n.text,.2)}}return e.type===`text`?{type:`text`,x:e.x,y:e.y,text:e.text,anchor:e.anchor??`center`,color:e.color?r(e.color,n.textMuted):n.textMuted,weight:e.weight??500}:{type:`line`,axis:e.axis,value:e.value,color:e.color?r(e.color,n.textMuted):n.textMuted,width:e.width??1,dash:[...e.dash??[4,4]],label:e.label}})},l=e=>{let{model:t,view:r,theme:i,width:s,height:c,measure:l}=e,u=t.y.tickCount??(t.y.type===`category`?Math.max(1,Math.floor((c-40)/(i.fontSize+5))):c>=220?5:Math.max(2,Math.round((c-48)/52))),d=a.axisTicks(t.y,r.y,u),f=0;if(t.y.visible)for(let e of d.labels)f=Math.max(f,l(e));let p=48;if(t.x.type===`category`){p=0;let e=Math.max(1,Math.floor(t.x.categories.length/200));for(let n=0;n<t.x.categories.length;n+=e)p=Math.max(p,l(t.x.categories[n]))}let m={...o,...e.padding},h=n.computePlot({width:s,height:c,padding:m,yLabelWidth:t.y.visible?Math.ceil(f):0,xAxisVisible:t.x.visible,xTitle:!!t.x.title&&t.x.visible,yTitle:!!t.y.title&&t.y.visible,fontSize:i.fontSize});e.top&&(h.y+=e.top);let g=t.x.type===`category`?Math.max(1,Math.floor(h.width/(p+14))):t.x.tickCount??Math.max(3,Math.floor(h.width/88)),_=a.axisTicks(t.x,r.x,g);return{plot:h,scales:n.createScales(h,r,t.x.reverse,t.y.reverse),xTicks:_,yTicks:d}},u=(e,t,n,r)=>{let a=[],o=e.percent?i.formatValue:r?.formatValue??i.formatValue;for(let r of e.series){if(r.hidden||!r.showLabels)continue;if(r.type===`bar`&&r.barTop){let e=r.format??o,{x:i,y:s,count:c}=r.cols,l=r.barTop,[u,d]=t.x[0]<=t.x[1]?t.x:[t.x[1],t.x[0]];for(let t=0;t<c&&a.length<300;t++){let o=i[t]+r.barOffset;if(!Number.isFinite(s[t])||o<u||o>d)continue;let c=l[t]<(r.barBase?.[t]??0);a.push({x:n.xToPx(o),y:n.yToPx(l[t]),r:0,text:e(s[t]),placement:c?`below`:`above`})}continue}if(r.type!==`scatter`)continue;let{x:e,y:i,count:s,labels:c,size:l}=r.cols;if(c)for(let o=0;o<s&&a.length<300;o++){let s=c[o];if(!s)continue;let u=e[o],d=i[o];if(u<t.x[0]||u>t.x[1]||d<t.y[0]||d>t.y[1])continue;let f=l&&l[o]>0?l[o]:r.pointSize;a.push({x:n.xToPx(u),y:n.yToPx(d),r:f/2,text:s})}}return a},d=(e,t,n)=>{let i=e.cols.x[t]+(e.type===`bar`?e.barOffset:0);return{px:n.xToPx(i),py:n.yToPx(r.plottedY(e,t))}},f=(e,t,n,r,i)=>{let a=d(e,t,i),o=!1;if(e.type===`bar`&&e.barBase){let s=e.barHalfWidth/i.xPerPx,c=i.yToPx(e.barBase[t]);o=Math.abs(n-a.px)<=s&&r>=Math.min(c,a.py)-2&&r<=Math.max(c,a.py)+2}else if(e.type===`candlestick`){let{high:s,low:c,y:l}=e.cols,u=Math.max(e.barHalfWidth/i.xPerPx,3),d=i.yToPx(s?s[t]:l[t]),f=i.yToPx(c?c[t]:l[t]);o=Math.abs(n-a.px)<=u&&r>=Math.min(d,f)-2&&r<=Math.max(d,f)+2}return{series:e,index:t,px:a.px,py:a.py,dx:Math.abs(i.xToPx(e.cols.x[t])-n),dist:o?0:Math.hypot(a.px-n,a.py-r),inside:o}},p=(e,t)=>e.cols.size&&e.cols.size[t]>0?e.cols.size[t]:e.pointSize,m=(e,t,n,i,a)=>{let o=Math.max(e.pointSize/2+6,10)+a,s=i.pxToX(t),c=i.pxToY(n),l=o*i.xPerPx,u=o*i.yPerPx,d=-1,f=1/0,{x:m,y:h}=e.cols;return r.gridOf(e).query(s-l,s+l,c-u,c+u,r=>{let o=Math.hypot(i.xToPx(m[r])-t,i.yToPx(h[r])-n);o<=Math.max(p(e,r)/2+4,8)+a&&o<=f&&(f=o,d=r)}),d},h=(e,t,n)=>{let{x:i,y:a}=e.cellHalf,{x:o,y:s}=e.cols,c=-1;return r.gridOf(e).query(t-i,t+i,n-a,n+a,r=>{e.cellColors?.[r]&&Math.abs(o[r]-t)<=i&&Math.abs(s[r]-n)<=a&&(c=r)}),c},g=(t,n)=>{let{x:r,y:i,count:a,sorted:o}=t.cols;if(o)return e.nearestIndex(r,i,a,n);let s=-1,c=1/0;for(let e=0;e<a;e++){if(!Number.isFinite(i[e]))continue;let t=Math.abs(r[e]-n);t<c&&(c=t,s=e)}return s},_=(e,n)=>{let r=e.pointColors?.[n],i=e.cols.labels?.[n],{open:a,high:o,low:s,value:c}=e.cols,l=r?t.toCss(r):e.colorCss,u={};if(e.type===`candlestick`){let r=a?a[n]:NaN;Number.isFinite(r)&&(u.open=r),o&&Number.isFinite(o[n])&&(u.high=o[n]),s&&Number.isFinite(s[n])&&(u.low=s[n]),l=t.toCss(e.cols.y[n]<r?e.downColor:e.upColor)}else if(e.type===`heatmap`){let r=c?c[n]:e.cols.y[n];Number.isFinite(r)&&(u.value=r);let i=e.cellColors?.[n];i&&(l=t.toCss(t.unpackColor(i)))}return{seriesIndex:e.index,seriesId:e.id,seriesName:e.name,index:n,x:e.cols.x[n],y:e.cols.y[n],color:l,...i===void 0?{}:{label:i},...u}},v=(e,t)=>{if(!e.length)return null;e.sort((e,t)=>e.series.index-t.series.index);let n=e.map(e=>_(e.series,e.index)),r=n[0].x;return{items:n,x:r,xLabel:t?.formatValue(r)??String(r)}},y=(e,t,n,r,i,a=0)=>{let{plot:o}=t,s=6+a;if(r<o.x-s||r>o.x+o.width+s||i<o.y-s||i>o.y+o.height+s)return null;let c=t.pxToX(r),l=[],u=[];for(let n of e.series)if(!(n.hidden||n.cols.count===0)){if(n.type===`scatter`){let e=m(n,r,i,t,a);e>=0&&l.push(f(n,e,r,i,t))}else if(n.type===`heatmap`){let e=h(n,t.pxToX(r),t.pxToY(i));if(e>=0){let a=f(n,e,r,i,t);a.inside=!0,a.dist=0,l.push(a)}}else{let e=g(n,c);e>=0&&u.push(f(n,e,r,i,t))}}if(e.tooltipMode===`nearest`){let e=[...l,...u].filter(e=>e.inside||e.series.type===`scatter`||e.dist<=32+a);return e.length?v([e.reduce((e,t)=>t.dist<=e.dist?t:e)],n):null}if(!u.length)return l.length?v([l.reduce((e,t)=>t.dist<=e.dist?t:e)],n):null;let d=Math.min(...u.map(e=>e.dx)),p=e.x.type===`category`?.5/t.xPerPx:0,y=u.filter(e=>e.dx<=d+Math.max(1,p)),b=y.reduce((e,t)=>t.dx<e.dx?t:e),x=v([b,...y.filter(e=>e!==b),...l],n);return x&&(x.x=_(b.series,b.index).x,x.xLabel=n?.formatValue(x.x)??String(x.x)),x},b=(e,t)=>e===t||!!e&&!!t&&e.items.length===t.items.length&&e.items.every((e,n)=>e.index===t.items[n].index&&e.seriesIndex===t.items[n].seriesIndex),x=(e,t,n)=>{let r=n?.formatValue??String,a=t.items[0],o=a?e.series[a.seriesIndex]:null;if(t.items.length===1&&o?.type===`heatmap`){let n=e.y.type===`category`?e.y.categories[Math.round(a.y)]??r(a.y):r(a.y);return{title:`${t.xLabel} · ${n}`,titleColor:null,rows:[{color:a.color,name:a.label??o.name,value:a.value===void 0?`–`:(o.format??i.formatValue)(a.value)}]}}if(t.items.every(t=>e.series[t.seriesIndex].type===`scatter`)&&t.items.length===1){let n=t.items[0],i=[{color:null,name:e.x.title??`x`,value:t.xLabel},{color:null,name:e.y.title??`y`,value:r(n.y)}];return n.label!==void 0&&e.series.length>1&&i.push({color:null,name:``,value:n.seriesName}),{title:n.label??n.seriesName,titleColor:n.color,rows:i}}let s=[],c=[];for(let n of t.items){let t=e.series[n.seriesIndex];if(c.push(s.length),t.type===`candlestick`){let e=n.open!==void 0&&n.open!==0?(n.y-n.open)/Math.abs(n.open)*100:NaN;s.push({color:n.color,name:t.name,value:Number.isFinite(e)?`${e>=0?`+`:``}${e.toFixed(2)}%`:``});let i=[[`Open`,n.open],[`High`,n.high],[`Low`,n.low],[`Close`,n.y]];for(let[e,n]of i)n!==void 0&&Number.isFinite(n)&&s.push({color:null,name:e,value:(t.format??r)(n)});continue}s.push({color:n.color,name:n.label?`${n.seriesName} · ${n.label}`:n.seriesName,value:(t.format??r)(n.y)})}if(e.percent){let n=new Map;for(let r of t.items){let t=S(e,r.seriesIndex);t!==null&&Number.isFinite(r.y)&&n.set(t,(n.get(t)??0)+Math.abs(r.y))}t.items.forEach((t,r)=>{let a=S(e,t.seriesIndex),o=a===null?void 0:n.get(a),l=s[c[r]];o&&l&&Number.isFinite(t.y)&&(l.value=`${(e.series[t.seriesIndex].format??i.formatValue)(t.y)} · ${(Math.abs(t.y)/o*100).toFixed(1)}%`)})}return{title:t.xLabel,titleColor:null,rows:s}},S=(e,t)=>e.series[t].hidden?null:e.stacks[t],C=(e,n,r)=>{let i=[],{plot:a}=n,o=1/0,s=-1/0;for(let c of r.items){let r=e.series[c.seriesIndex];if(r.type===`bar`||r.type===`candlestick`){let e=n.xToPx(c.x+r.barOffset),t=Math.max(r.barHalfWidth/n.xPerPx,1);o=Math.min(o,e-t),s=Math.max(s,e+t);continue}if(r.type===`heatmap`){let e=n.xToPx(c.x),t=n.yToPx(c.y),a=Math.abs(r.cellHalf.x/n.xPerPx),o=Math.abs(r.cellHalf.y/n.yPerPx);i.push({kind:`cell`,x:e-a,y:t-o,width:a*2,height:o*2});continue}let{px:l,py:u}=d(r,c.index,n);if(l<a.x-1||l>a.x+a.width+1||u<a.y-1||u>a.y+a.height+1)continue;let f=r.type===`scatter`?p(r,c.index)+4:Math.max(9,r.lineWidth*2+5),m=r.pointColors?.[c.index]??r.color;i.push({kind:`dot`,x:l,y:u,size:f,color:c.color,halo:t.toCss(m,.2)})}if(s>o){let e=Math.max(4,(s-o)*.14),t=Math.max(a.x,o-e),n=Math.min(a.x+a.width,s+e);n>t&&i.unshift({kind:`band`,x:t,y:a.y,width:n-t,height:a.height})}return i},w=e=>e===`scatter`?`dot`:e===`line`?`line`:`square`,T=(e,t,n)=>n??(e.tooltipMode===`axis`&&t.items.some(t=>{let n=e.series[t.seriesIndex].type;return n===`line`||n===`area`})&&!t.items.some(t=>{let n=e.series[t.seriesIndex].type;return n===`bar`||n===`candlestick`}));exports.DEFAULT_PADDING=o,exports.collectPointLabels=u,exports.dotSize=p,exports.fallbackResolve=s,exports.hitTest=y,exports.hoverItemOf=_,exports.hoverMarks=C,exports.layoutChart=l,exports.legendShape=w,exports.pointOf=d,exports.resolveAnnotations=c,exports.sameHover=b,exports.showsCrosshair=T,exports.tooltipContent=x;
1
+ const e=require("./data.cjs"),t=require("./color.cjs"),n=require("./locale.cjs"),r=require("./layout.cjs"),i=require("./format.cjs"),a=require("./model.cjs"),o=require("./axis.cjs");var s={top:12,right:16,bottom:4,left:4},c=(e,t)=>t,l=(e,n)=>{let r=n.resolve??c;return(e??[]).map(e=>{if(e.type===`rect`){let i=e.color?r(e.color,n.primary):n.primary;return{type:`rect`,x0:e.x0,x1:e.x1,y0:e.y0,y1:e.y1,color:i,opacity:e.opacity??.08,label:e.label,labelPosition:e.labelPosition??`top-left`,labelColor:e.labelColor?r(e.labelColor,i):t.mix(i,n.text,.2)}}return e.type===`text`?{type:`text`,x:e.x,y:e.y,text:e.text,anchor:e.anchor??`center`,color:e.color?r(e.color,n.textMuted):n.textMuted,weight:e.weight??500}:{type:`line`,axis:e.axis,value:e.value,color:e.color?r(e.color,n.textMuted):n.textMuted,width:e.width??1,dash:[...e.dash??[4,4]],label:e.label}})},u=e=>{let{model:t,view:n,theme:i,width:a,height:c,measure:l}=e;if(t.horizontal)return f(e);let u=t.y.tickCount??(t.y.type===`category`?Math.max(1,Math.floor((c-40)/(i.fontSize+5))):c>=220?5:Math.max(2,Math.round((c-48)/52))),p=o.axisTicks(t.y,n.y,u),m=0;if(t.y.visible)for(let e of p.labels)m=Math.max(m,l(e));let h=d(t,p),g=0;if(h&&t.y2?.visible)for(let e of h.labels)g=Math.max(g,l(e));let _=48;if(t.x.type===`category`){_=0;let e=Math.max(1,Math.floor(t.x.categories.length/200));for(let n=0;n<t.x.categories.length;n+=e)_=Math.max(_,l(t.x.categories[n]))}let v={...s,...e.padding},y=r.computePlot({width:a,height:c,padding:v,yLabelWidth:t.y.visible?Math.ceil(m):0,y2LabelWidth:Math.ceil(g),y2Title:!!t.y2?.title&&!!t.y2.visible,xAxisVisible:t.x.visible,xTitle:!!t.x.title&&t.x.visible,yTitle:!!t.y.title&&t.y.visible,fontSize:i.fontSize});e.top&&(y.y+=e.top);let b=t.x.type===`category`?Math.max(1,Math.floor(y.width/(_+14))):t.x.tickCount??Math.max(3,Math.floor(y.width/88)),x=o.axisTicks(t.x,n.x,b);return{plot:y,scales:r.createScales(y,n,t.x.reverse,t.y.reverse),xTicks:x,yTicks:p,y2Ticks:h}},d=(e,t)=>{let n=e.y2,r=e.y2Map;if(!n||!r||!r.scale)return null;let a=t.values.map(e=>(e-r.offset)/r.scale),o=a.length>1?Math.abs(a[1]-a[0]):1,s=0;for(let e of a)s=Math.max(s,Math.abs(e));let c=n.format??i.tickFormatter(o,s,e.locale);return{values:t.values,labels:a.map(c),formatValue:n.format??e.formatValue}},f=e=>{let{model:t,view:n,theme:i,width:a,height:c,measure:l}=e,u=Math.max(1,Math.floor((c-40)/(i.fontSize+5))),d=t.x.tickCount??(t.x.type===`category`?u:c>=220?5:Math.max(2,Math.round((c-48)/52))),f=o.axisTicks(t.x,n.x,d),p=0;if(t.x.visible){if(t.x.type===`category`){let e=t.x.categories,n=Math.max(1,Math.floor(e.length/200));for(let r=0;r<e.length;r+=n){let n=t.x.format?t.x.format(r):e[r];p=Math.max(p,l(n))}}else for(let e of f.labels)p=Math.max(p,l(e))}let m={...s,...e.padding},h=r.computePlot({width:a,height:c,padding:m,yLabelWidth:t.x.visible?Math.ceil(p):0,xAxisVisible:t.y.visible,xTitle:!!t.y.title&&t.y.visible,yTitle:!!t.x.title&&t.x.visible,fontSize:i.fontSize});e.top&&(h.y+=e.top);let g=t.y.tickCount??(t.y.type===`category`?Math.max(1,Math.floor(h.width/60)):Math.max(3,Math.min(8,Math.floor(h.width/88)))),_=o.axisTicks(t.y,n.y,g);return{plot:h,scales:r.createScales(h,n,t.x.reverse,t.y.reverse,!0),xTicks:f,yTicks:_,y2Ticks:null}},p=(e,t,n,i)=>{let a=[],o=e.percent?e.formatValue:i?.formatValue??e.formatValue;for(let i of e.series){if(i.hidden||!i.showLabels)continue;if(i.type===`bar`&&i.barTop){let s=i.format??(i.yAxis===`right`?e.y2?.format??e.formatValue:o),{x:c,count:l}=i.cols,{y:u,y0:d,labels:f}=i.raw,p=i.barTop,[m,h]=t.x[0]<=t.x[1]?t.x:[t.x[1],t.x[0]];for(let t=0;t<l&&a.length<300;t++){let o=c[t]+i.barOffset;if(!Number.isFinite(u[t])||o<m||o>h)continue;let l=p[t]<(i.barBase?.[t]??0)!==e.y.reverse,g=r.toScreen(n,o,p[t]),_=i.floating&&d&&Number.isFinite(d[t]);if(_&&e.y.type===`time`&&!f?.[t])continue;let v=_?u[t]-(d?.[t]??0):0;a.push({x:g.x,y:g.y,r:0,text:f?.[t]??(_?`${v>0?`+`:``}${s(v)}`:s(u[t])),placement:n.horizontal?l?`left`:`right`:l?`below`:`above`})}continue}if(i.type!==`scatter`)continue;let{x:s,y:c,count:l,labels:u,size:d}=i.cols;if(u)for(let e=0;e<l&&a.length<300;e++){let o=u[e];if(!o)continue;let l=s[e],f=c[e];if(l<t.x[0]||l>t.x[1]||f<t.y[0]||f>t.y[1])continue;let p=d&&d[e]>0?d[e]:i.pointSize,m=r.toScreen(n,l,f);a.push({x:m.x,y:m.y,r:p/2,text:o})}}return a},m=e=>e.type===`bar`||e.type===`boxplot`?e.barOffset:0,h=(e,t,n)=>{let i=r.toScreen(n,e.cols.x[t]+m(e),a.plottedY(e,t));return{px:i.x,py:i.y}},g=(e,t,n,r,i,a,o)=>{let s=e.yToPx(r),c=e.yToPx(i);return Math.abs(a-t)<=n&&o>=Math.min(s,c)-2&&o<=Math.max(s,c)+2},_=(e,t,n,i,a)=>{let o=h(e,t,a),s=r.alongX(a,n,i),c=r.alongY(a,n,i),l=a.xToPx(e.cols.x[t]+m(e)),u=!1;if(e.type===`bar`&&e.barBase&&e.barTop)u=g(a,l,e.barHalfWidth/Math.abs(a.xPerPx),e.barBase[t],e.barTop[t],s,c);else if(e.type===`candlestick`||e.type===`boxplot`){let{high:n,low:r,y:i}=e.cols;u=g(a,l,Math.max(e.barHalfWidth/Math.abs(a.xPerPx),3),n?n[t]:i[t],r?r[t]:i[t],s,c)}return{series:e,index:t,px:o.px,py:o.py,dx:Math.abs(a.xToPx(e.cols.x[t])-s),dist:u?0:Math.hypot(o.px-n,o.py-i),inside:u}},v=(e,t)=>e.cols.size&&e.cols.size[t]>0?e.cols.size[t]:e.pointSize,y=new WeakMap,b=e=>{let t=e.cols.size;if(!t)return e.pointSize;let n=y.get(t);if(n===void 0){n=e.pointSize;for(let e=0;e<t.length;e++)t[e]>n&&(n=t[e]);y.set(t,n)}return n},x=(e,t,n,i,o)=>{let s=Math.max(b(e)/2+6,10)+o,c=r.toData(i,t,n),l=s*Math.abs(i.xPerPx),u=s*Math.abs(i.yPerPx),d=-1,f=1/0,{x:p,y:m}=e.cols;return a.gridOf(e).query(c.x-l,c.x+l,c.y-u,c.y+u,a=>{let s=r.toScreen(i,p[a],m[a]),c=Math.hypot(s.x-t,s.y-n);c<=Math.max(v(e,a)/2+4,8)+o&&c<=f&&(f=c,d=a)}),d},S=(e,t,n)=>{let{x:r,y:i}=e.cellHalf,{x:o,y:s}=e.cols,c=-1;return a.gridOf(e).query(t-r,t+r,n-i,n+i,a=>{e.cellColors?.[a]&&Math.abs(o[a]-t)<=r&&Math.abs(s[a]-n)<=i&&(c=a)}),c},C=(t,n)=>{let{x:r,y:i,count:a,sorted:o}=t.cols;if(o)return e.nearestIndex(r,i,a,n);let s=-1,c=1/0;for(let e=0;e<a;e++){if(!Number.isFinite(i[e]))continue;let t=Math.abs(r[e]-n);t<c&&(c=t,s=e)}return s},w=(e,n)=>{let r=e.pointColors?.[n],{open:i,high:a,low:o,value:s,y0:c,q1:l,q3:u,outliers:d,labels:f}=e.raw,p=f?.[n],m=r?t.toCss(r):e.colorCss,h={};if(e.type===`candlestick`){let r=i?i[n]:NaN;Number.isFinite(r)&&(h.open=r),a&&Number.isFinite(a[n])&&(h.high=a[n]),o&&Number.isFinite(o[n])&&(h.low=o[n]),m=t.toCss(e.raw.y[n]<r?e.downColor:e.upColor)}else if(e.type===`heatmap`){let r=s?s[n]:e.raw.y[n];Number.isFinite(r)&&(h.value=r);let i=e.cellColors?.[n];i&&(m=t.toCss(t.unpackColor(i)))}else if(e.type===`boxplot`){a&&Number.isFinite(a[n])&&(h.high=a[n]),o&&Number.isFinite(o[n])&&(h.low=o[n]),l&&Number.isFinite(l[n])&&(h.q1=l[n]),u&&Number.isFinite(u[n])&&(h.q3=u[n]);let e=d?.[n];e&&(h.outliers=e.length)}else c&&Number.isFinite(c[n])&&(h.y0=c[n]),e.type===`scatter`&&s&&Number.isFinite(s[n])&&(h.value=s[n]);return{seriesIndex:e.index,seriesId:e.id,seriesName:e.name,index:n,x:e.raw.x[n],y:e.raw.y[n],color:m,...p===void 0?{}:{label:p},...h}},T=(e,t)=>{if(!e.length)return null;e.sort((e,t)=>e.series.index-t.series.index);let n=e.map(e=>w(e.series,e.index)),r=n[0].x;return{items:n,x:r,xLabel:t?.formatValue(r)??String(r)}},E=(e,t,n,i,a,o=0)=>{let{plot:s}=t,c=6+o;if(i<s.x-c||i>s.x+s.width+c||a<s.y-c||a>s.y+s.height+c)return null;let l=r.toData(t,i,a),u=[],d=[];for(let n of e.series)if(!(n.hidden||n.cols.count===0)){if(n.type===`scatter`){let e=x(n,i,a,t,o);e>=0&&u.push(_(n,e,i,a,t))}else if(n.type===`heatmap`){let e=S(n,l.x,l.y);if(e>=0){let r=_(n,e,i,a,t);r.inside=!0,r.dist=0,u.push(r)}}else{let e=C(n,l.x);e>=0&&d.push(_(n,e,i,a,t))}}if(e.tooltipMode===`nearest`){let e=[...u,...d].filter(e=>e.inside||e.series.type===`scatter`||e.dist<=32+o);return e.length?T([e.reduce((e,t)=>t.dist<=e.dist?t:e)],n):null}if(!d.length)return u.length?T([u.reduce((e,t)=>t.dist<=e.dist?t:e)],n):null;let f=Math.min(...d.map(e=>e.dx)),p=e.x.type===`category`?.5/Math.abs(t.xPerPx):0,m=d.filter(e=>e.dx<=f+Math.max(1,p)),h=m.reduce((e,t)=>t.dx<e.dx?t:e),g=T([h,...m.filter(e=>e!==h),...u],n);return g&&(g.x=w(h.series,h.index).x,g.xLabel=n?.formatValue(g.x)??String(g.x)),g},D=(e,t)=>e===t||!!e&&!!t&&e.items.length===t.items.length&&e.items.every((e,n)=>e.index===t.items[n].index&&e.seriesIndex===t.items[n].seriesIndex),O={style:`percent`,minimumFractionDigits:2,maximumFractionDigits:2},k=(e,t,r,a=null)=>{let o=r?.formatValue??String,s=t=>t.format??(t.yAxis===`right`?a?.formatValue??e.y2?.format??e.formatValue:o),c=e.labels,l=t.items[0],u=l?e.series[l.seriesIndex]:null;if(t.items.length===1&&u?.type===`heatmap`){let n=e.y.type===`category`?e.y.categories[Math.round(l.y)]??o(l.y):o(l.y);return{title:`${t.xLabel} · ${n}`,titleColor:null,rows:[{color:l.color,name:l.label??u.name,value:l.value===void 0?`–`:(u.format??e.formatValue)(l.value)}]}}if(t.items.every(t=>e.series[t.seriesIndex].type===`scatter`)&&t.items.length===1){let n=t.items[0],r=e.series[n.seriesIndex],i=n.value===void 0?[]:[{color:null,name:r.valueName??c.value,value:(r.format??e.formatValue)(n.value)}];if(e.x.type===`category`)return{title:n.label??t.xLabel,titleColor:null,rows:[{color:n.color,name:n.seriesName,value:s(r)(n.y)},...i]};let a=[{color:null,name:e.x.title??c.x,value:t.xLabel},{color:null,name:(r.yAxis===`right`?e.y2?.title:e.y.title)??c.y,value:s(r)(n.y)},...i];return n.label!==void 0&&e.series.length>1&&a.push({color:null,name:``,value:n.seriesName}),{title:n.label??n.seriesName,titleColor:n.color,rows:a}}let d=[],f=[],p=t.items.length===1&&u?.type===`bar`&&e.x.type!==`category`&&l?.label!==void 0?l.label:null;for(let r of t.items){let t=e.series[r.seriesIndex],i=s(t);if(f.push(d.length),t.type===`candlestick`){let a=r.open!==void 0&&r.open!==0?(r.y-r.open)/Math.abs(r.open)*100:NaN;d.push({color:r.color,name:t.name,value:Number.isFinite(a)?`${a>=0?`+`:``}${n.numberFormat(e.locale,O).format(a/100)}`:``});let o=[[c.open,r.open],[c.high,r.high],[c.low,r.low],[c.close,r.y]];for(let[e,t]of o)t!==void 0&&Number.isFinite(t)&&d.push({color:null,name:e,value:i(t)});continue}if(t.type===`boxplot`){d.push({color:r.color,name:r.label?`${r.seriesName} · ${r.label}`:r.seriesName,value:``});let e=[[c.max,r.high],[c.q3,r.q3],[c.median,r.y],[c.q1,r.q1],[c.min,r.low]];for(let[t,n]of e)n!==void 0&&Number.isFinite(n)&&d.push({color:null,name:t,value:i(n)});r.outliers&&d.push({color:null,name:c.outliers,value:String(r.outliers)});continue}let a=i(r.y);if(r.y0!==void 0){let n=r.y-r.y0;a=t.type===`bar`&&e.y.type!==`time`?`${n>0?`+`:``}${i(n)}`:`${i(r.y0)} – ${i(r.y)}`}d.push({color:r.color,name:r.label&&p===null?`${r.seriesName} · ${r.label}`:r.seriesName,value:a})}if(e.percent){let n=new Map;for(let r of t.items){let t=A(e,r.seriesIndex);t!==null&&Number.isFinite(r.y)&&n.set(t,(n.get(t)??0)+Math.abs(r.y))}t.items.forEach((t,r)=>{let a=A(e,t.seriesIndex),o=a===null?void 0:n.get(a),s=d[f[r]];o&&s&&Number.isFinite(t.y)&&(s.value=`${(e.series[t.seriesIndex].format??e.formatValue)(t.y)} · ${i.formatPercent(Math.abs(t.y)/o*100,e.locale,!0)}`)})}return{title:p??t.xLabel,titleColor:null,rows:d}},A=(e,t)=>e.series[t].hidden?null:e.stacks[t],j=(e,n,i)=>{let a=[],{plot:o}=n,s=1/0,c=-1/0;for(let l of i.items){let i=e.series[l.seriesIndex];if(i.type===`bar`||i.type===`candlestick`||i.type===`boxplot`){let e=n.xToPx(l.x+m(i)),t=Math.max(i.barHalfWidth/Math.abs(n.xPerPx),1);s=Math.min(s,e-t),c=Math.max(c,e+t);continue}if(i.type===`heatmap`){let e=n.xToPx(l.x),t=n.yToPx(l.y),o=Math.abs(i.cellHalf.x/n.xPerPx),s=Math.abs(i.cellHalf.y/n.yPerPx);a.push({kind:`cell`,...r.screenRect(n,e-o,e+o,t-s,t+s)});continue}let{px:u,py:d}=h(i,l.index,n);if(u<o.x-1||u>o.x+o.width+1||d<o.y-1||d>o.y+o.height+1)continue;let f=i.type===`scatter`?v(i,l.index)+4:Math.max(9,i.lineWidth*2+5),p=i.pointColors?.[l.index]??i.color;a.push({kind:`dot`,x:u,y:d,size:f,color:l.color,halo:t.toCss(p,.2)})}if(c>s){let e=Math.max(4,(c-s)*.14),t=n.horizontal?o.y:o.x,r=t+(n.horizontal?o.height:o.width),i=Math.max(t,s-e),l=Math.min(r,c+e);l>i&&a.unshift({kind:`band`,...n.horizontal?{x:o.x,y:i,width:o.width,height:l-i}:{x:i,y:o.y,width:l-i,height:o.height}})}return a},M=e=>e===`scatter`?`dot`:e===`line`?`line`:`square`,N=(e,t,n)=>n??(e.tooltipMode===`axis`&&t.items.some(t=>{let n=e.series[t.seriesIndex].type;return n===`line`||n===`area`})&&!t.items.some(t=>{let n=e.series[t.seriesIndex].type;return n===`bar`||n===`candlestick`||n===`boxplot`})),P=(e,t,n,r)=>{if(!N(e,n,r))return null;let i=t.xToPx(n.items[0].x),a=t.horizontal?t.plot.y:t.plot.x,o=a+(t.horizontal?t.plot.height:t.plot.width);return i>=a&&i<=o?i:null};exports.DEFAULT_PADDING=s,exports.collectPointLabels=p,exports.crosshairAt=P,exports.dotSize=v,exports.fallbackResolve=c,exports.hitTest=E,exports.hoverItemOf=w,exports.hoverMarks=j,exports.layoutChart=u,exports.legendShape=M,exports.pointOf=h,exports.resolveAnnotations=l,exports.sameHover=D,exports.showsCrosshair=N,exports.tooltipContent=k;
2
2
  //# sourceMappingURL=scene.cjs.map