minerva-design 1.2.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 (1226) hide show
  1. package/CHANGELOG.md +16 -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 +10 -2
  8. package/dist/charts/canvas.d.ts +10 -2
  9. package/dist/charts/core.cjs +1 -1
  10. package/dist/charts/core.d.cts +9 -3
  11. package/dist/charts/core.d.ts +9 -3
  12. package/dist/charts/core.js +19 -6
  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 +161 -99
  22. package/dist/charts/engine/canvas.js.map +1 -1
  23. package/dist/charts/engine/chart.cjs +1 -2
  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 +390 -349
  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.d.cts +17 -0
  32. package/dist/charts/engine/color.d.ts +17 -0
  33. package/dist/charts/engine/color.js +27 -3
  34. package/dist/charts/engine/color.js.map +1 -1
  35. package/dist/charts/engine/controller.cjs +2 -2
  36. package/dist/charts/engine/controller.cjs.map +1 -1
  37. package/dist/charts/engine/controller.d.cts +17 -2
  38. package/dist/charts/engine/controller.d.ts +17 -2
  39. package/dist/charts/engine/controller.js +404 -280
  40. package/dist/charts/engine/controller.js.map +1 -1
  41. package/dist/charts/engine/curve.cjs +2 -0
  42. package/dist/charts/engine/curve.cjs.map +1 -0
  43. package/dist/charts/engine/curve.d.cts +15 -0
  44. package/dist/charts/engine/curve.d.ts +15 -0
  45. package/dist/charts/engine/curve.js +56 -0
  46. package/dist/charts/engine/curve.js.map +1 -0
  47. package/dist/charts/engine/data.cjs +1 -1
  48. package/dist/charts/engine/data.cjs.map +1 -1
  49. package/dist/charts/engine/data.d.cts +21 -2
  50. package/dist/charts/engine/data.d.ts +21 -2
  51. package/dist/charts/engine/data.js +117 -43
  52. package/dist/charts/engine/data.js.map +1 -1
  53. package/dist/charts/engine/dom.cjs +1 -1
  54. package/dist/charts/engine/dom.cjs.map +1 -1
  55. package/dist/charts/engine/dom.d.cts +5 -3
  56. package/dist/charts/engine/dom.d.ts +5 -3
  57. package/dist/charts/engine/dom.js +27 -22
  58. package/dist/charts/engine/dom.js.map +1 -1
  59. package/dist/charts/engine/format.cjs +1 -1
  60. package/dist/charts/engine/format.cjs.map +1 -1
  61. package/dist/charts/engine/format.d.cts +21 -6
  62. package/dist/charts/engine/format.d.ts +21 -6
  63. package/dist/charts/engine/format.js +46 -21
  64. package/dist/charts/engine/format.js.map +1 -1
  65. package/dist/charts/engine/items.cjs +1 -1
  66. package/dist/charts/engine/items.cjs.map +1 -1
  67. package/dist/charts/engine/items.js +290 -62
  68. package/dist/charts/engine/items.js.map +1 -1
  69. package/dist/charts/engine/labels.cjs +2 -0
  70. package/dist/charts/engine/labels.cjs.map +1 -0
  71. package/dist/charts/engine/labels.d.cts +13 -0
  72. package/dist/charts/engine/labels.d.ts +13 -0
  73. package/dist/charts/engine/labels.js +74 -0
  74. package/dist/charts/engine/labels.js.map +1 -0
  75. package/dist/charts/engine/layout.cjs +1 -1
  76. package/dist/charts/engine/layout.cjs.map +1 -1
  77. package/dist/charts/engine/layout.d.cts +34 -2
  78. package/dist/charts/engine/layout.d.ts +34 -2
  79. package/dist/charts/engine/layout.js +53 -12
  80. package/dist/charts/engine/layout.js.map +1 -1
  81. package/dist/charts/engine/locale.cjs +2 -0
  82. package/dist/charts/engine/locale.cjs.map +1 -0
  83. package/dist/charts/engine/locale.d.cts +33 -0
  84. package/dist/charts/engine/locale.d.ts +33 -0
  85. package/dist/charts/engine/locale.js +68 -0
  86. package/dist/charts/engine/locale.js.map +1 -0
  87. package/dist/charts/engine/model.cjs +1 -1
  88. package/dist/charts/engine/model.cjs.map +1 -1
  89. package/dist/charts/engine/model.d.cts +68 -3
  90. package/dist/charts/engine/model.d.ts +68 -3
  91. package/dist/charts/engine/model.js +332 -108
  92. package/dist/charts/engine/model.js.map +1 -1
  93. package/dist/charts/engine/orderbook/book.cjs +2 -0
  94. package/dist/charts/engine/orderbook/book.cjs.map +1 -0
  95. package/dist/charts/engine/orderbook/book.d.cts +28 -0
  96. package/dist/charts/engine/orderbook/book.d.ts +28 -0
  97. package/dist/charts/engine/orderbook/book.js +134 -0
  98. package/dist/charts/engine/orderbook/book.js.map +1 -0
  99. package/dist/charts/engine/orderbook/depth.cjs +2 -0
  100. package/dist/charts/engine/orderbook/depth.cjs.map +1 -0
  101. package/dist/charts/engine/orderbook/depth.d.cts +7 -0
  102. package/dist/charts/engine/orderbook/depth.d.ts +7 -0
  103. package/dist/charts/engine/orderbook/depth.js +413 -0
  104. package/dist/charts/engine/orderbook/depth.js.map +1 -0
  105. package/dist/charts/engine/orderbook/format.cjs +2 -0
  106. package/dist/charts/engine/orderbook/format.cjs.map +1 -0
  107. package/dist/charts/engine/orderbook/format.d.cts +48 -0
  108. package/dist/charts/engine/orderbook/format.d.ts +48 -0
  109. package/dist/charts/engine/orderbook/format.js +65 -0
  110. package/dist/charts/engine/orderbook/format.js.map +1 -0
  111. package/dist/charts/engine/orderbook/heatmap.cjs +2 -0
  112. package/dist/charts/engine/orderbook/heatmap.cjs.map +1 -0
  113. package/dist/charts/engine/orderbook/heatmap.d.cts +9 -0
  114. package/dist/charts/engine/orderbook/heatmap.d.ts +9 -0
  115. package/dist/charts/engine/orderbook/heatmap.js +703 -0
  116. package/dist/charts/engine/orderbook/heatmap.js.map +1 -0
  117. package/dist/charts/engine/orderbook/host.cjs +2 -0
  118. package/dist/charts/engine/orderbook/host.cjs.map +1 -0
  119. package/dist/charts/engine/orderbook/host.d.cts +50 -0
  120. package/dist/charts/engine/orderbook/host.d.ts +50 -0
  121. package/dist/charts/engine/orderbook/host.js +161 -0
  122. package/dist/charts/engine/orderbook/host.js.map +1 -0
  123. package/dist/charts/engine/orderbook/index.cjs +1 -0
  124. package/dist/charts/engine/orderbook/index.d.cts +6 -0
  125. package/dist/charts/engine/orderbook/index.d.ts +6 -0
  126. package/dist/charts/engine/orderbook/index.js +6 -0
  127. package/dist/charts/engine/orderbook/ladder.cjs +2 -0
  128. package/dist/charts/engine/orderbook/ladder.cjs.map +1 -0
  129. package/dist/charts/engine/orderbook/ladder.d.cts +6 -0
  130. package/dist/charts/engine/orderbook/ladder.d.ts +6 -0
  131. package/dist/charts/engine/orderbook/ladder.js +341 -0
  132. package/dist/charts/engine/orderbook/ladder.js.map +1 -0
  133. package/dist/charts/engine/orderbook/tape.cjs +2 -0
  134. package/dist/charts/engine/orderbook/tape.cjs.map +1 -0
  135. package/dist/charts/engine/orderbook/tape.d.cts +6 -0
  136. package/dist/charts/engine/orderbook/tape.d.ts +6 -0
  137. package/dist/charts/engine/orderbook/tape.js +450 -0
  138. package/dist/charts/engine/orderbook/tape.js.map +1 -0
  139. package/dist/charts/engine/orderbook/types.d.cts +735 -0
  140. package/dist/charts/engine/orderbook/types.d.ts +735 -0
  141. package/dist/charts/engine/overlay.cjs +1 -1
  142. package/dist/charts/engine/overlay.cjs.map +1 -1
  143. package/dist/charts/engine/overlay.d.cts +18 -0
  144. package/dist/charts/engine/overlay.d.ts +18 -0
  145. package/dist/charts/engine/overlay.js +138 -102
  146. package/dist/charts/engine/overlay.js.map +1 -1
  147. package/dist/charts/engine/presets.cjs +2 -2
  148. package/dist/charts/engine/presets.cjs.map +1 -1
  149. package/dist/charts/engine/presets.d.cts +319 -5
  150. package/dist/charts/engine/presets.d.ts +319 -5
  151. package/dist/charts/engine/presets.js +463 -38
  152. package/dist/charts/engine/presets.js.map +1 -1
  153. package/dist/charts/engine/renderers/canvas2d.cjs +1 -1
  154. package/dist/charts/engine/renderers/canvas2d.cjs.map +1 -1
  155. package/dist/charts/engine/renderers/canvas2d.js +149 -111
  156. package/dist/charts/engine/renderers/canvas2d.js.map +1 -1
  157. package/dist/charts/engine/renderers/detect.cjs +1 -1
  158. package/dist/charts/engine/renderers/detect.cjs.map +1 -1
  159. package/dist/charts/engine/renderers/detect.js +18 -15
  160. package/dist/charts/engine/renderers/detect.js.map +1 -1
  161. package/dist/charts/engine/renderers/gl.cjs +2 -0
  162. package/dist/charts/engine/renderers/gl.cjs.map +1 -0
  163. package/dist/charts/engine/renderers/gl.d.cts +21 -0
  164. package/dist/charts/engine/renderers/gl.d.ts +21 -0
  165. package/dist/charts/engine/renderers/gl.js +56 -0
  166. package/dist/charts/engine/renderers/gl.js.map +1 -0
  167. package/dist/charts/engine/renderers/range.cjs +1 -1
  168. package/dist/charts/engine/renderers/range.cjs.map +1 -1
  169. package/dist/charts/engine/renderers/range.js +4 -4
  170. package/dist/charts/engine/renderers/range.js.map +1 -1
  171. package/dist/charts/engine/renderers/shaders.cjs +180 -20
  172. package/dist/charts/engine/renderers/shaders.cjs.map +1 -1
  173. package/dist/charts/engine/renderers/shaders.d.cts +18 -2
  174. package/dist/charts/engine/renderers/shaders.d.ts +18 -2
  175. package/dist/charts/engine/renderers/shaders.js +176 -20
  176. package/dist/charts/engine/renderers/shaders.js.map +1 -1
  177. package/dist/charts/engine/renderers/types.cjs.map +1 -1
  178. package/dist/charts/engine/renderers/types.d.cts +11 -4
  179. package/dist/charts/engine/renderers/types.d.ts +11 -4
  180. package/dist/charts/engine/renderers/types.js.map +1 -1
  181. package/dist/charts/engine/renderers/webgl.cjs +2 -0
  182. package/dist/charts/engine/renderers/webgl.cjs.map +1 -0
  183. package/dist/charts/engine/renderers/webgl.d.cts +4 -0
  184. package/dist/charts/engine/renderers/webgl.d.ts +4 -0
  185. package/dist/charts/engine/renderers/webgl.js +133 -0
  186. package/dist/charts/engine/renderers/webgl.js.map +1 -0
  187. package/dist/charts/engine/renderers/webgl2.cjs +1 -1
  188. package/dist/charts/engine/renderers/webgl2.cjs.map +1 -1
  189. package/dist/charts/engine/renderers/webgl2.d.cts +0 -1
  190. package/dist/charts/engine/renderers/webgl2.d.ts +0 -1
  191. package/dist/charts/engine/renderers/webgl2.js +62 -90
  192. package/dist/charts/engine/renderers/webgl2.js.map +1 -1
  193. package/dist/charts/engine/renderers/webgpu.cjs +1 -1
  194. package/dist/charts/engine/renderers/webgpu.cjs.map +1 -1
  195. package/dist/charts/engine/renderers/webgpu.js +18 -15
  196. package/dist/charts/engine/renderers/webgpu.js.map +1 -1
  197. package/dist/charts/engine/scale.cjs +1 -1
  198. package/dist/charts/engine/scale.cjs.map +1 -1
  199. package/dist/charts/engine/scale.js +1 -1
  200. package/dist/charts/engine/scale.js.map +1 -1
  201. package/dist/charts/engine/scene.cjs +1 -1
  202. package/dist/charts/engine/scene.cjs.map +1 -1
  203. package/dist/charts/engine/scene.d.cts +32 -9
  204. package/dist/charts/engine/scene.d.ts +32 -9
  205. package/dist/charts/engine/scene.js +363 -122
  206. package/dist/charts/engine/scene.js.map +1 -1
  207. package/dist/charts/engine/shapes/bullet.cjs +2 -0
  208. package/dist/charts/engine/shapes/bullet.cjs.map +1 -0
  209. package/dist/charts/engine/shapes/bullet.d.cts +6 -0
  210. package/dist/charts/engine/shapes/bullet.d.ts +6 -0
  211. package/dist/charts/engine/shapes/bullet.js +255 -0
  212. package/dist/charts/engine/shapes/bullet.js.map +1 -0
  213. package/dist/charts/engine/shapes/calendar.cjs +2 -0
  214. package/dist/charts/engine/shapes/calendar.cjs.map +1 -0
  215. package/dist/charts/engine/shapes/calendar.d.cts +38 -0
  216. package/dist/charts/engine/shapes/calendar.d.ts +38 -0
  217. package/dist/charts/engine/shapes/calendar.js +369 -0
  218. package/dist/charts/engine/shapes/calendar.js.map +1 -0
  219. package/dist/charts/engine/shapes/canvas.cjs +2 -0
  220. package/dist/charts/engine/shapes/canvas.cjs.map +1 -0
  221. package/dist/charts/engine/shapes/canvas.d.cts +65 -0
  222. package/dist/charts/engine/shapes/canvas.d.ts +65 -0
  223. package/dist/charts/engine/shapes/canvas.js +168 -0
  224. package/dist/charts/engine/shapes/canvas.js.map +1 -0
  225. package/dist/charts/engine/shapes/chart.cjs +2 -0
  226. package/dist/charts/engine/shapes/chart.cjs.map +1 -0
  227. package/dist/charts/engine/shapes/chart.d.cts +7 -0
  228. package/dist/charts/engine/shapes/chart.d.ts +7 -0
  229. package/dist/charts/engine/shapes/chart.js +292 -0
  230. package/dist/charts/engine/shapes/chart.js.map +1 -0
  231. package/dist/charts/engine/shapes/draw.cjs +2 -0
  232. package/dist/charts/engine/shapes/draw.cjs.map +1 -0
  233. package/dist/charts/engine/shapes/draw.d.cts +22 -0
  234. package/dist/charts/engine/shapes/draw.d.ts +22 -0
  235. package/dist/charts/engine/shapes/draw.js +165 -0
  236. package/dist/charts/engine/shapes/draw.js.map +1 -0
  237. package/dist/charts/engine/shapes/funnel.cjs +2 -0
  238. package/dist/charts/engine/shapes/funnel.cjs.map +1 -0
  239. package/dist/charts/engine/shapes/funnel.d.cts +6 -0
  240. package/dist/charts/engine/shapes/funnel.d.ts +6 -0
  241. package/dist/charts/engine/shapes/funnel.js +149 -0
  242. package/dist/charts/engine/shapes/funnel.js.map +1 -0
  243. package/dist/charts/engine/shapes/gauge.cjs +2 -0
  244. package/dist/charts/engine/shapes/gauge.cjs.map +1 -0
  245. package/dist/charts/engine/shapes/gauge.d.cts +7 -0
  246. package/dist/charts/engine/shapes/gauge.d.ts +7 -0
  247. package/dist/charts/engine/shapes/gauge.js +210 -0
  248. package/dist/charts/engine/shapes/gauge.js.map +1 -0
  249. package/dist/charts/engine/shapes/hit.cjs +2 -0
  250. package/dist/charts/engine/shapes/hit.cjs.map +1 -0
  251. package/dist/charts/engine/shapes/hit.d.cts +30 -0
  252. package/dist/charts/engine/shapes/hit.d.ts +30 -0
  253. package/dist/charts/engine/shapes/hit.js +145 -0
  254. package/dist/charts/engine/shapes/hit.js.map +1 -0
  255. package/dist/charts/engine/shapes/index.d.cts +12 -0
  256. package/dist/charts/engine/shapes/index.d.ts +12 -0
  257. package/dist/charts/engine/shapes/labels.cjs +2 -0
  258. package/dist/charts/engine/shapes/labels.cjs.map +1 -0
  259. package/dist/charts/engine/shapes/labels.d.cts +14 -0
  260. package/dist/charts/engine/shapes/labels.d.ts +14 -0
  261. package/dist/charts/engine/shapes/labels.js +146 -0
  262. package/dist/charts/engine/shapes/labels.js.map +1 -0
  263. package/dist/charts/engine/shapes/layout.cjs +3 -0
  264. package/dist/charts/engine/shapes/layout.cjs.map +1 -0
  265. package/dist/charts/engine/shapes/layout.d.cts +93 -0
  266. package/dist/charts/engine/shapes/layout.d.ts +93 -0
  267. package/dist/charts/engine/shapes/layout.js +353 -0
  268. package/dist/charts/engine/shapes/layout.js.map +1 -0
  269. package/dist/charts/engine/shapes/pie.cjs +2 -0
  270. package/dist/charts/engine/shapes/pie.cjs.map +1 -0
  271. package/dist/charts/engine/shapes/pie.d.cts +20 -0
  272. package/dist/charts/engine/shapes/pie.d.ts +20 -0
  273. package/dist/charts/engine/shapes/pie.js +302 -0
  274. package/dist/charts/engine/shapes/pie.js.map +1 -0
  275. package/dist/charts/engine/shapes/radar.cjs +2 -0
  276. package/dist/charts/engine/shapes/radar.cjs.map +1 -0
  277. package/dist/charts/engine/shapes/radar.d.cts +8 -0
  278. package/dist/charts/engine/shapes/radar.d.ts +8 -0
  279. package/dist/charts/engine/shapes/radar.js +198 -0
  280. package/dist/charts/engine/shapes/radar.js.map +1 -0
  281. package/dist/charts/engine/shapes/radialBar.cjs +2 -0
  282. package/dist/charts/engine/shapes/radialBar.cjs.map +1 -0
  283. package/dist/charts/engine/shapes/radialBar.d.cts +8 -0
  284. package/dist/charts/engine/shapes/radialBar.d.ts +8 -0
  285. package/dist/charts/engine/shapes/radialBar.js +155 -0
  286. package/dist/charts/engine/shapes/radialBar.js.map +1 -0
  287. package/dist/charts/engine/shapes/runtime.cjs +2 -0
  288. package/dist/charts/engine/shapes/runtime.cjs.map +1 -0
  289. package/dist/charts/engine/shapes/runtime.d.cts +36 -0
  290. package/dist/charts/engine/shapes/runtime.d.ts +36 -0
  291. package/dist/charts/engine/shapes/runtime.js +107 -0
  292. package/dist/charts/engine/shapes/runtime.js.map +1 -0
  293. package/dist/charts/engine/shapes/sankey.cjs +2 -0
  294. package/dist/charts/engine/shapes/sankey.cjs.map +1 -0
  295. package/dist/charts/engine/shapes/sankey.d.cts +29 -0
  296. package/dist/charts/engine/shapes/sankey.d.ts +29 -0
  297. package/dist/charts/engine/shapes/sankey.js +372 -0
  298. package/dist/charts/engine/shapes/sankey.js.map +1 -0
  299. package/dist/charts/engine/shapes/scene.cjs +2 -0
  300. package/dist/charts/engine/shapes/scene.cjs.map +1 -0
  301. package/dist/charts/engine/shapes/scene.d.cts +311 -0
  302. package/dist/charts/engine/shapes/scene.d.ts +311 -0
  303. package/dist/charts/engine/shapes/scene.js +125 -0
  304. package/dist/charts/engine/shapes/scene.js.map +1 -0
  305. package/dist/charts/engine/shapes/sunburst.cjs +2 -0
  306. package/dist/charts/engine/shapes/sunburst.cjs.map +1 -0
  307. package/dist/charts/engine/shapes/sunburst.d.cts +6 -0
  308. package/dist/charts/engine/shapes/sunburst.d.ts +6 -0
  309. package/dist/charts/engine/shapes/sunburst.js +261 -0
  310. package/dist/charts/engine/shapes/sunburst.js.map +1 -0
  311. package/dist/charts/engine/shapes/treemap.cjs +2 -0
  312. package/dist/charts/engine/shapes/treemap.cjs.map +1 -0
  313. package/dist/charts/engine/shapes/treemap.d.cts +14 -0
  314. package/dist/charts/engine/shapes/treemap.d.ts +14 -0
  315. package/dist/charts/engine/shapes/treemap.js +213 -0
  316. package/dist/charts/engine/shapes/treemap.js.map +1 -0
  317. package/dist/charts/engine/shapes/types.d.cts +719 -0
  318. package/dist/charts/engine/shapes/types.d.ts +719 -0
  319. package/dist/charts/engine/signature.cjs +2 -0
  320. package/dist/charts/engine/signature.cjs.map +1 -0
  321. package/dist/charts/engine/signature.d.cts +9 -0
  322. package/dist/charts/engine/signature.d.ts +9 -0
  323. package/dist/charts/engine/signature.js +13 -0
  324. package/dist/charts/engine/signature.js.map +1 -0
  325. package/dist/charts/engine/theme.cjs +1 -1
  326. package/dist/charts/engine/theme.cjs.map +1 -1
  327. package/dist/charts/engine/theme.d.cts +10 -1
  328. package/dist/charts/engine/theme.d.ts +10 -1
  329. package/dist/charts/engine/theme.js +40 -16
  330. package/dist/charts/engine/theme.js.map +1 -1
  331. package/dist/charts/engine/three-d/canvas2d.cjs +2 -0
  332. package/dist/charts/engine/three-d/canvas2d.cjs.map +1 -0
  333. package/dist/charts/engine/three-d/canvas2d.d.cts +4 -0
  334. package/dist/charts/engine/three-d/canvas2d.d.ts +4 -0
  335. package/dist/charts/engine/three-d/canvas2d.js +104 -0
  336. package/dist/charts/engine/three-d/canvas2d.js.map +1 -0
  337. package/dist/charts/engine/three-d/chart.cjs +2 -0
  338. package/dist/charts/engine/three-d/chart.cjs.map +1 -0
  339. package/dist/charts/engine/three-d/chart.d.cts +15 -0
  340. package/dist/charts/engine/three-d/chart.d.ts +15 -0
  341. package/dist/charts/engine/three-d/chart.js +621 -0
  342. package/dist/charts/engine/three-d/chart.js.map +1 -0
  343. package/dist/charts/engine/three-d/colormap.cjs +2 -0
  344. package/dist/charts/engine/three-d/colormap.cjs.map +1 -0
  345. package/dist/charts/engine/three-d/colormap.d.cts +16 -0
  346. package/dist/charts/engine/three-d/colormap.d.ts +16 -0
  347. package/dist/charts/engine/three-d/colormap.js +166 -0
  348. package/dist/charts/engine/three-d/colormap.js.map +1 -0
  349. package/dist/charts/engine/three-d/contours.cjs +2 -0
  350. package/dist/charts/engine/three-d/contours.cjs.map +1 -0
  351. package/dist/charts/engine/three-d/contours.d.cts +7 -0
  352. package/dist/charts/engine/three-d/contours.d.ts +7 -0
  353. package/dist/charts/engine/three-d/contours.js +47 -0
  354. package/dist/charts/engine/three-d/contours.js.map +1 -0
  355. package/dist/charts/engine/three-d/detect.cjs +2 -0
  356. package/dist/charts/engine/three-d/detect.cjs.map +1 -0
  357. package/dist/charts/engine/three-d/detect.d.cts +11 -0
  358. package/dist/charts/engine/three-d/detect.d.ts +11 -0
  359. package/dist/charts/engine/three-d/detect.js +35 -0
  360. package/dist/charts/engine/three-d/detect.js.map +1 -0
  361. package/dist/charts/engine/three-d/dom.cjs +2 -0
  362. package/dist/charts/engine/three-d/dom.cjs.map +1 -0
  363. package/dist/charts/engine/three-d/dom.d.cts +21 -0
  364. package/dist/charts/engine/three-d/dom.d.ts +21 -0
  365. package/dist/charts/engine/three-d/dom.js +98 -0
  366. package/dist/charts/engine/three-d/dom.js.map +1 -0
  367. package/dist/charts/engine/three-d/geometry.cjs +2 -0
  368. package/dist/charts/engine/three-d/geometry.cjs.map +1 -0
  369. package/dist/charts/engine/three-d/geometry.d.cts +76 -0
  370. package/dist/charts/engine/three-d/geometry.d.ts +76 -0
  371. package/dist/charts/engine/three-d/geometry.js +529 -0
  372. package/dist/charts/engine/three-d/geometry.js.map +1 -0
  373. package/dist/charts/engine/three-d/hover.cjs +2 -0
  374. package/dist/charts/engine/three-d/hover.cjs.map +1 -0
  375. package/dist/charts/engine/three-d/hover.d.cts +25 -0
  376. package/dist/charts/engine/three-d/hover.d.ts +25 -0
  377. package/dist/charts/engine/three-d/hover.js +131 -0
  378. package/dist/charts/engine/three-d/hover.js.map +1 -0
  379. package/dist/charts/engine/three-d/index.cjs +1 -0
  380. package/dist/charts/engine/three-d/index.d.cts +2 -0
  381. package/dist/charts/engine/three-d/index.d.ts +2 -0
  382. package/dist/charts/engine/three-d/index.js +2 -0
  383. package/dist/charts/engine/three-d/labels.cjs +2 -0
  384. package/dist/charts/engine/three-d/labels.cjs.map +1 -0
  385. package/dist/charts/engine/three-d/labels.d.cts +23 -0
  386. package/dist/charts/engine/three-d/labels.d.ts +23 -0
  387. package/dist/charts/engine/three-d/labels.js +136 -0
  388. package/dist/charts/engine/three-d/labels.js.map +1 -0
  389. package/dist/charts/engine/three-d/math.cjs +2 -0
  390. package/dist/charts/engine/three-d/math.cjs.map +1 -0
  391. package/dist/charts/engine/three-d/math.d.cts +84 -0
  392. package/dist/charts/engine/three-d/math.d.ts +84 -0
  393. package/dist/charts/engine/three-d/math.js +150 -0
  394. package/dist/charts/engine/three-d/math.js.map +1 -0
  395. package/dist/charts/engine/three-d/model.cjs +2 -0
  396. package/dist/charts/engine/three-d/model.cjs.map +1 -0
  397. package/dist/charts/engine/three-d/model.d.cts +130 -0
  398. package/dist/charts/engine/three-d/model.d.ts +130 -0
  399. package/dist/charts/engine/three-d/model.js +277 -0
  400. package/dist/charts/engine/three-d/model.js.map +1 -0
  401. package/dist/charts/engine/three-d/overlay.cjs +2 -0
  402. package/dist/charts/engine/three-d/overlay.cjs.map +1 -0
  403. package/dist/charts/engine/three-d/overlay.d.cts +72 -0
  404. package/dist/charts/engine/three-d/overlay.d.ts +72 -0
  405. package/dist/charts/engine/three-d/overlay.js +197 -0
  406. package/dist/charts/engine/three-d/overlay.js.map +1 -0
  407. package/dist/charts/engine/three-d/pick.cjs +2 -0
  408. package/dist/charts/engine/three-d/pick.cjs.map +1 -0
  409. package/dist/charts/engine/three-d/pick.d.cts +52 -0
  410. package/dist/charts/engine/three-d/pick.d.ts +52 -0
  411. package/dist/charts/engine/three-d/pick.js +220 -0
  412. package/dist/charts/engine/three-d/pick.js.map +1 -0
  413. package/dist/charts/engine/three-d/render-types.cjs +2 -0
  414. package/dist/charts/engine/three-d/render-types.cjs.map +1 -0
  415. package/dist/charts/engine/three-d/render-types.d.cts +82 -0
  416. package/dist/charts/engine/three-d/render-types.d.ts +82 -0
  417. package/dist/charts/engine/three-d/render-types.js +13 -0
  418. package/dist/charts/engine/three-d/render-types.js.map +1 -0
  419. package/dist/charts/engine/three-d/shaders.cjs +276 -0
  420. package/dist/charts/engine/three-d/shaders.cjs.map +1 -0
  421. package/dist/charts/engine/three-d/shaders.d.cts +26 -0
  422. package/dist/charts/engine/three-d/shaders.d.ts +26 -0
  423. package/dist/charts/engine/three-d/shaders.js +191 -0
  424. package/dist/charts/engine/three-d/shaders.js.map +1 -0
  425. package/dist/charts/engine/three-d/sort.cjs +2 -0
  426. package/dist/charts/engine/three-d/sort.cjs.map +1 -0
  427. package/dist/charts/engine/three-d/sort.d.cts +18 -0
  428. package/dist/charts/engine/three-d/sort.d.ts +18 -0
  429. package/dist/charts/engine/three-d/sort.js +71 -0
  430. package/dist/charts/engine/three-d/sort.js.map +1 -0
  431. package/dist/charts/engine/three-d/types.d.cts +588 -0
  432. package/dist/charts/engine/three-d/types.d.ts +588 -0
  433. package/dist/charts/engine/three-d/webgl.cjs +2 -0
  434. package/dist/charts/engine/three-d/webgl.cjs.map +1 -0
  435. package/dist/charts/engine/three-d/webgl.d.cts +10 -0
  436. package/dist/charts/engine/three-d/webgl.d.ts +10 -0
  437. package/dist/charts/engine/three-d/webgl.js +130 -0
  438. package/dist/charts/engine/three-d/webgl.js.map +1 -0
  439. package/dist/charts/engine/three-d/webgpu.cjs +2 -0
  440. package/dist/charts/engine/three-d/webgpu.cjs.map +1 -0
  441. package/dist/charts/engine/three-d/webgpu.d.cts +5 -0
  442. package/dist/charts/engine/three-d/webgpu.d.ts +5 -0
  443. package/dist/charts/engine/three-d/webgpu.js +249 -0
  444. package/dist/charts/engine/three-d/webgpu.js.map +1 -0
  445. package/dist/charts/engine/time.cjs +1 -1
  446. package/dist/charts/engine/time.cjs.map +1 -1
  447. package/dist/charts/engine/time.d.cts +13 -4
  448. package/dist/charts/engine/time.d.ts +13 -4
  449. package/dist/charts/engine/time.js +156 -91
  450. package/dist/charts/engine/time.js.map +1 -1
  451. package/dist/charts/engine/trading/chart.cjs +2 -0
  452. package/dist/charts/engine/trading/chart.cjs.map +1 -0
  453. package/dist/charts/engine/trading/chart.d.cts +3 -0
  454. package/dist/charts/engine/trading/chart.d.ts +3 -0
  455. package/dist/charts/engine/trading/chart.js +1507 -0
  456. package/dist/charts/engine/trading/chart.js.map +1 -0
  457. package/dist/charts/engine/trading/drawings.cjs +2 -0
  458. package/dist/charts/engine/trading/drawings.cjs.map +1 -0
  459. package/dist/charts/engine/trading/drawings.d.cts +57 -0
  460. package/dist/charts/engine/trading/drawings.d.ts +57 -0
  461. package/dist/charts/engine/trading/drawings.js +160 -0
  462. package/dist/charts/engine/trading/drawings.js.map +1 -0
  463. package/dist/charts/engine/trading/format.cjs +2 -0
  464. package/dist/charts/engine/trading/format.cjs.map +1 -0
  465. package/dist/charts/engine/trading/format.d.cts +60 -0
  466. package/dist/charts/engine/trading/format.d.ts +60 -0
  467. package/dist/charts/engine/trading/format.js +131 -0
  468. package/dist/charts/engine/trading/format.js.map +1 -0
  469. package/dist/charts/engine/trading/geometry.cjs +2 -0
  470. package/dist/charts/engine/trading/geometry.cjs.map +1 -0
  471. package/dist/charts/engine/trading/geometry.d.cts +55 -0
  472. package/dist/charts/engine/trading/geometry.d.ts +55 -0
  473. package/dist/charts/engine/trading/geometry.js +131 -0
  474. package/dist/charts/engine/trading/geometry.js.map +1 -0
  475. package/dist/charts/engine/trading/index.cjs +1 -0
  476. package/dist/charts/engine/trading/index.d.cts +3 -0
  477. package/dist/charts/engine/trading/index.d.ts +3 -0
  478. package/dist/charts/engine/trading/index.js +3 -0
  479. package/dist/charts/engine/trading/indicators.cjs +2 -0
  480. package/dist/charts/engine/trading/indicators.cjs.map +1 -0
  481. package/dist/charts/engine/trading/indicators.d.cts +105 -0
  482. package/dist/charts/engine/trading/indicators.d.ts +105 -0
  483. package/dist/charts/engine/trading/indicators.js +268 -0
  484. package/dist/charts/engine/trading/indicators.js.map +1 -0
  485. package/dist/charts/engine/trading/labels.cjs +2 -0
  486. package/dist/charts/engine/trading/labels.cjs.map +1 -0
  487. package/dist/charts/engine/trading/labels.d.cts +7 -0
  488. package/dist/charts/engine/trading/labels.d.ts +7 -0
  489. package/dist/charts/engine/trading/labels.js +91 -0
  490. package/dist/charts/engine/trading/labels.js.map +1 -0
  491. package/dist/charts/engine/trading/scale.cjs +2 -0
  492. package/dist/charts/engine/trading/scale.cjs.map +1 -0
  493. package/dist/charts/engine/trading/scale.d.cts +46 -0
  494. package/dist/charts/engine/trading/scale.d.ts +46 -0
  495. package/dist/charts/engine/trading/scale.js +100 -0
  496. package/dist/charts/engine/trading/scale.js.map +1 -0
  497. package/dist/charts/engine/trading/store.cjs +2 -0
  498. package/dist/charts/engine/trading/store.cjs.map +1 -0
  499. package/dist/charts/engine/trading/store.d.cts +62 -0
  500. package/dist/charts/engine/trading/store.d.ts +62 -0
  501. package/dist/charts/engine/trading/store.js +129 -0
  502. package/dist/charts/engine/trading/store.js.map +1 -0
  503. package/dist/charts/engine/trading/studies.cjs +2 -0
  504. package/dist/charts/engine/trading/studies.cjs.map +1 -0
  505. package/dist/charts/engine/trading/studies.d.cts +52 -0
  506. package/dist/charts/engine/trading/studies.d.ts +52 -0
  507. package/dist/charts/engine/trading/studies.js +254 -0
  508. package/dist/charts/engine/trading/studies.js.map +1 -0
  509. package/dist/charts/engine/trading/types.d.cts +656 -0
  510. package/dist/charts/engine/trading/types.d.ts +656 -0
  511. package/dist/charts/engine/types.d.cts +227 -15
  512. package/dist/charts/engine/types.d.ts +227 -15
  513. package/dist/charts/index.cjs +1 -1
  514. package/dist/charts/index.d.cts +7 -2
  515. package/dist/charts/index.d.ts +7 -2
  516. package/dist/charts/index.js +22 -8
  517. package/dist/charts/react/Chart.cjs +1 -1
  518. package/dist/charts/react/Chart.cjs.map +1 -1
  519. package/dist/charts/react/Chart.d.cts +11 -4
  520. package/dist/charts/react/Chart.d.ts +11 -4
  521. package/dist/charts/react/Chart.js +70 -47
  522. package/dist/charts/react/Chart.js.map +1 -1
  523. package/dist/charts/react/charts.cjs +1 -1
  524. package/dist/charts/react/charts.cjs.map +1 -1
  525. package/dist/charts/react/charts.d.cts +48 -2
  526. package/dist/charts/react/charts.d.ts +48 -2
  527. package/dist/charts/react/charts.js +371 -76
  528. package/dist/charts/react/charts.js.map +1 -1
  529. package/dist/charts/react/orderbook.cjs +2 -0
  530. package/dist/charts/react/orderbook.cjs.map +1 -0
  531. package/dist/charts/react/orderbook.d.cts +142 -0
  532. package/dist/charts/react/orderbook.d.ts +142 -0
  533. package/dist/charts/react/orderbook.js +182 -0
  534. package/dist/charts/react/orderbook.js.map +1 -0
  535. package/dist/charts/react/shapes.cjs +2 -0
  536. package/dist/charts/react/shapes.cjs.map +1 -0
  537. package/dist/charts/react/shapes.d.cts +537 -0
  538. package/dist/charts/react/shapes.d.ts +537 -0
  539. package/dist/charts/react/shapes.js +429 -0
  540. package/dist/charts/react/shapes.js.map +1 -0
  541. package/dist/charts/react/three-d.cjs +2 -0
  542. package/dist/charts/react/three-d.cjs.map +1 -0
  543. package/dist/charts/react/three-d.d.cts +151 -0
  544. package/dist/charts/react/three-d.d.ts +151 -0
  545. package/dist/charts/react/three-d.js +154 -0
  546. package/dist/charts/react/three-d.js.map +1 -0
  547. package/dist/charts/react/trading.cjs +2 -0
  548. package/dist/charts/react/trading.cjs.map +1 -0
  549. package/dist/charts/react/trading.d.cts +93 -0
  550. package/dist/charts/react/trading.d.ts +93 -0
  551. package/dist/charts/react/trading.js +95 -0
  552. package/dist/charts/react/trading.js.map +1 -0
  553. package/dist/charts/react/types.d.cts +200 -7
  554. package/dist/charts/react/types.d.ts +200 -7
  555. package/dist/core/contracts.cjs +1 -1
  556. package/dist/core/contracts.cjs.map +1 -1
  557. package/dist/core/contracts.js +1 -1
  558. package/dist/core/contracts.js.map +1 -1
  559. package/dist/native/charts/src/canvas.cjs +1 -1
  560. package/dist/native/charts/src/canvas.js +9 -3
  561. package/dist/native/charts/src/engine/axis.cjs +1 -1
  562. package/dist/native/charts/src/engine/axis.cjs.map +1 -1
  563. package/dist/native/charts/src/engine/axis.js +6 -6
  564. package/dist/native/charts/src/engine/axis.js.map +1 -1
  565. package/dist/native/charts/src/engine/color.cjs +1 -1
  566. package/dist/native/charts/src/engine/color.cjs.map +1 -1
  567. package/dist/native/charts/src/engine/color.js +12 -3
  568. package/dist/native/charts/src/engine/color.js.map +1 -1
  569. package/dist/native/charts/src/engine/controller.cjs +2 -2
  570. package/dist/native/charts/src/engine/controller.cjs.map +1 -1
  571. package/dist/native/charts/src/engine/controller.js +418 -294
  572. package/dist/native/charts/src/engine/controller.js.map +1 -1
  573. package/dist/native/charts/src/engine/curve.cjs +2 -0
  574. package/dist/native/charts/src/engine/curve.cjs.map +1 -0
  575. package/dist/native/charts/src/engine/curve.js +56 -0
  576. package/dist/native/charts/src/engine/curve.js.map +1 -0
  577. package/dist/native/charts/src/engine/data.cjs +1 -1
  578. package/dist/native/charts/src/engine/data.cjs.map +1 -1
  579. package/dist/native/charts/src/engine/data.js +117 -43
  580. package/dist/native/charts/src/engine/data.js.map +1 -1
  581. package/dist/native/charts/src/engine/format.cjs +1 -1
  582. package/dist/native/charts/src/engine/format.cjs.map +1 -1
  583. package/dist/native/charts/src/engine/format.js +46 -21
  584. package/dist/native/charts/src/engine/format.js.map +1 -1
  585. package/dist/native/charts/src/engine/labels.cjs +2 -0
  586. package/dist/native/charts/src/engine/labels.cjs.map +1 -0
  587. package/dist/native/charts/src/engine/labels.js +74 -0
  588. package/dist/native/charts/src/engine/labels.js.map +1 -0
  589. package/dist/native/charts/src/engine/layout.cjs +1 -1
  590. package/dist/native/charts/src/engine/layout.cjs.map +1 -1
  591. package/dist/native/charts/src/engine/layout.js +53 -12
  592. package/dist/native/charts/src/engine/layout.js.map +1 -1
  593. package/dist/native/charts/src/engine/locale.cjs +2 -0
  594. package/dist/native/charts/src/engine/locale.cjs.map +1 -0
  595. package/dist/native/charts/src/engine/locale.js +60 -0
  596. package/dist/native/charts/src/engine/locale.js.map +1 -0
  597. package/dist/native/charts/src/engine/model.cjs +1 -1
  598. package/dist/native/charts/src/engine/model.cjs.map +1 -1
  599. package/dist/native/charts/src/engine/model.js +335 -111
  600. package/dist/native/charts/src/engine/model.js.map +1 -1
  601. package/dist/native/charts/src/engine/overlay.cjs +1 -1
  602. package/dist/native/charts/src/engine/overlay.cjs.map +1 -1
  603. package/dist/native/charts/src/engine/overlay.js +54 -31
  604. package/dist/native/charts/src/engine/overlay.js.map +1 -1
  605. package/dist/native/charts/src/engine/presets.cjs +2 -2
  606. package/dist/native/charts/src/engine/presets.cjs.map +1 -1
  607. package/dist/native/charts/src/engine/presets.js +456 -34
  608. package/dist/native/charts/src/engine/presets.js.map +1 -1
  609. package/dist/native/charts/src/engine/scale.cjs +1 -1
  610. package/dist/native/charts/src/engine/scale.cjs.map +1 -1
  611. package/dist/native/charts/src/engine/scale.js +1 -1
  612. package/dist/native/charts/src/engine/scale.js.map +1 -1
  613. package/dist/native/charts/src/engine/scene.cjs +1 -1
  614. package/dist/native/charts/src/engine/scene.cjs.map +1 -1
  615. package/dist/native/charts/src/engine/scene.js +369 -128
  616. package/dist/native/charts/src/engine/scene.js.map +1 -1
  617. package/dist/native/charts/src/engine/shapes/bullet.cjs +2 -0
  618. package/dist/native/charts/src/engine/shapes/bullet.cjs.map +1 -0
  619. package/dist/native/charts/src/engine/shapes/bullet.js +255 -0
  620. package/dist/native/charts/src/engine/shapes/bullet.js.map +1 -0
  621. package/dist/native/charts/src/engine/shapes/calendar.cjs +2 -0
  622. package/dist/native/charts/src/engine/shapes/calendar.cjs.map +1 -0
  623. package/dist/native/charts/src/engine/shapes/calendar.js +364 -0
  624. package/dist/native/charts/src/engine/shapes/calendar.js.map +1 -0
  625. package/dist/native/charts/src/engine/shapes/canvas.cjs +2 -0
  626. package/dist/native/charts/src/engine/shapes/canvas.cjs.map +1 -0
  627. package/dist/native/charts/src/engine/shapes/canvas.js +168 -0
  628. package/dist/native/charts/src/engine/shapes/canvas.js.map +1 -0
  629. package/dist/native/charts/src/engine/shapes/draw.cjs +2 -0
  630. package/dist/native/charts/src/engine/shapes/draw.cjs.map +1 -0
  631. package/dist/native/charts/src/engine/shapes/draw.js +165 -0
  632. package/dist/native/charts/src/engine/shapes/draw.js.map +1 -0
  633. package/dist/native/charts/src/engine/shapes/funnel.cjs +2 -0
  634. package/dist/native/charts/src/engine/shapes/funnel.cjs.map +1 -0
  635. package/dist/native/charts/src/engine/shapes/funnel.js +149 -0
  636. package/dist/native/charts/src/engine/shapes/funnel.js.map +1 -0
  637. package/dist/native/charts/src/engine/shapes/gauge.cjs +2 -0
  638. package/dist/native/charts/src/engine/shapes/gauge.cjs.map +1 -0
  639. package/dist/native/charts/src/engine/shapes/gauge.js +210 -0
  640. package/dist/native/charts/src/engine/shapes/gauge.js.map +1 -0
  641. package/dist/native/charts/src/engine/shapes/hit.cjs +2 -0
  642. package/dist/native/charts/src/engine/shapes/hit.cjs.map +1 -0
  643. package/dist/native/charts/src/engine/shapes/hit.js +106 -0
  644. package/dist/native/charts/src/engine/shapes/hit.js.map +1 -0
  645. package/dist/native/charts/src/engine/shapes/labels.cjs +2 -0
  646. package/dist/native/charts/src/engine/shapes/labels.cjs.map +1 -0
  647. package/dist/native/charts/src/engine/shapes/labels.js +146 -0
  648. package/dist/native/charts/src/engine/shapes/labels.js.map +1 -0
  649. package/dist/native/charts/src/engine/shapes/layout.cjs +3 -0
  650. package/dist/native/charts/src/engine/shapes/layout.cjs.map +1 -0
  651. package/dist/native/charts/src/engine/shapes/layout.js +331 -0
  652. package/dist/native/charts/src/engine/shapes/layout.js.map +1 -0
  653. package/dist/native/charts/src/engine/shapes/pie.cjs +2 -0
  654. package/dist/native/charts/src/engine/shapes/pie.cjs.map +1 -0
  655. package/dist/native/charts/src/engine/shapes/pie.js +302 -0
  656. package/dist/native/charts/src/engine/shapes/pie.js.map +1 -0
  657. package/dist/native/charts/src/engine/shapes/radar.cjs +2 -0
  658. package/dist/native/charts/src/engine/shapes/radar.cjs.map +1 -0
  659. package/dist/native/charts/src/engine/shapes/radar.js +198 -0
  660. package/dist/native/charts/src/engine/shapes/radar.js.map +1 -0
  661. package/dist/native/charts/src/engine/shapes/radialBar.cjs +2 -0
  662. package/dist/native/charts/src/engine/shapes/radialBar.cjs.map +1 -0
  663. package/dist/native/charts/src/engine/shapes/radialBar.js +155 -0
  664. package/dist/native/charts/src/engine/shapes/radialBar.js.map +1 -0
  665. package/dist/native/charts/src/engine/shapes/runtime.cjs +2 -0
  666. package/dist/native/charts/src/engine/shapes/runtime.cjs.map +1 -0
  667. package/dist/native/charts/src/engine/shapes/runtime.js +107 -0
  668. package/dist/native/charts/src/engine/shapes/runtime.js.map +1 -0
  669. package/dist/native/charts/src/engine/shapes/sankey.cjs +2 -0
  670. package/dist/native/charts/src/engine/shapes/sankey.cjs.map +1 -0
  671. package/dist/native/charts/src/engine/shapes/sankey.js +372 -0
  672. package/dist/native/charts/src/engine/shapes/sankey.js.map +1 -0
  673. package/dist/native/charts/src/engine/shapes/scene.cjs +2 -0
  674. package/dist/native/charts/src/engine/shapes/scene.cjs.map +1 -0
  675. package/dist/native/charts/src/engine/shapes/scene.js +125 -0
  676. package/dist/native/charts/src/engine/shapes/scene.js.map +1 -0
  677. package/dist/native/charts/src/engine/shapes/sunburst.cjs +2 -0
  678. package/dist/native/charts/src/engine/shapes/sunburst.cjs.map +1 -0
  679. package/dist/native/charts/src/engine/shapes/sunburst.js +261 -0
  680. package/dist/native/charts/src/engine/shapes/sunburst.js.map +1 -0
  681. package/dist/native/charts/src/engine/shapes/treemap.cjs +2 -0
  682. package/dist/native/charts/src/engine/shapes/treemap.cjs.map +1 -0
  683. package/dist/native/charts/src/engine/shapes/treemap.js +213 -0
  684. package/dist/native/charts/src/engine/shapes/treemap.js.map +1 -0
  685. package/dist/native/charts/src/engine/theme.cjs.map +1 -1
  686. package/dist/native/charts/src/engine/theme.js.map +1 -1
  687. package/dist/native/charts/src/engine/time.cjs +1 -1
  688. package/dist/native/charts/src/engine/time.cjs.map +1 -1
  689. package/dist/native/charts/src/engine/time.js +156 -91
  690. package/dist/native/charts/src/engine/time.js.map +1 -1
  691. package/dist/native/components/Chart/ChartBase.cjs +1 -1
  692. package/dist/native/components/Chart/ChartBase.cjs.map +1 -1
  693. package/dist/native/components/Chart/ChartBase.d.cts +1 -1
  694. package/dist/native/components/Chart/ChartBase.d.ts +1 -1
  695. package/dist/native/components/Chart/ChartBase.js +110 -107
  696. package/dist/native/components/Chart/ChartBase.js.map +1 -1
  697. package/dist/native/components/Chart/charts.cjs +1 -1
  698. package/dist/native/components/Chart/charts.cjs.map +1 -1
  699. package/dist/native/components/Chart/charts.d.cts +6 -1
  700. package/dist/native/components/Chart/charts.d.ts +6 -1
  701. package/dist/native/components/Chart/charts.js +53 -29
  702. package/dist/native/components/Chart/charts.js.map +1 -1
  703. package/dist/native/components/Chart/index.cjs +1 -1
  704. package/dist/native/components/Chart/index.d.cts +1 -1
  705. package/dist/native/components/Chart/index.d.ts +1 -1
  706. package/dist/native/components/Chart/index.js +2 -2
  707. package/dist/native/components/Chart/scene.cjs +1 -1
  708. package/dist/native/components/Chart/scene.cjs.map +1 -1
  709. package/dist/native/components/Chart/scene.js +244 -215
  710. package/dist/native/components/Chart/scene.js.map +1 -1
  711. package/dist/native/components/Chart/types.d.cts +26 -3
  712. package/dist/native/components/Chart/types.d.ts +26 -3
  713. package/dist/native/components/Charts/charts.cjs +2 -0
  714. package/dist/native/components/Charts/charts.cjs.map +1 -0
  715. package/dist/native/components/Charts/charts.d.cts +41 -0
  716. package/dist/native/components/Charts/charts.d.ts +41 -0
  717. package/dist/native/components/Charts/charts.js +338 -0
  718. package/dist/native/components/Charts/charts.js.map +1 -0
  719. package/dist/native/components/Charts/index.cjs +1 -0
  720. package/dist/native/components/Charts/index.d.cts +2 -0
  721. package/dist/native/components/Charts/index.d.ts +2 -0
  722. package/dist/native/components/Charts/index.js +2 -0
  723. package/dist/native/components/Charts/types.d.cts +144 -0
  724. package/dist/native/components/Charts/types.d.ts +144 -0
  725. package/dist/native/components/ShapeChart/ShapeChartBase.cjs +2 -0
  726. package/dist/native/components/ShapeChart/ShapeChartBase.cjs.map +1 -0
  727. package/dist/native/components/ShapeChart/ShapeChartBase.d.cts +24 -0
  728. package/dist/native/components/ShapeChart/ShapeChartBase.d.ts +24 -0
  729. package/dist/native/components/ShapeChart/ShapeChartBase.js +271 -0
  730. package/dist/native/components/ShapeChart/ShapeChartBase.js.map +1 -0
  731. package/dist/native/components/ShapeChart/charts.cjs +2 -0
  732. package/dist/native/components/ShapeChart/charts.cjs.map +1 -0
  733. package/dist/native/components/ShapeChart/charts.d.cts +38 -0
  734. package/dist/native/components/ShapeChart/charts.d.ts +38 -0
  735. package/dist/native/components/ShapeChart/charts.js +387 -0
  736. package/dist/native/components/ShapeChart/charts.js.map +1 -0
  737. package/dist/native/components/ShapeChart/draw.cjs +2 -0
  738. package/dist/native/components/ShapeChart/draw.cjs.map +1 -0
  739. package/dist/native/components/ShapeChart/draw.d.cts +4 -0
  740. package/dist/native/components/ShapeChart/draw.d.ts +4 -0
  741. package/dist/native/components/ShapeChart/draw.js +104 -0
  742. package/dist/native/components/ShapeChart/draw.js.map +1 -0
  743. package/dist/native/components/ShapeChart/geometry.cjs +2 -0
  744. package/dist/native/components/ShapeChart/geometry.cjs.map +1 -0
  745. package/dist/native/components/ShapeChart/geometry.d.cts +71 -0
  746. package/dist/native/components/ShapeChart/geometry.d.ts +71 -0
  747. package/dist/native/components/ShapeChart/geometry.js +602 -0
  748. package/dist/native/components/ShapeChart/geometry.js.map +1 -0
  749. package/dist/native/components/ShapeChart/index.cjs +1 -0
  750. package/dist/native/components/ShapeChart/index.d.cts +2 -0
  751. package/dist/native/components/ShapeChart/index.d.ts +2 -0
  752. package/dist/native/components/ShapeChart/index.js +2 -0
  753. package/dist/native/components/ShapeChart/recorder.cjs +2 -0
  754. package/dist/native/components/ShapeChart/recorder.cjs.map +1 -0
  755. package/dist/native/components/ShapeChart/recorder.d.cts +106 -0
  756. package/dist/native/components/ShapeChart/recorder.d.ts +106 -0
  757. package/dist/native/components/ShapeChart/recorder.js +574 -0
  758. package/dist/native/components/ShapeChart/recorder.js.map +1 -0
  759. package/dist/native/components/ShapeChart/types.d.cts +509 -0
  760. package/dist/native/components/ShapeChart/types.d.ts +509 -0
  761. package/dist/native/index.cjs +1 -1
  762. package/dist/native/index.d.cts +2 -0
  763. package/dist/native/index.d.ts +2 -0
  764. package/dist/native/index.js +14 -10
  765. package/dist/native/manifest.d.cts +6 -4
  766. package/dist/native/manifest.d.ts +6 -4
  767. package/dist/native/source/components/Chart/ChartBase.tsx +8 -1
  768. package/dist/native/source/components/Chart/charts.tsx +42 -6
  769. package/dist/native/source/components/Chart/index.ts +1 -0
  770. package/dist/native/source/components/Chart/scene.tsx +204 -100
  771. package/dist/native/source/components/Chart/types.ts +31 -1
  772. package/dist/native/source/components/Charts/charts.tsx +493 -0
  773. package/dist/native/source/components/Charts/index.ts +14 -0
  774. package/dist/native/source/components/Charts/types.ts +207 -0
  775. package/dist/native/source/components/ShapeChart/ShapeChartBase.tsx +484 -0
  776. package/dist/native/source/components/ShapeChart/charts.tsx +605 -0
  777. package/dist/native/source/components/ShapeChart/draw.tsx +170 -0
  778. package/dist/native/source/components/ShapeChart/geometry.ts +1185 -0
  779. package/dist/native/source/components/ShapeChart/index.ts +15 -0
  780. package/dist/native/source/components/ShapeChart/recorder.ts +830 -0
  781. package/dist/native/source/components/ShapeChart/types.ts +564 -0
  782. package/dist/native/source/index.ts +2 -0
  783. package/dist/native/source/manifest.ts +30 -4
  784. package/dist/taro/charts.d.ts +209 -4
  785. package/dist/taro/index.d.ts +1 -0
  786. package/dist/taro/index.js +8032 -1891
  787. package/dist/taro/manifest.d.ts +1 -0
  788. package/dist/taro/shape-charts.d.ts +537 -0
  789. package/dist/uni/AreaChart.vue +68 -0
  790. package/dist/uni/AreaChart.vue.d.ts +120 -0
  791. package/dist/uni/Badge.vue.d.ts +1 -1
  792. package/dist/uni/BoxPlotChart.vue +66 -0
  793. package/dist/uni/BoxPlotChart.vue.d.ts +102 -0
  794. package/dist/uni/BubbleChart.vue +68 -0
  795. package/dist/uni/BubbleChart.vue.d.ts +106 -0
  796. package/dist/uni/BulletChart.vue +86 -0
  797. package/dist/uni/BulletChart.vue.d.ts +110 -0
  798. package/dist/uni/CalendarHeatmap.vue +92 -0
  799. package/dist/uni/CalendarHeatmap.vue.d.ts +129 -0
  800. package/dist/uni/CandlestickChart.vue +66 -0
  801. package/dist/uni/CandlestickChart.vue.d.ts +100 -0
  802. package/dist/uni/DonutChart.vue +72 -0
  803. package/dist/uni/DonutChart.vue.d.ts +114 -0
  804. package/dist/uni/FunnelChart.vue +67 -0
  805. package/dist/uni/FunnelChart.vue.d.ts +104 -0
  806. package/dist/uni/GanttChart.vue +67 -0
  807. package/dist/uni/GanttChart.vue.d.ts +123 -0
  808. package/dist/uni/GaugeChart.vue +77 -0
  809. package/dist/uni/GaugeChart.vue.d.ts +123 -0
  810. package/dist/uni/HeatmapChart.vue +66 -0
  811. package/dist/uni/HeatmapChart.vue.d.ts +114 -0
  812. package/dist/uni/HistogramChart.vue +66 -0
  813. package/dist/uni/HistogramChart.vue.d.ts +121 -0
  814. package/dist/uni/HorizontalBarChart.vue +68 -0
  815. package/dist/uni/HorizontalBarChart.vue.d.ts +127 -0
  816. package/dist/uni/Input.vue.d.ts +1 -1
  817. package/dist/uni/MixedChart.vue +68 -0
  818. package/dist/uni/MixedChart.vue.d.ts +106 -0
  819. package/dist/uni/NumberInput.vue.d.ts +1 -1
  820. package/dist/uni/PieChart.vue +72 -0
  821. package/dist/uni/PieChart.vue.d.ts +114 -0
  822. package/dist/uni/RadarChart.vue +67 -0
  823. package/dist/uni/RadarChart.vue.d.ts +110 -0
  824. package/dist/uni/RadialBarChart.vue +90 -0
  825. package/dist/uni/RadialBarChart.vue.d.ts +132 -0
  826. package/dist/uni/RangeAreaChart.vue +68 -0
  827. package/dist/uni/RangeAreaChart.vue.d.ts +102 -0
  828. package/dist/uni/ResponsiveGrid.vue.d.ts +1 -1
  829. package/dist/uni/SankeyChart.vue +88 -0
  830. package/dist/uni/SankeyChart.vue.d.ts +121 -0
  831. package/dist/uni/ShapeChart.vue +73 -0
  832. package/dist/uni/ShapeChart.vue.d.ts +54 -0
  833. package/dist/uni/Sparkline.vue +58 -0
  834. package/dist/uni/Sparkline.vue.d.ts +77 -0
  835. package/dist/uni/SunburstChart.vue +90 -0
  836. package/dist/uni/SunburstChart.vue.d.ts +114 -0
  837. package/dist/uni/Textarea.vue.d.ts +1 -1
  838. package/dist/uni/TimePicker.vue.d.ts +1 -1
  839. package/dist/uni/TreemapChart.vue +65 -0
  840. package/dist/uni/TreemapChart.vue.d.ts +100 -0
  841. package/dist/uni/WaterfallChart.vue +66 -0
  842. package/dist/uni/WaterfallChart.vue.d.ts +125 -0
  843. package/dist/uni/chart-types.d.ts +216 -2
  844. package/dist/uni/chart-types.js +174 -0
  845. package/dist/uni/charts-canvas.js +10 -3
  846. package/dist/uni/index.d.ts +26 -1
  847. package/dist/uni/index.js +26 -1
  848. package/dist/uni/manifest.d.ts +272 -0
  849. package/dist/uni/manifest.js +387 -0
  850. package/dist/uni/named-chart-options.d.ts +88 -0
  851. package/dist/uni/named-chart-options.js +156 -0
  852. package/dist/uni/shape-chart-canvas.d.ts +51 -0
  853. package/dist/uni/shape-chart-canvas.js +342 -0
  854. package/dist/uni/shape-chart-types.d.ts +381 -0
  855. package/dist/uni/shape-chart-types.js +261 -0
  856. package/dist/vue/components/Chart/AreaChart.vue.d.ts +124 -0
  857. package/dist/vue/components/Chart/AreaChart.vue.js +7 -0
  858. package/dist/vue/components/Chart/AreaChart.vue.js.map +1 -0
  859. package/dist/vue/components/Chart/AreaChart.vue_vue_type_script_setup_true_lang.js +49 -0
  860. package/dist/vue/components/Chart/AreaChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  861. package/dist/vue/components/Chart/Bar3DChart.vue.d.ts +132 -0
  862. package/dist/vue/components/Chart/Bar3DChart.vue.js +7 -0
  863. package/dist/vue/components/Chart/Bar3DChart.vue.js.map +1 -0
  864. package/dist/vue/components/Chart/Bar3DChart.vue_vue_type_script_setup_true_lang.js +55 -0
  865. package/dist/vue/components/Chart/Bar3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  866. package/dist/vue/components/Chart/BarChart.vue.d.ts +123 -0
  867. package/dist/vue/components/Chart/BarChart.vue.js +7 -0
  868. package/dist/vue/components/Chart/BarChart.vue.js.map +1 -0
  869. package/dist/vue/components/Chart/BarChart.vue_vue_type_script_setup_true_lang.js +53 -0
  870. package/dist/vue/components/Chart/BarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  871. package/dist/vue/components/Chart/BoxPlotChart.vue.d.ts +112 -0
  872. package/dist/vue/components/Chart/BoxPlotChart.vue.js +7 -0
  873. package/dist/vue/components/Chart/BoxPlotChart.vue.js.map +1 -0
  874. package/dist/vue/components/Chart/BoxPlotChart.vue_vue_type_script_setup_true_lang.js +57 -0
  875. package/dist/vue/components/Chart/BoxPlotChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  876. package/dist/vue/components/Chart/BubbleChart.vue.d.ts +106 -0
  877. package/dist/vue/components/Chart/BubbleChart.vue.js +7 -0
  878. package/dist/vue/components/Chart/BubbleChart.vue.js.map +1 -0
  879. package/dist/vue/components/Chart/BubbleChart.vue_vue_type_script_setup_true_lang.js +52 -0
  880. package/dist/vue/components/Chart/BubbleChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  881. package/dist/vue/components/Chart/BulletChart.vue.d.ts +117 -0
  882. package/dist/vue/components/Chart/BulletChart.vue.js +7 -0
  883. package/dist/vue/components/Chart/BulletChart.vue.js.map +1 -0
  884. package/dist/vue/components/Chart/BulletChart.vue_vue_type_script_setup_true_lang.js +64 -0
  885. package/dist/vue/components/Chart/BulletChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  886. package/dist/vue/components/Chart/CalendarHeatmap.vue.d.ts +144 -0
  887. package/dist/vue/components/Chart/CalendarHeatmap.vue.js +7 -0
  888. package/dist/vue/components/Chart/CalendarHeatmap.vue.js.map +1 -0
  889. package/dist/vue/components/Chart/CalendarHeatmap.vue_vue_type_script_setup_true_lang.js +77 -0
  890. package/dist/vue/components/Chart/CalendarHeatmap.vue_vue_type_script_setup_true_lang.js.map +1 -0
  891. package/dist/vue/components/Chart/CandlestickChart.vue.d.ts +94 -0
  892. package/dist/vue/components/Chart/CandlestickChart.vue.js +7 -0
  893. package/dist/vue/components/Chart/CandlestickChart.vue.js.map +1 -0
  894. package/dist/vue/components/Chart/CandlestickChart.vue_vue_type_script_setup_true_lang.js +44 -0
  895. package/dist/vue/components/Chart/CandlestickChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  896. package/dist/vue/components/Chart/Chart.vue.d.ts +103 -0
  897. package/dist/vue/components/Chart/Chart.vue.js +7 -0
  898. package/dist/vue/components/Chart/Chart.vue.js.map +1 -0
  899. package/dist/vue/components/Chart/Chart.vue_vue_type_script_setup_true_lang.js +47 -0
  900. package/dist/vue/components/Chart/Chart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  901. package/dist/vue/components/Chart/DepthChart.vue.d.ts +139 -0
  902. package/dist/vue/components/Chart/DepthChart.vue.js +7 -0
  903. package/dist/vue/components/Chart/DepthChart.vue.js.map +1 -0
  904. package/dist/vue/components/Chart/DepthChart.vue_vue_type_script_setup_true_lang.js +42 -0
  905. package/dist/vue/components/Chart/DepthChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  906. package/dist/vue/components/Chart/DonutChart.vue.d.ts +104 -0
  907. package/dist/vue/components/Chart/DonutChart.vue.js +7 -0
  908. package/dist/vue/components/Chart/DonutChart.vue.js.map +1 -0
  909. package/dist/vue/components/Chart/DonutChart.vue_vue_type_script_setup_true_lang.js +53 -0
  910. package/dist/vue/components/Chart/DonutChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  911. package/dist/vue/components/Chart/FunnelChart.vue.d.ts +105 -0
  912. package/dist/vue/components/Chart/FunnelChart.vue.js +7 -0
  913. package/dist/vue/components/Chart/FunnelChart.vue.js.map +1 -0
  914. package/dist/vue/components/Chart/FunnelChart.vue_vue_type_script_setup_true_lang.js +58 -0
  915. package/dist/vue/components/Chart/FunnelChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  916. package/dist/vue/components/Chart/GanttChart.vue.d.ts +132 -0
  917. package/dist/vue/components/Chart/GanttChart.vue.js +7 -0
  918. package/dist/vue/components/Chart/GanttChart.vue.js.map +1 -0
  919. package/dist/vue/components/Chart/GanttChart.vue_vue_type_script_setup_true_lang.js +98 -0
  920. package/dist/vue/components/Chart/GanttChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  921. package/dist/vue/components/Chart/GaugeChart.vue.d.ts +132 -0
  922. package/dist/vue/components/Chart/GaugeChart.vue.js +7 -0
  923. package/dist/vue/components/Chart/GaugeChart.vue.js.map +1 -0
  924. package/dist/vue/components/Chart/GaugeChart.vue_vue_type_script_setup_true_lang.js +71 -0
  925. package/dist/vue/components/Chart/GaugeChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  926. package/dist/vue/components/Chart/HeatmapChart.vue.d.ts +125 -0
  927. package/dist/vue/components/Chart/HeatmapChart.vue.js +7 -0
  928. package/dist/vue/components/Chart/HeatmapChart.vue.js.map +1 -0
  929. package/dist/vue/components/Chart/HeatmapChart.vue_vue_type_script_setup_true_lang.js +65 -0
  930. package/dist/vue/components/Chart/HeatmapChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  931. package/dist/vue/components/Chart/HistogramChart.vue.d.ts +132 -0
  932. package/dist/vue/components/Chart/HistogramChart.vue.js +7 -0
  933. package/dist/vue/components/Chart/HistogramChart.vue.js.map +1 -0
  934. package/dist/vue/components/Chart/HistogramChart.vue_vue_type_script_setup_true_lang.js +66 -0
  935. package/dist/vue/components/Chart/HistogramChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  936. package/dist/vue/components/Chart/HorizontalBarChart.vue.d.ts +121 -0
  937. package/dist/vue/components/Chart/HorizontalBarChart.vue.js +7 -0
  938. package/dist/vue/components/Chart/HorizontalBarChart.vue.js.map +1 -0
  939. package/dist/vue/components/Chart/HorizontalBarChart.vue_vue_type_script_setup_true_lang.js +55 -0
  940. package/dist/vue/components/Chart/HorizontalBarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  941. package/dist/vue/components/Chart/Line3DChart.vue.d.ts +121 -0
  942. package/dist/vue/components/Chart/Line3DChart.vue.js +7 -0
  943. package/dist/vue/components/Chart/Line3DChart.vue.js.map +1 -0
  944. package/dist/vue/components/Chart/Line3DChart.vue_vue_type_script_setup_true_lang.js +47 -0
  945. package/dist/vue/components/Chart/Line3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  946. package/dist/vue/components/Chart/LineChart.vue.d.ts +125 -0
  947. package/dist/vue/components/Chart/LineChart.vue.js +7 -0
  948. package/dist/vue/components/Chart/LineChart.vue.js.map +1 -0
  949. package/dist/vue/components/Chart/LineChart.vue_vue_type_script_setup_true_lang.js +50 -0
  950. package/dist/vue/components/Chart/LineChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  951. package/dist/vue/components/Chart/MixedChart.vue.d.ts +103 -0
  952. package/dist/vue/components/Chart/MixedChart.vue.js +7 -0
  953. package/dist/vue/components/Chart/MixedChart.vue.js.map +1 -0
  954. package/dist/vue/components/Chart/MixedChart.vue_vue_type_script_setup_true_lang.js +47 -0
  955. package/dist/vue/components/Chart/MixedChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  956. package/dist/vue/components/Chart/OrderBook.vue.d.ts +125 -0
  957. package/dist/vue/components/Chart/OrderBook.vue.js +7 -0
  958. package/dist/vue/components/Chart/OrderBook.vue.js.map +1 -0
  959. package/dist/vue/components/Chart/OrderBook.vue_vue_type_script_setup_true_lang.js +38 -0
  960. package/dist/vue/components/Chart/OrderBook.vue_vue_type_script_setup_true_lang.js.map +1 -0
  961. package/dist/vue/components/Chart/OrderBookHeatmap.vue.d.ts +128 -0
  962. package/dist/vue/components/Chart/OrderBookHeatmap.vue.js +7 -0
  963. package/dist/vue/components/Chart/OrderBookHeatmap.vue.js.map +1 -0
  964. package/dist/vue/components/Chart/OrderBookHeatmap.vue_vue_type_script_setup_true_lang.js +46 -0
  965. package/dist/vue/components/Chart/OrderBookHeatmap.vue_vue_type_script_setup_true_lang.js.map +1 -0
  966. package/dist/vue/components/Chart/PieChart.vue.d.ts +104 -0
  967. package/dist/vue/components/Chart/PieChart.vue.js +7 -0
  968. package/dist/vue/components/Chart/PieChart.vue.js.map +1 -0
  969. package/dist/vue/components/Chart/PieChart.vue_vue_type_script_setup_true_lang.js +53 -0
  970. package/dist/vue/components/Chart/PieChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  971. package/dist/vue/components/Chart/QuadrantChart.vue.d.ts +186 -0
  972. package/dist/vue/components/Chart/QuadrantChart.vue.js +7 -0
  973. package/dist/vue/components/Chart/QuadrantChart.vue.js.map +1 -0
  974. package/dist/vue/components/Chart/QuadrantChart.vue_vue_type_script_setup_true_lang.js +107 -0
  975. package/dist/vue/components/Chart/QuadrantChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  976. package/dist/vue/components/Chart/RadarChart.vue.d.ts +111 -0
  977. package/dist/vue/components/Chart/RadarChart.vue.js +7 -0
  978. package/dist/vue/components/Chart/RadarChart.vue.js.map +1 -0
  979. package/dist/vue/components/Chart/RadarChart.vue_vue_type_script_setup_true_lang.js +61 -0
  980. package/dist/vue/components/Chart/RadarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  981. package/dist/vue/components/Chart/RadialBarChart.vue.d.ts +147 -0
  982. package/dist/vue/components/Chart/RadialBarChart.vue.js +7 -0
  983. package/dist/vue/components/Chart/RadialBarChart.vue.js.map +1 -0
  984. package/dist/vue/components/Chart/RadialBarChart.vue_vue_type_script_setup_true_lang.js +78 -0
  985. package/dist/vue/components/Chart/RadialBarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  986. package/dist/vue/components/Chart/RangeAreaChart.vue.d.ts +106 -0
  987. package/dist/vue/components/Chart/RangeAreaChart.vue.js +7 -0
  988. package/dist/vue/components/Chart/RangeAreaChart.vue.js.map +1 -0
  989. package/dist/vue/components/Chart/RangeAreaChart.vue_vue_type_script_setup_true_lang.js +51 -0
  990. package/dist/vue/components/Chart/RangeAreaChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  991. package/dist/vue/components/Chart/SankeyChart.vue.d.ts +132 -0
  992. package/dist/vue/components/Chart/SankeyChart.vue.js +7 -0
  993. package/dist/vue/components/Chart/SankeyChart.vue.js.map +1 -0
  994. package/dist/vue/components/Chart/SankeyChart.vue_vue_type_script_setup_true_lang.js +71 -0
  995. package/dist/vue/components/Chart/SankeyChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  996. package/dist/vue/components/Chart/Scatter3DChart.vue.d.ts +121 -0
  997. package/dist/vue/components/Chart/Scatter3DChart.vue.js +7 -0
  998. package/dist/vue/components/Chart/Scatter3DChart.vue.js.map +1 -0
  999. package/dist/vue/components/Chart/Scatter3DChart.vue_vue_type_script_setup_true_lang.js +47 -0
  1000. package/dist/vue/components/Chart/Scatter3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1001. package/dist/vue/components/Chart/ScatterChart.vue.d.ts +94 -0
  1002. package/dist/vue/components/Chart/ScatterChart.vue.js +7 -0
  1003. package/dist/vue/components/Chart/ScatterChart.vue.js.map +1 -0
  1004. package/dist/vue/components/Chart/ScatterChart.vue_vue_type_script_setup_true_lang.js +44 -0
  1005. package/dist/vue/components/Chart/ScatterChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1006. package/dist/vue/components/Chart/ShapeChart.vue.d.ts +39 -0
  1007. package/dist/vue/components/Chart/ShapeChart.vue.js +7 -0
  1008. package/dist/vue/components/Chart/ShapeChart.vue.js.map +1 -0
  1009. package/dist/vue/components/Chart/ShapeChart.vue_vue_type_script_setup_true_lang.js +43 -0
  1010. package/dist/vue/components/Chart/ShapeChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1011. package/dist/vue/components/Chart/Sparkline.vue.d.ts +90 -0
  1012. package/dist/vue/components/Chart/Sparkline.vue.js +7 -0
  1013. package/dist/vue/components/Chart/Sparkline.vue.js.map +1 -0
  1014. package/dist/vue/components/Chart/Sparkline.vue_vue_type_script_setup_true_lang.js +66 -0
  1015. package/dist/vue/components/Chart/Sparkline.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1016. package/dist/vue/components/Chart/SunburstChart.vue.d.ts +123 -0
  1017. package/dist/vue/components/Chart/SunburstChart.vue.js +7 -0
  1018. package/dist/vue/components/Chart/SunburstChart.vue.js.map +1 -0
  1019. package/dist/vue/components/Chart/SunburstChart.vue_vue_type_script_setup_true_lang.js +68 -0
  1020. package/dist/vue/components/Chart/SunburstChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1021. package/dist/vue/components/Chart/Surface3DChart.vue.d.ts +143 -0
  1022. package/dist/vue/components/Chart/Surface3DChart.vue.js +7 -0
  1023. package/dist/vue/components/Chart/Surface3DChart.vue.js.map +1 -0
  1024. package/dist/vue/components/Chart/Surface3DChart.vue_vue_type_script_setup_true_lang.js +60 -0
  1025. package/dist/vue/components/Chart/Surface3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1026. package/dist/vue/components/Chart/TimeAndSales.vue.d.ts +114 -0
  1027. package/dist/vue/components/Chart/TimeAndSales.vue.js +7 -0
  1028. package/dist/vue/components/Chart/TimeAndSales.vue.js.map +1 -0
  1029. package/dist/vue/components/Chart/TimeAndSales.vue_vue_type_script_setup_true_lang.js +46 -0
  1030. package/dist/vue/components/Chart/TimeAndSales.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1031. package/dist/vue/components/Chart/TradingChart.vue.d.ts +160 -0
  1032. package/dist/vue/components/Chart/TradingChart.vue.js +7 -0
  1033. package/dist/vue/components/Chart/TradingChart.vue.js.map +1 -0
  1034. package/dist/vue/components/Chart/TradingChart.vue_vue_type_script_setup_true_lang.js +70 -0
  1035. package/dist/vue/components/Chart/TradingChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1036. package/dist/vue/components/Chart/TreemapChart.vue.d.ts +97 -0
  1037. package/dist/vue/components/Chart/TreemapChart.vue.js +7 -0
  1038. package/dist/vue/components/Chart/TreemapChart.vue.js.map +1 -0
  1039. package/dist/vue/components/Chart/TreemapChart.vue_vue_type_script_setup_true_lang.js +54 -0
  1040. package/dist/vue/components/Chart/TreemapChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1041. package/dist/vue/components/Chart/WaterfallChart.vue.d.ts +132 -0
  1042. package/dist/vue/components/Chart/WaterfallChart.vue.js +7 -0
  1043. package/dist/vue/components/Chart/WaterfallChart.vue.js.map +1 -0
  1044. package/dist/vue/components/Chart/WaterfallChart.vue_vue_type_script_setup_true_lang.js +68 -0
  1045. package/dist/vue/components/Chart/WaterfallChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1046. package/dist/vue/components/Chart/cartesian.d.ts +47 -0
  1047. package/dist/vue/components/Chart/cartesian.js +56 -0
  1048. package/dist/vue/components/Chart/cartesian.js.map +1 -0
  1049. package/dist/vue/components/Chart/engine.d.ts +35 -0
  1050. package/dist/vue/components/Chart/engine.js +35 -0
  1051. package/dist/vue/components/Chart/engine.js.map +1 -0
  1052. package/dist/vue/components/Chart/index.d.ts +41 -0
  1053. package/dist/vue/components/Chart/index.js +40 -0
  1054. package/dist/vue/components/Chart/orderbook.d.ts +359 -0
  1055. package/dist/vue/components/Chart/orderbook.js +126 -0
  1056. package/dist/vue/components/Chart/orderbook.js.map +1 -0
  1057. package/dist/vue/components/Chart/props.d.ts +188 -0
  1058. package/dist/vue/components/Chart/props.js +92 -0
  1059. package/dist/vue/components/Chart/props.js.map +1 -0
  1060. package/dist/vue/components/Chart/shape.d.ts +41 -0
  1061. package/dist/vue/components/Chart/shape.js +42 -0
  1062. package/dist/vue/components/Chart/shape.js.map +1 -0
  1063. package/dist/vue/components/Chart/three-d.d.ts +106 -0
  1064. package/dist/vue/components/Chart/three-d.js +88 -0
  1065. package/dist/vue/components/Chart/three-d.js.map +1 -0
  1066. package/dist/vue/components/Chart/trading.d.ts +105 -0
  1067. package/dist/vue/components/Chart/trading.js +55 -0
  1068. package/dist/vue/components/Chart/trading.js.map +1 -0
  1069. package/dist/vue/components/Chart/types.d.ts +137 -0
  1070. package/dist/vue/global.d.ts +38 -0
  1071. package/dist/vue/groups/charts.d.ts +1 -0
  1072. package/dist/vue/groups/charts.js +87 -0
  1073. package/dist/vue/groups/charts.js.map +1 -0
  1074. package/dist/vue/index.d.ts +1 -0
  1075. package/dist/vue/index.js +63 -23
  1076. package/dist/vue/plugin.js +12 -10
  1077. package/dist/vue/plugin.js.map +1 -1
  1078. package/dist/weapp/area-chart/index.js +1 -0
  1079. package/dist/weapp/area-chart/index.json +1 -0
  1080. package/dist/weapp/area-chart/index.wxml +1 -0
  1081. package/dist/weapp/area-chart/index.wxss +1 -0
  1082. package/dist/weapp/box-plot-chart/index.js +1 -0
  1083. package/dist/weapp/box-plot-chart/index.json +1 -0
  1084. package/dist/weapp/box-plot-chart/index.wxml +1 -0
  1085. package/dist/weapp/box-plot-chart/index.wxss +1 -0
  1086. package/dist/weapp/bubble-chart/index.js +1 -0
  1087. package/dist/weapp/bubble-chart/index.json +1 -0
  1088. package/dist/weapp/bubble-chart/index.wxml +1 -0
  1089. package/dist/weapp/bubble-chart/index.wxss +1 -0
  1090. package/dist/weapp/bullet-chart/index.js +1 -0
  1091. package/dist/weapp/bullet-chart/index.json +1 -0
  1092. package/dist/weapp/bullet-chart/index.wxml +1 -0
  1093. package/dist/weapp/bullet-chart/index.wxss +1 -0
  1094. package/dist/weapp/calendar-heatmap/index.js +1 -0
  1095. package/dist/weapp/calendar-heatmap/index.json +1 -0
  1096. package/dist/weapp/calendar-heatmap/index.wxml +1 -0
  1097. package/dist/weapp/calendar-heatmap/index.wxss +1 -0
  1098. package/dist/weapp/candlestick-chart/index.js +1 -0
  1099. package/dist/weapp/candlestick-chart/index.json +1 -0
  1100. package/dist/weapp/candlestick-chart/index.wxml +1 -0
  1101. package/dist/weapp/candlestick-chart/index.wxss +1 -0
  1102. package/dist/weapp/charts/canvas.js +11436 -0
  1103. package/dist/weapp/charts/core.d.ts +2 -0
  1104. package/dist/weapp/charts/core.js +41 -0
  1105. package/dist/weapp/controls.js +1428 -3732
  1106. package/dist/weapp/donut-chart/index.js +1 -0
  1107. package/dist/weapp/donut-chart/index.json +1 -0
  1108. package/dist/weapp/donut-chart/index.wxml +1 -0
  1109. package/dist/weapp/donut-chart/index.wxss +1 -0
  1110. package/dist/weapp/funnel-chart/index.js +1 -0
  1111. package/dist/weapp/funnel-chart/index.json +1 -0
  1112. package/dist/weapp/funnel-chart/index.wxml +1 -0
  1113. package/dist/weapp/funnel-chart/index.wxss +1 -0
  1114. package/dist/weapp/gantt-chart/index.js +1 -0
  1115. package/dist/weapp/gantt-chart/index.json +1 -0
  1116. package/dist/weapp/gantt-chart/index.wxml +1 -0
  1117. package/dist/weapp/gantt-chart/index.wxss +1 -0
  1118. package/dist/weapp/gauge-chart/index.js +1 -0
  1119. package/dist/weapp/gauge-chart/index.json +1 -0
  1120. package/dist/weapp/gauge-chart/index.wxml +1 -0
  1121. package/dist/weapp/gauge-chart/index.wxss +1 -0
  1122. package/dist/weapp/heatmap-chart/index.js +1 -0
  1123. package/dist/weapp/heatmap-chart/index.json +1 -0
  1124. package/dist/weapp/heatmap-chart/index.wxml +1 -0
  1125. package/dist/weapp/heatmap-chart/index.wxss +1 -0
  1126. package/dist/weapp/histogram-chart/index.js +1 -0
  1127. package/dist/weapp/histogram-chart/index.json +1 -0
  1128. package/dist/weapp/histogram-chart/index.wxml +1 -0
  1129. package/dist/weapp/histogram-chart/index.wxss +1 -0
  1130. package/dist/weapp/horizontal-bar-chart/index.js +1 -0
  1131. package/dist/weapp/horizontal-bar-chart/index.json +1 -0
  1132. package/dist/weapp/horizontal-bar-chart/index.wxml +1 -0
  1133. package/dist/weapp/horizontal-bar-chart/index.wxss +1 -0
  1134. package/dist/weapp/mixed-chart/index.js +1 -0
  1135. package/dist/weapp/mixed-chart/index.json +1 -0
  1136. package/dist/weapp/mixed-chart/index.wxml +1 -0
  1137. package/dist/weapp/mixed-chart/index.wxss +1 -0
  1138. package/dist/weapp/pie-chart/index.js +1 -0
  1139. package/dist/weapp/pie-chart/index.json +1 -0
  1140. package/dist/weapp/pie-chart/index.wxml +1 -0
  1141. package/dist/weapp/pie-chart/index.wxss +1 -0
  1142. package/dist/weapp/radar-chart/index.js +1 -0
  1143. package/dist/weapp/radar-chart/index.json +1 -0
  1144. package/dist/weapp/radar-chart/index.wxml +1 -0
  1145. package/dist/weapp/radar-chart/index.wxss +1 -0
  1146. package/dist/weapp/radial-bar-chart/index.js +1 -0
  1147. package/dist/weapp/radial-bar-chart/index.json +1 -0
  1148. package/dist/weapp/radial-bar-chart/index.wxml +1 -0
  1149. package/dist/weapp/radial-bar-chart/index.wxss +1 -0
  1150. package/dist/weapp/range-area-chart/index.js +1 -0
  1151. package/dist/weapp/range-area-chart/index.json +1 -0
  1152. package/dist/weapp/range-area-chart/index.wxml +1 -0
  1153. package/dist/weapp/range-area-chart/index.wxss +1 -0
  1154. package/dist/weapp/sankey-chart/index.js +1 -0
  1155. package/dist/weapp/sankey-chart/index.json +1 -0
  1156. package/dist/weapp/sankey-chart/index.wxml +1 -0
  1157. package/dist/weapp/sankey-chart/index.wxss +1 -0
  1158. package/dist/weapp/shape-chart/index.js +1 -0
  1159. package/dist/weapp/shape-chart/index.json +1 -0
  1160. package/dist/weapp/shape-chart/index.wxml +1 -0
  1161. package/dist/weapp/shape-chart/index.wxss +1 -0
  1162. package/dist/weapp/sparkline/index.js +1 -0
  1163. package/dist/weapp/sparkline/index.json +1 -0
  1164. package/dist/weapp/sparkline/index.wxml +1 -0
  1165. package/dist/weapp/sparkline/index.wxss +1 -0
  1166. package/dist/weapp/sunburst-chart/index.js +1 -0
  1167. package/dist/weapp/sunburst-chart/index.json +1 -0
  1168. package/dist/weapp/sunburst-chart/index.wxml +1 -0
  1169. package/dist/weapp/sunburst-chart/index.wxss +1 -0
  1170. package/dist/weapp/treemap-chart/index.js +1 -0
  1171. package/dist/weapp/treemap-chart/index.json +1 -0
  1172. package/dist/weapp/treemap-chart/index.wxml +1 -0
  1173. package/dist/weapp/treemap-chart/index.wxss +1 -0
  1174. package/dist/weapp/types.d.ts +466 -0
  1175. package/dist/weapp/waterfall-chart/index.js +1 -0
  1176. package/dist/weapp/waterfall-chart/index.json +1 -0
  1177. package/dist/weapp/waterfall-chart/index.wxml +1 -0
  1178. package/dist/weapp/waterfall-chart/index.wxss +1 -0
  1179. package/dist/web-components/components/chart/chart.d.ts +58 -0
  1180. package/dist/web-components/components/chart/chart.js +55 -0
  1181. package/dist/web-components/components/chart/chart.js.map +1 -0
  1182. package/dist/web-components/components/chart/charts.d.ts +252 -0
  1183. package/dist/web-components/components/chart/charts.js +201 -0
  1184. package/dist/web-components/components/chart/charts.js.map +1 -0
  1185. package/dist/web-components/components/chart/engine-element.d.ts +53 -0
  1186. package/dist/web-components/components/chart/engine-element.js +77 -0
  1187. package/dist/web-components/components/chart/engine-element.js.map +1 -0
  1188. package/dist/web-components/components/chart/extended.d.ts +224 -0
  1189. package/dist/web-components/components/chart/extended.js +183 -0
  1190. package/dist/web-components/components/chart/extended.js.map +1 -0
  1191. package/dist/web-components/components/chart/series.d.ts +7 -0
  1192. package/dist/web-components/components/chart/series.js +14 -0
  1193. package/dist/web-components/components/chart/series.js.map +1 -0
  1194. package/dist/web-components/components/chart/shape-chart.d.ts +199 -0
  1195. package/dist/web-components/components/chart/shape-chart.js +161 -0
  1196. package/dist/web-components/components/chart/shape-chart.js.map +1 -0
  1197. package/dist/web-components/components/chart/shapes-extended.d.ts +162 -0
  1198. package/dist/web-components/components/chart/shapes-extended.js +156 -0
  1199. package/dist/web-components/components/chart/shapes-extended.js.map +1 -0
  1200. package/dist/web-components/components/chart-3d/chart-3d.d.ts +111 -0
  1201. package/dist/web-components/components/chart-3d/chart-3d.js +97 -0
  1202. package/dist/web-components/components/chart-3d/chart-3d.js.map +1 -0
  1203. package/dist/web-components/components/order-book/order-book.d.ts +165 -0
  1204. package/dist/web-components/components/order-book/order-book.js +174 -0
  1205. package/dist/web-components/components/order-book/order-book.js.map +1 -0
  1206. package/dist/web-components/components/trading-chart/trading-chart.d.ts +96 -0
  1207. package/dist/web-components/components/trading-chart/trading-chart.js +96 -0
  1208. package/dist/web-components/components/trading-chart/trading-chart.js.map +1 -0
  1209. package/dist/web-components/elements/chart-3d.d.ts +2 -0
  1210. package/dist/web-components/elements/chart-3d.js +13 -0
  1211. package/dist/web-components/elements/chart-3d.js.map +1 -0
  1212. package/dist/web-components/elements/chart.d.ts +7 -0
  1213. package/dist/web-components/elements/chart.js +43 -0
  1214. package/dist/web-components/elements/chart.js.map +1 -0
  1215. package/dist/web-components/elements/order-book.d.ts +2 -0
  1216. package/dist/web-components/elements/order-book.js +13 -0
  1217. package/dist/web-components/elements/order-book.js.map +1 -0
  1218. package/dist/web-components/elements/trading-chart.d.ts +2 -0
  1219. package/dist/web-components/elements/trading-chart.js +8 -0
  1220. package/dist/web-components/elements/trading-chart.js.map +1 -0
  1221. package/dist/web-components/html-custom-data.json +1192 -29
  1222. package/dist/web-components/types/react.d.ts +435 -0
  1223. package/dist/web-components/types/solid.d.ts +321 -0
  1224. package/dist/web-components/types/svelte.d.ts +321 -0
  1225. package/dist/web-components/types/vue.d.ts +359 -0
  1226. package/package.json +113 -1
@@ -1,2 +1,2 @@
1
- const e=require("./color.cjs");var t=(e,t=e.fontSize,n=400)=>`${n} ${t}px ${e.fontFamily}`,n=e=>Math.round(e)+.5,r=(e,t,n,r)=>{let{plot:i}=t,a=e.x===void 0?i.x+i.width/2:t.xToPx(e.x),o=e.y===void 0?i.y+i.height/2:t.yToPx(e.y),s=a-n/2,c=o-r/2;return e.anchor===`top`?c=o+6:e.anchor===`bottom`?c=o-6-r:e.anchor===`left`?s=a+6:e.anchor===`right`&&(s=a-6-n),s=Math.max(i.x+6,Math.min(s,i.x+i.width-6-n)),c=Math.max(i.y+2,Math.min(c,i.y+i.height-2-r)),{x:s,y:c,width:n,height:r}},i=(e,t)=>{let{plot:n}=t,r=e.x0===void 0?-1/0:t.xToPx(e.x0),i=e.x1===void 0?1/0:t.xToPx(e.x1),a=e.y0===void 0?1/0:t.yToPx(e.y0),o=e.y1===void 0?-1/0:t.yToPx(e.y1),s=Math.max(n.x,Math.min(r,i)),c=Math.min(n.x+n.width,Math.max(r,i)),l=Math.max(n.y,Math.min(a,o)),u=Math.min(n.y+n.height,Math.max(a,o));return{x:s,y:l,width:c-s,height:u-l}},a=(r,a)=>{let{scales:o,theme:s,x:c,y:l,xTicks:u,yTicks:d}=a,{plot:f}=o;r.clearRect(0,0,a.width,a.height),r.save(),r.beginPath(),r.rect(f.x,f.y,f.width,f.height),r.clip();for(let t of a.annotations){if(t.type!==`rect`)continue;let n=i(t,o);n.width<=0||n.height<=0||(r.fillStyle=e.toCss(t.color,t.opacity),r.fillRect(n.x,n.y,n.width,n.height))}if(r.restore(),r.lineWidth=1,r.strokeStyle=e.toCss(s.grid),r.beginPath(),l.grid)for(let e of d.values){let t=n(o.yToPx(e));t<f.y-1||t>f.y+f.height+1||(r.moveTo(f.x,t),r.lineTo(f.x+f.width,t))}if(c.grid)for(let e of u.values){let t=n(o.xToPx(e));t<f.x-1||t>f.x+f.width+1||(r.moveTo(t,f.y),r.lineTo(t,f.y+f.height))}r.stroke();let p=Math.ceil(s.fontSize*1.4);if(r.font=t(s),r.fillStyle=e.toCss(s.textMuted),c.visible){r.strokeStyle=e.toCss(s.axis),r.beginPath();let i=n(f.y+f.height);r.moveTo(f.x,i),r.lineTo(f.x+f.width,i),r.stroke(),r.textBaseline=`top`,r.textAlign=`center`;let l=-1/0,d=u.values.map((e,t)=>({px:o.xToPx(e),text:u.labels[t]})).sort((e,t)=>e.px-t.px);for(let{px:e,text:t}of d){if(e<f.x-.5||e>f.x+f.width+.5)continue;let n=r.measureText(t).width,i=Math.max(0,Math.min(a.width-n,e-n/2));i<l+6||(l=i+n,r.fillText(t,i+n/2,f.y+f.height+7))}c.title&&(r.font=t(s,s.fontSize+1,500),r.fillStyle=e.toCss(s.text,.8),r.fillText(c.title,f.x+f.width/2,f.y+f.height+p+10))}l.visible&&(r.font=t(s),r.fillStyle=e.toCss(s.textMuted),r.textAlign=`right`,r.textBaseline=`middle`,d.values.forEach((e,t)=>{let n=o.yToPx(e);n<f.y-.5||n>f.y+f.height+.5||r.fillText(d.labels[t],f.x-8,n)}),l.title&&(r.save(),r.font=t(s,s.fontSize+1,500),r.fillStyle=e.toCss(s.text,.8),r.translate(p/2+4,f.y+f.height/2),r.rotate(-Math.PI/2),r.textAlign=`center`,r.fillText(l.title,0,0),r.restore()))},o=(e,t)=>e.x<t.x+t.width&&t.x<e.x+e.width&&e.y<t.y+t.height&&t.y<e.y+e.height,s=(e,t)=>e.x>=t.x&&e.y>=t.y&&e.x+e.width<=t.x+t.width&&e.y+e.height<=t.y+t.height,c=(e,t,n,r,i,a)=>{e.lineWidth=3,e.lineJoin=`round`,e.strokeStyle=a,e.strokeText(t,n,r),e.fillStyle=i,e.fillText(t,n,r)},l=(e,t,n,r,i=[])=>{let a=[];for(let c of e){let e=n(c.text),l=c.r+4,u=[{x:c.x+l,y:c.y-r/2,width:e,height:r},{x:c.x-l-e,y:c.y-r/2,width:e,height:r},{x:c.x-e/2,y:c.y-l-r,width:e,height:r},{x:c.x-e/2,y:c.y+l,width:e,height:r}].find(e=>s(e,t)&&!i.some(t=>o(t,e)));u&&(i.push(u),a.push({label:c,box:u}))}return a},u=(a,o)=>{let{scales:s,theme:u}=o,{plot:d}=s;o.clear!==!1&&a.clearRect(0,0,o.width,o.height),a.save(),a.beginPath(),a.rect(d.x,d.y,d.width,d.height),a.clip();let f=e.toCss(u.background,.9),p=[],m=u.fontSize+4;for(let r of o.annotations){if(r.type!==`line`)continue;let i=e.toCss(r.color);if(a.strokeStyle=i,a.lineWidth=r.width,a.setLineDash(r.dash),a.beginPath(),r.axis===`y`){let e=n(s.yToPx(r.value));a.moveTo(d.x,e),a.lineTo(d.x+d.width,e),a.stroke(),r.label&&(a.setLineDash([]),a.font=t(u,u.fontSize,500),a.textAlign=`right`,a.textBaseline=`bottom`,c(a,r.label,d.x+d.width-6,e-3,i,f))}else{let e=n(s.xToPx(r.value));a.moveTo(e,d.y),a.lineTo(e,d.y+d.height),a.stroke(),r.label&&(a.setLineDash([]),a.font=t(u,u.fontSize,500),a.textAlign=`left`,a.textBaseline=`top`,c(a,r.label,e+5,d.y+5,i,f))}}a.setLineDash([]),a.font=t(u,u.fontSize+1,600);for(let t of o.annotations){if(t.type!==`rect`||!t.label)continue;let n=i(t,s);if(n.width<=0||n.height<=0)continue;let r=a.measureText(t.label).width,o=t.labelPosition,c=o.endsWith(`left`)?n.x+10:o.endsWith(`right`)?n.x+n.width-10-r:n.x+(n.width-r)/2,l=o.startsWith(`top`)?n.y+10:o.startsWith(`bottom`)?n.y+n.height-10-m:n.y+(n.height-m)/2;a.textAlign=`left`,a.textBaseline=`top`,a.fillStyle=e.toCss(t.labelColor),a.fillText(t.label,c,l),p.push({x:c,y:l,width:r,height:m})}for(let n of o.annotations){if(n.type!==`text`||!n.text)continue;a.font=t(u,u.fontSize,n.weight);let i=r(n,s,a.measureText(n.text).width,m);a.textAlign=`left`,a.textBaseline=`middle`,c(a,n.text,i.x,i.y+i.height/2,e.toCss(n.color),f),p.push(i)}if(o.pointLabels.length){a.font=t(u),a.textAlign=`left`,a.textBaseline=`middle`;let n=e.toCss(u.text,.85),r=l(o.pointLabels,d,e=>a.measureText(e).width,m-2,p);for(let{label:e,box:t}of r)c(a,e.text,t.x,t.y+t.height/2,n,f)}a.restore()};exports.drawBackground=a,exports.drawForeground=u,exports.font=t,exports.placeLabels=l,exports.textBox=r;
1
+ const e=require("./color.cjs"),t=require("./layout.cjs");var n=(e,t=e.fontSize,n=400)=>`${n} ${t}px ${e.fontFamily}`,r=e=>Math.round(e)+.5,i=(e,n,r,i)=>{let{plot:a}=n,o=t.toScreen(n,e.x??0,e.y??0),s=n.horizontal?{x:e.y===void 0,y:e.x===void 0}:{x:e.x===void 0,y:e.y===void 0},c=s.x?a.x+a.width/2:o.x,l=s.y?a.y+a.height/2:o.y,u=c-r/2,d=l-i/2;return e.anchor===`top`?d=l+6:e.anchor===`bottom`?d=l-6-i:e.anchor===`left`?u=c+6:e.anchor===`right`&&(u=c-6-r),u=Math.max(a.x+6,Math.min(u,a.x+a.width-6-r)),d=Math.max(a.y+2,Math.min(d,a.y+a.height-2-i)),{x:u,y:d,width:r,height:i}},a=(e,n)=>{let{plot:r}=n,[i,a]=n.horizontal?[r.y,r.y+r.height]:[r.x,r.x+r.width],[o,s]=n.horizontal?[r.x,r.x+r.width]:[r.y,r.y+r.height],c=(e,t,n)=>e<t?t:e>n?n:e;return t.screenRect(n,c(n.xToPx(e.x0??-1/0),i,a),c(n.xToPx(e.x1??1/0),i,a),c(n.yToPx(e.y0??-1/0),o,s),c(n.yToPx(e.y1??1/0),o,s))},o=(e,t)=>({vertical:e.axis===`x`!==t.horizontal,at:e.axis===`x`?t.xToPx(e.value):t.yToPx(e.value)}),s=(t,i)=>{let{scales:o,theme:s,xTicks:c,yTicks:l}=i,{plot:u}=o,d=o.horizontal?i.y:i.x,f=o.horizontal?i.x:i.y,p=o.horizontal?l:c,m=o.horizontal?c:l,h=o.horizontal?o.yToPx:o.xToPx,g=o.horizontal?o.xToPx:o.yToPx;t.clearRect(0,0,i.width,i.height),t.save(),t.beginPath(),t.rect(u.x,u.y,u.width,u.height),t.clip();for(let n of i.annotations){if(n.type!==`rect`)continue;let r=a(n,o);r.width<=0||r.height<=0||(t.fillStyle=e.toCss(n.color,n.opacity),t.fillRect(r.x,r.y,r.width,r.height))}if(t.restore(),t.lineWidth=1,t.strokeStyle=e.toCss(s.grid),t.beginPath(),f.grid)for(let e of m.values){let n=r(g(e));n<u.y-1||n>u.y+u.height+1||(t.moveTo(u.x,n),t.lineTo(u.x+u.width,n))}if(d.grid)for(let e of p.values){let n=r(h(e));n<u.x-1||n>u.x+u.width+1||(t.moveTo(n,u.y),t.lineTo(n,u.y+u.height))}t.stroke();let _=Math.ceil(s.fontSize*1.4);if(t.font=n(s),t.fillStyle=e.toCss(s.textMuted),d.visible){t.strokeStyle=e.toCss(s.axis),t.beginPath();let a=r(u.y+u.height);t.moveTo(u.x,a),t.lineTo(u.x+u.width,a),t.stroke(),t.textBaseline=`top`,t.textAlign=`center`;let o=-1/0,c=p.values.map((e,t)=>({px:h(e),text:p.labels[t]})).sort((e,t)=>e.px-t.px);for(let{px:e,text:n}of c){if(e<u.x-.5||e>u.x+u.width+.5)continue;let r=t.measureText(n).width,a=Math.max(0,Math.min(i.width-r,e-r/2));a<o+6||(o=a+r,t.fillText(n,a+r/2,u.y+u.height+7))}d.title&&(t.font=n(s,s.fontSize+1,500),t.fillStyle=e.toCss(s.text,.8),t.fillText(d.title,u.x+u.width/2,u.y+u.height+_+10))}if(f.visible){t.font=n(s),t.fillStyle=e.toCss(s.textMuted),t.textAlign=`right`,t.textBaseline=`middle`;let r=-1/0,i=m.values.map((e,t)=>({py:g(e),text:m.labels[t]})).sort((e,t)=>e.py-t.py),a=s.fontSize+2;for(let{py:e,text:n}of i)if(!(e<u.y-.5||e>u.y+u.height+.5)){if(o.horizontal){if(e-a/2<r)continue;r=e+a/2}t.fillText(n,u.x-8,e)}f.title&&(t.save(),t.font=n(s,s.fontSize+1,500),t.fillStyle=e.toCss(s.text,.8),t.translate(_/2+4,u.y+u.height/2),t.rotate(-Math.PI/2),t.textAlign=`center`,t.fillText(f.title,0,0),t.restore())}let v=o.horizontal?null:i.y2,y=i.y2Ticks;if(v&&y&&v.visible){let r=u.x+u.width;t.font=n(s),t.fillStyle=e.toCss(s.textMuted),t.textAlign=`left`,t.textBaseline=`middle`,y.values.forEach((e,n)=>{let i=o.yToPx(e);i<u.y-.5||i>u.y+u.height+.5||t.fillText(y.labels[n],r+8,i)}),v.title&&(t.save(),t.font=n(s,s.fontSize+1,500),t.fillStyle=e.toCss(s.text,.8),t.translate(i.width-_/2-4,u.y+u.height/2),t.rotate(Math.PI/2),t.textAlign=`center`,t.fillText(v.title,0,0),t.restore())}},c=(e,t)=>e.x<t.x+t.width&&t.x<e.x+e.width&&e.y<t.y+t.height&&t.y<e.y+e.height,l=(e,t)=>e.x>=t.x&&e.y>=t.y&&e.x+e.width<=t.x+t.width&&e.y+e.height<=t.y+t.height,u=(e,t,n,r,i,a)=>{e.lineWidth=3,e.lineJoin=`round`,e.strokeStyle=a,e.strokeText(t,n,r),e.fillStyle=i,e.fillText(t,n,r)},d=(e,t,n,r,i=[])=>{let a=[];for(let o of e){let e=n(o.text),s=o.r+4,u={x:o.x-e/2,y:o.y-s-r,width:e,height:r},d={x:o.x-e/2,y:o.y+s,width:e,height:r},f={x:o.x+s,y:o.y-r/2,width:e,height:r},p={x:o.x-s-e,y:o.y-r/2,width:e,height:r},m=(o.placement===`above`?[u]:o.placement===`below`?[d]:o.placement===`right`?[f,p]:o.placement===`left`?[p,f]:[{x:o.x+s,y:o.y-r/2,width:e,height:r},{x:o.x-s-e,y:o.y-r/2,width:e,height:r},u,d]).find(e=>l(e,t)&&!i.some(t=>c(t,e)));m&&(i.push(m),a.push({label:o,box:m}))}return a},f=(t,s)=>{let{scales:c,theme:l}=s,{plot:f}=c;s.clear!==!1&&t.clearRect(0,0,s.width,s.height),t.save(),t.beginPath(),t.rect(f.x,f.y,f.width,f.height),t.clip();let p=e.toCss(l.background,.9),m=[],h=l.fontSize+4;for(let i of s.annotations){if(i.type!==`line`)continue;let a=e.toCss(i.color);t.strokeStyle=a,t.lineWidth=i.width,t.setLineDash(i.dash),t.beginPath();let s=o(i,c);if(s.vertical){let e=r(s.at);t.moveTo(e,f.y),t.lineTo(e,f.y+f.height),t.stroke(),i.label&&(t.setLineDash([]),t.font=n(l,l.fontSize,500),t.textAlign=`left`,t.textBaseline=`top`,u(t,i.label,e+5,f.y+5,a,p))}else{let e=r(s.at);t.moveTo(f.x,e),t.lineTo(f.x+f.width,e),t.stroke(),i.label&&(t.setLineDash([]),t.font=n(l,l.fontSize,500),t.textAlign=`right`,t.textBaseline=`bottom`,u(t,i.label,f.x+f.width-6,e-3,a,p))}}t.setLineDash([]),t.font=n(l,l.fontSize+1,600);for(let n of s.annotations){if(n.type!==`rect`||!n.label)continue;let r=a(n,c);if(r.width<=0||r.height<=0)continue;let i=t.measureText(n.label).width,o=n.labelPosition,s=o.endsWith(`left`)?r.x+10:o.endsWith(`right`)?r.x+r.width-10-i:r.x+(r.width-i)/2,l=o.startsWith(`top`)?r.y+10:o.startsWith(`bottom`)?r.y+r.height-10-h:r.y+(r.height-h)/2;t.textAlign=`left`,t.textBaseline=`top`,t.fillStyle=e.toCss(n.labelColor),t.fillText(n.label,s,l),m.push({x:s,y:l,width:i,height:h})}for(let r of s.annotations){if(r.type!==`text`||!r.text)continue;t.font=n(l,l.fontSize,r.weight);let a=i(r,c,t.measureText(r.text).width,h);t.textAlign=`left`,t.textBaseline=`middle`,u(t,r.text,a.x,a.y+a.height/2,e.toCss(r.color),p),m.push(a)}if(s.pointLabels.length){t.font=n(l),t.textAlign=`left`,t.textBaseline=`middle`;let r=e.toCss(l.text,.85),i=d(s.pointLabels,f,e=>t.measureText(e).width,h-2,m);for(let{label:e,box:n}of i)u(t,e.text,n.x,n.y+n.height/2,r,p)}t.restore()};exports.drawBackground=s,exports.drawForeground=f,exports.font=n,exports.lineOf=o,exports.placeLabels=d,exports.rectOf=a,exports.textBox=i;
2
2
  //# sourceMappingURL=overlay.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"overlay.cjs","names":["toCss","require_color","font","theme","weight","size","crisp","v","textBox","s","px","a","plot","py","x","width","y","height","rectOf","xa","xb","ya","yb","left","right","top","bottom","drawBackground","input","scales","ctx","r","yTicks","xTicks","line","base","lastRight","order","i","b","w","text","overlaps","inside","haloText","halo","color","placeLabels","placed","label","labels","measure","gap","box","c","occupied","o","drawForeground","labelHeight","pos","tx","ty","textColor","t"],"sources":["../../../../charts/src/engine/overlay.ts"],"sourcesContent":["// Canvas2D layers around the data: background (areas, grid, axes, tick\n// labels) and foreground (reference lines, annotation and point labels).\n\nimport { toCss, type Rgba } from \"./color\";\nimport type { AxisTicks } from \"./axis\";\nimport type { Rect, Scales } from \"./layout\";\nimport type { AxisModel } from \"./model\";\nimport type { ChartTheme } from \"./theme\";\nimport type { ChartLabelPosition } from \"./types\";\n\nexport interface ResolvedRect {\n type: \"rect\";\n x0?: number;\n x1?: number;\n y0?: number;\n y1?: number;\n color: Rgba;\n opacity: number;\n label?: string;\n labelPosition: ChartLabelPosition;\n labelColor: Rgba;\n}\n\nexport interface ResolvedLine {\n type: \"line\";\n axis: \"x\" | \"y\";\n value: number;\n color: Rgba;\n width: number;\n dash: number[];\n label?: string;\n}\n\nexport interface ResolvedText {\n type: \"text\";\n x?: number;\n y?: number;\n text: string;\n anchor: \"center\" | \"top\" | \"bottom\" | \"left\" | \"right\";\n color: Rgba;\n weight: number;\n}\n\nexport type ResolvedAnnotation = ResolvedRect | ResolvedLine | ResolvedText;\n\nexport interface PointLabel {\n x: number;\n y: number;\n /** Radius of the dot */\n r: number;\n text: string;\n}\n\nexport const font = (theme: ChartTheme, size = theme.fontSize, weight = 400) =>\n `${weight} ${size}px ${theme.fontFamily}`;\n\nconst crisp = (v: number) => Math.round(v) + 0.5;\n\n/** Box of a text annotation, kept inside the plot */\nexport const textBox = (\n a: ResolvedText,\n s: Scales,\n width: number,\n height: number,\n): Rect => {\n const { plot } = s;\n const px = a.x === undefined ? plot.x + plot.width / 2 : s.xToPx(a.x);\n const py = a.y === undefined ? plot.y + plot.height / 2 : s.yToPx(a.y);\n const gap = 6;\n let x = px - width / 2;\n let y = py - height / 2;\n if (a.anchor === \"top\") y = py + gap;\n else if (a.anchor === \"bottom\") y = py - gap - height;\n else if (a.anchor === \"left\") x = px + gap;\n else if (a.anchor === \"right\") x = px - gap - width;\n x = Math.max(plot.x + gap, Math.min(x, plot.x + plot.width - gap - width));\n y = Math.max(plot.y + 2, Math.min(y, plot.y + plot.height - 2 - height));\n return { x, y, width, height };\n};\n\nconst rectOf = (a: ResolvedRect, s: Scales): Rect => {\n const { plot } = s;\n const xa = a.x0 === undefined ? -Infinity : s.xToPx(a.x0);\n const xb = a.x1 === undefined ? Infinity : s.xToPx(a.x1);\n const ya = a.y0 === undefined ? Infinity : s.yToPx(a.y0);\n const yb = a.y1 === undefined ? -Infinity : s.yToPx(a.y1);\n const left = Math.max(plot.x, Math.min(xa, xb));\n const right = Math.min(plot.x + plot.width, Math.max(xa, xb));\n const top = Math.max(plot.y, Math.min(ya, yb));\n const bottom = Math.min(plot.y + plot.height, Math.max(ya, yb));\n return { x: left, y: top, width: right - left, height: bottom - top };\n};\n\nexport interface BackgroundInput {\n width: number;\n height: number;\n scales: Scales;\n x: AxisModel;\n y: AxisModel;\n xTicks: AxisTicks;\n yTicks: AxisTicks;\n theme: ChartTheme;\n annotations: readonly ResolvedAnnotation[];\n}\n\nexport const drawBackground = (\n ctx: CanvasRenderingContext2D,\n input: BackgroundInput,\n) => {\n const { scales, theme, x, y, xTicks, yTicks } = input;\n const { plot } = scales;\n ctx.clearRect(0, 0, input.width, input.height);\n\n // areas\n ctx.save();\n ctx.beginPath();\n ctx.rect(plot.x, plot.y, plot.width, plot.height);\n ctx.clip();\n for (const a of input.annotations) {\n if (a.type !== \"rect\") continue;\n const r = rectOf(a, scales);\n if (r.width <= 0 || r.height <= 0) continue;\n ctx.fillStyle = toCss(a.color, a.opacity);\n ctx.fillRect(r.x, r.y, r.width, r.height);\n }\n ctx.restore();\n\n // grid\n ctx.lineWidth = 1;\n ctx.strokeStyle = toCss(theme.grid);\n ctx.beginPath();\n if (y.grid) {\n for (const v of yTicks.values) {\n const py = crisp(scales.yToPx(v));\n if (py < plot.y - 1 || py > plot.y + plot.height + 1) continue;\n ctx.moveTo(plot.x, py);\n ctx.lineTo(plot.x + plot.width, py);\n }\n }\n if (x.grid) {\n for (const v of xTicks.values) {\n const px = crisp(scales.xToPx(v));\n if (px < plot.x - 1 || px > plot.x + plot.width + 1) continue;\n ctx.moveTo(px, plot.y);\n ctx.lineTo(px, plot.y + plot.height);\n }\n }\n ctx.stroke();\n\n const line = Math.ceil(theme.fontSize * 1.4);\n ctx.font = font(theme);\n ctx.fillStyle = toCss(theme.textMuted);\n\n // x axis\n if (x.visible) {\n ctx.strokeStyle = toCss(theme.axis);\n ctx.beginPath();\n const base = crisp(plot.y + plot.height);\n ctx.moveTo(plot.x, base);\n ctx.lineTo(plot.x + plot.width, base);\n ctx.stroke();\n ctx.textBaseline = \"top\";\n ctx.textAlign = \"center\";\n let lastRight = -Infinity;\n // left to right (reversed axes list their ticks right to left)\n const order = xTicks.values\n .map((v, i) => ({ px: scales.xToPx(v), text: xTicks.labels[i] }))\n .sort((a, b) => a.px - b.px);\n for (const { px, text } of order) {\n if (px < plot.x - 0.5 || px > plot.x + plot.width + 0.5) continue;\n const w = ctx.measureText(text).width;\n const left = Math.max(0, Math.min(input.width - w, px - w / 2));\n if (left < lastRight + 6) continue;\n lastRight = left + w;\n ctx.fillText(text, left + w / 2, plot.y + plot.height + 7);\n }\n if (x.title) {\n ctx.font = font(theme, theme.fontSize + 1, 500);\n ctx.fillStyle = toCss(theme.text, 0.8);\n ctx.fillText(\n x.title,\n plot.x + plot.width / 2,\n plot.y + plot.height + line + 10,\n );\n }\n }\n\n // y axis\n if (y.visible) {\n ctx.font = font(theme);\n ctx.fillStyle = toCss(theme.textMuted);\n ctx.textAlign = \"right\";\n ctx.textBaseline = \"middle\";\n yTicks.values.forEach((v, i) => {\n const py = scales.yToPx(v);\n if (py < plot.y - 0.5 || py > plot.y + plot.height + 0.5) return;\n ctx.fillText(yTicks.labels[i], plot.x - 8, py);\n });\n if (y.title) {\n ctx.save();\n ctx.font = font(theme, theme.fontSize + 1, 500);\n ctx.fillStyle = toCss(theme.text, 0.8);\n ctx.translate(line / 2 + 4, plot.y + plot.height / 2);\n ctx.rotate(-Math.PI / 2);\n ctx.textAlign = \"center\";\n ctx.fillText(y.title, 0, 0);\n ctx.restore();\n }\n }\n};\n\nconst overlaps = (a: Rect, b: Rect) =>\n a.x < b.x + b.width &&\n b.x < a.x + a.width &&\n a.y < b.y + b.height &&\n b.y < a.y + a.height;\n\nconst inside = (r: Rect, plot: Rect) =>\n r.x >= plot.x &&\n r.y >= plot.y &&\n r.x + r.width <= plot.x + plot.width &&\n r.y + r.height <= plot.y + plot.height;\n\n/** Text with a halo in the background color (readable over data) */\nconst haloText = (\n ctx: CanvasRenderingContext2D,\n text: string,\n x: number,\n y: number,\n color: string,\n halo: string,\n) => {\n ctx.lineWidth = 3;\n ctx.lineJoin = \"round\";\n ctx.strokeStyle = halo;\n ctx.strokeText(text, x, y);\n ctx.fillStyle = color;\n ctx.fillText(text, x, y);\n};\n\n/** Greedy placement: right, left, above, below the dot; skipped when no slot is free */\nexport const placeLabels = (\n labels: readonly PointLabel[],\n plot: Rect,\n measure: (text: string) => number,\n height: number,\n occupied: Rect[] = [],\n): { label: PointLabel; box: Rect }[] => {\n const placed: { label: PointLabel; box: Rect }[] = [];\n for (const label of labels) {\n const w = measure(label.text);\n const gap = label.r + 4;\n const candidates: Rect[] = [\n { x: label.x + gap, y: label.y - height / 2, width: w, height },\n { x: label.x - gap - w, y: label.y - height / 2, width: w, height },\n { x: label.x - w / 2, y: label.y - gap - height, width: w, height },\n { x: label.x - w / 2, y: label.y + gap, width: w, height },\n ];\n const box = candidates.find(\n (c) => inside(c, plot) && !occupied.some((o) => overlaps(o, c)),\n );\n if (!box) continue;\n occupied.push(box);\n placed.push({ label, box });\n }\n return placed;\n};\n\nexport interface ForegroundInput {\n width: number;\n height: number;\n scales: Scales;\n theme: ChartTheme;\n annotations: readonly ResolvedAnnotation[];\n pointLabels: readonly PointLabel[];\n /**\n * Clears the canvas first (off when the layers share one canvas)\n * @default true\n */\n clear?: boolean;\n}\n\nexport const drawForeground = (\n ctx: CanvasRenderingContext2D,\n input: ForegroundInput,\n) => {\n const { scales, theme } = input;\n const { plot } = scales;\n if (input.clear !== false) ctx.clearRect(0, 0, input.width, input.height);\n ctx.save();\n ctx.beginPath();\n ctx.rect(plot.x, plot.y, plot.width, plot.height);\n ctx.clip();\n\n const halo = toCss(theme.background, 0.9);\n const occupied: Rect[] = [];\n const labelHeight = theme.fontSize + 4;\n\n for (const a of input.annotations) {\n if (a.type !== \"line\") continue;\n const color = toCss(a.color);\n ctx.strokeStyle = color;\n ctx.lineWidth = a.width;\n ctx.setLineDash(a.dash);\n ctx.beginPath();\n if (a.axis === \"y\") {\n const py = crisp(scales.yToPx(a.value));\n ctx.moveTo(plot.x, py);\n ctx.lineTo(plot.x + plot.width, py);\n ctx.stroke();\n if (a.label) {\n ctx.setLineDash([]);\n ctx.font = font(theme, theme.fontSize, 500);\n ctx.textAlign = \"right\";\n ctx.textBaseline = \"bottom\";\n haloText(ctx, a.label, plot.x + plot.width - 6, py - 3, color, halo);\n }\n } else {\n const px = crisp(scales.xToPx(a.value));\n ctx.moveTo(px, plot.y);\n ctx.lineTo(px, plot.y + plot.height);\n ctx.stroke();\n if (a.label) {\n ctx.setLineDash([]);\n ctx.font = font(theme, theme.fontSize, 500);\n ctx.textAlign = \"left\";\n ctx.textBaseline = \"top\";\n haloText(ctx, a.label, px + 5, plot.y + 5, color, halo);\n }\n }\n }\n ctx.setLineDash([]);\n\n // labels of areas\n ctx.font = font(theme, theme.fontSize + 1, 600);\n for (const a of input.annotations) {\n if (a.type !== \"rect\" || !a.label) continue;\n const r = rectOf(a, scales);\n if (r.width <= 0 || r.height <= 0) continue;\n const pad = 10;\n const w = ctx.measureText(a.label).width;\n const pos = a.labelPosition;\n const tx = pos.endsWith(\"left\")\n ? r.x + pad\n : pos.endsWith(\"right\")\n ? r.x + r.width - pad - w\n : r.x + (r.width - w) / 2;\n const ty = pos.startsWith(\"top\")\n ? r.y + pad\n : pos.startsWith(\"bottom\")\n ? r.y + r.height - pad - labelHeight\n : r.y + (r.height - labelHeight) / 2;\n ctx.textAlign = \"left\";\n ctx.textBaseline = \"top\";\n ctx.fillStyle = toCss(a.labelColor);\n ctx.fillText(a.label, tx, ty);\n occupied.push({ x: tx, y: ty, width: w, height: labelHeight });\n }\n\n // free texts\n for (const a of input.annotations) {\n if (a.type !== \"text\" || !a.text) continue;\n ctx.font = font(theme, theme.fontSize, a.weight);\n const box = textBox(a, scales, ctx.measureText(a.text).width, labelHeight);\n ctx.textAlign = \"left\";\n ctx.textBaseline = \"middle\";\n haloText(ctx, a.text, box.x, box.y + box.height / 2, toCss(a.color), halo);\n occupied.push(box);\n }\n\n // point labels\n if (input.pointLabels.length) {\n ctx.font = font(theme);\n ctx.textAlign = \"left\";\n ctx.textBaseline = \"middle\";\n const textColor = toCss(theme.text, 0.85);\n const placed = placeLabels(\n input.pointLabels,\n plot,\n (t) => ctx.measureText(t).width,\n labelHeight - 2,\n occupied,\n );\n for (const { label, box } of placed) {\n haloText(ctx, label.text, box.x, box.y + box.height / 2, textColor, halo);\n }\n }\n ctx.restore();\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"overlay.cjs","names":["toScreen","screenRect","toCss","require_color","require_layout","font","theme","weight","size","crisp","v","textBox","s","at","a","free","px","plot","py","x","width","y","height","rectOf","xLo","xHi","yLo","yHi","along","lo","hi","lineOf","drawBackground","input","scales","bottomTicks","yTicks","xTicks","leftTicks","bottomPx","leftPx","ctx","line","base","lastRight","order","i","b","w","text","left","lastBottom","rows","rowHeight","y2","y2Ticks","right","overlaps","inside","r","haloText","halo","color","placeLabels","placed","label","labels","measure","gap","above","below","box","c","occupied","o","drawForeground","labelHeight","where","pos","tx","ty","textColor","t"],"sources":["../../../../charts/src/engine/overlay.ts"],"sourcesContent":["// Canvas2D layers around the data: background (areas, grid, axes, tick\n// labels) and foreground (reference lines, annotation and point labels).\n\nimport { toCss, type Rgba } from \"./color\";\nimport type { AxisTicks } from \"./axis\";\nimport { screenRect, toScreen, type Rect, type Scales } from \"./layout\";\nimport type { AxisModel } from \"./model\";\nimport type { ChartTheme } from \"./theme\";\nimport type { ChartLabelPosition } from \"./types\";\n\nexport interface ResolvedRect {\n type: \"rect\";\n x0?: number;\n x1?: number;\n y0?: number;\n y1?: number;\n color: Rgba;\n opacity: number;\n label?: string;\n labelPosition: ChartLabelPosition;\n labelColor: Rgba;\n}\n\nexport interface ResolvedLine {\n type: \"line\";\n axis: \"x\" | \"y\";\n value: number;\n color: Rgba;\n width: number;\n dash: number[];\n label?: string;\n}\n\nexport interface ResolvedText {\n type: \"text\";\n x?: number;\n y?: number;\n text: string;\n anchor: \"center\" | \"top\" | \"bottom\" | \"left\" | \"right\";\n color: Rgba;\n weight: number;\n}\n\nexport type ResolvedAnnotation = ResolvedRect | ResolvedLine | ResolvedText;\n\nexport interface PointLabel {\n x: number;\n y: number;\n /** Radius of the dot */\n r: number;\n text: string;\n /**\n * Fixed side (bar values: above / below, left / right of horizontal\n * bars); any free side around the dot otherwise\n */\n placement?: \"above\" | \"below\" | \"left\" | \"right\";\n}\n\nexport const font = (theme: ChartTheme, size = theme.fontSize, weight = 400) =>\n `${weight} ${size}px ${theme.fontFamily}`;\n\nconst crisp = (v: number) => Math.round(v) + 0.5;\n\n/** Box of a text annotation, kept inside the plot */\nexport const textBox = (\n a: ResolvedText,\n s: Scales,\n width: number,\n height: number,\n): Rect => {\n const { plot } = s;\n const at = toScreen(s, a.x ?? 0, a.y ?? 0);\n const free = s.horizontal\n ? { x: a.y === undefined, y: a.x === undefined }\n : { x: a.x === undefined, y: a.y === undefined };\n const px = free.x ? plot.x + plot.width / 2 : at.x;\n const py = free.y ? plot.y + plot.height / 2 : at.y;\n const gap = 6;\n let x = px - width / 2;\n let y = py - height / 2;\n if (a.anchor === \"top\") y = py + gap;\n else if (a.anchor === \"bottom\") y = py - gap - height;\n else if (a.anchor === \"left\") x = px + gap;\n else if (a.anchor === \"right\") x = px - gap - width;\n x = Math.max(plot.x + gap, Math.min(x, plot.x + plot.width - gap - width));\n y = Math.max(plot.y + 2, Math.min(y, plot.y + plot.height - 2 - height));\n return { x, y, width, height };\n};\n\n/** Screen box of an area annotation, clipped to the plot */\nexport const rectOf = (a: ResolvedRect, s: Scales): Rect => {\n const { plot } = s;\n // clamp every edge to the plot first: an open edge maps to ±Infinity and\n // `Infinity - Infinity` would make the size NaN (nothing drawn)\n const [xLo, xHi] = s.horizontal\n ? [plot.y, plot.y + plot.height]\n : [plot.x, plot.x + plot.width];\n const [yLo, yHi] = s.horizontal\n ? [plot.x, plot.x + plot.width]\n : [plot.y, plot.y + plot.height];\n const along = (px: number, lo: number, hi: number) =>\n px < lo ? lo : px > hi ? hi : px;\n return screenRect(\n s,\n along(s.xToPx(a.x0 ?? -Infinity), xLo, xHi),\n along(s.xToPx(a.x1 ?? Infinity), xLo, xHi),\n along(s.yToPx(a.y0 ?? -Infinity), yLo, yHi),\n along(s.yToPx(a.y1 ?? Infinity), yLo, yHi),\n );\n};\n\n/**\n * Where a reference line goes: `vertical` lines run at screen x `at`,\n * horizontal ones at screen y `at`\n */\nexport const lineOf = (\n a: ResolvedLine,\n s: Scales,\n): { vertical: boolean; at: number } => {\n const vertical = (a.axis === \"x\") !== s.horizontal;\n return {\n vertical,\n at: a.axis === \"x\" ? s.xToPx(a.value) : s.yToPx(a.value),\n };\n};\n\nexport interface BackgroundInput {\n width: number;\n height: number;\n scales: Scales;\n x: AxisModel;\n y: AxisModel;\n xTicks: AxisTicks;\n yTicks: AxisTicks;\n /** Right axis (dual axis charts) */\n y2?: AxisModel | null;\n y2Ticks?: AxisTicks | null;\n theme: ChartTheme;\n annotations: readonly ResolvedAnnotation[];\n}\n\nexport const drawBackground = (\n ctx: CanvasRenderingContext2D,\n input: BackgroundInput,\n) => {\n const { scales, theme, xTicks, yTicks } = input;\n const { plot } = scales;\n // horizontal charts: the value axis along the bottom, the x axis on the left\n const x = scales.horizontal ? input.y : input.x;\n const y = scales.horizontal ? input.x : input.y;\n const bottomTicks = scales.horizontal ? yTicks : xTicks;\n const leftTicks = scales.horizontal ? xTicks : yTicks;\n const bottomPx = scales.horizontal ? scales.yToPx : scales.xToPx;\n const leftPx = scales.horizontal ? scales.xToPx : scales.yToPx;\n ctx.clearRect(0, 0, input.width, input.height);\n\n // areas\n ctx.save();\n ctx.beginPath();\n ctx.rect(plot.x, plot.y, plot.width, plot.height);\n ctx.clip();\n for (const a of input.annotations) {\n if (a.type !== \"rect\") continue;\n const r = rectOf(a, scales);\n if (r.width <= 0 || r.height <= 0) continue;\n ctx.fillStyle = toCss(a.color, a.opacity);\n ctx.fillRect(r.x, r.y, r.width, r.height);\n }\n ctx.restore();\n\n // grid\n ctx.lineWidth = 1;\n ctx.strokeStyle = toCss(theme.grid);\n ctx.beginPath();\n if (y.grid) {\n for (const v of leftTicks.values) {\n const py = crisp(leftPx(v));\n if (py < plot.y - 1 || py > plot.y + plot.height + 1) continue;\n ctx.moveTo(plot.x, py);\n ctx.lineTo(plot.x + plot.width, py);\n }\n }\n if (x.grid) {\n for (const v of bottomTicks.values) {\n const px = crisp(bottomPx(v));\n if (px < plot.x - 1 || px > plot.x + plot.width + 1) continue;\n ctx.moveTo(px, plot.y);\n ctx.lineTo(px, plot.y + plot.height);\n }\n }\n ctx.stroke();\n\n const line = Math.ceil(theme.fontSize * 1.4);\n ctx.font = font(theme);\n ctx.fillStyle = toCss(theme.textMuted);\n\n // x axis\n if (x.visible) {\n ctx.strokeStyle = toCss(theme.axis);\n ctx.beginPath();\n const base = crisp(plot.y + plot.height);\n ctx.moveTo(plot.x, base);\n ctx.lineTo(plot.x + plot.width, base);\n ctx.stroke();\n ctx.textBaseline = \"top\";\n ctx.textAlign = \"center\";\n let lastRight = -Infinity;\n // left to right (reversed axes list their ticks right to left)\n const order = bottomTicks.values\n .map((v, i) => ({ px: bottomPx(v), text: bottomTicks.labels[i] }))\n .sort((a, b) => a.px - b.px);\n for (const { px, text } of order) {\n if (px < plot.x - 0.5 || px > plot.x + plot.width + 0.5) continue;\n const w = ctx.measureText(text).width;\n const left = Math.max(0, Math.min(input.width - w, px - w / 2));\n if (left < lastRight + 6) continue;\n lastRight = left + w;\n ctx.fillText(text, left + w / 2, plot.y + plot.height + 7);\n }\n if (x.title) {\n ctx.font = font(theme, theme.fontSize + 1, 500);\n ctx.fillStyle = toCss(theme.text, 0.8);\n ctx.fillText(\n x.title,\n plot.x + plot.width / 2,\n plot.y + plot.height + line + 10,\n );\n }\n }\n\n // y axis\n if (y.visible) {\n ctx.font = font(theme);\n ctx.fillStyle = toCss(theme.textMuted);\n ctx.textAlign = \"right\";\n ctx.textBaseline = \"middle\";\n let lastBottom = -Infinity;\n // top to bottom: category rows of horizontal charts never overlap\n const rows = leftTicks.values\n .map((v, i) => ({ py: leftPx(v), text: leftTicks.labels[i] }))\n .sort((a, b) => a.py - b.py);\n const rowHeight = theme.fontSize + 2;\n for (const { py, text } of rows) {\n if (py < plot.y - 0.5 || py > plot.y + plot.height + 0.5) continue;\n if (scales.horizontal) {\n if (py - rowHeight / 2 < lastBottom) continue;\n lastBottom = py + rowHeight / 2;\n }\n ctx.fillText(text, plot.x - 8, py);\n }\n if (y.title) {\n ctx.save();\n ctx.font = font(theme, theme.fontSize + 1, 500);\n ctx.fillStyle = toCss(theme.text, 0.8);\n ctx.translate(line / 2 + 4, plot.y + plot.height / 2);\n ctx.rotate(-Math.PI / 2);\n ctx.textAlign = \"center\";\n ctx.fillText(y.title, 0, 0);\n ctx.restore();\n }\n }\n\n // right axis\n const y2 = scales.horizontal ? null : input.y2;\n const y2Ticks = input.y2Ticks;\n if (y2 && y2Ticks && y2.visible) {\n const right = plot.x + plot.width;\n ctx.font = font(theme);\n ctx.fillStyle = toCss(theme.textMuted);\n ctx.textAlign = \"left\";\n ctx.textBaseline = \"middle\";\n y2Ticks.values.forEach((v, i) => {\n const py = scales.yToPx(v);\n if (py < plot.y - 0.5 || py > plot.y + plot.height + 0.5) return;\n ctx.fillText(y2Ticks.labels[i], right + 8, py);\n });\n if (y2.title) {\n ctx.save();\n ctx.font = font(theme, theme.fontSize + 1, 500);\n ctx.fillStyle = toCss(theme.text, 0.8);\n ctx.translate(input.width - line / 2 - 4, plot.y + plot.height / 2);\n ctx.rotate(Math.PI / 2);\n ctx.textAlign = \"center\";\n ctx.fillText(y2.title, 0, 0);\n ctx.restore();\n }\n }\n};\n\nconst overlaps = (a: Rect, b: Rect) =>\n a.x < b.x + b.width &&\n b.x < a.x + a.width &&\n a.y < b.y + b.height &&\n b.y < a.y + a.height;\n\nconst inside = (r: Rect, plot: Rect) =>\n r.x >= plot.x &&\n r.y >= plot.y &&\n r.x + r.width <= plot.x + plot.width &&\n r.y + r.height <= plot.y + plot.height;\n\n/** Text with a halo in the background color (readable over data) */\nconst haloText = (\n ctx: CanvasRenderingContext2D,\n text: string,\n x: number,\n y: number,\n color: string,\n halo: string,\n) => {\n ctx.lineWidth = 3;\n ctx.lineJoin = \"round\";\n ctx.strokeStyle = halo;\n ctx.strokeText(text, x, y);\n ctx.fillStyle = color;\n ctx.fillText(text, x, y);\n};\n\n/** Greedy placement: right, left, above, below the dot; skipped when no slot is free */\nexport const placeLabels = (\n labels: readonly PointLabel[],\n plot: Rect,\n measure: (text: string) => number,\n height: number,\n occupied: Rect[] = [],\n): { label: PointLabel; box: Rect }[] => {\n const placed: { label: PointLabel; box: Rect }[] = [];\n for (const label of labels) {\n const w = measure(label.text);\n const gap = label.r + 4;\n const above = {\n x: label.x - w / 2,\n y: label.y - gap - height,\n width: w,\n height,\n };\n const below = { x: label.x - w / 2, y: label.y + gap, width: w, height };\n const right = {\n x: label.x + gap,\n y: label.y - height / 2,\n width: w,\n height,\n };\n const left = {\n x: label.x - gap - w,\n y: label.y - height / 2,\n width: w,\n height,\n };\n const candidates: Rect[] =\n label.placement === \"above\"\n ? [above]\n : label.placement === \"below\"\n ? [below]\n : label.placement === \"right\"\n ? [right, left]\n : label.placement === \"left\"\n ? [left, right]\n : [\n {\n x: label.x + gap,\n y: label.y - height / 2,\n width: w,\n height,\n },\n {\n x: label.x - gap - w,\n y: label.y - height / 2,\n width: w,\n height,\n },\n above,\n below,\n ];\n const box = candidates.find(\n (c) => inside(c, plot) && !occupied.some((o) => overlaps(o, c)),\n );\n if (!box) continue;\n occupied.push(box);\n placed.push({ label, box });\n }\n return placed;\n};\n\nexport interface ForegroundInput {\n width: number;\n height: number;\n scales: Scales;\n theme: ChartTheme;\n annotations: readonly ResolvedAnnotation[];\n pointLabels: readonly PointLabel[];\n /**\n * Clears the canvas first (off when the layers share one canvas)\n * @default true\n */\n clear?: boolean;\n}\n\nexport const drawForeground = (\n ctx: CanvasRenderingContext2D,\n input: ForegroundInput,\n) => {\n const { scales, theme } = input;\n const { plot } = scales;\n if (input.clear !== false) ctx.clearRect(0, 0, input.width, input.height);\n ctx.save();\n ctx.beginPath();\n ctx.rect(plot.x, plot.y, plot.width, plot.height);\n ctx.clip();\n\n const halo = toCss(theme.background, 0.9);\n const occupied: Rect[] = [];\n const labelHeight = theme.fontSize + 4;\n\n for (const a of input.annotations) {\n if (a.type !== \"line\") continue;\n const color = toCss(a.color);\n ctx.strokeStyle = color;\n ctx.lineWidth = a.width;\n ctx.setLineDash(a.dash);\n ctx.beginPath();\n const where = lineOf(a, scales);\n if (!where.vertical) {\n const py = crisp(where.at);\n ctx.moveTo(plot.x, py);\n ctx.lineTo(plot.x + plot.width, py);\n ctx.stroke();\n if (a.label) {\n ctx.setLineDash([]);\n ctx.font = font(theme, theme.fontSize, 500);\n ctx.textAlign = \"right\";\n ctx.textBaseline = \"bottom\";\n haloText(ctx, a.label, plot.x + plot.width - 6, py - 3, color, halo);\n }\n } else {\n const px = crisp(where.at);\n ctx.moveTo(px, plot.y);\n ctx.lineTo(px, plot.y + plot.height);\n ctx.stroke();\n if (a.label) {\n ctx.setLineDash([]);\n ctx.font = font(theme, theme.fontSize, 500);\n ctx.textAlign = \"left\";\n ctx.textBaseline = \"top\";\n haloText(ctx, a.label, px + 5, plot.y + 5, color, halo);\n }\n }\n }\n ctx.setLineDash([]);\n\n // labels of areas\n ctx.font = font(theme, theme.fontSize + 1, 600);\n for (const a of input.annotations) {\n if (a.type !== \"rect\" || !a.label) continue;\n const r = rectOf(a, scales);\n if (r.width <= 0 || r.height <= 0) continue;\n const pad = 10;\n const w = ctx.measureText(a.label).width;\n const pos = a.labelPosition;\n const tx = pos.endsWith(\"left\")\n ? r.x + pad\n : pos.endsWith(\"right\")\n ? r.x + r.width - pad - w\n : r.x + (r.width - w) / 2;\n const ty = pos.startsWith(\"top\")\n ? r.y + pad\n : pos.startsWith(\"bottom\")\n ? r.y + r.height - pad - labelHeight\n : r.y + (r.height - labelHeight) / 2;\n ctx.textAlign = \"left\";\n ctx.textBaseline = \"top\";\n ctx.fillStyle = toCss(a.labelColor);\n ctx.fillText(a.label, tx, ty);\n occupied.push({ x: tx, y: ty, width: w, height: labelHeight });\n }\n\n // free texts\n for (const a of input.annotations) {\n if (a.type !== \"text\" || !a.text) continue;\n ctx.font = font(theme, theme.fontSize, a.weight);\n const box = textBox(a, scales, ctx.measureText(a.text).width, labelHeight);\n ctx.textAlign = \"left\";\n ctx.textBaseline = \"middle\";\n haloText(ctx, a.text, box.x, box.y + box.height / 2, toCss(a.color), halo);\n occupied.push(box);\n }\n\n // point labels\n if (input.pointLabels.length) {\n ctx.font = font(theme);\n ctx.textAlign = \"left\";\n ctx.textBaseline = \"middle\";\n const textColor = toCss(theme.text, 0.85);\n const placed = placeLabels(\n input.pointLabels,\n plot,\n (t) => ctx.measureText(t).width,\n labelHeight - 2,\n occupied,\n );\n for (const { label, box } of placed) {\n haloText(ctx, label.text, box.x, box.y + box.height / 2, textColor, halo);\n }\n }\n ctx.restore();\n};\n"],"mappings":"yDA0DA,IAAaK,GAAQ,EAAmB,EAAOC,EAAM,SAAU,EAAS,MACtE,GAAGC,EAAO,GAAGC,EAAK,KAAKF,EAAM,aAEzBG,EAAS,GAAc,KAAK,MAAMC,CAAC,EAAI,GAGhCC,GACX,EACA,EACA,EACA,IACS,CACT,GAAM,CAAE,QAASC,EACXC,EAAKb,EAAAA,SAASY,EAAGE,EAAE,GAAK,EAAGA,EAAE,GAAK,CAAC,EACnCC,EAAOH,EAAE,WACX,CAAE,EAAGE,EAAE,IAAM,IAAA,GAAW,EAAGA,EAAE,IAAM,IAAA,EAAU,EAC7C,CAAE,EAAGA,EAAE,IAAM,IAAA,GAAW,EAAGA,EAAE,IAAM,IAAA,EAAU,EAC3CE,EAAKD,EAAK,EAAIE,EAAK,EAAIA,EAAK,MAAQ,EAAIJ,EAAG,EAC3CK,EAAKH,EAAK,EAAIE,EAAK,EAAIA,EAAK,OAAS,EAAIJ,EAAG,EAE9CM,EAAIH,EAAKI,EAAQ,EACjBC,EAAIH,EAAKI,EAAS,EAOtB,OANIR,EAAE,SAAW,MAAO,EAAII,EAAK,EACxBJ,EAAE,SAAW,SAAU,EAAII,EAAK,EAAMI,EACtCR,EAAE,SAAW,OAAQ,EAAIE,EAAK,EAC9BF,EAAE,SAAW,UAAS,EAAIE,EAAK,EAAMI,GAC9C,EAAI,KAAK,IAAIH,EAAK,EAAI,EAAK,KAAK,IAAIE,EAAGF,EAAK,EAAIA,EAAK,MAAQ,EAAMG,CAAK,CAAC,EACzE,EAAI,KAAK,IAAIH,EAAK,EAAI,EAAG,KAAK,IAAII,EAAGJ,EAAK,EAAIA,EAAK,OAAS,EAAIK,CAAM,CAAC,EAChE,CAAE,IAAG,IAAG,QAAO,QAAO,CAC/B,EAGaC,GAAU,EAAiB,IAAoB,CAC1D,GAAM,CAAE,QAASX,EAGX,CAACY,EAAKC,GAAOb,EAAE,WACjB,CAACK,EAAK,EAAGA,EAAK,EAAIA,EAAK,MAAM,EAC7B,CAACA,EAAK,EAAGA,EAAK,EAAIA,EAAK,KAAK,EAC1B,CAACS,EAAKC,GAAOf,EAAE,WACjB,CAACK,EAAK,EAAGA,EAAK,EAAIA,EAAK,KAAK,EAC5B,CAACA,EAAK,EAAGA,EAAK,EAAIA,EAAK,MAAM,EAC3BW,GAAS,EAAY,EAAY,IACrCZ,EAAKa,EAAKA,EAAKb,EAAKc,EAAKA,EAAKd,EAChC,OAAOf,EAAAA,WACLW,EACAgB,EAAMhB,EAAE,MAAME,EAAE,IAAM,IAAS,EAAGU,EAAKC,CAAG,EAC1CG,EAAMhB,EAAE,MAAME,EAAE,IAAM,GAAQ,EAAGU,EAAKC,CAAG,EACzCG,EAAMhB,EAAE,MAAME,EAAE,IAAM,IAAS,EAAGY,EAAKC,CAAG,EAC1CC,EAAMhB,EAAE,MAAME,EAAE,IAAM,GAAQ,EAAGY,EAAKC,CAAG,CAC3C,CACF,EAMaI,GACX,EACA,KAGO,CACL,SAFgBjB,EAAE,OAAS,MAASF,EAAE,WAGtC,GAAIE,EAAE,OAAS,IAAMF,EAAE,MAAME,EAAE,KAAK,EAAIF,EAAE,MAAME,EAAE,KAAK,CACzD,GAkBWkB,GACX,EACA,IACG,CACH,GAAM,CAAE,SAAQ,QAAO,SAAQ,UAAWC,EACpC,CAAE,QAASC,EAEXf,EAAIe,EAAO,WAAaD,EAAM,EAAIA,EAAM,EACxCZ,EAAIa,EAAO,WAAaD,EAAM,EAAIA,EAAM,EACxCE,EAAcD,EAAO,WAAaE,EAASC,EAC3CC,EAAYJ,EAAO,WAAaG,EAASD,EACzCG,EAAWL,EAAO,WAAaA,EAAO,MAAQA,EAAO,MACrDM,EAASN,EAAO,WAAaA,EAAO,MAAQA,EAAO,MACzDO,EAAI,UAAU,EAAG,EAAGR,EAAM,MAAOA,EAAM,MAAM,EAG7CQ,EAAI,KAAK,EACTA,EAAI,UAAU,EACdA,EAAI,KAAKxB,EAAK,EAAGA,EAAK,EAAGA,EAAK,MAAOA,EAAK,MAAM,EAChDwB,EAAI,KAAK,EACT,IAAK,IAAM3B,KAAKmB,EAAM,YAAa,CACjC,GAAInB,EAAE,OAAS,OAAQ,SACvB,IAAM,EAAIS,EAAOT,EAAGoB,CAAM,EACtB,EAAE,OAAS,GAAK,EAAE,QAAU,IAChC,EAAI,UAAYhC,EAAAA,MAAMY,EAAE,MAAOA,EAAE,OAAO,EACxC2B,EAAI,SAAS,EAAE,EAAG,EAAE,EAAG,EAAE,MAAO,EAAE,MAAM,EAC1C,CAOA,GANAA,EAAI,QAAQ,EAGZ,EAAI,UAAY,EAChB,EAAI,YAAcvC,EAAAA,MAAMI,EAAM,IAAI,EAClCmC,EAAI,UAAU,EACVpB,EAAE,KACJ,IAAK,IAAMX,KAAK4B,EAAU,OAAQ,CAChC,IAAMpB,EAAKT,EAAM+B,EAAO9B,CAAC,CAAC,EACtBQ,EAAKD,EAAK,EAAI,GAAKC,EAAKD,EAAK,EAAIA,EAAK,OAAS,IACnDwB,EAAI,OAAOxB,EAAK,EAAGC,CAAE,EACrBuB,EAAI,OAAOxB,EAAK,EAAIA,EAAK,MAAOC,CAAE,EACpC,CAEF,GAAIC,EAAE,KACJ,IAAK,IAAMT,KAAKyB,EAAY,OAAQ,CAClC,IAAMnB,EAAKP,EAAM8B,EAAS7B,CAAC,CAAC,EACxBM,EAAKC,EAAK,EAAI,GAAKD,EAAKC,EAAK,EAAIA,EAAK,MAAQ,IAClDwB,EAAI,OAAOzB,EAAIC,EAAK,CAAC,EACrBwB,EAAI,OAAOzB,EAAIC,EAAK,EAAIA,EAAK,MAAM,EACrC,CAEFwB,EAAI,OAAO,EAEX,IAAMC,EAAO,KAAK,KAAKpC,EAAM,SAAW,GAAG,EAK3C,GAJA,EAAI,KAAOD,EAAKC,CAAK,EACrB,EAAI,UAAYJ,EAAAA,MAAMI,EAAM,SAAS,EAGjCa,EAAE,QAAS,CACb,EAAI,YAAcjB,EAAAA,MAAMI,EAAM,IAAI,EAClCmC,EAAI,UAAU,EACd,IAAME,EAAOlC,EAAMQ,EAAK,EAAIA,EAAK,MAAM,EACvCwB,EAAI,OAAOxB,EAAK,EAAG0B,CAAI,EACvBF,EAAI,OAAOxB,EAAK,EAAIA,EAAK,MAAO0B,CAAI,EACpCF,EAAI,OAAO,EACX,EAAI,aAAe,MACnB,EAAI,UAAY,SAChB,IAAIG,EAAY,KAEVC,EAAQV,EAAY,OACvB,KAAK,EAAG,KAAO,CAAE,GAAII,EAAS7B,CAAC,EAAG,KAAMyB,EAAY,OAAOW,EAAG,EAAE,CAAC,CACjE,MAAM,EAAG,IAAMhC,EAAE,GAAKiC,EAAE,EAAE,EAC7B,IAAK,GAAM,CAAE,KAAI,UAAUF,EAAO,CAChC,GAAI7B,EAAKC,EAAK,EAAI,IAAOD,EAAKC,EAAK,EAAIA,EAAK,MAAQ,GAAK,SACzD,IAAM+B,EAAIP,EAAI,YAAYQ,CAAI,CAAC,CAAC,MAC1BC,EAAO,KAAK,IAAI,EAAG,KAAK,IAAIjB,EAAM,MAAQe,EAAGhC,EAAKgC,EAAI,CAAC,CAAC,EAC1DE,EAAON,EAAY,IACvB,EAAYM,EAAOF,EACnBP,EAAI,SAASQ,EAAMC,EAAOF,EAAI,EAAG/B,EAAK,EAAIA,EAAK,OAAS,CAAC,EAC3D,CACIE,EAAE,QACJ,EAAI,KAAOd,EAAKC,EAAOA,EAAM,SAAW,EAAG,GAAG,EAC9C,EAAI,UAAYJ,EAAAA,MAAMI,EAAM,KAAM,EAAG,EACrCmC,EAAI,SACFtB,EAAE,MACFF,EAAK,EAAIA,EAAK,MAAQ,EACtBA,EAAK,EAAIA,EAAK,OAASyB,EAAO,EAChC,EAEJ,CAGA,GAAIrB,EAAE,QAAS,CACb,EAAI,KAAOhB,EAAKC,CAAK,EACrB,EAAI,UAAYJ,EAAAA,MAAMI,EAAM,SAAS,EACrC,EAAI,UAAY,QAChB,EAAI,aAAe,SACnB,IAAI6C,EAAa,KAEXC,EAAOd,EAAU,OACpB,KAAK,EAAG,KAAO,CAAE,GAAIE,EAAO9B,CAAC,EAAG,KAAM4B,EAAU,OAAOQ,EAAG,EAAE,CAAC,CAC7D,MAAM,EAAG,IAAMhC,EAAE,GAAKiC,EAAE,EAAE,EACvBM,EAAY/C,EAAM,SAAW,EACnC,IAAK,GAAM,CAAE,KAAI,UAAU8C,EACzB,GAAI,IAAKnC,EAAK,EAAI,IAAOC,EAAKD,EAAK,EAAIA,EAAK,OAAS,IACrD,IAAIiB,EAAO,WAAY,CACrB,GAAIhB,EAAKmC,EAAY,EAAIF,EAAY,SACrC,EAAajC,EAAKmC,EAAY,CAChC,CACAZ,EAAI,SAASQ,EAAMhC,EAAK,EAAI,EAAGC,CAAE,CADjC,CAGEG,EAAE,QACJoB,EAAI,KAAK,EACT,EAAI,KAAOpC,EAAKC,EAAOA,EAAM,SAAW,EAAG,GAAG,EAC9C,EAAI,UAAYJ,EAAAA,MAAMI,EAAM,KAAM,EAAG,EACrCmC,EAAI,UAAUC,EAAO,EAAI,EAAGzB,EAAK,EAAIA,EAAK,OAAS,CAAC,EACpDwB,EAAI,OAAO,CAAC,KAAK,GAAK,CAAC,EACvB,EAAI,UAAY,SAChBA,EAAI,SAASpB,EAAE,MAAO,EAAG,CAAC,EAC1BoB,EAAI,QAAQ,EAEhB,CAGA,IAAMa,EAAKpB,EAAO,WAAa,KAAOD,EAAM,GACtCsB,EAAUtB,EAAM,QACtB,GAAIqB,GAAMC,GAAWD,EAAG,QAAS,CAC/B,IAAME,EAAQvC,EAAK,EAAIA,EAAK,MAC5B,EAAI,KAAOZ,EAAKC,CAAK,EACrB,EAAI,UAAYJ,EAAAA,MAAMI,EAAM,SAAS,EACrC,EAAI,UAAY,OAChB,EAAI,aAAe,SACnBiD,EAAQ,OAAO,SAAS,EAAG,IAAM,CAC/B,IAAMrC,EAAKgB,EAAO,MAAMxB,CAAC,EACrBQ,EAAKD,EAAK,EAAI,IAAOC,EAAKD,EAAK,EAAIA,EAAK,OAAS,IACrDwB,EAAI,SAASc,EAAQ,OAAOT,GAAIU,EAAQ,EAAGtC,CAAE,CAC/C,CAAC,EACGoC,EAAG,QACLb,EAAI,KAAK,EACT,EAAI,KAAOpC,EAAKC,EAAOA,EAAM,SAAW,EAAG,GAAG,EAC9C,EAAI,UAAYJ,EAAAA,MAAMI,EAAM,KAAM,EAAG,EACrCmC,EAAI,UAAUR,EAAM,MAAQS,EAAO,EAAI,EAAGzB,EAAK,EAAIA,EAAK,OAAS,CAAC,EAClEwB,EAAI,OAAO,KAAK,GAAK,CAAC,EACtB,EAAI,UAAY,SAChBA,EAAI,SAASa,EAAG,MAAO,EAAG,CAAC,EAC3Bb,EAAI,QAAQ,EAEhB,CACF,EAEMgB,GAAY,EAAS,IACzB3C,EAAE,EAAIiC,EAAE,EAAIA,EAAE,OACdA,EAAE,EAAIjC,EAAE,EAAIA,EAAE,OACdA,EAAE,EAAIiC,EAAE,EAAIA,EAAE,QACdA,EAAE,EAAIjC,EAAE,EAAIA,EAAE,OAEV4C,GAAU,EAAS,IACvBC,EAAE,GAAK1C,EAAK,GACZ0C,EAAE,GAAK1C,EAAK,GACZ0C,EAAE,EAAIA,EAAE,OAAS1C,EAAK,EAAIA,EAAK,OAC/B0C,EAAE,EAAIA,EAAE,QAAU1C,EAAK,EAAIA,EAAK,OAG5B2C,GACJ,EACA,EACA,EACA,EACA,EACA,IACG,CACH,EAAI,UAAY,EAChB,EAAI,SAAW,QACf,EAAI,YAAcC,EAClBpB,EAAI,WAAWQ,EAAM9B,EAAGE,CAAC,EACzB,EAAI,UAAYyC,EAChBrB,EAAI,SAASQ,EAAM9B,EAAGE,CAAC,CACzB,EAGa0C,GACX,EACA,EACA,EACA,EACA,EAAmB,CAAC,IACmB,CACvC,IAAMC,EAA6C,CAAC,EACpD,IAAK,IAAMC,KAASC,EAAQ,CAC1B,IAAMlB,EAAImB,EAAQF,EAAM,IAAI,EACtBG,EAAMH,EAAM,EAAI,EAChBI,EAAQ,CACZ,EAAGJ,EAAM,EAAIjB,EAAI,EACjB,EAAGiB,EAAM,EAAIG,EAAM9C,EACnB,MAAO0B,EACP,QACF,EACMsB,EAAQ,CAAE,EAAGL,EAAM,EAAIjB,EAAI,EAAG,EAAGiB,EAAM,EAAIG,EAAK,MAAOpB,EAAG,QAAO,EACjEQ,EAAQ,CACZ,EAAGS,EAAM,EAAIG,EACb,EAAGH,EAAM,EAAI3C,EAAS,EACtB,MAAO0B,EACP,QACF,EACME,EAAO,CACX,EAAGe,EAAM,EAAIG,EAAMpB,EACnB,EAAGiB,EAAM,EAAI3C,EAAS,EACtB,MAAO0B,EACP,QACF,EA0BMuB,GAxBJN,EAAM,YAAc,QAChB,CAACI,CAAK,EACNJ,EAAM,YAAc,QAClB,CAACK,CAAK,EACNL,EAAM,YAAc,QAClB,CAACT,EAAON,CAAI,EACZe,EAAM,YAAc,OAClB,CAACf,EAAMM,CAAK,EACZ,CACE,CACE,EAAGS,EAAM,EAAIG,EACb,EAAGH,EAAM,EAAI3C,EAAS,EACtB,MAAO0B,EACP,QACF,EACA,CACE,EAAGiB,EAAM,EAAIG,EAAMpB,EACnB,EAAGiB,EAAM,EAAI3C,EAAS,EACtB,MAAO0B,EACP,QACF,EACAqB,EACAC,CACF,EAAA,CACW,KACpB,GAAMZ,EAAOc,EAAGvD,CAAI,GAAK,CAACwD,EAAS,KAAM,GAAMhB,EAASiB,EAAGF,CAAC,CAAC,CAChE,EACKD,IACLE,EAAS,KAAKF,CAAG,EACjBP,EAAO,KAAK,CAAE,QAAO,KAAI,CAAC,EAC5B,CACA,OAAOA,CACT,EAgBaW,GACX,EACA,IACG,CACH,GAAM,CAAE,SAAQ,SAAU1C,EACpB,CAAE,QAASC,EACbD,EAAM,QAAU,IAAOQ,EAAI,UAAU,EAAG,EAAGR,EAAM,MAAOA,EAAM,MAAM,EACxEQ,EAAI,KAAK,EACTA,EAAI,UAAU,EACdA,EAAI,KAAKxB,EAAK,EAAGA,EAAK,EAAGA,EAAK,MAAOA,EAAK,MAAM,EAChDwB,EAAI,KAAK,EAET,IAAMoB,EAAO3D,EAAAA,MAAMI,EAAM,WAAY,EAAG,EAClCmE,EAAmB,CAAC,EACpBG,EAActE,EAAM,SAAW,EAErC,IAAK,IAAMQ,KAAKmB,EAAM,YAAa,CACjC,GAAInB,EAAE,OAAS,OAAQ,SACvB,IAAMgD,EAAQ5D,EAAAA,MAAMY,EAAE,KAAK,EAC3B,EAAI,YAAcgD,EAClB,EAAI,UAAYhD,EAAE,MAClB2B,EAAI,YAAY3B,EAAE,IAAI,EACtB2B,EAAI,UAAU,EACd,IAAMoC,EAAQ9C,EAAOjB,EAAGoB,CAAM,EAC9B,GAAK2C,EAAM,SAYJ,CACL,IAAM7D,EAAKP,EAAMoE,EAAM,EAAE,EACzBpC,EAAI,OAAOzB,EAAIC,EAAK,CAAC,EACrBwB,EAAI,OAAOzB,EAAIC,EAAK,EAAIA,EAAK,MAAM,EACnCwB,EAAI,OAAO,EACP3B,EAAE,QACJ2B,EAAI,YAAY,CAAC,CAAC,EAClB,EAAI,KAAOpC,EAAKC,EAAOA,EAAM,SAAU,GAAG,EAC1C,EAAI,UAAY,OAChB,EAAI,aAAe,MACnBsD,EAASnB,EAAK3B,EAAE,MAAOE,EAAK,EAAGC,EAAK,EAAI,EAAG6C,EAAOD,CAAI,EAE1D,KAxBqB,CACnB,IAAM3C,EAAKT,EAAMoE,EAAM,EAAE,EACzBpC,EAAI,OAAOxB,EAAK,EAAGC,CAAE,EACrBuB,EAAI,OAAOxB,EAAK,EAAIA,EAAK,MAAOC,CAAE,EAClCuB,EAAI,OAAO,EACP3B,EAAE,QACJ2B,EAAI,YAAY,CAAC,CAAC,EAClB,EAAI,KAAOpC,EAAKC,EAAOA,EAAM,SAAU,GAAG,EAC1C,EAAI,UAAY,QAChB,EAAI,aAAe,SACnBsD,EAASnB,EAAK3B,EAAE,MAAOG,EAAK,EAAIA,EAAK,MAAQ,EAAGC,EAAK,EAAG4C,EAAOD,CAAI,EAEvE,CAaF,CACApB,EAAI,YAAY,CAAC,CAAC,EAGlB,EAAI,KAAOpC,EAAKC,EAAOA,EAAM,SAAW,EAAG,GAAG,EAC9C,IAAK,IAAMQ,KAAKmB,EAAM,YAAa,CACjC,GAAInB,EAAE,OAAS,QAAU,CAACA,EAAE,MAAO,SACnC,IAAM,EAAIS,EAAOT,EAAGoB,CAAM,EAC1B,GAAI,EAAE,OAAS,GAAK,EAAE,QAAU,EAAG,SACnC,IACMc,EAAIP,EAAI,YAAY3B,EAAE,KAAK,CAAC,CAAC,MAC7BgE,EAAMhE,EAAE,cACRiE,EAAKD,EAAI,SAAS,MAAM,EAC1B,EAAE,EAAI,GACNA,EAAI,SAAS,OAAO,EAClB,EAAE,EAAI,EAAE,MAAQ,GAAM9B,EACtB,EAAE,GAAK,EAAE,MAAQA,GAAK,EACtBgC,EAAKF,EAAI,WAAW,KAAK,EAC3B,EAAE,EAAI,GACNA,EAAI,WAAW,QAAQ,EACrB,EAAE,EAAI,EAAE,OAAS,GAAMF,EACvB,EAAE,GAAK,EAAE,OAASA,GAAe,EACvC,EAAI,UAAY,OAChB,EAAI,aAAe,MACnB,EAAI,UAAY1E,EAAAA,MAAMY,EAAE,UAAU,EAClC2B,EAAI,SAAS3B,EAAE,MAAOiE,EAAIC,CAAE,EAC5BP,EAAS,KAAK,CAAE,EAAGM,EAAI,EAAGC,EAAI,MAAOhC,EAAG,OAAQ4B,CAAY,CAAC,CAC/D,CAGA,IAAK,IAAM9D,KAAKmB,EAAM,YAAa,CACjC,GAAInB,EAAE,OAAS,QAAU,CAACA,EAAE,KAAM,SAClC,EAAI,KAAOT,EAAKC,EAAOA,EAAM,SAAUQ,EAAE,MAAM,EAC/C,IAAMyD,EAAM5D,EAAQG,EAAGoB,EAAQO,EAAI,YAAY3B,EAAE,IAAI,CAAC,CAAC,MAAO8D,CAAW,EACzE,EAAI,UAAY,OAChB,EAAI,aAAe,SACnBhB,EAASnB,EAAK3B,EAAE,KAAMyD,EAAI,EAAGA,EAAI,EAAIA,EAAI,OAAS,EAAGrE,EAAAA,MAAMY,EAAE,KAAK,EAAG+C,CAAI,EACzEY,EAAS,KAAKF,CAAG,CACnB,CAGA,GAAItC,EAAM,YAAY,OAAQ,CAC5B,EAAI,KAAO5B,EAAKC,CAAK,EACrB,EAAI,UAAY,OAChB,EAAI,aAAe,SACnB,IAAM2E,EAAY/E,EAAAA,MAAMI,EAAM,KAAM,GAAI,EAClC0D,EAASD,EACb9B,EAAM,YACNhB,EACC,GAAMwB,EAAI,YAAYyC,CAAC,CAAC,CAAC,MAC1BN,EAAc,EACdH,CACF,EACA,IAAK,GAAM,CAAE,QAAO,SAAST,EAC3BJ,EAASnB,EAAKwB,EAAM,KAAMM,EAAI,EAAGA,EAAI,EAAIA,EAAI,OAAS,EAAGU,EAAWpB,CAAI,CAE5E,CACApB,EAAI,QAAQ,CACd"}
@@ -41,10 +41,25 @@ export interface PointLabel {
41
41
  /** Radius of the dot */
42
42
  r: number;
43
43
  text: string;
44
+ /**
45
+ * Fixed side (bar values: above / below, left / right of horizontal
46
+ * bars); any free side around the dot otherwise
47
+ */
48
+ placement?: "above" | "below" | "left" | "right";
44
49
  }
45
50
  export declare const font: (theme: ChartTheme, size?: number, weight?: number) => string;
46
51
  /** Box of a text annotation, kept inside the plot */
47
52
  export declare const textBox: (a: ResolvedText, s: Scales, width: number, height: number) => Rect;
53
+ /** Screen box of an area annotation, clipped to the plot */
54
+ export declare const rectOf: (a: ResolvedRect, s: Scales) => Rect;
55
+ /**
56
+ * Where a reference line goes: `vertical` lines run at screen x `at`,
57
+ * horizontal ones at screen y `at`
58
+ */
59
+ export declare const lineOf: (a: ResolvedLine, s: Scales) => {
60
+ vertical: boolean;
61
+ at: number;
62
+ };
48
63
  export interface BackgroundInput {
49
64
  width: number;
50
65
  height: number;
@@ -53,6 +68,9 @@ export interface BackgroundInput {
53
68
  y: AxisModel;
54
69
  xTicks: AxisTicks;
55
70
  yTicks: AxisTicks;
71
+ /** Right axis (dual axis charts) */
72
+ y2?: AxisModel | null;
73
+ y2Ticks?: AxisTicks | null;
56
74
  theme: ChartTheme;
57
75
  annotations: readonly ResolvedAnnotation[];
58
76
  }
@@ -41,10 +41,25 @@ export interface PointLabel {
41
41
  /** Radius of the dot */
42
42
  r: number;
43
43
  text: string;
44
+ /**
45
+ * Fixed side (bar values: above / below, left / right of horizontal
46
+ * bars); any free side around the dot otherwise
47
+ */
48
+ placement?: "above" | "below" | "left" | "right";
44
49
  }
45
50
  export declare const font: (theme: ChartTheme, size?: number, weight?: number) => string;
46
51
  /** Box of a text annotation, kept inside the plot */
47
52
  export declare const textBox: (a: ResolvedText, s: Scales, width: number, height: number) => Rect;
53
+ /** Screen box of an area annotation, clipped to the plot */
54
+ export declare const rectOf: (a: ResolvedRect, s: Scales) => Rect;
55
+ /**
56
+ * Where a reference line goes: `vertical` lines run at screen x `at`,
57
+ * horizontal ones at screen y `at`
58
+ */
59
+ export declare const lineOf: (a: ResolvedLine, s: Scales) => {
60
+ vertical: boolean;
61
+ at: number;
62
+ };
48
63
  export interface BackgroundInput {
49
64
  width: number;
50
65
  height: number;
@@ -53,6 +68,9 @@ export interface BackgroundInput {
53
68
  y: AxisModel;
54
69
  xTicks: AxisTicks;
55
70
  yTicks: AxisTicks;
71
+ /** Right axis (dual axis charts) */
72
+ y2?: AxisModel | null;
73
+ y2Ticks?: AxisTicks | null;
56
74
  theme: ChartTheme;
57
75
  annotations: readonly ResolvedAnnotation[];
58
76
  }
@@ -1,137 +1,173 @@
1
1
  import { toCss as e } from "./color.js";
2
+ import { screenRect as t, toScreen as n } from "./layout.js";
2
3
  //#region src/engine/overlay.ts
3
- var t = (e, t = e.fontSize, n = 400) => `${n} ${t}px ${e.fontFamily}`, n = (e) => Math.round(e) + .5, r = (e, t, n, r) => {
4
- let { plot: i } = t, a = e.x === void 0 ? i.x + i.width / 2 : t.xToPx(e.x), o = e.y === void 0 ? i.y + i.height / 2 : t.yToPx(e.y), s = a - n / 2, c = o - r / 2;
5
- return e.anchor === "top" ? c = o + 6 : e.anchor === "bottom" ? c = o - 6 - r : e.anchor === "left" ? s = a + 6 : e.anchor === "right" && (s = a - 6 - n), s = Math.max(i.x + 6, Math.min(s, i.x + i.width - 6 - n)), c = Math.max(i.y + 2, Math.min(c, i.y + i.height - 2 - r)), {
6
- x: s,
7
- y: c,
8
- width: n,
9
- height: r
4
+ var r = (e, t = e.fontSize, n = 400) => `${n} ${t}px ${e.fontFamily}`, i = (e) => Math.round(e) + .5, a = (e, t, r, i) => {
5
+ let { plot: a } = t, o = n(t, e.x ?? 0, e.y ?? 0), s = t.horizontal ? {
6
+ x: e.y === void 0,
7
+ y: e.x === void 0
8
+ } : {
9
+ x: e.x === void 0,
10
+ y: e.y === void 0
11
+ }, c = s.x ? a.x + a.width / 2 : o.x, l = s.y ? a.y + a.height / 2 : o.y, u = c - r / 2, d = l - i / 2;
12
+ return e.anchor === "top" ? d = l + 6 : e.anchor === "bottom" ? d = l - 6 - i : e.anchor === "left" ? u = c + 6 : e.anchor === "right" && (u = c - 6 - r), u = Math.max(a.x + 6, Math.min(u, a.x + a.width - 6 - r)), d = Math.max(a.y + 2, Math.min(d, a.y + a.height - 2 - i)), {
13
+ x: u,
14
+ y: d,
15
+ width: r,
16
+ height: i
10
17
  };
11
- }, i = (e, t) => {
12
- let { plot: n } = t, r = e.x0 === void 0 ? -Infinity : t.xToPx(e.x0), i = e.x1 === void 0 ? Infinity : t.xToPx(e.x1), a = e.y0 === void 0 ? Infinity : t.yToPx(e.y0), o = e.y1 === void 0 ? -Infinity : t.yToPx(e.y1), s = Math.max(n.x, Math.min(r, i)), c = Math.min(n.x + n.width, Math.max(r, i)), l = Math.max(n.y, Math.min(a, o)), u = Math.min(n.y + n.height, Math.max(a, o));
13
- return {
14
- x: s,
15
- y: l,
16
- width: c - s,
17
- height: u - l
18
- };
19
- }, a = (r, a) => {
20
- let { scales: o, theme: s, x: c, y: l, xTicks: u, yTicks: d } = a, { plot: f } = o;
21
- r.clearRect(0, 0, a.width, a.height), r.save(), r.beginPath(), r.rect(f.x, f.y, f.width, f.height), r.clip();
22
- for (let t of a.annotations) {
23
- if (t.type !== "rect") continue;
24
- let n = i(t, o);
25
- n.width <= 0 || n.height <= 0 || (r.fillStyle = e(t.color, t.opacity), r.fillRect(n.x, n.y, n.width, n.height));
18
+ }, o = (e, n) => {
19
+ let { plot: r } = n, [i, a] = n.horizontal ? [r.y, r.y + r.height] : [r.x, r.x + r.width], [o, s] = n.horizontal ? [r.x, r.x + r.width] : [r.y, r.y + r.height], c = (e, t, n) => e < t ? t : e > n ? n : e;
20
+ return t(n, c(n.xToPx(e.x0 ?? -Infinity), i, a), c(n.xToPx(e.x1 ?? Infinity), i, a), c(n.yToPx(e.y0 ?? -Infinity), o, s), c(n.yToPx(e.y1 ?? Infinity), o, s));
21
+ }, s = (e, t) => ({
22
+ vertical: e.axis === "x" !== t.horizontal,
23
+ at: e.axis === "x" ? t.xToPx(e.value) : t.yToPx(e.value)
24
+ }), c = (t, n) => {
25
+ let { scales: a, theme: s, xTicks: c, yTicks: l } = n, { plot: u } = a, d = a.horizontal ? n.y : n.x, f = a.horizontal ? n.x : n.y, p = a.horizontal ? l : c, m = a.horizontal ? c : l, h = a.horizontal ? a.yToPx : a.xToPx, g = a.horizontal ? a.xToPx : a.yToPx;
26
+ t.clearRect(0, 0, n.width, n.height), t.save(), t.beginPath(), t.rect(u.x, u.y, u.width, u.height), t.clip();
27
+ for (let r of n.annotations) {
28
+ if (r.type !== "rect") continue;
29
+ let n = o(r, a);
30
+ n.width <= 0 || n.height <= 0 || (t.fillStyle = e(r.color, r.opacity), t.fillRect(n.x, n.y, n.width, n.height));
26
31
  }
27
- if (r.restore(), r.lineWidth = 1, r.strokeStyle = e(s.grid), r.beginPath(), l.grid) for (let e of d.values) {
28
- let t = n(o.yToPx(e));
29
- t < f.y - 1 || t > f.y + f.height + 1 || (r.moveTo(f.x, t), r.lineTo(f.x + f.width, t));
32
+ if (t.restore(), t.lineWidth = 1, t.strokeStyle = e(s.grid), t.beginPath(), f.grid) for (let e of m.values) {
33
+ let n = i(g(e));
34
+ n < u.y - 1 || n > u.y + u.height + 1 || (t.moveTo(u.x, n), t.lineTo(u.x + u.width, n));
30
35
  }
31
- if (c.grid) for (let e of u.values) {
32
- let t = n(o.xToPx(e));
33
- t < f.x - 1 || t > f.x + f.width + 1 || (r.moveTo(t, f.y), r.lineTo(t, f.y + f.height));
36
+ if (d.grid) for (let e of p.values) {
37
+ let n = i(h(e));
38
+ n < u.x - 1 || n > u.x + u.width + 1 || (t.moveTo(n, u.y), t.lineTo(n, u.y + u.height));
34
39
  }
35
- r.stroke();
36
- let p = Math.ceil(s.fontSize * 1.4);
37
- if (r.font = t(s), r.fillStyle = e(s.textMuted), c.visible) {
38
- r.strokeStyle = e(s.axis), r.beginPath();
39
- let i = n(f.y + f.height);
40
- r.moveTo(f.x, i), r.lineTo(f.x + f.width, i), r.stroke(), r.textBaseline = "top", r.textAlign = "center";
41
- let l = -Infinity, d = u.values.map((e, t) => ({
42
- px: o.xToPx(e),
43
- text: u.labels[t]
40
+ t.stroke();
41
+ let _ = Math.ceil(s.fontSize * 1.4);
42
+ if (t.font = r(s), t.fillStyle = e(s.textMuted), d.visible) {
43
+ t.strokeStyle = e(s.axis), t.beginPath();
44
+ let a = i(u.y + u.height);
45
+ t.moveTo(u.x, a), t.lineTo(u.x + u.width, a), t.stroke(), t.textBaseline = "top", t.textAlign = "center";
46
+ let o = -Infinity, c = p.values.map((e, t) => ({
47
+ px: h(e),
48
+ text: p.labels[t]
44
49
  })).sort((e, t) => e.px - t.px);
45
- for (let { px: e, text: t } of d) {
46
- if (e < f.x - .5 || e > f.x + f.width + .5) continue;
47
- let n = r.measureText(t).width, i = Math.max(0, Math.min(a.width - n, e - n / 2));
48
- i < l + 6 || (l = i + n, r.fillText(t, i + n / 2, f.y + f.height + 7));
50
+ for (let { px: e, text: r } of c) {
51
+ if (e < u.x - .5 || e > u.x + u.width + .5) continue;
52
+ let i = t.measureText(r).width, a = Math.max(0, Math.min(n.width - i, e - i / 2));
53
+ a < o + 6 || (o = a + i, t.fillText(r, a + i / 2, u.y + u.height + 7));
54
+ }
55
+ d.title && (t.font = r(s, s.fontSize + 1, 500), t.fillStyle = e(s.text, .8), t.fillText(d.title, u.x + u.width / 2, u.y + u.height + _ + 10));
56
+ }
57
+ if (f.visible) {
58
+ t.font = r(s), t.fillStyle = e(s.textMuted), t.textAlign = "right", t.textBaseline = "middle";
59
+ let n = -Infinity, i = m.values.map((e, t) => ({
60
+ py: g(e),
61
+ text: m.labels[t]
62
+ })).sort((e, t) => e.py - t.py), o = s.fontSize + 2;
63
+ for (let { py: e, text: r } of i) if (!(e < u.y - .5 || e > u.y + u.height + .5)) {
64
+ if (a.horizontal) {
65
+ if (e - o / 2 < n) continue;
66
+ n = e + o / 2;
67
+ }
68
+ t.fillText(r, u.x - 8, e);
49
69
  }
50
- c.title && (r.font = t(s, s.fontSize + 1, 500), r.fillStyle = e(s.text, .8), r.fillText(c.title, f.x + f.width / 2, f.y + f.height + p + 10));
70
+ f.title && (t.save(), t.font = r(s, s.fontSize + 1, 500), t.fillStyle = e(s.text, .8), t.translate(_ / 2 + 4, u.y + u.height / 2), t.rotate(-Math.PI / 2), t.textAlign = "center", t.fillText(f.title, 0, 0), t.restore());
51
71
  }
52
- l.visible && (r.font = t(s), r.fillStyle = e(s.textMuted), r.textAlign = "right", r.textBaseline = "middle", d.values.forEach((e, t) => {
53
- let n = o.yToPx(e);
54
- n < f.y - .5 || n > f.y + f.height + .5 || r.fillText(d.labels[t], f.x - 8, n);
55
- }), l.title && (r.save(), r.font = t(s, s.fontSize + 1, 500), r.fillStyle = e(s.text, .8), r.translate(p / 2 + 4, f.y + f.height / 2), r.rotate(-Math.PI / 2), r.textAlign = "center", r.fillText(l.title, 0, 0), r.restore()));
56
- }, o = (e, t) => e.x < t.x + t.width && t.x < e.x + e.width && e.y < t.y + t.height && t.y < e.y + e.height, s = (e, t) => e.x >= t.x && e.y >= t.y && e.x + e.width <= t.x + t.width && e.y + e.height <= t.y + t.height, c = (e, t, n, r, i, a) => {
72
+ let v = a.horizontal ? null : n.y2, y = n.y2Ticks;
73
+ if (v && y && v.visible) {
74
+ let i = u.x + u.width;
75
+ t.font = r(s), t.fillStyle = e(s.textMuted), t.textAlign = "left", t.textBaseline = "middle", y.values.forEach((e, n) => {
76
+ let r = a.yToPx(e);
77
+ r < u.y - .5 || r > u.y + u.height + .5 || t.fillText(y.labels[n], i + 8, r);
78
+ }), v.title && (t.save(), t.font = r(s, s.fontSize + 1, 500), t.fillStyle = e(s.text, .8), t.translate(n.width - _ / 2 - 4, u.y + u.height / 2), t.rotate(Math.PI / 2), t.textAlign = "center", t.fillText(v.title, 0, 0), t.restore());
79
+ }
80
+ }, l = (e, t) => e.x < t.x + t.width && t.x < e.x + e.width && e.y < t.y + t.height && t.y < e.y + e.height, u = (e, t) => e.x >= t.x && e.y >= t.y && e.x + e.width <= t.x + t.width && e.y + e.height <= t.y + t.height, d = (e, t, n, r, i, a) => {
57
81
  e.lineWidth = 3, e.lineJoin = "round", e.strokeStyle = a, e.strokeText(t, n, r), e.fillStyle = i, e.fillText(t, n, r);
58
- }, l = (e, t, n, r, i = []) => {
82
+ }, f = (e, t, n, r, i = []) => {
59
83
  let a = [];
60
- for (let c of e) {
61
- let e = n(c.text), l = c.r + 4, u = [
84
+ for (let o of e) {
85
+ let e = n(o.text), s = o.r + 4, c = {
86
+ x: o.x - e / 2,
87
+ y: o.y - s - r,
88
+ width: e,
89
+ height: r
90
+ }, d = {
91
+ x: o.x - e / 2,
92
+ y: o.y + s,
93
+ width: e,
94
+ height: r
95
+ }, f = {
96
+ x: o.x + s,
97
+ y: o.y - r / 2,
98
+ width: e,
99
+ height: r
100
+ }, p = {
101
+ x: o.x - s - e,
102
+ y: o.y - r / 2,
103
+ width: e,
104
+ height: r
105
+ }, m = (o.placement === "above" ? [c] : o.placement === "below" ? [d] : o.placement === "right" ? [f, p] : o.placement === "left" ? [p, f] : [
62
106
  {
63
- x: c.x + l,
64
- y: c.y - r / 2,
107
+ x: o.x + s,
108
+ y: o.y - r / 2,
65
109
  width: e,
66
110
  height: r
67
111
  },
68
112
  {
69
- x: c.x - l - e,
70
- y: c.y - r / 2,
113
+ x: o.x - s - e,
114
+ y: o.y - r / 2,
71
115
  width: e,
72
116
  height: r
73
117
  },
74
- {
75
- x: c.x - e / 2,
76
- y: c.y - l - r,
77
- width: e,
78
- height: r
79
- },
80
- {
81
- x: c.x - e / 2,
82
- y: c.y + l,
83
- width: e,
84
- height: r
85
- }
86
- ].find((e) => s(e, t) && !i.some((t) => o(t, e)));
87
- u && (i.push(u), a.push({
88
- label: c,
89
- box: u
118
+ c,
119
+ d
120
+ ]).find((e) => u(e, t) && !i.some((t) => l(t, e)));
121
+ m && (i.push(m), a.push({
122
+ label: o,
123
+ box: m
90
124
  }));
91
125
  }
92
126
  return a;
93
- }, u = (a, o) => {
94
- let { scales: s, theme: u } = o, { plot: d } = s;
95
- o.clear !== !1 && a.clearRect(0, 0, o.width, o.height), a.save(), a.beginPath(), a.rect(d.x, d.y, d.width, d.height), a.clip();
96
- let f = e(u.background, .9), p = [], m = u.fontSize + 4;
97
- for (let r of o.annotations) {
98
- if (r.type !== "line") continue;
99
- let i = e(r.color);
100
- if (a.strokeStyle = i, a.lineWidth = r.width, a.setLineDash(r.dash), a.beginPath(), r.axis === "y") {
101
- let e = n(s.yToPx(r.value));
102
- a.moveTo(d.x, e), a.lineTo(d.x + d.width, e), a.stroke(), r.label && (a.setLineDash([]), a.font = t(u, u.fontSize, 500), a.textAlign = "right", a.textBaseline = "bottom", c(a, r.label, d.x + d.width - 6, e - 3, i, f));
127
+ }, p = (t, n) => {
128
+ let { scales: c, theme: l } = n, { plot: u } = c;
129
+ n.clear !== !1 && t.clearRect(0, 0, n.width, n.height), t.save(), t.beginPath(), t.rect(u.x, u.y, u.width, u.height), t.clip();
130
+ let p = e(l.background, .9), m = [], h = l.fontSize + 4;
131
+ for (let a of n.annotations) {
132
+ if (a.type !== "line") continue;
133
+ let n = e(a.color);
134
+ t.strokeStyle = n, t.lineWidth = a.width, t.setLineDash(a.dash), t.beginPath();
135
+ let o = s(a, c);
136
+ if (o.vertical) {
137
+ let e = i(o.at);
138
+ t.moveTo(e, u.y), t.lineTo(e, u.y + u.height), t.stroke(), a.label && (t.setLineDash([]), t.font = r(l, l.fontSize, 500), t.textAlign = "left", t.textBaseline = "top", d(t, a.label, e + 5, u.y + 5, n, p));
103
139
  } else {
104
- let e = n(s.xToPx(r.value));
105
- a.moveTo(e, d.y), a.lineTo(e, d.y + d.height), a.stroke(), r.label && (a.setLineDash([]), a.font = t(u, u.fontSize, 500), a.textAlign = "left", a.textBaseline = "top", c(a, r.label, e + 5, d.y + 5, i, f));
140
+ let e = i(o.at);
141
+ t.moveTo(u.x, e), t.lineTo(u.x + u.width, e), t.stroke(), a.label && (t.setLineDash([]), t.font = r(l, l.fontSize, 500), t.textAlign = "right", t.textBaseline = "bottom", d(t, a.label, u.x + u.width - 6, e - 3, n, p));
106
142
  }
107
143
  }
108
- a.setLineDash([]), a.font = t(u, u.fontSize + 1, 600);
109
- for (let t of o.annotations) {
110
- if (t.type !== "rect" || !t.label) continue;
111
- let n = i(t, s);
144
+ t.setLineDash([]), t.font = r(l, l.fontSize + 1, 600);
145
+ for (let r of n.annotations) {
146
+ if (r.type !== "rect" || !r.label) continue;
147
+ let n = o(r, c);
112
148
  if (n.width <= 0 || n.height <= 0) continue;
113
- let r = a.measureText(t.label).width, o = t.labelPosition, c = o.endsWith("left") ? n.x + 10 : o.endsWith("right") ? n.x + n.width - 10 - r : n.x + (n.width - r) / 2, l = o.startsWith("top") ? n.y + 10 : o.startsWith("bottom") ? n.y + n.height - 10 - m : n.y + (n.height - m) / 2;
114
- a.textAlign = "left", a.textBaseline = "top", a.fillStyle = e(t.labelColor), a.fillText(t.label, c, l), p.push({
115
- x: c,
149
+ let i = t.measureText(r.label).width, a = r.labelPosition, s = a.endsWith("left") ? n.x + 10 : a.endsWith("right") ? n.x + n.width - 10 - i : n.x + (n.width - i) / 2, l = a.startsWith("top") ? n.y + 10 : a.startsWith("bottom") ? n.y + n.height - 10 - h : n.y + (n.height - h) / 2;
150
+ t.textAlign = "left", t.textBaseline = "top", t.fillStyle = e(r.labelColor), t.fillText(r.label, s, l), m.push({
151
+ x: s,
116
152
  y: l,
117
- width: r,
118
- height: m
153
+ width: i,
154
+ height: h
119
155
  });
120
156
  }
121
- for (let n of o.annotations) {
122
- if (n.type !== "text" || !n.text) continue;
123
- a.font = t(u, u.fontSize, n.weight);
124
- let i = r(n, s, a.measureText(n.text).width, m);
125
- a.textAlign = "left", a.textBaseline = "middle", c(a, n.text, i.x, i.y + i.height / 2, e(n.color), f), p.push(i);
157
+ for (let i of n.annotations) {
158
+ if (i.type !== "text" || !i.text) continue;
159
+ t.font = r(l, l.fontSize, i.weight);
160
+ let n = a(i, c, t.measureText(i.text).width, h);
161
+ t.textAlign = "left", t.textBaseline = "middle", d(t, i.text, n.x, n.y + n.height / 2, e(i.color), p), m.push(n);
126
162
  }
127
- if (o.pointLabels.length) {
128
- a.font = t(u), a.textAlign = "left", a.textBaseline = "middle";
129
- let n = e(u.text, .85), r = l(o.pointLabels, d, (e) => a.measureText(e).width, m - 2, p);
130
- for (let { label: e, box: t } of r) c(a, e.text, t.x, t.y + t.height / 2, n, f);
163
+ if (n.pointLabels.length) {
164
+ t.font = r(l), t.textAlign = "left", t.textBaseline = "middle";
165
+ let i = e(l.text, .85), a = f(n.pointLabels, u, (e) => t.measureText(e).width, h - 2, m);
166
+ for (let { label: e, box: n } of a) d(t, e.text, n.x, n.y + n.height / 2, i, p);
131
167
  }
132
- a.restore();
168
+ t.restore();
133
169
  };
134
170
  //#endregion
135
- export { a as drawBackground, u as drawForeground, t as font, l as placeLabels, r as textBox };
171
+ export { c as drawBackground, p as drawForeground, r as font, s as lineOf, f as placeLabels, o as rectOf, a as textBox };
136
172
 
137
173
  //# sourceMappingURL=overlay.js.map