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
@@ -3,124 +3,174 @@ import { buildItems as t } from "./items.js";
3
3
  import { drawBackground as n, drawForeground as r, font as i } from "./overlay.js";
4
4
  import { createCanvas2dPainter as a } from "./renderers/canvas2d.js";
5
5
  import { itemsSignature as o } from "./signature.js";
6
- import { createChartController as s } from "./controller.js";
6
+ import { createChartController as s, scenePrimitives as c } from "./controller.js";
7
7
  //#region src/engine/canvas.ts
8
- var c = (e) => (e[0] + e[1]) / 2, l = (e, t, n, r, i, a) => {
8
+ var l = (e) => (e[0] + e[1]) / 2, u = (e, t, n, r, i, a) => {
9
9
  e.beginPath(), e.moveTo(t + a, n), e.lineTo(t + r - a, n), e.arcTo(t + r, n, t + r, n + a, a), e.lineTo(t + r, n + i - a), e.arcTo(t + r, n + i, t + r - a, n + i, a), e.lineTo(t + a, n + i), e.arcTo(t, n + i, t, n + i - a, a), e.lineTo(t, n + a), e.arcTo(t, n, t + a, n, a), e.closePath();
10
- }, u = (t, o, s, c, u, d = a(t)) => {
11
- let { width: f, height: p, theme: m, model: h, view: g, layout: _ } = o, { plot: v, scales: y } = _, b = u;
12
- if (t.setTransform(1, 0, 0, 1, 0, 0), t.clearRect(0, 0, Math.ceil(f * b), Math.ceil(p * b)), t.setTransform(b, 0, 0, b, 0, 0), n(t, {
13
- width: f,
14
- height: p,
15
- scales: y,
16
- x: h.x,
17
- y: h.y,
18
- xTicks: _.xTicks,
19
- yTicks: _.yTicks,
20
- theme: m,
10
+ }, d = (e, t, n) => {
11
+ e.save(), e.beginPath(), e.rect(n.x, n.y, n.width, n.height), e.clip(), e.lineJoin = "round", e.lineCap = "round";
12
+ for (let n of t) if (n.kind === "area") e.globalAlpha = n.opacity, e.fillStyle = n.color, n.segments.forEach((t, r) => {
13
+ let i = n.bottoms?.[r], a = t.length / 2;
14
+ if (!(a < 2)) {
15
+ e.beginPath();
16
+ for (let n = 0; n < a; n++) n === 0 ? e.moveTo(t[0], t[1]) : e.lineTo(t[n * 2], t[n * 2 + 1]);
17
+ for (let r = a - 1; r >= 0; r--) {
18
+ let a = i ? i[r] : n.baseline;
19
+ n.horizontal ? e.lineTo(a, t[r * 2 + 1]) : e.lineTo(t[r * 2], a);
20
+ }
21
+ e.closePath(), e.fill();
22
+ }
23
+ }), e.globalAlpha = 1;
24
+ else if (n.kind === "line") {
25
+ e.strokeStyle = n.color, e.lineWidth = n.width, e.beginPath();
26
+ for (let t of n.segments) for (let n = 0; n < t.length; n += 2) n === 0 ? e.moveTo(t[0], t[1]) : e.lineTo(t[n], t[n + 1]);
27
+ e.stroke();
28
+ } else if (n.kind === "bars") {
29
+ e.globalAlpha = n.opacity ?? 1;
30
+ let t = n.radius ?? 0;
31
+ for (let r = 0; r < n.rects.length; r += 4) {
32
+ let [i, a, o, s] = [
33
+ n.rects[r],
34
+ n.rects[r + 1],
35
+ n.rects[r + 2],
36
+ n.rects[r + 3]
37
+ ];
38
+ e.fillStyle = n.colors?.[r / 4] ?? n.color;
39
+ let c = Math.min(t, o / 2, s / 2);
40
+ c > .5 ? (u(e, i, a, o, s, c), e.fill()) : e.fillRect(i, a, o, s);
41
+ }
42
+ e.globalAlpha = 1;
43
+ } else {
44
+ e.globalAlpha = n.opacity;
45
+ for (let t = 0; t < n.dots.length; t += 3) e.fillStyle = n.colors[t / 3] ?? "#888", e.beginPath(), e.arc(n.dots[t], n.dots[t + 1], n.dots[t + 2] / 2, 0, Math.PI * 2), e.fill();
46
+ e.globalAlpha = 1;
47
+ }
48
+ e.restore();
49
+ }, f = (t, o, s, l, f, p = a(t)) => {
50
+ let { width: m, height: h, theme: g, model: _, view: v, layout: y } = o, { plot: b, scales: x } = y, S = f;
51
+ if (t.setTransform(1, 0, 0, 1, 0, 0), t.clearRect(0, 0, Math.ceil(m * S), Math.ceil(h * S)), t.setTransform(S, 0, 0, S, 0, 0), n(t, {
52
+ width: m,
53
+ height: h,
54
+ scales: x,
55
+ x: _.x,
56
+ y: _.y,
57
+ xTicks: y.xTicks,
58
+ yTicks: y.yTicks,
59
+ y2: _.y2,
60
+ y2Ticks: y.y2Ticks,
61
+ theme: g,
21
62
  annotations: o.annotations
22
63
  }), o.legend) {
23
- t.font = i(m, 12), t.textBaseline = "middle", t.textAlign = "left";
64
+ t.font = i(g, 12), t.textBaseline = "middle", t.textAlign = "left";
24
65
  for (let n of o.legend.entries) {
25
66
  let r = n.box.y + n.box.height / 2;
26
- if (t.globalAlpha = n.hidden ? .45 : 1, t.fillStyle = n.color, n.shape === "dot" ? (t.beginPath(), t.arc(n.box.x + 5, r, 4, 0, Math.PI * 2), t.fill()) : n.shape === "line" ? t.fillRect(n.box.x, r - 1, 10, 2) : t.fillRect(n.box.x + 1, r - 4, 8, 8), t.fillStyle = e(m.textMuted), t.fillText(n.name, n.box.x + 14, r), n.hidden) {
67
+ if (t.globalAlpha = n.hidden ? .45 : 1, t.fillStyle = n.color, n.shape === "dot" ? (t.beginPath(), t.arc(n.box.x + 5, r, 4, 0, Math.PI * 2), t.fill()) : n.shape === "line" ? t.fillRect(n.box.x, r - 1, 10, 2) : t.fillRect(n.box.x + 1, r - 4, 8, 8), t.fillStyle = e(g.textMuted), t.fillText(n.name, n.box.x + 14, r), n.hidden) {
27
68
  let e = n.box.width - 22;
28
69
  t.fillRect(n.box.x + 14, r, e, 1);
29
70
  }
30
71
  }
31
72
  t.globalAlpha = 1;
32
73
  }
33
- for (let n of o.hover?.marks ?? []) n.kind === "band" && (l(t, n.x, n.y, n.width, n.height, 6), t.fillStyle = e(m.text, .06), t.fill());
34
- let x = (e, t, n) => {
35
- let r = 2 / (e[1] - e[0]), i = (t - e[0]) * r - 1;
36
- return n ? [-r, -i] : [r, i];
37
- }, [S, C] = x(g.x, c.x, h.x.reverse), [w, T] = x(g.y, c.y, h.y.reverse);
38
- if (d.paint(s, {
39
- transform: {
40
- xScale: S,
41
- xOffset: C,
42
- yScale: w,
43
- yOffset: T
44
- },
45
- width: Math.max(1, Math.round(v.width * b)),
46
- height: Math.max(1, Math.round(v.height * b)),
47
- dpr: b
48
- }, Math.round(v.x * b), Math.round(v.y * b)), t.setTransform(b, 0, 0, b, 0, 0), r(t, {
49
- width: f,
50
- height: p,
51
- scales: y,
52
- theme: m,
74
+ for (let n of o.hover?.marks ?? []) n.kind === "band" && (u(t, n.x, n.y, n.width, n.height, 6), t.fillStyle = e(g.text, .06), t.fill());
75
+ x.horizontal ? d(t, c(o), b) : C();
76
+ function C() {
77
+ let e = (e, t, n) => {
78
+ let r = 2 / (e[1] - e[0]), i = (t - e[0]) * r - 1;
79
+ return n ? [-r, -i] : [r, i];
80
+ }, [t, n] = e(v.x, l.x, _.x.reverse), [r, i] = e(v.y, l.y, _.y.reverse);
81
+ p.paint(s, {
82
+ transform: {
83
+ xScale: t,
84
+ xOffset: n,
85
+ yScale: r,
86
+ yOffset: i
87
+ },
88
+ width: Math.max(1, Math.round(b.width * S)),
89
+ height: Math.max(1, Math.round(b.height * S)),
90
+ dpr: S
91
+ }, Math.round(b.x * S), Math.round(b.y * S));
92
+ }
93
+ if (t.setTransform(S, 0, 0, S, 0, 0), r(t, {
94
+ width: m,
95
+ height: h,
96
+ scales: x,
97
+ theme: g,
53
98
  annotations: o.annotations,
54
99
  pointLabels: [],
55
100
  clear: !1
56
101
  }), o.pointLabels.length) {
57
- t.save(), t.font = i(m), t.textAlign = "left", t.textBaseline = "middle", t.lineWidth = 3, t.lineJoin = "round", t.strokeStyle = e(m.background, .9), t.fillStyle = e(m.text, .85);
102
+ t.save(), t.font = i(g), t.textAlign = "left", t.textBaseline = "middle", t.lineWidth = 3, t.lineJoin = "round", t.strokeStyle = e(g.background, .9), t.fillStyle = e(g.text, .85);
58
103
  for (let { label: e, box: n } of o.pointLabels) t.strokeText(e.text, n.x, n.y + n.height / 2), t.fillText(e.text, n.x, n.y + n.height / 2);
59
104
  t.restore();
60
105
  }
61
- let E = o.hover;
62
- if (E) {
63
- if (E.crosshairX !== null) {
64
- t.save(), t.strokeStyle = e(m.textMuted, .55), t.lineWidth = 1, t.setLineDash([3, 3]), t.beginPath();
65
- let n = Math.round(E.crosshairX) + .5;
66
- t.moveTo(n, v.y), t.lineTo(n, v.y + v.height), t.stroke(), t.restore();
106
+ let w = o.hover;
107
+ if (w) {
108
+ if (w.crosshairX !== null) {
109
+ t.save(), t.strokeStyle = e(g.textMuted, .55), t.lineWidth = 1, t.setLineDash([3, 3]), t.beginPath();
110
+ let n = Math.round(w.crosshairX) + .5;
111
+ t.moveTo(n, b.y), t.lineTo(n, b.y + b.height), t.stroke(), t.restore();
112
+ }
113
+ if (w.crosshairY !== null) {
114
+ t.save(), t.strokeStyle = e(g.textMuted, .55), t.lineWidth = 1, t.setLineDash([3, 3]), t.beginPath();
115
+ let n = Math.round(w.crosshairY) + .5;
116
+ t.moveTo(b.x, n), t.lineTo(b.x + b.width, n), t.stroke(), t.restore();
67
117
  }
68
- for (let n of E.marks) if (n.kind !== "band") {
118
+ for (let n of w.marks) if (n.kind !== "band") {
69
119
  if (n.kind === "cell") {
70
- l(t, n.x, n.y, n.width, n.height, 3), t.lineWidth = 3, t.strokeStyle = e(m.background), t.stroke(), t.lineWidth = 1.5, t.strokeStyle = e(m.text, .55), t.stroke();
120
+ u(t, n.x, n.y, n.width, n.height, 3), t.lineWidth = 3, t.strokeStyle = e(g.background), t.stroke(), t.lineWidth = 1.5, t.strokeStyle = e(g.text, .55), t.stroke();
71
121
  continue;
72
122
  }
73
- t.beginPath(), t.arc(n.x, n.y, n.size / 2 + 4, 0, Math.PI * 2), t.fillStyle = n.halo, t.fill(), t.beginPath(), t.arc(n.x, n.y, n.size / 2 - 1, 0, Math.PI * 2), t.fillStyle = n.color, t.fill(), t.lineWidth = 2, t.strokeStyle = e(m.background), t.stroke();
123
+ t.beginPath(), t.arc(n.x, n.y, n.size / 2 + 4, 0, Math.PI * 2), t.fillStyle = n.halo, t.fill(), t.beginPath(), t.arc(n.x, n.y, n.size / 2 - 1, 0, Math.PI * 2), t.fillStyle = n.color, t.fill(), t.lineWidth = 2, t.strokeStyle = e(g.background), t.stroke();
74
124
  }
75
125
  }
76
126
  if (o.dragging) {
77
127
  let n = o.dragging;
78
- t.beginPath(), t.arc(n.x, n.y, n.size / 2, 0, Math.PI * 2), t.fillStyle = n.color, t.globalAlpha = .85, t.fill(), t.globalAlpha = 1, t.lineWidth = 2, t.strokeStyle = e(m.background), t.stroke();
128
+ t.beginPath(), t.arc(n.x, n.y, n.size / 2, 0, Math.PI * 2), t.fillStyle = n.color, t.globalAlpha = .85, t.fill(), t.globalAlpha = 1, t.lineWidth = 2, t.strokeStyle = e(g.background), t.stroke();
79
129
  }
80
- let D = E?.tooltip;
81
- if (D) {
82
- let { box: n, lineHeight: r, padding: a } = D;
83
- t.save(), t.shadowColor = "rgba(15, 23, 42, 0.18)", t.shadowBlur = 16, t.shadowOffsetY = 6, l(t, n.x, n.y, n.width, n.height, 8), t.fillStyle = e(m.background), t.fill(), t.restore(), l(t, n.x + .5, n.y + .5, n.width - 1, n.height - 1, 8), t.strokeStyle = e(m.axis, .6), t.lineWidth = 1, t.stroke(), t.textBaseline = "middle";
130
+ let T = w?.tooltip;
131
+ if (T) {
132
+ let { box: n, lineHeight: r, padding: a } = T;
133
+ t.save(), t.shadowColor = "rgba(15, 23, 42, 0.18)", t.shadowBlur = 16, t.shadowOffsetY = 6, u(t, n.x, n.y, n.width, n.height, 8), t.fillStyle = e(g.background), t.fill(), t.restore(), u(t, n.x + .5, n.y + .5, n.width - 1, n.height - 1, 8), t.strokeStyle = e(g.axis, .6), t.lineWidth = 1, t.stroke(), t.textBaseline = "middle";
84
134
  let o = n.y + a + r / 2, s = n.x + a + 2, c = n.x + n.width - a - 2;
85
- if (D.text) {
86
- t.font = i(m, 12), t.fillStyle = e(m.text), t.textAlign = "left";
87
- for (let e of D.text) t.fillText(e, s, o), o += r;
135
+ if (T.text) {
136
+ t.font = i(g, 12), t.fillStyle = e(g.text), t.textAlign = "left";
137
+ for (let e of T.text) t.fillText(e, s, o), o += r;
88
138
  } else {
89
- let { content: n } = D, a = s;
90
- n.titleColor && (t.fillStyle = n.titleColor, t.beginPath(), t.arc(a + 4, o, 4, 0, Math.PI * 2), t.fill(), a += 14), t.font = i(m, 12, 600), t.fillStyle = e(m.text), t.textAlign = "left", t.fillText(n.title, a, o), o += r;
91
- for (let l of n.rows) a = s, l.color && (t.fillStyle = l.color, t.beginPath(), t.arc(a + 4, o, 4, 0, Math.PI * 2), t.fill(), a += 14), t.font = i(m, 12), t.textAlign = "left", t.fillStyle = e(m.textMuted), t.fillText(l.name, a, o), t.font = i(m, 12, 600), t.textAlign = "right", t.fillStyle = e(m.text), t.fillText(l.value, c, o), o += r;
139
+ let { content: n } = T, a = s;
140
+ n.titleColor && (t.fillStyle = n.titleColor, t.beginPath(), t.arc(a + 4, o, 4, 0, Math.PI * 2), t.fill(), a += 14), t.font = i(g, 12, 600), t.fillStyle = e(g.text), t.textAlign = "left", t.fillText(n.title, a, o), o += r;
141
+ for (let l of n.rows) a = s, l.color && (t.fillStyle = l.color, t.beginPath(), t.arc(a + 4, o, 4, 0, Math.PI * 2), t.fill(), a += 14), t.font = i(g, 12), t.textAlign = "left", t.fillStyle = e(g.textMuted), t.fillText(l.name, a, o), t.font = i(g, 12, 600), t.textAlign = "right", t.fillStyle = e(g.text), t.fillText(l.value, c, o), o += r;
92
142
  }
93
143
  }
94
- }, d = (e) => {
95
- let { canvas: n } = e, r = n.getContext("2d"), i = e.width, l = e.height, d = e.pixelRatio ?? 1, f = !1, p = null, m = [], h = null, g = "", _ = e.options, v = /* @__PURE__ */ new WeakMap(), y = 0, b = (e) => {
144
+ }, p = (e) => {
145
+ let { canvas: n } = e, r = n.getContext("2d"), i = e.width, c = e.height, u = e.pixelRatio ?? 1, d = !1, p = null, m = [], h = null, g = "", _ = e.options, v = /* @__PURE__ */ new WeakMap(), y = 0, b = (e) => {
96
146
  let t = v.get(e);
97
147
  return t === void 0 && v.set(e, t = ++y), t;
98
148
  }, x = {
99
149
  x: 0,
100
150
  y: 0
101
151
  }, S = 0, C = "", w = (e, t) => r ? (t !== C && (r.font = t, C = t), r.measureText(e).width) : e.length * 6.5, T = r ? a(r) : null, E = globalThis, D = () => {
102
- if (p = null, f || !r || !T) return;
152
+ if (p = null, d || !r || !T) return;
103
153
  let e = k.getScene();
104
154
  if (!e) return;
105
- let a = Math.max(1, Math.round(i * d)), s = Math.max(1, Math.round(l * d));
155
+ let a = Math.max(1, Math.round(i * u)), s = Math.max(1, Math.round(c * u));
106
156
  if (n.width !== a && (n.width = a), n.height !== s && (n.height = s), C = "", h !== e.model) {
107
157
  h = e.model;
108
158
  let n = o(e.model, b(e.theme), (e) => _.series[e]?.stack);
109
159
  n !== g && (g = n, x = {
110
- x: c(e.model.base.x),
111
- y: c(e.model.base.y)
160
+ x: l(e.model.base.x),
161
+ y: l(e.model.base.y)
112
162
  }, m = t(e.model, x, ++S));
113
163
  }
114
- u(r, e, m, x, d, T), C = "";
164
+ f(r, e, m, x, u, T), C = "";
115
165
  }, O = () => {
116
- f || p !== null || (p = n.requestAnimationFrame ? n.requestAnimationFrame(D) : E.requestAnimationFrame ? E.requestAnimationFrame(D) : setTimeout(D, 16));
166
+ d || p !== null || (p = n.requestAnimationFrame ? n.requestAnimationFrame(D) : E.requestAnimationFrame ? E.requestAnimationFrame(D) : setTimeout(D, 16));
117
167
  }, k = s({
118
168
  options: e.options,
119
169
  theme: e.theme,
120
170
  measureText: w,
121
171
  onInvalidate: O
122
172
  });
123
- k.setSize(i, l);
173
+ k.setSize(i, c);
124
174
  let A = (e, t) => ({
125
175
  id: e.identifier ?? t,
126
176
  touch: !0
@@ -131,7 +181,7 @@ var c = (e) => (e[0] + e[1]) / 2, l = (e, t, n, r, i, a) => {
131
181
  },
132
182
  setTheme: (e) => k.setTheme(e),
133
183
  resize(e, t, n) {
134
- i = e, l = t, n && (d = n), k.setSize(e, t), O();
184
+ i = e, c = t, n && (u = n), k.setSize(e, t), O();
135
185
  },
136
186
  render() {
137
187
  p !== null && (n.cancelAnimationFrame ? n.cancelAnimationFrame(p) : E.cancelAnimationFrame ? E.cancelAnimationFrame(p) : clearTimeout(p)), D();
@@ -167,11 +217,11 @@ var c = (e) => (e[0] + e[1]) / 2, l = (e, t, n, r, i, a) => {
167
217
  getController: () => k,
168
218
  on: (e, t) => k.on(e, t),
169
219
  destroy() {
170
- f || (f = !0, p !== null && (n.cancelAnimationFrame ? n.cancelAnimationFrame(p) : E.cancelAnimationFrame ? E.cancelAnimationFrame(p) : clearTimeout(p)), T?.destroy(), k.destroy());
220
+ d || (d = !0, p !== null && (n.cancelAnimationFrame ? n.cancelAnimationFrame(p) : E.cancelAnimationFrame ? E.cancelAnimationFrame(p) : clearTimeout(p)), T?.destroy(), k.destroy());
171
221
  }
172
222
  };
173
223
  };
174
224
  //#endregion
175
- export { d as createCanvasChart, u as drawScene };
225
+ export { p as createCanvasChart, d as drawPrimitives, f as drawScene };
176
226
 
177
227
  //# sourceMappingURL=canvas.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"canvas.js","names":["mid","r","roundedRect","ctx","x","y","w","h","drawScene","createCanvas2dPainter","scene","layout","dpr","pixelRatio","width","height","drawBackground","model","font","theme","e","cy","toCss","mark","scale","s","range","offset","o","reverse","xScale","xOffset","view","origin","yScale","yOffset","painter","items","plot","drawForeground","label","box","hover","cx","d","tip","padding","lineHeight","left","right","line","content","row","createCanvasChart","config","canvas","destroyed","frameId","itemsModel","itemsKey","options","themeIds","themeCount","themeId","id","version","fontSet","measureText","f","text","g","render","controller","pw","ph","key","itemsSignature","index","buildItems","schedule","createChartController","touchOptions","t","i","ratio","v","type","listener"],"sources":["../../../../charts/src/engine/canvas.ts"],"sourcesContent":["// createCanvasChart: a whole chart drawn on one 2D canvas without any DOM:\n// WeChat / Alipay / ByteDance mini-programs (`<canvas type=\"2d\">`), Taro,\n// uni-app, OffscreenCanvas, or a plain browser canvas. The host forwards\n// touches / pointer events; everything else is handled here.\n\nimport { toCss } from \"./color\";\nimport {\n createChartController,\n type ChartController,\n type ChartControllerEventMap,\n type ChartPointerOptions,\n type ChartScene,\n} from \"./controller\";\nimport { buildItems, type Origin } from \"./items\";\nimport { drawBackground, drawForeground, font } from \"./overlay\";\nimport { createCanvas2dPainter } from \"./renderers/canvas2d\";\nimport type { RenderItem } from \"./renderers/types\";\nimport { itemsSignature } from \"./signature\";\nimport type { ChartThemeInput } from \"./theme\";\nimport type { ChartOptions, ChartRect, ChartView } from \"./types\";\n\n/**\n * The canvas a chart draws on: a browser `HTMLCanvasElement`, an\n * `OffscreenCanvas` or the node of a mini-program `<canvas type=\"2d\">`\n * (`SelectorQuery.fields({ node: true })`)\n */\nexport interface ChartCanvas {\n width: number;\n height: number;\n getContext(type: \"2d\"): unknown;\n /** Mini-program canvases schedule their frames themselves */\n requestAnimationFrame?: (callback: () => void) => number;\n cancelAnimationFrame?: (id: number) => void;\n}\n\n/** A touch point relative to the canvas (`x` / `y`) with its identifier */\nexport interface ChartTouch {\n x: number;\n y: number;\n identifier?: number;\n}\n\nexport interface CanvasChartConfig {\n canvas: ChartCanvas;\n /** Size of the canvas in CSS pixels (rpx converted by the host) */\n width: number;\n height: number;\n /**\n * Device pixel ratio (`wx.getWindowInfo().pixelRatio` in mini-programs)\n * @default 1\n */\n pixelRatio?: number;\n options: ChartOptions;\n /** Colors and fonts: values of the Minerva CSS variables */\n theme?: ChartThemeInput;\n}\n\nexport interface CanvasChartInstance {\n setOptions(options: ChartOptions): void;\n setTheme(theme: ChartThemeInput | undefined): void;\n /** New CSS size (and pixel ratio) of the canvas */\n resize(width: number, height: number, pixelRatio?: number): void;\n /** Draws now (frames are otherwise scheduled automatically) */\n render(): void;\n /** Touch handlers: pass the `touches` / `changedTouches` of the event */\n touchStart(touches: readonly ChartTouch[]): void;\n touchMove(touches: readonly ChartTouch[]): void;\n touchEnd(changedTouches: readonly ChartTouch[]): void;\n touchCancel(changedTouches?: readonly ChartTouch[]): void;\n /** Mouse / pen handlers (H5, desktop mini-programs) */\n pointerDown(x: number, y: number, options?: ChartPointerOptions): void;\n pointerMove(x: number, y: number, options?: ChartPointerOptions): void;\n pointerUp(x: number, y: number, options?: ChartPointerOptions): void;\n pointerLeave(): void;\n /** Zooms around a pixel (factor < 1 zooms in) */\n zoomAt(x: number, y: number, factor: number): void;\n resetZoom(): void;\n getView(): ChartView;\n setView(view: Partial<ChartView>): void;\n toggleSeries(id: string): void;\n clearHover(): void;\n getPlotRect(): ChartRect | null;\n toPixel(x: number, y: number): { x: number; y: number } | null;\n fromPixel(x: number, y: number): { x: number; y: number } | null;\n /** The platform-free controller (scene, gestures) */\n getController(): ChartController;\n on<K extends keyof ChartControllerEventMap>(\n type: K,\n listener: (event: ChartControllerEventMap[K]) => void,\n ): () => void;\n destroy(): void;\n}\n\nconst mid = (r: [number, number]) => (r[0] + r[1]) / 2;\n\nconst roundedRect = (\n ctx: CanvasRenderingContext2D,\n x: number,\n y: number,\n w: number,\n h: number,\n r: number,\n) => {\n ctx.beginPath();\n ctx.moveTo(x + r, y);\n ctx.lineTo(x + w - r, y);\n ctx.arcTo(x + w, y, x + w, y + r, r);\n ctx.lineTo(x + w, y + h - r);\n ctx.arcTo(x + w, y + h, x + w - r, y + h, r);\n ctx.lineTo(x + r, y + h);\n ctx.arcTo(x, y + h, x, y + h - r, r);\n ctx.lineTo(x, y + r);\n ctx.arcTo(x, y, x + r, y, r);\n ctx.closePath();\n};\n\n/** Draws a scene (legend, axes, data, labels, hover) on a 2D context */\nexport const drawScene = (\n ctx: CanvasRenderingContext2D,\n scene: ChartScene,\n items: readonly RenderItem[],\n origin: Origin,\n pixelRatio: number,\n painter = createCanvas2dPainter(ctx),\n) => {\n const { width, height, theme, model, view, layout } = scene;\n const { plot, scales } = layout;\n const dpr = pixelRatio;\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.clearRect(0, 0, Math.ceil(width * dpr), Math.ceil(height * dpr));\n ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n drawBackground(ctx, {\n width,\n height,\n scales,\n x: model.x,\n y: model.y,\n xTicks: layout.xTicks,\n yTicks: layout.yTicks,\n theme,\n annotations: scene.annotations,\n });\n\n // legend\n if (scene.legend) {\n ctx.font = font(theme, 12);\n ctx.textBaseline = \"middle\";\n ctx.textAlign = \"left\";\n for (const e of scene.legend.entries) {\n const cy = e.box.y + e.box.height / 2;\n ctx.globalAlpha = e.hidden ? 0.45 : 1;\n ctx.fillStyle = e.color;\n if (e.shape === \"dot\") {\n ctx.beginPath();\n ctx.arc(e.box.x + 5, cy, 4, 0, Math.PI * 2);\n ctx.fill();\n } else if (e.shape === \"line\") {\n ctx.fillRect(e.box.x, cy - 1, 10, 2);\n } else {\n ctx.fillRect(e.box.x + 1, cy - 4, 8, 8);\n }\n ctx.fillStyle = toCss(theme.textMuted);\n ctx.fillText(e.name, e.box.x + 14, cy);\n if (e.hidden) {\n const w = e.box.width - 22;\n ctx.fillRect(e.box.x + 14, cy, w, 1);\n }\n }\n ctx.globalAlpha = 1;\n }\n\n // hover band of bars, below the data\n for (const mark of scene.hover?.marks ?? []) {\n if (mark.kind !== \"band\") continue;\n roundedRect(ctx, mark.x, mark.y, mark.width, mark.height, 6);\n ctx.fillStyle = toCss(theme.text, 0.06);\n ctx.fill();\n }\n\n // data\n const scale = (range: [number, number], o: number, reverse: boolean) => {\n const s = 2 / (range[1] - range[0]);\n const offset = (o - range[0]) * s - 1;\n return reverse ? [-s, -offset] : [s, offset];\n };\n const [xScale, xOffset] = scale(view.x, origin.x, model.x.reverse);\n const [yScale, yOffset] = scale(view.y, origin.y, model.y.reverse);\n painter.paint(\n items,\n {\n transform: { xScale, xOffset, yScale, yOffset },\n width: Math.max(1, Math.round(plot.width * dpr)),\n height: Math.max(1, Math.round(plot.height * dpr)),\n dpr,\n },\n Math.round(plot.x * dpr),\n Math.round(plot.y * dpr),\n );\n\n ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n drawForeground(ctx, {\n width,\n height,\n scales,\n theme,\n annotations: scene.annotations,\n pointLabels: [],\n clear: false,\n });\n // dot labels placed by the scene\n if (scene.pointLabels.length) {\n ctx.save();\n ctx.font = font(theme);\n ctx.textAlign = \"left\";\n ctx.textBaseline = \"middle\";\n ctx.lineWidth = 3;\n ctx.lineJoin = \"round\";\n ctx.strokeStyle = toCss(theme.background, 0.9);\n ctx.fillStyle = toCss(theme.text, 0.85);\n for (const { label, box } of scene.pointLabels) {\n ctx.strokeText(label.text, box.x, box.y + box.height / 2);\n ctx.fillText(label.text, box.x, box.y + box.height / 2);\n }\n ctx.restore();\n }\n\n // hover\n const hover = scene.hover;\n if (hover) {\n if (hover.crosshairX !== null) {\n ctx.save();\n ctx.strokeStyle = toCss(theme.textMuted, 0.55);\n ctx.lineWidth = 1;\n ctx.setLineDash([3, 3]);\n ctx.beginPath();\n const cx = Math.round(hover.crosshairX) + 0.5;\n ctx.moveTo(cx, plot.y);\n ctx.lineTo(cx, plot.y + plot.height);\n ctx.stroke();\n ctx.restore();\n }\n for (const mark of hover.marks) {\n if (mark.kind === \"band\") continue;\n if (mark.kind === \"cell\") {\n roundedRect(ctx, mark.x, mark.y, mark.width, mark.height, 3);\n ctx.lineWidth = 3;\n ctx.strokeStyle = toCss(theme.background);\n ctx.stroke();\n ctx.lineWidth = 1.5;\n ctx.strokeStyle = toCss(theme.text, 0.55);\n ctx.stroke();\n continue;\n }\n ctx.beginPath();\n ctx.arc(mark.x, mark.y, mark.size / 2 + 4, 0, Math.PI * 2);\n ctx.fillStyle = mark.halo;\n ctx.fill();\n ctx.beginPath();\n ctx.arc(mark.x, mark.y, mark.size / 2 - 1, 0, Math.PI * 2);\n ctx.fillStyle = mark.color;\n ctx.fill();\n ctx.lineWidth = 2;\n ctx.strokeStyle = toCss(theme.background);\n ctx.stroke();\n }\n }\n if (scene.dragging) {\n const d = scene.dragging;\n ctx.beginPath();\n ctx.arc(d.x, d.y, d.size / 2, 0, Math.PI * 2);\n ctx.fillStyle = d.color;\n ctx.globalAlpha = 0.85;\n ctx.fill();\n ctx.globalAlpha = 1;\n ctx.lineWidth = 2;\n ctx.strokeStyle = toCss(theme.background);\n ctx.stroke();\n }\n const tip = hover?.tooltip;\n if (tip) {\n const { box, lineHeight, padding } = tip;\n ctx.save();\n ctx.shadowColor = \"rgba(15, 23, 42, 0.18)\";\n ctx.shadowBlur = 16;\n ctx.shadowOffsetY = 6;\n roundedRect(ctx, box.x, box.y, box.width, box.height, 8);\n ctx.fillStyle = toCss(theme.background);\n ctx.fill();\n ctx.restore();\n roundedRect(\n ctx,\n box.x + 0.5,\n box.y + 0.5,\n box.width - 1,\n box.height - 1,\n 8,\n );\n ctx.strokeStyle = toCss(theme.axis, 0.6);\n ctx.lineWidth = 1;\n ctx.stroke();\n ctx.textBaseline = \"middle\";\n let y = box.y + padding + lineHeight / 2;\n const left = box.x + padding + 2;\n const right = box.x + box.width - padding - 2;\n if (tip.text) {\n ctx.font = font(theme, 12);\n ctx.fillStyle = toCss(theme.text);\n ctx.textAlign = \"left\";\n for (const line of tip.text) {\n ctx.fillText(line, left, y);\n y += lineHeight;\n }\n } else {\n const { content } = tip;\n let x = left;\n if (content.titleColor) {\n ctx.fillStyle = content.titleColor;\n ctx.beginPath();\n ctx.arc(x + 4, y, 4, 0, Math.PI * 2);\n ctx.fill();\n x += 14;\n }\n ctx.font = font(theme, 12, 600);\n ctx.fillStyle = toCss(theme.text);\n ctx.textAlign = \"left\";\n ctx.fillText(content.title, x, y);\n y += lineHeight;\n for (const row of content.rows) {\n x = left;\n if (row.color) {\n ctx.fillStyle = row.color;\n ctx.beginPath();\n ctx.arc(x + 4, y, 4, 0, Math.PI * 2);\n ctx.fill();\n x += 14;\n }\n ctx.font = font(theme, 12);\n ctx.textAlign = \"left\";\n ctx.fillStyle = toCss(theme.textMuted);\n ctx.fillText(row.name, x, y);\n ctx.font = font(theme, 12, 600);\n ctx.textAlign = \"right\";\n ctx.fillStyle = toCss(theme.text);\n ctx.fillText(row.value, right, y);\n y += lineHeight;\n }\n }\n }\n};\n\n/**\n * Creates a chart drawn on a 2D canvas: line, area, bar and scatter series,\n * annotations, legend and tooltip, tap / drag / pinch gestures. Works\n * without a DOM (mini-programs); see `createChart` for the GPU version of\n * the web.\n */\nexport const createCanvasChart = (\n config: CanvasChartConfig,\n): CanvasChartInstance => {\n const { canvas } = config;\n const ctx = canvas.getContext(\"2d\") as CanvasRenderingContext2D | null;\n let width = config.width;\n let height = config.height;\n let dpr = config.pixelRatio ?? 1;\n let destroyed = false;\n let frameId: number | null = null;\n let items: RenderItem[] = [];\n let itemsModel: unknown = null;\n let itemsKey = \"\";\n let options = config.options;\n /** Ids of the themes seen (the controller replaces its theme on changes) */\n const themeIds = new WeakMap<object, number>();\n let themeCount = 0;\n const themeId = (theme: object) => {\n let id = themeIds.get(theme);\n if (id === undefined) themeIds.set(theme, (id = ++themeCount));\n return id;\n };\n let origin: Origin = { x: 0, y: 0 };\n let version = 0;\n let fontSet = \"\";\n\n const measureText = (text: string, f: string) => {\n if (!ctx) return text.length * 6.5;\n if (f !== fontSet) {\n ctx.font = f;\n fontSet = f;\n }\n return ctx.measureText(text).width;\n };\n\n const painter = ctx ? createCanvas2dPainter(ctx) : null;\n\n const g = globalThis as {\n requestAnimationFrame?: (cb: () => void) => number;\n cancelAnimationFrame?: (id: number) => void;\n };\n\n const render = () => {\n frameId = null;\n if (destroyed || !ctx || !painter) return;\n const scene = controller.getScene();\n if (!scene) return;\n const pw = Math.max(1, Math.round(width * dpr));\n const ph = Math.max(1, Math.round(height * dpr));\n if (canvas.width !== pw) canvas.width = pw;\n if (canvas.height !== ph) canvas.height = ph;\n fontSet = \"\";\n if (itemsModel !== scene.model) {\n itemsModel = scene.model;\n // a new model (any setOptions) keeps the items when nothing they\n // depend on changed\n const key = itemsSignature(\n scene.model,\n themeId(scene.theme),\n (index) => options.series[index]?.stack,\n );\n if (key !== itemsKey) {\n itemsKey = key;\n origin = { x: mid(scene.model.base.x), y: mid(scene.model.base.y) };\n items = buildItems(scene.model, origin, ++version);\n }\n }\n drawScene(ctx, scene, items, origin, dpr, painter);\n fontSet = \"\";\n };\n\n const schedule = () => {\n if (destroyed || frameId !== null) return;\n if (canvas.requestAnimationFrame)\n frameId = canvas.requestAnimationFrame(render);\n else if (g.requestAnimationFrame) frameId = g.requestAnimationFrame(render);\n else frameId = setTimeout(render, 16) as unknown as number;\n };\n\n const controller = createChartController({\n options: config.options,\n theme: config.theme,\n measureText,\n onInvalidate: schedule,\n });\n controller.setSize(width, height);\n\n const touchOptions = (t: ChartTouch, i: number): ChartPointerOptions => ({\n id: t.identifier ?? i,\n touch: true,\n });\n\n return {\n setOptions: (o) => {\n options = o;\n controller.setOptions(o);\n },\n setTheme: (t) => controller.setTheme(t),\n resize(w, h, ratio) {\n width = w;\n height = h;\n if (ratio) dpr = ratio;\n controller.setSize(w, h);\n schedule();\n },\n render() {\n if (frameId !== null) {\n if (canvas.cancelAnimationFrame) canvas.cancelAnimationFrame(frameId);\n else if (g.cancelAnimationFrame) g.cancelAnimationFrame(frameId);\n else clearTimeout(frameId);\n }\n render();\n },\n touchStart(touches) {\n touches.forEach((t, i) =>\n controller.pointerDown(t.x, t.y, touchOptions(t, i)),\n );\n },\n touchMove(touches) {\n touches.forEach((t, i) =>\n controller.pointerMove(t.x, t.y, touchOptions(t, i)),\n );\n },\n touchEnd(touches) {\n touches.forEach((t, i) =>\n controller.pointerUp(t.x, t.y, touchOptions(t, i)),\n );\n },\n touchCancel(touches = [{ x: 0, y: 0 }]) {\n touches.forEach((t, i) => controller.pointerCancel(touchOptions(t, i)));\n },\n pointerDown: (x, y, o) => controller.pointerDown(x, y, o),\n pointerMove: (x, y, o) => controller.pointerMove(x, y, o),\n pointerUp: (x, y, o) => controller.pointerUp(x, y, o),\n pointerLeave: () => controller.pointerLeave(),\n zoomAt: (x, y, f) => controller.zoomAt(x, y, f),\n resetZoom: () => controller.resetZoom(),\n getView: () => controller.getView(),\n setView: (v) => controller.setView(v),\n toggleSeries: (id) => controller.toggleSeries(id),\n clearHover: () => controller.clearHover(),\n getPlotRect: () => controller.getPlotRect(),\n toPixel: (x, y) => controller.toPixel(x, y),\n fromPixel: (x, y) => controller.fromPixel(x, y),\n getController: () => controller,\n on: (type, listener) => controller.on(type, listener),\n destroy() {\n if (destroyed) return;\n destroyed = true;\n if (frameId !== null) {\n if (canvas.cancelAnimationFrame) canvas.cancelAnimationFrame(frameId);\n else if (g.cancelAnimationFrame) g.cancelAnimationFrame(frameId);\n else clearTimeout(frameId);\n }\n painter?.destroy();\n controller.destroy();\n },\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"canvas.js","names":["mid","r","roundedRect","ctx","x","y","w","h","drawPrimitives","plot","p","primitives","bottoms","k","n","run","i","b","radius","drawScene","createCanvas2dPainter","scene","layout","dpr","pixelRatio","width","height","drawBackground","model","font","theme","e","cy","toCss","mark","scales","scenePrimitives","paintData","scale","s","range","offset","o","reverse","xScale","xOffset","view","origin","yScale","yOffset","items","drawForeground","label","box","hover","cx","d","tip","padding","lineHeight","left","right","line","content","row","createCanvasChart","config","canvas","destroyed","frameId","itemsModel","itemsKey","options","themeIds","themeCount","themeId","id","version","fontSet","measureText","f","text","painter","g","render","controller","pw","ph","key","itemsSignature","index","buildItems","schedule","createChartController","touchOptions","t","ratio","v","type","listener"],"sources":["../../../../charts/src/engine/canvas.ts"],"sourcesContent":["// createCanvasChart: a whole chart drawn on one 2D canvas without any DOM:\n// WeChat / Alipay / ByteDance mini-programs (`<canvas type=\"2d\">`), Taro,\n// uni-app, OffscreenCanvas, or a plain browser canvas. The host forwards\n// touches / pointer events; everything else is handled here.\n\nimport { toCss } from \"./color\";\nimport {\n createChartController,\n scenePrimitives,\n type ChartController,\n type ChartControllerEventMap,\n type ChartPointerOptions,\n type ChartPrimitive,\n type ChartScene,\n} from \"./controller\";\nimport { buildItems, type Origin } from \"./items\";\nimport { drawBackground, drawForeground, font } from \"./overlay\";\nimport { createCanvas2dPainter } from \"./renderers/canvas2d\";\nimport type { RenderItem } from \"./renderers/types\";\nimport { itemsSignature } from \"./signature\";\nimport type { ChartThemeInput } from \"./theme\";\nimport type { ChartOptions, ChartRect, ChartView } from \"./types\";\n\n/**\n * The canvas a chart draws on: a browser `HTMLCanvasElement`, an\n * `OffscreenCanvas` or the node of a mini-program `<canvas type=\"2d\">`\n * (`SelectorQuery.fields({ node: true })`)\n */\nexport interface ChartCanvas {\n width: number;\n height: number;\n getContext(type: \"2d\"): unknown;\n /** Mini-program canvases schedule their frames themselves */\n requestAnimationFrame?: (callback: () => void) => number;\n cancelAnimationFrame?: (id: number) => void;\n}\n\n/** A touch point relative to the canvas (`x` / `y`) with its identifier */\nexport interface ChartTouch {\n x: number;\n y: number;\n identifier?: number;\n}\n\nexport interface CanvasChartConfig {\n canvas: ChartCanvas;\n /** Size of the canvas in CSS pixels (rpx converted by the host) */\n width: number;\n height: number;\n /**\n * Device pixel ratio (`wx.getWindowInfo().pixelRatio` in mini-programs)\n * @default 1\n */\n pixelRatio?: number;\n options: ChartOptions;\n /** Colors and fonts: values of the Minerva CSS variables */\n theme?: ChartThemeInput;\n}\n\nexport interface CanvasChartInstance {\n setOptions(options: ChartOptions): void;\n setTheme(theme: ChartThemeInput | undefined): void;\n /** New CSS size (and pixel ratio) of the canvas */\n resize(width: number, height: number, pixelRatio?: number): void;\n /** Draws now (frames are otherwise scheduled automatically) */\n render(): void;\n /** Touch handlers: pass the `touches` / `changedTouches` of the event */\n touchStart(touches: readonly ChartTouch[]): void;\n touchMove(touches: readonly ChartTouch[]): void;\n touchEnd(changedTouches: readonly ChartTouch[]): void;\n touchCancel(changedTouches?: readonly ChartTouch[]): void;\n /** Mouse / pen handlers (H5, desktop mini-programs) */\n pointerDown(x: number, y: number, options?: ChartPointerOptions): void;\n pointerMove(x: number, y: number, options?: ChartPointerOptions): void;\n pointerUp(x: number, y: number, options?: ChartPointerOptions): void;\n pointerLeave(): void;\n /** Zooms around a pixel (factor < 1 zooms in) */\n zoomAt(x: number, y: number, factor: number): void;\n resetZoom(): void;\n getView(): ChartView;\n setView(view: Partial<ChartView>): void;\n toggleSeries(id: string): void;\n clearHover(): void;\n getPlotRect(): ChartRect | null;\n toPixel(x: number, y: number): { x: number; y: number } | null;\n fromPixel(x: number, y: number): { x: number; y: number } | null;\n /** The platform-free controller (scene, gestures) */\n getController(): ChartController;\n on<K extends keyof ChartControllerEventMap>(\n type: K,\n listener: (event: ChartControllerEventMap[K]) => void,\n ): () => void;\n destroy(): void;\n}\n\nconst mid = (r: [number, number]) => (r[0] + r[1]) / 2;\n\nconst roundedRect = (\n ctx: CanvasRenderingContext2D,\n x: number,\n y: number,\n w: number,\n h: number,\n r: number,\n) => {\n ctx.beginPath();\n ctx.moveTo(x + r, y);\n ctx.lineTo(x + w - r, y);\n ctx.arcTo(x + w, y, x + w, y + r, r);\n ctx.lineTo(x + w, y + h - r);\n ctx.arcTo(x + w, y + h, x + w - r, y + h, r);\n ctx.lineTo(x + r, y + h);\n ctx.arcTo(x, y + h, x, y + h - r, r);\n ctx.lineTo(x, y + r);\n ctx.arcTo(x, y, x + r, y, r);\n ctx.closePath();\n};\n\n/**\n * Draws the shapes of `scenePrimitives` (CSS pixels of the chart) clipped to\n * the plot: the data of horizontal charts\n */\nexport const drawPrimitives = (\n ctx: CanvasRenderingContext2D,\n primitives: readonly ChartPrimitive[],\n plot: { x: number; y: number; width: number; height: number },\n) => {\n ctx.save();\n ctx.beginPath();\n ctx.rect(plot.x, plot.y, plot.width, plot.height);\n ctx.clip();\n ctx.lineJoin = \"round\";\n ctx.lineCap = \"round\";\n for (const p of primitives) {\n if (p.kind === \"area\") {\n ctx.globalAlpha = p.opacity;\n ctx.fillStyle = p.color;\n p.segments.forEach((run, k) => {\n const bottoms = p.bottoms?.[k];\n const n = run.length / 2;\n if (n < 2) return;\n ctx.beginPath();\n for (let i = 0; i < n; i++) {\n if (i === 0) ctx.moveTo(run[0], run[1]);\n else ctx.lineTo(run[i * 2], run[i * 2 + 1]);\n }\n // back along the bottom edge (or the baseline)\n for (let i = n - 1; i >= 0; i--) {\n const b = bottoms ? bottoms[i] : p.baseline;\n if (p.horizontal) ctx.lineTo(b, run[i * 2 + 1]);\n else ctx.lineTo(run[i * 2], b);\n }\n ctx.closePath();\n ctx.fill();\n });\n ctx.globalAlpha = 1;\n } else if (p.kind === \"line\") {\n ctx.strokeStyle = p.color;\n ctx.lineWidth = p.width;\n ctx.beginPath();\n for (const run of p.segments) {\n for (let i = 0; i < run.length; i += 2) {\n if (i === 0) ctx.moveTo(run[0], run[1]);\n else ctx.lineTo(run[i], run[i + 1]);\n }\n }\n ctx.stroke();\n } else if (p.kind === \"bars\") {\n ctx.globalAlpha = p.opacity ?? 1;\n const r = p.radius ?? 0;\n for (let k = 0; k < p.rects.length; k += 4) {\n const [x, y, w, h] = [\n p.rects[k],\n p.rects[k + 1],\n p.rects[k + 2],\n p.rects[k + 3],\n ];\n ctx.fillStyle = p.colors?.[k / 4] ?? p.color;\n const radius = Math.min(r, w / 2, h / 2);\n if (radius > 0.5) {\n roundedRect(ctx, x, y, w, h, radius);\n ctx.fill();\n } else {\n ctx.fillRect(x, y, w, h);\n }\n }\n ctx.globalAlpha = 1;\n } else {\n ctx.globalAlpha = p.opacity;\n for (let k = 0; k < p.dots.length; k += 3) {\n ctx.fillStyle = p.colors[k / 3] ?? \"#888\";\n ctx.beginPath();\n ctx.arc(p.dots[k], p.dots[k + 1], p.dots[k + 2] / 2, 0, Math.PI * 2);\n ctx.fill();\n }\n ctx.globalAlpha = 1;\n }\n }\n ctx.restore();\n};\n\n/** Draws a scene (legend, axes, data, labels, hover) on a 2D context */\nexport const drawScene = (\n ctx: CanvasRenderingContext2D,\n scene: ChartScene,\n items: readonly RenderItem[],\n origin: Origin,\n pixelRatio: number,\n painter = createCanvas2dPainter(ctx),\n) => {\n const { width, height, theme, model, view, layout } = scene;\n const { plot, scales } = layout;\n const dpr = pixelRatio;\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.clearRect(0, 0, Math.ceil(width * dpr), Math.ceil(height * dpr));\n ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n drawBackground(ctx, {\n width,\n height,\n scales,\n x: model.x,\n y: model.y,\n xTicks: layout.xTicks,\n yTicks: layout.yTicks,\n y2: model.y2,\n y2Ticks: layout.y2Ticks,\n theme,\n annotations: scene.annotations,\n });\n\n // legend\n if (scene.legend) {\n ctx.font = font(theme, 12);\n ctx.textBaseline = \"middle\";\n ctx.textAlign = \"left\";\n for (const e of scene.legend.entries) {\n const cy = e.box.y + e.box.height / 2;\n ctx.globalAlpha = e.hidden ? 0.45 : 1;\n ctx.fillStyle = e.color;\n if (e.shape === \"dot\") {\n ctx.beginPath();\n ctx.arc(e.box.x + 5, cy, 4, 0, Math.PI * 2);\n ctx.fill();\n } else if (e.shape === \"line\") {\n ctx.fillRect(e.box.x, cy - 1, 10, 2);\n } else {\n ctx.fillRect(e.box.x + 1, cy - 4, 8, 8);\n }\n ctx.fillStyle = toCss(theme.textMuted);\n ctx.fillText(e.name, e.box.x + 14, cy);\n if (e.hidden) {\n const w = e.box.width - 22;\n ctx.fillRect(e.box.x + 14, cy, w, 1);\n }\n }\n ctx.globalAlpha = 1;\n }\n\n // hover band of bars, below the data\n for (const mark of scene.hover?.marks ?? []) {\n if (mark.kind !== \"band\") continue;\n roundedRect(ctx, mark.x, mark.y, mark.width, mark.height, 6);\n ctx.fillStyle = toCss(theme.text, 0.06);\n ctx.fill();\n }\n\n // data (horizontal charts: as shapes, the painter draws vertical charts)\n if (scales.horizontal) {\n drawPrimitives(ctx, scenePrimitives(scene), plot);\n } else {\n paintData();\n }\n function paintData() {\n const scale = (range: [number, number], o: number, reverse: boolean) => {\n const s = 2 / (range[1] - range[0]);\n const offset = (o - range[0]) * s - 1;\n return reverse ? [-s, -offset] : [s, offset];\n };\n const [xScale, xOffset] = scale(view.x, origin.x, model.x.reverse);\n const [yScale, yOffset] = scale(view.y, origin.y, model.y.reverse);\n painter.paint(\n items,\n {\n transform: { xScale, xOffset, yScale, yOffset },\n width: Math.max(1, Math.round(plot.width * dpr)),\n height: Math.max(1, Math.round(plot.height * dpr)),\n dpr,\n },\n Math.round(plot.x * dpr),\n Math.round(plot.y * dpr),\n );\n }\n\n ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n drawForeground(ctx, {\n width,\n height,\n scales,\n theme,\n annotations: scene.annotations,\n pointLabels: [],\n clear: false,\n });\n // dot labels placed by the scene\n if (scene.pointLabels.length) {\n ctx.save();\n ctx.font = font(theme);\n ctx.textAlign = \"left\";\n ctx.textBaseline = \"middle\";\n ctx.lineWidth = 3;\n ctx.lineJoin = \"round\";\n ctx.strokeStyle = toCss(theme.background, 0.9);\n ctx.fillStyle = toCss(theme.text, 0.85);\n for (const { label, box } of scene.pointLabels) {\n ctx.strokeText(label.text, box.x, box.y + box.height / 2);\n ctx.fillText(label.text, box.x, box.y + box.height / 2);\n }\n ctx.restore();\n }\n\n // hover\n const hover = scene.hover;\n if (hover) {\n if (hover.crosshairX !== null) {\n ctx.save();\n ctx.strokeStyle = toCss(theme.textMuted, 0.55);\n ctx.lineWidth = 1;\n ctx.setLineDash([3, 3]);\n ctx.beginPath();\n const cx = Math.round(hover.crosshairX) + 0.5;\n ctx.moveTo(cx, plot.y);\n ctx.lineTo(cx, plot.y + plot.height);\n ctx.stroke();\n ctx.restore();\n }\n if (hover.crosshairY !== null) {\n ctx.save();\n ctx.strokeStyle = toCss(theme.textMuted, 0.55);\n ctx.lineWidth = 1;\n ctx.setLineDash([3, 3]);\n ctx.beginPath();\n const cy = Math.round(hover.crosshairY) + 0.5;\n ctx.moveTo(plot.x, cy);\n ctx.lineTo(plot.x + plot.width, cy);\n ctx.stroke();\n ctx.restore();\n }\n for (const mark of hover.marks) {\n if (mark.kind === \"band\") continue;\n if (mark.kind === \"cell\") {\n roundedRect(ctx, mark.x, mark.y, mark.width, mark.height, 3);\n ctx.lineWidth = 3;\n ctx.strokeStyle = toCss(theme.background);\n ctx.stroke();\n ctx.lineWidth = 1.5;\n ctx.strokeStyle = toCss(theme.text, 0.55);\n ctx.stroke();\n continue;\n }\n ctx.beginPath();\n ctx.arc(mark.x, mark.y, mark.size / 2 + 4, 0, Math.PI * 2);\n ctx.fillStyle = mark.halo;\n ctx.fill();\n ctx.beginPath();\n ctx.arc(mark.x, mark.y, mark.size / 2 - 1, 0, Math.PI * 2);\n ctx.fillStyle = mark.color;\n ctx.fill();\n ctx.lineWidth = 2;\n ctx.strokeStyle = toCss(theme.background);\n ctx.stroke();\n }\n }\n if (scene.dragging) {\n const d = scene.dragging;\n ctx.beginPath();\n ctx.arc(d.x, d.y, d.size / 2, 0, Math.PI * 2);\n ctx.fillStyle = d.color;\n ctx.globalAlpha = 0.85;\n ctx.fill();\n ctx.globalAlpha = 1;\n ctx.lineWidth = 2;\n ctx.strokeStyle = toCss(theme.background);\n ctx.stroke();\n }\n const tip = hover?.tooltip;\n if (tip) {\n const { box, lineHeight, padding } = tip;\n ctx.save();\n ctx.shadowColor = \"rgba(15, 23, 42, 0.18)\";\n ctx.shadowBlur = 16;\n ctx.shadowOffsetY = 6;\n roundedRect(ctx, box.x, box.y, box.width, box.height, 8);\n ctx.fillStyle = toCss(theme.background);\n ctx.fill();\n ctx.restore();\n roundedRect(\n ctx,\n box.x + 0.5,\n box.y + 0.5,\n box.width - 1,\n box.height - 1,\n 8,\n );\n ctx.strokeStyle = toCss(theme.axis, 0.6);\n ctx.lineWidth = 1;\n ctx.stroke();\n ctx.textBaseline = \"middle\";\n let y = box.y + padding + lineHeight / 2;\n const left = box.x + padding + 2;\n const right = box.x + box.width - padding - 2;\n if (tip.text) {\n ctx.font = font(theme, 12);\n ctx.fillStyle = toCss(theme.text);\n ctx.textAlign = \"left\";\n for (const line of tip.text) {\n ctx.fillText(line, left, y);\n y += lineHeight;\n }\n } else {\n const { content } = tip;\n let x = left;\n if (content.titleColor) {\n ctx.fillStyle = content.titleColor;\n ctx.beginPath();\n ctx.arc(x + 4, y, 4, 0, Math.PI * 2);\n ctx.fill();\n x += 14;\n }\n ctx.font = font(theme, 12, 600);\n ctx.fillStyle = toCss(theme.text);\n ctx.textAlign = \"left\";\n ctx.fillText(content.title, x, y);\n y += lineHeight;\n for (const row of content.rows) {\n x = left;\n if (row.color) {\n ctx.fillStyle = row.color;\n ctx.beginPath();\n ctx.arc(x + 4, y, 4, 0, Math.PI * 2);\n ctx.fill();\n x += 14;\n }\n ctx.font = font(theme, 12);\n ctx.textAlign = \"left\";\n ctx.fillStyle = toCss(theme.textMuted);\n ctx.fillText(row.name, x, y);\n ctx.font = font(theme, 12, 600);\n ctx.textAlign = \"right\";\n ctx.fillStyle = toCss(theme.text);\n ctx.fillText(row.value, right, y);\n y += lineHeight;\n }\n }\n }\n};\n\n/**\n * Creates a chart drawn on a 2D canvas: line, area, bar and scatter series,\n * annotations, legend and tooltip, tap / drag / pinch gestures. Works\n * without a DOM (mini-programs); see `createChart` for the GPU version of\n * the web.\n */\nexport const createCanvasChart = (\n config: CanvasChartConfig,\n): CanvasChartInstance => {\n const { canvas } = config;\n const ctx = canvas.getContext(\"2d\") as CanvasRenderingContext2D | null;\n let width = config.width;\n let height = config.height;\n let dpr = config.pixelRatio ?? 1;\n let destroyed = false;\n let frameId: number | null = null;\n let items: RenderItem[] = [];\n let itemsModel: unknown = null;\n let itemsKey = \"\";\n let options = config.options;\n /** Ids of the themes seen (the controller replaces its theme on changes) */\n const themeIds = new WeakMap<object, number>();\n let themeCount = 0;\n const themeId = (theme: object) => {\n let id = themeIds.get(theme);\n if (id === undefined) themeIds.set(theme, (id = ++themeCount));\n return id;\n };\n let origin: Origin = { x: 0, y: 0 };\n let version = 0;\n let fontSet = \"\";\n\n const measureText = (text: string, f: string) => {\n if (!ctx) return text.length * 6.5;\n if (f !== fontSet) {\n ctx.font = f;\n fontSet = f;\n }\n return ctx.measureText(text).width;\n };\n\n const painter = ctx ? createCanvas2dPainter(ctx) : null;\n\n const g = globalThis as {\n requestAnimationFrame?: (cb: () => void) => number;\n cancelAnimationFrame?: (id: number) => void;\n };\n\n const render = () => {\n frameId = null;\n if (destroyed || !ctx || !painter) return;\n const scene = controller.getScene();\n if (!scene) return;\n const pw = Math.max(1, Math.round(width * dpr));\n const ph = Math.max(1, Math.round(height * dpr));\n if (canvas.width !== pw) canvas.width = pw;\n if (canvas.height !== ph) canvas.height = ph;\n fontSet = \"\";\n if (itemsModel !== scene.model) {\n itemsModel = scene.model;\n // a new model (any setOptions) keeps the items when nothing they\n // depend on changed\n const key = itemsSignature(\n scene.model,\n themeId(scene.theme),\n (index) => options.series[index]?.stack,\n );\n if (key !== itemsKey) {\n itemsKey = key;\n origin = { x: mid(scene.model.base.x), y: mid(scene.model.base.y) };\n items = buildItems(scene.model, origin, ++version);\n }\n }\n drawScene(ctx, scene, items, origin, dpr, painter);\n fontSet = \"\";\n };\n\n const schedule = () => {\n if (destroyed || frameId !== null) return;\n if (canvas.requestAnimationFrame)\n frameId = canvas.requestAnimationFrame(render);\n else if (g.requestAnimationFrame) frameId = g.requestAnimationFrame(render);\n else frameId = setTimeout(render, 16) as unknown as number;\n };\n\n const controller = createChartController({\n options: config.options,\n theme: config.theme,\n measureText,\n onInvalidate: schedule,\n });\n controller.setSize(width, height);\n\n const touchOptions = (t: ChartTouch, i: number): ChartPointerOptions => ({\n id: t.identifier ?? i,\n touch: true,\n });\n\n return {\n setOptions: (o) => {\n options = o;\n controller.setOptions(o);\n },\n setTheme: (t) => controller.setTheme(t),\n resize(w, h, ratio) {\n width = w;\n height = h;\n if (ratio) dpr = ratio;\n controller.setSize(w, h);\n schedule();\n },\n render() {\n if (frameId !== null) {\n if (canvas.cancelAnimationFrame) canvas.cancelAnimationFrame(frameId);\n else if (g.cancelAnimationFrame) g.cancelAnimationFrame(frameId);\n else clearTimeout(frameId);\n }\n render();\n },\n touchStart(touches) {\n touches.forEach((t, i) =>\n controller.pointerDown(t.x, t.y, touchOptions(t, i)),\n );\n },\n touchMove(touches) {\n touches.forEach((t, i) =>\n controller.pointerMove(t.x, t.y, touchOptions(t, i)),\n );\n },\n touchEnd(touches) {\n touches.forEach((t, i) =>\n controller.pointerUp(t.x, t.y, touchOptions(t, i)),\n );\n },\n touchCancel(touches = [{ x: 0, y: 0 }]) {\n touches.forEach((t, i) => controller.pointerCancel(touchOptions(t, i)));\n },\n pointerDown: (x, y, o) => controller.pointerDown(x, y, o),\n pointerMove: (x, y, o) => controller.pointerMove(x, y, o),\n pointerUp: (x, y, o) => controller.pointerUp(x, y, o),\n pointerLeave: () => controller.pointerLeave(),\n zoomAt: (x, y, f) => controller.zoomAt(x, y, f),\n resetZoom: () => controller.resetZoom(),\n getView: () => controller.getView(),\n setView: (v) => controller.setView(v),\n toggleSeries: (id) => controller.toggleSeries(id),\n clearHover: () => controller.clearHover(),\n getPlotRect: () => controller.getPlotRect(),\n toPixel: (x, y) => controller.toPixel(x, y),\n fromPixel: (x, y) => controller.fromPixel(x, y),\n getController: () => controller,\n on: (type, listener) => controller.on(type, listener),\n destroy() {\n if (destroyed) return;\n destroyed = true;\n if (frameId !== null) {\n if (canvas.cancelAnimationFrame) canvas.cancelAnimationFrame(frameId);\n else if (g.cancelAnimationFrame) g.cancelAnimationFrame(frameId);\n else clearTimeout(frameId);\n }\n painter?.destroy();\n controller.destroy();\n },\n };\n};\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- const e=require("./data.cjs"),t=require("./dom.cjs"),n=require("./items.cjs"),r=require("./layout.cjs"),i=require("./model.cjs"),a=require("./overlay.cjs"),o=require("./renderers/detect.cjs"),s=require("./scene.cjs"),c=require("./signature.cjs"),l=require("./theme.cjs"),u=require("./viewport.cjs");var d=e=>(e[0]+e[1])/2,f=e=>({x:[e.x[0],e.x[1]],y:[e.y[0],e.y[1]]}),p=(p,m)=>{let h=p.ownerDocument,g=h.defaultView,_=t.createChartDom(p),ee=new Map,v=new Set,y={},b=m,x=l.readTheme(_.root,b.palette),S,C={x:[0,1],y:[0,1]},w=!1,T={x:0,y:0},te=[],E=!0,ne=0,D=[],O=null,k=null,A=null,j=null,re=0,M=!1,N=0,P=null,ie=``,F=null,I=null,L=null,ae=[],oe=[],R=[],z=0,se=``,ce=``,B=null,V=null,le=()=>{},ue=new Promise(e=>{le=e}),H=(e,t)=>{y[e]?.forEach(e=>e(t))},de=null,U=null,W=()=>{if(de===b)return U;de=b;let e=b.interaction;if(e===!1)return U=null;let t=typeof e==`object`?e:{};return U={zoom:t.zoom??!0,wheel:t.wheel??`modifier`,pan:t.pan??!0,keyboard:t.keyboard??!0,dragPoints:t.dragPoints??!1}},fe=()=>b.tooltip===!1?null:typeof b.tooltip==`object`?b.tooltip:{},G=()=>{M||N||(N=g?.requestAnimationFrame?g.requestAnimationFrame(ve):setTimeout(ve,16))},K=()=>{S=i.buildModel(b,x,v,ee);let{base:e,zoom:t,minSpan:n}=S;w?(C={x:t.x?u.clampRange(C.x,e.x,n.x):[...e.x],y:t.y?u.clampRange(C.y,e.y,n.y):[...e.y]},w=!u.sameRange(C.x,e.x)||!u.sameRange(C.y,e.y)):C=f(e);let r=c.itemsSignature(S,z,e=>b.series[e]?.stack);r!==se&&(se=r,T={x:d(e.x),y:d(e.y)},E=!0,P&&!P.keyboard&&(P=null)),D=s.resolveAnnotations(b.annotations,x),me(),he(),G()},pe=()=>{let e=(e,t)=>Math.max(Math.abs(e[0]-t),Math.abs(e[1]-t))>(e[1]-e[0])*2e3;(e(C.x,T.x)||e(C.y,T.y))&&(T={x:d(C.x),y:d(C.y)},E=!0)},me=()=>{let e=b.legend,n=b.series.filter(e=>e.name).length,r=e===void 0?n>1:!!e,i=typeof e==`object`?e:{},a=i.toggle??!0,o=i.position===`bottom`,c=`${r}|${o}|${a}`;if(r)for(let e of S.series)c+=`\n${e.id}\u0001${e.name}\u0001${e.colorCss}\u0001${s.legendShape(e.type)}\u0001${e.hidden}`;if(c===ce)return;ce=c;let l=[..._.legend.children].indexOf(h.activeElement);if(_.legend.replaceChildren(),_.legend.style.display=r?`flex`:`none`,r){_.legend.style.order=o?`1`:`0`,_.legend.style.padding=o?`8px 4px 0`:`0 4px 8px`;for(let e of S.series){let n=h.createElement(a?`button`:`span`);n instanceof HTMLButtonElement&&(n.type=`button`,n.setAttribute(`aria-pressed`,String(!e.hidden)),n.addEventListener(`click`,()=>{v.has(e.id)?v.delete(e.id):v.add(e.id),K()})),t.styleElement(n,{display:`inline-flex`,alignItems:`center`,gap:`6px`,padding:`2px 4px`,margin:`0`,border:`0`,borderRadius:`4px`,background:`none`,font:`inherit`,color:`var(--text-secondary-color, #6b7280)`,cursor:a?`pointer`:`default`,opacity:e.hidden?`0.45`:`1`,textDecoration:e.hidden?`line-through`:`none`}),n.append(t.swatch(h,e.colorCss,s.legendShape(e.type)),h.createTextNode(e.name)),_.legend.appendChild(n)}l>=0&&_.legend.children[l]?.focus()}},he=()=>{let e=S.series.map(e=>e.name).join(`, `);_.stage.setAttribute(`aria-label`,b.ariaLabel??(e?`Chart: ${e}`:`Chart`));let t=W()?.keyboard;_.stage.style.touchAction=W()?.dragPoints?`none`:`pan-y`,t?_.stage.tabIndex=0:_.stage.removeAttribute(`tabindex`)},ge=(e,t,n,r)=>{let i=Math.max(1,Math.round(t*r)),a=Math.max(1,Math.round(n*r));e.width!==i&&(e.width=i),e.height!==a&&(e.height=a),e.style.width=`${t}px`,e.style.height=`${n}px`},_e=(e,t,n)=>{let r=2/(e[1]-e[0]),i=(t-e[0])*r-1;return n?[-r,-i]:[r,i]};function ve(){if(N=0,M)return;let e=_.stage.clientWidth,r=_.stage.clientHeight;if(e<=0||r<=0)return;let i=g?.devicePixelRatio||1;ge(_.background,e,r,i),ge(_.foreground,e,r,i);let o=_.background.getContext(`2d`),c=_.foreground.getContext(`2d`);o&&(o.setTransform(i,0,0,i,0,0),o.font=a.font(x));let l=s.layoutChart({model:S,view:C,theme:x,width:e,height:r,padding:b.padding,measure:o?e=>o.measureText(e).width:e=>e.length*x.fontSize*.6}),{plot:u}=l;k=l.xTicks,A=l.yTicks,O=l.scales;let d=ye();if(d&&d.join()!==ie&&(ie=d.join(),H(`layout`,{x:d[0],y:d[1],width:d[2],height:d[3]})),o&&a.drawBackground(o,{width:e,height:r,scales:O,x:S.x,y:S.y,xTicks:k,yTicks:A,theme:x,annotations:D}),c&&(c.setTransform(i,0,0,i,0,0),a.drawForeground(c,{width:e,height:r,scales:O,theme:x,annotations:D,pointLabels:s.collectPointLabels(S,C,O,A)})),j){let e=j.canvas;t.styleElement(e,{left:`${u.x}px`,top:`${u.y}px`,width:`${u.width}px`,height:`${u.height}px`});let r=Math.max(1,Math.round(u.width*i)),a=Math.max(1,Math.round(u.height*i));(e.width!==r||e.height!==a)&&j.resize(r,a),pe(),E&&(ne++,te=n.buildItems(S,T,ne),E=!1);let[o,s]=_e(C.x,T.x,S.x.reverse),[c,l]=_e(C.y,T.y,S.y.reverse);j.render(te,{transform:{xScale:o,xOffset:s,yScale:c,yOffset:l},width:r,height:a,dpr:i})}Y()}let q=(e,t)=>O?s.hitTest(S,O,k,e,t):null,ye=()=>{let e=O?.plot;return e?[e.x+_.stage.offsetLeft,e.y+_.stage.offsetTop,e.width,e.height]:null},be=(e,t)=>W()?.dragPoints?q(e,t)?.items.find(e=>S.series[e.seriesIndex].type===`scatter`)??null:null,J=e=>{let t=!s.sameHover(P?.event??null,e?.event??null);P=e,Y(),t&&H(`hover`,e?e.event:null)},xe=e=>{let n=fe()?.render;if(n)return n(e);let r=s.tooltipContent(S,e,A),i=h.createDocumentFragment(),a=h.createElement(`div`);t.styleElement(a,{display:`flex`,alignItems:`center`,gap:`6px`,fontWeight:`600`,marginBottom:`4px`,color:`var(--text-color, #1f2937)`}),r.titleColor&&a.appendChild(t.swatch(h,r.titleColor,`dot`)),a.appendChild(h.createTextNode(r.title)),i.append(a);for(let e of r.rows){let n=h.createElement(`div`);t.styleElement(n,{display:`flex`,alignItems:`center`,gap:`8px`}),e.color&&n.appendChild(t.swatch(h,e.color,`dot`));let r=h.createElement(`span`);t.styleElement(r,{flex:`1 1 auto`,color:`var(--text-secondary-color, #6b7280)`}),r.textContent=e.name;let a=h.createElement(`span`);t.styleElement(a,{fontWeight:`600`,fontVariantNumeric:`tabular-nums`,marginLeft:`12px`}),a.textContent=e.value,n.append(r,a),i.append(n)}return i},Se=(e,t,n,r=_.hover)=>(e[t]||(e[t]=n(),r.appendChild(e[t])),e[t].style.display=`block`,e[t]);function Y(){let e=O;P&&e&&B&&B.scales===e&&B.model===S&&s.sameHover(B.event,P.event)||Ce(e);let t=_.tooltip;if(!P||!e||!fe()||L?.moved||F?.moved){t.style.display=`none`;return}let n=fe()?.render,r,i;if(!n&&V&&V.model===S&&V.yTicks===A&&s.sameHover(V.event,P.event)&&t.style.display===`block`)r=V.width,i=V.height;else{V=null;let e=xe(P.event);if(e===null||e===``){t.style.display=`none`;return}typeof e==`string`?(t.textContent=e,t.style.whiteSpace=`pre`):(t.replaceChildren(e),t.style.whiteSpace=`nowrap`),t.style.display=`block`,r=t.offsetWidth,i=t.offsetHeight,n||(V={event:P.event,model:S,yTicks:A,width:r,height:i})}let a=_.stage.clientWidth,o=_.stage.clientHeight,c=P.anchorX+16;c+r>a-4&&(c=P.anchorX-16-r),c=Math.max(4,Math.min(c,a-r-4));let l=Math.max(4,Math.min(P.anchorY-i/2,o-i-4));t.style.transform=`translate(${Math.round(c)}px, ${Math.round(l)}px)`}function Ce(e){let n=0,r=0,i=0;if(B=null,_.crosshair.style.display=`none`,P&&e){B={event:P.event,model:S,scales:e};let{plot:a}=e;if(_.hover.style.width=`${_.stage.clientWidth}px`,_.hover.style.height=`${_.stage.clientHeight}px`,s.showsCrosshair(S,P.event,b.crosshair)){let n=P.event.items[0],r=e.xToPx(n.x);r>=a.x&&r<=a.x+a.width&&t.styleElement(_.crosshair,{display:`block`,left:`${Math.round(r)}px`,top:`${a.y}px`,height:`${a.height}px`})}for(let a of s.hoverMarks(S,e,P.event)){if(a.kind===`band`||a.kind===`cell`){let e=a.kind===`band`?Se(oe,r++,()=>t.createBand(h),_.underlay):Se(R,i++,()=>t.styleElement(t.createBand(h),{background:`transparent`,borderRadius:`3px`,boxShadow:`0 0 0 1.5px var(--surface-color, var(--background-color, #fff)), 0 0 0 3px color-mix(in srgb, var(--text-color, #1f2937) 55%, transparent)`}));t.styleElement(e,{left:`${a.x}px`,top:`${a.y}px`,width:`${a.width}px`,height:`${a.height}px`});continue}let e=Se(ae,n++,()=>t.createMarker(h));t.styleElement(e,{left:`${a.x}px`,top:`${a.y}px`,width:`${a.size}px`,height:`${a.size}px`,background:a.color,boxShadow:`0 0 0 4px ${a.halo}`})}}for(let e=n;e<ae.length;e++)ae[e].style.display=`none`;for(let e=r;e<oe.length;e++)oe[e].style.display=`none`;for(let e=i;e<R.length;e++)R[e].style.display=`none`}let X=(e,t)=>{let{base:n,minSpan:r}=S;C={x:u.clampRange(e.x,n.x,r.x),y:u.clampRange(e.y,n.y,r.y)},w=!u.sameRange(C.x,n.x)||!u.sameRange(C.y,n.y);let i=W();_.stage.style.cursor=w&&i?.pan?`grab`:``,t&&H(`zoom`,f(C)),G()},we=(e,t,n)=>{let r=O;if(!r)return;let i=f(C);S.zoom.x&&(i.x=u.zoomRange(C.x,r.pxToX(e),n)),S.zoom.y&&(i.y=u.zoomRange(C.y,r.pxToY(t),n)),X(i,!0)},Z=e=>{let t=_.stage.getBoundingClientRect();return{x:e.clientX-t.left,y:e.clientY-t.top}},Q=(e,t)=>{let n=O?.plot;return!!n&&e>=n.x&&e<=n.x+n.width&&t>=n.y&&t<=n.y+n.height},Te=(e,t)=>{let n=O;if(!n)return null;let{plot:r}=n,i=Math.max(r.x,Math.min(r.x+r.width,e)),a=Math.max(r.y,Math.min(r.y+r.height,t));return{x:n.pxToX(i),y:n.pxToY(a)}},Ee=(e,n,r)=>{if(r===null){I&&(I.style.display=`none`);return}I||(I=t.createMarker(h),_.hover.appendChild(I));let i=(S.series.find(e=>e.type===`scatter`)?.pointSize??8)+8;_.hover.style.width=`${_.stage.clientWidth}px`,_.hover.style.height=`${_.stage.clientHeight}px`,t.styleElement(I,{display:`block`,left:`${e}px`,top:`${n}px`,width:`${i}px`,height:`${i}px`,background:r})},De=e=>{let{x:t,y:n}=Z(e);if(F&&F.id===e.pointerId){if(!F.moved&&Math.hypot(t-F.x,n-F.y)>3&&(F.moved=!0,_.stage.setPointerCapture?.(e.pointerId),_.stage.style.cursor=`grabbing`),F.moved){let e=Te(t,n);e&&(Ee(t,n,F.item.color),Y(),H(`drag`,{item:F.item,x:e.x,y:e.y}))}return}if(L&&L.id===e.pointerId){let r=t-L.x,i=n-L.y;if(!L.moved&&Math.hypot(r,i)>3){let t=W();w&&t?.pan&&(L.moved=!0,_.stage.setPointerCapture?.(e.pointerId),_.stage.style.cursor=`grabbing`)}if(L.moved&&O){let e=f(L.view);S.zoom.x&&(e.x=u.panRange(L.view.x,-r*O.xPerPx*(S.x.reverse?-1:1))),S.zoom.y&&(e.y=u.panRange(L.view.y,i*O.yPerPx*(S.y.reverse?-1:1))),X(e,!0);return}}let r=q(t,n);J(r?{event:r,anchorX:t,anchorY:n,keyboard:!1}:null),!L&&W()?.dragPoints&&(_.stage.style.cursor=be(t,n)||w&&W()?.pan?`grab`:``)},Oe=e=>{if(e.button!==0)return;let{x:t,y:n}=Z(e);if(!Q(t,n))return;let r=be(t,n);if(r){F={id:e.pointerId,item:r,x:t,y:n,moved:!1};return}L={id:e.pointerId,x:t,y:n,view:f(C),moved:!1}},ke=e=>{if(F&&F.id===e.pointerId){let{item:t,moved:n}=F;F=null,_.stage.hasPointerCapture?.(e.pointerId)&&_.stage.releasePointerCapture(e.pointerId),Ee(0,0,null);let{x:r,y:i}=Z(e);if(_.stage.style.cursor=be(r,i)?`grab`:``,n){let n=Te(r,i);n&&e.type!==`pointercancel`&&H(`drop`,{item:t,x:n.x,y:n.y}),Y()}else{let e=q(r,i);e&&H(`click`,e)}return}if(!L||L.id!==e.pointerId)return;let t=L.moved;if(L=null,_.stage.hasPointerCapture?.(e.pointerId)&&_.stage.releasePointerCapture(e.pointerId),_.stage.style.cursor=w&&W()?.pan?`grab`:``,t)Y();else{let{x:t,y:n}=Z(e),r=q(t,n);if(r)H(`click`,r);else if(e.type!==`pointercancel`&&Q(t,n)){let e=Te(t,n);e&&H(`plotClick`,e)}}},Ae=()=>{!L?.moved&&!F?.moved&&J(null)},je=e=>{let t=W();if(!t||t.zoom===!1||!S.zoom.x&&!S.zoom.y)return;let{x:n,y:r}=Z(e);if(!Q(n,r))return;let i=e.ctrlKey||e.metaKey;if(t.wheel===`always`||i)e.preventDefault(),we(n,r,u.wheelFactor(e.deltaY,e.deltaMode,e.ctrlKey&&!e.metaKey));else if(w&&S.zoom.x&&O&&Math.abs(e.deltaX)>Math.abs(e.deltaY)){e.preventDefault();let t=f(C);t.x=u.panRange(C.x,e.deltaX*O.xPerPx*(S.x.reverse?-1:1)),X(t,!0)}},Me=e=>{let{x:t,y:n}=Z(e);W()&&w&&Q(t,n)&&Ve()},Ne=t=>{let n=O;if(!n)return;let i=P?.keyboard?P.event.items[0]:null,a=(i&&S.series[i.seriesIndex])??S.series.find(e=>!e.hidden&&e.cols.count>0);if(!a)return;let{x:o,y:c,count:l}=a.cols,u;for(i?u=i.index+t:(u=a.cols.sorted?e.lowerBound(o,l,C.x[0]):0,t<0&&(u=a.cols.sorted?e.lowerBound(o,l,C.x[1])-1:l-1));u>=0&&u<l&&!Number.isFinite(c[u]);)u+=t||1;if(u<0||u>=l)return;let d=n;if(S.zoom.x&&(o[u]<C.x[0]||o[u]>C.x[1])){let e=C.x[1]-C.x[0];X({x:[o[u]-e/2,o[u]+e/2],y:C.y},!0),d=O=r.createScales(n.plot,C,S.x.reverse,S.y.reverse)}let f=s.pointOf(a,u,d),p=s.hoverItemOf(a,u),m={items:[p,...S.tooltipMode===`axis`&&a.type!==`scatter`?(q(f.px,f.py)?.items??[]).filter(e=>e.seriesIndex!==a.index):[]],x:p.x,xLabel:k?.formatValue(p.x)??String(p.x)};J({event:m,anchorX:f.px,anchorY:f.py,keyboard:!0});let h=p;_.live.textContent=`${h.seriesName}: ${m.xLabel}, ${A?.formatValue(h.y)??h.y}${h.label?` (${h.label})`:``}`},Pe=e=>{if(!W()?.keyboard)return;let t=()=>{let e=O?.plot;return e?[e.x+e.width/2,e.y+e.height/2]:[0,0]};switch(e.key){case`ArrowRight`:case`ArrowLeft`:e.preventDefault(),Ne(e.key===`ArrowRight`===S.x.reverse?-1:1);break;case`+`:case`=`:{if(!S.zoom.x&&!S.zoom.y)return;e.preventDefault();let[n,r]=t();we(n,r,.8);break}case`-`:case`_`:{if(!S.zoom.x&&!S.zoom.y)return;e.preventDefault();let[n,r]=t();we(n,r,1.25);break}case`0`:e.preventDefault(),Ve();break;case`Escape`:P&&(e.preventDefault(),J(null))}},Fe=()=>{let e;try{e=_.stage.matches(`:focus-visible`)}catch{e=!0}e&&(_.stage.style.boxShadow=`0 0 0 2px var(--primary-color, #4f46e5)`)},Ie=()=>{_.stage.style.boxShadow=``,P?.keyboard&&J(null)},$=_.stage;$.addEventListener(`pointermove`,De),$.addEventListener(`pointerdown`,Oe),$.addEventListener(`pointerup`,ke),$.addEventListener(`pointercancel`,ke),$.addEventListener(`pointerleave`,Ae),$.addEventListener(`wheel`,je,{passive:!1}),$.addEventListener(`dblclick`,Me),$.addEventListener(`keydown`,Pe),$.addEventListener(`focus`,Fe),$.addEventListener(`blur`,Ie);let Le=typeof ResizeObserver==`function`?new ResizeObserver(()=>G()):null;Le?.observe(_.stage);let Re=()=>{if(M)return;let e=l.readTheme(_.root,b.palette);l.themeColorsChanged(x,e)&&z++,x=e,K()},ze=l.watchTheme(Re),Be=async(e=new Set)=>{let n=++re,r=await o.createRenderer(b.renderer??`auto`,()=>t.createDataCanvas(h),t=>{M||j?.kind!==t||(j.destroy(),j.canvas.remove(),j=null,Be(new Set([...e,t])))},e);if(M||n!==re){r?.destroy();return}j&&(j.destroy(),j.canvas.remove()),j=r,r&&(_.root.dataset.renderer=r.kind,_.stage.insertBefore(r.canvas,_.foreground),E=!0,H(`renderer`,r.kind)),le(r?.kind??null),G()};function Ve(){w&&X(f(S.base),!0)}return K(),Be(),{setOptions(e){if(M)return;let t=b;b=e,(e.palette??[]).join()!==(t.palette??[]).join()&&(x=l.readTheme(_.root,e.palette),z++),(e.renderer??`auto`)!==(t.renderer??`auto`)&&Be(),K()},resize(){G()},resetZoom:Ve,getView:()=>f(C),setView(e){M||X({x:e.x??C.x,y:e.y??C.y},!1)},getRenderer:()=>j?.kind??null,getPlotRect(){let e=ye();return e?{x:e[0],y:e[1],width:e[2],height:e[3]}:null},toPixel(e,t){return O?{x:O.xToPx(e)+_.stage.offsetLeft,y:O.yToPx(t)+_.stage.offsetTop}:null},fromPixel(e,t){return O?{x:O.pxToX(e-_.stage.offsetLeft),y:O.pxToY(t-_.stage.offsetTop)}:null},ready:ue,refreshTheme:Re,on(e,t){let n=y[e];return n||(n=new Set,y[e]=n),n.add(t),()=>{n.delete(t)}},destroy(){if(!M){M=!0,N&&(g?.cancelAnimationFrame?g.cancelAnimationFrame(N):clearTimeout(N)),Le?.disconnect(),ze(),$.removeEventListener(`wheel`,je),j?.destroy(),j=null,_.root.remove();for(let e of Object.keys(y))delete y[e]}}}};exports.createChart=p;
1
+ const e=require("./data.cjs"),t=require("./dom.cjs"),n=require("./items.cjs"),r=require("./locale.cjs"),i=require("./labels.cjs"),a=require("./layout.cjs"),o=require("./model.cjs"),s=require("./overlay.cjs"),c=require("./renderers/detect.cjs"),l=require("./scene.cjs"),u=require("./signature.cjs"),d=require("./theme.cjs"),f=require("./viewport.cjs");var p=e=>(e[0]+e[1])/2,m=e=>({x:[e.x[0],e.x[1]],y:[e.y[0],e.y[1]]}),h=(h,ee)=>{let g=h.ownerDocument,_=g.defaultView,v=t.createChartDom(h),te=new Map,y=new Set,b={},x=ee,S=d.readTheme(v.root,x.palette),C,w={x:[0,1],y:[0,1]},T=!1,E={x:0,y:0},ne=[],D=!0,re=0,ie=[],O=null,k=null,A=null,ae=null,j=null,oe=0,M=!1,N=0,P=null,se=``,F=null,I=null,L=null,ce=[],le=[],R=[],ue=0,de=``,fe=``,z=null,B=null,pe=()=>{},me=new Promise(e=>{pe=e}),V=(e,t)=>{b[e]?.forEach(e=>e(t))},he=null,H=null,U=()=>{if(he===x)return H;he=x;let e=x.interaction;if(e===!1)return H=null;let t=typeof e==`object`?e:{};return H={zoom:t.zoom??!0,wheel:t.wheel??`modifier`,pan:t.pan??!0,keyboard:t.keyboard??!0,dragPoints:t.dragPoints??!1}},ge=()=>x.tooltip===!1?null:typeof x.tooltip==`object`?x.tooltip:{},W=()=>{M||N||(N=_?.requestAnimationFrame?_.requestAnimationFrame(Se):setTimeout(Se,16))},G=()=>{C=o.buildModel(x,S,y,te);let{base:e,zoom:t,minSpan:n}=C;T?(w={x:t.x?f.clampRange(w.x,e.x,n.x):[...e.x],y:t.y?f.clampRange(w.y,e.y,n.y):[...e.y]},T=!f.sameRange(w.x,e.x)||!f.sameRange(w.y,e.y)):w=m(e);let r=u.itemsSignature(C,ue,e=>x.series[e]?.stack);r!==de&&(de=r,E={x:p(e.x),y:p(e.y)},D=!0,P&&!P.keyboard&&(P=null)),ie=l.resolveAnnotations(x.annotations,S),ve(),ye(),W()},_e=()=>{let e=(e,t)=>Math.max(Math.abs(e[0]-t),Math.abs(e[1]-t))>(e[1]-e[0])*2e3;(e(w.x,E.x)||e(w.y,E.y))&&(E={x:p(w.x),y:p(w.y)},D=!0)},ve=()=>{let e=x.legend,n=x.series.filter(e=>e.name).length,r=e===void 0?n>1:!!e,i=typeof e==`object`?e:{},a=i.toggle??!0,o=i.position===`bottom`,s=`${r}|${o}|${a}`;if(r)for(let e of C.series)s+=`\n${e.id}\u0001${e.name}\u0001${e.colorCss}\u0001${l.legendShape(e.type)}\u0001${e.hidden}`;if(s===fe)return;fe=s;let c=[...v.legend.children].indexOf(g.activeElement);if(v.legend.replaceChildren(),v.legend.style.display=r?`flex`:`none`,r){v.legend.style.order=o?`1`:`0`,v.legend.style.padding=o?`8px 4px 0`:`0 4px 8px`;for(let e of C.series){let n=g.createElement(a?`button`:`span`);n instanceof HTMLButtonElement&&(n.type=`button`,n.setAttribute(`aria-pressed`,String(!e.hidden)),n.addEventListener(`click`,()=>{y.has(e.id)?y.delete(e.id):y.add(e.id),G()})),t.styleElement(n,{display:`inline-flex`,alignItems:`center`,gap:`6px`,padding:`2px 4px`,margin:`0`,border:`0`,borderRadius:`4px`,background:`none`,font:`inherit`,color:`var(--text-secondary-color, #6b7280)`,cursor:a?`pointer`:`default`,opacity:e.hidden?`0.45`:`1`,textDecoration:e.hidden?`line-through`:`none`}),n.append(t.swatch(g,e.colorCss,l.legendShape(e.type)),g.createTextNode(e.name)),v.legend.appendChild(n)}c>=0&&v.legend.children[c]?.focus()}},ye=()=>{v.stage.setAttribute(`aria-label`,x.ariaLabel??i.chartAriaLabel(C));let e=U()?.keyboard;v.stage.style.touchAction=U()?.dragPoints?`none`:`pan-y`,e?v.stage.tabIndex=0:v.stage.removeAttribute(`tabindex`)},be=(e,t,n,r)=>{let i=Math.max(1,Math.round(t*r)),a=Math.max(1,Math.round(n*r));e.width!==i&&(e.width=i),e.height!==a&&(e.height=a),e.style.width=`${t}px`,e.style.height=`${n}px`},xe=(e,t,n)=>{let r=2/(e[1]-e[0]),i=(t-e[0])*r-1;return n?[-r,-i]:[r,i]};function Se(){if(N=0,M)return;let e=v.stage.clientWidth,r=v.stage.clientHeight;if(e<=0||r<=0)return;let i=_?.devicePixelRatio||1;be(v.background,e,r,i),be(v.foreground,e,r,i);let a=v.background.getContext(`2d`),o=v.foreground.getContext(`2d`);a&&(a.setTransform(i,0,0,i,0,0),a.font=s.font(S));let c=l.layoutChart({model:C,view:w,theme:S,width:e,height:r,padding:x.padding,measure:a?e=>a.measureText(e).width:e=>e.length*S.fontSize*.6}),{plot:u}=c;k=c.xTicks,A=c.yTicks,ae=c.y2Ticks,O=c.scales;let d=Ce();if(d&&d.join()!==se&&(se=d.join(),V(`layout`,{x:d[0],y:d[1],width:d[2],height:d[3]})),a&&s.drawBackground(a,{width:e,height:r,scales:O,x:C.x,y:C.y,xTicks:k,yTicks:A,y2:C.y2,y2Ticks:ae,theme:S,annotations:ie}),o&&(o.setTransform(i,0,0,i,0,0),s.drawForeground(o,{width:e,height:r,scales:O,theme:S,annotations:ie,pointLabels:l.collectPointLabels(C,w,O,A)})),j){let e=j.canvas,r=C.horizontal,a=r?u.height:u.width,o=r?u.width:u.height;t.styleElement(e,{left:`${u.x}px`,top:`${u.y}px`,width:`${a}px`,height:`${o}px`,transformOrigin:r?`0 0`:``,transform:r?`matrix(0, 1, 1, 0, 0, 0)`:``});let s=Math.max(1,Math.round(a*i)),c=Math.max(1,Math.round(o*i));(e.width!==s||e.height!==c)&&j.resize(s,c),_e(),D&&(re++,ne=n.buildItems(C,E,re),D=!1);let[l,d]=xe(w.x,E.x,C.x.reverse),[f,p]=xe(w.y,E.y,r?!C.y.reverse:C.y.reverse);j.render(ne,{transform:{xScale:l,xOffset:d,yScale:f,yOffset:p},width:s,height:c,dpr:i})}J()}let K=(e,t)=>O?l.hitTest(C,O,k,e,t):null,Ce=()=>{let e=O?.plot;return e?[e.x+v.stage.offsetLeft,e.y+v.stage.offsetTop,e.width,e.height]:null},we=(e,t)=>U()?.dragPoints?K(e,t)?.items.find(e=>C.series[e.seriesIndex].type===`scatter`)??null:null,q=e=>{let t=!l.sameHover(P?.event??null,e?.event??null);P=e,J(),t&&V(`hover`,e?e.event:null)},Te=e=>{let n=ge()?.render;if(n)return n(e);let r=l.tooltipContent(C,e,A,ae),i=g.createDocumentFragment(),a=g.createElement(`div`);t.styleElement(a,{display:`flex`,alignItems:`center`,gap:`6px`,fontWeight:`600`,marginBottom:`4px`,color:`var(--text-color, #1f2937)`}),r.titleColor&&a.appendChild(t.swatch(g,r.titleColor,`dot`)),a.appendChild(g.createTextNode(r.title)),i.append(a);for(let e of r.rows){let n=g.createElement(`div`);t.styleElement(n,{display:`flex`,alignItems:`center`,gap:`8px`}),e.color&&n.appendChild(t.swatch(g,e.color,`dot`));let r=g.createElement(`span`);t.styleElement(r,{flex:`1 1 auto`,color:`var(--text-secondary-color, #6b7280)`}),r.textContent=e.name;let a=g.createElement(`span`);t.styleElement(a,{fontWeight:`600`,fontVariantNumeric:`tabular-nums`,marginLeft:`12px`}),a.textContent=e.value,n.append(r,a),i.append(n)}return i},Ee=(e,t,n,r=v.hover)=>(e[t]||(e[t]=n(),r.appendChild(e[t])),e[t].style.display=`block`,e[t]);function J(){let e=O;P&&e&&z&&z.scales===e&&z.model===C&&l.sameHover(z.event,P.event)||De(e);let t=v.tooltip;if(!P||!e||!ge()||L?.moved||F?.moved){t.style.display=`none`;return}let n=ge()?.render,r,i;if(!n&&B&&B.model===C&&B.yTicks===A&&l.sameHover(B.event,P.event)&&t.style.display===`block`)r=B.width,i=B.height;else{B=null;let e=Te(P.event);if(e===null||e===``){t.style.display=`none`;return}typeof e==`string`?(t.textContent=e,t.style.whiteSpace=`pre`):(t.replaceChildren(e),t.style.whiteSpace=`nowrap`),t.style.display=`block`,r=t.offsetWidth,i=t.offsetHeight,n||(B={event:P.event,model:C,yTicks:A,width:r,height:i})}let a=v.stage.clientWidth,o=v.stage.clientHeight,s=P.anchorX+16;s+r>a-4&&(s=P.anchorX-16-r),s=Math.max(4,Math.min(s,a-r-4));let c=Math.max(4,Math.min(P.anchorY-i/2,o-i-4));t.style.transform=`translate(${Math.round(s)}px, ${Math.round(c)}px)`}function De(e){let n=0,r=0,i=0;if(z=null,v.crosshair.style.display=`none`,P&&e){z={event:P.event,model:C,scales:e};let{plot:a}=e;v.hover.style.width=`${v.stage.clientWidth}px`,v.hover.style.height=`${v.stage.clientHeight}px`;let o=l.crosshairAt(C,e,P.event,x.crosshair);if(o!==null){let n=`1px dashed color-mix(in srgb, var(--text-secondary-color, #6b7280) 45%, transparent)`;t.styleElement(v.crosshair,e.horizontal?{display:`block`,left:`${a.x}px`,top:`${Math.round(o)}px`,width:`${a.width}px`,height:`0`,borderLeft:`0`,borderTop:n}:{display:`block`,left:`${Math.round(o)}px`,top:`${a.y}px`,width:`0`,height:`${a.height}px`,borderLeft:n,borderTop:`0`})}for(let a of l.hoverMarks(C,e,P.event)){if(a.kind===`band`||a.kind===`cell`){let e=a.kind===`band`?Ee(le,r++,()=>t.createBand(g),v.underlay):Ee(R,i++,()=>t.styleElement(t.createBand(g),{background:`transparent`,borderRadius:`3px`,boxShadow:`0 0 0 1.5px var(--surface-color, var(--background-color, #fff)), 0 0 0 3px color-mix(in srgb, var(--text-color, #1f2937) 55%, transparent)`}));t.styleElement(e,{left:`${a.x}px`,top:`${a.y}px`,width:`${a.width}px`,height:`${a.height}px`});continue}let e=Ee(ce,n++,()=>t.createMarker(g));t.styleElement(e,{left:`${a.x}px`,top:`${a.y}px`,width:`${a.size}px`,height:`${a.size}px`,background:a.color,boxShadow:`0 0 0 4px ${a.halo}`})}}for(let e=n;e<ce.length;e++)ce[e].style.display=`none`;for(let e=r;e<le.length;e++)le[e].style.display=`none`;for(let e=i;e<R.length;e++)R[e].style.display=`none`}let Y=(e,t)=>{let{base:n,minSpan:r}=C;w={x:f.clampRange(e.x,n.x,r.x),y:f.clampRange(e.y,n.y,r.y)},T=!f.sameRange(w.x,n.x)||!f.sameRange(w.y,n.y);let i=U();v.stage.style.cursor=T&&i?.pan?`grab`:``,t&&V(`zoom`,m(w)),W()},Oe=(e,t,n)=>{let r=O;if(!r)return;let i=m(w),o=a.toData(r,e,t);C.zoom.x&&(i.x=f.zoomRange(w.x,o.x,n)),C.zoom.y&&(i.y=f.zoomRange(w.y,o.y,n)),Y(i,!0)},X=e=>{let t=v.stage.getBoundingClientRect();return{x:e.clientX-t.left,y:e.clientY-t.top}},Z=(e,t)=>{let n=O?.plot;return!!n&&e>=n.x&&e<=n.x+n.width&&t>=n.y&&t<=n.y+n.height},ke=(e,t)=>{let n=O;if(!n)return null;let{plot:r}=n,i=Math.max(r.x,Math.min(r.x+r.width,e)),o=Math.max(r.y,Math.min(r.y+r.height,t));return a.toData(n,i,o)},Ae=(e,n,r)=>{if(r===null){I&&(I.style.display=`none`);return}I||(I=t.createMarker(g),v.hover.appendChild(I));let i=(C.series.find(e=>e.type===`scatter`)?.pointSize??8)+8;v.hover.style.width=`${v.stage.clientWidth}px`,v.hover.style.height=`${v.stage.clientHeight}px`,t.styleElement(I,{display:`block`,left:`${e}px`,top:`${n}px`,width:`${i}px`,height:`${i}px`,background:r})},je=e=>{let{x:t,y:n}=X(e);if(F&&F.id===e.pointerId){if(!F.moved&&Math.hypot(t-F.x,n-F.y)>3&&(F.moved=!0,v.stage.setPointerCapture?.(e.pointerId),v.stage.style.cursor=`grabbing`),F.moved){let e=ke(t,n);e&&(Ae(t,n,F.item.color),J(),V(`drag`,{item:F.item,x:e.x,y:e.y}))}return}if(L&&L.id===e.pointerId){let r=t-L.x,i=n-L.y;if(!L.moved&&Math.hypot(r,i)>3){let t=U();T&&t?.pan&&(L.moved=!0,v.stage.setPointerCapture?.(e.pointerId),v.stage.style.cursor=`grabbing`)}if(L.moved&&O){let e=m(L.view),r=a.toData(O,L.x,L.y),i=a.toData(O,t,n);C.zoom.x&&(e.x=f.panRange(L.view.x,r.x-i.x)),C.zoom.y&&(e.y=f.panRange(L.view.y,r.y-i.y)),Y(e,!0);return}}let r=K(t,n);q(r?{event:r,anchorX:t,anchorY:n,keyboard:!1}:null),!L&&U()?.dragPoints&&(v.stage.style.cursor=we(t,n)||T&&U()?.pan?`grab`:``)},Me=e=>{if(e.button!==0)return;let{x:t,y:n}=X(e);if(!Z(t,n))return;let r=we(t,n);if(r){F={id:e.pointerId,item:r,x:t,y:n,moved:!1};return}L={id:e.pointerId,x:t,y:n,view:m(w),moved:!1}},Ne=e=>{if(F&&F.id===e.pointerId){let{item:t,moved:n}=F;F=null,v.stage.hasPointerCapture?.(e.pointerId)&&v.stage.releasePointerCapture(e.pointerId),Ae(0,0,null);let{x:r,y:i}=X(e);if(v.stage.style.cursor=we(r,i)?`grab`:``,n){let n=ke(r,i);n&&e.type!==`pointercancel`&&V(`drop`,{item:t,x:n.x,y:n.y}),J()}else{let e=K(r,i);e&&V(`click`,e)}return}if(!L||L.id!==e.pointerId)return;let t=L.moved;if(L=null,v.stage.hasPointerCapture?.(e.pointerId)&&v.stage.releasePointerCapture(e.pointerId),v.stage.style.cursor=T&&U()?.pan?`grab`:``,t)J();else{let{x:t,y:n}=X(e),r=K(t,n);if(r)V(`click`,r);else if(e.type!==`pointercancel`&&Z(t,n)){let e=ke(t,n);e&&V(`plotClick`,e)}}},Pe=()=>{!L?.moved&&!F?.moved&&q(null)},Fe=e=>{let t=U();if(!t||t.zoom===!1||!C.zoom.x&&!C.zoom.y)return;let{x:n,y:r}=X(e);if(!Z(n,r))return;let i=e.ctrlKey||e.metaKey;if(t.wheel===`always`||i)e.preventDefault(),Oe(n,r,f.wheelFactor(e.deltaY,e.deltaMode,e.ctrlKey&&!e.metaKey));else if(T&&C.zoom.x&&O&&!O.horizontal&&Math.abs(e.deltaX)>Math.abs(e.deltaY)){e.preventDefault();let t=m(w);t.x=f.panRange(w.x,e.deltaX*O.xPerPx*(C.x.reverse?-1:1)),Y(t,!0)}},Ie=e=>{let{x:t,y:n}=X(e);U()&&T&&Z(t,n)&&$()},Le=t=>{let n=O;if(!n)return;let r=P?.keyboard?P.event.items[0]:null,i=(r&&C.series[r.seriesIndex])??C.series.find(e=>!e.hidden&&e.cols.count>0);if(!i)return;let{x:o,y:s,count:c}=i.cols,u;for(r?u=r.index+t:(u=i.cols.sorted?e.lowerBound(o,c,w.x[0]):0,t<0&&(u=i.cols.sorted?e.lowerBound(o,c,w.x[1])-1:c-1));u>=0&&u<c&&!Number.isFinite(s[u]);)u+=t||1;if(u<0||u>=c)return;let d=n;if(C.zoom.x&&(o[u]<w.x[0]||o[u]>w.x[1])){let e=w.x[1]-w.x[0];Y({x:[o[u]-e/2,o[u]+e/2],y:w.y},!0),d=O=a.createScales(n.plot,w,C.x.reverse,C.y.reverse,C.horizontal)}let f=l.pointOf(i,u,d),p=l.hoverItemOf(i,u),m={items:[p,...C.tooltipMode===`axis`&&i.type!==`scatter`?(K(f.px,f.py)?.items??[]).filter(e=>e.seriesIndex!==i.index):[]],x:p.x,xLabel:k?.formatValue(p.x)??String(p.x)};q({event:m,anchorX:f.px,anchorY:f.py,keyboard:!0});let h=p;v.live.textContent=`${h.seriesName}: ${m.xLabel}, ${A?.formatValue(h.y)??h.y}${h.label?` (${h.label})`:``}`},Re=e=>{if(!U()?.keyboard)return;let t=()=>{let e=O?.plot;return e?[e.x+e.width/2,e.y+e.height/2]:[0,0]};switch(e.key){case`ArrowRight`:case`ArrowLeft`:if(C.horizontal)return;e.preventDefault(),Le(e.key===`ArrowRight`===C.x.reverse?-1:1);break;case`ArrowDown`:case`ArrowUp`:if(!C.horizontal)return;e.preventDefault(),Le(e.key===`ArrowDown`===C.x.reverse?-1:1);break;case`+`:case`=`:{if(!C.zoom.x&&!C.zoom.y)return;e.preventDefault();let[n,r]=t();Oe(n,r,.8);break}case`-`:case`_`:{if(!C.zoom.x&&!C.zoom.y)return;e.preventDefault();let[n,r]=t();Oe(n,r,1.25);break}case`0`:e.preventDefault(),$();break;case`Escape`:P&&(e.preventDefault(),q(null))}},ze=()=>{let e;try{e=v.stage.matches(`:focus-visible`)}catch{e=!0}e&&(v.stage.style.boxShadow=`0 0 0 2px var(--primary-color, #4f46e5)`)},Be=()=>{v.stage.style.boxShadow=``,P?.keyboard&&q(null)},Q=v.stage;Q.addEventListener(`pointermove`,je),Q.addEventListener(`pointerdown`,Me),Q.addEventListener(`pointerup`,Ne),Q.addEventListener(`pointercancel`,Ne),Q.addEventListener(`pointerleave`,Pe),Q.addEventListener(`wheel`,Fe,{passive:!1}),Q.addEventListener(`dblclick`,Ie),Q.addEventListener(`keydown`,Re),Q.addEventListener(`focus`,ze),Q.addEventListener(`blur`,Be);let Ve=typeof ResizeObserver==`function`?new ResizeObserver(()=>W()):null;Ve?.observe(v.stage);let He=()=>{if(M)return;let e=d.readTheme(v.root,x.palette);d.themeColorsChanged(S,e)&&ue++,S=e,G()},Ue=d.watchTheme(He),We=r.watchLocale(()=>{!M&&!x.locale&&G()}),Ge=async(e=new Set)=>{let n=++oe,r=await c.createRenderer(x.renderer??`auto`,()=>t.createDataCanvas(g),t=>{M||j?.kind!==t||(j.destroy(),j.canvas.remove(),j=null,Ge(new Set([...e,t])))},e);if(M||n!==oe){r?.destroy();return}j&&(j.destroy(),j.canvas.remove()),j=r,r&&(v.root.dataset.renderer=r.kind,v.stage.insertBefore(r.canvas,v.foreground),D=!0,V(`renderer`,r.kind)),pe(r?.kind??null),W()};function $(){T&&Y(m(C.base),!0)}return G(),Ge(),{setOptions(e){if(M)return;let t=x;x=e,(e.palette??[]).join()!==(t.palette??[]).join()&&(S=d.readTheme(v.root,e.palette),ue++),(e.renderer??`auto`)!==(t.renderer??`auto`)&&Ge(),G()},resize(){W()},resetZoom:$,getView:()=>m(w),setView(e){M||Y({x:e.x??w.x,y:e.y??w.y},!1)},getRenderer:()=>j?.kind??null,getPlotRect(){let e=Ce();return e?{x:e[0],y:e[1],width:e[2],height:e[3]}:null},toPixel(e,t){if(!O)return null;let n=a.toScreen(O,e,t);return{x:n.x+v.stage.offsetLeft,y:n.y+v.stage.offsetTop}},fromPixel(e,t){return O?a.toData(O,e-v.stage.offsetLeft,t-v.stage.offsetTop):null},ready:me,refreshTheme:He,on(e,t){let n=b[e];return n||(n=new Set,b[e]=n),n.add(t),()=>{n.delete(t)}},destroy(){if(!M){M=!0,N&&(_?.cancelAnimationFrame?_.cancelAnimationFrame(N):clearTimeout(N)),Ve?.disconnect(),Ue(),We(),Q.removeEventListener(`wheel`,Fe),j?.destroy(),j=null,v.root.remove();for(let e of Object.keys(b))delete b[e]}}}};exports.createChart=h;
2
2
  //# sourceMappingURL=chart.cjs.map