minerva-design 1.3.0 → 1.5.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 (1337) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +21 -21
  3. package/custom-elements.json +18546 -7329
  4. package/dist/angular/fesm2022/minerva-angular.mjs +8303 -172
  5. package/dist/angular/fesm2022/minerva-angular.mjs.map +1 -1
  6. package/dist/angular/types/minerva-angular.d.ts +2809 -0
  7. package/dist/charts/canvas.d.cts +8 -3
  8. package/dist/charts/canvas.d.ts +8 -3
  9. package/dist/charts/core.cjs +1 -1
  10. package/dist/charts/core.d.cts +10 -5
  11. package/dist/charts/core.d.ts +10 -5
  12. package/dist/charts/core.js +27 -8
  13. package/dist/charts/engine/axis.cjs +1 -1
  14. package/dist/charts/engine/axis.cjs.map +1 -1
  15. package/dist/charts/engine/axis.js +43 -20
  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 +193 -116
  22. package/dist/charts/engine/canvas.js.map +1 -1
  23. package/dist/charts/engine/chart.cjs +1 -1
  24. package/dist/charts/engine/chart.cjs.map +1 -1
  25. package/dist/charts/engine/chart.d.cts +1 -1
  26. package/dist/charts/engine/chart.d.ts +1 -1
  27. package/dist/charts/engine/chart.js +486 -350
  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 +18 -0
  32. package/dist/charts/engine/color.d.ts +18 -0
  33. package/dist/charts/engine/color.js +47 -1
  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 +44 -4
  38. package/dist/charts/engine/controller.d.ts +44 -4
  39. package/dist/charts/engine/controller.js +421 -314
  40. package/dist/charts/engine/controller.js.map +1 -1
  41. package/dist/charts/engine/data.cjs +1 -1
  42. package/dist/charts/engine/data.cjs.map +1 -1
  43. package/dist/charts/engine/data.d.cts +9 -1
  44. package/dist/charts/engine/data.d.ts +9 -1
  45. package/dist/charts/engine/data.js +65 -49
  46. package/dist/charts/engine/data.js.map +1 -1
  47. package/dist/charts/engine/defaults.cjs +2 -0
  48. package/dist/charts/engine/defaults.cjs.map +1 -0
  49. package/dist/charts/engine/defaults.d.cts +20 -0
  50. package/dist/charts/engine/defaults.d.ts +20 -0
  51. package/dist/charts/engine/defaults.js +35 -0
  52. package/dist/charts/engine/defaults.js.map +1 -0
  53. package/dist/charts/engine/format.cjs +1 -1
  54. package/dist/charts/engine/format.cjs.map +1 -1
  55. package/dist/charts/engine/format.d.cts +27 -6
  56. package/dist/charts/engine/format.d.ts +27 -6
  57. package/dist/charts/engine/format.js +59 -21
  58. package/dist/charts/engine/format.js.map +1 -1
  59. package/dist/charts/engine/graph/chart.cjs +2 -0
  60. package/dist/charts/engine/graph/chart.cjs.map +1 -0
  61. package/dist/charts/engine/graph/chart.d.cts +3 -0
  62. package/dist/charts/engine/graph/chart.d.ts +3 -0
  63. package/dist/charts/engine/graph/chart.js +1565 -0
  64. package/dist/charts/engine/graph/chart.js.map +1 -0
  65. package/dist/charts/engine/graph/circular.cjs +2 -0
  66. package/dist/charts/engine/graph/circular.cjs.map +1 -0
  67. package/dist/charts/engine/graph/circular.d.cts +16 -0
  68. package/dist/charts/engine/graph/circular.d.ts +16 -0
  69. package/dist/charts/engine/graph/circular.js +62 -0
  70. package/dist/charts/engine/graph/circular.js.map +1 -0
  71. package/dist/charts/engine/graph/dag.cjs +2 -0
  72. package/dist/charts/engine/graph/dag.cjs.map +1 -0
  73. package/dist/charts/engine/graph/dag.d.cts +34 -0
  74. package/dist/charts/engine/graph/dag.d.ts +34 -0
  75. package/dist/charts/engine/graph/dag.js +314 -0
  76. package/dist/charts/engine/graph/dag.js.map +1 -0
  77. package/dist/charts/engine/graph/dom.cjs +2 -0
  78. package/dist/charts/engine/graph/dom.cjs.map +1 -0
  79. package/dist/charts/engine/graph/dom.d.cts +23 -0
  80. package/dist/charts/engine/graph/dom.d.ts +23 -0
  81. package/dist/charts/engine/graph/dom.js +158 -0
  82. package/dist/charts/engine/graph/dom.js.map +1 -0
  83. package/dist/charts/engine/graph/force.cjs +2 -0
  84. package/dist/charts/engine/graph/force.cjs.map +1 -0
  85. package/dist/charts/engine/graph/force.d.cts +67 -0
  86. package/dist/charts/engine/graph/force.d.ts +67 -0
  87. package/dist/charts/engine/graph/force.js +325 -0
  88. package/dist/charts/engine/graph/force.js.map +1 -0
  89. package/dist/charts/engine/graph/geometry.cjs +2 -0
  90. package/dist/charts/engine/graph/geometry.cjs.map +1 -0
  91. package/dist/charts/engine/graph/geometry.d.cts +37 -0
  92. package/dist/charts/engine/graph/geometry.d.ts +37 -0
  93. package/dist/charts/engine/graph/geometry.js +144 -0
  94. package/dist/charts/engine/graph/geometry.js.map +1 -0
  95. package/dist/charts/engine/graph/index.cjs +1 -0
  96. package/dist/charts/engine/graph/index.d.cts +6 -0
  97. package/dist/charts/engine/graph/index.d.ts +6 -0
  98. package/dist/charts/engine/graph/index.js +6 -0
  99. package/dist/charts/engine/graph/labels.cjs +2 -0
  100. package/dist/charts/engine/graph/labels.cjs.map +1 -0
  101. package/dist/charts/engine/graph/labels.d.cts +12 -0
  102. package/dist/charts/engine/graph/labels.d.ts +12 -0
  103. package/dist/charts/engine/graph/labels.js +128 -0
  104. package/dist/charts/engine/graph/labels.js.map +1 -0
  105. package/dist/charts/engine/graph/model.cjs +2 -0
  106. package/dist/charts/engine/graph/model.cjs.map +1 -0
  107. package/dist/charts/engine/graph/model.d.cts +43 -0
  108. package/dist/charts/engine/graph/model.d.ts +43 -0
  109. package/dist/charts/engine/graph/model.js +88 -0
  110. package/dist/charts/engine/graph/model.js.map +1 -0
  111. package/dist/charts/engine/graph/sizing.cjs +2 -0
  112. package/dist/charts/engine/graph/sizing.cjs.map +1 -0
  113. package/dist/charts/engine/graph/sizing.d.cts +33 -0
  114. package/dist/charts/engine/graph/sizing.d.ts +33 -0
  115. package/dist/charts/engine/graph/sizing.js +60 -0
  116. package/dist/charts/engine/graph/sizing.js.map +1 -0
  117. package/dist/charts/engine/graph/tree.cjs +2 -0
  118. package/dist/charts/engine/graph/tree.cjs.map +1 -0
  119. package/dist/charts/engine/graph/tree.d.cts +30 -0
  120. package/dist/charts/engine/graph/tree.d.ts +30 -0
  121. package/dist/charts/engine/graph/tree.js +218 -0
  122. package/dist/charts/engine/graph/tree.js.map +1 -0
  123. package/dist/charts/engine/graph/types.d.cts +626 -0
  124. package/dist/charts/engine/graph/types.d.ts +626 -0
  125. package/dist/charts/engine/graph/worker.cjs +46 -0
  126. package/dist/charts/engine/graph/worker.cjs.map +1 -0
  127. package/dist/charts/engine/graph/worker.d.cts +36 -0
  128. package/dist/charts/engine/graph/worker.d.ts +36 -0
  129. package/dist/charts/engine/graph/worker.js +129 -0
  130. package/dist/charts/engine/graph/worker.js.map +1 -0
  131. package/dist/charts/engine/items.cjs +1 -1
  132. package/dist/charts/engine/items.cjs.map +1 -1
  133. package/dist/charts/engine/items.d.cts +15 -2
  134. package/dist/charts/engine/items.d.ts +15 -2
  135. package/dist/charts/engine/items.js +257 -81
  136. package/dist/charts/engine/items.js.map +1 -1
  137. package/dist/charts/engine/labels.cjs +2 -0
  138. package/dist/charts/engine/labels.cjs.map +1 -0
  139. package/dist/charts/engine/labels.d.cts +13 -0
  140. package/dist/charts/engine/labels.d.ts +13 -0
  141. package/dist/charts/engine/labels.js +98 -0
  142. package/dist/charts/engine/labels.js.map +1 -0
  143. package/dist/charts/engine/layout.cjs +1 -1
  144. package/dist/charts/engine/layout.cjs.map +1 -1
  145. package/dist/charts/engine/layout.d.cts +43 -2
  146. package/dist/charts/engine/layout.d.ts +43 -2
  147. package/dist/charts/engine/layout.js +62 -12
  148. package/dist/charts/engine/layout.js.map +1 -1
  149. package/dist/charts/engine/locale.cjs +2 -0
  150. package/dist/charts/engine/locale.cjs.map +1 -0
  151. package/dist/charts/engine/locale.d.cts +33 -0
  152. package/dist/charts/engine/locale.d.ts +33 -0
  153. package/dist/charts/engine/locale.js +68 -0
  154. package/dist/charts/engine/locale.js.map +1 -0
  155. package/dist/charts/engine/model.cjs +1 -1
  156. package/dist/charts/engine/model.cjs.map +1 -1
  157. package/dist/charts/engine/model.d.cts +77 -2
  158. package/dist/charts/engine/model.d.ts +77 -2
  159. package/dist/charts/engine/model.js +304 -116
  160. package/dist/charts/engine/model.js.map +1 -1
  161. package/dist/charts/engine/orderbook/book.cjs +2 -0
  162. package/dist/charts/engine/orderbook/book.cjs.map +1 -0
  163. package/dist/charts/engine/orderbook/book.d.cts +28 -0
  164. package/dist/charts/engine/orderbook/book.d.ts +28 -0
  165. package/dist/charts/engine/orderbook/book.js +134 -0
  166. package/dist/charts/engine/orderbook/book.js.map +1 -0
  167. package/dist/charts/engine/orderbook/depth.cjs +2 -0
  168. package/dist/charts/engine/orderbook/depth.cjs.map +1 -0
  169. package/dist/charts/engine/orderbook/depth.d.cts +7 -0
  170. package/dist/charts/engine/orderbook/depth.d.ts +7 -0
  171. package/dist/charts/engine/orderbook/depth.js +413 -0
  172. package/dist/charts/engine/orderbook/depth.js.map +1 -0
  173. package/dist/charts/engine/orderbook/format.cjs +2 -0
  174. package/dist/charts/engine/orderbook/format.cjs.map +1 -0
  175. package/dist/charts/engine/orderbook/format.d.cts +49 -0
  176. package/dist/charts/engine/orderbook/format.d.ts +49 -0
  177. package/dist/charts/engine/orderbook/format.js +65 -0
  178. package/dist/charts/engine/orderbook/format.js.map +1 -0
  179. package/dist/charts/engine/orderbook/heatmap.cjs +2 -0
  180. package/dist/charts/engine/orderbook/heatmap.cjs.map +1 -0
  181. package/dist/charts/engine/orderbook/heatmap.d.cts +9 -0
  182. package/dist/charts/engine/orderbook/heatmap.d.ts +9 -0
  183. package/dist/charts/engine/orderbook/heatmap.js +822 -0
  184. package/dist/charts/engine/orderbook/heatmap.js.map +1 -0
  185. package/dist/charts/engine/orderbook/host.cjs +2 -0
  186. package/dist/charts/engine/orderbook/host.cjs.map +1 -0
  187. package/dist/charts/engine/orderbook/host.d.cts +50 -0
  188. package/dist/charts/engine/orderbook/host.d.ts +50 -0
  189. package/dist/charts/engine/orderbook/host.js +161 -0
  190. package/dist/charts/engine/orderbook/host.js.map +1 -0
  191. package/dist/charts/engine/orderbook/index.cjs +1 -0
  192. package/dist/charts/engine/orderbook/index.d.cts +6 -0
  193. package/dist/charts/engine/orderbook/index.d.ts +6 -0
  194. package/dist/charts/engine/orderbook/index.js +6 -0
  195. package/dist/charts/engine/orderbook/ladder.cjs +2 -0
  196. package/dist/charts/engine/orderbook/ladder.cjs.map +1 -0
  197. package/dist/charts/engine/orderbook/ladder.d.cts +6 -0
  198. package/dist/charts/engine/orderbook/ladder.d.ts +6 -0
  199. package/dist/charts/engine/orderbook/ladder.js +341 -0
  200. package/dist/charts/engine/orderbook/ladder.js.map +1 -0
  201. package/dist/charts/engine/orderbook/layout.cjs +2 -0
  202. package/dist/charts/engine/orderbook/layout.cjs.map +1 -0
  203. package/dist/charts/engine/orderbook/layout.d.cts +37 -0
  204. package/dist/charts/engine/orderbook/layout.d.ts +37 -0
  205. package/dist/charts/engine/orderbook/layout.js +70 -0
  206. package/dist/charts/engine/orderbook/layout.js.map +1 -0
  207. package/dist/charts/engine/orderbook/tape.cjs +2 -0
  208. package/dist/charts/engine/orderbook/tape.cjs.map +1 -0
  209. package/dist/charts/engine/orderbook/tape.d.cts +6 -0
  210. package/dist/charts/engine/orderbook/tape.d.ts +6 -0
  211. package/dist/charts/engine/orderbook/tape.js +450 -0
  212. package/dist/charts/engine/orderbook/tape.js.map +1 -0
  213. package/dist/charts/engine/orderbook/types.d.cts +751 -0
  214. package/dist/charts/engine/orderbook/types.d.ts +751 -0
  215. package/dist/charts/engine/overlay.cjs +1 -1
  216. package/dist/charts/engine/overlay.cjs.map +1 -1
  217. package/dist/charts/engine/overlay.d.cts +28 -2
  218. package/dist/charts/engine/overlay.d.ts +28 -2
  219. package/dist/charts/engine/overlay.js +138 -96
  220. package/dist/charts/engine/overlay.js.map +1 -1
  221. package/dist/charts/engine/presets.cjs +2 -2
  222. package/dist/charts/engine/presets.cjs.map +1 -1
  223. package/dist/charts/engine/presets.d.cts +273 -3
  224. package/dist/charts/engine/presets.d.ts +273 -3
  225. package/dist/charts/engine/presets.js +390 -38
  226. package/dist/charts/engine/presets.js.map +1 -1
  227. package/dist/charts/engine/renderers/detect.cjs +1 -1
  228. package/dist/charts/engine/renderers/detect.cjs.map +1 -1
  229. package/dist/charts/engine/renderers/detect.d.cts +2 -1
  230. package/dist/charts/engine/renderers/detect.d.ts +2 -1
  231. package/dist/charts/engine/renderers/detect.js +24 -19
  232. package/dist/charts/engine/renderers/detect.js.map +1 -1
  233. package/dist/charts/engine/renderers/gl.cjs +2 -0
  234. package/dist/charts/engine/renderers/gl.cjs.map +1 -0
  235. package/dist/charts/engine/renderers/gl.d.cts +21 -0
  236. package/dist/charts/engine/renderers/gl.d.ts +21 -0
  237. package/dist/charts/engine/renderers/gl.js +56 -0
  238. package/dist/charts/engine/renderers/gl.js.map +1 -0
  239. package/dist/charts/engine/renderers/shaders.cjs +143 -1
  240. package/dist/charts/engine/renderers/shaders.cjs.map +1 -1
  241. package/dist/charts/engine/renderers/shaders.d.cts +16 -0
  242. package/dist/charts/engine/renderers/shaders.d.ts +16 -0
  243. package/dist/charts/engine/renderers/shaders.js +139 -1
  244. package/dist/charts/engine/renderers/shaders.js.map +1 -1
  245. package/dist/charts/engine/renderers/webgl.cjs +2 -0
  246. package/dist/charts/engine/renderers/webgl.cjs.map +1 -0
  247. package/dist/charts/engine/renderers/webgl.d.cts +4 -0
  248. package/dist/charts/engine/renderers/webgl.d.ts +4 -0
  249. package/dist/charts/engine/renderers/webgl.js +133 -0
  250. package/dist/charts/engine/renderers/webgl.js.map +1 -0
  251. package/dist/charts/engine/renderers/webgl2.cjs +1 -1
  252. package/dist/charts/engine/renderers/webgl2.cjs.map +1 -1
  253. package/dist/charts/engine/renderers/webgl2.d.cts +0 -1
  254. package/dist/charts/engine/renderers/webgl2.d.ts +0 -1
  255. package/dist/charts/engine/renderers/webgl2.js +59 -108
  256. package/dist/charts/engine/renderers/webgl2.js.map +1 -1
  257. package/dist/charts/engine/scale.cjs +1 -1
  258. package/dist/charts/engine/scale.cjs.map +1 -1
  259. package/dist/charts/engine/scale.js +1 -1
  260. package/dist/charts/engine/scale.js.map +1 -1
  261. package/dist/charts/engine/scene.cjs +1 -1
  262. package/dist/charts/engine/scene.cjs.map +1 -1
  263. package/dist/charts/engine/scene.d.cts +71 -8
  264. package/dist/charts/engine/scene.d.ts +71 -8
  265. package/dist/charts/engine/scene.js +465 -183
  266. package/dist/charts/engine/scene.js.map +1 -1
  267. package/dist/charts/engine/shapes/bullet.cjs +2 -0
  268. package/dist/charts/engine/shapes/bullet.cjs.map +1 -0
  269. package/dist/charts/engine/shapes/bullet.d.cts +6 -0
  270. package/dist/charts/engine/shapes/bullet.d.ts +6 -0
  271. package/dist/charts/engine/shapes/bullet.js +255 -0
  272. package/dist/charts/engine/shapes/bullet.js.map +1 -0
  273. package/dist/charts/engine/shapes/calendar.cjs +2 -0
  274. package/dist/charts/engine/shapes/calendar.cjs.map +1 -0
  275. package/dist/charts/engine/shapes/calendar.d.cts +38 -0
  276. package/dist/charts/engine/shapes/calendar.d.ts +38 -0
  277. package/dist/charts/engine/shapes/calendar.js +369 -0
  278. package/dist/charts/engine/shapes/calendar.js.map +1 -0
  279. package/dist/charts/engine/shapes/canvas.cjs +1 -1
  280. package/dist/charts/engine/shapes/canvas.cjs.map +1 -1
  281. package/dist/charts/engine/shapes/canvas.d.cts +7 -0
  282. package/dist/charts/engine/shapes/canvas.d.ts +7 -0
  283. package/dist/charts/engine/shapes/canvas.js +22 -13
  284. package/dist/charts/engine/shapes/canvas.js.map +1 -1
  285. package/dist/charts/engine/shapes/chart.cjs +1 -1
  286. package/dist/charts/engine/shapes/chart.cjs.map +1 -1
  287. package/dist/charts/engine/shapes/chart.d.cts +3 -2
  288. package/dist/charts/engine/shapes/chart.d.ts +3 -2
  289. package/dist/charts/engine/shapes/chart.js +49 -27
  290. package/dist/charts/engine/shapes/chart.js.map +1 -1
  291. package/dist/charts/engine/shapes/chord.cjs +2 -0
  292. package/dist/charts/engine/shapes/chord.cjs.map +1 -0
  293. package/dist/charts/engine/shapes/chord.d.cts +18 -0
  294. package/dist/charts/engine/shapes/chord.d.ts +18 -0
  295. package/dist/charts/engine/shapes/chord.js +414 -0
  296. package/dist/charts/engine/shapes/chord.js.map +1 -0
  297. package/dist/charts/engine/shapes/draw.cjs +1 -1
  298. package/dist/charts/engine/shapes/draw.cjs.map +1 -1
  299. package/dist/charts/engine/shapes/draw.d.cts +7 -1
  300. package/dist/charts/engine/shapes/draw.d.ts +7 -1
  301. package/dist/charts/engine/shapes/draw.js +62 -19
  302. package/dist/charts/engine/shapes/draw.js.map +1 -1
  303. package/dist/charts/engine/shapes/funnel.cjs +1 -1
  304. package/dist/charts/engine/shapes/funnel.cjs.map +1 -1
  305. package/dist/charts/engine/shapes/funnel.js +3 -3
  306. package/dist/charts/engine/shapes/funnel.js.map +1 -1
  307. package/dist/charts/engine/shapes/gauge.cjs +1 -1
  308. package/dist/charts/engine/shapes/gauge.cjs.map +1 -1
  309. package/dist/charts/engine/shapes/gauge.js +132 -95
  310. package/dist/charts/engine/shapes/gauge.js.map +1 -1
  311. package/dist/charts/engine/shapes/hit.cjs +1 -1
  312. package/dist/charts/engine/shapes/hit.cjs.map +1 -1
  313. package/dist/charts/engine/shapes/hit.d.cts +5 -1
  314. package/dist/charts/engine/shapes/hit.d.ts +5 -1
  315. package/dist/charts/engine/shapes/hit.js +89 -39
  316. package/dist/charts/engine/shapes/hit.js.map +1 -1
  317. package/dist/charts/engine/shapes/index.d.cts +6 -2
  318. package/dist/charts/engine/shapes/index.d.ts +6 -2
  319. package/dist/charts/engine/shapes/labels.cjs +2 -0
  320. package/dist/charts/engine/shapes/labels.cjs.map +1 -0
  321. package/dist/charts/engine/shapes/labels.d.cts +14 -0
  322. package/dist/charts/engine/shapes/labels.d.ts +14 -0
  323. package/dist/charts/engine/shapes/labels.js +154 -0
  324. package/dist/charts/engine/shapes/labels.js.map +1 -0
  325. package/dist/charts/engine/shapes/layout.cjs +2 -2
  326. package/dist/charts/engine/shapes/layout.cjs.map +1 -1
  327. package/dist/charts/engine/shapes/layout.d.cts +10 -3
  328. package/dist/charts/engine/shapes/layout.d.ts +10 -3
  329. package/dist/charts/engine/shapes/layout.js +239 -124
  330. package/dist/charts/engine/shapes/layout.js.map +1 -1
  331. package/dist/charts/engine/shapes/pie.cjs +1 -1
  332. package/dist/charts/engine/shapes/pie.cjs.map +1 -1
  333. package/dist/charts/engine/shapes/pie.js +2 -2
  334. package/dist/charts/engine/shapes/pie.js.map +1 -1
  335. package/dist/charts/engine/shapes/radar.cjs +1 -1
  336. package/dist/charts/engine/shapes/radar.cjs.map +1 -1
  337. package/dist/charts/engine/shapes/radar.d.cts +2 -2
  338. package/dist/charts/engine/shapes/radar.d.ts +2 -2
  339. package/dist/charts/engine/shapes/radar.js +50 -49
  340. package/dist/charts/engine/shapes/radar.js.map +1 -1
  341. package/dist/charts/engine/shapes/radialBar.cjs +2 -0
  342. package/dist/charts/engine/shapes/radialBar.cjs.map +1 -0
  343. package/dist/charts/engine/shapes/radialBar.d.cts +8 -0
  344. package/dist/charts/engine/shapes/radialBar.d.ts +8 -0
  345. package/dist/charts/engine/shapes/radialBar.js +155 -0
  346. package/dist/charts/engine/shapes/radialBar.js.map +1 -0
  347. package/dist/charts/engine/shapes/runtime.cjs +1 -1
  348. package/dist/charts/engine/shapes/runtime.cjs.map +1 -1
  349. package/dist/charts/engine/shapes/runtime.d.cts +9 -2
  350. package/dist/charts/engine/shapes/runtime.d.ts +9 -2
  351. package/dist/charts/engine/shapes/runtime.js +61 -51
  352. package/dist/charts/engine/shapes/runtime.js.map +1 -1
  353. package/dist/charts/engine/shapes/sankey.cjs +2 -0
  354. package/dist/charts/engine/shapes/sankey.cjs.map +1 -0
  355. package/dist/charts/engine/shapes/sankey.d.cts +29 -0
  356. package/dist/charts/engine/shapes/sankey.d.ts +29 -0
  357. package/dist/charts/engine/shapes/sankey.js +372 -0
  358. package/dist/charts/engine/shapes/sankey.js.map +1 -0
  359. package/dist/charts/engine/shapes/scene.cjs +1 -1
  360. package/dist/charts/engine/shapes/scene.cjs.map +1 -1
  361. package/dist/charts/engine/shapes/scene.d.cts +92 -8
  362. package/dist/charts/engine/shapes/scene.d.ts +92 -8
  363. package/dist/charts/engine/shapes/scene.js +76 -31
  364. package/dist/charts/engine/shapes/scene.js.map +1 -1
  365. package/dist/charts/engine/shapes/sunburst.cjs +2 -0
  366. package/dist/charts/engine/shapes/sunburst.cjs.map +1 -0
  367. package/dist/charts/engine/shapes/sunburst.d.cts +6 -0
  368. package/dist/charts/engine/shapes/sunburst.d.ts +6 -0
  369. package/dist/charts/engine/shapes/sunburst.js +261 -0
  370. package/dist/charts/engine/shapes/sunburst.js.map +1 -0
  371. package/dist/charts/engine/shapes/treemap.cjs +1 -1
  372. package/dist/charts/engine/shapes/treemap.cjs.map +1 -1
  373. package/dist/charts/engine/shapes/treemap.js +2 -2
  374. package/dist/charts/engine/shapes/treemap.js.map +1 -1
  375. package/dist/charts/engine/shapes/types.d.cts +550 -12
  376. package/dist/charts/engine/shapes/types.d.ts +550 -12
  377. package/dist/charts/engine/signature.cjs +1 -1
  378. package/dist/charts/engine/signature.cjs.map +1 -1
  379. package/dist/charts/engine/signature.js +1 -1
  380. package/dist/charts/engine/signature.js.map +1 -1
  381. package/dist/charts/engine/three-d/canvas2d.cjs +2 -0
  382. package/dist/charts/engine/three-d/canvas2d.cjs.map +1 -0
  383. package/dist/charts/engine/three-d/canvas2d.d.cts +7 -0
  384. package/dist/charts/engine/three-d/canvas2d.d.ts +7 -0
  385. package/dist/charts/engine/three-d/canvas2d.js +128 -0
  386. package/dist/charts/engine/three-d/canvas2d.js.map +1 -0
  387. package/dist/charts/engine/three-d/chart.cjs +2 -0
  388. package/dist/charts/engine/three-d/chart.cjs.map +1 -0
  389. package/dist/charts/engine/three-d/chart.d.cts +15 -0
  390. package/dist/charts/engine/three-d/chart.d.ts +15 -0
  391. package/dist/charts/engine/three-d/chart.js +621 -0
  392. package/dist/charts/engine/three-d/chart.js.map +1 -0
  393. package/dist/charts/engine/three-d/colormap.cjs +2 -0
  394. package/dist/charts/engine/three-d/colormap.cjs.map +1 -0
  395. package/dist/charts/engine/three-d/colormap.d.cts +16 -0
  396. package/dist/charts/engine/three-d/colormap.d.ts +16 -0
  397. package/dist/charts/engine/three-d/colormap.js +166 -0
  398. package/dist/charts/engine/three-d/colormap.js.map +1 -0
  399. package/dist/charts/engine/three-d/contours.cjs +2 -0
  400. package/dist/charts/engine/three-d/contours.cjs.map +1 -0
  401. package/dist/charts/engine/three-d/contours.d.cts +7 -0
  402. package/dist/charts/engine/three-d/contours.d.ts +7 -0
  403. package/dist/charts/engine/three-d/contours.js +47 -0
  404. package/dist/charts/engine/three-d/contours.js.map +1 -0
  405. package/dist/charts/engine/three-d/detect.cjs +2 -0
  406. package/dist/charts/engine/three-d/detect.cjs.map +1 -0
  407. package/dist/charts/engine/three-d/detect.d.cts +12 -0
  408. package/dist/charts/engine/three-d/detect.d.ts +12 -0
  409. package/dist/charts/engine/three-d/detect.js +37 -0
  410. package/dist/charts/engine/three-d/detect.js.map +1 -0
  411. package/dist/charts/engine/three-d/dom.cjs +2 -0
  412. package/dist/charts/engine/three-d/dom.cjs.map +1 -0
  413. package/dist/charts/engine/three-d/dom.d.cts +21 -0
  414. package/dist/charts/engine/three-d/dom.d.ts +21 -0
  415. package/dist/charts/engine/three-d/dom.js +98 -0
  416. package/dist/charts/engine/three-d/dom.js.map +1 -0
  417. package/dist/charts/engine/three-d/geometry.cjs +2 -0
  418. package/dist/charts/engine/three-d/geometry.cjs.map +1 -0
  419. package/dist/charts/engine/three-d/geometry.d.cts +82 -0
  420. package/dist/charts/engine/three-d/geometry.d.ts +82 -0
  421. package/dist/charts/engine/three-d/geometry.js +545 -0
  422. package/dist/charts/engine/three-d/geometry.js.map +1 -0
  423. package/dist/charts/engine/three-d/hover.cjs +2 -0
  424. package/dist/charts/engine/three-d/hover.cjs.map +1 -0
  425. package/dist/charts/engine/three-d/hover.d.cts +25 -0
  426. package/dist/charts/engine/three-d/hover.d.ts +25 -0
  427. package/dist/charts/engine/three-d/hover.js +131 -0
  428. package/dist/charts/engine/three-d/hover.js.map +1 -0
  429. package/dist/charts/engine/three-d/index.cjs +1 -0
  430. package/dist/charts/engine/three-d/index.d.cts +2 -0
  431. package/dist/charts/engine/three-d/index.d.ts +2 -0
  432. package/dist/charts/engine/three-d/index.js +2 -0
  433. package/dist/charts/engine/three-d/labels.cjs +2 -0
  434. package/dist/charts/engine/three-d/labels.cjs.map +1 -0
  435. package/dist/charts/engine/three-d/labels.d.cts +23 -0
  436. package/dist/charts/engine/three-d/labels.d.ts +23 -0
  437. package/dist/charts/engine/three-d/labels.js +136 -0
  438. package/dist/charts/engine/three-d/labels.js.map +1 -0
  439. package/dist/charts/engine/three-d/math.cjs +2 -0
  440. package/dist/charts/engine/three-d/math.cjs.map +1 -0
  441. package/dist/charts/engine/three-d/math.d.cts +84 -0
  442. package/dist/charts/engine/three-d/math.d.ts +84 -0
  443. package/dist/charts/engine/three-d/math.js +150 -0
  444. package/dist/charts/engine/three-d/math.js.map +1 -0
  445. package/dist/charts/engine/three-d/model.cjs +2 -0
  446. package/dist/charts/engine/three-d/model.cjs.map +1 -0
  447. package/dist/charts/engine/three-d/model.d.cts +132 -0
  448. package/dist/charts/engine/three-d/model.d.ts +132 -0
  449. package/dist/charts/engine/three-d/model.js +279 -0
  450. package/dist/charts/engine/three-d/model.js.map +1 -0
  451. package/dist/charts/engine/three-d/overlay.cjs +2 -0
  452. package/dist/charts/engine/three-d/overlay.cjs.map +1 -0
  453. package/dist/charts/engine/three-d/overlay.d.cts +72 -0
  454. package/dist/charts/engine/three-d/overlay.d.ts +72 -0
  455. package/dist/charts/engine/three-d/overlay.js +204 -0
  456. package/dist/charts/engine/three-d/overlay.js.map +1 -0
  457. package/dist/charts/engine/three-d/pick.cjs +2 -0
  458. package/dist/charts/engine/three-d/pick.cjs.map +1 -0
  459. package/dist/charts/engine/three-d/pick.d.cts +52 -0
  460. package/dist/charts/engine/three-d/pick.d.ts +52 -0
  461. package/dist/charts/engine/three-d/pick.js +220 -0
  462. package/dist/charts/engine/three-d/pick.js.map +1 -0
  463. package/dist/charts/engine/three-d/render-types.cjs +2 -0
  464. package/dist/charts/engine/three-d/render-types.cjs.map +1 -0
  465. package/dist/charts/engine/three-d/render-types.d.cts +103 -0
  466. package/dist/charts/engine/three-d/render-types.d.ts +103 -0
  467. package/dist/charts/engine/three-d/render-types.js +12 -0
  468. package/dist/charts/engine/three-d/render-types.js.map +1 -0
  469. package/dist/charts/engine/three-d/shaders.cjs +311 -0
  470. package/dist/charts/engine/three-d/shaders.cjs.map +1 -0
  471. package/dist/charts/engine/three-d/shaders.d.cts +25 -0
  472. package/dist/charts/engine/three-d/shaders.d.ts +25 -0
  473. package/dist/charts/engine/three-d/shaders.js +210 -0
  474. package/dist/charts/engine/three-d/shaders.js.map +1 -0
  475. package/dist/charts/engine/three-d/sort.cjs +2 -0
  476. package/dist/charts/engine/three-d/sort.cjs.map +1 -0
  477. package/dist/charts/engine/three-d/sort.d.cts +29 -0
  478. package/dist/charts/engine/three-d/sort.d.ts +29 -0
  479. package/dist/charts/engine/three-d/sort.js +145 -0
  480. package/dist/charts/engine/three-d/sort.js.map +1 -0
  481. package/dist/charts/engine/three-d/types.d.cts +615 -0
  482. package/dist/charts/engine/three-d/types.d.ts +615 -0
  483. package/dist/charts/engine/three-d/webgl.cjs +2 -0
  484. package/dist/charts/engine/three-d/webgl.cjs.map +1 -0
  485. package/dist/charts/engine/three-d/webgl.d.cts +10 -0
  486. package/dist/charts/engine/three-d/webgl.d.ts +10 -0
  487. package/dist/charts/engine/three-d/webgl.js +132 -0
  488. package/dist/charts/engine/three-d/webgl.js.map +1 -0
  489. package/dist/charts/engine/three-d/webgpu.cjs +2 -0
  490. package/dist/charts/engine/three-d/webgpu.cjs.map +1 -0
  491. package/dist/charts/engine/three-d/webgpu.d.cts +5 -0
  492. package/dist/charts/engine/three-d/webgpu.d.ts +5 -0
  493. package/dist/charts/engine/three-d/webgpu.js +260 -0
  494. package/dist/charts/engine/three-d/webgpu.js.map +1 -0
  495. package/dist/charts/engine/time.cjs +1 -1
  496. package/dist/charts/engine/time.cjs.map +1 -1
  497. package/dist/charts/engine/time.d.cts +13 -4
  498. package/dist/charts/engine/time.d.ts +13 -4
  499. package/dist/charts/engine/time.js +156 -91
  500. package/dist/charts/engine/time.js.map +1 -1
  501. package/dist/charts/engine/trading/chart.cjs +2 -0
  502. package/dist/charts/engine/trading/chart.cjs.map +1 -0
  503. package/dist/charts/engine/trading/chart.d.cts +13 -0
  504. package/dist/charts/engine/trading/chart.d.ts +13 -0
  505. package/dist/charts/engine/trading/chart.js +2206 -0
  506. package/dist/charts/engine/trading/chart.js.map +1 -0
  507. package/dist/charts/engine/trading/drawings.cjs +3 -0
  508. package/dist/charts/engine/trading/drawings.cjs.map +1 -0
  509. package/dist/charts/engine/trading/drawings.d.cts +95 -0
  510. package/dist/charts/engine/trading/drawings.d.ts +95 -0
  511. package/dist/charts/engine/trading/drawings.js +423 -0
  512. package/dist/charts/engine/trading/drawings.js.map +1 -0
  513. package/dist/charts/engine/trading/format.cjs +2 -0
  514. package/dist/charts/engine/trading/format.cjs.map +1 -0
  515. package/dist/charts/engine/trading/format.d.cts +73 -0
  516. package/dist/charts/engine/trading/format.d.ts +73 -0
  517. package/dist/charts/engine/trading/format.js +163 -0
  518. package/dist/charts/engine/trading/format.js.map +1 -0
  519. package/dist/charts/engine/trading/geometry.cjs +2 -0
  520. package/dist/charts/engine/trading/geometry.cjs.map +1 -0
  521. package/dist/charts/engine/trading/geometry.d.cts +55 -0
  522. package/dist/charts/engine/trading/geometry.d.ts +55 -0
  523. package/dist/charts/engine/trading/geometry.js +131 -0
  524. package/dist/charts/engine/trading/geometry.js.map +1 -0
  525. package/dist/charts/engine/trading/index.cjs +1 -0
  526. package/dist/charts/engine/trading/index.d.cts +4 -0
  527. package/dist/charts/engine/trading/index.d.ts +4 -0
  528. package/dist/charts/engine/trading/index.js +4 -0
  529. package/dist/charts/engine/trading/indicators.cjs +2 -0
  530. package/dist/charts/engine/trading/indicators.cjs.map +1 -0
  531. package/dist/charts/engine/trading/indicators.d.cts +275 -0
  532. package/dist/charts/engine/trading/indicators.d.ts +275 -0
  533. package/dist/charts/engine/trading/indicators.js +544 -0
  534. package/dist/charts/engine/trading/indicators.js.map +1 -0
  535. package/dist/charts/engine/trading/labels.cjs +2 -0
  536. package/dist/charts/engine/trading/labels.cjs.map +1 -0
  537. package/dist/charts/engine/trading/labels.d.cts +7 -0
  538. package/dist/charts/engine/trading/labels.d.ts +7 -0
  539. package/dist/charts/engine/trading/labels.js +171 -0
  540. package/dist/charts/engine/trading/labels.js.map +1 -0
  541. package/dist/charts/engine/trading/scale.cjs +2 -0
  542. package/dist/charts/engine/trading/scale.cjs.map +1 -0
  543. package/dist/charts/engine/trading/scale.d.cts +46 -0
  544. package/dist/charts/engine/trading/scale.d.ts +46 -0
  545. package/dist/charts/engine/trading/scale.js +100 -0
  546. package/dist/charts/engine/trading/scale.js.map +1 -0
  547. package/dist/charts/engine/trading/store.cjs +2 -0
  548. package/dist/charts/engine/trading/store.cjs.map +1 -0
  549. package/dist/charts/engine/trading/store.d.cts +83 -0
  550. package/dist/charts/engine/trading/store.d.ts +83 -0
  551. package/dist/charts/engine/trading/store.js +150 -0
  552. package/dist/charts/engine/trading/store.js.map +1 -0
  553. package/dist/charts/engine/trading/studies.cjs +2 -0
  554. package/dist/charts/engine/trading/studies.cjs.map +1 -0
  555. package/dist/charts/engine/trading/studies.d.cts +85 -0
  556. package/dist/charts/engine/trading/studies.d.ts +85 -0
  557. package/dist/charts/engine/trading/studies.js +510 -0
  558. package/dist/charts/engine/trading/studies.js.map +1 -0
  559. package/dist/charts/engine/trading/sync.cjs +2 -0
  560. package/dist/charts/engine/trading/sync.cjs.map +1 -0
  561. package/dist/charts/engine/trading/sync.d.cts +8 -0
  562. package/dist/charts/engine/trading/sync.d.ts +8 -0
  563. package/dist/charts/engine/trading/sync.js +25 -0
  564. package/dist/charts/engine/trading/sync.js.map +1 -0
  565. package/dist/charts/engine/trading/types.d.cts +1131 -0
  566. package/dist/charts/engine/trading/types.d.ts +1131 -0
  567. package/dist/charts/engine/types.d.cts +247 -22
  568. package/dist/charts/engine/types.d.ts +247 -22
  569. package/dist/charts/index.cjs +1 -1
  570. package/dist/charts/index.d.cts +8 -4
  571. package/dist/charts/index.d.ts +8 -4
  572. package/dist/charts/index.js +30 -11
  573. package/dist/charts/react/Chart.cjs +1 -1
  574. package/dist/charts/react/Chart.cjs.map +1 -1
  575. package/dist/charts/react/Chart.d.cts +4 -4
  576. package/dist/charts/react/Chart.d.ts +4 -4
  577. package/dist/charts/react/Chart.js +5 -1
  578. package/dist/charts/react/Chart.js.map +1 -1
  579. package/dist/charts/react/charts.cjs +1 -1
  580. package/dist/charts/react/charts.cjs.map +1 -1
  581. package/dist/charts/react/charts.d.cts +39 -1
  582. package/dist/charts/react/charts.d.ts +39 -1
  583. package/dist/charts/react/charts.js +312 -128
  584. package/dist/charts/react/charts.js.map +1 -1
  585. package/dist/charts/react/graph.cjs +2 -0
  586. package/dist/charts/react/graph.cjs.map +1 -0
  587. package/dist/charts/react/graph.d.cts +213 -0
  588. package/dist/charts/react/graph.d.ts +213 -0
  589. package/dist/charts/react/graph.js +159 -0
  590. package/dist/charts/react/graph.js.map +1 -0
  591. package/dist/charts/react/orderbook.cjs +2 -0
  592. package/dist/charts/react/orderbook.cjs.map +1 -0
  593. package/dist/charts/react/orderbook.d.cts +142 -0
  594. package/dist/charts/react/orderbook.d.ts +142 -0
  595. package/dist/charts/react/orderbook.js +182 -0
  596. package/dist/charts/react/orderbook.js.map +1 -0
  597. package/dist/charts/react/shapes.cjs +1 -1
  598. package/dist/charts/react/shapes.cjs.map +1 -1
  599. package/dist/charts/react/shapes.d.cts +374 -9
  600. package/dist/charts/react/shapes.d.ts +374 -9
  601. package/dist/charts/react/shapes.js +323 -93
  602. package/dist/charts/react/shapes.js.map +1 -1
  603. package/dist/charts/react/three-d.cjs +2 -0
  604. package/dist/charts/react/three-d.cjs.map +1 -0
  605. package/dist/charts/react/three-d.d.cts +151 -0
  606. package/dist/charts/react/three-d.d.ts +151 -0
  607. package/dist/charts/react/three-d.js +154 -0
  608. package/dist/charts/react/three-d.js.map +1 -0
  609. package/dist/charts/react/trading.cjs +2 -0
  610. package/dist/charts/react/trading.cjs.map +1 -0
  611. package/dist/charts/react/trading.d.cts +145 -0
  612. package/dist/charts/react/trading.d.ts +145 -0
  613. package/dist/charts/react/trading.js +126 -0
  614. package/dist/charts/react/trading.js.map +1 -0
  615. package/dist/charts/react/types.d.cts +143 -8
  616. package/dist/charts/react/types.d.ts +143 -8
  617. package/dist/core/contracts.cjs +1 -1
  618. package/dist/core/contracts.cjs.map +1 -1
  619. package/dist/core/contracts.js +1 -1
  620. package/dist/core/contracts.js.map +1 -1
  621. package/dist/native/charts/src/canvas.cjs +1 -1
  622. package/dist/native/charts/src/canvas.js +9 -3
  623. package/dist/native/charts/src/engine/axis.cjs +1 -1
  624. package/dist/native/charts/src/engine/axis.cjs.map +1 -1
  625. package/dist/native/charts/src/engine/axis.js +43 -20
  626. package/dist/native/charts/src/engine/axis.js.map +1 -1
  627. package/dist/native/charts/src/engine/color.cjs +1 -1
  628. package/dist/native/charts/src/engine/color.cjs.map +1 -1
  629. package/dist/native/charts/src/engine/color.js +47 -5
  630. package/dist/native/charts/src/engine/color.js.map +1 -1
  631. package/dist/native/charts/src/engine/controller.cjs +2 -2
  632. package/dist/native/charts/src/engine/controller.cjs.map +1 -1
  633. package/dist/native/charts/src/engine/controller.js +415 -308
  634. package/dist/native/charts/src/engine/controller.js.map +1 -1
  635. package/dist/native/charts/src/engine/data.cjs +1 -1
  636. package/dist/native/charts/src/engine/data.cjs.map +1 -1
  637. package/dist/native/charts/src/engine/data.js +65 -49
  638. package/dist/native/charts/src/engine/data.js.map +1 -1
  639. package/dist/native/charts/src/engine/format.cjs +1 -1
  640. package/dist/native/charts/src/engine/format.cjs.map +1 -1
  641. package/dist/native/charts/src/engine/format.js +59 -21
  642. package/dist/native/charts/src/engine/format.js.map +1 -1
  643. package/dist/native/charts/src/engine/labels.cjs +2 -0
  644. package/dist/native/charts/src/engine/labels.cjs.map +1 -0
  645. package/dist/native/charts/src/engine/labels.js +98 -0
  646. package/dist/native/charts/src/engine/labels.js.map +1 -0
  647. package/dist/native/charts/src/engine/layout.cjs +1 -1
  648. package/dist/native/charts/src/engine/layout.cjs.map +1 -1
  649. package/dist/native/charts/src/engine/layout.js +62 -12
  650. package/dist/native/charts/src/engine/layout.js.map +1 -1
  651. package/dist/native/charts/src/engine/locale.cjs +2 -0
  652. package/dist/native/charts/src/engine/locale.cjs.map +1 -0
  653. package/dist/native/charts/src/engine/locale.js +60 -0
  654. package/dist/native/charts/src/engine/locale.js.map +1 -0
  655. package/dist/native/charts/src/engine/model.cjs +1 -1
  656. package/dist/native/charts/src/engine/model.cjs.map +1 -1
  657. package/dist/native/charts/src/engine/model.js +307 -119
  658. package/dist/native/charts/src/engine/model.js.map +1 -1
  659. package/dist/native/charts/src/engine/overlay.cjs +1 -1
  660. package/dist/native/charts/src/engine/overlay.cjs.map +1 -1
  661. package/dist/native/charts/src/engine/overlay.js +46 -23
  662. package/dist/native/charts/src/engine/overlay.js.map +1 -1
  663. package/dist/native/charts/src/engine/presets.cjs +2 -2
  664. package/dist/native/charts/src/engine/presets.cjs.map +1 -1
  665. package/dist/native/charts/src/engine/presets.js +470 -41
  666. package/dist/native/charts/src/engine/presets.js.map +1 -1
  667. package/dist/native/charts/src/engine/scale.cjs +1 -1
  668. package/dist/native/charts/src/engine/scale.cjs.map +1 -1
  669. package/dist/native/charts/src/engine/scale.js +1 -1
  670. package/dist/native/charts/src/engine/scale.js.map +1 -1
  671. package/dist/native/charts/src/engine/scene.cjs +1 -1
  672. package/dist/native/charts/src/engine/scene.cjs.map +1 -1
  673. package/dist/native/charts/src/engine/scene.js +489 -207
  674. package/dist/native/charts/src/engine/scene.js.map +1 -1
  675. package/dist/native/charts/src/engine/shapes/bullet.cjs +2 -0
  676. package/dist/native/charts/src/engine/shapes/bullet.cjs.map +1 -0
  677. package/dist/native/charts/src/engine/shapes/bullet.js +255 -0
  678. package/dist/native/charts/src/engine/shapes/bullet.js.map +1 -0
  679. package/dist/native/charts/src/engine/shapes/calendar.cjs +2 -0
  680. package/dist/native/charts/src/engine/shapes/calendar.cjs.map +1 -0
  681. package/dist/native/charts/src/engine/shapes/calendar.js +369 -0
  682. package/dist/native/charts/src/engine/shapes/calendar.js.map +1 -0
  683. package/dist/native/charts/src/engine/shapes/canvas.cjs +2 -0
  684. package/dist/native/charts/src/engine/shapes/canvas.cjs.map +1 -0
  685. package/dist/native/charts/src/engine/shapes/canvas.js +168 -0
  686. package/dist/native/charts/src/engine/shapes/canvas.js.map +1 -0
  687. package/dist/native/charts/src/engine/shapes/chord.cjs +2 -0
  688. package/dist/native/charts/src/engine/shapes/chord.cjs.map +1 -0
  689. package/dist/native/charts/src/engine/shapes/chord.js +414 -0
  690. package/dist/native/charts/src/engine/shapes/chord.js.map +1 -0
  691. package/dist/native/charts/src/engine/shapes/draw.cjs +2 -0
  692. package/dist/native/charts/src/engine/shapes/draw.cjs.map +1 -0
  693. package/dist/native/charts/src/engine/shapes/draw.js +195 -0
  694. package/dist/native/charts/src/engine/shapes/draw.js.map +1 -0
  695. package/dist/native/charts/src/engine/shapes/funnel.cjs +2 -0
  696. package/dist/native/charts/src/engine/shapes/funnel.cjs.map +1 -0
  697. package/dist/native/charts/src/engine/shapes/funnel.js +149 -0
  698. package/dist/native/charts/src/engine/shapes/funnel.js.map +1 -0
  699. package/dist/native/charts/src/engine/shapes/gauge.cjs +2 -0
  700. package/dist/native/charts/src/engine/shapes/gauge.cjs.map +1 -0
  701. package/dist/native/charts/src/engine/shapes/gauge.js +210 -0
  702. package/dist/native/charts/src/engine/shapes/gauge.js.map +1 -0
  703. package/dist/native/charts/src/engine/shapes/hit.cjs +2 -0
  704. package/dist/native/charts/src/engine/shapes/hit.cjs.map +1 -0
  705. package/dist/native/charts/src/engine/shapes/hit.js +135 -0
  706. package/dist/native/charts/src/engine/shapes/hit.js.map +1 -0
  707. package/dist/native/charts/src/engine/shapes/labels.cjs +2 -0
  708. package/dist/native/charts/src/engine/shapes/labels.cjs.map +1 -0
  709. package/dist/native/charts/src/engine/shapes/labels.js +154 -0
  710. package/dist/native/charts/src/engine/shapes/labels.js.map +1 -0
  711. package/dist/native/charts/src/engine/shapes/layout.cjs +3 -0
  712. package/dist/native/charts/src/engine/shapes/layout.cjs.map +1 -0
  713. package/dist/native/charts/src/engine/shapes/layout.js +358 -0
  714. package/dist/native/charts/src/engine/shapes/layout.js.map +1 -0
  715. package/dist/native/charts/src/engine/shapes/pie.cjs +2 -0
  716. package/dist/native/charts/src/engine/shapes/pie.cjs.map +1 -0
  717. package/dist/native/charts/src/engine/shapes/pie.js +302 -0
  718. package/dist/native/charts/src/engine/shapes/pie.js.map +1 -0
  719. package/dist/native/charts/src/engine/shapes/radar.cjs +2 -0
  720. package/dist/native/charts/src/engine/shapes/radar.cjs.map +1 -0
  721. package/dist/native/charts/src/engine/shapes/radar.js +198 -0
  722. package/dist/native/charts/src/engine/shapes/radar.js.map +1 -0
  723. package/dist/native/charts/src/engine/shapes/radialBar.cjs +2 -0
  724. package/dist/native/charts/src/engine/shapes/radialBar.cjs.map +1 -0
  725. package/dist/native/charts/src/engine/shapes/radialBar.js +155 -0
  726. package/dist/native/charts/src/engine/shapes/radialBar.js.map +1 -0
  727. package/dist/native/charts/src/engine/shapes/runtime.cjs +2 -0
  728. package/dist/native/charts/src/engine/shapes/runtime.cjs.map +1 -0
  729. package/dist/native/charts/src/engine/shapes/runtime.js +107 -0
  730. package/dist/native/charts/src/engine/shapes/runtime.js.map +1 -0
  731. package/dist/native/charts/src/engine/shapes/sankey.cjs +2 -0
  732. package/dist/native/charts/src/engine/shapes/sankey.cjs.map +1 -0
  733. package/dist/native/charts/src/engine/shapes/sankey.js +372 -0
  734. package/dist/native/charts/src/engine/shapes/sankey.js.map +1 -0
  735. package/dist/native/charts/src/engine/shapes/scene.cjs +2 -0
  736. package/dist/native/charts/src/engine/shapes/scene.cjs.map +1 -0
  737. package/dist/native/charts/src/engine/shapes/scene.js +168 -0
  738. package/dist/native/charts/src/engine/shapes/scene.js.map +1 -0
  739. package/dist/native/charts/src/engine/shapes/sunburst.cjs +2 -0
  740. package/dist/native/charts/src/engine/shapes/sunburst.cjs.map +1 -0
  741. package/dist/native/charts/src/engine/shapes/sunburst.js +261 -0
  742. package/dist/native/charts/src/engine/shapes/sunburst.js.map +1 -0
  743. package/dist/native/charts/src/engine/shapes/treemap.cjs +2 -0
  744. package/dist/native/charts/src/engine/shapes/treemap.cjs.map +1 -0
  745. package/dist/native/charts/src/engine/shapes/treemap.js +213 -0
  746. package/dist/native/charts/src/engine/shapes/treemap.js.map +1 -0
  747. package/dist/native/charts/src/engine/time.cjs +1 -1
  748. package/dist/native/charts/src/engine/time.cjs.map +1 -1
  749. package/dist/native/charts/src/engine/time.js +156 -91
  750. package/dist/native/charts/src/engine/time.js.map +1 -1
  751. package/dist/native/components/Chart/ChartBase.cjs +1 -1
  752. package/dist/native/components/Chart/ChartBase.cjs.map +1 -1
  753. package/dist/native/components/Chart/ChartBase.d.cts +1 -1
  754. package/dist/native/components/Chart/ChartBase.d.ts +1 -1
  755. package/dist/native/components/Chart/ChartBase.js +110 -107
  756. package/dist/native/components/Chart/ChartBase.js.map +1 -1
  757. package/dist/native/components/Chart/charts.cjs +1 -1
  758. package/dist/native/components/Chart/charts.cjs.map +1 -1
  759. package/dist/native/components/Chart/charts.d.cts +6 -1
  760. package/dist/native/components/Chart/charts.d.ts +6 -1
  761. package/dist/native/components/Chart/charts.js +53 -29
  762. package/dist/native/components/Chart/charts.js.map +1 -1
  763. package/dist/native/components/Chart/index.cjs +1 -1
  764. package/dist/native/components/Chart/index.d.cts +1 -1
  765. package/dist/native/components/Chart/index.d.ts +1 -1
  766. package/dist/native/components/Chart/index.js +2 -2
  767. package/dist/native/components/Chart/scene.cjs +1 -1
  768. package/dist/native/components/Chart/scene.cjs.map +1 -1
  769. package/dist/native/components/Chart/scene.js +315 -229
  770. package/dist/native/components/Chart/scene.js.map +1 -1
  771. package/dist/native/components/Chart/types.d.cts +26 -3
  772. package/dist/native/components/Chart/types.d.ts +26 -3
  773. package/dist/native/components/Charts/charts.cjs +2 -0
  774. package/dist/native/components/Charts/charts.cjs.map +1 -0
  775. package/dist/native/components/Charts/charts.d.cts +41 -0
  776. package/dist/native/components/Charts/charts.d.ts +41 -0
  777. package/dist/native/components/Charts/charts.js +350 -0
  778. package/dist/native/components/Charts/charts.js.map +1 -0
  779. package/dist/native/components/Charts/index.cjs +1 -0
  780. package/dist/native/components/Charts/index.d.cts +2 -0
  781. package/dist/native/components/Charts/index.d.ts +2 -0
  782. package/dist/native/components/Charts/index.js +2 -0
  783. package/dist/native/components/Charts/types.d.cts +155 -0
  784. package/dist/native/components/Charts/types.d.ts +155 -0
  785. package/dist/native/components/ShapeChart/ShapeChartBase.cjs +2 -0
  786. package/dist/native/components/ShapeChart/ShapeChartBase.cjs.map +1 -0
  787. package/dist/native/components/ShapeChart/ShapeChartBase.d.cts +24 -0
  788. package/dist/native/components/ShapeChart/ShapeChartBase.d.ts +24 -0
  789. package/dist/native/components/ShapeChart/ShapeChartBase.js +272 -0
  790. package/dist/native/components/ShapeChart/ShapeChartBase.js.map +1 -0
  791. package/dist/native/components/ShapeChart/charts.cjs +2 -0
  792. package/dist/native/components/ShapeChart/charts.cjs.map +1 -0
  793. package/dist/native/components/ShapeChart/charts.d.cts +43 -0
  794. package/dist/native/components/ShapeChart/charts.d.ts +43 -0
  795. package/dist/native/components/ShapeChart/charts.js +429 -0
  796. package/dist/native/components/ShapeChart/charts.js.map +1 -0
  797. package/dist/native/components/ShapeChart/draw.cjs +2 -0
  798. package/dist/native/components/ShapeChart/draw.cjs.map +1 -0
  799. package/dist/native/components/ShapeChart/draw.d.cts +4 -0
  800. package/dist/native/components/ShapeChart/draw.d.ts +4 -0
  801. package/dist/native/components/ShapeChart/draw.js +113 -0
  802. package/dist/native/components/ShapeChart/draw.js.map +1 -0
  803. package/dist/native/components/ShapeChart/geometry.cjs +2 -0
  804. package/dist/native/components/ShapeChart/geometry.cjs.map +1 -0
  805. package/dist/native/components/ShapeChart/geometry.d.cts +71 -0
  806. package/dist/native/components/ShapeChart/geometry.d.ts +71 -0
  807. package/dist/native/components/ShapeChart/geometry.js +681 -0
  808. package/dist/native/components/ShapeChart/geometry.js.map +1 -0
  809. package/dist/native/components/ShapeChart/index.cjs +1 -0
  810. package/dist/native/components/ShapeChart/index.d.cts +2 -0
  811. package/dist/native/components/ShapeChart/index.d.ts +2 -0
  812. package/dist/native/components/ShapeChart/index.js +2 -0
  813. package/dist/native/components/ShapeChart/recorder.cjs +2 -0
  814. package/dist/native/components/ShapeChart/recorder.cjs.map +1 -0
  815. package/dist/native/components/ShapeChart/recorder.d.cts +115 -0
  816. package/dist/native/components/ShapeChart/recorder.d.ts +115 -0
  817. package/dist/native/components/ShapeChart/recorder.js +583 -0
  818. package/dist/native/components/ShapeChart/recorder.js.map +1 -0
  819. package/dist/native/components/ShapeChart/types.d.cts +594 -0
  820. package/dist/native/components/ShapeChart/types.d.ts +594 -0
  821. package/dist/native/index.cjs +1 -1
  822. package/dist/native/index.d.cts +2 -0
  823. package/dist/native/index.d.ts +2 -0
  824. package/dist/native/index.js +14 -10
  825. package/dist/native/manifest.d.cts +6 -4
  826. package/dist/native/manifest.d.ts +6 -4
  827. package/dist/native/source/components/Chart/ChartBase.tsx +8 -1
  828. package/dist/native/source/components/Chart/charts.tsx +42 -6
  829. package/dist/native/source/components/Chart/index.ts +1 -0
  830. package/dist/native/source/components/Chart/scene.tsx +312 -98
  831. package/dist/native/source/components/Chart/types.ts +31 -1
  832. package/dist/native/source/components/Charts/charts.tsx +521 -0
  833. package/dist/native/source/components/Charts/index.ts +14 -0
  834. package/dist/native/source/components/Charts/types.ts +218 -0
  835. package/dist/native/source/components/ShapeChart/ShapeChartBase.tsx +486 -0
  836. package/dist/native/source/components/ShapeChart/charts.tsx +661 -0
  837. package/dist/native/source/components/ShapeChart/draw.tsx +201 -0
  838. package/dist/native/source/components/ShapeChart/geometry.ts +1366 -0
  839. package/dist/native/source/components/ShapeChart/index.ts +16 -0
  840. package/dist/native/source/components/ShapeChart/recorder.ts +845 -0
  841. package/dist/native/source/components/ShapeChart/types.ts +655 -0
  842. package/dist/native/source/index.ts +2 -0
  843. package/dist/native/source/manifest.ts +31 -4
  844. package/dist/taro/charts.d.ts +229 -4
  845. package/dist/taro/index.d.ts +1 -0
  846. package/dist/taro/index.js +8818 -2093
  847. package/dist/taro/manifest.d.ts +1 -0
  848. package/dist/taro/shape-charts.d.ts +629 -0
  849. package/dist/uni/AreaChart.vue +68 -0
  850. package/dist/uni/AreaChart.vue.d.ts +124 -0
  851. package/dist/uni/Badge.vue.d.ts +1 -1
  852. package/dist/uni/BarChart.vue.d.ts +5 -1
  853. package/dist/uni/BoxPlotChart.vue +66 -0
  854. package/dist/uni/BoxPlotChart.vue.d.ts +110 -0
  855. package/dist/uni/BubbleChart.vue +68 -0
  856. package/dist/uni/BubbleChart.vue.d.ts +110 -0
  857. package/dist/uni/BulletChart.vue +86 -0
  858. package/dist/uni/BulletChart.vue.d.ts +114 -0
  859. package/dist/uni/CalendarHeatmap.vue +92 -0
  860. package/dist/uni/CalendarHeatmap.vue.d.ts +131 -0
  861. package/dist/uni/CandlestickChart.vue +66 -0
  862. package/dist/uni/CandlestickChart.vue.d.ts +104 -0
  863. package/dist/uni/Chart.vue.d.ts +4 -0
  864. package/dist/uni/ChordChart.vue +93 -0
  865. package/dist/uni/ChordChart.vue.d.ts +136 -0
  866. package/dist/uni/DonutChart.vue +72 -0
  867. package/dist/uni/DonutChart.vue.d.ts +118 -0
  868. package/dist/uni/FunnelChart.vue +67 -0
  869. package/dist/uni/FunnelChart.vue.d.ts +108 -0
  870. package/dist/uni/GanttChart.vue +67 -0
  871. package/dist/uni/GanttChart.vue.d.ts +127 -0
  872. package/dist/uni/GaugeChart.vue +77 -0
  873. package/dist/uni/GaugeChart.vue.d.ts +127 -0
  874. package/dist/uni/HeatmapChart.vue +66 -0
  875. package/dist/uni/HeatmapChart.vue.d.ts +120 -0
  876. package/dist/uni/HistogramChart.vue +66 -0
  877. package/dist/uni/HistogramChart.vue.d.ts +125 -0
  878. package/dist/uni/HorizontalBarChart.vue +68 -0
  879. package/dist/uni/HorizontalBarChart.vue.d.ts +129 -0
  880. package/dist/uni/Input.vue.d.ts +1 -1
  881. package/dist/uni/LineChart.vue.d.ts +4 -0
  882. package/dist/uni/MixedChart.vue +68 -0
  883. package/dist/uni/MixedChart.vue.d.ts +110 -0
  884. package/dist/uni/NumberInput.vue.d.ts +1 -1
  885. package/dist/uni/PieChart.vue +72 -0
  886. package/dist/uni/PieChart.vue.d.ts +118 -0
  887. package/dist/uni/QuadrantChart.vue.d.ts +4 -0
  888. package/dist/uni/RadarChart.vue +67 -0
  889. package/dist/uni/RadarChart.vue.d.ts +114 -0
  890. package/dist/uni/RadialBarChart.vue +90 -0
  891. package/dist/uni/RadialBarChart.vue.d.ts +136 -0
  892. package/dist/uni/RangeAreaChart.vue +68 -0
  893. package/dist/uni/RangeAreaChart.vue.d.ts +106 -0
  894. package/dist/uni/ResponsiveGrid.vue.d.ts +1 -1
  895. package/dist/uni/SankeyChart.vue +88 -0
  896. package/dist/uni/SankeyChart.vue.d.ts +125 -0
  897. package/dist/uni/ScatterChart.vue.d.ts +4 -0
  898. package/dist/uni/ShapeChart.vue +73 -0
  899. package/dist/uni/ShapeChart.vue.d.ts +54 -0
  900. package/dist/uni/Sparkline.vue +58 -0
  901. package/dist/uni/Sparkline.vue.d.ts +81 -0
  902. package/dist/uni/SunburstChart.vue +90 -0
  903. package/dist/uni/SunburstChart.vue.d.ts +118 -0
  904. package/dist/uni/Textarea.vue.d.ts +1 -1
  905. package/dist/uni/TimePicker.vue.d.ts +1 -1
  906. package/dist/uni/ToastProvider.vue.d.ts +1 -1
  907. package/dist/uni/TreemapChart.vue +65 -0
  908. package/dist/uni/TreemapChart.vue.d.ts +104 -0
  909. package/dist/uni/WaterfallChart.vue +66 -0
  910. package/dist/uni/WaterfallChart.vue.d.ts +134 -0
  911. package/dist/uni/chart-canvas.d.ts +3 -0
  912. package/dist/uni/chart-canvas.js +4 -0
  913. package/dist/uni/chart-types.d.ts +240 -2
  914. package/dist/uni/chart-types.js +198 -0
  915. package/dist/uni/charts-canvas.js +8 -3
  916. package/dist/uni/index.d.ts +27 -1
  917. package/dist/uni/index.js +27 -1
  918. package/dist/uni/manifest.d.ts +279 -0
  919. package/dist/uni/manifest.js +397 -0
  920. package/dist/uni/named-chart-options.d.ts +95 -0
  921. package/dist/uni/named-chart-options.js +173 -0
  922. package/dist/uni/shape-chart-canvas.d.ts +53 -0
  923. package/dist/uni/shape-chart-canvas.js +333 -0
  924. package/dist/uni/shape-chart-types.d.ts +431 -0
  925. package/dist/uni/shape-chart-types.js +305 -0
  926. package/dist/vue/charts-global.d.ts +48 -0
  927. package/dist/vue/charts.d.ts +18 -0
  928. package/dist/vue/charts.js +56 -0
  929. package/dist/vue/charts.js.map +1 -0
  930. package/dist/vue/components/Chart/AreaChart.vue.d.ts +124 -0
  931. package/dist/vue/components/Chart/AreaChart.vue.js +7 -0
  932. package/dist/vue/components/Chart/AreaChart.vue.js.map +1 -0
  933. package/dist/vue/components/Chart/AreaChart.vue_vue_type_script_setup_true_lang.js +49 -0
  934. package/dist/vue/components/Chart/AreaChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  935. package/dist/vue/components/Chart/Bar3DChart.vue.d.ts +132 -0
  936. package/dist/vue/components/Chart/Bar3DChart.vue.js +7 -0
  937. package/dist/vue/components/Chart/Bar3DChart.vue.js.map +1 -0
  938. package/dist/vue/components/Chart/Bar3DChart.vue_vue_type_script_setup_true_lang.js +55 -0
  939. package/dist/vue/components/Chart/Bar3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  940. package/dist/vue/components/Chart/BarChart.vue.d.ts +123 -0
  941. package/dist/vue/components/Chart/BarChart.vue.js +7 -0
  942. package/dist/vue/components/Chart/BarChart.vue.js.map +1 -0
  943. package/dist/vue/components/Chart/BarChart.vue_vue_type_script_setup_true_lang.js +53 -0
  944. package/dist/vue/components/Chart/BarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  945. package/dist/vue/components/Chart/BoxPlotChart.vue.d.ts +120 -0
  946. package/dist/vue/components/Chart/BoxPlotChart.vue.js +7 -0
  947. package/dist/vue/components/Chart/BoxPlotChart.vue.js.map +1 -0
  948. package/dist/vue/components/Chart/BoxPlotChart.vue_vue_type_script_setup_true_lang.js +63 -0
  949. package/dist/vue/components/Chart/BoxPlotChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  950. package/dist/vue/components/Chart/BubbleChart.vue.d.ts +106 -0
  951. package/dist/vue/components/Chart/BubbleChart.vue.js +7 -0
  952. package/dist/vue/components/Chart/BubbleChart.vue.js.map +1 -0
  953. package/dist/vue/components/Chart/BubbleChart.vue_vue_type_script_setup_true_lang.js +52 -0
  954. package/dist/vue/components/Chart/BubbleChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  955. package/dist/vue/components/Chart/BulletChart.vue.d.ts +117 -0
  956. package/dist/vue/components/Chart/BulletChart.vue.js +7 -0
  957. package/dist/vue/components/Chart/BulletChart.vue.js.map +1 -0
  958. package/dist/vue/components/Chart/BulletChart.vue_vue_type_script_setup_true_lang.js +64 -0
  959. package/dist/vue/components/Chart/BulletChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  960. package/dist/vue/components/Chart/CalendarHeatmap.vue.d.ts +144 -0
  961. package/dist/vue/components/Chart/CalendarHeatmap.vue.js +7 -0
  962. package/dist/vue/components/Chart/CalendarHeatmap.vue.js.map +1 -0
  963. package/dist/vue/components/Chart/CalendarHeatmap.vue_vue_type_script_setup_true_lang.js +77 -0
  964. package/dist/vue/components/Chart/CalendarHeatmap.vue_vue_type_script_setup_true_lang.js.map +1 -0
  965. package/dist/vue/components/Chart/CandlestickChart.vue.d.ts +94 -0
  966. package/dist/vue/components/Chart/CandlestickChart.vue.js +7 -0
  967. package/dist/vue/components/Chart/CandlestickChart.vue.js.map +1 -0
  968. package/dist/vue/components/Chart/CandlestickChart.vue_vue_type_script_setup_true_lang.js +44 -0
  969. package/dist/vue/components/Chart/CandlestickChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  970. package/dist/vue/components/Chart/Chart.vue.d.ts +103 -0
  971. package/dist/vue/components/Chart/Chart.vue.js +7 -0
  972. package/dist/vue/components/Chart/Chart.vue.js.map +1 -0
  973. package/dist/vue/components/Chart/Chart.vue_vue_type_script_setup_true_lang.js +47 -0
  974. package/dist/vue/components/Chart/Chart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  975. package/dist/vue/components/Chart/ChordChart.vue.d.ts +153 -0
  976. package/dist/vue/components/Chart/ChordChart.vue.js +7 -0
  977. package/dist/vue/components/Chart/ChordChart.vue.js.map +1 -0
  978. package/dist/vue/components/Chart/ChordChart.vue_vue_type_script_setup_true_lang.js +81 -0
  979. package/dist/vue/components/Chart/ChordChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  980. package/dist/vue/components/Chart/DependencyGraph.vue.d.ts +179 -0
  981. package/dist/vue/components/Chart/DependencyGraph.vue.js +7 -0
  982. package/dist/vue/components/Chart/DependencyGraph.vue.js.map +1 -0
  983. package/dist/vue/components/Chart/DependencyGraph.vue_vue_type_script_setup_true_lang.js +65 -0
  984. package/dist/vue/components/Chart/DependencyGraph.vue_vue_type_script_setup_true_lang.js.map +1 -0
  985. package/dist/vue/components/Chart/DepthChart.vue.d.ts +139 -0
  986. package/dist/vue/components/Chart/DepthChart.vue.js +7 -0
  987. package/dist/vue/components/Chart/DepthChart.vue.js.map +1 -0
  988. package/dist/vue/components/Chart/DepthChart.vue_vue_type_script_setup_true_lang.js +42 -0
  989. package/dist/vue/components/Chart/DepthChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  990. package/dist/vue/components/Chart/DonutChart.vue.d.ts +104 -0
  991. package/dist/vue/components/Chart/DonutChart.vue.js +7 -0
  992. package/dist/vue/components/Chart/DonutChart.vue.js.map +1 -0
  993. package/dist/vue/components/Chart/DonutChart.vue_vue_type_script_setup_true_lang.js +53 -0
  994. package/dist/vue/components/Chart/DonutChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  995. package/dist/vue/components/Chart/FunnelChart.vue.d.ts +105 -0
  996. package/dist/vue/components/Chart/FunnelChart.vue.js +7 -0
  997. package/dist/vue/components/Chart/FunnelChart.vue.js.map +1 -0
  998. package/dist/vue/components/Chart/FunnelChart.vue_vue_type_script_setup_true_lang.js +58 -0
  999. package/dist/vue/components/Chart/FunnelChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1000. package/dist/vue/components/Chart/GanttChart.vue.d.ts +136 -0
  1001. package/dist/vue/components/Chart/GanttChart.vue.js +7 -0
  1002. package/dist/vue/components/Chart/GanttChart.vue.js.map +1 -0
  1003. package/dist/vue/components/Chart/GanttChart.vue_vue_type_script_setup_true_lang.js +101 -0
  1004. package/dist/vue/components/Chart/GanttChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1005. package/dist/vue/components/Chart/GaugeChart.vue.d.ts +132 -0
  1006. package/dist/vue/components/Chart/GaugeChart.vue.js +7 -0
  1007. package/dist/vue/components/Chart/GaugeChart.vue.js.map +1 -0
  1008. package/dist/vue/components/Chart/GaugeChart.vue_vue_type_script_setup_true_lang.js +71 -0
  1009. package/dist/vue/components/Chart/GaugeChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1010. package/dist/vue/components/Chart/GraphChart.vue.d.ts +184 -0
  1011. package/dist/vue/components/Chart/GraphChart.vue.js +7 -0
  1012. package/dist/vue/components/Chart/GraphChart.vue.js.map +1 -0
  1013. package/dist/vue/components/Chart/GraphChart.vue_vue_type_script_setup_true_lang.js +62 -0
  1014. package/dist/vue/components/Chart/GraphChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1015. package/dist/vue/components/Chart/HeatmapChart.vue.d.ts +129 -0
  1016. package/dist/vue/components/Chart/HeatmapChart.vue.js +7 -0
  1017. package/dist/vue/components/Chart/HeatmapChart.vue.js.map +1 -0
  1018. package/dist/vue/components/Chart/HeatmapChart.vue_vue_type_script_setup_true_lang.js +67 -0
  1019. package/dist/vue/components/Chart/HeatmapChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1020. package/dist/vue/components/Chart/HistogramChart.vue.d.ts +132 -0
  1021. package/dist/vue/components/Chart/HistogramChart.vue.js +7 -0
  1022. package/dist/vue/components/Chart/HistogramChart.vue.js.map +1 -0
  1023. package/dist/vue/components/Chart/HistogramChart.vue_vue_type_script_setup_true_lang.js +66 -0
  1024. package/dist/vue/components/Chart/HistogramChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1025. package/dist/vue/components/Chart/HorizontalBarChart.vue.d.ts +121 -0
  1026. package/dist/vue/components/Chart/HorizontalBarChart.vue.js +7 -0
  1027. package/dist/vue/components/Chart/HorizontalBarChart.vue.js.map +1 -0
  1028. package/dist/vue/components/Chart/HorizontalBarChart.vue_vue_type_script_setup_true_lang.js +55 -0
  1029. package/dist/vue/components/Chart/HorizontalBarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1030. package/dist/vue/components/Chart/Line3DChart.vue.d.ts +121 -0
  1031. package/dist/vue/components/Chart/Line3DChart.vue.js +7 -0
  1032. package/dist/vue/components/Chart/Line3DChart.vue.js.map +1 -0
  1033. package/dist/vue/components/Chart/Line3DChart.vue_vue_type_script_setup_true_lang.js +47 -0
  1034. package/dist/vue/components/Chart/Line3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1035. package/dist/vue/components/Chart/LineChart.vue.d.ts +125 -0
  1036. package/dist/vue/components/Chart/LineChart.vue.js +7 -0
  1037. package/dist/vue/components/Chart/LineChart.vue.js.map +1 -0
  1038. package/dist/vue/components/Chart/LineChart.vue_vue_type_script_setup_true_lang.js +50 -0
  1039. package/dist/vue/components/Chart/LineChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1040. package/dist/vue/components/Chart/MixedChart.vue.d.ts +103 -0
  1041. package/dist/vue/components/Chart/MixedChart.vue.js +7 -0
  1042. package/dist/vue/components/Chart/MixedChart.vue.js.map +1 -0
  1043. package/dist/vue/components/Chart/MixedChart.vue_vue_type_script_setup_true_lang.js +47 -0
  1044. package/dist/vue/components/Chart/MixedChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1045. package/dist/vue/components/Chart/OrderBook.vue.d.ts +125 -0
  1046. package/dist/vue/components/Chart/OrderBook.vue.js +7 -0
  1047. package/dist/vue/components/Chart/OrderBook.vue.js.map +1 -0
  1048. package/dist/vue/components/Chart/OrderBook.vue_vue_type_script_setup_true_lang.js +38 -0
  1049. package/dist/vue/components/Chart/OrderBook.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1050. package/dist/vue/components/Chart/OrderBookHeatmap.vue.d.ts +130 -0
  1051. package/dist/vue/components/Chart/OrderBookHeatmap.vue.js +7 -0
  1052. package/dist/vue/components/Chart/OrderBookHeatmap.vue.js.map +1 -0
  1053. package/dist/vue/components/Chart/OrderBookHeatmap.vue_vue_type_script_setup_true_lang.js +46 -0
  1054. package/dist/vue/components/Chart/OrderBookHeatmap.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1055. package/dist/vue/components/Chart/PieChart.vue.d.ts +104 -0
  1056. package/dist/vue/components/Chart/PieChart.vue.js +7 -0
  1057. package/dist/vue/components/Chart/PieChart.vue.js.map +1 -0
  1058. package/dist/vue/components/Chart/PieChart.vue_vue_type_script_setup_true_lang.js +53 -0
  1059. package/dist/vue/components/Chart/PieChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1060. package/dist/vue/components/Chart/QuadrantChart.vue.d.ts +186 -0
  1061. package/dist/vue/components/Chart/QuadrantChart.vue.js +7 -0
  1062. package/dist/vue/components/Chart/QuadrantChart.vue.js.map +1 -0
  1063. package/dist/vue/components/Chart/QuadrantChart.vue_vue_type_script_setup_true_lang.js +107 -0
  1064. package/dist/vue/components/Chart/QuadrantChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1065. package/dist/vue/components/Chart/RadarChart.vue.d.ts +111 -0
  1066. package/dist/vue/components/Chart/RadarChart.vue.js +7 -0
  1067. package/dist/vue/components/Chart/RadarChart.vue.js.map +1 -0
  1068. package/dist/vue/components/Chart/RadarChart.vue_vue_type_script_setup_true_lang.js +61 -0
  1069. package/dist/vue/components/Chart/RadarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1070. package/dist/vue/components/Chart/RadialBarChart.vue.d.ts +147 -0
  1071. package/dist/vue/components/Chart/RadialBarChart.vue.js +7 -0
  1072. package/dist/vue/components/Chart/RadialBarChart.vue.js.map +1 -0
  1073. package/dist/vue/components/Chart/RadialBarChart.vue_vue_type_script_setup_true_lang.js +78 -0
  1074. package/dist/vue/components/Chart/RadialBarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1075. package/dist/vue/components/Chart/RangeAreaChart.vue.d.ts +106 -0
  1076. package/dist/vue/components/Chart/RangeAreaChart.vue.js +7 -0
  1077. package/dist/vue/components/Chart/RangeAreaChart.vue.js.map +1 -0
  1078. package/dist/vue/components/Chart/RangeAreaChart.vue_vue_type_script_setup_true_lang.js +51 -0
  1079. package/dist/vue/components/Chart/RangeAreaChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1080. package/dist/vue/components/Chart/SankeyChart.vue.d.ts +132 -0
  1081. package/dist/vue/components/Chart/SankeyChart.vue.js +7 -0
  1082. package/dist/vue/components/Chart/SankeyChart.vue.js.map +1 -0
  1083. package/dist/vue/components/Chart/SankeyChart.vue_vue_type_script_setup_true_lang.js +71 -0
  1084. package/dist/vue/components/Chart/SankeyChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1085. package/dist/vue/components/Chart/Scatter3DChart.vue.d.ts +121 -0
  1086. package/dist/vue/components/Chart/Scatter3DChart.vue.js +7 -0
  1087. package/dist/vue/components/Chart/Scatter3DChart.vue.js.map +1 -0
  1088. package/dist/vue/components/Chart/Scatter3DChart.vue_vue_type_script_setup_true_lang.js +47 -0
  1089. package/dist/vue/components/Chart/Scatter3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1090. package/dist/vue/components/Chart/ScatterChart.vue.d.ts +94 -0
  1091. package/dist/vue/components/Chart/ScatterChart.vue.js +7 -0
  1092. package/dist/vue/components/Chart/ScatterChart.vue.js.map +1 -0
  1093. package/dist/vue/components/Chart/ScatterChart.vue_vue_type_script_setup_true_lang.js +44 -0
  1094. package/dist/vue/components/Chart/ScatterChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1095. package/dist/vue/components/Chart/ShapeChart.vue.d.ts +39 -0
  1096. package/dist/vue/components/Chart/ShapeChart.vue.js +7 -0
  1097. package/dist/vue/components/Chart/ShapeChart.vue.js.map +1 -0
  1098. package/dist/vue/components/Chart/ShapeChart.vue_vue_type_script_setup_true_lang.js +43 -0
  1099. package/dist/vue/components/Chart/ShapeChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1100. package/dist/vue/components/Chart/Sparkline.vue.d.ts +90 -0
  1101. package/dist/vue/components/Chart/Sparkline.vue.js +7 -0
  1102. package/dist/vue/components/Chart/Sparkline.vue.js.map +1 -0
  1103. package/dist/vue/components/Chart/Sparkline.vue_vue_type_script_setup_true_lang.js +66 -0
  1104. package/dist/vue/components/Chart/Sparkline.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1105. package/dist/vue/components/Chart/SunburstChart.vue.d.ts +123 -0
  1106. package/dist/vue/components/Chart/SunburstChart.vue.js +7 -0
  1107. package/dist/vue/components/Chart/SunburstChart.vue.js.map +1 -0
  1108. package/dist/vue/components/Chart/SunburstChart.vue_vue_type_script_setup_true_lang.js +68 -0
  1109. package/dist/vue/components/Chart/SunburstChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1110. package/dist/vue/components/Chart/Surface3DChart.vue.d.ts +143 -0
  1111. package/dist/vue/components/Chart/Surface3DChart.vue.js +7 -0
  1112. package/dist/vue/components/Chart/Surface3DChart.vue.js.map +1 -0
  1113. package/dist/vue/components/Chart/Surface3DChart.vue_vue_type_script_setup_true_lang.js +60 -0
  1114. package/dist/vue/components/Chart/Surface3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1115. package/dist/vue/components/Chart/TimeAndSales.vue.d.ts +116 -0
  1116. package/dist/vue/components/Chart/TimeAndSales.vue.js +7 -0
  1117. package/dist/vue/components/Chart/TimeAndSales.vue.js.map +1 -0
  1118. package/dist/vue/components/Chart/TimeAndSales.vue_vue_type_script_setup_true_lang.js +46 -0
  1119. package/dist/vue/components/Chart/TimeAndSales.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1120. package/dist/vue/components/Chart/TradingChart.vue.d.ts +208 -0
  1121. package/dist/vue/components/Chart/TradingChart.vue.js +7 -0
  1122. package/dist/vue/components/Chart/TradingChart.vue.js.map +1 -0
  1123. package/dist/vue/components/Chart/TradingChart.vue_vue_type_script_setup_true_lang.js +101 -0
  1124. package/dist/vue/components/Chart/TradingChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1125. package/dist/vue/components/Chart/TreeChart.vue.d.ts +172 -0
  1126. package/dist/vue/components/Chart/TreeChart.vue.js +7 -0
  1127. package/dist/vue/components/Chart/TreeChart.vue.js.map +1 -0
  1128. package/dist/vue/components/Chart/TreeChart.vue_vue_type_script_setup_true_lang.js +56 -0
  1129. package/dist/vue/components/Chart/TreeChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1130. package/dist/vue/components/Chart/TreemapChart.vue.d.ts +97 -0
  1131. package/dist/vue/components/Chart/TreemapChart.vue.js +7 -0
  1132. package/dist/vue/components/Chart/TreemapChart.vue.js.map +1 -0
  1133. package/dist/vue/components/Chart/TreemapChart.vue_vue_type_script_setup_true_lang.js +54 -0
  1134. package/dist/vue/components/Chart/TreemapChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1135. package/dist/vue/components/Chart/WaterfallChart.vue.d.ts +143 -0
  1136. package/dist/vue/components/Chart/WaterfallChart.vue.js +7 -0
  1137. package/dist/vue/components/Chart/WaterfallChart.vue.js.map +1 -0
  1138. package/dist/vue/components/Chart/WaterfallChart.vue_vue_type_script_setup_true_lang.js +74 -0
  1139. package/dist/vue/components/Chart/WaterfallChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1140. package/dist/vue/components/Chart/cartesian.d.ts +47 -0
  1141. package/dist/vue/components/Chart/cartesian.js +56 -0
  1142. package/dist/vue/components/Chart/cartesian.js.map +1 -0
  1143. package/dist/vue/components/Chart/engine.d.ts +35 -0
  1144. package/dist/vue/components/Chart/engine.js +35 -0
  1145. package/dist/vue/components/Chart/engine.js.map +1 -0
  1146. package/dist/vue/components/Chart/graph.d.ts +153 -0
  1147. package/dist/vue/components/Chart/graph.js +135 -0
  1148. package/dist/vue/components/Chart/graph.js.map +1 -0
  1149. package/dist/vue/components/Chart/index.d.ts +45 -0
  1150. package/dist/vue/components/Chart/index.js +44 -0
  1151. package/dist/vue/components/Chart/orderbook.d.ts +363 -0
  1152. package/dist/vue/components/Chart/orderbook.js +128 -0
  1153. package/dist/vue/components/Chart/orderbook.js.map +1 -0
  1154. package/dist/vue/components/Chart/props.d.ts +188 -0
  1155. package/dist/vue/components/Chart/props.js +92 -0
  1156. package/dist/vue/components/Chart/props.js.map +1 -0
  1157. package/dist/vue/components/Chart/shape.d.ts +41 -0
  1158. package/dist/vue/components/Chart/shape.js +42 -0
  1159. package/dist/vue/components/Chart/shape.js.map +1 -0
  1160. package/dist/vue/components/Chart/three-d.d.ts +106 -0
  1161. package/dist/vue/components/Chart/three-d.js +88 -0
  1162. package/dist/vue/components/Chart/three-d.js.map +1 -0
  1163. package/dist/vue/components/Chart/trading.d.ts +127 -0
  1164. package/dist/vue/components/Chart/trading.js +63 -0
  1165. package/dist/vue/components/Chart/trading.js.map +1 -0
  1166. package/dist/vue/components/Chart/types.d.ts +209 -0
  1167. package/dist/vue/global.d.ts +2 -0
  1168. package/dist/vue/groups/charts.d.ts +1 -0
  1169. package/dist/vue/groups/charts.js +95 -0
  1170. package/dist/vue/groups/charts.js.map +1 -0
  1171. package/dist/vue/index.d.ts +1 -0
  1172. package/dist/vue/index.js +67 -23
  1173. package/dist/vue/internal/register.d.ts +7 -0
  1174. package/dist/vue/internal/register.js +14 -0
  1175. package/dist/vue/internal/register.js.map +1 -0
  1176. package/dist/vue/plugin.d.ts +9 -4
  1177. package/dist/vue/plugin.js +7 -10
  1178. package/dist/vue/plugin.js.map +1 -1
  1179. package/dist/weapp/area-chart/index.js +1 -0
  1180. package/dist/weapp/area-chart/index.json +1 -0
  1181. package/dist/weapp/area-chart/index.wxml +1 -0
  1182. package/dist/weapp/area-chart/index.wxss +1 -0
  1183. package/dist/weapp/box-plot-chart/index.js +1 -0
  1184. package/dist/weapp/box-plot-chart/index.json +1 -0
  1185. package/dist/weapp/box-plot-chart/index.wxml +1 -0
  1186. package/dist/weapp/box-plot-chart/index.wxss +1 -0
  1187. package/dist/weapp/bubble-chart/index.js +1 -0
  1188. package/dist/weapp/bubble-chart/index.json +1 -0
  1189. package/dist/weapp/bubble-chart/index.wxml +1 -0
  1190. package/dist/weapp/bubble-chart/index.wxss +1 -0
  1191. package/dist/weapp/bullet-chart/index.js +1 -0
  1192. package/dist/weapp/bullet-chart/index.json +1 -0
  1193. package/dist/weapp/bullet-chart/index.wxml +1 -0
  1194. package/dist/weapp/bullet-chart/index.wxss +1 -0
  1195. package/dist/weapp/calendar-heatmap/index.js +1 -0
  1196. package/dist/weapp/calendar-heatmap/index.json +1 -0
  1197. package/dist/weapp/calendar-heatmap/index.wxml +1 -0
  1198. package/dist/weapp/calendar-heatmap/index.wxss +1 -0
  1199. package/dist/weapp/candlestick-chart/index.js +1 -0
  1200. package/dist/weapp/candlestick-chart/index.json +1 -0
  1201. package/dist/weapp/candlestick-chart/index.wxml +1 -0
  1202. package/dist/weapp/candlestick-chart/index.wxss +1 -0
  1203. package/dist/weapp/charts/canvas.js +12976 -0
  1204. package/dist/weapp/charts/core.d.ts +2 -0
  1205. package/dist/weapp/charts/core.js +42 -0
  1206. package/dist/weapp/chord-chart/index.js +1 -0
  1207. package/dist/weapp/chord-chart/index.json +1 -0
  1208. package/dist/weapp/chord-chart/index.wxml +1 -0
  1209. package/dist/weapp/chord-chart/index.wxss +1 -0
  1210. package/dist/weapp/controls.js +1495 -4480
  1211. package/dist/weapp/donut-chart/index.js +1 -0
  1212. package/dist/weapp/donut-chart/index.json +1 -0
  1213. package/dist/weapp/donut-chart/index.wxml +1 -0
  1214. package/dist/weapp/donut-chart/index.wxss +1 -0
  1215. package/dist/weapp/funnel-chart/index.js +1 -0
  1216. package/dist/weapp/funnel-chart/index.json +1 -0
  1217. package/dist/weapp/funnel-chart/index.wxml +1 -0
  1218. package/dist/weapp/funnel-chart/index.wxss +1 -0
  1219. package/dist/weapp/gantt-chart/index.js +1 -0
  1220. package/dist/weapp/gantt-chart/index.json +1 -0
  1221. package/dist/weapp/gantt-chart/index.wxml +1 -0
  1222. package/dist/weapp/gantt-chart/index.wxss +1 -0
  1223. package/dist/weapp/gauge-chart/index.js +1 -0
  1224. package/dist/weapp/gauge-chart/index.json +1 -0
  1225. package/dist/weapp/gauge-chart/index.wxml +1 -0
  1226. package/dist/weapp/gauge-chart/index.wxss +1 -0
  1227. package/dist/weapp/heatmap-chart/index.js +1 -0
  1228. package/dist/weapp/heatmap-chart/index.json +1 -0
  1229. package/dist/weapp/heatmap-chart/index.wxml +1 -0
  1230. package/dist/weapp/heatmap-chart/index.wxss +1 -0
  1231. package/dist/weapp/histogram-chart/index.js +1 -0
  1232. package/dist/weapp/histogram-chart/index.json +1 -0
  1233. package/dist/weapp/histogram-chart/index.wxml +1 -0
  1234. package/dist/weapp/histogram-chart/index.wxss +1 -0
  1235. package/dist/weapp/horizontal-bar-chart/index.js +1 -0
  1236. package/dist/weapp/horizontal-bar-chart/index.json +1 -0
  1237. package/dist/weapp/horizontal-bar-chart/index.wxml +1 -0
  1238. package/dist/weapp/horizontal-bar-chart/index.wxss +1 -0
  1239. package/dist/weapp/mixed-chart/index.js +1 -0
  1240. package/dist/weapp/mixed-chart/index.json +1 -0
  1241. package/dist/weapp/mixed-chart/index.wxml +1 -0
  1242. package/dist/weapp/mixed-chart/index.wxss +1 -0
  1243. package/dist/weapp/pie-chart/index.js +1 -0
  1244. package/dist/weapp/pie-chart/index.json +1 -0
  1245. package/dist/weapp/pie-chart/index.wxml +1 -0
  1246. package/dist/weapp/pie-chart/index.wxss +1 -0
  1247. package/dist/weapp/radar-chart/index.js +1 -0
  1248. package/dist/weapp/radar-chart/index.json +1 -0
  1249. package/dist/weapp/radar-chart/index.wxml +1 -0
  1250. package/dist/weapp/radar-chart/index.wxss +1 -0
  1251. package/dist/weapp/radial-bar-chart/index.js +1 -0
  1252. package/dist/weapp/radial-bar-chart/index.json +1 -0
  1253. package/dist/weapp/radial-bar-chart/index.wxml +1 -0
  1254. package/dist/weapp/radial-bar-chart/index.wxss +1 -0
  1255. package/dist/weapp/range-area-chart/index.js +1 -0
  1256. package/dist/weapp/range-area-chart/index.json +1 -0
  1257. package/dist/weapp/range-area-chart/index.wxml +1 -0
  1258. package/dist/weapp/range-area-chart/index.wxss +1 -0
  1259. package/dist/weapp/sankey-chart/index.js +1 -0
  1260. package/dist/weapp/sankey-chart/index.json +1 -0
  1261. package/dist/weapp/sankey-chart/index.wxml +1 -0
  1262. package/dist/weapp/sankey-chart/index.wxss +1 -0
  1263. package/dist/weapp/shape-chart/index.js +1 -0
  1264. package/dist/weapp/shape-chart/index.json +1 -0
  1265. package/dist/weapp/shape-chart/index.wxml +1 -0
  1266. package/dist/weapp/shape-chart/index.wxss +1 -0
  1267. package/dist/weapp/sparkline/index.js +1 -0
  1268. package/dist/weapp/sparkline/index.json +1 -0
  1269. package/dist/weapp/sparkline/index.wxml +1 -0
  1270. package/dist/weapp/sparkline/index.wxss +1 -0
  1271. package/dist/weapp/sunburst-chart/index.js +1 -0
  1272. package/dist/weapp/sunburst-chart/index.json +1 -0
  1273. package/dist/weapp/sunburst-chart/index.wxml +1 -0
  1274. package/dist/weapp/sunburst-chart/index.wxss +1 -0
  1275. package/dist/weapp/treemap-chart/index.js +1 -0
  1276. package/dist/weapp/treemap-chart/index.json +1 -0
  1277. package/dist/weapp/treemap-chart/index.wxml +1 -0
  1278. package/dist/weapp/treemap-chart/index.wxss +1 -0
  1279. package/dist/weapp/types.d.ts +549 -0
  1280. package/dist/weapp/waterfall-chart/index.js +1 -0
  1281. package/dist/weapp/waterfall-chart/index.json +1 -0
  1282. package/dist/weapp/waterfall-chart/index.wxml +1 -0
  1283. package/dist/weapp/waterfall-chart/index.wxss +1 -0
  1284. package/dist/web-components/components/chart/chart.d.ts +58 -0
  1285. package/dist/web-components/components/chart/chart.js +55 -0
  1286. package/dist/web-components/components/chart/chart.js.map +1 -0
  1287. package/dist/web-components/components/chart/charts.d.ts +254 -0
  1288. package/dist/web-components/components/chart/charts.js +208 -0
  1289. package/dist/web-components/components/chart/charts.js.map +1 -0
  1290. package/dist/web-components/components/chart/engine-element.d.ts +53 -0
  1291. package/dist/web-components/components/chart/engine-element.js +77 -0
  1292. package/dist/web-components/components/chart/engine-element.js.map +1 -0
  1293. package/dist/web-components/components/chart/extended.d.ts +234 -0
  1294. package/dist/web-components/components/chart/extended.js +197 -0
  1295. package/dist/web-components/components/chart/extended.js.map +1 -0
  1296. package/dist/web-components/components/chart/series.d.ts +7 -0
  1297. package/dist/web-components/components/chart/series.js +14 -0
  1298. package/dist/web-components/components/chart/series.js.map +1 -0
  1299. package/dist/web-components/components/chart/shape-chart.d.ts +199 -0
  1300. package/dist/web-components/components/chart/shape-chart.js +161 -0
  1301. package/dist/web-components/components/chart/shape-chart.js.map +1 -0
  1302. package/dist/web-components/components/chart/shapes-extended.d.ts +198 -0
  1303. package/dist/web-components/components/chart/shapes-extended.js +182 -0
  1304. package/dist/web-components/components/chart/shapes-extended.js.map +1 -0
  1305. package/dist/web-components/components/chart-3d/chart-3d.d.ts +111 -0
  1306. package/dist/web-components/components/chart-3d/chart-3d.js +97 -0
  1307. package/dist/web-components/components/chart-3d/chart-3d.js.map +1 -0
  1308. package/dist/web-components/components/graph/graph.d.ts +154 -0
  1309. package/dist/web-components/components/graph/graph.js +149 -0
  1310. package/dist/web-components/components/graph/graph.js.map +1 -0
  1311. package/dist/web-components/components/order-book/order-book.d.ts +165 -0
  1312. package/dist/web-components/components/order-book/order-book.js +174 -0
  1313. package/dist/web-components/components/order-book/order-book.js.map +1 -0
  1314. package/dist/web-components/components/trading-chart/trading-chart.d.ts +143 -0
  1315. package/dist/web-components/components/trading-chart/trading-chart.js +158 -0
  1316. package/dist/web-components/components/trading-chart/trading-chart.js.map +1 -0
  1317. package/dist/web-components/elements/chart-3d.d.ts +2 -0
  1318. package/dist/web-components/elements/chart-3d.js +13 -0
  1319. package/dist/web-components/elements/chart-3d.js.map +1 -0
  1320. package/dist/web-components/elements/chart.d.ts +7 -0
  1321. package/dist/web-components/elements/chart.js +44 -0
  1322. package/dist/web-components/elements/chart.js.map +1 -0
  1323. package/dist/web-components/elements/graph.d.ts +2 -0
  1324. package/dist/web-components/elements/graph.js +12 -0
  1325. package/dist/web-components/elements/graph.js.map +1 -0
  1326. package/dist/web-components/elements/order-book.d.ts +2 -0
  1327. package/dist/web-components/elements/order-book.js +13 -0
  1328. package/dist/web-components/elements/order-book.js.map +1 -0
  1329. package/dist/web-components/elements/trading-chart.d.ts +2 -0
  1330. package/dist/web-components/elements/trading-chart.js +8 -0
  1331. package/dist/web-components/elements/trading-chart.js.map +1 -0
  1332. package/dist/web-components/html-custom-data.json +1470 -38
  1333. package/dist/web-components/types/react.d.ts +494 -0
  1334. package/dist/web-components/types/solid.d.ts +368 -0
  1335. package/dist/web-components/types/svelte.d.ts +368 -0
  1336. package/dist/web-components/types/vue.d.ts +410 -0
  1337. package/package.json +128 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"depth.js","names":["LABELS","createDepthChart","options","initial","store","createOrderBookStore","emitter","createEmitter","fmt","createFormatters","texts","localeLabels","inferred","colors","rangeOverride","shownRange","shownMax","shownMid","bidShown","askShown","bidTarget","askTarget","lastFrame","plot","hoverAt","hoverKey","lastHover","pointers","pinch","host","createHost","container","refreshColors","mirrorTip","root","labels","sideColors","refreshFormat","inferPriceDecimals","inferSizeDecimals","applyOptions","limits","a","b","autoRange","nb","na","bidExtent","mid","askExtent","extent","currentRange","min","max","clamp","currentMid","bid","depthAt","amount","total","n","side","i","p","price","s","sampleSide","cols","target","quote","linear","priceOf","lo","c","hi","best","cum","prevPrice","step","start","next","nextCum","t","ensureColumns","easeColumns","moving","shown","k","epsilon","draw","ctx","dt","now","animate","ease","l","fontSize","width","axes","dpr","height","fontOf","theme","range","top","bottom","probe","linearTicks","axisWidth","v","domainMax","niceDomain","yOf","xOfPrice","base","yTicks","toCss","y","count","xTicks","x","text","w","fill","drawSide","first","last","x0","x1","xl","xr","gradient","color","line","lx","roundRect","midX","spread","title","bps","sub","w1","w2","narrow","boxW","boxH","bx","right","drawHover","hide","bestBid","bestAsk","point","mirrorPrice","other","mirror","event","column","px","shownOf","colorOf","marker","value","mx","my","rows","show","tooltipHtml","doc","tip","py","room","key","setRangeInternal","emit","instance","inPlot","onPointerMove","localPoint","distance","onPointerDown","onPointerUp","onPointerLeave","onClick","onWheel","onDoubleClick","onKeyDown","zoom","dx","onBlur","changed","snapshot","applyDeltas","deltas","handler"],"sources":["../../../../../charts/src/engine/orderbook/depth.ts"],"sourcesContent":["// createDepthChart: cumulative bid / ask depth around the mid price, drawn\n// with Canvas2D. The curves are sampled once per pixel column (a sweep over\n// the levels, so the cost follows the width, not the book) and eased from\n// one snapshot to the next.\n\nimport { toCss, type Rgba } from \"../color\";\nimport { localeLabels, type LabelDictionary } from \"../locale\";\nimport { linearTicks, niceDomain } from \"../scale\";\nimport {\n applyDeltas,\n createOrderBookStore,\n inferPriceDecimals,\n inferSizeDecimals,\n} from \"./book\";\nimport {\n clamp,\n createFormatters,\n ease,\n fontOf,\n roundRect,\n sideColors,\n type Formatters,\n} from \"./format\";\nimport { createEmitter, createHost, localPoint, tooltipHtml } from \"./host\";\nimport type {\n DepthChartEventMap,\n DepthChartHoverEvent,\n DepthChartInstance,\n DepthChartLabels,\n DepthChartOptions,\n DepthPoint,\n OrderBookSide,\n} from \"./types\";\n\nconst LABELS: LabelDictionary<DepthChartLabels> = {\n en: {\n bids: \"Bids\",\n asks: \"Asks\",\n price: \"Price\",\n amount: \"Amount\",\n total: \"Total\",\n average: \"Avg. price\",\n distance: \"From mid\",\n mid: \"Mid\",\n spread: \"Spread\",\n basisPoints: \"bp\",\n name: \"Depth chart\",\n },\n zh: {\n bids: \"买盘\",\n asks: \"卖盘\",\n price: \"价格\",\n amount: \"累计数量\",\n total: \"累计金额\",\n average: \"均价\",\n distance: \"距中间价\",\n mid: \"中间价\",\n spread: \"价差\",\n basisPoints: \"基点\",\n name: \"深度图\",\n },\n ja: {\n bids: \"買い\",\n asks: \"売り\",\n price: \"価格\",\n amount: \"累計数量\",\n total: \"累計金額\",\n average: \"平均価格\",\n distance: \"仲値から\",\n mid: \"仲値\",\n spread: \"スプレッド\",\n basisPoints: \"bp\",\n name: \"デプスチャート\",\n },\n fr: {\n bids: \"Achats\",\n asks: \"Ventes\",\n price: \"Prix\",\n amount: \"Quantité\",\n total: \"Montant\",\n average: \"Prix moyen\",\n distance: \"Écart au médian\",\n mid: \"Médian\",\n spread: \"Écart\",\n basisPoints: \"pb\",\n name: \"Graphique de profondeur\",\n },\n};\n\ninterface Plot {\n x: number;\n y: number;\n w: number;\n h: number;\n}\n\n/**\n * Creates a depth chart in `container`: cumulative bid and ask areas around\n * the mid price, with a mirrored hover tooltip and incremental updates\n * coalesced into one frame.\n */\nexport const createDepthChart = (\n container: HTMLElement,\n initial: DepthChartOptions = {},\n): DepthChartInstance => {\n let options = initial;\n const store = createOrderBookStore();\n const emitter = createEmitter<DepthChartEventMap>();\n let fmt: Formatters = createFormatters(options, 2, 4);\n /** Texts in the locale, resolved on every option update */\n let texts = localeLabels(LABELS, options.locale, options.labels);\n let inferred = false;\n let colors = { up: [0, 0, 0, 1] as Rgba, down: [0, 0, 0, 1] as Rgba };\n\n let rangeOverride: number | null = null;\n /** Range drawn (eased) */\n let shownRange = NaN;\n let shownMax = NaN;\n let shownMid = NaN;\n let bidShown = new Float64Array(0);\n let askShown = new Float64Array(0);\n let bidTarget = new Float64Array(0);\n let askTarget = new Float64Array(0);\n let lastFrame = 0;\n let plot: Plot = { x: 0, y: 0, w: 0, h: 0 };\n /** Hover position in CSS pixels (pointer or keyboard) */\n let hoverAt: [number, number] | null = null;\n let hoverKey = \"\";\n let lastHover: DepthChartHoverEvent | null = null;\n const pointers = new Map<number, [number, number]>();\n let pinch: { distance: number; range: number } | null = null;\n\n const host = createHost(container, {\n className: \"minerva-depth-chart\",\n draw,\n onTheme: () => refreshColors(),\n });\n const { root, doc } = host;\n const mirrorTip = host.createTooltip();\n root.tabIndex = 0;\n root.setAttribute(\"role\", \"figure\");\n root.style.touchAction = \"pan-y\";\n\n const labels = () => texts;\n\n function refreshColors() {\n colors = sideColors(host.theme, options);\n }\n\n function refreshFormat() {\n fmt = createFormatters(\n options,\n inferPriceDecimals(store),\n inferSizeDecimals(store),\n );\n }\n\n const applyOptions = () => {\n texts = localeLabels(LABELS, options.locale, options.labels);\n root.setAttribute(\"aria-label\", options.ariaLabel ?? texts.name);\n refreshColors();\n refreshFormat();\n host.invalidate();\n };\n\n const limits = (): [number, number] => {\n const [a, b] = options.rangeLimits ?? [0.0005, 0.5];\n return [Math.min(a, b), Math.max(a, b)];\n };\n\n /** Range fitting the shorter side of the book */\n const autoRange = (mid: number) => {\n const nb = store.count(\"bid\");\n const na = store.count(\"ask\");\n if (!nb && !na) return 0.01;\n const bidExtent = nb\n ? (mid - store.priceAt(\"bid\", nb - 1)) / mid\n : Infinity;\n const askExtent = na\n ? (store.priceAt(\"ask\", na - 1) - mid) / mid\n : Infinity;\n const extent = Math.min(bidExtent, askExtent);\n return Number.isFinite(extent) && extent > 0 ? extent : 0.01;\n };\n\n const currentRange = (mid: number) => {\n const [min, max] = limits();\n return clamp(rangeOverride ?? options.range ?? autoRange(mid), min, max);\n };\n\n const currentMid = () => {\n const mid = store.mid();\n if (Number.isFinite(mid)) return mid;\n const bid = store.bestBid();\n return Number.isFinite(bid) ? bid : store.bestAsk();\n };\n\n // ---------------------------------------------------------- depth values\n\n /** Cumulative depth of a side down to (bids) / up to (asks) a price */\n const depthAt = (side: OrderBookSide, price: number, mid: number) => {\n let amount = 0;\n let total = 0;\n const n = store.count(side);\n for (let i = 0; i < n; i++) {\n const p = store.priceAt(side, i);\n if (side === \"bid\" ? p < price : p > price) break;\n const s = store.sizeAt(side, i);\n amount += s;\n total += s * p;\n }\n const point: DepthPoint = {\n side,\n price,\n amount,\n total,\n average: amount > 0 ? total / amount : NaN,\n distance: (price - mid) / mid,\n };\n return point;\n };\n\n /**\n * Target cumulative values per pixel column (NaN outside the side): one\n * sweep from the best level outwards\n */\n const sampleSide = (\n side: OrderBookSide,\n target: Float64Array,\n lo: number,\n hi: number,\n ) => {\n const cols = target.length;\n target.fill(NaN);\n const n = store.count(side);\n if (!n) return;\n const quote = options.amount === \"quote\";\n const linear = options.curve === \"linear\";\n const priceOf = (c: number) => lo + ((c + 0.5) / cols) * (hi - lo);\n const best = store.priceAt(side, 0);\n let i = 0;\n let cum = 0;\n /** Price of the last level included (linear curves) */\n let prevPrice = best;\n const step = side === \"bid\" ? -1 : 1;\n const start =\n side === \"bid\"\n ? Math.min(cols - 1, Math.floor(((best - lo) / (hi - lo)) * cols))\n : Math.max(0, Math.ceil(((best - lo) / (hi - lo)) * cols - 1));\n for (let c = start; c >= 0 && c < cols; c += step) {\n const price = priceOf(c);\n const inside = side === \"bid\" ? price <= best : price >= best;\n if (!inside) continue;\n while (i < n) {\n const p = store.priceAt(side, i);\n if (side === \"bid\" ? p < price : p > price) break;\n const s = store.sizeAt(side, i);\n prevPrice = p;\n cum += quote ? s * p : s;\n i++;\n }\n if (linear && i < n) {\n // between the last included level and the next one\n const next = store.priceAt(side, i);\n const nextCum = cum + store.sizeAt(side, i) * (quote ? next : 1);\n const t = (price - prevPrice) / (next - prevPrice);\n target[c] = Number.isFinite(t) ? cum + (nextCum - cum) * t : cum;\n } else {\n target[c] = cum;\n }\n }\n };\n\n // ------------------------------------------------------------------ draw\n\n const ensureColumns = (cols: number) => {\n if (bidShown.length === cols) return;\n bidShown = new Float64Array(cols).fill(NaN);\n askShown = new Float64Array(cols).fill(NaN);\n bidTarget = new Float64Array(cols);\n askTarget = new Float64Array(cols);\n };\n\n /** Eases `shown` towards `target`; `true` while it still moves */\n const easeColumns = (\n shown: Float64Array,\n target: Float64Array,\n k: number,\n epsilon: number,\n ) => {\n let moving = false;\n for (let c = 0; c < shown.length; c++) {\n const t = target[c]!;\n const s = shown[c]!;\n if (!Number.isFinite(t) || !Number.isFinite(s) || k >= 1) {\n shown[c] = t;\n continue;\n }\n const next = s + (t - s) * k;\n if (Math.abs(t - next) > epsilon) moving = true;\n else {\n shown[c] = t;\n continue;\n }\n shown[c] = next;\n }\n return moving;\n };\n\n function draw(now: number): boolean {\n const ctx = host.ctx;\n if (!ctx) return false;\n const { width, height, dpr, theme } = host;\n const dt = lastFrame ? now - lastFrame : 0;\n lastFrame = now;\n const animate = options.animate !== false;\n const k = animate && dt > 0 ? ease(dt, 70) : 1;\n const l = labels();\n const fontSize = options.fontSize ?? (width < 360 ? 11 : 12);\n const axes = options.axes !== false;\n\n ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n ctx.clearRect(0, 0, width, height);\n ctx.font = fontOf(theme, options, 400, fontSize);\n\n const mid = currentMid();\n const range = Number.isFinite(mid) ? currentRange(mid) : 0.01;\n shownRange =\n Number.isFinite(shownRange) && animate\n ? shownRange + (range - shownRange) * k\n : range;\n shownMid =\n Number.isFinite(shownMid) && Number.isFinite(mid) && animate\n ? shownMid + (mid - shownMid) * Math.min(1, k * 1.5)\n : mid;\n let moving = Math.abs(shownRange - range) > range * 1e-3;\n if (Math.abs(shownMid - mid) > Math.abs(mid) * 1e-7) moving = true;\n\n const lo = shownMid * (1 - shownRange);\n const hi = shownMid * (1 + shownRange);\n\n // y scale: largest cumulative value inside the range\n const top = options.legend === false && options.midLine === false ? 10 : 30;\n const bottom = axes ? fontSize + 12 : 4;\n const probe = linearTicks(0, Math.max(1, shownMax || 1), 4);\n const axisWidth = axes\n ? Math.ceil(\n Math.max(\n ...probe.map((v) => ctx.measureText(fmt.compact(v)).width),\n 24,\n ),\n ) + 12\n : 0;\n plot = {\n x: 0,\n y: top,\n w: Math.max(10, width - axisWidth),\n h: Math.max(10, height - top - bottom),\n };\n const cols = Math.max(1, Math.floor(plot.w));\n ensureColumns(cols);\n if (Number.isFinite(lo) && hi > lo) {\n sampleSide(\"bid\", bidTarget, lo, hi);\n sampleSide(\"ask\", askTarget, lo, hi);\n } else {\n bidTarget.fill(NaN);\n askTarget.fill(NaN);\n }\n let max = 0;\n for (let c = 0; c < cols; c++) {\n const b = bidTarget[c]!;\n const a = askTarget[c]!;\n if (b > max) max = b;\n if (a > max) max = a;\n }\n const domainMax = max > 0 ? niceDomain(0, max * 1.08, 4)[1] : 1;\n shownMax =\n Number.isFinite(shownMax) && animate\n ? shownMax + (domainMax - shownMax) * k\n : domainMax;\n if (Math.abs(shownMax - domainMax) > domainMax * 1e-3) moving = true;\n const epsilon = shownMax * 1e-4;\n if (easeColumns(bidShown, bidTarget, k, epsilon)) moving = true;\n if (easeColumns(askShown, askTarget, k, epsilon)) moving = true;\n\n const yOf = (v: number) => plot.y + plot.h - (v / shownMax) * plot.h;\n const xOfPrice = (p: number) => plot.x + ((p - lo) / (hi - lo)) * plot.w;\n const base = plot.y + plot.h;\n\n // grid and axes\n const yTicks = linearTicks(\n 0,\n shownMax,\n Math.max(2, Math.floor(plot.h / 48)),\n );\n if (options.grid !== false) {\n ctx.strokeStyle = toCss(theme.grid);\n ctx.lineWidth = 1;\n ctx.beginPath();\n for (const v of yTicks) {\n const y = Math.round(yOf(v)) + 0.5;\n ctx.moveTo(plot.x, y);\n ctx.lineTo(plot.x + plot.w, y);\n }\n ctx.stroke();\n }\n if (axes) {\n ctx.fillStyle = toCss(theme.textMuted);\n ctx.textAlign = \"left\";\n ctx.textBaseline = \"middle\";\n for (const v of yTicks) {\n if (v === 0) continue;\n ctx.fillText(fmt.compact(v), plot.x + plot.w + 6, yOf(v));\n }\n ctx.textBaseline = \"top\";\n ctx.textAlign = \"center\";\n const count = Math.max(2, Math.floor(plot.w / 110));\n const xTicks = Number.isFinite(lo) ? linearTicks(lo, hi, count) : [];\n for (const p of xTicks) {\n const x = xOfPrice(p);\n const text = fmt.price(p);\n const w = ctx.measureText(text).width;\n if (x - w / 2 < 2 || x + w / 2 > plot.x + plot.w - 2) continue;\n ctx.fillText(text, x, base + 6);\n }\n ctx.strokeStyle = toCss(theme.axis);\n ctx.beginPath();\n ctx.moveTo(plot.x, Math.round(base) + 0.5);\n ctx.lineTo(plot.x + plot.w, Math.round(base) + 0.5);\n ctx.stroke();\n }\n\n // areas\n const fill = options.fillOpacity ?? 0.28;\n const drawSide = (shown: Float64Array, color: Rgba) => {\n let first = -1;\n let last = -1;\n for (let c = 0; c < cols; c++) {\n if (Number.isFinite(shown[c]!)) {\n if (first < 0) first = c;\n last = c;\n }\n }\n if (first < 0) return;\n const x0 = plot.x + (first / cols) * plot.w;\n const x1 = plot.x + ((last + 1) / cols) * plot.w;\n ctx.beginPath();\n ctx.moveTo(x0, yOf(shown[first]!));\n for (let c = first; c <= last; c++) {\n const y = yOf(shown[c]!);\n const xl = plot.x + (c / cols) * plot.w;\n const xr = plot.x + ((c + 1) / cols) * plot.w;\n ctx.lineTo(xl, y);\n ctx.lineTo(xr, y);\n }\n const gradient = ctx.createLinearGradient(0, plot.y, 0, base);\n gradient.addColorStop(0, toCss(color, fill));\n gradient.addColorStop(1, toCss(color, fill * 0.15));\n ctx.save();\n ctx.lineTo(x1, base);\n ctx.lineTo(x0, base);\n ctx.closePath();\n ctx.fillStyle = gradient;\n ctx.fill();\n ctx.restore();\n ctx.beginPath();\n ctx.moveTo(x0, yOf(shown[first]!));\n for (let c = first; c <= last; c++) {\n const y = yOf(shown[c]!);\n ctx.lineTo(plot.x + (c / cols) * plot.w, y);\n ctx.lineTo(plot.x + ((c + 1) / cols) * plot.w, y);\n }\n ctx.lineTo(x1, base);\n ctx.strokeStyle = toCss(color);\n ctx.lineWidth = 1.5;\n ctx.lineJoin = \"round\";\n ctx.stroke();\n };\n ctx.save();\n ctx.beginPath();\n ctx.rect(plot.x, plot.y - 2, plot.w, plot.h + 2);\n ctx.clip();\n drawSide(bidShown, colors.up);\n drawSide(askShown, colors.down);\n\n // price lines\n for (const line of options.priceLines ?? []) {\n const x = Math.round(xOfPrice(line.price)) + 0.5;\n if (x < plot.x || x > plot.x + plot.w) continue;\n const color =\n line.color && theme.resolve\n ? theme.resolve(line.color, theme.text)\n : theme.text;\n ctx.strokeStyle = toCss(color, 0.8);\n ctx.setLineDash([4, 3]);\n ctx.beginPath();\n ctx.moveTo(x, plot.y);\n ctx.lineTo(x, base);\n ctx.stroke();\n ctx.setLineDash([]);\n if (line.label) {\n ctx.font = fontOf(theme, options, 500, fontSize - 1);\n const w = ctx.measureText(line.label).width + 10;\n const lx = clamp(x - w / 2, plot.x + 2, plot.x + plot.w - w - 2);\n ctx.fillStyle = toCss(color);\n roundRect(ctx, lx, base - fontSize - 10, w, fontSize + 6, 4);\n ctx.fill();\n ctx.fillStyle = toCss(theme.background);\n ctx.textAlign = \"left\";\n ctx.textBaseline = \"middle\";\n ctx.fillText(line.label, lx + 5, base - fontSize / 2 - 7);\n ctx.font = fontOf(theme, options, 400, fontSize);\n }\n }\n ctx.restore();\n\n // mid line and spread label\n const midX = xOfPrice(shownMid);\n if (options.midLine !== false && Number.isFinite(midX)) {\n ctx.strokeStyle = toCss(theme.textMuted, 0.55);\n ctx.setLineDash([3, 3]);\n ctx.beginPath();\n ctx.moveTo(Math.round(midX) + 0.5, plot.y);\n ctx.lineTo(Math.round(midX) + 0.5, base);\n ctx.stroke();\n ctx.setLineDash([]);\n const spread = store.spread();\n const title = `${l.mid} ${fmt.price(mid)}`;\n const bps = (spread / mid) * 1e4;\n const sub = Number.isFinite(spread)\n ? `${l.spread} ${fmt.price(spread)} · ${fmt.fixed(bps, bps < 10 ? 2 : 1)} ${l.basisPoints}`\n : \"\";\n ctx.font = fontOf(theme, options, 600, fontSize);\n const w1 = ctx.measureText(title).width;\n ctx.font = fontOf(theme, options, 400, fontSize - 1);\n const w2 = sub ? ctx.measureText(sub).width : 0;\n const narrow = width < 420;\n const boxW = narrow ? Math.max(w1, w2) + 16 : w1 + w2 + 28;\n const boxH = narrow && sub ? fontSize * 2 + 10 : fontSize + 10;\n const bx = clamp(midX - boxW / 2, 2, width - boxW - 2);\n const by = 4;\n ctx.fillStyle = toCss(theme.background, 0.92);\n ctx.strokeStyle = toCss(theme.axis);\n roundRect(ctx, bx, by, boxW, boxH, 6);\n ctx.fill();\n ctx.stroke();\n ctx.textBaseline = \"middle\";\n ctx.textAlign = \"left\";\n ctx.fillStyle = toCss(theme.text);\n ctx.font = fontOf(theme, options, 600, fontSize);\n ctx.fillText(title, bx + 8, by + fontSize / 2 + 5);\n if (sub) {\n ctx.font = fontOf(theme, options, 400, fontSize - 1);\n ctx.fillStyle = toCss(theme.textMuted);\n if (narrow) ctx.fillText(sub, bx + 8, by + fontSize * 1.5 + 6);\n else ctx.fillText(sub, bx + 20 + w1, by + fontSize / 2 + 5);\n }\n ctx.font = fontOf(theme, options, 400, fontSize);\n }\n\n // legend\n if (options.legend !== false && width >= 300) {\n ctx.textBaseline = \"middle\";\n const y = 4 + fontSize / 2 + 5;\n ctx.font = fontOf(theme, options, 500, fontSize);\n ctx.fillStyle = toCss(colors.up);\n ctx.beginPath();\n ctx.arc(8, y, 3.5, 0, Math.PI * 2);\n ctx.fill();\n ctx.textAlign = \"left\";\n ctx.fillStyle = toCss(theme.textMuted);\n ctx.fillText(l.bids, 16, y);\n const right = plot.x + plot.w;\n ctx.textAlign = \"right\";\n ctx.fillText(l.asks, right - 16, y);\n ctx.fillStyle = toCss(colors.down);\n ctx.beginPath();\n ctx.arc(right - 8, y, 3.5, 0, Math.PI * 2);\n ctx.fill();\n ctx.font = fontOf(theme, options, 400, fontSize);\n }\n\n drawHover(ctx, mid, lo, hi, cols, yOf, fontSize);\n\n host.describe(\n Number.isFinite(mid)\n ? `${options.ariaLabel ?? l.name}. ${l.bids} ${fmt.price(store.bestBid())}, ${l.asks} ${fmt.price(store.bestAsk())}, ${l.spread} ${fmt.price(store.spread())}.`\n : (options.ariaLabel ?? l.name),\n );\n return moving;\n }\n\n function drawHover(\n ctx: CanvasRenderingContext2D,\n mid: number,\n lo: number,\n hi: number,\n cols: number,\n yOf: (v: number) => number,\n fontSize: number,\n ) {\n const { theme } = host;\n const hide = () => {\n host.tooltip.style.display = \"none\";\n mirrorTip.style.display = \"none\";\n if (lastHover) {\n lastHover = null;\n hoverKey = \"\";\n emitter.emit(\"hover\", null);\n }\n };\n if (!hoverAt || options.tooltip === false || !Number.isFinite(mid)) {\n hide();\n return;\n }\n const x = clamp(hoverAt[0], plot.x, plot.x + plot.w - 1);\n const price = lo + ((x - plot.x) / plot.w) * (hi - lo);\n const bestBid = store.bestBid();\n const bestAsk = store.bestAsk();\n let side: OrderBookSide = price < shownMid ? \"bid\" : \"ask\";\n if (side === \"bid\" && !Number.isFinite(bestBid)) side = \"ask\";\n if (side === \"ask\" && !Number.isFinite(bestAsk)) side = \"bid\";\n const point = depthAt(side, price, mid);\n const mirrorPrice = 2 * shownMid - price;\n const other: OrderBookSide = side === \"bid\" ? \"ask\" : \"bid\";\n const mirror =\n options.mirror !== false && store.count(other)\n ? depthAt(other, mirrorPrice, mid)\n : null;\n const event: DepthChartHoverEvent = { ...point, mirror };\n const l = labels();\n\n const column = (px: number) =>\n clamp(Math.floor(((px - plot.x) / plot.w) * cols), 0, cols - 1);\n const shownOf = (s: OrderBookSide, px: number) =>\n (s === \"bid\" ? bidShown : askShown)[column(px)]!;\n const colorOf = (s: OrderBookSide) =>\n s === \"bid\" ? colors.up : colors.down;\n\n const marker = (s: OrderBookSide, px: number) => {\n const value = shownOf(s, px);\n if (!Number.isFinite(value)) return NaN;\n const y = yOf(value);\n ctx.strokeStyle = toCss(theme.textMuted, 0.6);\n ctx.setLineDash([3, 3]);\n ctx.beginPath();\n ctx.moveTo(Math.round(px) + 0.5, plot.y);\n ctx.lineTo(Math.round(px) + 0.5, plot.y + plot.h);\n ctx.moveTo(plot.x, Math.round(y) + 0.5);\n ctx.lineTo(plot.x + plot.w, Math.round(y) + 0.5);\n ctx.stroke();\n ctx.setLineDash([]);\n const color = colorOf(s);\n ctx.fillStyle = toCss(color, 0.2);\n ctx.beginPath();\n ctx.arc(px, y, 8, 0, Math.PI * 2);\n ctx.fill();\n ctx.fillStyle = toCss(color);\n ctx.strokeStyle = toCss(theme.background);\n ctx.lineWidth = 2;\n ctx.beginPath();\n ctx.arc(px, y, 4, 0, Math.PI * 2);\n ctx.fill();\n ctx.stroke();\n ctx.lineWidth = 1;\n // amount tag on the axis\n if (options.axes !== false) {\n const text = fmt.compact(value);\n ctx.font = fontOf(theme, options, 500, fontSize - 1);\n const w = ctx.measureText(text).width + 8;\n ctx.fillStyle = toCss(color);\n roundRect(ctx, plot.x + plot.w + 2, y - 9, w, 18, 3);\n ctx.fill();\n ctx.fillStyle = \"#fff\";\n ctx.textAlign = \"left\";\n ctx.textBaseline = \"middle\";\n ctx.fillText(text, plot.x + plot.w + 6, y);\n ctx.font = fontOf(theme, options, 400, fontSize);\n }\n return y;\n };\n\n const y = marker(side, x);\n const mx = plot.x + ((mirrorPrice - lo) / (hi - lo)) * plot.w;\n const my =\n mirror && mx >= plot.x && mx <= plot.x + plot.w ? marker(other, mx) : NaN;\n\n const rows = (p: DepthPoint): [string, string][] => [\n [l.price, fmt.price(p.price)],\n [l.amount, fmt.total(p.amount)],\n [l.total, fmt.notional(p.total)],\n [l.average, fmt.price(p.average)],\n [\n l.distance,\n fmt.percent(p.distance, Math.abs(p.distance) < 0.01 ? 3 : 2),\n ],\n ];\n const show = (\n tip: HTMLDivElement,\n p: DepthPoint,\n px: number,\n py: number,\n ) => {\n tooltipHtml(\n doc,\n tip,\n {\n text: p.side === \"bid\" ? l.bids : l.asks,\n color: toCss(colorOf(p.side)),\n },\n rows(p),\n );\n tip.style.display = \"block\";\n host.placeTooltip(\n tip,\n px,\n Number.isFinite(py) ? py : plot.y + plot.h / 2,\n p.side === \"bid\" ? \"left\" : \"right\",\n );\n };\n show(host.tooltip, point, x, y);\n // the mirror needs room for both tooltips side by side (phones: one)\n const room = plot.w >= 2 * (host.tooltip.offsetWidth + 24);\n if (mirror && Number.isFinite(my) && room) show(mirrorTip, mirror, mx, my);\n else mirrorTip.style.display = \"none\";\n\n const key = `${point.price}|${point.amount}|${mirror?.amount ?? \"\"}`;\n lastHover = event;\n if (key !== hoverKey) {\n hoverKey = key;\n emitter.emit(\"hover\", event);\n }\n }\n\n // ---------------------------------------------------------- interaction\n\n const setRangeInternal = (range: number | null, emit: boolean) => {\n if (range === null) rangeOverride = null;\n else {\n const [min, max] = limits();\n rangeOverride = clamp(range, min, max);\n }\n host.invalidate();\n if (emit) emitter.emit(\"range\", instance.getRange());\n };\n\n const inPlot = (x: number, y: number) =>\n x >= plot.x &&\n x <= plot.x + plot.w &&\n y >= plot.y - 30 &&\n y <= plot.y + plot.h;\n\n const onPointerMove = (event: PointerEvent) => {\n const point = localPoint(root, event);\n pointers.set(event.pointerId, point);\n if (pinch && pointers.size === 2) {\n const [a, b] = [...pointers.values()] as [\n [number, number],\n [number, number],\n ];\n const distance = Math.hypot(a[0] - b[0], a[1] - b[1]);\n if (distance > 0 && options.zoomable !== false)\n setRangeInternal((pinch.range * pinch.distance) / distance, true);\n return;\n }\n hoverAt = inPlot(point[0], point[1]) ? point : null;\n host.invalidate();\n };\n const onPointerDown = (event: PointerEvent) => {\n const point = localPoint(root, event);\n pointers.set(event.pointerId, point);\n if (pointers.size === 2) {\n const [a, b] = [...pointers.values()] as [\n [number, number],\n [number, number],\n ];\n pinch = {\n distance: Math.hypot(a[0] - b[0], a[1] - b[1]),\n range: instance.getRange(),\n };\n hoverAt = null;\n } else {\n hoverAt = inPlot(point[0], point[1]) ? point : null;\n }\n host.invalidate();\n };\n const onPointerUp = (event: PointerEvent) => {\n pointers.delete(event.pointerId);\n if (pointers.size < 2) pinch = null;\n };\n const onPointerLeave = (event: PointerEvent) => {\n pointers.delete(event.pointerId);\n if (event.pointerType === \"mouse\") {\n hoverAt = null;\n host.invalidate();\n }\n };\n const onClick = () => {\n if (lastHover) emitter.emit(\"click\", lastHover);\n };\n const onWheel = (event: WheelEvent) => {\n if (options.zoomable === false || !(event.ctrlKey || event.metaKey)) return;\n event.preventDefault();\n setRangeInternal(\n instance.getRange() * Math.exp(event.deltaY * 0.0025),\n true,\n );\n };\n const onDoubleClick = () => {\n if (options.zoomable === false) return;\n setRangeInternal(null, true);\n };\n const onKeyDown = (event: KeyboardEvent) => {\n const zoom = options.zoomable !== false;\n switch (event.key) {\n case \"+\":\n case \"=\":\n if (zoom) setRangeInternal(instance.getRange() / 1.25, true);\n break;\n case \"-\":\n if (zoom) setRangeInternal(instance.getRange() * 1.25, true);\n break;\n case \"0\":\n if (zoom) setRangeInternal(null, true);\n break;\n case \"ArrowLeft\":\n case \"ArrowRight\": {\n const dx =\n (event.key === \"ArrowLeft\" ? -1 : 1) * Math.max(2, plot.w / 50);\n const x = hoverAt ? hoverAt[0] + dx : plot.x + plot.w / 2 + dx;\n hoverAt = [clamp(x, plot.x, plot.x + plot.w - 1), plot.y + plot.h / 2];\n host.invalidate();\n break;\n }\n case \"Escape\":\n hoverAt = null;\n host.invalidate();\n break;\n case \"Enter\":\n onClick();\n break;\n default:\n return;\n }\n event.preventDefault();\n };\n const onBlur = () => {\n if (hoverAt && !pointers.size) {\n hoverAt = null;\n host.invalidate();\n }\n };\n\n root.addEventListener(\"pointermove\", onPointerMove);\n root.addEventListener(\"pointerdown\", onPointerDown);\n root.addEventListener(\"pointerup\", onPointerUp);\n root.addEventListener(\"pointercancel\", onPointerUp);\n root.addEventListener(\"pointerleave\", onPointerLeave);\n root.addEventListener(\"click\", onClick);\n root.addEventListener(\"wheel\", onWheel, { passive: false });\n root.addEventListener(\"dblclick\", onDoubleClick);\n root.addEventListener(\"keydown\", onKeyDown);\n root.addEventListener(\"blur\", onBlur);\n\n const changed = () => {\n if (!inferred && store.count(\"bid\") + store.count(\"ask\") > 0) {\n inferred = true;\n refreshFormat();\n }\n host.invalidate();\n };\n\n const instance: DepthChartInstance = {\n setBook(snapshot) {\n store.setSnapshot(snapshot);\n inferred = false;\n changed();\n },\n applyDeltas(deltas) {\n if (applyDeltas(store, deltas)) changed();\n },\n clear() {\n store.clear();\n inferred = false;\n host.invalidate();\n },\n setOptions(next) {\n // a new range option replaces the zoom of the user\n if (next.range !== options.range) rangeOverride = null;\n options = next;\n applyOptions();\n },\n setRange(range) {\n setRangeInternal(range, false);\n },\n getRange() {\n const mid = currentMid();\n return Number.isFinite(mid)\n ? currentRange(mid)\n : (rangeOverride ?? options.range ?? 0.01);\n },\n getStore: () => store,\n on: (event, handler) => emitter.on(event, handler),\n resize() {\n host.invalidate();\n },\n destroy() {\n root.removeEventListener(\"pointermove\", onPointerMove);\n root.removeEventListener(\"pointerdown\", onPointerDown);\n root.removeEventListener(\"pointerup\", onPointerUp);\n root.removeEventListener(\"pointercancel\", onPointerUp);\n root.removeEventListener(\"pointerleave\", onPointerLeave);\n root.removeEventListener(\"click\", onClick);\n root.removeEventListener(\"wheel\", onWheel);\n root.removeEventListener(\"dblclick\", onDoubleClick);\n root.removeEventListener(\"keydown\", onKeyDown);\n root.removeEventListener(\"blur\", onBlur);\n emitter.clear();\n host.destroy();\n },\n };\n applyOptions();\n return instance;\n};\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ const e=require("../locale.cjs");var t=(t,n)=>{let r=Math.max(0,Math.min(12,Math.round(n)));return e.numberFormat(e.resolveLocale(t),{minimumFractionDigits:r,maximumFractionDigits:r})},n=(t,n,r=2)=>{if(!Number.isFinite(t))return`–`;let i=e.resolveLocale(n),a=Math.abs(t);for(let[n,o]of e.compactUnits(i))if(a>=n)return e.numberFormat(i,{maximumFractionDigits:r}).format(t/n)+o;return e.numberFormat(i,{maximumFractionDigits:a>=100?0:a>=1?2:4}).format(t)},r=(t,n,r=2,i=!0)=>{if(!Number.isFinite(t))return`–`;let a=Math.max(0,Math.min(6,Math.round(r)));return e.numberFormat(e.resolveLocale(n),{style:`percent`,minimumFractionDigits:a,maximumFractionDigits:a,signDisplay:i?`exceptZero`:`auto`}).format(t)},i=(i,a,o)=>{let s=e.resolveLocale(i.locale),c=i.pricePrecision??a,l=i.sizePrecision??o,u=t(s,c),d=t(s,l),f=e=>t=>Number.isFinite(t)?e(t):`–`,p=f(i.formatSize??(e=>d.format(e))),m=e=>n(e,s,2);return{price:f(i.formatPrice??(e=>u.format(e))),size:p,total:f(e=>Math.abs(e)>=1e6?m(e):p(e)),notional:f(e=>Math.abs(e)>=1e4?m(e):t(s,2).format(e)),compact:f(m),fixed:(e,n)=>Number.isFinite(e)?t(s,n).format(e):`–`,percent:(e,t=2,n=!0)=>r(e,s,t,n),locale:s,priceDecimals:c,sizeDecimals:l}},a=(e,t=2)=>String(e).padStart(t,`0`),o=(e,t=!0,n=`local`)=>{let r=new Date(e);if(Number.isNaN(r.getTime()))return`–`;let i=n===`utc`,o=i?`${a(r.getUTCHours())}:${a(r.getUTCMinutes())}:${a(r.getUTCSeconds())}`:`${a(r.getHours())}:${a(r.getMinutes())}:${a(r.getSeconds())}`;return t?`${o}.${a(i?r.getUTCMilliseconds():r.getMilliseconds(),3)}`:o},s=`var(--success-color, #16a34a)`,c=`var(--danger-color, #dc2626)`,l=[.09,.64,.29,1],u=[.86,.15,.15,1],d=(e,t)=>{let n=(t,n)=>e.resolve?e.resolve(t,n):n,r=t.colorConvention===`red-up`;return{up:n(t.upColor??(r?`var(--danger-color, #dc2626)`:`var(--success-color, #16a34a)`),r?u:l),down:n(t.downColor??(r?`var(--success-color, #16a34a)`:`var(--danger-color, #dc2626)`),r?l:u)}},f=(e,t,n=400,r)=>`${n} ${r??t.fontSize??12}px ${t.fontFamily??e.fontFamily}`,p=(e,t)=>t<=0?1:1-Math.exp(-Math.max(0,e)/t),m=(e,t,n)=>e<t?t:e>n?n:e,h=(e,t,n,r,i,a)=>{let o=Math.max(0,Math.min(a,r/2,i/2));e.beginPath(),e.moveTo(t+o,n),e.arcTo(t+r,n,t+r,n+i,o),e.arcTo(t+r,n+i,t,n+i,o),e.arcTo(t,n+i,t,n,o),e.arcTo(t,n,t+r,n,o),e.closePath()};exports.DEFAULT_DOWN=c,exports.DEFAULT_UP=s,exports.clamp=m,exports.createFormatters=i,exports.ease=p,exports.fontOf=f,exports.formatClock=o,exports.formatCompactNumber=n,exports.formatPercent=r,exports.numberFormat=t,exports.roundRect=h,exports.sideColors=d;
2
+ //# sourceMappingURL=format.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.cjs","names":["intlNumberFormat","resolveLocale","compactUnits","require_locale","numberFormat","d","decimals","locale","formatCompactNumber","value","resolved","abs","unit","suffix","maxDecimals","formatPercent","fraction","signed","createFormatters","options","priceDecimals","inferredPrice","sizeDecimals","inferredSize","priceFormat","sizeFormat","finite","fn","size","v","compact","pad","length","formatClock","time","utc","timeZone","base","milliseconds","DEFAULT_UP","DEFAULT_DOWN","UP_FALLBACK","DOWN_FALLBACK","sideColors","resolve","theme","fallback","redUp","fontOf","weight","ease","tau","dt","clamp","min","max","roundRect","radius","r","w","h","ctx","x","y"],"sources":["../../../../../charts/src/engine/orderbook/format.ts"],"sourcesContent":["// Number, time and color helpers shared by the order book widgets.\n\nimport type { ChartTheme } from \"../theme\";\nimport type { Rgba } from \"../color\";\nimport type { ChartTimeZone } from \"../types\";\nimport {\n compactUnits,\n numberFormat as intlNumberFormat,\n resolveLocale,\n} from \"../locale\";\nimport type { OrderBookCommonOptions } from \"./types\";\n\n/** Cached `Intl.NumberFormat` with fixed decimals (page language when `locale` is omitted) */\nexport const numberFormat = (\n locale: string | undefined,\n decimals: number,\n): Intl.NumberFormat => {\n const d = Math.max(0, Math.min(12, Math.round(decimals)));\n return intlNumberFormat(resolveLocale(locale), {\n minimumFractionDigits: d,\n maximumFractionDigits: d,\n });\n};\n\n/**\n * Compact number in the units of the language (12.4k, 1.25 M, 3.2万, 1.5億),\n * with the locale's decimal separator\n */\nexport const formatCompactNumber = (\n value: number,\n locale?: string,\n maxDecimals = 2,\n): string => {\n if (!Number.isFinite(value)) return \"–\";\n const resolved = resolveLocale(locale);\n const abs = Math.abs(value);\n for (const [unit, suffix] of compactUnits(resolved)) {\n if (abs >= unit)\n return (\n intlNumberFormat(resolved, {\n maximumFractionDigits: maxDecimals,\n }).format(value / unit) + suffix\n );\n }\n return intlNumberFormat(resolved, {\n maximumFractionDigits: abs >= 100 ? 0 : abs >= 1 ? 2 : 4,\n }).format(value);\n};\n\n/** Signed percentage of a fraction (`+0.125%`), in the locale */\nexport const formatPercent = (\n fraction: number,\n locale?: string,\n decimals = 2,\n signed = true,\n): string => {\n if (!Number.isFinite(fraction)) return \"–\";\n const d = Math.max(0, Math.min(6, Math.round(decimals)));\n return intlNumberFormat(resolveLocale(locale), {\n style: \"percent\",\n minimumFractionDigits: d,\n maximumFractionDigits: d,\n signDisplay: signed ? \"exceptZero\" : \"auto\",\n }).format(fraction);\n};\n\nexport interface Formatters {\n price: (value: number) => string;\n size: (value: number) => string;\n /** Large totals: compact (12.4k, 124万) above a million */\n total: (value: number) => string;\n /** Notional values: compact above ten thousand */\n notional: (value: number) => string;\n /** Axis values: always compact when large */\n compact: (value: number) => string;\n /** Fixed decimals in the locale (basis points, shares) */\n fixed: (value: number, decimals: number) => string;\n /** Percentage of a fraction (signed by default) */\n percent: (fraction: number, decimals?: number, signed?: boolean) => string;\n /** Resolved locale (`locale` option or page language) */\n locale: string;\n priceDecimals: number;\n sizeDecimals: number;\n}\n\n/** Formatters of the options, with inferred decimals as fallbacks */\nexport const createFormatters = (\n options: OrderBookCommonOptions,\n inferredPrice: number,\n inferredSize: number,\n): Formatters => {\n const locale = resolveLocale(options.locale);\n const priceDecimals = options.pricePrecision ?? inferredPrice;\n const sizeDecimals = options.sizePrecision ?? inferredSize;\n const priceFormat = numberFormat(locale, priceDecimals);\n const sizeFormat = numberFormat(locale, sizeDecimals);\n const finite =\n (fn: (value: number) => string) =>\n (value: number): string =>\n Number.isFinite(value) ? fn(value) : \"–\";\n const size = finite(options.formatSize ?? ((v) => sizeFormat.format(v)));\n const compact = (v: number) => formatCompactNumber(v, locale, 2);\n return {\n price: finite(options.formatPrice ?? ((v) => priceFormat.format(v))),\n size,\n total: finite((v) => (Math.abs(v) >= 1e6 ? compact(v) : size(v))),\n notional: finite((v) =>\n Math.abs(v) >= 1e4 ? compact(v) : numberFormat(locale, 2).format(v),\n ),\n compact: finite(compact),\n fixed: (v, decimals) =>\n Number.isFinite(v) ? numberFormat(locale, decimals).format(v) : \"–\",\n percent: (fraction, decimals = 2, signed = true) =>\n formatPercent(fraction, locale, decimals, signed),\n locale,\n priceDecimals,\n sizeDecimals,\n };\n};\n\nconst pad = (value: number, length = 2) => String(value).padStart(length, \"0\");\n\n/** `HH:MM:SS` or `HH:MM:SS.mmm`, in the local time or UTC */\nexport const formatClock = (\n time: number,\n milliseconds = true,\n timeZone: ChartTimeZone = \"local\",\n): string => {\n const d = new Date(time);\n if (Number.isNaN(d.getTime())) return \"–\";\n const utc = timeZone === \"utc\";\n const base = utc\n ? `${pad(d.getUTCHours())}:${pad(d.getUTCMinutes())}:${pad(d.getUTCSeconds())}`\n : `${pad(d.getHours())}:${pad(d.getMinutes())}:${pad(d.getSeconds())}`;\n return milliseconds\n ? `${base}.${pad(utc ? d.getUTCMilliseconds() : d.getMilliseconds(), 3)}`\n : base;\n};\n\nexport const DEFAULT_UP = \"var(--success-color, #16a34a)\";\nexport const DEFAULT_DOWN = \"var(--danger-color, #dc2626)\";\nconst UP_FALLBACK: Rgba = [0.09, 0.64, 0.29, 1];\nconst DOWN_FALLBACK: Rgba = [0.86, 0.15, 0.15, 1];\n\n/** Colors of the bids / buys (`up`) and asks / sells (`down`) */\nexport const sideColors = (\n theme: ChartTheme,\n options: OrderBookCommonOptions,\n): { up: Rgba; down: Rgba } => {\n const resolve = (value: string, fallback: Rgba) =>\n theme.resolve ? theme.resolve(value, fallback) : fallback;\n const redUp = options.colorConvention === \"red-up\";\n return {\n up: resolve(\n options.upColor ?? (redUp ? DEFAULT_DOWN : DEFAULT_UP),\n redUp ? DOWN_FALLBACK : UP_FALLBACK,\n ),\n down: resolve(\n options.downColor ?? (redUp ? DEFAULT_UP : DEFAULT_DOWN),\n redUp ? UP_FALLBACK : DOWN_FALLBACK,\n ),\n };\n};\n\n/** Canvas font of the options */\nexport const fontOf = (\n theme: ChartTheme,\n options: OrderBookCommonOptions,\n weight: number | string = 400,\n size?: number,\n): string =>\n `${weight} ${size ?? options.fontSize ?? 12}px ${options.fontFamily ?? theme.fontFamily}`;\n\n/** Exponential smoothing factor for a frame of `dt` ms */\nexport const ease = (dt: number, tau: number): number =>\n tau <= 0 ? 1 : 1 - Math.exp(-Math.max(0, dt) / tau);\n\nexport const clamp = (value: number, min: number, max: number): number =>\n value < min ? min : value > max ? max : value;\n\n/** Rounded rectangle path (`roundRect` is missing in older browsers) */\nexport const roundRect = (\n ctx: CanvasRenderingContext2D,\n x: number,\n y: number,\n w: number,\n h: number,\n r: number,\n) => {\n const radius = Math.max(0, Math.min(r, w / 2, h / 2));\n ctx.beginPath();\n ctx.moveTo(x + radius, y);\n ctx.arcTo(x + w, y, x + w, y + h, radius);\n ctx.arcTo(x + w, y + h, x, y + h, radius);\n ctx.arcTo(x, y + h, x, y, radius);\n ctx.arcTo(x, y, x + w, y, radius);\n ctx.closePath();\n};\n"],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import { ChartTheme } from '../theme.cjs';
2
+ import { Rgba } from '../color.cjs';
3
+ import { ChartTimeZone } from '../types.cjs';
4
+ import { OrderBookCommonOptions } from './types.cjs';
5
+ /** Cached `Intl.NumberFormat` with fixed decimals (page language when `locale` is omitted) */
6
+ export declare const numberFormat: (locale: string | undefined, decimals: number) => Intl.NumberFormat;
7
+ /**
8
+ * Compact number in the units of the language (12.4k, 1.25 M, 3.2万, 1.5億),
9
+ * with the locale's decimal separator
10
+ */
11
+ export declare const formatCompactNumber: (value: number, locale?: string, maxDecimals?: number) => string;
12
+ /** Signed percentage of a fraction (`+0.125%`), in the locale */
13
+ export declare const formatPercent: (fraction: number, locale?: string, decimals?: number, signed?: boolean) => string;
14
+ export interface Formatters {
15
+ price: (value: number) => string;
16
+ size: (value: number) => string;
17
+ /** Large totals: compact (12.4k, 124万) above a million */
18
+ total: (value: number) => string;
19
+ /** Notional values: compact above ten thousand */
20
+ notional: (value: number) => string;
21
+ /** Axis values: always compact when large */
22
+ compact: (value: number) => string;
23
+ /** Fixed decimals in the locale (basis points, shares) */
24
+ fixed: (value: number, decimals: number) => string;
25
+ /** Percentage of a fraction (signed by default) */
26
+ percent: (fraction: number, decimals?: number, signed?: boolean) => string;
27
+ /** Resolved locale (`locale` option or page language) */
28
+ locale: string;
29
+ priceDecimals: number;
30
+ sizeDecimals: number;
31
+ }
32
+ /** Formatters of the options, with inferred decimals as fallbacks */
33
+ export declare const createFormatters: (options: OrderBookCommonOptions, inferredPrice: number, inferredSize: number) => Formatters;
34
+ /** `HH:MM:SS` or `HH:MM:SS.mmm`, in the local time or UTC */
35
+ export declare const formatClock: (time: number, milliseconds?: boolean, timeZone?: ChartTimeZone) => string;
36
+ export declare const DEFAULT_UP = "var(--success-color, #16a34a)";
37
+ export declare const DEFAULT_DOWN = "var(--danger-color, #dc2626)";
38
+ /** Colors of the bids / buys (`up`) and asks / sells (`down`) */
39
+ export declare const sideColors: (theme: ChartTheme, options: OrderBookCommonOptions) => {
40
+ up: Rgba;
41
+ down: Rgba;
42
+ };
43
+ /** Canvas font of the options */
44
+ export declare const fontOf: (theme: ChartTheme, options: OrderBookCommonOptions, weight?: number | string, size?: number) => string;
45
+ /** Exponential smoothing factor for a frame of `dt` ms */
46
+ export declare const ease: (dt: number, tau: number) => number;
47
+ export declare const clamp: (value: number, min: number, max: number) => number;
48
+ /** Rounded rectangle path (`roundRect` is missing in older browsers) */
49
+ export declare const roundRect: (ctx: CanvasRenderingContext2D, x: number, y: number, w: number, h: number, r: number) => void;
@@ -0,0 +1,49 @@
1
+ import { ChartTheme } from '../theme.js';
2
+ import { Rgba } from '../color.js';
3
+ import { ChartTimeZone } from '../types.js';
4
+ import { OrderBookCommonOptions } from './types.js';
5
+ /** Cached `Intl.NumberFormat` with fixed decimals (page language when `locale` is omitted) */
6
+ export declare const numberFormat: (locale: string | undefined, decimals: number) => Intl.NumberFormat;
7
+ /**
8
+ * Compact number in the units of the language (12.4k, 1.25 M, 3.2万, 1.5億),
9
+ * with the locale's decimal separator
10
+ */
11
+ export declare const formatCompactNumber: (value: number, locale?: string, maxDecimals?: number) => string;
12
+ /** Signed percentage of a fraction (`+0.125%`), in the locale */
13
+ export declare const formatPercent: (fraction: number, locale?: string, decimals?: number, signed?: boolean) => string;
14
+ export interface Formatters {
15
+ price: (value: number) => string;
16
+ size: (value: number) => string;
17
+ /** Large totals: compact (12.4k, 124万) above a million */
18
+ total: (value: number) => string;
19
+ /** Notional values: compact above ten thousand */
20
+ notional: (value: number) => string;
21
+ /** Axis values: always compact when large */
22
+ compact: (value: number) => string;
23
+ /** Fixed decimals in the locale (basis points, shares) */
24
+ fixed: (value: number, decimals: number) => string;
25
+ /** Percentage of a fraction (signed by default) */
26
+ percent: (fraction: number, decimals?: number, signed?: boolean) => string;
27
+ /** Resolved locale (`locale` option or page language) */
28
+ locale: string;
29
+ priceDecimals: number;
30
+ sizeDecimals: number;
31
+ }
32
+ /** Formatters of the options, with inferred decimals as fallbacks */
33
+ export declare const createFormatters: (options: OrderBookCommonOptions, inferredPrice: number, inferredSize: number) => Formatters;
34
+ /** `HH:MM:SS` or `HH:MM:SS.mmm`, in the local time or UTC */
35
+ export declare const formatClock: (time: number, milliseconds?: boolean, timeZone?: ChartTimeZone) => string;
36
+ export declare const DEFAULT_UP = "var(--success-color, #16a34a)";
37
+ export declare const DEFAULT_DOWN = "var(--danger-color, #dc2626)";
38
+ /** Colors of the bids / buys (`up`) and asks / sells (`down`) */
39
+ export declare const sideColors: (theme: ChartTheme, options: OrderBookCommonOptions) => {
40
+ up: Rgba;
41
+ down: Rgba;
42
+ };
43
+ /** Canvas font of the options */
44
+ export declare const fontOf: (theme: ChartTheme, options: OrderBookCommonOptions, weight?: number | string, size?: number) => string;
45
+ /** Exponential smoothing factor for a frame of `dt` ms */
46
+ export declare const ease: (dt: number, tau: number) => number;
47
+ export declare const clamp: (value: number, min: number, max: number) => number;
48
+ /** Rounded rectangle path (`roundRect` is missing in older browsers) */
49
+ export declare const roundRect: (ctx: CanvasRenderingContext2D, x: number, y: number, w: number, h: number, r: number) => void;
@@ -0,0 +1,65 @@
1
+ import { compactUnits as e, numberFormat as t, resolveLocale as n } from "../locale.js";
2
+ //#region src/engine/orderbook/format.ts
3
+ var r = (e, r) => {
4
+ let i = Math.max(0, Math.min(12, Math.round(r)));
5
+ return t(n(e), {
6
+ minimumFractionDigits: i,
7
+ maximumFractionDigits: i
8
+ });
9
+ }, i = (r, i, a = 2) => {
10
+ if (!Number.isFinite(r)) return "–";
11
+ let o = n(i), s = Math.abs(r);
12
+ for (let [n, i] of e(o)) if (s >= n) return t(o, { maximumFractionDigits: a }).format(r / n) + i;
13
+ return t(o, { maximumFractionDigits: s >= 100 ? 0 : s >= 1 ? 2 : 4 }).format(r);
14
+ }, a = (e, r, i = 2, a = !0) => {
15
+ if (!Number.isFinite(e)) return "–";
16
+ let o = Math.max(0, Math.min(6, Math.round(i)));
17
+ return t(n(r), {
18
+ style: "percent",
19
+ minimumFractionDigits: o,
20
+ maximumFractionDigits: o,
21
+ signDisplay: a ? "exceptZero" : "auto"
22
+ }).format(e);
23
+ }, o = (e, t, o) => {
24
+ let s = n(e.locale), c = e.pricePrecision ?? t, l = e.sizePrecision ?? o, u = r(s, c), d = r(s, l), f = (e) => (t) => Number.isFinite(t) ? e(t) : "–", p = f(e.formatSize ?? ((e) => d.format(e))), m = (e) => i(e, s, 2);
25
+ return {
26
+ price: f(e.formatPrice ?? ((e) => u.format(e))),
27
+ size: p,
28
+ total: f((e) => Math.abs(e) >= 1e6 ? m(e) : p(e)),
29
+ notional: f((e) => Math.abs(e) >= 1e4 ? m(e) : r(s, 2).format(e)),
30
+ compact: f(m),
31
+ fixed: (e, t) => Number.isFinite(e) ? r(s, t).format(e) : "–",
32
+ percent: (e, t = 2, n = !0) => a(e, s, t, n),
33
+ locale: s,
34
+ priceDecimals: c,
35
+ sizeDecimals: l
36
+ };
37
+ }, s = (e, t = 2) => String(e).padStart(t, "0"), c = (e, t = !0, n = "local") => {
38
+ let r = new Date(e);
39
+ if (Number.isNaN(r.getTime())) return "–";
40
+ let i = n === "utc", a = i ? `${s(r.getUTCHours())}:${s(r.getUTCMinutes())}:${s(r.getUTCSeconds())}` : `${s(r.getHours())}:${s(r.getMinutes())}:${s(r.getSeconds())}`;
41
+ return t ? `${a}.${s(i ? r.getUTCMilliseconds() : r.getMilliseconds(), 3)}` : a;
42
+ }, l = "var(--success-color, #16a34a)", u = "var(--danger-color, #dc2626)", d = [
43
+ .09,
44
+ .64,
45
+ .29,
46
+ 1
47
+ ], f = [
48
+ .86,
49
+ .15,
50
+ .15,
51
+ 1
52
+ ], p = (e, t) => {
53
+ let n = (t, n) => e.resolve ? e.resolve(t, n) : n, r = t.colorConvention === "red-up";
54
+ return {
55
+ up: n(t.upColor ?? (r ? "var(--danger-color, #dc2626)" : "var(--success-color, #16a34a)"), r ? f : d),
56
+ down: n(t.downColor ?? (r ? "var(--success-color, #16a34a)" : "var(--danger-color, #dc2626)"), r ? d : f)
57
+ };
58
+ }, m = (e, t, n = 400, r) => `${n} ${r ?? t.fontSize ?? 12}px ${t.fontFamily ?? e.fontFamily}`, h = (e, t) => t <= 0 ? 1 : 1 - Math.exp(-Math.max(0, e) / t), g = (e, t, n) => e < t ? t : e > n ? n : e, _ = (e, t, n, r, i, a) => {
59
+ let o = Math.max(0, Math.min(a, r / 2, i / 2));
60
+ e.beginPath(), e.moveTo(t + o, n), e.arcTo(t + r, n, t + r, n + i, o), e.arcTo(t + r, n + i, t, n + i, o), e.arcTo(t, n + i, t, n, o), e.arcTo(t, n, t + r, n, o), e.closePath();
61
+ };
62
+ //#endregion
63
+ export { u as DEFAULT_DOWN, l as DEFAULT_UP, g as clamp, o as createFormatters, h as ease, m as fontOf, c as formatClock, i as formatCompactNumber, a as formatPercent, r as numberFormat, _ as roundRect, p as sideColors };
64
+
65
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","names":["intlNumberFormat","numberFormat$1","numberFormat","d","decimals","resolveLocale","locale","formatCompactNumber","value","resolved","abs","unit","suffix","compactUnits","maxDecimals","formatPercent","fraction","signed","createFormatters","options","priceDecimals","inferredPrice","sizeDecimals","inferredSize","priceFormat","sizeFormat","finite","fn","size","v","compact","pad","length","formatClock","time","utc","timeZone","base","milliseconds","DEFAULT_UP","DEFAULT_DOWN","UP_FALLBACK","DOWN_FALLBACK","sideColors","resolve","theme","fallback","redUp","fontOf","weight","ease","tau","dt","clamp","min","max","roundRect","radius","r","w","h","ctx","x","y"],"sources":["../../../../../charts/src/engine/orderbook/format.ts"],"sourcesContent":["// Number, time and color helpers shared by the order book widgets.\n\nimport type { ChartTheme } from \"../theme\";\nimport type { Rgba } from \"../color\";\nimport type { ChartTimeZone } from \"../types\";\nimport {\n compactUnits,\n numberFormat as intlNumberFormat,\n resolveLocale,\n} from \"../locale\";\nimport type { OrderBookCommonOptions } from \"./types\";\n\n/** Cached `Intl.NumberFormat` with fixed decimals (page language when `locale` is omitted) */\nexport const numberFormat = (\n locale: string | undefined,\n decimals: number,\n): Intl.NumberFormat => {\n const d = Math.max(0, Math.min(12, Math.round(decimals)));\n return intlNumberFormat(resolveLocale(locale), {\n minimumFractionDigits: d,\n maximumFractionDigits: d,\n });\n};\n\n/**\n * Compact number in the units of the language (12.4k, 1.25 M, 3.2万, 1.5億),\n * with the locale's decimal separator\n */\nexport const formatCompactNumber = (\n value: number,\n locale?: string,\n maxDecimals = 2,\n): string => {\n if (!Number.isFinite(value)) return \"–\";\n const resolved = resolveLocale(locale);\n const abs = Math.abs(value);\n for (const [unit, suffix] of compactUnits(resolved)) {\n if (abs >= unit)\n return (\n intlNumberFormat(resolved, {\n maximumFractionDigits: maxDecimals,\n }).format(value / unit) + suffix\n );\n }\n return intlNumberFormat(resolved, {\n maximumFractionDigits: abs >= 100 ? 0 : abs >= 1 ? 2 : 4,\n }).format(value);\n};\n\n/** Signed percentage of a fraction (`+0.125%`), in the locale */\nexport const formatPercent = (\n fraction: number,\n locale?: string,\n decimals = 2,\n signed = true,\n): string => {\n if (!Number.isFinite(fraction)) return \"–\";\n const d = Math.max(0, Math.min(6, Math.round(decimals)));\n return intlNumberFormat(resolveLocale(locale), {\n style: \"percent\",\n minimumFractionDigits: d,\n maximumFractionDigits: d,\n signDisplay: signed ? \"exceptZero\" : \"auto\",\n }).format(fraction);\n};\n\nexport interface Formatters {\n price: (value: number) => string;\n size: (value: number) => string;\n /** Large totals: compact (12.4k, 124万) above a million */\n total: (value: number) => string;\n /** Notional values: compact above ten thousand */\n notional: (value: number) => string;\n /** Axis values: always compact when large */\n compact: (value: number) => string;\n /** Fixed decimals in the locale (basis points, shares) */\n fixed: (value: number, decimals: number) => string;\n /** Percentage of a fraction (signed by default) */\n percent: (fraction: number, decimals?: number, signed?: boolean) => string;\n /** Resolved locale (`locale` option or page language) */\n locale: string;\n priceDecimals: number;\n sizeDecimals: number;\n}\n\n/** Formatters of the options, with inferred decimals as fallbacks */\nexport const createFormatters = (\n options: OrderBookCommonOptions,\n inferredPrice: number,\n inferredSize: number,\n): Formatters => {\n const locale = resolveLocale(options.locale);\n const priceDecimals = options.pricePrecision ?? inferredPrice;\n const sizeDecimals = options.sizePrecision ?? inferredSize;\n const priceFormat = numberFormat(locale, priceDecimals);\n const sizeFormat = numberFormat(locale, sizeDecimals);\n const finite =\n (fn: (value: number) => string) =>\n (value: number): string =>\n Number.isFinite(value) ? fn(value) : \"–\";\n const size = finite(options.formatSize ?? ((v) => sizeFormat.format(v)));\n const compact = (v: number) => formatCompactNumber(v, locale, 2);\n return {\n price: finite(options.formatPrice ?? ((v) => priceFormat.format(v))),\n size,\n total: finite((v) => (Math.abs(v) >= 1e6 ? compact(v) : size(v))),\n notional: finite((v) =>\n Math.abs(v) >= 1e4 ? compact(v) : numberFormat(locale, 2).format(v),\n ),\n compact: finite(compact),\n fixed: (v, decimals) =>\n Number.isFinite(v) ? numberFormat(locale, decimals).format(v) : \"–\",\n percent: (fraction, decimals = 2, signed = true) =>\n formatPercent(fraction, locale, decimals, signed),\n locale,\n priceDecimals,\n sizeDecimals,\n };\n};\n\nconst pad = (value: number, length = 2) => String(value).padStart(length, \"0\");\n\n/** `HH:MM:SS` or `HH:MM:SS.mmm`, in the local time or UTC */\nexport const formatClock = (\n time: number,\n milliseconds = true,\n timeZone: ChartTimeZone = \"local\",\n): string => {\n const d = new Date(time);\n if (Number.isNaN(d.getTime())) return \"–\";\n const utc = timeZone === \"utc\";\n const base = utc\n ? `${pad(d.getUTCHours())}:${pad(d.getUTCMinutes())}:${pad(d.getUTCSeconds())}`\n : `${pad(d.getHours())}:${pad(d.getMinutes())}:${pad(d.getSeconds())}`;\n return milliseconds\n ? `${base}.${pad(utc ? d.getUTCMilliseconds() : d.getMilliseconds(), 3)}`\n : base;\n};\n\nexport const DEFAULT_UP = \"var(--success-color, #16a34a)\";\nexport const DEFAULT_DOWN = \"var(--danger-color, #dc2626)\";\nconst UP_FALLBACK: Rgba = [0.09, 0.64, 0.29, 1];\nconst DOWN_FALLBACK: Rgba = [0.86, 0.15, 0.15, 1];\n\n/** Colors of the bids / buys (`up`) and asks / sells (`down`) */\nexport const sideColors = (\n theme: ChartTheme,\n options: OrderBookCommonOptions,\n): { up: Rgba; down: Rgba } => {\n const resolve = (value: string, fallback: Rgba) =>\n theme.resolve ? theme.resolve(value, fallback) : fallback;\n const redUp = options.colorConvention === \"red-up\";\n return {\n up: resolve(\n options.upColor ?? (redUp ? DEFAULT_DOWN : DEFAULT_UP),\n redUp ? DOWN_FALLBACK : UP_FALLBACK,\n ),\n down: resolve(\n options.downColor ?? (redUp ? DEFAULT_UP : DEFAULT_DOWN),\n redUp ? UP_FALLBACK : DOWN_FALLBACK,\n ),\n };\n};\n\n/** Canvas font of the options */\nexport const fontOf = (\n theme: ChartTheme,\n options: OrderBookCommonOptions,\n weight: number | string = 400,\n size?: number,\n): string =>\n `${weight} ${size ?? options.fontSize ?? 12}px ${options.fontFamily ?? theme.fontFamily}`;\n\n/** Exponential smoothing factor for a frame of `dt` ms */\nexport const ease = (dt: number, tau: number): number =>\n tau <= 0 ? 1 : 1 - Math.exp(-Math.max(0, dt) / tau);\n\nexport const clamp = (value: number, min: number, max: number): number =>\n value < min ? min : value > max ? max : value;\n\n/** Rounded rectangle path (`roundRect` is missing in older browsers) */\nexport const roundRect = (\n ctx: CanvasRenderingContext2D,\n x: number,\n y: number,\n w: number,\n h: number,\n r: number,\n) => {\n const radius = Math.max(0, Math.min(r, w / 2, h / 2));\n ctx.beginPath();\n ctx.moveTo(x + radius, y);\n ctx.arcTo(x + w, y, x + w, y + h, radius);\n ctx.arcTo(x + w, y + h, x, y + h, radius);\n ctx.arcTo(x, y + h, x, y, radius);\n ctx.arcTo(x, y, x + w, y, radius);\n ctx.closePath();\n};\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ const e=require("../color.cjs"),t=require("../locale.cjs"),n=require("../scale.cjs"),r=require("../renderers/detect.cjs"),i=require("../time.cjs"),a=require("./book.cjs"),o=require("./format.cjs"),s=require("./host.cjs"),c=require("./layout.cjs");var l=32,u=128,d=[`#0b2140`,`#0f3a70`,`#1259a3`,`#1585bd`,`#1fb3b0`,`#62cf73`,`#d9e04a`,`#ffb23a`,`#ff6a33`],f=[`#dfecfb`,`#b3d2f5`,`#79abe8`,`#4580d6`,`#3b54b8`,`#5a33a0`,`#962a86`,`#cf2f55`],ee=16,p=6,m={en:{time:`Time`,price:`Price`,liquidity:`Liquidity`,buys:`Buys`,sells:`Sells`,bid:`Bid`,ask:`Ask`,name:`Liquidity heatmap`},zh:{time:`时间`,price:`价格`,liquidity:`挂单量`,buys:`主动买入`,sells:`主动卖出`,bid:`买一`,ask:`卖一`,name:`订单簿热力图`},ja:{time:`時刻`,price:`価格`,liquidity:`指値量`,buys:`買い約定`,sells:`売り約定`,bid:`最良買気配`,ask:`最良売気配`,name:`板ヒートマップ`},fr:{time:`Heure`,price:`Prix`,liquidity:`Liquidité`,buys:`Achats`,sells:`Ventes`,bid:`Meilleur achat`,ask:`Meilleure vente`,name:`Carte de chaleur de la liquidité`}},h=(e,t,n,r)=>{if(!(e>0)||!(t>0))return 0;let i=Math.min(1,e*r/t);switch(n){case`linear`:return i;case`sqrt`:return Math.sqrt(i);default:return Math.log10(1+9*i)}},g=(g,_={})=>{let v=_,y=a.createOrderBookStore(),b=s.createEmitter(),x=o.createFormatters(v,2,4),S={up:[0,0,0,1],down:[0,0,0,1]},C=new Uint32Array(u),te=[0,0,0,1],w=!1,T=0,E=[],ne=0,D=NaN,O={buyVolume:0,buyNotional:0,sellVolume:0,sellNotional:0},k=null,A=NaN,re=0,j=0,M=0,N=0,P=new Map,F=new Set,ie=0,I=null,L=-1,ae={x:NaN,y:NaN},R=null,oe=0,z=!1,B=()=>{},se=new Promise(e=>{B=e}),ce=!0,V=NaN,H=[0,1],U=[0,1],le=!1,W=null,G=NaN,K=NaN,ue=0,q={x:0,y:0,w:0,h:0},de=null,fe=``,J=null,Y=s.createHost(g,{className:`minerva-orderbook-heatmap`,draw:He,onTheme:()=>{ye(),xe()}}),{root:X,doc:pe}=Y;X.tabIndex=0,X.setAttribute(`role`,`figure`),X.style.touchAction=`none`;let Z=t.localeLabels(m,v.locale,v.labels),me=()=>Z,he=()=>{Z=t.localeLabels(m,v.locale,v.labels),X.setAttribute(`aria-label`,v.ariaLabel??Z.name)},Q=()=>Math.max(10,v.interval??100),ge=()=>Math.max(Q()*4,v.history??3e5),$=()=>Math.max(4,Math.round(v.depth??160)),_e=()=>{if(!Number.isFinite(A))return Date.now();let e=ve()-re;return A+Math.min(Math.max(0,e),Q()*3)},ve=()=>typeof performance<`u`?performance.now():Date.now();function ye(){let t=Y.theme;S=o.sideColors(t,v);let n=e=>{let n=t.resolve?t.resolve(e,t.primary):t.primary;return[n[0],n[1],n[2],1]},r=[t.background[0],t.background[1],t.background[2],1];w=t.background[3]>0&&e.luminance(r)<.4,te=w?e.mixOklab(r,[0,0,0,1],.4):e.mixOklab(r,[t.text[0],t.text[1],t.text[2],1],.02),C=e.oklabRamp([te,...(v.colors?.length?v.colors:w?d:f).map(n)],u)}let be=()=>{x=o.createFormatters(v,T>0?Math.max(a.decimalsOf(T),a.inferPriceDecimals(y)):a.inferPriceDecimals(y),a.inferSizeDecimals(y))},xe=()=>{for(let e of P.keys())F.add(e);L=-1,Y.invalidate()},Se=()=>{E=[],P.clear(),F.clear(),I=null,L=-1,D=NaN,ae={x:NaN,y:NaN},j=0,M=0,K=NaN,O.buyVolume=O.buyNotional=O.sellVolume=O.sellNotional=0},Ce=()=>{if(T>0)return;let e=a.inferTickSize(y),t=y.mid();if(v.tickSize&&v.tickSize>0)T=v.tickSize;else if(e>0&&Number.isFinite(t)){let n=t*1e-5/e,r=1;for(let e=1;e<=1e9&&r<n*.75;e*=10)for(let t of[1,2,5])if(r=t*e,r>=n*.75)break;T=a.roundToStep(e*r,e)}else T=Number.isFinite(t)?Math.max(1e-8,t*1e-5):0;T>0&&be()},we=()=>{let e=$(),t=new Float64Array(e*2),n=new Float32Array(e*2),r=0,i=[0,0,0,0];for(let i of[`bid`,`ask`]){let a=y.count(i),o=0;for(let s=0;s<a;s++){let a=Math.round(y.priceAt(i,s)/T),c=y.sizeAt(i,s);if(r>0&&t[r-1]===a&&o>0){n[r-1]+=c;continue}if(o>=e)break;t[r]=a,n[r]=c,r++,o++}}for(let e=0;e<r;e++){let t=n[e];t>i[3]&&(i[3]=t,i.sort((e,t)=>t-e))}return{bins:t.subarray(0,r),sizes:n.subarray(0,r),reference:i[3]||i[0]}},Te=e=>{if(!(T>0))return;let{bins:t,sizes:n,reference:r}=we(),i={seq:ne++,time:e,bins:t,sizes:n,bestBid:y.bestBid(),bestAsk:y.bestAsk(),buyVolume:O.buyVolume,buyNotional:O.buyNotional,sellVolume:O.sellVolume,sellNotional:O.sellNotional,reference:r};if(O.buyVolume=O.buyNotional=O.sellVolume=O.sellNotional=0,E.push(i),F.add(Math.floor(i.seq/l)),v.maxSize===void 0){let e=E.slice(-100),t=0;for(let n of e)t+=n.reference;let n=t/e.length*1.6;if(!(j>0)||Math.abs(n/j-1)>.3){j=n;for(let e of P.keys())F.add(e);L=-1}}let a=e-ge(),o=0;for(;o<E.length&&E[o].time<a;)o++;if(o){E=E.slice(o);let e=E[0]?Math.floor(E[0].seq/l):1/0;for(let t of[...P.keys()])t<e&&P.delete(t)}},Ee=e=>{if(!Number.isFinite(e))return;let t=Q();if(!Number.isFinite(D)){D=Math.floor(e/t)*t;return}if(e-D>ge()){Te(D),D=Math.floor(e/t)*t;return}for(;e>=D+t;)Te(D),D+=t},De=e=>e===void 0||!Number.isFinite(e)?Date.now():((!Number.isFinite(A)||e>=A)&&(A=e,re=ve()),e),Oe=e=>{let t=0,n=E.length-1,r=Q();for(;t<=n;){let i=t+n>>>1,a=E[i];if(e<a.time)n=i-1;else if(e>=a.time+r)t=i+1;else return a}return null},ke=()=>{if(Number.isFinite(ae.x))return;let e=y.mid();ae={x:Number.isFinite(D)?D:0,y:Number.isFinite(e)?e:0}},Ae=e=>{let t=h(e,v.maxSize??j,v.colorScale??`log`,Math.max(.01,v.contrast??1));return Math.round(t*127)},je=(e,t)=>{let n=Q(),r=0;for(let e of t)for(let t=0;t<e.sizes.length;t++)Ae(e.sizes[t])>0&&r++;let i=new ArrayBuffer(Math.max(1,r)*16),a=new Float32Array(i),o=new Uint32Array(i),s=0,c=T/2*1.06;for(let e of t){let t=e.time+n/2-ae.x;for(let n=0;n<e.sizes.length;n++){let r=Ae(e.sizes[n]);if(r<=0)continue;let i=e.bins[n]*T-ae.y;a[s*4]=t,a[s*4+1]=i-c,a[s*4+2]=i+c,o[s*4+3]=C[r],s++}}return{kind:`bar`,key:e,version:++ie,color:[1,1,1,1],instances:i,count:r,halfWidth:n/2*1.06,radius:0,inset:.01,minHalf:0,sorted:!0}},Me=()=>{if(F.size){let e=new Map;for(let t of E){let n=Math.floor(t.seq/l);if(!F.has(n))continue;let r=e.get(n);r||e.set(n,r=[]),r.push(t)}for(let t of F){let n=e.get(t);n?P.set(t,je(`heat:${t}`,n)):P.delete(t)}F.clear()}return[...P.values()]},Ne=()=>{let e=Q(),t=[],n=0,r=E.length;for(;n<r;){let t=n+r>>>1;E[t].time+e<H[0]?n=t+1:r=t}for(let e=n;e<E.length;e++){let n=E[e];if(n.time>H[1])break;t.push(n)}return t},Pe=(e,t)=>{let n=Q(),r=Math.max(1,Math.ceil(p/Math.max(1e-6,t))),i=[],a=NaN,o=0,s=0,c={bv:0,bn:0,sv:0,sn:0},l=()=>{let e=(o+s)/2;c.sv>0&&i.push({time:e,price:c.sn/c.sv,volume:c.sv,buy:!1}),c.bv>0&&i.push({time:e,price:c.bn/c.bv,volume:c.bv,buy:!0}),c.bv=c.bn=c.sv=c.sn=0},u=(e,t,i)=>{let u=Math.floor(e/r);u!==a&&(Number.isFinite(a)&&l(),a=u,o=t),s=t+n,c.bv+=i.buyVolume,c.bn+=i.buyNotional,c.sv+=i.sellVolume,c.sn+=i.sellNotional};for(let t of e)u(t.seq,t.time,t);return Number.isFinite(D)&&D<=H[1]&&u(ne,D,O),Number.isFinite(a)&&l(),i},Fe=e=>{e.save(),e.beginPath(),e.rect(q.x,q.y,q.w,q.h),e.clip()},Ie=(t,n,r,i,a)=>{if(v.bestLines===!1)return;let o=Q(),s=n.map(e=>[e.time,e.bestBid,e.bestAsk]);if(Number.isFinite(D)&&s.push([D,y.bestBid(),y.bestAsk()]),!s.length)return;let c=a>=2;Fe(t),t.beginPath();for(let[e,n,a]of s){if(!Number.isFinite(n)||!Number.isFinite(a)||!(a>n))continue;let s=r(e),c=i(a);t.rect(s,c,r(e+o)-s,i(n)-c)}t.fillStyle=e.toCss(Y.theme.text,w?.07:.06),t.fill(),t.lineJoin=`round`;for(let[n,a]of[[1,S.up],[2,S.down]]){t.beginPath();let l=!1;for(let e of s){let a=e[n];if(!Number.isFinite(a)){l=!1;continue}let s=i(a),u=r(e[0]),d=r(e[0]+o);c?(l?t.lineTo(u,s):t.moveTo(u,s),t.lineTo(d,s)):l?t.lineTo((u+d)/2,s):t.moveTo((u+d)/2,s),l=!0}t.strokeStyle=e.toCss(te,.55),t.lineWidth=3.5,t.stroke(),t.strokeStyle=e.toCss(a),t.lineWidth=1.5,t.stroke()}t.restore()},Le=(t,n,r,i,a)=>{if(!n.length)return;let s=0;for(let e of n)s=Math.max(s,e.volume);M=M>0?Math.max(s,M*.995):s;let c=v.bubbleVolume??M,l=Math.max(4,v.bubbleSize??28),u=n.map(e=>({...e,d:o.clamp(Math.sqrt(e.volume/c)*l,3,l)})).sort((e,t)=>e.d-t.d);Fe(t),t.lineWidth=1.25,t.textAlign=`center`,t.textBaseline=`middle`,t.font=o.fontOf(Y.theme,v,600,Math.max(8,a-1));for(let n of u){let a=r(n.time),o=i(n.price),s=n.d/2;if(a<q.x-s||a>q.x+q.w+s||o<q.y-s||o>q.y+q.h+s)continue;let c=n.buy?S.up:S.down;if(t.beginPath(),t.arc(a,o,s,0,Math.PI*2),t.fillStyle=e.toCss(c,.62),t.fill(),t.strokeStyle=e.toCss(e.mixOklab(c,[1,1,1,1],.25)),t.stroke(),n.d>=26){let e=x.compact(n.volume);t.measureText(e).width<=n.d-6&&(t.fillStyle=`#fff`,t.fillText(e,a,o+.5))}}t.restore()},Re=(t,n,r,i,a)=>{let s=Y.theme,[l,u]=U,d=Math.max(1,T/(u-l)*q.h),f=0,ee=[`bid`,`ask`].map(e=>{let t=y.levels(e,{step:T,limit:$()});for(let e=0;e<t.count;e++){let n=t.price[e];n>=l&&n<=u&&(f=Math.max(f,t.size[e]))}return{side:e,...t}});if((f>N||f<N*.35||!(N>0))&&(N=c.niceCeil(f)),!(N>0))return;let p=n+3,m=r-9;t.strokeStyle=e.toCss(s.text,.09),t.lineWidth=1,t.setLineDash([2,3]),t.beginPath();for(let e of[.5,1]){let n=Math.round(p+m*e)+.5;t.moveTo(n,q.y),t.lineTo(n,q.y+q.h)}t.stroke(),t.setLineDash([]);let h=+(d>3),g=Math.max(1,d-h);for(let{side:n,price:r,size:a,count:o}of ee){let s=n===`bid`?S.up:S.down;t.beginPath();for(let e=1;e<o;e++){let n=r[e];if(n<l||n>u)continue;let o=Math.max(1,Math.min(m,a[e]/N*m));t.rect(p,i(n)-d/2+h/2,o,g)}t.fillStyle=e.toCss(s,.55),t.fill();let c=r[0];if(o&&c!==void 0&&c>=l&&c<=u){let n=Math.max(1,Math.min(m,a[0]/N*m));t.fillStyle=e.toCss(s,.95),t.fillRect(p,i(c)-d/2+h/2,n,g)}}let _=Math.round(q.y+q.h+4)+.5;t.strokeStyle=e.toCss(s.textMuted,.7),t.beginPath(),t.moveTo(p,_),t.lineTo(p+m,_);for(let e of[0,.5,1]){let n=Math.round(p+m*e)+.5;t.moveTo(n,_),t.lineTo(n,_+3)}t.stroke(),t.font=o.fontOf(s,v,400,Math.max(8,a-1)),t.fillStyle=e.toCss(s.textMuted),t.textBaseline=`top`;let b=x.compact(N),C=t.measureText(b).width;t.textAlign=`right`,t.fillText(b,p+m+2,_+4),C+t.measureText(`0`).width+8<m&&(t.textAlign=`left`,t.fillText(`0`,p-1,_+4))},ze=()=>{if(!Number.isFinite(D)||!(T>0))return null;let e=y.version();if(I&&L===e)return I;let{bins:t,sizes:n}=we();return I=je(`heat:head`,[{time:D,bins:t,sizes:n}]),L=e,I},Be=()=>{if(!de||v.tooltip===!1||!(T>0)||J||!le)return null;let[e,t]=de;if(e<q.x||e>q.x+q.w||t<q.y||t>q.y+q.h)return null;let[n,r]=H,[i,o]=U,s=n+(e-q.x)/q.w*(r-n),c=i+(q.y+q.h-t)/q.h*(o-i),l=Math.round(c/T),u=+(l*T).toFixed(Math.min(12,a.decimalsOf(T)+2)),d=Oe(s);return{hx:e,hy:t,time:s,start:d?d.time:Number.isFinite(D)&&s>=D?D:NaN,column:d,bin:l,rowPrice:u}},Ve=(t,n,r,i,a,s,c,l=`left`)=>{let u=Math.min(t.measureText(n).width+10,a),d=l===`center`?r-u/2:r;t.fillStyle=c?e.toCss(s):e.toCss(te),o.roundRect(t,d,i-ee/2,u,ee,3),t.fill(),c||(t.strokeStyle=e.toCss(s),t.lineWidth=1,t.stroke()),t.fillStyle=c?e.luminance(s)>.6?`#111`:`#fff`:e.toCss(s),t.textAlign=l,t.textBaseline=`middle`,t.fillText(n,l===`center`?r:d+5,i+.5)};function He(t){let r=Y.ctx;if(!r)return!1;let{width:a,height:s,dpr:l,theme:u}=Y,d=ue?t-ue:0;ue=t;let f=me(),p=v.fontSize??(a<420?10:11),m=o.fontOf(u,v,400,p),h=o.fontOf(u,v,600,p),g=Q(),_=!Number.isFinite(A);_&&y.count(`bid`)+y.count(`ask`)>0&&Ee(Date.now());let b=_e();K=Number.isFinite(K)&&b>K-g*4?Math.max(K,b):b;let C=K;r.setTransform(l,0,0,l,0,0),r.clearRect(0,0,a,s),Ce();let ne=y.mid();r.font=h;let O=x.price(Number.isFinite(ne)?ne*1.0001:0),j=Math.ceil(r.measureText(O).width)+18;r.font=m;let M=v.profile===!1?0:Math.round(o.clamp(a*.11,44,96)),N=p+12;q={x:0,y:0,w:Math.max(10,a-j-M),h:Math.max(10,s-N)};let P=q.x+q.w,F=P+M;if(Number.isFinite(V)||(V=Math.max(g*10,v.window??6e4)),ce){let e=E.length?E[0].time:D;H=c.fitTimeRange(e,C,V,Math.min(V,g*60));let t=y.bestBid(),n=y.bestAsk();for(let e of Ne())Number.isFinite(e.bestBid)&&!(e.bestBid>=t)&&(t=e.bestBid),Number.isFinite(e.bestAsk)&&!(e.bestAsk<=n)&&(n=e.bestAsk);Number.isFinite(t)||(t=n),Number.isFinite(n)||(n=t);let r=T>0?T*Math.max(40,q.h/6):0,i=v.priceSpan??(Number.isFinite(G)?G:void 0);if(r>0||i!==void 0){W=c.fitPriceRange(W,t,n,r,i);let[e,a]=W;if(Number.isFinite(e)&&Number.isFinite(a)){if(!le)U=[e,a],le=!0;else{let t=o.ease(d,280);U=[U[0]+(e-U[0])*t,U[1]+(a-U[1])*t]}}}}let[ie,I]=H,[L,oe]=U,z=e=>q.x+(e-ie)/(I-ie)*q.w,B=e=>q.y+q.h-(e-L)/(oe-L)*q.h,se=le&&T>0,de=Ne(),fe=g/(I-ie)*q.w,J=e.toCss(te);if(R&&T>0){ke();let e=R.canvas;e.style.left=`${q.x}px`,e.style.top=`${q.y}px`,e.style.width=`${q.w}px`,e.style.height=`${q.h}px`,e.dataset.floor!==J&&(e.dataset.floor=J,e.style.background=J);let t=Math.max(1,Math.round(q.w*l)),n=Math.max(1,Math.round(q.h*l));(e.width!==t||e.height!==n)&&R.resize(t,n);let r=Me(),i=ze();i&&r.push(i);let a=2/(I-ie),o=2/(oe-L);R.render(r,{transform:{xScale:a,xOffset:(ae.x-ie)*a-1,yScale:o,yOffset:(ae.y-L)*o-1},width:t,height:n,dpr:l})}else r.fillStyle=J,r.fillRect(q.x,q.y,q.w,q.h);M&&(r.fillStyle=J,r.fillRect(P,q.y,M,q.h));let X=se?n.linearTicks(L,oe,Math.max(2,Math.floor(q.h/44))):[],pe=i.timeTicks(ie,I,Math.max(2,Math.floor(q.w/75)),void 0,v.timeZone??`local`);r.strokeStyle=e.toCss(u.text,w?.07:.09),r.lineWidth=1,r.beginPath();for(let e of X){let t=Math.round(B(e))+.5;r.moveTo(q.x,t),r.lineTo(F,t)}for(let e of pe.values){let t=Math.round(z(e))+.5;t<=q.x+1||t>=P-1||(r.moveTo(t,q.y),r.lineTo(t,q.y+q.h))}r.stroke(),se&&(Ie(r,de,z,B,fe),v.bubbles!==!1&&Le(r,Pe(de,fe),z,B,p),M&&Re(r,P,M,B,p)),r.strokeStyle=e.toCss(u.axis),r.lineWidth=1,r.beginPath(),r.moveTo(0,Math.round(q.y+q.h)+.5),r.lineTo(a,Math.round(q.y+q.h)+.5),M&&(r.moveTo(Math.round(P)+.5,q.y),r.lineTo(Math.round(P)+.5,q.y+q.h)),r.moveTo(Math.round(F)+.5,q.y),r.lineTo(Math.round(F)+.5,q.y+q.h),r.stroke();let Z=se?Be():null;r.font=m;let he=Z?o.formatClock(Number.isFinite(Z.start)?Z.start:Z.time,g<1e3,v.timeZone):``,ge=Z?r.measureText(he).width/2+8:0;r.fillStyle=e.toCss(u.textMuted),r.textAlign=`center`,r.textBaseline=`top`;for(let e of pe.values){let t=z(e);if(t<20||t>P-20)continue;let n=pe.format(e);Z&&Math.abs(t-Z.hx)<ge+r.measureText(n).width/2||r.fillText(n,t,q.y+q.h+6)}let $=k,ye=[{price:y.bestAsk(),color:S.down,filled:!0},{price:y.bestBid(),color:S.up,filled:!0}];$&&$.price!==y.bestBid()&&$.price!==y.bestAsk()&&ye.push({price:$.price,color:$.side===`buy`?S.up:S.down,filled:!1});let be=se?ye.filter(e=>Number.isFinite(e.price)&&e.price>=L&&e.price<=oe):[],xe=Z?Math.round(B(Z.rowPrice))+.5:NaN,Se=c.layoutAxisLabels(be.map(e=>({y:B(e.price),h:ee})),Z?{y:xe,h:ee}:null,X.map(B),p+2,[q.y,q.y+q.h]);r.fillStyle=e.toCss(u.textMuted),r.textAlign=`left`,r.textBaseline=`middle`,X.forEach((e,t)=>{Se.ticks[t]&&r.fillText(x.price(e),F+6,B(e))}),r.font=h,be.forEach((t,n)=>{let i=Se.pinned[n];if(i==null)return;let o=B(t.price);Math.abs(i-o)>1&&(r.strokeStyle=e.toCss(t.color),r.lineWidth=1,r.beginPath(),r.moveTo(F-4,o),r.lineTo(F+1,i),r.stroke()),Ve(r,x.price(t.price),F+1,i,a-F-2,t.color,t.filled)}),Ue(r,z,B,F,f,Z,xe,he),r.font=m,Y.describe(`${v.ariaLabel??f.name}. ${f.bid} ${x.price(y.bestBid())}, ${f.ask} ${x.price(y.bestAsk())}.`);let we=_||ve()-re<2e3;return ce&&we&&Number.isFinite(D)||le&&W!==null&&Math.abs(U[0]-W[0])>1e-9}function Ue(t,n,r,i,a,c,l,u){let{theme:d}=Y;if(!c){Y.tooltip.style.display=`none`,fe&&(fe=``,b.emit(`hover`,null));return}let{hx:f,hy:p,time:m,start:h,column:g,bin:_,rowPrice:C}=c,te=Q(),w=0,E=NaN,ne=NaN,D=0,k=0;if(g){for(let e=0;e<g.bins.length;e++)g.bins[e]===_&&(w+=g.sizes[e]);({bestBid:E,bestAsk:ne,buyVolume:D,sellVolume:k}=g)}else if(Number.isFinite(h)){let e=[`bid`,`ask`].map(e=>y.levels(e,{step:T,limit:$()}));for(let t of e)for(let e=0;e<t.count;e++)Math.round(t.price[e]/T)===_&&(w+=t.size[e]);E=y.bestBid(),ne=y.bestAsk(),D=O.buyVolume,k=O.sellVolume}let A=C<=E?`bid`:C>=ne?`ask`:null;if(t.strokeStyle=e.toCss(d.text,.5),t.lineWidth=1,t.setLineDash([3,3]),t.beginPath(),t.moveTo(Math.round(f)+.5,q.y),t.lineTo(Math.round(f)+.5,q.y+q.h),t.moveTo(q.x,l),t.lineTo(i,l),t.stroke(),t.setLineDash([]),Number.isFinite(h)){let i=n(h),a=n(h+te),o=r(C+T/2),s=r(C-T/2);t.strokeStyle=e.toCss(d.text,.85),t.strokeRect(i,o,Math.max(2,a-i),Math.max(2,s-o))}t.font=o.fontOf(d,v,600,v.fontSize??(Y.width<420?10:11)),Ve(t,x.price(C),i+1,l,Y.width-i-2,d.text,!0),Ve(t,u,o.clamp(f,q.x+40,q.x+q.w-40),q.y+q.h+ee/2+2,q.w,d.text,!0,`center`);let re=A===`bid`?S.up:A===`ask`?S.down:d.text;s.tooltipHtml(pe,Y.tooltip,{text:o.formatClock(Number.isFinite(h)?h:m,!0,v.timeZone),color:void 0},[[a.price,x.price(C)],[a.liquidity,x.size(w)],[a.buys,x.size(D)],[a.sells,x.size(k)]]),Y.tooltip.style.display=`block`,Y.tooltip.style.borderLeft=`3px solid ${e.toCss(re)}`,Y.placeTooltip(Y.tooltip,f,p,f>q.w*.6?`left`:`right`);let j=`${h}|${_}|${w}|${D}|${k}`;if(j!==fe){fe=j;let e={time:Number.isFinite(h)?h:m,price:C,size:w,side:A,buyVolume:D,sellVolume:k};b.emit(`hover`,e)}}let We=async(e=new Set)=>{let t=++oe,n=await r.createRenderer(v.renderer??`auto`,()=>{let e=pe.createElement(`canvas`);return Object.assign(e.style,{position:`absolute`,left:`0`,top:`0`,pointerEvents:`none`}),e.setAttribute(`aria-hidden`,`true`),e},t=>{z||R?.kind!==t||(R.destroy(),R.canvas.remove(),R=null,We(new Set([...e,t])))},e);if(z||t!==oe){n?.destroy();return}R&&(R.destroy(),R.canvas.remove()),R=n,n&&(X.dataset.renderer=n.kind,X.insertBefore(n.canvas,Y.canvas),b.emit(`renderer`,n.kind)),B(n?.kind??null),Y.invalidate()},Ge=e=>{ce!==e&&(ce=e,b.emit(`follow`,e))},Ke=e=>{let t=E.length?E[0].time:D;if(!Number.isFinite(t))return e;let n=e[1]-e[0],r=(Number.isFinite(K)?K:_e())+Q()+n/2,i=Math.max(t-n/2,Math.min(e[0],r-n));return[i,i+n]},qe=e=>{if(v.interactive===!1)return;let[t,n]=s.localPoint(X,e);X.setPointerCapture?.(e.pointerId),J={x:t,y:n,viewX:[...H],viewY:[...U],axis:t>q.x+q.w,span:U[1]-U[0]}},Je=e=>{let[t,n]=s.localPoint(X,e);if(de=[t,n],J){let e=t-J.x,r=n-J.y;if(J.axis){let e=J.span*Math.exp(r*.006),t=(J.viewY[0]+J.viewY[1])/2;G=e,U=[t-e/2,t+e/2],W=[U[0],U[1]]}else if(Math.abs(e)+Math.abs(r)>3){Ge(!1);let t=(J.viewX[1]-J.viewX[0])/q.w*e,n=(J.viewY[1]-J.viewY[0])/q.h*r;H=Ke([J.viewX[0]-t,J.viewX[1]-t]),U=[J.viewY[0]+n,J.viewY[1]+n]}}Y.invalidate()},Ye=e=>{X.releasePointerCapture?.(e.pointerId),J=null,Y.invalidate()},Xe=()=>{J||(de=null,Y.invalidate())},Ze=(e,t)=>{let[n,r]=H,i=o.clamp((ce?V:r-n)*e,Q()*10,ge());if(V=i,!ce){let e=n+(t-q.x)/q.w*(r-n),a=(e-n)/(r-n);H=Ke([e-i*a,e+i*(1-a)])}Y.invalidate()},Qe=e=>{let t=o.clamp((U[1]-U[0])*e,T*6||1e-9,1/0),n=(U[0]+U[1])/2;G=t,U=[n-t/2,n+t/2],W=[U[0],U[1]],Y.invalidate()},$e=e=>{if(v.interactive===!1||!(e.ctrlKey||e.metaKey))return;e.preventDefault();let[t]=s.localPoint(X,e),n=Math.exp(e.deltaY*.002);e.shiftKey||t>q.x+q.w?Qe(n):Ze(n,t)},et=()=>{v.interactive!==!1&&rt.resetView()},tt=e=>{if(v.interactive!==!1){switch(e.key){case`+`:case`=`:Ze(.8,q.x+q.w);break;case`-`:Ze(1.25,q.x+q.w);break;case`ArrowUp`:case`ArrowDown`:{if(e.shiftKey){Qe(e.key===`ArrowUp`?.8:1.25);break}Ge(!1);let t=(U[1]-U[0])*.1*(e.key===`ArrowUp`?1:-1);U=[U[0]+t,U[1]+t],Y.invalidate();break}case`ArrowLeft`:case`ArrowRight`:{Ge(!1);let t=(H[1]-H[0])*.1*(e.key===`ArrowLeft`?-1:1);H=Ke([H[0]+t,H[1]+t]),Y.invalidate();break}case`0`:case`Home`:rt.resetView();break;default:return}e.preventDefault()}};X.addEventListener(`pointerdown`,qe),X.addEventListener(`pointermove`,Je),X.addEventListener(`pointerup`,Ye),X.addEventListener(`pointercancel`,Ye),X.addEventListener(`pointerleave`,Xe),X.addEventListener(`wheel`,$e,{passive:!1}),X.addEventListener(`dblclick`,et),X.addEventListener(`keydown`,tt);let nt=e=>{let t=De(e.time);y.count(`bid`)+y.count(`ask`)>0&&(Ce(),Ee(t)),y.applyDelta(e)},rt={setBook(e){let t=De(e.time);y.count(`bid`)+y.count(`ask`)>0&&Ee(t),y.setSnapshot(e),Ce(),be(),Number.isFinite(D)||Ee(t),Y.invalidate()},applyDeltas(e){if(Array.isArray(e))for(let t of e)nt(t);else nt(e);!Number.isFinite(D)&&T>0&&Ee(_e()),Y.invalidate()},addTrades(e){let t=Array.isArray(e)?e:[e];for(let e of t){if(!(e.size>0)||!Number.isFinite(e.price))continue;Number.isFinite(A)&&(De(e.time),Ee(e.time));let t=!Number.isFinite(D)||e.time>=D?O:Oe(e.time);t&&(e.side===`buy`?(t.buyVolume+=e.size,t.buyNotional+=e.size*e.price):(t.sellVolume+=e.size,t.sellNotional+=e.size*e.price)),(!k||e.time>=k.time)&&(k=e)}Y.invalidate()},clear(){y.clear(),Se(),k=null,A=NaN,T=0,G=NaN,W=null,le=!1,Y.invalidate()},setOptions(e){let t=v;v=e,he(),(e.tickSize!==t.tickSize||(e.interval??100)!==(t.interval??100))&&(Se(),T=0,G=NaN,Ce()),e.window!==t.window&&(V=NaN),e.priceSpan!==t.priceSpan&&(G=NaN),(e.renderer??`auto`)!==(t.renderer??`auto`)&&We(),ye(),be(),xe()},resetView(){V=NaN,G=NaN,W=null,Ge(!0),Y.invalidate()},getRenderer:()=>R?.kind??null,ready:se,getStore:()=>y,on:(e,t)=>b.on(e,t),resize(){Y.invalidate()},destroy(){z=!0,X.removeEventListener(`pointerdown`,qe),X.removeEventListener(`pointermove`,Je),X.removeEventListener(`pointerup`,Ye),X.removeEventListener(`pointercancel`,Ye),X.removeEventListener(`pointerleave`,Xe),X.removeEventListener(`wheel`,$e),X.removeEventListener(`dblclick`,et),X.removeEventListener(`keydown`,tt),R?.destroy(),R=null,b.clear(),Y.destroy(),B(null)}};return he(),ye(),We(),rt};exports.createOrderBookHeatmap=g,exports.heatIntensity=h;
2
+ //# sourceMappingURL=heatmap.cjs.map