minerva-design 1.2.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1226) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +21 -21
  3. package/custom-elements.json +13630 -4757
  4. package/dist/angular/fesm2022/minerva-angular.mjs +6872 -172
  5. package/dist/angular/fesm2022/minerva-angular.mjs.map +1 -1
  6. package/dist/angular/types/minerva-angular.d.ts +2240 -0
  7. package/dist/charts/canvas.d.cts +10 -2
  8. package/dist/charts/canvas.d.ts +10 -2
  9. package/dist/charts/core.cjs +1 -1
  10. package/dist/charts/core.d.cts +9 -3
  11. package/dist/charts/core.d.ts +9 -3
  12. package/dist/charts/core.js +19 -6
  13. package/dist/charts/engine/axis.cjs +1 -1
  14. package/dist/charts/engine/axis.cjs.map +1 -1
  15. package/dist/charts/engine/axis.js +6 -6
  16. package/dist/charts/engine/axis.js.map +1 -1
  17. package/dist/charts/engine/canvas.cjs +1 -1
  18. package/dist/charts/engine/canvas.cjs.map +1 -1
  19. package/dist/charts/engine/canvas.d.cts +11 -1
  20. package/dist/charts/engine/canvas.d.ts +11 -1
  21. package/dist/charts/engine/canvas.js +161 -99
  22. package/dist/charts/engine/canvas.js.map +1 -1
  23. package/dist/charts/engine/chart.cjs +1 -2
  24. package/dist/charts/engine/chart.cjs.map +1 -1
  25. package/dist/charts/engine/chart.d.cts +1 -1
  26. package/dist/charts/engine/chart.d.ts +1 -1
  27. package/dist/charts/engine/chart.js +390 -349
  28. package/dist/charts/engine/chart.js.map +1 -1
  29. package/dist/charts/engine/color.cjs +1 -1
  30. package/dist/charts/engine/color.cjs.map +1 -1
  31. package/dist/charts/engine/color.d.cts +17 -0
  32. package/dist/charts/engine/color.d.ts +17 -0
  33. package/dist/charts/engine/color.js +27 -3
  34. package/dist/charts/engine/color.js.map +1 -1
  35. package/dist/charts/engine/controller.cjs +2 -2
  36. package/dist/charts/engine/controller.cjs.map +1 -1
  37. package/dist/charts/engine/controller.d.cts +17 -2
  38. package/dist/charts/engine/controller.d.ts +17 -2
  39. package/dist/charts/engine/controller.js +404 -280
  40. package/dist/charts/engine/controller.js.map +1 -1
  41. package/dist/charts/engine/curve.cjs +2 -0
  42. package/dist/charts/engine/curve.cjs.map +1 -0
  43. package/dist/charts/engine/curve.d.cts +15 -0
  44. package/dist/charts/engine/curve.d.ts +15 -0
  45. package/dist/charts/engine/curve.js +56 -0
  46. package/dist/charts/engine/curve.js.map +1 -0
  47. package/dist/charts/engine/data.cjs +1 -1
  48. package/dist/charts/engine/data.cjs.map +1 -1
  49. package/dist/charts/engine/data.d.cts +21 -2
  50. package/dist/charts/engine/data.d.ts +21 -2
  51. package/dist/charts/engine/data.js +117 -43
  52. package/dist/charts/engine/data.js.map +1 -1
  53. package/dist/charts/engine/dom.cjs +1 -1
  54. package/dist/charts/engine/dom.cjs.map +1 -1
  55. package/dist/charts/engine/dom.d.cts +5 -3
  56. package/dist/charts/engine/dom.d.ts +5 -3
  57. package/dist/charts/engine/dom.js +27 -22
  58. package/dist/charts/engine/dom.js.map +1 -1
  59. package/dist/charts/engine/format.cjs +1 -1
  60. package/dist/charts/engine/format.cjs.map +1 -1
  61. package/dist/charts/engine/format.d.cts +21 -6
  62. package/dist/charts/engine/format.d.ts +21 -6
  63. package/dist/charts/engine/format.js +46 -21
  64. package/dist/charts/engine/format.js.map +1 -1
  65. package/dist/charts/engine/items.cjs +1 -1
  66. package/dist/charts/engine/items.cjs.map +1 -1
  67. package/dist/charts/engine/items.js +290 -62
  68. package/dist/charts/engine/items.js.map +1 -1
  69. package/dist/charts/engine/labels.cjs +2 -0
  70. package/dist/charts/engine/labels.cjs.map +1 -0
  71. package/dist/charts/engine/labels.d.cts +13 -0
  72. package/dist/charts/engine/labels.d.ts +13 -0
  73. package/dist/charts/engine/labels.js +74 -0
  74. package/dist/charts/engine/labels.js.map +1 -0
  75. package/dist/charts/engine/layout.cjs +1 -1
  76. package/dist/charts/engine/layout.cjs.map +1 -1
  77. package/dist/charts/engine/layout.d.cts +34 -2
  78. package/dist/charts/engine/layout.d.ts +34 -2
  79. package/dist/charts/engine/layout.js +53 -12
  80. package/dist/charts/engine/layout.js.map +1 -1
  81. package/dist/charts/engine/locale.cjs +2 -0
  82. package/dist/charts/engine/locale.cjs.map +1 -0
  83. package/dist/charts/engine/locale.d.cts +33 -0
  84. package/dist/charts/engine/locale.d.ts +33 -0
  85. package/dist/charts/engine/locale.js +68 -0
  86. package/dist/charts/engine/locale.js.map +1 -0
  87. package/dist/charts/engine/model.cjs +1 -1
  88. package/dist/charts/engine/model.cjs.map +1 -1
  89. package/dist/charts/engine/model.d.cts +68 -3
  90. package/dist/charts/engine/model.d.ts +68 -3
  91. package/dist/charts/engine/model.js +332 -108
  92. package/dist/charts/engine/model.js.map +1 -1
  93. package/dist/charts/engine/orderbook/book.cjs +2 -0
  94. package/dist/charts/engine/orderbook/book.cjs.map +1 -0
  95. package/dist/charts/engine/orderbook/book.d.cts +28 -0
  96. package/dist/charts/engine/orderbook/book.d.ts +28 -0
  97. package/dist/charts/engine/orderbook/book.js +134 -0
  98. package/dist/charts/engine/orderbook/book.js.map +1 -0
  99. package/dist/charts/engine/orderbook/depth.cjs +2 -0
  100. package/dist/charts/engine/orderbook/depth.cjs.map +1 -0
  101. package/dist/charts/engine/orderbook/depth.d.cts +7 -0
  102. package/dist/charts/engine/orderbook/depth.d.ts +7 -0
  103. package/dist/charts/engine/orderbook/depth.js +413 -0
  104. package/dist/charts/engine/orderbook/depth.js.map +1 -0
  105. package/dist/charts/engine/orderbook/format.cjs +2 -0
  106. package/dist/charts/engine/orderbook/format.cjs.map +1 -0
  107. package/dist/charts/engine/orderbook/format.d.cts +48 -0
  108. package/dist/charts/engine/orderbook/format.d.ts +48 -0
  109. package/dist/charts/engine/orderbook/format.js +65 -0
  110. package/dist/charts/engine/orderbook/format.js.map +1 -0
  111. package/dist/charts/engine/orderbook/heatmap.cjs +2 -0
  112. package/dist/charts/engine/orderbook/heatmap.cjs.map +1 -0
  113. package/dist/charts/engine/orderbook/heatmap.d.cts +9 -0
  114. package/dist/charts/engine/orderbook/heatmap.d.ts +9 -0
  115. package/dist/charts/engine/orderbook/heatmap.js +703 -0
  116. package/dist/charts/engine/orderbook/heatmap.js.map +1 -0
  117. package/dist/charts/engine/orderbook/host.cjs +2 -0
  118. package/dist/charts/engine/orderbook/host.cjs.map +1 -0
  119. package/dist/charts/engine/orderbook/host.d.cts +50 -0
  120. package/dist/charts/engine/orderbook/host.d.ts +50 -0
  121. package/dist/charts/engine/orderbook/host.js +161 -0
  122. package/dist/charts/engine/orderbook/host.js.map +1 -0
  123. package/dist/charts/engine/orderbook/index.cjs +1 -0
  124. package/dist/charts/engine/orderbook/index.d.cts +6 -0
  125. package/dist/charts/engine/orderbook/index.d.ts +6 -0
  126. package/dist/charts/engine/orderbook/index.js +6 -0
  127. package/dist/charts/engine/orderbook/ladder.cjs +2 -0
  128. package/dist/charts/engine/orderbook/ladder.cjs.map +1 -0
  129. package/dist/charts/engine/orderbook/ladder.d.cts +6 -0
  130. package/dist/charts/engine/orderbook/ladder.d.ts +6 -0
  131. package/dist/charts/engine/orderbook/ladder.js +341 -0
  132. package/dist/charts/engine/orderbook/ladder.js.map +1 -0
  133. package/dist/charts/engine/orderbook/tape.cjs +2 -0
  134. package/dist/charts/engine/orderbook/tape.cjs.map +1 -0
  135. package/dist/charts/engine/orderbook/tape.d.cts +6 -0
  136. package/dist/charts/engine/orderbook/tape.d.ts +6 -0
  137. package/dist/charts/engine/orderbook/tape.js +450 -0
  138. package/dist/charts/engine/orderbook/tape.js.map +1 -0
  139. package/dist/charts/engine/orderbook/types.d.cts +735 -0
  140. package/dist/charts/engine/orderbook/types.d.ts +735 -0
  141. package/dist/charts/engine/overlay.cjs +1 -1
  142. package/dist/charts/engine/overlay.cjs.map +1 -1
  143. package/dist/charts/engine/overlay.d.cts +18 -0
  144. package/dist/charts/engine/overlay.d.ts +18 -0
  145. package/dist/charts/engine/overlay.js +138 -102
  146. package/dist/charts/engine/overlay.js.map +1 -1
  147. package/dist/charts/engine/presets.cjs +2 -2
  148. package/dist/charts/engine/presets.cjs.map +1 -1
  149. package/dist/charts/engine/presets.d.cts +319 -5
  150. package/dist/charts/engine/presets.d.ts +319 -5
  151. package/dist/charts/engine/presets.js +463 -38
  152. package/dist/charts/engine/presets.js.map +1 -1
  153. package/dist/charts/engine/renderers/canvas2d.cjs +1 -1
  154. package/dist/charts/engine/renderers/canvas2d.cjs.map +1 -1
  155. package/dist/charts/engine/renderers/canvas2d.js +149 -111
  156. package/dist/charts/engine/renderers/canvas2d.js.map +1 -1
  157. package/dist/charts/engine/renderers/detect.cjs +1 -1
  158. package/dist/charts/engine/renderers/detect.cjs.map +1 -1
  159. package/dist/charts/engine/renderers/detect.js +18 -15
  160. package/dist/charts/engine/renderers/detect.js.map +1 -1
  161. package/dist/charts/engine/renderers/gl.cjs +2 -0
  162. package/dist/charts/engine/renderers/gl.cjs.map +1 -0
  163. package/dist/charts/engine/renderers/gl.d.cts +21 -0
  164. package/dist/charts/engine/renderers/gl.d.ts +21 -0
  165. package/dist/charts/engine/renderers/gl.js +56 -0
  166. package/dist/charts/engine/renderers/gl.js.map +1 -0
  167. package/dist/charts/engine/renderers/range.cjs +1 -1
  168. package/dist/charts/engine/renderers/range.cjs.map +1 -1
  169. package/dist/charts/engine/renderers/range.js +4 -4
  170. package/dist/charts/engine/renderers/range.js.map +1 -1
  171. package/dist/charts/engine/renderers/shaders.cjs +180 -20
  172. package/dist/charts/engine/renderers/shaders.cjs.map +1 -1
  173. package/dist/charts/engine/renderers/shaders.d.cts +18 -2
  174. package/dist/charts/engine/renderers/shaders.d.ts +18 -2
  175. package/dist/charts/engine/renderers/shaders.js +176 -20
  176. package/dist/charts/engine/renderers/shaders.js.map +1 -1
  177. package/dist/charts/engine/renderers/types.cjs.map +1 -1
  178. package/dist/charts/engine/renderers/types.d.cts +11 -4
  179. package/dist/charts/engine/renderers/types.d.ts +11 -4
  180. package/dist/charts/engine/renderers/types.js.map +1 -1
  181. package/dist/charts/engine/renderers/webgl.cjs +2 -0
  182. package/dist/charts/engine/renderers/webgl.cjs.map +1 -0
  183. package/dist/charts/engine/renderers/webgl.d.cts +4 -0
  184. package/dist/charts/engine/renderers/webgl.d.ts +4 -0
  185. package/dist/charts/engine/renderers/webgl.js +133 -0
  186. package/dist/charts/engine/renderers/webgl.js.map +1 -0
  187. package/dist/charts/engine/renderers/webgl2.cjs +1 -1
  188. package/dist/charts/engine/renderers/webgl2.cjs.map +1 -1
  189. package/dist/charts/engine/renderers/webgl2.d.cts +0 -1
  190. package/dist/charts/engine/renderers/webgl2.d.ts +0 -1
  191. package/dist/charts/engine/renderers/webgl2.js +62 -90
  192. package/dist/charts/engine/renderers/webgl2.js.map +1 -1
  193. package/dist/charts/engine/renderers/webgpu.cjs +1 -1
  194. package/dist/charts/engine/renderers/webgpu.cjs.map +1 -1
  195. package/dist/charts/engine/renderers/webgpu.js +18 -15
  196. package/dist/charts/engine/renderers/webgpu.js.map +1 -1
  197. package/dist/charts/engine/scale.cjs +1 -1
  198. package/dist/charts/engine/scale.cjs.map +1 -1
  199. package/dist/charts/engine/scale.js +1 -1
  200. package/dist/charts/engine/scale.js.map +1 -1
  201. package/dist/charts/engine/scene.cjs +1 -1
  202. package/dist/charts/engine/scene.cjs.map +1 -1
  203. package/dist/charts/engine/scene.d.cts +32 -9
  204. package/dist/charts/engine/scene.d.ts +32 -9
  205. package/dist/charts/engine/scene.js +363 -122
  206. package/dist/charts/engine/scene.js.map +1 -1
  207. package/dist/charts/engine/shapes/bullet.cjs +2 -0
  208. package/dist/charts/engine/shapes/bullet.cjs.map +1 -0
  209. package/dist/charts/engine/shapes/bullet.d.cts +6 -0
  210. package/dist/charts/engine/shapes/bullet.d.ts +6 -0
  211. package/dist/charts/engine/shapes/bullet.js +255 -0
  212. package/dist/charts/engine/shapes/bullet.js.map +1 -0
  213. package/dist/charts/engine/shapes/calendar.cjs +2 -0
  214. package/dist/charts/engine/shapes/calendar.cjs.map +1 -0
  215. package/dist/charts/engine/shapes/calendar.d.cts +38 -0
  216. package/dist/charts/engine/shapes/calendar.d.ts +38 -0
  217. package/dist/charts/engine/shapes/calendar.js +369 -0
  218. package/dist/charts/engine/shapes/calendar.js.map +1 -0
  219. package/dist/charts/engine/shapes/canvas.cjs +2 -0
  220. package/dist/charts/engine/shapes/canvas.cjs.map +1 -0
  221. package/dist/charts/engine/shapes/canvas.d.cts +65 -0
  222. package/dist/charts/engine/shapes/canvas.d.ts +65 -0
  223. package/dist/charts/engine/shapes/canvas.js +168 -0
  224. package/dist/charts/engine/shapes/canvas.js.map +1 -0
  225. package/dist/charts/engine/shapes/chart.cjs +2 -0
  226. package/dist/charts/engine/shapes/chart.cjs.map +1 -0
  227. package/dist/charts/engine/shapes/chart.d.cts +7 -0
  228. package/dist/charts/engine/shapes/chart.d.ts +7 -0
  229. package/dist/charts/engine/shapes/chart.js +292 -0
  230. package/dist/charts/engine/shapes/chart.js.map +1 -0
  231. package/dist/charts/engine/shapes/draw.cjs +2 -0
  232. package/dist/charts/engine/shapes/draw.cjs.map +1 -0
  233. package/dist/charts/engine/shapes/draw.d.cts +22 -0
  234. package/dist/charts/engine/shapes/draw.d.ts +22 -0
  235. package/dist/charts/engine/shapes/draw.js +165 -0
  236. package/dist/charts/engine/shapes/draw.js.map +1 -0
  237. package/dist/charts/engine/shapes/funnel.cjs +2 -0
  238. package/dist/charts/engine/shapes/funnel.cjs.map +1 -0
  239. package/dist/charts/engine/shapes/funnel.d.cts +6 -0
  240. package/dist/charts/engine/shapes/funnel.d.ts +6 -0
  241. package/dist/charts/engine/shapes/funnel.js +149 -0
  242. package/dist/charts/engine/shapes/funnel.js.map +1 -0
  243. package/dist/charts/engine/shapes/gauge.cjs +2 -0
  244. package/dist/charts/engine/shapes/gauge.cjs.map +1 -0
  245. package/dist/charts/engine/shapes/gauge.d.cts +7 -0
  246. package/dist/charts/engine/shapes/gauge.d.ts +7 -0
  247. package/dist/charts/engine/shapes/gauge.js +210 -0
  248. package/dist/charts/engine/shapes/gauge.js.map +1 -0
  249. package/dist/charts/engine/shapes/hit.cjs +2 -0
  250. package/dist/charts/engine/shapes/hit.cjs.map +1 -0
  251. package/dist/charts/engine/shapes/hit.d.cts +30 -0
  252. package/dist/charts/engine/shapes/hit.d.ts +30 -0
  253. package/dist/charts/engine/shapes/hit.js +145 -0
  254. package/dist/charts/engine/shapes/hit.js.map +1 -0
  255. package/dist/charts/engine/shapes/index.d.cts +12 -0
  256. package/dist/charts/engine/shapes/index.d.ts +12 -0
  257. package/dist/charts/engine/shapes/labels.cjs +2 -0
  258. package/dist/charts/engine/shapes/labels.cjs.map +1 -0
  259. package/dist/charts/engine/shapes/labels.d.cts +14 -0
  260. package/dist/charts/engine/shapes/labels.d.ts +14 -0
  261. package/dist/charts/engine/shapes/labels.js +146 -0
  262. package/dist/charts/engine/shapes/labels.js.map +1 -0
  263. package/dist/charts/engine/shapes/layout.cjs +3 -0
  264. package/dist/charts/engine/shapes/layout.cjs.map +1 -0
  265. package/dist/charts/engine/shapes/layout.d.cts +93 -0
  266. package/dist/charts/engine/shapes/layout.d.ts +93 -0
  267. package/dist/charts/engine/shapes/layout.js +353 -0
  268. package/dist/charts/engine/shapes/layout.js.map +1 -0
  269. package/dist/charts/engine/shapes/pie.cjs +2 -0
  270. package/dist/charts/engine/shapes/pie.cjs.map +1 -0
  271. package/dist/charts/engine/shapes/pie.d.cts +20 -0
  272. package/dist/charts/engine/shapes/pie.d.ts +20 -0
  273. package/dist/charts/engine/shapes/pie.js +302 -0
  274. package/dist/charts/engine/shapes/pie.js.map +1 -0
  275. package/dist/charts/engine/shapes/radar.cjs +2 -0
  276. package/dist/charts/engine/shapes/radar.cjs.map +1 -0
  277. package/dist/charts/engine/shapes/radar.d.cts +8 -0
  278. package/dist/charts/engine/shapes/radar.d.ts +8 -0
  279. package/dist/charts/engine/shapes/radar.js +198 -0
  280. package/dist/charts/engine/shapes/radar.js.map +1 -0
  281. package/dist/charts/engine/shapes/radialBar.cjs +2 -0
  282. package/dist/charts/engine/shapes/radialBar.cjs.map +1 -0
  283. package/dist/charts/engine/shapes/radialBar.d.cts +8 -0
  284. package/dist/charts/engine/shapes/radialBar.d.ts +8 -0
  285. package/dist/charts/engine/shapes/radialBar.js +155 -0
  286. package/dist/charts/engine/shapes/radialBar.js.map +1 -0
  287. package/dist/charts/engine/shapes/runtime.cjs +2 -0
  288. package/dist/charts/engine/shapes/runtime.cjs.map +1 -0
  289. package/dist/charts/engine/shapes/runtime.d.cts +36 -0
  290. package/dist/charts/engine/shapes/runtime.d.ts +36 -0
  291. package/dist/charts/engine/shapes/runtime.js +107 -0
  292. package/dist/charts/engine/shapes/runtime.js.map +1 -0
  293. package/dist/charts/engine/shapes/sankey.cjs +2 -0
  294. package/dist/charts/engine/shapes/sankey.cjs.map +1 -0
  295. package/dist/charts/engine/shapes/sankey.d.cts +29 -0
  296. package/dist/charts/engine/shapes/sankey.d.ts +29 -0
  297. package/dist/charts/engine/shapes/sankey.js +372 -0
  298. package/dist/charts/engine/shapes/sankey.js.map +1 -0
  299. package/dist/charts/engine/shapes/scene.cjs +2 -0
  300. package/dist/charts/engine/shapes/scene.cjs.map +1 -0
  301. package/dist/charts/engine/shapes/scene.d.cts +311 -0
  302. package/dist/charts/engine/shapes/scene.d.ts +311 -0
  303. package/dist/charts/engine/shapes/scene.js +125 -0
  304. package/dist/charts/engine/shapes/scene.js.map +1 -0
  305. package/dist/charts/engine/shapes/sunburst.cjs +2 -0
  306. package/dist/charts/engine/shapes/sunburst.cjs.map +1 -0
  307. package/dist/charts/engine/shapes/sunburst.d.cts +6 -0
  308. package/dist/charts/engine/shapes/sunburst.d.ts +6 -0
  309. package/dist/charts/engine/shapes/sunburst.js +261 -0
  310. package/dist/charts/engine/shapes/sunburst.js.map +1 -0
  311. package/dist/charts/engine/shapes/treemap.cjs +2 -0
  312. package/dist/charts/engine/shapes/treemap.cjs.map +1 -0
  313. package/dist/charts/engine/shapes/treemap.d.cts +14 -0
  314. package/dist/charts/engine/shapes/treemap.d.ts +14 -0
  315. package/dist/charts/engine/shapes/treemap.js +213 -0
  316. package/dist/charts/engine/shapes/treemap.js.map +1 -0
  317. package/dist/charts/engine/shapes/types.d.cts +719 -0
  318. package/dist/charts/engine/shapes/types.d.ts +719 -0
  319. package/dist/charts/engine/signature.cjs +2 -0
  320. package/dist/charts/engine/signature.cjs.map +1 -0
  321. package/dist/charts/engine/signature.d.cts +9 -0
  322. package/dist/charts/engine/signature.d.ts +9 -0
  323. package/dist/charts/engine/signature.js +13 -0
  324. package/dist/charts/engine/signature.js.map +1 -0
  325. package/dist/charts/engine/theme.cjs +1 -1
  326. package/dist/charts/engine/theme.cjs.map +1 -1
  327. package/dist/charts/engine/theme.d.cts +10 -1
  328. package/dist/charts/engine/theme.d.ts +10 -1
  329. package/dist/charts/engine/theme.js +40 -16
  330. package/dist/charts/engine/theme.js.map +1 -1
  331. package/dist/charts/engine/three-d/canvas2d.cjs +2 -0
  332. package/dist/charts/engine/three-d/canvas2d.cjs.map +1 -0
  333. package/dist/charts/engine/three-d/canvas2d.d.cts +4 -0
  334. package/dist/charts/engine/three-d/canvas2d.d.ts +4 -0
  335. package/dist/charts/engine/three-d/canvas2d.js +104 -0
  336. package/dist/charts/engine/three-d/canvas2d.js.map +1 -0
  337. package/dist/charts/engine/three-d/chart.cjs +2 -0
  338. package/dist/charts/engine/three-d/chart.cjs.map +1 -0
  339. package/dist/charts/engine/three-d/chart.d.cts +15 -0
  340. package/dist/charts/engine/three-d/chart.d.ts +15 -0
  341. package/dist/charts/engine/three-d/chart.js +621 -0
  342. package/dist/charts/engine/three-d/chart.js.map +1 -0
  343. package/dist/charts/engine/three-d/colormap.cjs +2 -0
  344. package/dist/charts/engine/three-d/colormap.cjs.map +1 -0
  345. package/dist/charts/engine/three-d/colormap.d.cts +16 -0
  346. package/dist/charts/engine/three-d/colormap.d.ts +16 -0
  347. package/dist/charts/engine/three-d/colormap.js +166 -0
  348. package/dist/charts/engine/three-d/colormap.js.map +1 -0
  349. package/dist/charts/engine/three-d/contours.cjs +2 -0
  350. package/dist/charts/engine/three-d/contours.cjs.map +1 -0
  351. package/dist/charts/engine/three-d/contours.d.cts +7 -0
  352. package/dist/charts/engine/three-d/contours.d.ts +7 -0
  353. package/dist/charts/engine/three-d/contours.js +47 -0
  354. package/dist/charts/engine/three-d/contours.js.map +1 -0
  355. package/dist/charts/engine/three-d/detect.cjs +2 -0
  356. package/dist/charts/engine/three-d/detect.cjs.map +1 -0
  357. package/dist/charts/engine/three-d/detect.d.cts +11 -0
  358. package/dist/charts/engine/three-d/detect.d.ts +11 -0
  359. package/dist/charts/engine/three-d/detect.js +35 -0
  360. package/dist/charts/engine/three-d/detect.js.map +1 -0
  361. package/dist/charts/engine/three-d/dom.cjs +2 -0
  362. package/dist/charts/engine/three-d/dom.cjs.map +1 -0
  363. package/dist/charts/engine/three-d/dom.d.cts +21 -0
  364. package/dist/charts/engine/three-d/dom.d.ts +21 -0
  365. package/dist/charts/engine/three-d/dom.js +98 -0
  366. package/dist/charts/engine/three-d/dom.js.map +1 -0
  367. package/dist/charts/engine/three-d/geometry.cjs +2 -0
  368. package/dist/charts/engine/three-d/geometry.cjs.map +1 -0
  369. package/dist/charts/engine/three-d/geometry.d.cts +76 -0
  370. package/dist/charts/engine/three-d/geometry.d.ts +76 -0
  371. package/dist/charts/engine/three-d/geometry.js +529 -0
  372. package/dist/charts/engine/three-d/geometry.js.map +1 -0
  373. package/dist/charts/engine/three-d/hover.cjs +2 -0
  374. package/dist/charts/engine/three-d/hover.cjs.map +1 -0
  375. package/dist/charts/engine/three-d/hover.d.cts +25 -0
  376. package/dist/charts/engine/three-d/hover.d.ts +25 -0
  377. package/dist/charts/engine/three-d/hover.js +131 -0
  378. package/dist/charts/engine/three-d/hover.js.map +1 -0
  379. package/dist/charts/engine/three-d/index.cjs +1 -0
  380. package/dist/charts/engine/three-d/index.d.cts +2 -0
  381. package/dist/charts/engine/three-d/index.d.ts +2 -0
  382. package/dist/charts/engine/three-d/index.js +2 -0
  383. package/dist/charts/engine/three-d/labels.cjs +2 -0
  384. package/dist/charts/engine/three-d/labels.cjs.map +1 -0
  385. package/dist/charts/engine/three-d/labels.d.cts +23 -0
  386. package/dist/charts/engine/three-d/labels.d.ts +23 -0
  387. package/dist/charts/engine/three-d/labels.js +136 -0
  388. package/dist/charts/engine/three-d/labels.js.map +1 -0
  389. package/dist/charts/engine/three-d/math.cjs +2 -0
  390. package/dist/charts/engine/three-d/math.cjs.map +1 -0
  391. package/dist/charts/engine/three-d/math.d.cts +84 -0
  392. package/dist/charts/engine/three-d/math.d.ts +84 -0
  393. package/dist/charts/engine/three-d/math.js +150 -0
  394. package/dist/charts/engine/three-d/math.js.map +1 -0
  395. package/dist/charts/engine/three-d/model.cjs +2 -0
  396. package/dist/charts/engine/three-d/model.cjs.map +1 -0
  397. package/dist/charts/engine/three-d/model.d.cts +130 -0
  398. package/dist/charts/engine/three-d/model.d.ts +130 -0
  399. package/dist/charts/engine/three-d/model.js +277 -0
  400. package/dist/charts/engine/three-d/model.js.map +1 -0
  401. package/dist/charts/engine/three-d/overlay.cjs +2 -0
  402. package/dist/charts/engine/three-d/overlay.cjs.map +1 -0
  403. package/dist/charts/engine/three-d/overlay.d.cts +72 -0
  404. package/dist/charts/engine/three-d/overlay.d.ts +72 -0
  405. package/dist/charts/engine/three-d/overlay.js +197 -0
  406. package/dist/charts/engine/three-d/overlay.js.map +1 -0
  407. package/dist/charts/engine/three-d/pick.cjs +2 -0
  408. package/dist/charts/engine/three-d/pick.cjs.map +1 -0
  409. package/dist/charts/engine/three-d/pick.d.cts +52 -0
  410. package/dist/charts/engine/three-d/pick.d.ts +52 -0
  411. package/dist/charts/engine/three-d/pick.js +220 -0
  412. package/dist/charts/engine/three-d/pick.js.map +1 -0
  413. package/dist/charts/engine/three-d/render-types.cjs +2 -0
  414. package/dist/charts/engine/three-d/render-types.cjs.map +1 -0
  415. package/dist/charts/engine/three-d/render-types.d.cts +82 -0
  416. package/dist/charts/engine/three-d/render-types.d.ts +82 -0
  417. package/dist/charts/engine/three-d/render-types.js +13 -0
  418. package/dist/charts/engine/three-d/render-types.js.map +1 -0
  419. package/dist/charts/engine/three-d/shaders.cjs +276 -0
  420. package/dist/charts/engine/three-d/shaders.cjs.map +1 -0
  421. package/dist/charts/engine/three-d/shaders.d.cts +26 -0
  422. package/dist/charts/engine/three-d/shaders.d.ts +26 -0
  423. package/dist/charts/engine/three-d/shaders.js +191 -0
  424. package/dist/charts/engine/three-d/shaders.js.map +1 -0
  425. package/dist/charts/engine/three-d/sort.cjs +2 -0
  426. package/dist/charts/engine/three-d/sort.cjs.map +1 -0
  427. package/dist/charts/engine/three-d/sort.d.cts +18 -0
  428. package/dist/charts/engine/three-d/sort.d.ts +18 -0
  429. package/dist/charts/engine/three-d/sort.js +71 -0
  430. package/dist/charts/engine/three-d/sort.js.map +1 -0
  431. package/dist/charts/engine/three-d/types.d.cts +588 -0
  432. package/dist/charts/engine/three-d/types.d.ts +588 -0
  433. package/dist/charts/engine/three-d/webgl.cjs +2 -0
  434. package/dist/charts/engine/three-d/webgl.cjs.map +1 -0
  435. package/dist/charts/engine/three-d/webgl.d.cts +10 -0
  436. package/dist/charts/engine/three-d/webgl.d.ts +10 -0
  437. package/dist/charts/engine/three-d/webgl.js +130 -0
  438. package/dist/charts/engine/three-d/webgl.js.map +1 -0
  439. package/dist/charts/engine/three-d/webgpu.cjs +2 -0
  440. package/dist/charts/engine/three-d/webgpu.cjs.map +1 -0
  441. package/dist/charts/engine/three-d/webgpu.d.cts +5 -0
  442. package/dist/charts/engine/three-d/webgpu.d.ts +5 -0
  443. package/dist/charts/engine/three-d/webgpu.js +249 -0
  444. package/dist/charts/engine/three-d/webgpu.js.map +1 -0
  445. package/dist/charts/engine/time.cjs +1 -1
  446. package/dist/charts/engine/time.cjs.map +1 -1
  447. package/dist/charts/engine/time.d.cts +13 -4
  448. package/dist/charts/engine/time.d.ts +13 -4
  449. package/dist/charts/engine/time.js +156 -91
  450. package/dist/charts/engine/time.js.map +1 -1
  451. package/dist/charts/engine/trading/chart.cjs +2 -0
  452. package/dist/charts/engine/trading/chart.cjs.map +1 -0
  453. package/dist/charts/engine/trading/chart.d.cts +3 -0
  454. package/dist/charts/engine/trading/chart.d.ts +3 -0
  455. package/dist/charts/engine/trading/chart.js +1507 -0
  456. package/dist/charts/engine/trading/chart.js.map +1 -0
  457. package/dist/charts/engine/trading/drawings.cjs +2 -0
  458. package/dist/charts/engine/trading/drawings.cjs.map +1 -0
  459. package/dist/charts/engine/trading/drawings.d.cts +57 -0
  460. package/dist/charts/engine/trading/drawings.d.ts +57 -0
  461. package/dist/charts/engine/trading/drawings.js +160 -0
  462. package/dist/charts/engine/trading/drawings.js.map +1 -0
  463. package/dist/charts/engine/trading/format.cjs +2 -0
  464. package/dist/charts/engine/trading/format.cjs.map +1 -0
  465. package/dist/charts/engine/trading/format.d.cts +60 -0
  466. package/dist/charts/engine/trading/format.d.ts +60 -0
  467. package/dist/charts/engine/trading/format.js +131 -0
  468. package/dist/charts/engine/trading/format.js.map +1 -0
  469. package/dist/charts/engine/trading/geometry.cjs +2 -0
  470. package/dist/charts/engine/trading/geometry.cjs.map +1 -0
  471. package/dist/charts/engine/trading/geometry.d.cts +55 -0
  472. package/dist/charts/engine/trading/geometry.d.ts +55 -0
  473. package/dist/charts/engine/trading/geometry.js +131 -0
  474. package/dist/charts/engine/trading/geometry.js.map +1 -0
  475. package/dist/charts/engine/trading/index.cjs +1 -0
  476. package/dist/charts/engine/trading/index.d.cts +3 -0
  477. package/dist/charts/engine/trading/index.d.ts +3 -0
  478. package/dist/charts/engine/trading/index.js +3 -0
  479. package/dist/charts/engine/trading/indicators.cjs +2 -0
  480. package/dist/charts/engine/trading/indicators.cjs.map +1 -0
  481. package/dist/charts/engine/trading/indicators.d.cts +105 -0
  482. package/dist/charts/engine/trading/indicators.d.ts +105 -0
  483. package/dist/charts/engine/trading/indicators.js +268 -0
  484. package/dist/charts/engine/trading/indicators.js.map +1 -0
  485. package/dist/charts/engine/trading/labels.cjs +2 -0
  486. package/dist/charts/engine/trading/labels.cjs.map +1 -0
  487. package/dist/charts/engine/trading/labels.d.cts +7 -0
  488. package/dist/charts/engine/trading/labels.d.ts +7 -0
  489. package/dist/charts/engine/trading/labels.js +91 -0
  490. package/dist/charts/engine/trading/labels.js.map +1 -0
  491. package/dist/charts/engine/trading/scale.cjs +2 -0
  492. package/dist/charts/engine/trading/scale.cjs.map +1 -0
  493. package/dist/charts/engine/trading/scale.d.cts +46 -0
  494. package/dist/charts/engine/trading/scale.d.ts +46 -0
  495. package/dist/charts/engine/trading/scale.js +100 -0
  496. package/dist/charts/engine/trading/scale.js.map +1 -0
  497. package/dist/charts/engine/trading/store.cjs +2 -0
  498. package/dist/charts/engine/trading/store.cjs.map +1 -0
  499. package/dist/charts/engine/trading/store.d.cts +62 -0
  500. package/dist/charts/engine/trading/store.d.ts +62 -0
  501. package/dist/charts/engine/trading/store.js +129 -0
  502. package/dist/charts/engine/trading/store.js.map +1 -0
  503. package/dist/charts/engine/trading/studies.cjs +2 -0
  504. package/dist/charts/engine/trading/studies.cjs.map +1 -0
  505. package/dist/charts/engine/trading/studies.d.cts +52 -0
  506. package/dist/charts/engine/trading/studies.d.ts +52 -0
  507. package/dist/charts/engine/trading/studies.js +254 -0
  508. package/dist/charts/engine/trading/studies.js.map +1 -0
  509. package/dist/charts/engine/trading/types.d.cts +656 -0
  510. package/dist/charts/engine/trading/types.d.ts +656 -0
  511. package/dist/charts/engine/types.d.cts +227 -15
  512. package/dist/charts/engine/types.d.ts +227 -15
  513. package/dist/charts/index.cjs +1 -1
  514. package/dist/charts/index.d.cts +7 -2
  515. package/dist/charts/index.d.ts +7 -2
  516. package/dist/charts/index.js +22 -8
  517. package/dist/charts/react/Chart.cjs +1 -1
  518. package/dist/charts/react/Chart.cjs.map +1 -1
  519. package/dist/charts/react/Chart.d.cts +11 -4
  520. package/dist/charts/react/Chart.d.ts +11 -4
  521. package/dist/charts/react/Chart.js +70 -47
  522. package/dist/charts/react/Chart.js.map +1 -1
  523. package/dist/charts/react/charts.cjs +1 -1
  524. package/dist/charts/react/charts.cjs.map +1 -1
  525. package/dist/charts/react/charts.d.cts +48 -2
  526. package/dist/charts/react/charts.d.ts +48 -2
  527. package/dist/charts/react/charts.js +371 -76
  528. package/dist/charts/react/charts.js.map +1 -1
  529. package/dist/charts/react/orderbook.cjs +2 -0
  530. package/dist/charts/react/orderbook.cjs.map +1 -0
  531. package/dist/charts/react/orderbook.d.cts +142 -0
  532. package/dist/charts/react/orderbook.d.ts +142 -0
  533. package/dist/charts/react/orderbook.js +182 -0
  534. package/dist/charts/react/orderbook.js.map +1 -0
  535. package/dist/charts/react/shapes.cjs +2 -0
  536. package/dist/charts/react/shapes.cjs.map +1 -0
  537. package/dist/charts/react/shapes.d.cts +537 -0
  538. package/dist/charts/react/shapes.d.ts +537 -0
  539. package/dist/charts/react/shapes.js +429 -0
  540. package/dist/charts/react/shapes.js.map +1 -0
  541. package/dist/charts/react/three-d.cjs +2 -0
  542. package/dist/charts/react/three-d.cjs.map +1 -0
  543. package/dist/charts/react/three-d.d.cts +151 -0
  544. package/dist/charts/react/three-d.d.ts +151 -0
  545. package/dist/charts/react/three-d.js +154 -0
  546. package/dist/charts/react/three-d.js.map +1 -0
  547. package/dist/charts/react/trading.cjs +2 -0
  548. package/dist/charts/react/trading.cjs.map +1 -0
  549. package/dist/charts/react/trading.d.cts +93 -0
  550. package/dist/charts/react/trading.d.ts +93 -0
  551. package/dist/charts/react/trading.js +95 -0
  552. package/dist/charts/react/trading.js.map +1 -0
  553. package/dist/charts/react/types.d.cts +200 -7
  554. package/dist/charts/react/types.d.ts +200 -7
  555. package/dist/core/contracts.cjs +1 -1
  556. package/dist/core/contracts.cjs.map +1 -1
  557. package/dist/core/contracts.js +1 -1
  558. package/dist/core/contracts.js.map +1 -1
  559. package/dist/native/charts/src/canvas.cjs +1 -1
  560. package/dist/native/charts/src/canvas.js +9 -3
  561. package/dist/native/charts/src/engine/axis.cjs +1 -1
  562. package/dist/native/charts/src/engine/axis.cjs.map +1 -1
  563. package/dist/native/charts/src/engine/axis.js +6 -6
  564. package/dist/native/charts/src/engine/axis.js.map +1 -1
  565. package/dist/native/charts/src/engine/color.cjs +1 -1
  566. package/dist/native/charts/src/engine/color.cjs.map +1 -1
  567. package/dist/native/charts/src/engine/color.js +12 -3
  568. package/dist/native/charts/src/engine/color.js.map +1 -1
  569. package/dist/native/charts/src/engine/controller.cjs +2 -2
  570. package/dist/native/charts/src/engine/controller.cjs.map +1 -1
  571. package/dist/native/charts/src/engine/controller.js +418 -294
  572. package/dist/native/charts/src/engine/controller.js.map +1 -1
  573. package/dist/native/charts/src/engine/curve.cjs +2 -0
  574. package/dist/native/charts/src/engine/curve.cjs.map +1 -0
  575. package/dist/native/charts/src/engine/curve.js +56 -0
  576. package/dist/native/charts/src/engine/curve.js.map +1 -0
  577. package/dist/native/charts/src/engine/data.cjs +1 -1
  578. package/dist/native/charts/src/engine/data.cjs.map +1 -1
  579. package/dist/native/charts/src/engine/data.js +117 -43
  580. package/dist/native/charts/src/engine/data.js.map +1 -1
  581. package/dist/native/charts/src/engine/format.cjs +1 -1
  582. package/dist/native/charts/src/engine/format.cjs.map +1 -1
  583. package/dist/native/charts/src/engine/format.js +46 -21
  584. package/dist/native/charts/src/engine/format.js.map +1 -1
  585. package/dist/native/charts/src/engine/labels.cjs +2 -0
  586. package/dist/native/charts/src/engine/labels.cjs.map +1 -0
  587. package/dist/native/charts/src/engine/labels.js +74 -0
  588. package/dist/native/charts/src/engine/labels.js.map +1 -0
  589. package/dist/native/charts/src/engine/layout.cjs +1 -1
  590. package/dist/native/charts/src/engine/layout.cjs.map +1 -1
  591. package/dist/native/charts/src/engine/layout.js +53 -12
  592. package/dist/native/charts/src/engine/layout.js.map +1 -1
  593. package/dist/native/charts/src/engine/locale.cjs +2 -0
  594. package/dist/native/charts/src/engine/locale.cjs.map +1 -0
  595. package/dist/native/charts/src/engine/locale.js +60 -0
  596. package/dist/native/charts/src/engine/locale.js.map +1 -0
  597. package/dist/native/charts/src/engine/model.cjs +1 -1
  598. package/dist/native/charts/src/engine/model.cjs.map +1 -1
  599. package/dist/native/charts/src/engine/model.js +335 -111
  600. package/dist/native/charts/src/engine/model.js.map +1 -1
  601. package/dist/native/charts/src/engine/overlay.cjs +1 -1
  602. package/dist/native/charts/src/engine/overlay.cjs.map +1 -1
  603. package/dist/native/charts/src/engine/overlay.js +54 -31
  604. package/dist/native/charts/src/engine/overlay.js.map +1 -1
  605. package/dist/native/charts/src/engine/presets.cjs +2 -2
  606. package/dist/native/charts/src/engine/presets.cjs.map +1 -1
  607. package/dist/native/charts/src/engine/presets.js +456 -34
  608. package/dist/native/charts/src/engine/presets.js.map +1 -1
  609. package/dist/native/charts/src/engine/scale.cjs +1 -1
  610. package/dist/native/charts/src/engine/scale.cjs.map +1 -1
  611. package/dist/native/charts/src/engine/scale.js +1 -1
  612. package/dist/native/charts/src/engine/scale.js.map +1 -1
  613. package/dist/native/charts/src/engine/scene.cjs +1 -1
  614. package/dist/native/charts/src/engine/scene.cjs.map +1 -1
  615. package/dist/native/charts/src/engine/scene.js +369 -128
  616. package/dist/native/charts/src/engine/scene.js.map +1 -1
  617. package/dist/native/charts/src/engine/shapes/bullet.cjs +2 -0
  618. package/dist/native/charts/src/engine/shapes/bullet.cjs.map +1 -0
  619. package/dist/native/charts/src/engine/shapes/bullet.js +255 -0
  620. package/dist/native/charts/src/engine/shapes/bullet.js.map +1 -0
  621. package/dist/native/charts/src/engine/shapes/calendar.cjs +2 -0
  622. package/dist/native/charts/src/engine/shapes/calendar.cjs.map +1 -0
  623. package/dist/native/charts/src/engine/shapes/calendar.js +364 -0
  624. package/dist/native/charts/src/engine/shapes/calendar.js.map +1 -0
  625. package/dist/native/charts/src/engine/shapes/canvas.cjs +2 -0
  626. package/dist/native/charts/src/engine/shapes/canvas.cjs.map +1 -0
  627. package/dist/native/charts/src/engine/shapes/canvas.js +168 -0
  628. package/dist/native/charts/src/engine/shapes/canvas.js.map +1 -0
  629. package/dist/native/charts/src/engine/shapes/draw.cjs +2 -0
  630. package/dist/native/charts/src/engine/shapes/draw.cjs.map +1 -0
  631. package/dist/native/charts/src/engine/shapes/draw.js +165 -0
  632. package/dist/native/charts/src/engine/shapes/draw.js.map +1 -0
  633. package/dist/native/charts/src/engine/shapes/funnel.cjs +2 -0
  634. package/dist/native/charts/src/engine/shapes/funnel.cjs.map +1 -0
  635. package/dist/native/charts/src/engine/shapes/funnel.js +149 -0
  636. package/dist/native/charts/src/engine/shapes/funnel.js.map +1 -0
  637. package/dist/native/charts/src/engine/shapes/gauge.cjs +2 -0
  638. package/dist/native/charts/src/engine/shapes/gauge.cjs.map +1 -0
  639. package/dist/native/charts/src/engine/shapes/gauge.js +210 -0
  640. package/dist/native/charts/src/engine/shapes/gauge.js.map +1 -0
  641. package/dist/native/charts/src/engine/shapes/hit.cjs +2 -0
  642. package/dist/native/charts/src/engine/shapes/hit.cjs.map +1 -0
  643. package/dist/native/charts/src/engine/shapes/hit.js +106 -0
  644. package/dist/native/charts/src/engine/shapes/hit.js.map +1 -0
  645. package/dist/native/charts/src/engine/shapes/labels.cjs +2 -0
  646. package/dist/native/charts/src/engine/shapes/labels.cjs.map +1 -0
  647. package/dist/native/charts/src/engine/shapes/labels.js +146 -0
  648. package/dist/native/charts/src/engine/shapes/labels.js.map +1 -0
  649. package/dist/native/charts/src/engine/shapes/layout.cjs +3 -0
  650. package/dist/native/charts/src/engine/shapes/layout.cjs.map +1 -0
  651. package/dist/native/charts/src/engine/shapes/layout.js +331 -0
  652. package/dist/native/charts/src/engine/shapes/layout.js.map +1 -0
  653. package/dist/native/charts/src/engine/shapes/pie.cjs +2 -0
  654. package/dist/native/charts/src/engine/shapes/pie.cjs.map +1 -0
  655. package/dist/native/charts/src/engine/shapes/pie.js +302 -0
  656. package/dist/native/charts/src/engine/shapes/pie.js.map +1 -0
  657. package/dist/native/charts/src/engine/shapes/radar.cjs +2 -0
  658. package/dist/native/charts/src/engine/shapes/radar.cjs.map +1 -0
  659. package/dist/native/charts/src/engine/shapes/radar.js +198 -0
  660. package/dist/native/charts/src/engine/shapes/radar.js.map +1 -0
  661. package/dist/native/charts/src/engine/shapes/radialBar.cjs +2 -0
  662. package/dist/native/charts/src/engine/shapes/radialBar.cjs.map +1 -0
  663. package/dist/native/charts/src/engine/shapes/radialBar.js +155 -0
  664. package/dist/native/charts/src/engine/shapes/radialBar.js.map +1 -0
  665. package/dist/native/charts/src/engine/shapes/runtime.cjs +2 -0
  666. package/dist/native/charts/src/engine/shapes/runtime.cjs.map +1 -0
  667. package/dist/native/charts/src/engine/shapes/runtime.js +107 -0
  668. package/dist/native/charts/src/engine/shapes/runtime.js.map +1 -0
  669. package/dist/native/charts/src/engine/shapes/sankey.cjs +2 -0
  670. package/dist/native/charts/src/engine/shapes/sankey.cjs.map +1 -0
  671. package/dist/native/charts/src/engine/shapes/sankey.js +372 -0
  672. package/dist/native/charts/src/engine/shapes/sankey.js.map +1 -0
  673. package/dist/native/charts/src/engine/shapes/scene.cjs +2 -0
  674. package/dist/native/charts/src/engine/shapes/scene.cjs.map +1 -0
  675. package/dist/native/charts/src/engine/shapes/scene.js +125 -0
  676. package/dist/native/charts/src/engine/shapes/scene.js.map +1 -0
  677. package/dist/native/charts/src/engine/shapes/sunburst.cjs +2 -0
  678. package/dist/native/charts/src/engine/shapes/sunburst.cjs.map +1 -0
  679. package/dist/native/charts/src/engine/shapes/sunburst.js +261 -0
  680. package/dist/native/charts/src/engine/shapes/sunburst.js.map +1 -0
  681. package/dist/native/charts/src/engine/shapes/treemap.cjs +2 -0
  682. package/dist/native/charts/src/engine/shapes/treemap.cjs.map +1 -0
  683. package/dist/native/charts/src/engine/shapes/treemap.js +213 -0
  684. package/dist/native/charts/src/engine/shapes/treemap.js.map +1 -0
  685. package/dist/native/charts/src/engine/theme.cjs.map +1 -1
  686. package/dist/native/charts/src/engine/theme.js.map +1 -1
  687. package/dist/native/charts/src/engine/time.cjs +1 -1
  688. package/dist/native/charts/src/engine/time.cjs.map +1 -1
  689. package/dist/native/charts/src/engine/time.js +156 -91
  690. package/dist/native/charts/src/engine/time.js.map +1 -1
  691. package/dist/native/components/Chart/ChartBase.cjs +1 -1
  692. package/dist/native/components/Chart/ChartBase.cjs.map +1 -1
  693. package/dist/native/components/Chart/ChartBase.d.cts +1 -1
  694. package/dist/native/components/Chart/ChartBase.d.ts +1 -1
  695. package/dist/native/components/Chart/ChartBase.js +110 -107
  696. package/dist/native/components/Chart/ChartBase.js.map +1 -1
  697. package/dist/native/components/Chart/charts.cjs +1 -1
  698. package/dist/native/components/Chart/charts.cjs.map +1 -1
  699. package/dist/native/components/Chart/charts.d.cts +6 -1
  700. package/dist/native/components/Chart/charts.d.ts +6 -1
  701. package/dist/native/components/Chart/charts.js +53 -29
  702. package/dist/native/components/Chart/charts.js.map +1 -1
  703. package/dist/native/components/Chart/index.cjs +1 -1
  704. package/dist/native/components/Chart/index.d.cts +1 -1
  705. package/dist/native/components/Chart/index.d.ts +1 -1
  706. package/dist/native/components/Chart/index.js +2 -2
  707. package/dist/native/components/Chart/scene.cjs +1 -1
  708. package/dist/native/components/Chart/scene.cjs.map +1 -1
  709. package/dist/native/components/Chart/scene.js +244 -215
  710. package/dist/native/components/Chart/scene.js.map +1 -1
  711. package/dist/native/components/Chart/types.d.cts +26 -3
  712. package/dist/native/components/Chart/types.d.ts +26 -3
  713. package/dist/native/components/Charts/charts.cjs +2 -0
  714. package/dist/native/components/Charts/charts.cjs.map +1 -0
  715. package/dist/native/components/Charts/charts.d.cts +41 -0
  716. package/dist/native/components/Charts/charts.d.ts +41 -0
  717. package/dist/native/components/Charts/charts.js +338 -0
  718. package/dist/native/components/Charts/charts.js.map +1 -0
  719. package/dist/native/components/Charts/index.cjs +1 -0
  720. package/dist/native/components/Charts/index.d.cts +2 -0
  721. package/dist/native/components/Charts/index.d.ts +2 -0
  722. package/dist/native/components/Charts/index.js +2 -0
  723. package/dist/native/components/Charts/types.d.cts +144 -0
  724. package/dist/native/components/Charts/types.d.ts +144 -0
  725. package/dist/native/components/ShapeChart/ShapeChartBase.cjs +2 -0
  726. package/dist/native/components/ShapeChart/ShapeChartBase.cjs.map +1 -0
  727. package/dist/native/components/ShapeChart/ShapeChartBase.d.cts +24 -0
  728. package/dist/native/components/ShapeChart/ShapeChartBase.d.ts +24 -0
  729. package/dist/native/components/ShapeChart/ShapeChartBase.js +271 -0
  730. package/dist/native/components/ShapeChart/ShapeChartBase.js.map +1 -0
  731. package/dist/native/components/ShapeChart/charts.cjs +2 -0
  732. package/dist/native/components/ShapeChart/charts.cjs.map +1 -0
  733. package/dist/native/components/ShapeChart/charts.d.cts +38 -0
  734. package/dist/native/components/ShapeChart/charts.d.ts +38 -0
  735. package/dist/native/components/ShapeChart/charts.js +387 -0
  736. package/dist/native/components/ShapeChart/charts.js.map +1 -0
  737. package/dist/native/components/ShapeChart/draw.cjs +2 -0
  738. package/dist/native/components/ShapeChart/draw.cjs.map +1 -0
  739. package/dist/native/components/ShapeChart/draw.d.cts +4 -0
  740. package/dist/native/components/ShapeChart/draw.d.ts +4 -0
  741. package/dist/native/components/ShapeChart/draw.js +104 -0
  742. package/dist/native/components/ShapeChart/draw.js.map +1 -0
  743. package/dist/native/components/ShapeChart/geometry.cjs +2 -0
  744. package/dist/native/components/ShapeChart/geometry.cjs.map +1 -0
  745. package/dist/native/components/ShapeChart/geometry.d.cts +71 -0
  746. package/dist/native/components/ShapeChart/geometry.d.ts +71 -0
  747. package/dist/native/components/ShapeChart/geometry.js +602 -0
  748. package/dist/native/components/ShapeChart/geometry.js.map +1 -0
  749. package/dist/native/components/ShapeChart/index.cjs +1 -0
  750. package/dist/native/components/ShapeChart/index.d.cts +2 -0
  751. package/dist/native/components/ShapeChart/index.d.ts +2 -0
  752. package/dist/native/components/ShapeChart/index.js +2 -0
  753. package/dist/native/components/ShapeChart/recorder.cjs +2 -0
  754. package/dist/native/components/ShapeChart/recorder.cjs.map +1 -0
  755. package/dist/native/components/ShapeChart/recorder.d.cts +106 -0
  756. package/dist/native/components/ShapeChart/recorder.d.ts +106 -0
  757. package/dist/native/components/ShapeChart/recorder.js +574 -0
  758. package/dist/native/components/ShapeChart/recorder.js.map +1 -0
  759. package/dist/native/components/ShapeChart/types.d.cts +509 -0
  760. package/dist/native/components/ShapeChart/types.d.ts +509 -0
  761. package/dist/native/index.cjs +1 -1
  762. package/dist/native/index.d.cts +2 -0
  763. package/dist/native/index.d.ts +2 -0
  764. package/dist/native/index.js +14 -10
  765. package/dist/native/manifest.d.cts +6 -4
  766. package/dist/native/manifest.d.ts +6 -4
  767. package/dist/native/source/components/Chart/ChartBase.tsx +8 -1
  768. package/dist/native/source/components/Chart/charts.tsx +42 -6
  769. package/dist/native/source/components/Chart/index.ts +1 -0
  770. package/dist/native/source/components/Chart/scene.tsx +204 -100
  771. package/dist/native/source/components/Chart/types.ts +31 -1
  772. package/dist/native/source/components/Charts/charts.tsx +493 -0
  773. package/dist/native/source/components/Charts/index.ts +14 -0
  774. package/dist/native/source/components/Charts/types.ts +207 -0
  775. package/dist/native/source/components/ShapeChart/ShapeChartBase.tsx +484 -0
  776. package/dist/native/source/components/ShapeChart/charts.tsx +605 -0
  777. package/dist/native/source/components/ShapeChart/draw.tsx +170 -0
  778. package/dist/native/source/components/ShapeChart/geometry.ts +1185 -0
  779. package/dist/native/source/components/ShapeChart/index.ts +15 -0
  780. package/dist/native/source/components/ShapeChart/recorder.ts +830 -0
  781. package/dist/native/source/components/ShapeChart/types.ts +564 -0
  782. package/dist/native/source/index.ts +2 -0
  783. package/dist/native/source/manifest.ts +30 -4
  784. package/dist/taro/charts.d.ts +209 -4
  785. package/dist/taro/index.d.ts +1 -0
  786. package/dist/taro/index.js +8032 -1891
  787. package/dist/taro/manifest.d.ts +1 -0
  788. package/dist/taro/shape-charts.d.ts +537 -0
  789. package/dist/uni/AreaChart.vue +68 -0
  790. package/dist/uni/AreaChart.vue.d.ts +120 -0
  791. package/dist/uni/Badge.vue.d.ts +1 -1
  792. package/dist/uni/BoxPlotChart.vue +66 -0
  793. package/dist/uni/BoxPlotChart.vue.d.ts +102 -0
  794. package/dist/uni/BubbleChart.vue +68 -0
  795. package/dist/uni/BubbleChart.vue.d.ts +106 -0
  796. package/dist/uni/BulletChart.vue +86 -0
  797. package/dist/uni/BulletChart.vue.d.ts +110 -0
  798. package/dist/uni/CalendarHeatmap.vue +92 -0
  799. package/dist/uni/CalendarHeatmap.vue.d.ts +129 -0
  800. package/dist/uni/CandlestickChart.vue +66 -0
  801. package/dist/uni/CandlestickChart.vue.d.ts +100 -0
  802. package/dist/uni/DonutChart.vue +72 -0
  803. package/dist/uni/DonutChart.vue.d.ts +114 -0
  804. package/dist/uni/FunnelChart.vue +67 -0
  805. package/dist/uni/FunnelChart.vue.d.ts +104 -0
  806. package/dist/uni/GanttChart.vue +67 -0
  807. package/dist/uni/GanttChart.vue.d.ts +123 -0
  808. package/dist/uni/GaugeChart.vue +77 -0
  809. package/dist/uni/GaugeChart.vue.d.ts +123 -0
  810. package/dist/uni/HeatmapChart.vue +66 -0
  811. package/dist/uni/HeatmapChart.vue.d.ts +114 -0
  812. package/dist/uni/HistogramChart.vue +66 -0
  813. package/dist/uni/HistogramChart.vue.d.ts +121 -0
  814. package/dist/uni/HorizontalBarChart.vue +68 -0
  815. package/dist/uni/HorizontalBarChart.vue.d.ts +127 -0
  816. package/dist/uni/Input.vue.d.ts +1 -1
  817. package/dist/uni/MixedChart.vue +68 -0
  818. package/dist/uni/MixedChart.vue.d.ts +106 -0
  819. package/dist/uni/NumberInput.vue.d.ts +1 -1
  820. package/dist/uni/PieChart.vue +72 -0
  821. package/dist/uni/PieChart.vue.d.ts +114 -0
  822. package/dist/uni/RadarChart.vue +67 -0
  823. package/dist/uni/RadarChart.vue.d.ts +110 -0
  824. package/dist/uni/RadialBarChart.vue +90 -0
  825. package/dist/uni/RadialBarChart.vue.d.ts +132 -0
  826. package/dist/uni/RangeAreaChart.vue +68 -0
  827. package/dist/uni/RangeAreaChart.vue.d.ts +102 -0
  828. package/dist/uni/ResponsiveGrid.vue.d.ts +1 -1
  829. package/dist/uni/SankeyChart.vue +88 -0
  830. package/dist/uni/SankeyChart.vue.d.ts +121 -0
  831. package/dist/uni/ShapeChart.vue +73 -0
  832. package/dist/uni/ShapeChart.vue.d.ts +54 -0
  833. package/dist/uni/Sparkline.vue +58 -0
  834. package/dist/uni/Sparkline.vue.d.ts +77 -0
  835. package/dist/uni/SunburstChart.vue +90 -0
  836. package/dist/uni/SunburstChart.vue.d.ts +114 -0
  837. package/dist/uni/Textarea.vue.d.ts +1 -1
  838. package/dist/uni/TimePicker.vue.d.ts +1 -1
  839. package/dist/uni/TreemapChart.vue +65 -0
  840. package/dist/uni/TreemapChart.vue.d.ts +100 -0
  841. package/dist/uni/WaterfallChart.vue +66 -0
  842. package/dist/uni/WaterfallChart.vue.d.ts +125 -0
  843. package/dist/uni/chart-types.d.ts +216 -2
  844. package/dist/uni/chart-types.js +174 -0
  845. package/dist/uni/charts-canvas.js +10 -3
  846. package/dist/uni/index.d.ts +26 -1
  847. package/dist/uni/index.js +26 -1
  848. package/dist/uni/manifest.d.ts +272 -0
  849. package/dist/uni/manifest.js +387 -0
  850. package/dist/uni/named-chart-options.d.ts +88 -0
  851. package/dist/uni/named-chart-options.js +156 -0
  852. package/dist/uni/shape-chart-canvas.d.ts +51 -0
  853. package/dist/uni/shape-chart-canvas.js +342 -0
  854. package/dist/uni/shape-chart-types.d.ts +381 -0
  855. package/dist/uni/shape-chart-types.js +261 -0
  856. package/dist/vue/components/Chart/AreaChart.vue.d.ts +124 -0
  857. package/dist/vue/components/Chart/AreaChart.vue.js +7 -0
  858. package/dist/vue/components/Chart/AreaChart.vue.js.map +1 -0
  859. package/dist/vue/components/Chart/AreaChart.vue_vue_type_script_setup_true_lang.js +49 -0
  860. package/dist/vue/components/Chart/AreaChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  861. package/dist/vue/components/Chart/Bar3DChart.vue.d.ts +132 -0
  862. package/dist/vue/components/Chart/Bar3DChart.vue.js +7 -0
  863. package/dist/vue/components/Chart/Bar3DChart.vue.js.map +1 -0
  864. package/dist/vue/components/Chart/Bar3DChart.vue_vue_type_script_setup_true_lang.js +55 -0
  865. package/dist/vue/components/Chart/Bar3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  866. package/dist/vue/components/Chart/BarChart.vue.d.ts +123 -0
  867. package/dist/vue/components/Chart/BarChart.vue.js +7 -0
  868. package/dist/vue/components/Chart/BarChart.vue.js.map +1 -0
  869. package/dist/vue/components/Chart/BarChart.vue_vue_type_script_setup_true_lang.js +53 -0
  870. package/dist/vue/components/Chart/BarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  871. package/dist/vue/components/Chart/BoxPlotChart.vue.d.ts +112 -0
  872. package/dist/vue/components/Chart/BoxPlotChart.vue.js +7 -0
  873. package/dist/vue/components/Chart/BoxPlotChart.vue.js.map +1 -0
  874. package/dist/vue/components/Chart/BoxPlotChart.vue_vue_type_script_setup_true_lang.js +57 -0
  875. package/dist/vue/components/Chart/BoxPlotChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  876. package/dist/vue/components/Chart/BubbleChart.vue.d.ts +106 -0
  877. package/dist/vue/components/Chart/BubbleChart.vue.js +7 -0
  878. package/dist/vue/components/Chart/BubbleChart.vue.js.map +1 -0
  879. package/dist/vue/components/Chart/BubbleChart.vue_vue_type_script_setup_true_lang.js +52 -0
  880. package/dist/vue/components/Chart/BubbleChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  881. package/dist/vue/components/Chart/BulletChart.vue.d.ts +117 -0
  882. package/dist/vue/components/Chart/BulletChart.vue.js +7 -0
  883. package/dist/vue/components/Chart/BulletChart.vue.js.map +1 -0
  884. package/dist/vue/components/Chart/BulletChart.vue_vue_type_script_setup_true_lang.js +64 -0
  885. package/dist/vue/components/Chart/BulletChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  886. package/dist/vue/components/Chart/CalendarHeatmap.vue.d.ts +144 -0
  887. package/dist/vue/components/Chart/CalendarHeatmap.vue.js +7 -0
  888. package/dist/vue/components/Chart/CalendarHeatmap.vue.js.map +1 -0
  889. package/dist/vue/components/Chart/CalendarHeatmap.vue_vue_type_script_setup_true_lang.js +77 -0
  890. package/dist/vue/components/Chart/CalendarHeatmap.vue_vue_type_script_setup_true_lang.js.map +1 -0
  891. package/dist/vue/components/Chart/CandlestickChart.vue.d.ts +94 -0
  892. package/dist/vue/components/Chart/CandlestickChart.vue.js +7 -0
  893. package/dist/vue/components/Chart/CandlestickChart.vue.js.map +1 -0
  894. package/dist/vue/components/Chart/CandlestickChart.vue_vue_type_script_setup_true_lang.js +44 -0
  895. package/dist/vue/components/Chart/CandlestickChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  896. package/dist/vue/components/Chart/Chart.vue.d.ts +103 -0
  897. package/dist/vue/components/Chart/Chart.vue.js +7 -0
  898. package/dist/vue/components/Chart/Chart.vue.js.map +1 -0
  899. package/dist/vue/components/Chart/Chart.vue_vue_type_script_setup_true_lang.js +47 -0
  900. package/dist/vue/components/Chart/Chart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  901. package/dist/vue/components/Chart/DepthChart.vue.d.ts +139 -0
  902. package/dist/vue/components/Chart/DepthChart.vue.js +7 -0
  903. package/dist/vue/components/Chart/DepthChart.vue.js.map +1 -0
  904. package/dist/vue/components/Chart/DepthChart.vue_vue_type_script_setup_true_lang.js +42 -0
  905. package/dist/vue/components/Chart/DepthChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  906. package/dist/vue/components/Chart/DonutChart.vue.d.ts +104 -0
  907. package/dist/vue/components/Chart/DonutChart.vue.js +7 -0
  908. package/dist/vue/components/Chart/DonutChart.vue.js.map +1 -0
  909. package/dist/vue/components/Chart/DonutChart.vue_vue_type_script_setup_true_lang.js +53 -0
  910. package/dist/vue/components/Chart/DonutChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  911. package/dist/vue/components/Chart/FunnelChart.vue.d.ts +105 -0
  912. package/dist/vue/components/Chart/FunnelChart.vue.js +7 -0
  913. package/dist/vue/components/Chart/FunnelChart.vue.js.map +1 -0
  914. package/dist/vue/components/Chart/FunnelChart.vue_vue_type_script_setup_true_lang.js +58 -0
  915. package/dist/vue/components/Chart/FunnelChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  916. package/dist/vue/components/Chart/GanttChart.vue.d.ts +132 -0
  917. package/dist/vue/components/Chart/GanttChart.vue.js +7 -0
  918. package/dist/vue/components/Chart/GanttChart.vue.js.map +1 -0
  919. package/dist/vue/components/Chart/GanttChart.vue_vue_type_script_setup_true_lang.js +98 -0
  920. package/dist/vue/components/Chart/GanttChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  921. package/dist/vue/components/Chart/GaugeChart.vue.d.ts +132 -0
  922. package/dist/vue/components/Chart/GaugeChart.vue.js +7 -0
  923. package/dist/vue/components/Chart/GaugeChart.vue.js.map +1 -0
  924. package/dist/vue/components/Chart/GaugeChart.vue_vue_type_script_setup_true_lang.js +71 -0
  925. package/dist/vue/components/Chart/GaugeChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  926. package/dist/vue/components/Chart/HeatmapChart.vue.d.ts +125 -0
  927. package/dist/vue/components/Chart/HeatmapChart.vue.js +7 -0
  928. package/dist/vue/components/Chart/HeatmapChart.vue.js.map +1 -0
  929. package/dist/vue/components/Chart/HeatmapChart.vue_vue_type_script_setup_true_lang.js +65 -0
  930. package/dist/vue/components/Chart/HeatmapChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  931. package/dist/vue/components/Chart/HistogramChart.vue.d.ts +132 -0
  932. package/dist/vue/components/Chart/HistogramChart.vue.js +7 -0
  933. package/dist/vue/components/Chart/HistogramChart.vue.js.map +1 -0
  934. package/dist/vue/components/Chart/HistogramChart.vue_vue_type_script_setup_true_lang.js +66 -0
  935. package/dist/vue/components/Chart/HistogramChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  936. package/dist/vue/components/Chart/HorizontalBarChart.vue.d.ts +121 -0
  937. package/dist/vue/components/Chart/HorizontalBarChart.vue.js +7 -0
  938. package/dist/vue/components/Chart/HorizontalBarChart.vue.js.map +1 -0
  939. package/dist/vue/components/Chart/HorizontalBarChart.vue_vue_type_script_setup_true_lang.js +55 -0
  940. package/dist/vue/components/Chart/HorizontalBarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  941. package/dist/vue/components/Chart/Line3DChart.vue.d.ts +121 -0
  942. package/dist/vue/components/Chart/Line3DChart.vue.js +7 -0
  943. package/dist/vue/components/Chart/Line3DChart.vue.js.map +1 -0
  944. package/dist/vue/components/Chart/Line3DChart.vue_vue_type_script_setup_true_lang.js +47 -0
  945. package/dist/vue/components/Chart/Line3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  946. package/dist/vue/components/Chart/LineChart.vue.d.ts +125 -0
  947. package/dist/vue/components/Chart/LineChart.vue.js +7 -0
  948. package/dist/vue/components/Chart/LineChart.vue.js.map +1 -0
  949. package/dist/vue/components/Chart/LineChart.vue_vue_type_script_setup_true_lang.js +50 -0
  950. package/dist/vue/components/Chart/LineChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  951. package/dist/vue/components/Chart/MixedChart.vue.d.ts +103 -0
  952. package/dist/vue/components/Chart/MixedChart.vue.js +7 -0
  953. package/dist/vue/components/Chart/MixedChart.vue.js.map +1 -0
  954. package/dist/vue/components/Chart/MixedChart.vue_vue_type_script_setup_true_lang.js +47 -0
  955. package/dist/vue/components/Chart/MixedChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  956. package/dist/vue/components/Chart/OrderBook.vue.d.ts +125 -0
  957. package/dist/vue/components/Chart/OrderBook.vue.js +7 -0
  958. package/dist/vue/components/Chart/OrderBook.vue.js.map +1 -0
  959. package/dist/vue/components/Chart/OrderBook.vue_vue_type_script_setup_true_lang.js +38 -0
  960. package/dist/vue/components/Chart/OrderBook.vue_vue_type_script_setup_true_lang.js.map +1 -0
  961. package/dist/vue/components/Chart/OrderBookHeatmap.vue.d.ts +128 -0
  962. package/dist/vue/components/Chart/OrderBookHeatmap.vue.js +7 -0
  963. package/dist/vue/components/Chart/OrderBookHeatmap.vue.js.map +1 -0
  964. package/dist/vue/components/Chart/OrderBookHeatmap.vue_vue_type_script_setup_true_lang.js +46 -0
  965. package/dist/vue/components/Chart/OrderBookHeatmap.vue_vue_type_script_setup_true_lang.js.map +1 -0
  966. package/dist/vue/components/Chart/PieChart.vue.d.ts +104 -0
  967. package/dist/vue/components/Chart/PieChart.vue.js +7 -0
  968. package/dist/vue/components/Chart/PieChart.vue.js.map +1 -0
  969. package/dist/vue/components/Chart/PieChart.vue_vue_type_script_setup_true_lang.js +53 -0
  970. package/dist/vue/components/Chart/PieChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  971. package/dist/vue/components/Chart/QuadrantChart.vue.d.ts +186 -0
  972. package/dist/vue/components/Chart/QuadrantChart.vue.js +7 -0
  973. package/dist/vue/components/Chart/QuadrantChart.vue.js.map +1 -0
  974. package/dist/vue/components/Chart/QuadrantChart.vue_vue_type_script_setup_true_lang.js +107 -0
  975. package/dist/vue/components/Chart/QuadrantChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  976. package/dist/vue/components/Chart/RadarChart.vue.d.ts +111 -0
  977. package/dist/vue/components/Chart/RadarChart.vue.js +7 -0
  978. package/dist/vue/components/Chart/RadarChart.vue.js.map +1 -0
  979. package/dist/vue/components/Chart/RadarChart.vue_vue_type_script_setup_true_lang.js +61 -0
  980. package/dist/vue/components/Chart/RadarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  981. package/dist/vue/components/Chart/RadialBarChart.vue.d.ts +147 -0
  982. package/dist/vue/components/Chart/RadialBarChart.vue.js +7 -0
  983. package/dist/vue/components/Chart/RadialBarChart.vue.js.map +1 -0
  984. package/dist/vue/components/Chart/RadialBarChart.vue_vue_type_script_setup_true_lang.js +78 -0
  985. package/dist/vue/components/Chart/RadialBarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  986. package/dist/vue/components/Chart/RangeAreaChart.vue.d.ts +106 -0
  987. package/dist/vue/components/Chart/RangeAreaChart.vue.js +7 -0
  988. package/dist/vue/components/Chart/RangeAreaChart.vue.js.map +1 -0
  989. package/dist/vue/components/Chart/RangeAreaChart.vue_vue_type_script_setup_true_lang.js +51 -0
  990. package/dist/vue/components/Chart/RangeAreaChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  991. package/dist/vue/components/Chart/SankeyChart.vue.d.ts +132 -0
  992. package/dist/vue/components/Chart/SankeyChart.vue.js +7 -0
  993. package/dist/vue/components/Chart/SankeyChart.vue.js.map +1 -0
  994. package/dist/vue/components/Chart/SankeyChart.vue_vue_type_script_setup_true_lang.js +71 -0
  995. package/dist/vue/components/Chart/SankeyChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  996. package/dist/vue/components/Chart/Scatter3DChart.vue.d.ts +121 -0
  997. package/dist/vue/components/Chart/Scatter3DChart.vue.js +7 -0
  998. package/dist/vue/components/Chart/Scatter3DChart.vue.js.map +1 -0
  999. package/dist/vue/components/Chart/Scatter3DChart.vue_vue_type_script_setup_true_lang.js +47 -0
  1000. package/dist/vue/components/Chart/Scatter3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1001. package/dist/vue/components/Chart/ScatterChart.vue.d.ts +94 -0
  1002. package/dist/vue/components/Chart/ScatterChart.vue.js +7 -0
  1003. package/dist/vue/components/Chart/ScatterChart.vue.js.map +1 -0
  1004. package/dist/vue/components/Chart/ScatterChart.vue_vue_type_script_setup_true_lang.js +44 -0
  1005. package/dist/vue/components/Chart/ScatterChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1006. package/dist/vue/components/Chart/ShapeChart.vue.d.ts +39 -0
  1007. package/dist/vue/components/Chart/ShapeChart.vue.js +7 -0
  1008. package/dist/vue/components/Chart/ShapeChart.vue.js.map +1 -0
  1009. package/dist/vue/components/Chart/ShapeChart.vue_vue_type_script_setup_true_lang.js +43 -0
  1010. package/dist/vue/components/Chart/ShapeChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1011. package/dist/vue/components/Chart/Sparkline.vue.d.ts +90 -0
  1012. package/dist/vue/components/Chart/Sparkline.vue.js +7 -0
  1013. package/dist/vue/components/Chart/Sparkline.vue.js.map +1 -0
  1014. package/dist/vue/components/Chart/Sparkline.vue_vue_type_script_setup_true_lang.js +66 -0
  1015. package/dist/vue/components/Chart/Sparkline.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1016. package/dist/vue/components/Chart/SunburstChart.vue.d.ts +123 -0
  1017. package/dist/vue/components/Chart/SunburstChart.vue.js +7 -0
  1018. package/dist/vue/components/Chart/SunburstChart.vue.js.map +1 -0
  1019. package/dist/vue/components/Chart/SunburstChart.vue_vue_type_script_setup_true_lang.js +68 -0
  1020. package/dist/vue/components/Chart/SunburstChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1021. package/dist/vue/components/Chart/Surface3DChart.vue.d.ts +143 -0
  1022. package/dist/vue/components/Chart/Surface3DChart.vue.js +7 -0
  1023. package/dist/vue/components/Chart/Surface3DChart.vue.js.map +1 -0
  1024. package/dist/vue/components/Chart/Surface3DChart.vue_vue_type_script_setup_true_lang.js +60 -0
  1025. package/dist/vue/components/Chart/Surface3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1026. package/dist/vue/components/Chart/TimeAndSales.vue.d.ts +114 -0
  1027. package/dist/vue/components/Chart/TimeAndSales.vue.js +7 -0
  1028. package/dist/vue/components/Chart/TimeAndSales.vue.js.map +1 -0
  1029. package/dist/vue/components/Chart/TimeAndSales.vue_vue_type_script_setup_true_lang.js +46 -0
  1030. package/dist/vue/components/Chart/TimeAndSales.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1031. package/dist/vue/components/Chart/TradingChart.vue.d.ts +160 -0
  1032. package/dist/vue/components/Chart/TradingChart.vue.js +7 -0
  1033. package/dist/vue/components/Chart/TradingChart.vue.js.map +1 -0
  1034. package/dist/vue/components/Chart/TradingChart.vue_vue_type_script_setup_true_lang.js +70 -0
  1035. package/dist/vue/components/Chart/TradingChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1036. package/dist/vue/components/Chart/TreemapChart.vue.d.ts +97 -0
  1037. package/dist/vue/components/Chart/TreemapChart.vue.js +7 -0
  1038. package/dist/vue/components/Chart/TreemapChart.vue.js.map +1 -0
  1039. package/dist/vue/components/Chart/TreemapChart.vue_vue_type_script_setup_true_lang.js +54 -0
  1040. package/dist/vue/components/Chart/TreemapChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1041. package/dist/vue/components/Chart/WaterfallChart.vue.d.ts +132 -0
  1042. package/dist/vue/components/Chart/WaterfallChart.vue.js +7 -0
  1043. package/dist/vue/components/Chart/WaterfallChart.vue.js.map +1 -0
  1044. package/dist/vue/components/Chart/WaterfallChart.vue_vue_type_script_setup_true_lang.js +68 -0
  1045. package/dist/vue/components/Chart/WaterfallChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1046. package/dist/vue/components/Chart/cartesian.d.ts +47 -0
  1047. package/dist/vue/components/Chart/cartesian.js +56 -0
  1048. package/dist/vue/components/Chart/cartesian.js.map +1 -0
  1049. package/dist/vue/components/Chart/engine.d.ts +35 -0
  1050. package/dist/vue/components/Chart/engine.js +35 -0
  1051. package/dist/vue/components/Chart/engine.js.map +1 -0
  1052. package/dist/vue/components/Chart/index.d.ts +41 -0
  1053. package/dist/vue/components/Chart/index.js +40 -0
  1054. package/dist/vue/components/Chart/orderbook.d.ts +359 -0
  1055. package/dist/vue/components/Chart/orderbook.js +126 -0
  1056. package/dist/vue/components/Chart/orderbook.js.map +1 -0
  1057. package/dist/vue/components/Chart/props.d.ts +188 -0
  1058. package/dist/vue/components/Chart/props.js +92 -0
  1059. package/dist/vue/components/Chart/props.js.map +1 -0
  1060. package/dist/vue/components/Chart/shape.d.ts +41 -0
  1061. package/dist/vue/components/Chart/shape.js +42 -0
  1062. package/dist/vue/components/Chart/shape.js.map +1 -0
  1063. package/dist/vue/components/Chart/three-d.d.ts +106 -0
  1064. package/dist/vue/components/Chart/three-d.js +88 -0
  1065. package/dist/vue/components/Chart/three-d.js.map +1 -0
  1066. package/dist/vue/components/Chart/trading.d.ts +105 -0
  1067. package/dist/vue/components/Chart/trading.js +55 -0
  1068. package/dist/vue/components/Chart/trading.js.map +1 -0
  1069. package/dist/vue/components/Chart/types.d.ts +137 -0
  1070. package/dist/vue/global.d.ts +38 -0
  1071. package/dist/vue/groups/charts.d.ts +1 -0
  1072. package/dist/vue/groups/charts.js +87 -0
  1073. package/dist/vue/groups/charts.js.map +1 -0
  1074. package/dist/vue/index.d.ts +1 -0
  1075. package/dist/vue/index.js +63 -23
  1076. package/dist/vue/plugin.js +12 -10
  1077. package/dist/vue/plugin.js.map +1 -1
  1078. package/dist/weapp/area-chart/index.js +1 -0
  1079. package/dist/weapp/area-chart/index.json +1 -0
  1080. package/dist/weapp/area-chart/index.wxml +1 -0
  1081. package/dist/weapp/area-chart/index.wxss +1 -0
  1082. package/dist/weapp/box-plot-chart/index.js +1 -0
  1083. package/dist/weapp/box-plot-chart/index.json +1 -0
  1084. package/dist/weapp/box-plot-chart/index.wxml +1 -0
  1085. package/dist/weapp/box-plot-chart/index.wxss +1 -0
  1086. package/dist/weapp/bubble-chart/index.js +1 -0
  1087. package/dist/weapp/bubble-chart/index.json +1 -0
  1088. package/dist/weapp/bubble-chart/index.wxml +1 -0
  1089. package/dist/weapp/bubble-chart/index.wxss +1 -0
  1090. package/dist/weapp/bullet-chart/index.js +1 -0
  1091. package/dist/weapp/bullet-chart/index.json +1 -0
  1092. package/dist/weapp/bullet-chart/index.wxml +1 -0
  1093. package/dist/weapp/bullet-chart/index.wxss +1 -0
  1094. package/dist/weapp/calendar-heatmap/index.js +1 -0
  1095. package/dist/weapp/calendar-heatmap/index.json +1 -0
  1096. package/dist/weapp/calendar-heatmap/index.wxml +1 -0
  1097. package/dist/weapp/calendar-heatmap/index.wxss +1 -0
  1098. package/dist/weapp/candlestick-chart/index.js +1 -0
  1099. package/dist/weapp/candlestick-chart/index.json +1 -0
  1100. package/dist/weapp/candlestick-chart/index.wxml +1 -0
  1101. package/dist/weapp/candlestick-chart/index.wxss +1 -0
  1102. package/dist/weapp/charts/canvas.js +11436 -0
  1103. package/dist/weapp/charts/core.d.ts +2 -0
  1104. package/dist/weapp/charts/core.js +41 -0
  1105. package/dist/weapp/controls.js +1428 -3732
  1106. package/dist/weapp/donut-chart/index.js +1 -0
  1107. package/dist/weapp/donut-chart/index.json +1 -0
  1108. package/dist/weapp/donut-chart/index.wxml +1 -0
  1109. package/dist/weapp/donut-chart/index.wxss +1 -0
  1110. package/dist/weapp/funnel-chart/index.js +1 -0
  1111. package/dist/weapp/funnel-chart/index.json +1 -0
  1112. package/dist/weapp/funnel-chart/index.wxml +1 -0
  1113. package/dist/weapp/funnel-chart/index.wxss +1 -0
  1114. package/dist/weapp/gantt-chart/index.js +1 -0
  1115. package/dist/weapp/gantt-chart/index.json +1 -0
  1116. package/dist/weapp/gantt-chart/index.wxml +1 -0
  1117. package/dist/weapp/gantt-chart/index.wxss +1 -0
  1118. package/dist/weapp/gauge-chart/index.js +1 -0
  1119. package/dist/weapp/gauge-chart/index.json +1 -0
  1120. package/dist/weapp/gauge-chart/index.wxml +1 -0
  1121. package/dist/weapp/gauge-chart/index.wxss +1 -0
  1122. package/dist/weapp/heatmap-chart/index.js +1 -0
  1123. package/dist/weapp/heatmap-chart/index.json +1 -0
  1124. package/dist/weapp/heatmap-chart/index.wxml +1 -0
  1125. package/dist/weapp/heatmap-chart/index.wxss +1 -0
  1126. package/dist/weapp/histogram-chart/index.js +1 -0
  1127. package/dist/weapp/histogram-chart/index.json +1 -0
  1128. package/dist/weapp/histogram-chart/index.wxml +1 -0
  1129. package/dist/weapp/histogram-chart/index.wxss +1 -0
  1130. package/dist/weapp/horizontal-bar-chart/index.js +1 -0
  1131. package/dist/weapp/horizontal-bar-chart/index.json +1 -0
  1132. package/dist/weapp/horizontal-bar-chart/index.wxml +1 -0
  1133. package/dist/weapp/horizontal-bar-chart/index.wxss +1 -0
  1134. package/dist/weapp/mixed-chart/index.js +1 -0
  1135. package/dist/weapp/mixed-chart/index.json +1 -0
  1136. package/dist/weapp/mixed-chart/index.wxml +1 -0
  1137. package/dist/weapp/mixed-chart/index.wxss +1 -0
  1138. package/dist/weapp/pie-chart/index.js +1 -0
  1139. package/dist/weapp/pie-chart/index.json +1 -0
  1140. package/dist/weapp/pie-chart/index.wxml +1 -0
  1141. package/dist/weapp/pie-chart/index.wxss +1 -0
  1142. package/dist/weapp/radar-chart/index.js +1 -0
  1143. package/dist/weapp/radar-chart/index.json +1 -0
  1144. package/dist/weapp/radar-chart/index.wxml +1 -0
  1145. package/dist/weapp/radar-chart/index.wxss +1 -0
  1146. package/dist/weapp/radial-bar-chart/index.js +1 -0
  1147. package/dist/weapp/radial-bar-chart/index.json +1 -0
  1148. package/dist/weapp/radial-bar-chart/index.wxml +1 -0
  1149. package/dist/weapp/radial-bar-chart/index.wxss +1 -0
  1150. package/dist/weapp/range-area-chart/index.js +1 -0
  1151. package/dist/weapp/range-area-chart/index.json +1 -0
  1152. package/dist/weapp/range-area-chart/index.wxml +1 -0
  1153. package/dist/weapp/range-area-chart/index.wxss +1 -0
  1154. package/dist/weapp/sankey-chart/index.js +1 -0
  1155. package/dist/weapp/sankey-chart/index.json +1 -0
  1156. package/dist/weapp/sankey-chart/index.wxml +1 -0
  1157. package/dist/weapp/sankey-chart/index.wxss +1 -0
  1158. package/dist/weapp/shape-chart/index.js +1 -0
  1159. package/dist/weapp/shape-chart/index.json +1 -0
  1160. package/dist/weapp/shape-chart/index.wxml +1 -0
  1161. package/dist/weapp/shape-chart/index.wxss +1 -0
  1162. package/dist/weapp/sparkline/index.js +1 -0
  1163. package/dist/weapp/sparkline/index.json +1 -0
  1164. package/dist/weapp/sparkline/index.wxml +1 -0
  1165. package/dist/weapp/sparkline/index.wxss +1 -0
  1166. package/dist/weapp/sunburst-chart/index.js +1 -0
  1167. package/dist/weapp/sunburst-chart/index.json +1 -0
  1168. package/dist/weapp/sunburst-chart/index.wxml +1 -0
  1169. package/dist/weapp/sunburst-chart/index.wxss +1 -0
  1170. package/dist/weapp/treemap-chart/index.js +1 -0
  1171. package/dist/weapp/treemap-chart/index.json +1 -0
  1172. package/dist/weapp/treemap-chart/index.wxml +1 -0
  1173. package/dist/weapp/treemap-chart/index.wxss +1 -0
  1174. package/dist/weapp/types.d.ts +466 -0
  1175. package/dist/weapp/waterfall-chart/index.js +1 -0
  1176. package/dist/weapp/waterfall-chart/index.json +1 -0
  1177. package/dist/weapp/waterfall-chart/index.wxml +1 -0
  1178. package/dist/weapp/waterfall-chart/index.wxss +1 -0
  1179. package/dist/web-components/components/chart/chart.d.ts +58 -0
  1180. package/dist/web-components/components/chart/chart.js +55 -0
  1181. package/dist/web-components/components/chart/chart.js.map +1 -0
  1182. package/dist/web-components/components/chart/charts.d.ts +252 -0
  1183. package/dist/web-components/components/chart/charts.js +201 -0
  1184. package/dist/web-components/components/chart/charts.js.map +1 -0
  1185. package/dist/web-components/components/chart/engine-element.d.ts +53 -0
  1186. package/dist/web-components/components/chart/engine-element.js +77 -0
  1187. package/dist/web-components/components/chart/engine-element.js.map +1 -0
  1188. package/dist/web-components/components/chart/extended.d.ts +224 -0
  1189. package/dist/web-components/components/chart/extended.js +183 -0
  1190. package/dist/web-components/components/chart/extended.js.map +1 -0
  1191. package/dist/web-components/components/chart/series.d.ts +7 -0
  1192. package/dist/web-components/components/chart/series.js +14 -0
  1193. package/dist/web-components/components/chart/series.js.map +1 -0
  1194. package/dist/web-components/components/chart/shape-chart.d.ts +199 -0
  1195. package/dist/web-components/components/chart/shape-chart.js +161 -0
  1196. package/dist/web-components/components/chart/shape-chart.js.map +1 -0
  1197. package/dist/web-components/components/chart/shapes-extended.d.ts +162 -0
  1198. package/dist/web-components/components/chart/shapes-extended.js +156 -0
  1199. package/dist/web-components/components/chart/shapes-extended.js.map +1 -0
  1200. package/dist/web-components/components/chart-3d/chart-3d.d.ts +111 -0
  1201. package/dist/web-components/components/chart-3d/chart-3d.js +97 -0
  1202. package/dist/web-components/components/chart-3d/chart-3d.js.map +1 -0
  1203. package/dist/web-components/components/order-book/order-book.d.ts +165 -0
  1204. package/dist/web-components/components/order-book/order-book.js +174 -0
  1205. package/dist/web-components/components/order-book/order-book.js.map +1 -0
  1206. package/dist/web-components/components/trading-chart/trading-chart.d.ts +96 -0
  1207. package/dist/web-components/components/trading-chart/trading-chart.js +96 -0
  1208. package/dist/web-components/components/trading-chart/trading-chart.js.map +1 -0
  1209. package/dist/web-components/elements/chart-3d.d.ts +2 -0
  1210. package/dist/web-components/elements/chart-3d.js +13 -0
  1211. package/dist/web-components/elements/chart-3d.js.map +1 -0
  1212. package/dist/web-components/elements/chart.d.ts +7 -0
  1213. package/dist/web-components/elements/chart.js +43 -0
  1214. package/dist/web-components/elements/chart.js.map +1 -0
  1215. package/dist/web-components/elements/order-book.d.ts +2 -0
  1216. package/dist/web-components/elements/order-book.js +13 -0
  1217. package/dist/web-components/elements/order-book.js.map +1 -0
  1218. package/dist/web-components/elements/trading-chart.d.ts +2 -0
  1219. package/dist/web-components/elements/trading-chart.js +8 -0
  1220. package/dist/web-components/elements/trading-chart.js.map +1 -0
  1221. package/dist/web-components/html-custom-data.json +1192 -29
  1222. package/dist/web-components/types/react.d.ts +435 -0
  1223. package/dist/web-components/types/solid.d.ts +321 -0
  1224. package/dist/web-components/types/svelte.d.ts +321 -0
  1225. package/dist/web-components/types/vue.d.ts +359 -0
  1226. package/package.json +113 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ladder.cjs","names":["createOrderBookStore","createEmitter","createFormatters","localeLabels","createHost","sideColors","inferPriceDecimals","decimalsOf","inferSizeDecimals","numberFormat","toCss","fontOf","localPoint","clamp","applyDeltas","require_color","require_locale","require_book","require_format","require_host","LABELS","COLUMNS","createOrderBook","options","initial","store","emitter","fmt","finePrice","texts","inferred","colors","lastPrice","previousLast","lastDirection","flashes","shownRange","drawn","rows","hoverAt","keyRow","hoverKey","hovered","rowHeight","host","container","root","labels","refreshFormat","grouping","raw","fine","v","applyTexts","applyOptions","sideRows","side","out","sum","notional","i","count","p","price","s","size","draw","ctx","l","mode","compact","width","fontSize","rh","headerH","spreadH","imbalanceH","sides","avail","height","perSide","pad","dpr","asks","bids","y","asksTop","row","spreadY","bidsTop","spreadTop","cols","all","c","shownCols","n","inner","colX","j","barsMode","barMax","flash","duration","nextFlashes","animating","inside","range","key","previous","entry","now","prices","r","hx","hy","list","threshold","text","theme","muted","color","large","w","f","flashAlpha","age","ty","label","x","edge","mid","shown","sy","dirColor","cy","priceText","spread","bps","right","rw","bidSum","askSum","share","by","bh","bw","split","doc","ax","toEvent","bb","ba","onPointerMove","event","onPointerLeave","onClick","onKeyDown","order","current","o","down","onBlur","changed","snapshot","deltas","regroup","next","handler"],"sources":["../../../../../charts/src/engine/orderbook/ladder.ts"],"sourcesContent":["// createOrderBook: the price ladder (asks above the spread row, bids below)\n// drawn with Canvas2D. Any number of deltas between two frames cost one\n// draw of the visible rows; changed levels flash, walls stand out, hovering\n// sums the levels up to the pointer.\n\nimport { toCss, type Rgba } from \"../color\";\nimport {\n applyDeltas,\n createOrderBookStore,\n decimalsOf,\n inferPriceDecimals,\n inferSizeDecimals,\n} from \"./book\";\nimport {\n clamp,\n createFormatters,\n fontOf,\n numberFormat,\n roundRect,\n sideColors,\n type Formatters,\n} from \"./format\";\nimport { localeLabels, type LabelDictionary } from \"../locale\";\nimport { createEmitter, createHost, localPoint, tooltipHtml } from \"./host\";\nimport type {\n OrderBookEventMap,\n OrderBookInstance,\n OrderBookLabels,\n OrderBookLevelEvent,\n OrderBookOptions,\n OrderBookSide,\n} from \"./types\";\n\nconst LABELS: LabelDictionary<OrderBookLabels> = {\n en: {\n price: \"Price\",\n size: \"Size\",\n total: \"Total\",\n spread: \"Spread\",\n average: \"Avg. price\",\n sum: \"Sum\",\n notional: \"Notional\",\n buyShare: \"B\",\n sellShare: \"S\",\n bid: \"Bid\",\n ask: \"Ask\",\n basisPoints: \"bp\",\n name: \"Order book\",\n },\n zh: {\n price: \"价格\",\n size: \"数量\",\n total: \"累计\",\n spread: \"价差\",\n average: \"均价\",\n sum: \"累计数量\",\n notional: \"累计金额\",\n buyShare: \"买\",\n sellShare: \"卖\",\n bid: \"买一\",\n ask: \"卖一\",\n basisPoints: \"基点\",\n name: \"订单簿\",\n },\n ja: {\n price: \"価格\",\n size: \"数量\",\n total: \"累計\",\n spread: \"スプレッド\",\n average: \"平均価格\",\n sum: \"累計数量\",\n notional: \"累計金額\",\n buyShare: \"買\",\n sellShare: \"売\",\n bid: \"最良買気配\",\n ask: \"最良売気配\",\n basisPoints: \"bp\",\n name: \"板情報\",\n },\n fr: {\n price: \"Prix\",\n size: \"Quantité\",\n total: \"Cumul\",\n spread: \"Écart\",\n average: \"Prix moyen\",\n sum: \"Somme\",\n notional: \"Montant\",\n buyShare: \"A\",\n sellShare: \"V\",\n bid: \"Meilleur achat\",\n ask: \"Meilleure vente\",\n basisPoints: \"pb\",\n name: \"Carnet d’ordres\",\n },\n};\n\nconst COLUMNS = [\"price\", \"size\", \"total\"] as const;\n\ninterface Row extends OrderBookLevelEvent {\n /** Top of the row, CSS pixels */\n y: number;\n}\n\ninterface Flash {\n size: number;\n at: number;\n grew: boolean;\n}\n\n/**\n * Creates an order book ladder in `container`: asks, spread row and bids\n * with depth bars, grouping, flashes on changes and a hover summary.\n */\nexport const createOrderBook = (\n container: HTMLElement,\n initial: OrderBookOptions = {},\n): OrderBookInstance => {\n let options = initial;\n const store = createOrderBookStore();\n const emitter = createEmitter<OrderBookEventMap>();\n let fmt: Formatters = createFormatters(options, 2, 4);\n let finePrice = fmt.price;\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 let lastPrice: number | null = null;\n let previousLast = NaN;\n let lastDirection = 0;\n let flashes = new Map<string, Flash>();\n /** Price range of the rows of the previous frame, per side */\n const shownRange: Record<OrderBookSide, [number, number]> = {\n bid: [NaN, NaN],\n ask: [NaN, NaN],\n };\n let drawn = false;\n let rows: Row[] = [];\n let hoverAt: [number, number] | null = null;\n /** Keyboard selection: side and index from the spread */\n let keyRow: { side: OrderBookSide; index: number } | null = null;\n let hoverKey = \"\";\n let hovered: Row | null = null;\n let rowHeight = 20;\n\n const host = createHost(container, {\n className: \"minerva-order-book\",\n draw,\n onTheme: () => {\n colors = sideColors(host.theme, options);\n },\n });\n const { root, doc } = host;\n root.tabIndex = 0;\n root.setAttribute(\"role\", \"figure\");\n root.style.cursor = \"default\";\n\n const labels = () => texts;\n\n const refreshFormat = () => {\n const grouping = options.grouping ?? 0;\n const raw = inferPriceDecimals(store);\n fmt = createFormatters(\n options,\n grouping > 0 ? Math.max(decimalsOf(grouping), 0) : raw,\n inferSizeDecimals(store),\n );\n // the spread row keeps the raw tick precision (a 0.1 spread is not \"0\")\n const fine = numberFormat(\n options.locale,\n Math.max(fmt.priceDecimals, options.grouping ? raw : 0),\n );\n finePrice = options.formatPrice\n ? fmt.price\n : (v) => (Number.isFinite(v) ? fine.format(v) : \"–\");\n };\n\n const applyTexts = () => {\n texts = localeLabels(LABELS, options.locale, options.labels);\n root.setAttribute(\"aria-label\", options.ariaLabel ?? texts.name);\n };\n\n const applyOptions = () => {\n applyTexts();\n colors = sideColors(host.theme, options);\n refreshFormat();\n // grouping changes the rows: no flash for the new buckets\n flashes = new Map();\n drawn = false;\n host.invalidate();\n };\n\n /** Levels of a side with their cumulative values */\n const sideRows = (side: OrderBookSide, limit: number): Row[] => {\n const { price, size, count } = store.levels(side, {\n step: options.grouping ?? 0,\n limit,\n });\n const out: Row[] = [];\n let sum = 0;\n let notional = 0;\n for (let i = 0; i < count; i++) {\n const p = price[i]!;\n const s = size[i]!;\n sum += s;\n notional += s * p;\n out.push({\n side,\n index: i,\n price: p,\n size: s,\n sum,\n notional,\n average: notional / sum,\n y: 0,\n });\n }\n return out;\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 l = labels();\n const mode = options.mode ?? \"both\";\n const compact = width < 260;\n const fontSize = options.fontSize ?? (compact ? 11 : 12);\n const rh = (rowHeight = Math.max(\n 12,\n options.rowHeight ?? (compact ? 18 : 20),\n ));\n const headerH = options.header === false ? 0 : rh + 2;\n const spreadH = options.spreadRow === false ? 0 : Math.round(rh * 1.7);\n const imbalanceH = options.imbalance === false ? 0 : 24;\n const sides = mode === \"both\" ? 2 : 1;\n const avail = Math.max(0, height - headerH - spreadH - imbalanceH);\n const perSide = Math.max(0, options.rows ?? Math.floor(avail / rh / sides));\n const pad = compact ? 6 : 10;\n\n ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n ctx.clearRect(0, 0, width, height);\n\n const asks = mode === \"bids\" ? [] : sideRows(\"ask\", perSide);\n const bids = mode === \"asks\" ? [] : sideRows(\"bid\", perSide);\n\n // vertical layout\n let y = headerH;\n const asksTop = y;\n if (mode !== \"bids\") {\n for (const row of asks) row.y = asksTop + (perSide - 1 - row.index) * rh;\n y += perSide * rh;\n }\n const spreadY = mode === \"bids\" ? headerH : y;\n if (mode !== \"bids\") y += spreadH;\n else y = headerH + spreadH;\n const bidsTop = y;\n for (const row of bids) row.y = bidsTop + row.index * rh;\n rows = [...asks, ...bids];\n const spreadTop = mode === \"asks\" ? asksTop + perSide * rh : spreadY;\n\n // columns\n const cols = (options.columns ?? COLUMNS).filter(\n (c, i, all) => all.indexOf(c) === i,\n );\n const shownCols = compact && cols.length > 2 ? cols.slice(0, 2) : cols;\n const n = shownCols.length;\n const inner = width - pad * 2;\n const colX = shownCols.map((_, j) =>\n j === 0\n ? pad\n : pad + inner * (j === n - 1 ? 1 : 0.24 + (0.76 * j) / (n - 1)),\n );\n\n // depth bar scale\n const barsMode = options.depthBars ?? \"cumulative\";\n let barMax = 0;\n for (const row of rows) {\n barMax = Math.max(barMax, barsMode === \"level\" ? row.size : row.sum);\n }\n\n // flashes: compare with the sizes of the previous frame\n const flash = options.flash !== false;\n const duration = Math.max(1, options.flashDuration ?? 450);\n const nextFlashes = new Map<string, Flash>();\n let animating = false;\n const inside = (row: Row) => {\n const range = shownRange[row.side];\n return drawn && row.price > range[0] && row.price < range[1];\n };\n for (const row of rows) {\n const key = `${row.side}:${row.price}`;\n const previous = flashes.get(key);\n let entry: Flash;\n // a level scrolling into view is not new: only levels appearing\n // between the rows already shown flash\n if (!previous)\n entry = {\n size: row.size,\n at: inside(row) ? now : -Infinity,\n grew: true,\n };\n else if (previous.size !== row.size)\n entry = { size: row.size, at: now, grew: row.size > previous.size };\n else entry = previous;\n nextFlashes.set(key, entry);\n }\n flashes = nextFlashes;\n drawn = true;\n for (const side of [\"bid\", \"ask\"] as const) {\n const list = side === \"bid\" ? bids : asks;\n const prices = list.map((r) => r.price);\n shownRange[side] = prices.length\n ? [Math.min(...prices), Math.max(...prices)]\n : [NaN, NaN];\n }\n\n // hover: rows from the spread to the hovered one\n hovered = null;\n if (hoverAt) {\n const [hx, hy] = hoverAt;\n if (hx >= 0 && hx <= width)\n hovered = rows.find((r) => hy >= r.y && hy < r.y + rh) ?? null;\n } else if (keyRow) {\n const list = keyRow.side === \"ask\" ? asks : bids;\n hovered = list[Math.min(keyRow.index, list.length - 1)] ?? null;\n }\n\n const threshold = options.largeOrderThreshold ?? Infinity;\n const text = toCss(theme.text);\n const muted = toCss(theme.textMuted);\n\n // header\n if (headerH) {\n ctx.font = fontOf(theme, options, 400, fontSize - 1);\n ctx.fillStyle = muted;\n ctx.textBaseline = \"middle\";\n shownCols.forEach((c, j) => {\n ctx.textAlign = j === 0 ? \"left\" : \"right\";\n ctx.fillText(l[c], colX[j]!, rh / 2 + 1);\n });\n }\n\n // rows\n for (const row of rows) {\n const color = row.side === \"bid\" ? colors.up : colors.down;\n const key = `${row.side}:${row.price}`;\n const large = row.size >= threshold;\n // hover band (cumulative selection)\n if (hovered && hovered.side === row.side && row.index <= hovered.index) {\n ctx.fillStyle = toCss(theme.text, row === hovered ? 0.09 : 0.045);\n ctx.fillRect(0, row.y, width, rh);\n }\n // depth bar\n if (barsMode !== \"none\" && barMax > 0) {\n const value = barsMode === \"level\" ? row.size : row.sum;\n const w = (value / barMax) * width;\n ctx.fillStyle = toCss(color, 0.14);\n ctx.fillRect(width - w, row.y + 1, w, rh - 2);\n }\n if (large) {\n ctx.fillStyle = toCss(color, 0.16);\n ctx.fillRect(0, row.y + 1, width, rh - 2);\n ctx.fillStyle = toCss(color);\n ctx.fillRect(0, row.y + 2, 3, rh - 4);\n }\n // flash: behind the size that changed (a whole-row flash makes a\n // ladder at 200 updates/s flicker)\n const f = flashes.get(key);\n let flashAlpha = 0;\n if (flash && f && Number.isFinite(f.at)) {\n const age = (now - f.at) / duration;\n if (age < 1) {\n flashAlpha = (1 - age) * (1 - age);\n animating = true;\n }\n }\n // texts\n ctx.textBaseline = \"middle\";\n const ty = row.y + rh / 2 + 0.5;\n shownCols.forEach((c, j) => {\n ctx.textAlign = j === 0 ? \"left\" : \"right\";\n if (c === \"price\") {\n ctx.font = fontOf(theme, options, 500, fontSize);\n ctx.fillStyle = toCss(color);\n ctx.fillText(\n fmt.price(row.price),\n colX[j]! + (large && j === 0 ? 4 : 0),\n ty,\n );\n } else if (c === \"size\") {\n ctx.font = fontOf(theme, options, large ? 700 : 400, fontSize);\n const label = fmt.size(row.size);\n if (flashAlpha > 0 && f) {\n const w = ctx.measureText(label).width + 10;\n const x = j === 0 ? colX[j]! - 5 : colX[j]! - w + 5;\n ctx.fillStyle = toCss(\n f.grew ? color : theme.textMuted,\n (f.grew ? 0.45 : 0.3) * flashAlpha,\n );\n roundRect(ctx, x, row.y + 2, w, rh - 4, 3);\n ctx.fill();\n }\n ctx.fillStyle = text;\n ctx.fillText(label, colX[j]!, ty);\n } else {\n ctx.font = fontOf(theme, options, 400, fontSize);\n ctx.fillStyle = muted;\n ctx.fillText(\n options.total === \"quote\"\n ? fmt.notional(row.notional)\n : fmt.total(row.sum),\n colX[j]!,\n ty,\n );\n }\n });\n }\n if (hovered) {\n // edge of the selection\n ctx.strokeStyle = toCss(theme.textMuted, 0.7);\n ctx.setLineDash([3, 3]);\n ctx.beginPath();\n const edge =\n hovered.side === \"bid\" ? hovered.y + rh - 0.5 : hovered.y + 0.5;\n ctx.moveTo(0, edge);\n ctx.lineTo(width, edge);\n ctx.stroke();\n ctx.setLineDash([]);\n }\n\n // spread row\n if (spreadH) {\n const mid = store.mid();\n const shown = lastPrice ?? mid;\n if (Number.isFinite(shown) && shown !== previousLast) {\n if (Number.isFinite(previousLast))\n lastDirection =\n shown > previousLast\n ? 1\n : shown < previousLast\n ? -1\n : lastDirection;\n previousLast = shown;\n }\n const sy = spreadTop;\n ctx.fillStyle = toCss(theme.text, 0.035);\n ctx.fillRect(0, sy, width, spreadH);\n ctx.strokeStyle = toCss(theme.grid);\n ctx.beginPath();\n ctx.moveTo(0, Math.round(sy) + 0.5);\n ctx.lineTo(width, Math.round(sy) + 0.5);\n ctx.moveTo(0, Math.round(sy + spreadH) - 0.5);\n ctx.lineTo(width, Math.round(sy + spreadH) - 0.5);\n ctx.stroke();\n const dirColor =\n lastDirection > 0\n ? colors.up\n : lastDirection < 0\n ? colors.down\n : theme.text;\n const cy = sy + spreadH / 2 + 0.5;\n ctx.textBaseline = \"middle\";\n ctx.textAlign = \"left\";\n ctx.font = fontOf(theme, options, 700, fontSize + (compact ? 2 : 4));\n ctx.fillStyle = toCss(dirColor);\n const priceText = finePrice(shown);\n ctx.fillText(priceText, pad, cy);\n let x = pad + ctx.measureText(priceText).width + 6;\n if (lastDirection !== 0) {\n // arrow of the last move\n const s = compact ? 4 : 5;\n ctx.beginPath();\n if (lastDirection > 0) {\n ctx.moveTo(x, cy + s * 0.6);\n ctx.lineTo(x + s, cy - s * 0.7);\n ctx.lineTo(x + s * 2, cy + s * 0.6);\n } else {\n ctx.moveTo(x, cy - s * 0.6);\n ctx.lineTo(x + s, cy + s * 0.7);\n ctx.lineTo(x + s * 2, cy - s * 0.6);\n }\n ctx.closePath();\n ctx.fill();\n x += s * 2 + 6;\n }\n const spread = store.spread();\n if (Number.isFinite(spread)) {\n ctx.textAlign = \"right\";\n ctx.font = fontOf(theme, options, 400, fontSize - 1);\n const bps = (spread / mid) * 1e4;\n const right = `${finePrice(spread)} · ${fmt.fixed(bps, bps < 10 ? 2 : 1)} ${l.basisPoints}`;\n ctx.fillStyle = text;\n ctx.fillText(right, width - pad, cy);\n if (!compact) {\n const rw = ctx.measureText(right).width;\n ctx.fillStyle = muted;\n const label = `${l.spread}`;\n if (width - pad - rw - 8 - ctx.measureText(label).width > x)\n ctx.fillText(label, width - pad - rw - 8, cy);\n }\n }\n }\n\n // imbalance bar\n if (imbalanceH) {\n let bidSum = 0;\n let askSum = 0;\n for (const r of bids) bidSum += r.size;\n for (const r of asks) askSum += r.size;\n const all = bidSum + askSum;\n const share = all > 0 ? bidSum / all : 0.5;\n const by = height - imbalanceH + 6;\n const bh = imbalanceH - 10;\n const bw = width - pad * 2;\n const split = pad + bw * share;\n ctx.save();\n roundRect(ctx, pad, by, bw, bh, 3);\n ctx.clip();\n ctx.fillStyle = toCss(colors.up, 0.22);\n ctx.fillRect(pad, by, split - pad, bh);\n ctx.fillStyle = toCss(colors.down, 0.22);\n ctx.fillRect(split, by, pad + bw - split, bh);\n ctx.restore();\n ctx.fillStyle = toCss(theme.background);\n ctx.fillRect(split - 1, by, 2, bh);\n ctx.font = fontOf(theme, options, 600, fontSize - 1);\n ctx.textBaseline = \"middle\";\n ctx.textAlign = \"left\";\n ctx.fillStyle = toCss(colors.up);\n const mid = by + bh / 2 + 0.5;\n ctx.fillText(\n `${l.buyShare} ${fmt.percent(share, 1, false)}`,\n pad + 6,\n mid,\n );\n ctx.textAlign = \"right\";\n ctx.fillStyle = toCss(colors.down);\n ctx.fillText(\n `${fmt.percent(1 - share, 1, false)} ${l.sellShare}`,\n pad + bw - 6,\n mid,\n );\n }\n\n // tooltip and hover event\n if (hovered && options.tooltip !== false) {\n const color = hovered.side === \"bid\" ? colors.up : colors.down;\n tooltipHtml(\n doc,\n host.tooltip,\n { text: fmt.price(hovered.price), color: toCss(color) },\n [\n [l.average, finePrice(hovered.average)],\n [l.sum, fmt.total(hovered.sum)],\n [l.notional, fmt.notional(hovered.notional)],\n ],\n );\n host.tooltip.style.display = \"block\";\n const ax = hoverAt ? hoverAt[0] : width * 0.4;\n host.placeTooltip(\n host.tooltip,\n ax,\n hovered.y + rh / 2,\n ax > width / 2 ? \"left\" : \"right\",\n );\n } else {\n host.tooltip.style.display = \"none\";\n }\n const key = hovered\n ? `${hovered.side}|${hovered.index}|${hovered.price}|${hovered.size}|${hovered.sum}`\n : \"\";\n if (key !== hoverKey) {\n hoverKey = key;\n emitter.emit(\"hover\", hovered ? toEvent(hovered) : null);\n }\n\n const bb = store.bestBid();\n const ba = store.bestAsk();\n host.describe(\n `${options.ariaLabel ?? l.name}. ${l.bid} ${finePrice(bb)}, ${l.ask} ${finePrice(ba)}, ${l.spread} ${finePrice(ba - bb)}.`,\n );\n return animating;\n }\n\n const toEvent = (row: Row): OrderBookLevelEvent => ({\n side: row.side,\n index: row.index,\n price: row.price,\n size: row.size,\n sum: row.sum,\n notional: row.notional,\n average: row.average,\n });\n\n // ---------------------------------------------------------- interaction\n\n const onPointerMove = (event: PointerEvent) => {\n hoverAt = localPoint(root, event);\n keyRow = null;\n host.invalidate();\n };\n const onPointerLeave = () => {\n hoverAt = null;\n host.invalidate();\n };\n const onClick = (event: MouseEvent) => {\n const [x, y] = localPoint(root, event);\n const row = rows.find((r) => y >= r.y && y < r.y + rowHeight);\n if (row && x >= 0) emitter.emit(\"levelClick\", toEvent(row));\n };\n const onKeyDown = (event: KeyboardEvent) => {\n const order: { side: OrderBookSide; index: number }[] = [];\n const asks = rows.filter((r) => r.side === \"ask\");\n const bids = rows.filter((r) => r.side === \"bid\");\n for (let i = asks.length - 1; i >= 0; i--)\n order.push({ side: \"ask\", index: i });\n for (let i = 0; i < bids.length; i++) order.push({ side: \"bid\", index: i });\n if (!order.length) return;\n const current = keyRow\n ? order.findIndex(\n (o) => o.side === keyRow!.side && o.index === keyRow!.index,\n )\n : -1;\n switch (event.key) {\n case \"ArrowDown\":\n case \"ArrowUp\": {\n const down = event.key === \"ArrowDown\";\n // first press: the best level on that side of the spread\n const next =\n current >= 0\n ? clamp(current + (down ? 1 : -1), 0, order.length - 1)\n : down\n ? Math.min(asks.length, order.length - 1)\n : Math.max(0, asks.length - 1);\n keyRow = order[next] ?? null;\n hoverAt = null;\n host.invalidate();\n break;\n }\n case \"Enter\":\n case \" \":\n if (hovered) emitter.emit(\"levelClick\", toEvent(hovered));\n break;\n case \"Escape\":\n keyRow = null;\n host.invalidate();\n break;\n default:\n return;\n }\n event.preventDefault();\n };\n const onBlur = () => {\n if (keyRow) {\n keyRow = null;\n host.invalidate();\n }\n };\n root.addEventListener(\"pointermove\", onPointerMove);\n root.addEventListener(\"pointerleave\", onPointerLeave);\n root.addEventListener(\"click\", onClick);\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: OrderBookInstance = {\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 flashes = new Map();\n drawn = false;\n host.invalidate();\n },\n setLastPrice(price) {\n lastPrice = price !== null && Number.isFinite(price) ? price : null;\n host.invalidate();\n },\n setOptions(next) {\n const regroup =\n (next.grouping ?? 0) !== (options.grouping ?? 0) ||\n next.mode !== options.mode;\n options = next;\n if (regroup) applyOptions();\n else {\n applyTexts();\n colors = sideColors(host.theme, options);\n refreshFormat();\n host.invalidate();\n }\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(\"pointerleave\", onPointerLeave);\n root.removeEventListener(\"click\", onClick);\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,6 @@
1
+ import { OrderBookInstance, OrderBookOptions } from './types.cjs';
2
+ /**
3
+ * Creates an order book ladder in `container`: asks, spread row and bids
4
+ * with depth bars, grouping, flashes on changes and a hover summary.
5
+ */
6
+ export declare const createOrderBook: (container: HTMLElement, initial?: OrderBookOptions) => OrderBookInstance;
@@ -0,0 +1,6 @@
1
+ import { OrderBookInstance, OrderBookOptions } from './types.js';
2
+ /**
3
+ * Creates an order book ladder in `container`: asks, spread row and bids
4
+ * with depth bars, grouping, flashes on changes and a hover summary.
5
+ */
6
+ export declare const createOrderBook: (container: HTMLElement, initial?: OrderBookOptions) => OrderBookInstance;
@@ -0,0 +1,341 @@
1
+ import { toCss as e } from "../color.js";
2
+ import { localeLabels as t } from "../locale.js";
3
+ import { applyDeltas as n, createOrderBookStore as r, decimalsOf as i, inferPriceDecimals as a, inferSizeDecimals as o } from "./book.js";
4
+ import { clamp as s, createFormatters as c, fontOf as l, numberFormat as u, roundRect as d, sideColors as f } from "./format.js";
5
+ import { createEmitter as p, createHost as m, localPoint as h, tooltipHtml as g } from "./host.js";
6
+ //#region src/engine/orderbook/ladder.ts
7
+ var _ = {
8
+ en: {
9
+ price: "Price",
10
+ size: "Size",
11
+ total: "Total",
12
+ spread: "Spread",
13
+ average: "Avg. price",
14
+ sum: "Sum",
15
+ notional: "Notional",
16
+ buyShare: "B",
17
+ sellShare: "S",
18
+ bid: "Bid",
19
+ ask: "Ask",
20
+ basisPoints: "bp",
21
+ name: "Order book"
22
+ },
23
+ zh: {
24
+ price: "价格",
25
+ size: "数量",
26
+ total: "累计",
27
+ spread: "价差",
28
+ average: "均价",
29
+ sum: "累计数量",
30
+ notional: "累计金额",
31
+ buyShare: "买",
32
+ sellShare: "卖",
33
+ bid: "买一",
34
+ ask: "卖一",
35
+ basisPoints: "基点",
36
+ name: "订单簿"
37
+ },
38
+ ja: {
39
+ price: "価格",
40
+ size: "数量",
41
+ total: "累計",
42
+ spread: "スプレッド",
43
+ average: "平均価格",
44
+ sum: "累計数量",
45
+ notional: "累計金額",
46
+ buyShare: "買",
47
+ sellShare: "売",
48
+ bid: "最良買気配",
49
+ ask: "最良売気配",
50
+ basisPoints: "bp",
51
+ name: "板情報"
52
+ },
53
+ fr: {
54
+ price: "Prix",
55
+ size: "Quantité",
56
+ total: "Cumul",
57
+ spread: "Écart",
58
+ average: "Prix moyen",
59
+ sum: "Somme",
60
+ notional: "Montant",
61
+ buyShare: "A",
62
+ sellShare: "V",
63
+ bid: "Meilleur achat",
64
+ ask: "Meilleure vente",
65
+ basisPoints: "pb",
66
+ name: "Carnet d’ordres"
67
+ }
68
+ }, v = [
69
+ "price",
70
+ "size",
71
+ "total"
72
+ ], y = (y, ee = {}) => {
73
+ let b = ee, x = r(), S = p(), C = c(b, 2, 4), w = C.price, T = t(_, b.locale, b.labels), E = !1, D = {
74
+ up: [
75
+ 0,
76
+ 0,
77
+ 0,
78
+ 1
79
+ ],
80
+ down: [
81
+ 0,
82
+ 0,
83
+ 0,
84
+ 1
85
+ ]
86
+ }, O = null, k = NaN, A = 0, j = /* @__PURE__ */ new Map(), te = {
87
+ bid: [NaN, NaN],
88
+ ask: [NaN, NaN]
89
+ }, M = !1, N = [], P = null, F = null, I = "", L = null, ne = 20, R = m(y, {
90
+ className: "minerva-order-book",
91
+ draw: oe,
92
+ onTheme: () => {
93
+ D = f(R.theme, b);
94
+ }
95
+ }), { root: z, doc: re } = R;
96
+ z.tabIndex = 0, z.setAttribute("role", "figure"), z.style.cursor = "default";
97
+ let ie = () => T, B = () => {
98
+ let e = b.grouping ?? 0, t = a(x);
99
+ C = c(b, e > 0 ? Math.max(i(e), 0) : t, o(x));
100
+ let n = u(b.locale, Math.max(C.priceDecimals, b.grouping ? t : 0));
101
+ w = b.formatPrice ? C.price : (e) => Number.isFinite(e) ? n.format(e) : "–";
102
+ }, V = () => {
103
+ T = t(_, b.locale, b.labels), z.setAttribute("aria-label", b.ariaLabel ?? T.name);
104
+ }, H = () => {
105
+ V(), D = f(R.theme, b), B(), j = /* @__PURE__ */ new Map(), M = !1, R.invalidate();
106
+ }, ae = (e, t) => {
107
+ let { price: n, size: r, count: i } = x.levels(e, {
108
+ step: b.grouping ?? 0,
109
+ limit: t
110
+ }), a = [], o = 0, s = 0;
111
+ for (let t = 0; t < i; t++) {
112
+ let i = n[t], c = r[t];
113
+ o += c, s += c * i, a.push({
114
+ side: e,
115
+ index: t,
116
+ price: i,
117
+ size: c,
118
+ sum: o,
119
+ notional: s,
120
+ average: s / o,
121
+ y: 0
122
+ });
123
+ }
124
+ return a;
125
+ };
126
+ function oe(t) {
127
+ let n = R.ctx;
128
+ if (!n) return !1;
129
+ let { width: r, height: i, dpr: a, theme: o } = R, s = ie(), c = b.mode ?? "both", u = r < 260, f = b.fontSize ?? (u ? 11 : 12), p = ne = Math.max(12, b.rowHeight ?? (u ? 18 : 20)), m = b.header === !1 ? 0 : p + 2, h = b.spreadRow === !1 ? 0 : Math.round(p * 1.7), _ = b.imbalance === !1 ? 0 : 24, y = c === "both" ? 2 : 1, ee = Math.max(0, i - m - h - _), T = Math.max(0, b.rows ?? Math.floor(ee / p / y)), E = u ? 6 : 10;
130
+ n.setTransform(a, 0, 0, a, 0, 0), n.clearRect(0, 0, r, i);
131
+ let z = c === "bids" ? [] : ae("ask", T), B = c === "asks" ? [] : ae("bid", T), V = m, H = V;
132
+ if (c !== "bids") {
133
+ for (let e of z) e.y = H + (T - 1 - e.index) * p;
134
+ V += T * p;
135
+ }
136
+ let oe = c === "bids" ? m : V;
137
+ c === "bids" ? V = m + h : V += h;
138
+ let W = V;
139
+ for (let e of B) e.y = W + e.index * p;
140
+ N = [...z, ...B];
141
+ let G = c === "asks" ? H + T * p : oe, K = (b.columns ?? v).filter((e, t, n) => n.indexOf(e) === t), q = u && K.length > 2 ? K.slice(0, 2) : K, J = q.length, Y = r - E * 2, X = q.map((e, t) => t === 0 ? E : E + Y * (t === J - 1 ? 1 : .24 + .76 * t / (J - 1))), Z = b.depthBars ?? "cumulative", Q = 0;
142
+ for (let e of N) Q = Math.max(Q, Z === "level" ? e.size : e.sum);
143
+ let se = b.flash !== !1, ce = Math.max(1, b.flashDuration ?? 450), le = /* @__PURE__ */ new Map(), ue = !1, de = (e) => {
144
+ let t = te[e.side];
145
+ return M && e.price > t[0] && e.price < t[1];
146
+ };
147
+ for (let e of N) {
148
+ let n = `${e.side}:${e.price}`, r = j.get(n), i;
149
+ i = r ? r.size === e.size ? r : {
150
+ size: e.size,
151
+ at: t,
152
+ grew: e.size > r.size
153
+ } : {
154
+ size: e.size,
155
+ at: de(e) ? t : -Infinity,
156
+ grew: !0
157
+ }, le.set(n, i);
158
+ }
159
+ j = le, M = !0;
160
+ for (let e of ["bid", "ask"]) {
161
+ let t = (e === "bid" ? B : z).map((e) => e.price);
162
+ te[e] = t.length ? [Math.min(...t), Math.max(...t)] : [NaN, NaN];
163
+ }
164
+ if (L = null, P) {
165
+ let [e, t] = P;
166
+ e >= 0 && e <= r && (L = N.find((e) => t >= e.y && t < e.y + p) ?? null);
167
+ } else if (F) {
168
+ let e = F.side === "ask" ? z : B;
169
+ L = e[Math.min(F.index, e.length - 1)] ?? null;
170
+ }
171
+ let fe = b.largeOrderThreshold ?? Infinity, pe = e(o.text), $ = e(o.textMuted);
172
+ m && (n.font = l(o, b, 400, f - 1), n.fillStyle = $, n.textBaseline = "middle", q.forEach((e, t) => {
173
+ n.textAlign = t === 0 ? "left" : "right", n.fillText(s[e], X[t], p / 2 + 1);
174
+ }));
175
+ for (let i of N) {
176
+ let a = i.side === "bid" ? D.up : D.down, s = `${i.side}:${i.price}`, c = i.size >= fe;
177
+ if (L && L.side === i.side && i.index <= L.index && (n.fillStyle = e(o.text, i === L ? .09 : .045), n.fillRect(0, i.y, r, p)), Z !== "none" && Q > 0) {
178
+ let t = (Z === "level" ? i.size : i.sum) / Q * r;
179
+ n.fillStyle = e(a, .14), n.fillRect(r - t, i.y + 1, t, p - 2);
180
+ }
181
+ c && (n.fillStyle = e(a, .16), n.fillRect(0, i.y + 1, r, p - 2), n.fillStyle = e(a), n.fillRect(0, i.y + 2, 3, p - 4));
182
+ let u = j.get(s), m = 0;
183
+ if (se && u && Number.isFinite(u.at)) {
184
+ let e = (t - u.at) / ce;
185
+ e < 1 && (m = (1 - e) * (1 - e), ue = !0);
186
+ }
187
+ n.textBaseline = "middle";
188
+ let h = i.y + p / 2 + .5;
189
+ q.forEach((t, r) => {
190
+ if (n.textAlign = r === 0 ? "left" : "right", t === "price") n.font = l(o, b, 500, f), n.fillStyle = e(a), n.fillText(C.price(i.price), X[r] + (c && r === 0 ? 4 : 0), h);
191
+ else if (t === "size") {
192
+ n.font = l(o, b, c ? 700 : 400, f);
193
+ let t = C.size(i.size);
194
+ if (m > 0 && u) {
195
+ let s = n.measureText(t).width + 10, c = r === 0 ? X[r] - 5 : X[r] - s + 5;
196
+ n.fillStyle = e(u.grew ? a : o.textMuted, (u.grew ? .45 : .3) * m), d(n, c, i.y + 2, s, p - 4, 3), n.fill();
197
+ }
198
+ n.fillStyle = pe, n.fillText(t, X[r], h);
199
+ } else n.font = l(o, b, 400, f), n.fillStyle = $, n.fillText(b.total === "quote" ? C.notional(i.notional) : C.total(i.sum), X[r], h);
200
+ });
201
+ }
202
+ if (L) {
203
+ n.strokeStyle = e(o.textMuted, .7), n.setLineDash([3, 3]), n.beginPath();
204
+ let t = L.side === "bid" ? L.y + p - .5 : L.y + .5;
205
+ n.moveTo(0, t), n.lineTo(r, t), n.stroke(), n.setLineDash([]);
206
+ }
207
+ if (h) {
208
+ let t = x.mid(), i = O ?? t;
209
+ Number.isFinite(i) && i !== k && (Number.isFinite(k) && (A = i > k ? 1 : i < k ? -1 : A), k = i);
210
+ let a = G;
211
+ n.fillStyle = e(o.text, .035), n.fillRect(0, a, r, h), n.strokeStyle = e(o.grid), n.beginPath(), n.moveTo(0, Math.round(a) + .5), n.lineTo(r, Math.round(a) + .5), n.moveTo(0, Math.round(a + h) - .5), n.lineTo(r, Math.round(a + h) - .5), n.stroke();
212
+ let c = A > 0 ? D.up : A < 0 ? D.down : o.text, d = a + h / 2 + .5;
213
+ n.textBaseline = "middle", n.textAlign = "left", n.font = l(o, b, 700, f + (u ? 2 : 4)), n.fillStyle = e(c);
214
+ let p = w(i);
215
+ n.fillText(p, E, d);
216
+ let m = E + n.measureText(p).width + 6;
217
+ if (A !== 0) {
218
+ let e = u ? 4 : 5;
219
+ n.beginPath(), A > 0 ? (n.moveTo(m, d + e * .6), n.lineTo(m + e, d - e * .7), n.lineTo(m + e * 2, d + e * .6)) : (n.moveTo(m, d - e * .6), n.lineTo(m + e, d + e * .7), n.lineTo(m + e * 2, d - e * .6)), n.closePath(), n.fill(), m += e * 2 + 6;
220
+ }
221
+ let g = x.spread();
222
+ if (Number.isFinite(g)) {
223
+ n.textAlign = "right", n.font = l(o, b, 400, f - 1);
224
+ let e = g / t * 1e4, i = `${w(g)} · ${C.fixed(e, e < 10 ? 2 : 1)} ${s.basisPoints}`;
225
+ if (n.fillStyle = pe, n.fillText(i, r - E, d), !u) {
226
+ let e = n.measureText(i).width;
227
+ n.fillStyle = $;
228
+ let t = `${s.spread}`;
229
+ r - E - e - 8 - n.measureText(t).width > m && n.fillText(t, r - E - e - 8, d);
230
+ }
231
+ }
232
+ }
233
+ if (_) {
234
+ let t = 0, a = 0;
235
+ for (let e of B) t += e.size;
236
+ for (let e of z) a += e.size;
237
+ let c = t + a, u = c > 0 ? t / c : .5, p = i - _ + 6, m = _ - 10, h = r - E * 2, g = E + h * u;
238
+ n.save(), d(n, E, p, h, m, 3), n.clip(), n.fillStyle = e(D.up, .22), n.fillRect(E, p, g - E, m), n.fillStyle = e(D.down, .22), n.fillRect(g, p, E + h - g, m), n.restore(), n.fillStyle = e(o.background), n.fillRect(g - 1, p, 2, m), n.font = l(o, b, 600, f - 1), n.textBaseline = "middle", n.textAlign = "left", n.fillStyle = e(D.up);
239
+ let v = p + m / 2 + .5;
240
+ n.fillText(`${s.buyShare} ${C.percent(u, 1, !1)}`, E + 6, v), n.textAlign = "right", n.fillStyle = e(D.down), n.fillText(`${C.percent(1 - u, 1, !1)} ${s.sellShare}`, E + h - 6, v);
241
+ }
242
+ if (L && b.tooltip !== !1) {
243
+ let t = L.side === "bid" ? D.up : D.down;
244
+ g(re, R.tooltip, {
245
+ text: C.price(L.price),
246
+ color: e(t)
247
+ }, [
248
+ [s.average, w(L.average)],
249
+ [s.sum, C.total(L.sum)],
250
+ [s.notional, C.notional(L.notional)]
251
+ ]), R.tooltip.style.display = "block";
252
+ let n = P ? P[0] : r * .4;
253
+ R.placeTooltip(R.tooltip, n, L.y + p / 2, n > r / 2 ? "left" : "right");
254
+ } else R.tooltip.style.display = "none";
255
+ let me = L ? `${L.side}|${L.index}|${L.price}|${L.size}|${L.sum}` : "";
256
+ me !== I && (I = me, S.emit("hover", L ? U(L) : null));
257
+ let he = x.bestBid(), ge = x.bestAsk();
258
+ return R.describe(`${b.ariaLabel ?? s.name}. ${s.bid} ${w(he)}, ${s.ask} ${w(ge)}, ${s.spread} ${w(ge - he)}.`), ue;
259
+ }
260
+ let U = (e) => ({
261
+ side: e.side,
262
+ index: e.index,
263
+ price: e.price,
264
+ size: e.size,
265
+ sum: e.sum,
266
+ notional: e.notional,
267
+ average: e.average
268
+ }), W = (e) => {
269
+ P = h(z, e), F = null, R.invalidate();
270
+ }, G = () => {
271
+ P = null, R.invalidate();
272
+ }, K = (e) => {
273
+ let [t, n] = h(z, e), r = N.find((e) => n >= e.y && n < e.y + ne);
274
+ r && t >= 0 && S.emit("levelClick", U(r));
275
+ }, q = (e) => {
276
+ let t = [], n = N.filter((e) => e.side === "ask"), r = N.filter((e) => e.side === "bid");
277
+ for (let e = n.length - 1; e >= 0; e--) t.push({
278
+ side: "ask",
279
+ index: e
280
+ });
281
+ for (let e = 0; e < r.length; e++) t.push({
282
+ side: "bid",
283
+ index: e
284
+ });
285
+ if (!t.length) return;
286
+ let i = F ? t.findIndex((e) => e.side === F.side && e.index === F.index) : -1;
287
+ switch (e.key) {
288
+ case "ArrowDown":
289
+ case "ArrowUp": {
290
+ let r = e.key === "ArrowDown";
291
+ F = t[i >= 0 ? s(i + (r ? 1 : -1), 0, t.length - 1) : r ? Math.min(n.length, t.length - 1) : Math.max(0, n.length - 1)] ?? null, P = null, R.invalidate();
292
+ break;
293
+ }
294
+ case "Enter":
295
+ case " ":
296
+ L && S.emit("levelClick", U(L));
297
+ break;
298
+ case "Escape":
299
+ F = null, R.invalidate();
300
+ break;
301
+ default: return;
302
+ }
303
+ e.preventDefault();
304
+ }, J = () => {
305
+ F && (F = null, R.invalidate());
306
+ };
307
+ z.addEventListener("pointermove", W), z.addEventListener("pointerleave", G), z.addEventListener("click", K), z.addEventListener("keydown", q), z.addEventListener("blur", J);
308
+ let Y = () => {
309
+ !E && x.count("bid") + x.count("ask") > 0 && (E = !0, B()), R.invalidate();
310
+ };
311
+ return H(), {
312
+ setBook(e) {
313
+ x.setSnapshot(e), E = !1, Y();
314
+ },
315
+ applyDeltas(e) {
316
+ n(x, e) && Y();
317
+ },
318
+ clear() {
319
+ x.clear(), E = !1, j = /* @__PURE__ */ new Map(), M = !1, R.invalidate();
320
+ },
321
+ setLastPrice(e) {
322
+ O = e !== null && Number.isFinite(e) ? e : null, R.invalidate();
323
+ },
324
+ setOptions(e) {
325
+ let t = (e.grouping ?? 0) !== (b.grouping ?? 0) || e.mode !== b.mode;
326
+ b = e, t ? H() : (V(), D = f(R.theme, b), B(), R.invalidate());
327
+ },
328
+ getStore: () => x,
329
+ on: (e, t) => S.on(e, t),
330
+ resize() {
331
+ R.invalidate();
332
+ },
333
+ destroy() {
334
+ z.removeEventListener("pointermove", W), z.removeEventListener("pointerleave", G), z.removeEventListener("click", K), z.removeEventListener("keydown", q), z.removeEventListener("blur", J), S.clear(), R.destroy();
335
+ }
336
+ };
337
+ };
338
+ //#endregion
339
+ export { y as createOrderBook };
340
+
341
+ //# sourceMappingURL=ladder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ladder.js","names":["LABELS","COLUMNS","createOrderBook","options","initial","store","createOrderBookStore","emitter","createEmitter","fmt","createFormatters","finePrice","texts","localeLabels","inferred","colors","lastPrice","previousLast","lastDirection","flashes","shownRange","drawn","rows","hoverAt","keyRow","hoverKey","hovered","rowHeight","host","createHost","container","sideColors","root","labels","refreshFormat","grouping","raw","inferPriceDecimals","decimalsOf","inferSizeDecimals","fine","numberFormat","v","applyTexts","applyOptions","sideRows","side","out","sum","notional","i","count","p","price","s","size","draw","ctx","l","mode","compact","width","fontSize","rh","headerH","spreadH","imbalanceH","sides","avail","height","perSide","pad","dpr","asks","bids","y","asksTop","row","spreadY","bidsTop","spreadTop","cols","all","c","shownCols","n","inner","colX","j","barsMode","barMax","flash","duration","nextFlashes","animating","inside","range","key","previous","entry","now","prices","r","hx","hy","list","threshold","text","toCss","theme","muted","fontOf","color","large","w","f","flashAlpha","age","ty","label","x","roundRect","edge","mid","shown","sy","dirColor","cy","priceText","spread","bps","right","rw","bidSum","askSum","share","by","bh","bw","split","tooltipHtml","doc","ax","toEvent","bb","ba","onPointerMove","localPoint","event","onPointerLeave","onClick","onKeyDown","order","current","o","down","clamp","onBlur","changed","snapshot","applyDeltas","deltas","regroup","next","handler"],"sources":["../../../../../charts/src/engine/orderbook/ladder.ts"],"sourcesContent":["// createOrderBook: the price ladder (asks above the spread row, bids below)\n// drawn with Canvas2D. Any number of deltas between two frames cost one\n// draw of the visible rows; changed levels flash, walls stand out, hovering\n// sums the levels up to the pointer.\n\nimport { toCss, type Rgba } from \"../color\";\nimport {\n applyDeltas,\n createOrderBookStore,\n decimalsOf,\n inferPriceDecimals,\n inferSizeDecimals,\n} from \"./book\";\nimport {\n clamp,\n createFormatters,\n fontOf,\n numberFormat,\n roundRect,\n sideColors,\n type Formatters,\n} from \"./format\";\nimport { localeLabels, type LabelDictionary } from \"../locale\";\nimport { createEmitter, createHost, localPoint, tooltipHtml } from \"./host\";\nimport type {\n OrderBookEventMap,\n OrderBookInstance,\n OrderBookLabels,\n OrderBookLevelEvent,\n OrderBookOptions,\n OrderBookSide,\n} from \"./types\";\n\nconst LABELS: LabelDictionary<OrderBookLabels> = {\n en: {\n price: \"Price\",\n size: \"Size\",\n total: \"Total\",\n spread: \"Spread\",\n average: \"Avg. price\",\n sum: \"Sum\",\n notional: \"Notional\",\n buyShare: \"B\",\n sellShare: \"S\",\n bid: \"Bid\",\n ask: \"Ask\",\n basisPoints: \"bp\",\n name: \"Order book\",\n },\n zh: {\n price: \"价格\",\n size: \"数量\",\n total: \"累计\",\n spread: \"价差\",\n average: \"均价\",\n sum: \"累计数量\",\n notional: \"累计金额\",\n buyShare: \"买\",\n sellShare: \"卖\",\n bid: \"买一\",\n ask: \"卖一\",\n basisPoints: \"基点\",\n name: \"订单簿\",\n },\n ja: {\n price: \"価格\",\n size: \"数量\",\n total: \"累計\",\n spread: \"スプレッド\",\n average: \"平均価格\",\n sum: \"累計数量\",\n notional: \"累計金額\",\n buyShare: \"買\",\n sellShare: \"売\",\n bid: \"最良買気配\",\n ask: \"最良売気配\",\n basisPoints: \"bp\",\n name: \"板情報\",\n },\n fr: {\n price: \"Prix\",\n size: \"Quantité\",\n total: \"Cumul\",\n spread: \"Écart\",\n average: \"Prix moyen\",\n sum: \"Somme\",\n notional: \"Montant\",\n buyShare: \"A\",\n sellShare: \"V\",\n bid: \"Meilleur achat\",\n ask: \"Meilleure vente\",\n basisPoints: \"pb\",\n name: \"Carnet d’ordres\",\n },\n};\n\nconst COLUMNS = [\"price\", \"size\", \"total\"] as const;\n\ninterface Row extends OrderBookLevelEvent {\n /** Top of the row, CSS pixels */\n y: number;\n}\n\ninterface Flash {\n size: number;\n at: number;\n grew: boolean;\n}\n\n/**\n * Creates an order book ladder in `container`: asks, spread row and bids\n * with depth bars, grouping, flashes on changes and a hover summary.\n */\nexport const createOrderBook = (\n container: HTMLElement,\n initial: OrderBookOptions = {},\n): OrderBookInstance => {\n let options = initial;\n const store = createOrderBookStore();\n const emitter = createEmitter<OrderBookEventMap>();\n let fmt: Formatters = createFormatters(options, 2, 4);\n let finePrice = fmt.price;\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 let lastPrice: number | null = null;\n let previousLast = NaN;\n let lastDirection = 0;\n let flashes = new Map<string, Flash>();\n /** Price range of the rows of the previous frame, per side */\n const shownRange: Record<OrderBookSide, [number, number]> = {\n bid: [NaN, NaN],\n ask: [NaN, NaN],\n };\n let drawn = false;\n let rows: Row[] = [];\n let hoverAt: [number, number] | null = null;\n /** Keyboard selection: side and index from the spread */\n let keyRow: { side: OrderBookSide; index: number } | null = null;\n let hoverKey = \"\";\n let hovered: Row | null = null;\n let rowHeight = 20;\n\n const host = createHost(container, {\n className: \"minerva-order-book\",\n draw,\n onTheme: () => {\n colors = sideColors(host.theme, options);\n },\n });\n const { root, doc } = host;\n root.tabIndex = 0;\n root.setAttribute(\"role\", \"figure\");\n root.style.cursor = \"default\";\n\n const labels = () => texts;\n\n const refreshFormat = () => {\n const grouping = options.grouping ?? 0;\n const raw = inferPriceDecimals(store);\n fmt = createFormatters(\n options,\n grouping > 0 ? Math.max(decimalsOf(grouping), 0) : raw,\n inferSizeDecimals(store),\n );\n // the spread row keeps the raw tick precision (a 0.1 spread is not \"0\")\n const fine = numberFormat(\n options.locale,\n Math.max(fmt.priceDecimals, options.grouping ? raw : 0),\n );\n finePrice = options.formatPrice\n ? fmt.price\n : (v) => (Number.isFinite(v) ? fine.format(v) : \"–\");\n };\n\n const applyTexts = () => {\n texts = localeLabels(LABELS, options.locale, options.labels);\n root.setAttribute(\"aria-label\", options.ariaLabel ?? texts.name);\n };\n\n const applyOptions = () => {\n applyTexts();\n colors = sideColors(host.theme, options);\n refreshFormat();\n // grouping changes the rows: no flash for the new buckets\n flashes = new Map();\n drawn = false;\n host.invalidate();\n };\n\n /** Levels of a side with their cumulative values */\n const sideRows = (side: OrderBookSide, limit: number): Row[] => {\n const { price, size, count } = store.levels(side, {\n step: options.grouping ?? 0,\n limit,\n });\n const out: Row[] = [];\n let sum = 0;\n let notional = 0;\n for (let i = 0; i < count; i++) {\n const p = price[i]!;\n const s = size[i]!;\n sum += s;\n notional += s * p;\n out.push({\n side,\n index: i,\n price: p,\n size: s,\n sum,\n notional,\n average: notional / sum,\n y: 0,\n });\n }\n return out;\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 l = labels();\n const mode = options.mode ?? \"both\";\n const compact = width < 260;\n const fontSize = options.fontSize ?? (compact ? 11 : 12);\n const rh = (rowHeight = Math.max(\n 12,\n options.rowHeight ?? (compact ? 18 : 20),\n ));\n const headerH = options.header === false ? 0 : rh + 2;\n const spreadH = options.spreadRow === false ? 0 : Math.round(rh * 1.7);\n const imbalanceH = options.imbalance === false ? 0 : 24;\n const sides = mode === \"both\" ? 2 : 1;\n const avail = Math.max(0, height - headerH - spreadH - imbalanceH);\n const perSide = Math.max(0, options.rows ?? Math.floor(avail / rh / sides));\n const pad = compact ? 6 : 10;\n\n ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n ctx.clearRect(0, 0, width, height);\n\n const asks = mode === \"bids\" ? [] : sideRows(\"ask\", perSide);\n const bids = mode === \"asks\" ? [] : sideRows(\"bid\", perSide);\n\n // vertical layout\n let y = headerH;\n const asksTop = y;\n if (mode !== \"bids\") {\n for (const row of asks) row.y = asksTop + (perSide - 1 - row.index) * rh;\n y += perSide * rh;\n }\n const spreadY = mode === \"bids\" ? headerH : y;\n if (mode !== \"bids\") y += spreadH;\n else y = headerH + spreadH;\n const bidsTop = y;\n for (const row of bids) row.y = bidsTop + row.index * rh;\n rows = [...asks, ...bids];\n const spreadTop = mode === \"asks\" ? asksTop + perSide * rh : spreadY;\n\n // columns\n const cols = (options.columns ?? COLUMNS).filter(\n (c, i, all) => all.indexOf(c) === i,\n );\n const shownCols = compact && cols.length > 2 ? cols.slice(0, 2) : cols;\n const n = shownCols.length;\n const inner = width - pad * 2;\n const colX = shownCols.map((_, j) =>\n j === 0\n ? pad\n : pad + inner * (j === n - 1 ? 1 : 0.24 + (0.76 * j) / (n - 1)),\n );\n\n // depth bar scale\n const barsMode = options.depthBars ?? \"cumulative\";\n let barMax = 0;\n for (const row of rows) {\n barMax = Math.max(barMax, barsMode === \"level\" ? row.size : row.sum);\n }\n\n // flashes: compare with the sizes of the previous frame\n const flash = options.flash !== false;\n const duration = Math.max(1, options.flashDuration ?? 450);\n const nextFlashes = new Map<string, Flash>();\n let animating = false;\n const inside = (row: Row) => {\n const range = shownRange[row.side];\n return drawn && row.price > range[0] && row.price < range[1];\n };\n for (const row of rows) {\n const key = `${row.side}:${row.price}`;\n const previous = flashes.get(key);\n let entry: Flash;\n // a level scrolling into view is not new: only levels appearing\n // between the rows already shown flash\n if (!previous)\n entry = {\n size: row.size,\n at: inside(row) ? now : -Infinity,\n grew: true,\n };\n else if (previous.size !== row.size)\n entry = { size: row.size, at: now, grew: row.size > previous.size };\n else entry = previous;\n nextFlashes.set(key, entry);\n }\n flashes = nextFlashes;\n drawn = true;\n for (const side of [\"bid\", \"ask\"] as const) {\n const list = side === \"bid\" ? bids : asks;\n const prices = list.map((r) => r.price);\n shownRange[side] = prices.length\n ? [Math.min(...prices), Math.max(...prices)]\n : [NaN, NaN];\n }\n\n // hover: rows from the spread to the hovered one\n hovered = null;\n if (hoverAt) {\n const [hx, hy] = hoverAt;\n if (hx >= 0 && hx <= width)\n hovered = rows.find((r) => hy >= r.y && hy < r.y + rh) ?? null;\n } else if (keyRow) {\n const list = keyRow.side === \"ask\" ? asks : bids;\n hovered = list[Math.min(keyRow.index, list.length - 1)] ?? null;\n }\n\n const threshold = options.largeOrderThreshold ?? Infinity;\n const text = toCss(theme.text);\n const muted = toCss(theme.textMuted);\n\n // header\n if (headerH) {\n ctx.font = fontOf(theme, options, 400, fontSize - 1);\n ctx.fillStyle = muted;\n ctx.textBaseline = \"middle\";\n shownCols.forEach((c, j) => {\n ctx.textAlign = j === 0 ? \"left\" : \"right\";\n ctx.fillText(l[c], colX[j]!, rh / 2 + 1);\n });\n }\n\n // rows\n for (const row of rows) {\n const color = row.side === \"bid\" ? colors.up : colors.down;\n const key = `${row.side}:${row.price}`;\n const large = row.size >= threshold;\n // hover band (cumulative selection)\n if (hovered && hovered.side === row.side && row.index <= hovered.index) {\n ctx.fillStyle = toCss(theme.text, row === hovered ? 0.09 : 0.045);\n ctx.fillRect(0, row.y, width, rh);\n }\n // depth bar\n if (barsMode !== \"none\" && barMax > 0) {\n const value = barsMode === \"level\" ? row.size : row.sum;\n const w = (value / barMax) * width;\n ctx.fillStyle = toCss(color, 0.14);\n ctx.fillRect(width - w, row.y + 1, w, rh - 2);\n }\n if (large) {\n ctx.fillStyle = toCss(color, 0.16);\n ctx.fillRect(0, row.y + 1, width, rh - 2);\n ctx.fillStyle = toCss(color);\n ctx.fillRect(0, row.y + 2, 3, rh - 4);\n }\n // flash: behind the size that changed (a whole-row flash makes a\n // ladder at 200 updates/s flicker)\n const f = flashes.get(key);\n let flashAlpha = 0;\n if (flash && f && Number.isFinite(f.at)) {\n const age = (now - f.at) / duration;\n if (age < 1) {\n flashAlpha = (1 - age) * (1 - age);\n animating = true;\n }\n }\n // texts\n ctx.textBaseline = \"middle\";\n const ty = row.y + rh / 2 + 0.5;\n shownCols.forEach((c, j) => {\n ctx.textAlign = j === 0 ? \"left\" : \"right\";\n if (c === \"price\") {\n ctx.font = fontOf(theme, options, 500, fontSize);\n ctx.fillStyle = toCss(color);\n ctx.fillText(\n fmt.price(row.price),\n colX[j]! + (large && j === 0 ? 4 : 0),\n ty,\n );\n } else if (c === \"size\") {\n ctx.font = fontOf(theme, options, large ? 700 : 400, fontSize);\n const label = fmt.size(row.size);\n if (flashAlpha > 0 && f) {\n const w = ctx.measureText(label).width + 10;\n const x = j === 0 ? colX[j]! - 5 : colX[j]! - w + 5;\n ctx.fillStyle = toCss(\n f.grew ? color : theme.textMuted,\n (f.grew ? 0.45 : 0.3) * flashAlpha,\n );\n roundRect(ctx, x, row.y + 2, w, rh - 4, 3);\n ctx.fill();\n }\n ctx.fillStyle = text;\n ctx.fillText(label, colX[j]!, ty);\n } else {\n ctx.font = fontOf(theme, options, 400, fontSize);\n ctx.fillStyle = muted;\n ctx.fillText(\n options.total === \"quote\"\n ? fmt.notional(row.notional)\n : fmt.total(row.sum),\n colX[j]!,\n ty,\n );\n }\n });\n }\n if (hovered) {\n // edge of the selection\n ctx.strokeStyle = toCss(theme.textMuted, 0.7);\n ctx.setLineDash([3, 3]);\n ctx.beginPath();\n const edge =\n hovered.side === \"bid\" ? hovered.y + rh - 0.5 : hovered.y + 0.5;\n ctx.moveTo(0, edge);\n ctx.lineTo(width, edge);\n ctx.stroke();\n ctx.setLineDash([]);\n }\n\n // spread row\n if (spreadH) {\n const mid = store.mid();\n const shown = lastPrice ?? mid;\n if (Number.isFinite(shown) && shown !== previousLast) {\n if (Number.isFinite(previousLast))\n lastDirection =\n shown > previousLast\n ? 1\n : shown < previousLast\n ? -1\n : lastDirection;\n previousLast = shown;\n }\n const sy = spreadTop;\n ctx.fillStyle = toCss(theme.text, 0.035);\n ctx.fillRect(0, sy, width, spreadH);\n ctx.strokeStyle = toCss(theme.grid);\n ctx.beginPath();\n ctx.moveTo(0, Math.round(sy) + 0.5);\n ctx.lineTo(width, Math.round(sy) + 0.5);\n ctx.moveTo(0, Math.round(sy + spreadH) - 0.5);\n ctx.lineTo(width, Math.round(sy + spreadH) - 0.5);\n ctx.stroke();\n const dirColor =\n lastDirection > 0\n ? colors.up\n : lastDirection < 0\n ? colors.down\n : theme.text;\n const cy = sy + spreadH / 2 + 0.5;\n ctx.textBaseline = \"middle\";\n ctx.textAlign = \"left\";\n ctx.font = fontOf(theme, options, 700, fontSize + (compact ? 2 : 4));\n ctx.fillStyle = toCss(dirColor);\n const priceText = finePrice(shown);\n ctx.fillText(priceText, pad, cy);\n let x = pad + ctx.measureText(priceText).width + 6;\n if (lastDirection !== 0) {\n // arrow of the last move\n const s = compact ? 4 : 5;\n ctx.beginPath();\n if (lastDirection > 0) {\n ctx.moveTo(x, cy + s * 0.6);\n ctx.lineTo(x + s, cy - s * 0.7);\n ctx.lineTo(x + s * 2, cy + s * 0.6);\n } else {\n ctx.moveTo(x, cy - s * 0.6);\n ctx.lineTo(x + s, cy + s * 0.7);\n ctx.lineTo(x + s * 2, cy - s * 0.6);\n }\n ctx.closePath();\n ctx.fill();\n x += s * 2 + 6;\n }\n const spread = store.spread();\n if (Number.isFinite(spread)) {\n ctx.textAlign = \"right\";\n ctx.font = fontOf(theme, options, 400, fontSize - 1);\n const bps = (spread / mid) * 1e4;\n const right = `${finePrice(spread)} · ${fmt.fixed(bps, bps < 10 ? 2 : 1)} ${l.basisPoints}`;\n ctx.fillStyle = text;\n ctx.fillText(right, width - pad, cy);\n if (!compact) {\n const rw = ctx.measureText(right).width;\n ctx.fillStyle = muted;\n const label = `${l.spread}`;\n if (width - pad - rw - 8 - ctx.measureText(label).width > x)\n ctx.fillText(label, width - pad - rw - 8, cy);\n }\n }\n }\n\n // imbalance bar\n if (imbalanceH) {\n let bidSum = 0;\n let askSum = 0;\n for (const r of bids) bidSum += r.size;\n for (const r of asks) askSum += r.size;\n const all = bidSum + askSum;\n const share = all > 0 ? bidSum / all : 0.5;\n const by = height - imbalanceH + 6;\n const bh = imbalanceH - 10;\n const bw = width - pad * 2;\n const split = pad + bw * share;\n ctx.save();\n roundRect(ctx, pad, by, bw, bh, 3);\n ctx.clip();\n ctx.fillStyle = toCss(colors.up, 0.22);\n ctx.fillRect(pad, by, split - pad, bh);\n ctx.fillStyle = toCss(colors.down, 0.22);\n ctx.fillRect(split, by, pad + bw - split, bh);\n ctx.restore();\n ctx.fillStyle = toCss(theme.background);\n ctx.fillRect(split - 1, by, 2, bh);\n ctx.font = fontOf(theme, options, 600, fontSize - 1);\n ctx.textBaseline = \"middle\";\n ctx.textAlign = \"left\";\n ctx.fillStyle = toCss(colors.up);\n const mid = by + bh / 2 + 0.5;\n ctx.fillText(\n `${l.buyShare} ${fmt.percent(share, 1, false)}`,\n pad + 6,\n mid,\n );\n ctx.textAlign = \"right\";\n ctx.fillStyle = toCss(colors.down);\n ctx.fillText(\n `${fmt.percent(1 - share, 1, false)} ${l.sellShare}`,\n pad + bw - 6,\n mid,\n );\n }\n\n // tooltip and hover event\n if (hovered && options.tooltip !== false) {\n const color = hovered.side === \"bid\" ? colors.up : colors.down;\n tooltipHtml(\n doc,\n host.tooltip,\n { text: fmt.price(hovered.price), color: toCss(color) },\n [\n [l.average, finePrice(hovered.average)],\n [l.sum, fmt.total(hovered.sum)],\n [l.notional, fmt.notional(hovered.notional)],\n ],\n );\n host.tooltip.style.display = \"block\";\n const ax = hoverAt ? hoverAt[0] : width * 0.4;\n host.placeTooltip(\n host.tooltip,\n ax,\n hovered.y + rh / 2,\n ax > width / 2 ? \"left\" : \"right\",\n );\n } else {\n host.tooltip.style.display = \"none\";\n }\n const key = hovered\n ? `${hovered.side}|${hovered.index}|${hovered.price}|${hovered.size}|${hovered.sum}`\n : \"\";\n if (key !== hoverKey) {\n hoverKey = key;\n emitter.emit(\"hover\", hovered ? toEvent(hovered) : null);\n }\n\n const bb = store.bestBid();\n const ba = store.bestAsk();\n host.describe(\n `${options.ariaLabel ?? l.name}. ${l.bid} ${finePrice(bb)}, ${l.ask} ${finePrice(ba)}, ${l.spread} ${finePrice(ba - bb)}.`,\n );\n return animating;\n }\n\n const toEvent = (row: Row): OrderBookLevelEvent => ({\n side: row.side,\n index: row.index,\n price: row.price,\n size: row.size,\n sum: row.sum,\n notional: row.notional,\n average: row.average,\n });\n\n // ---------------------------------------------------------- interaction\n\n const onPointerMove = (event: PointerEvent) => {\n hoverAt = localPoint(root, event);\n keyRow = null;\n host.invalidate();\n };\n const onPointerLeave = () => {\n hoverAt = null;\n host.invalidate();\n };\n const onClick = (event: MouseEvent) => {\n const [x, y] = localPoint(root, event);\n const row = rows.find((r) => y >= r.y && y < r.y + rowHeight);\n if (row && x >= 0) emitter.emit(\"levelClick\", toEvent(row));\n };\n const onKeyDown = (event: KeyboardEvent) => {\n const order: { side: OrderBookSide; index: number }[] = [];\n const asks = rows.filter((r) => r.side === \"ask\");\n const bids = rows.filter((r) => r.side === \"bid\");\n for (let i = asks.length - 1; i >= 0; i--)\n order.push({ side: \"ask\", index: i });\n for (let i = 0; i < bids.length; i++) order.push({ side: \"bid\", index: i });\n if (!order.length) return;\n const current = keyRow\n ? order.findIndex(\n (o) => o.side === keyRow!.side && o.index === keyRow!.index,\n )\n : -1;\n switch (event.key) {\n case \"ArrowDown\":\n case \"ArrowUp\": {\n const down = event.key === \"ArrowDown\";\n // first press: the best level on that side of the spread\n const next =\n current >= 0\n ? clamp(current + (down ? 1 : -1), 0, order.length - 1)\n : down\n ? Math.min(asks.length, order.length - 1)\n : Math.max(0, asks.length - 1);\n keyRow = order[next] ?? null;\n hoverAt = null;\n host.invalidate();\n break;\n }\n case \"Enter\":\n case \" \":\n if (hovered) emitter.emit(\"levelClick\", toEvent(hovered));\n break;\n case \"Escape\":\n keyRow = null;\n host.invalidate();\n break;\n default:\n return;\n }\n event.preventDefault();\n };\n const onBlur = () => {\n if (keyRow) {\n keyRow = null;\n host.invalidate();\n }\n };\n root.addEventListener(\"pointermove\", onPointerMove);\n root.addEventListener(\"pointerleave\", onPointerLeave);\n root.addEventListener(\"click\", onClick);\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: OrderBookInstance = {\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 flashes = new Map();\n drawn = false;\n host.invalidate();\n },\n setLastPrice(price) {\n lastPrice = price !== null && Number.isFinite(price) ? price : null;\n host.invalidate();\n },\n setOptions(next) {\n const regroup =\n (next.grouping ?? 0) !== (options.grouping ?? 0) ||\n next.mode !== options.mode;\n options = next;\n if (regroup) applyOptions();\n else {\n applyTexts();\n colors = sideColors(host.theme, options);\n refreshFormat();\n host.invalidate();\n }\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(\"pointerleave\", onPointerLeave);\n root.removeEventListener(\"click\", onClick);\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("../color.cjs"),t=require("../locale.cjs"),n=require("./book.cjs"),r=require("./format.cjs"),i=require("./host.cjs");var a={en:{time:`Time`,price:`Price`,size:`Size`,side:`Side`,buy:`Buy`,sell:`Sell`,paused:`Paused`,newTrades:`{count} new`,name:`Time and sales`},zh:{time:`时间`,price:`价格`,size:`数量`,side:`方向`,buy:`买入`,sell:`卖出`,paused:`已暂停`,newTrades:`{count} 条新成交`,name:`逐笔成交`},ja:{time:`時刻`,price:`価格`,size:`数量`,side:`売買`,buy:`買い`,sell:`売り`,paused:`一時停止中`,newTrades:`新着 {count} 件`,name:`歩み値`},fr:{time:`Heure`,price:`Prix`,size:`Quantité`,side:`Sens`,buy:`Achat`,sell:`Vente`,paused:`En pause`,newTrades:`{count} nouvelles`,name:`Historique des transactions`}},o=[`time`,`price`,`size`],s=1,c=2,l=3,u=450,d=e=>{let t=Math.min(e,1024);return{time:new Float64Array(t),price:new Float64Array(t),size:new Float64Array(t),side:new Uint8Array(t),tick:new Int8Array(t),count:new Uint32Array(t),arrival:new Float64Array(t),start:0,length:0,max:e}},f=(e,t)=>(e.start+t)%e.time.length,p=e=>{let t=e.time.length;if(e.length<t){let n=(e.start+e.length)%t;return e.length++,n}if(t<e.max){let n=Math.min(e.max,t*2);for(let r of[`time`,`price`,`size`,`side`,`tick`,`count`,`arrival`]){let i=e[r],a=new i.constructor(n);a.set(i.subarray(e.start)),a.set(i.subarray(0,e.start),t-e.start),e[r]=a}return e.start=0,e.length++,t}let n=e.start;return e.start=(e.start+1)%t,n},m=(m,h={})=>{let g=h,_=i.createEmitter(),v=Math.max(1,Math.round(g.capacity??2e5)),y=d(v),b=d(v),x=null,S=0,C=0,w=NaN,T=0,E=r.createFormatters(g,2,4),D=0,O=0,k={up:[0,0,0,1],down:[0,0,0,1]},A=0,j=0,M=!1,N=!1,P=!1,ee=NaN,F=null,I=null,te=``,L=null,R=null,z={top:0,rh:20,visible:0,track:[0,0,0,0],badge:[0,0,0,0]},B=i.createHost(m,{className:`minerva-time-and-sales`,draw:fe,onTheme:()=>{k=r.sideColors(B.theme,g)}}),{root:V}=B;V.tabIndex=0,V.setAttribute(`role`,`log`),V.setAttribute(`aria-live`,`off`);let ne=t.localeLabels(a,g.locale,g.labels),re=()=>ne,ie=()=>{ne=t.localeLabels(a,g.locale,g.labels),V.setAttribute(`aria-label`,g.ariaLabel??ne.name)},H=()=>Math.max(0,g.minSize??0),U=()=>x!==null&&x.size>=H(),W=()=>b.length+ +!!U(),G=()=>{E=r.createFormatters(g,D,O)},K=e=>{if(y.length>64)return;let t=Math.min(8,n.decimalsOf(e.price)),r=Math.min(6,n.decimalsOf(e.size));(t>D||r>O)&&(D=Math.max(D,t),O=Math.max(O,r),G())},ae=e=>{let t=p(b);b.time[t]=e.time,b.price[t]=e.price,b.size[t]=e.size,b.side[t]=e.side,b.tick[t]=e.tick,b.count[t]=e.count,b.arrival[t]=e.arrival,C++},oe=(e,t,n,r,i,a)=>{if(g.aggregate){if(x&&x.side===r&&x.time===e){x.size+=n,x.price=t,x.tick=i,x.count++,x.arrival=a;return}x&&x.size>=H()&&ae(x),x={time:e,price:t,size:n,side:r,tick:i,count:1,arrival:a};return}n>=H()&&ae({time:e,price:t,size:n,side:r,tick:i,count:1,arrival:a})},se=e=>{let t=C+ +!!U(),n=t-e;if(S=t,n<=0)return;A+=n,P?j+=n:A=g.animate===!1?j:Math.min(A,j+l);let r=W();j=Math.min(j,Math.max(0,r-1)),A=Math.min(A,Math.max(0,r-1))},ce=(e,t)=>{let{time:n,price:r,size:i}=e;if(!Number.isFinite(r)||!Number.isFinite(i)||i<=0)return;K(e);let a=e.side===`sell`?c:s;Number.isFinite(w)&&r!==w&&(T=r>w?1:-1),w=r;let o=p(y);y.time[o]=n,y.price[o]=r,y.size[o]=i,y.side[o]=a,y.tick[o]=T,oe(n,r,i,a,T,t)},le=()=>{b=d(v),x=null,C=0;for(let e=0;e<y.length;e++){let t=f(y,e);oe(y.time[t],y.price[t],y.size[t],y.side[t],y.tick[t],-1/0)}S=W(),A=j=0,M=!1,I=null},ue=e=>{if(e<0)return null;let t=U();if(t&&e===0)return x;let n=b.length-1-(e-+!!t);if(n<0)return null;let r=f(b,n);return{time:b.time[r],price:b.price[r],size:b.size[r],side:b.side[r],tick:b.tick[r],count:b.count[r],arrival:b.arrival[r]}},de=(e,t)=>({trade:{time:e.time,price:e.price,size:e.size,side:e.side===c?`sell`:`buy`},count:e.count,index:t}),q=()=>{let e=N||M||I!==null;e!==P&&(P=e,P||(j=0,A=Math.min(A,Math.max(l,z.visible))),_.emit(`pause`,P))},J=(e,t=!0)=>{let n=Math.max(0,W()-z.visible);j=r.clamp(Math.round(e),0,n),t&&(M=j>0),q(),B.invalidate()};function fe(t){let n=B.ctx;if(!n)return!1;let{width:i,height:a,dpr:s,theme:l}=B,d=re(),f=i<240,p=g.fontSize??(f?11:12),m=Math.max(12,g.rowHeight??(f?18:20)),h=g.header===!1?0:m+2,v=h,y=Math.max(0,Math.ceil((a-v)/m)),b=W(),x=Number.isFinite(ee)?t-ee:16;ee=t;let C=!1;g.animate===!1||!Number.isFinite(A)?A=j:(A+=(j-A)*r.ease(x,70),Math.abs(A-j)<.01?A=j:C=!0),n.setTransform(s,0,0,s,0,0),n.clearRect(0,0,i,a);let w=e.toCss(l.text),T=e.toCss(l.textMuted),D=f?6:10,O=b>Math.floor((a-v)/m),ne=i-D-(O?6:0),ie=(g.columns??o).filter((e,t,n)=>n.indexOf(e)===t),H=f&&ie.length>3?ie.filter(e=>e!==`side`):ie,U={time:g.milliseconds===!1?1:1.25,price:1.1,size:1,side:.6},G=H.reduce((e,t)=>e+U[t],0),K=[],ae=D;for(let e of H)ae+=(ne-D)*U[e]/G,K.push(ae);let oe=e=>e===0?D:K[e-1],se=(e,t)=>t===0||e===`time`,ce=g.largeTradeThreshold??1/0,le=Math.max(0,Math.floor(A)),q=A-le,J=g.animate!==!1;L=null;let fe=-1;F&&F[1]>=v?fe=Math.floor((F[1]-v)/m+A):I!==null&&(fe=S-1-I),n.save(),n.beginPath(),n.rect(0,v,i,a-v),n.clip(),n.textBaseline=`middle`;for(let o=0;o<=y;o++){let s=le+o;if(s>=b)break;let h=ue(s);if(!h)break;let _=v+(o-q)*m;if(_>a)break;let y=h.side===c,x=y?k.down:k.up,S=h.size>=ce;if(s===fe&&(L=de(h,s),n.fillStyle=e.toCss(l.text,.08),n.fillRect(0,_,i,m)),S){let t=r.clamp(Math.log2(h.size/ce)/3,0,1);n.fillStyle=e.toCss(x,.12+.2*t),n.fillRect(0,_+1,i,m-2),n.fillStyle=e.toCss(x),n.fillRect(0,_+2,3,m-4)}if(J&&Number.isFinite(h.arrival)){let r=(t-h.arrival)/u;r<1&&r>=0&&(n.fillStyle=e.toCss(x,.18*(1-r)*(1-r)),n.fillRect(0,_,i,m),C=!0)}let D=_+m/2+.5,O=S?700:400;H.forEach((t,i)=>{let a=se(t,i);n.textAlign=a?`left`:`right`;let o=a?oe(i)+(i===0&&S?4:0):K[i];switch(t){case`time`:n.font=r.fontOf(l,g,400,p),n.fillStyle=T,n.fillText(g.formatTime?g.formatTime(h.time):r.formatClock(h.time,g.milliseconds!==!1),o,D);break;case`price`:{let t=h.tick>0?k.up:h.tick<0?k.down:null;n.font=r.fontOf(l,g,S?700:500,p),n.fillStyle=g.priceColor===`tick`?t?e.toCss(t):w:e.toCss(x),n.fillText(E.price(h.price),o,D);break}case`size`:{n.font=r.fontOf(l,g,O,p),n.fillStyle=S?e.toCss(x):w;let t=E.size(h.size);if(n.fillText(t,o,D),h.count>1&&!f){let e=n.measureText(t).width;n.font=r.fontOf(l,g,400,p-2),n.fillStyle=T,n.fillText(`×${h.count}`,o-e-5,D)}break}case`side`:n.font=r.fontOf(l,g,500,p),n.fillStyle=e.toCss(x),n.fillText(y?d.sell:d.buy,o,D)}})}n.restore(),h&&(n.font=r.fontOf(l,g,400,p-1),n.fillStyle=T,n.textBaseline=`middle`,H.forEach((e,t)=>{let r=se(e,t);n.textAlign=r?`left`:`right`,n.fillText(d[e],r?oe(t):K[t],m/2+1)}),n.fillStyle=e.toCss(l.grid),n.fillRect(0,h-1,i,1));let X=a-v-4,pe=[0,0,0,0];if(O&&X>20){let t=Math.max(1,(a-v)/m),o=Math.max(18,X*t/b),s=Math.max(1,b-t),c=v+2+(X-o)*r.clamp(A/s,0,1),u=R!==null||F!==null&&F[0]>i-12;n.fillStyle=e.toCss(l.textMuted,u?.5:.28),r.roundRect(n,i-6,c,4,o,2),n.fill(),pe=[i-12,v,12,X+4]}let Z=[0,0,0,0],Q=Math.round(j);if(P||Q>0){let t=[];if(N&&!M&&t.push(d.paused),Q>0&&t.push(d.newTrades.replace(`{count}`,Q>9999?`9999+`:String(Q))),t.length){let a=t.join(` · `);n.font=r.fontOf(l,g,500,Math.max(10,p-1));let o=n.measureText(a).width+20,s=Math.min(22,m+2),c=(i-o)/2,u=v+6;n.fillStyle=e.toCss(l.primary,.92),r.roundRect(n,c,u,o,s,s/2),n.fill(),n.fillStyle=`#fff`,n.textAlign=`center`,n.textBaseline=`middle`,n.fillText(a,i/2,u+s/2+.5),Z=[c,u,o,s]}}z={top:v,rh:m,visible:Math.floor((a-v)/m),track:pe,badge:Z},V.style.cursor=Z[2]&&F&&Y(F,Z)?`pointer`:`default`;let me=L?`${S-1-L.index}|${L.trade.size}`:``;me!==te&&(te=me,_.emit(`hover`,L));let $=ue(0);return $&&B.describe(`${g.ariaLabel??d.name}. ${$.side===c?d.sell:d.buy} ${E.size($.size)} @ ${E.price($.price)}.`),C}let Y=(e,t)=>t[2]>0&&e[0]>=t[0]&&e[0]<=t[0]+t[2]&&e[1]>=t[1]&&e[1]<=t[1]+t[3],X=e=>{let[,t,,n]=z.track,i=W(),a=r.clamp((e-t)/Math.max(1,n),0,1);J(a*Math.max(0,i-z.visible))},pe=e=>{F=i.localPoint(V,e),R&&X(F[1]-R.offset),g.pauseOnHover!==!1&&!N&&(N=!0,q()),B.invalidate()},Z=()=>{F=null,N&&(N=!1,q()),B.invalidate()},Q=e=>{let t=i.localPoint(V,e);Y(t,z.track)&&!Y(t,z.badge)&&(R={offset:0},V.setPointerCapture?.(e.pointerId),X(t[1]),e.preventDefault())},me=e=>{R&&(R=null,V.releasePointerCapture?.(e.pointerId),B.invalidate())},$=e=>{let t=i.localPoint(V,e);if(Y(t,z.badge)){be.scrollToLatest();return}if(Y(t,z.track)||t[1]<z.top)return;let n=Math.floor((t[1]-z.top)/z.rh+A),r=ue(n);r&&n<W()&&_.emit(`tradeClick`,de(r,n))},he=e=>{let t=W(),n=Math.max(0,t-z.visible),r=e.deltaMode===1?e.deltaY:e.deltaMode===2?e.deltaY*z.visible:e.deltaY/z.rh;r<0&&j<=0||r>0&&j>=n||(e.preventDefault(),J(j+(Math.abs(r)<1?Math.sign(r):r)))},ge=e=>{let t=W();if(!t)return;let n=Math.max(1,z.visible-1),i=I===null?-1:S-1-I,a=e=>{let n=r.clamp(e,0,t-1);I=S-1-n,n<j?J(n):n>=j+z.visible?J(n-z.visible+1):q(),B.invalidate()};switch(e.key){case`ArrowDown`:a(i+1);break;case`ArrowUp`:a(Math.max(0,i-1));break;case`PageDown`:a(Math.max(0,i)+n);break;case`PageUp`:a(i-n);break;case`Home`:I=null,be.scrollToLatest();break;case`End`:a(t-1);break;case`Enter`:case` `:{let e=i>=0?ue(i):null;e&&_.emit(`tradeClick`,de(e,i));break}case`Escape`:I=null,be.scrollToLatest();break;default:return}e.preventDefault()},_e=()=>{I!==null&&(I=null,q(),B.invalidate())};V.addEventListener(`pointermove`,pe),V.addEventListener(`pointerleave`,Z),V.addEventListener(`pointerdown`,Q),V.addEventListener(`pointerup`,me),V.addEventListener(`click`,$),V.addEventListener(`wheel`,he,{passive:!1}),V.addEventListener(`keydown`,ge),V.addEventListener(`blur`,_e);let ve=()=>typeof performance<`u`?performance.now():Date.now(),ye=()=>{y=d(v),b=d(v),x=null,S=C=0,w=NaN,T=0,D=O=0,A=j=0,M=!1,I=null,q(),G()},be={addTrades(e){let t=Array.isArray(e)?e:[e];if(!t.length)return;let n=S,r=ve();for(let e of t)ce(e,r);se(n),B.invalidate()},setTrades(e){ye();for(let t of e)ce(t,-1/0);S=W(),B.invalidate()},clear(){ye(),B.invalidate()},setOptions(e){let t=g;g=e,ie(),k=r.sideColors(B.theme,g);let n=Math.max(1,Math.round(g.capacity??2e5));if(n!==v){let e=y;v=n,y=d(v);for(let t=Math.max(0,e.length-v);t<e.length;t++){let n=f(e,t),r=p(y);y.time[r]=e.time[n],y.price[r]=e.price[n],y.size[r]=e.size[n],y.side[r]=e.side[n],y.tick[r]=e.tick[n]}le()}else((t.minSize??0)!==(e.minSize??0)||!t.aggregate!=!e.aggregate)&&le();g.pauseOnHover===!1&&N&&(N=!1),q(),G(),B.invalidate()},scrollToLatest(){I=null,M=!1,j=0,q(),B.invalidate()},getCount:W,on:(e,t)=>_.on(e,t),resize(){B.invalidate()},destroy(){V.removeEventListener(`pointermove`,pe),V.removeEventListener(`pointerleave`,Z),V.removeEventListener(`pointerdown`,Q),V.removeEventListener(`pointerup`,me),V.removeEventListener(`click`,$),V.removeEventListener(`wheel`,he),V.removeEventListener(`keydown`,ge),V.removeEventListener(`blur`,_e),_.clear(),B.destroy()}};return ie(),k=r.sideColors(B.theme,g),G(),B.invalidate(),be};exports.createTimeAndSales=m;
2
+ //# sourceMappingURL=tape.cjs.map