minerva-design 1.3.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1166) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/README.md +21 -21
  3. package/custom-elements.json +13630 -4757
  4. package/dist/angular/fesm2022/minerva-angular.mjs +6872 -172
  5. package/dist/angular/fesm2022/minerva-angular.mjs.map +1 -1
  6. package/dist/angular/types/minerva-angular.d.ts +2240 -0
  7. package/dist/charts/canvas.d.cts +7 -2
  8. package/dist/charts/canvas.d.ts +7 -2
  9. package/dist/charts/core.cjs +1 -1
  10. package/dist/charts/core.d.cts +7 -4
  11. package/dist/charts/core.d.ts +7 -4
  12. package/dist/charts/core.js +19 -8
  13. package/dist/charts/engine/axis.cjs +1 -1
  14. package/dist/charts/engine/axis.cjs.map +1 -1
  15. package/dist/charts/engine/axis.js +6 -6
  16. package/dist/charts/engine/axis.js.map +1 -1
  17. package/dist/charts/engine/canvas.cjs +1 -1
  18. package/dist/charts/engine/canvas.cjs.map +1 -1
  19. package/dist/charts/engine/canvas.d.cts +11 -1
  20. package/dist/charts/engine/canvas.d.ts +11 -1
  21. package/dist/charts/engine/canvas.js +118 -68
  22. package/dist/charts/engine/canvas.js.map +1 -1
  23. package/dist/charts/engine/chart.cjs +1 -1
  24. package/dist/charts/engine/chart.cjs.map +1 -1
  25. package/dist/charts/engine/chart.d.cts +1 -1
  26. package/dist/charts/engine/chart.d.ts +1 -1
  27. package/dist/charts/engine/chart.js +307 -285
  28. package/dist/charts/engine/chart.js.map +1 -1
  29. package/dist/charts/engine/color.cjs +1 -1
  30. package/dist/charts/engine/color.cjs.map +1 -1
  31. package/dist/charts/engine/color.js +2 -2
  32. package/dist/charts/engine/color.js.map +1 -1
  33. package/dist/charts/engine/controller.cjs +1 -1
  34. package/dist/charts/engine/controller.cjs.map +1 -1
  35. package/dist/charts/engine/controller.d.cts +12 -3
  36. package/dist/charts/engine/controller.d.ts +12 -3
  37. package/dist/charts/engine/controller.js +359 -299
  38. package/dist/charts/engine/controller.js.map +1 -1
  39. package/dist/charts/engine/data.cjs +1 -1
  40. package/dist/charts/engine/data.cjs.map +1 -1
  41. package/dist/charts/engine/data.d.cts +6 -0
  42. package/dist/charts/engine/data.d.ts +6 -0
  43. package/dist/charts/engine/data.js +63 -49
  44. package/dist/charts/engine/data.js.map +1 -1
  45. package/dist/charts/engine/format.cjs +1 -1
  46. package/dist/charts/engine/format.cjs.map +1 -1
  47. package/dist/charts/engine/format.d.cts +21 -6
  48. package/dist/charts/engine/format.d.ts +21 -6
  49. package/dist/charts/engine/format.js +46 -21
  50. package/dist/charts/engine/format.js.map +1 -1
  51. package/dist/charts/engine/items.cjs +1 -1
  52. package/dist/charts/engine/items.cjs.map +1 -1
  53. package/dist/charts/engine/items.js +211 -54
  54. package/dist/charts/engine/items.js.map +1 -1
  55. package/dist/charts/engine/labels.cjs +2 -0
  56. package/dist/charts/engine/labels.cjs.map +1 -0
  57. package/dist/charts/engine/labels.d.cts +13 -0
  58. package/dist/charts/engine/labels.d.ts +13 -0
  59. package/dist/charts/engine/labels.js +74 -0
  60. package/dist/charts/engine/labels.js.map +1 -0
  61. package/dist/charts/engine/layout.cjs +1 -1
  62. package/dist/charts/engine/layout.cjs.map +1 -1
  63. package/dist/charts/engine/layout.d.cts +34 -2
  64. package/dist/charts/engine/layout.d.ts +34 -2
  65. package/dist/charts/engine/layout.js +53 -12
  66. package/dist/charts/engine/layout.js.map +1 -1
  67. package/dist/charts/engine/locale.cjs +2 -0
  68. package/dist/charts/engine/locale.cjs.map +1 -0
  69. package/dist/charts/engine/locale.d.cts +33 -0
  70. package/dist/charts/engine/locale.d.ts +33 -0
  71. package/dist/charts/engine/locale.js +68 -0
  72. package/dist/charts/engine/locale.js.map +1 -0
  73. package/dist/charts/engine/model.cjs +1 -1
  74. package/dist/charts/engine/model.cjs.map +1 -1
  75. package/dist/charts/engine/model.d.cts +39 -1
  76. package/dist/charts/engine/model.d.ts +39 -1
  77. package/dist/charts/engine/model.js +212 -105
  78. package/dist/charts/engine/model.js.map +1 -1
  79. package/dist/charts/engine/orderbook/book.cjs +2 -0
  80. package/dist/charts/engine/orderbook/book.cjs.map +1 -0
  81. package/dist/charts/engine/orderbook/book.d.cts +28 -0
  82. package/dist/charts/engine/orderbook/book.d.ts +28 -0
  83. package/dist/charts/engine/orderbook/book.js +134 -0
  84. package/dist/charts/engine/orderbook/book.js.map +1 -0
  85. package/dist/charts/engine/orderbook/depth.cjs +2 -0
  86. package/dist/charts/engine/orderbook/depth.cjs.map +1 -0
  87. package/dist/charts/engine/orderbook/depth.d.cts +7 -0
  88. package/dist/charts/engine/orderbook/depth.d.ts +7 -0
  89. package/dist/charts/engine/orderbook/depth.js +413 -0
  90. package/dist/charts/engine/orderbook/depth.js.map +1 -0
  91. package/dist/charts/engine/orderbook/format.cjs +2 -0
  92. package/dist/charts/engine/orderbook/format.cjs.map +1 -0
  93. package/dist/charts/engine/orderbook/format.d.cts +48 -0
  94. package/dist/charts/engine/orderbook/format.d.ts +48 -0
  95. package/dist/charts/engine/orderbook/format.js +65 -0
  96. package/dist/charts/engine/orderbook/format.js.map +1 -0
  97. package/dist/charts/engine/orderbook/heatmap.cjs +2 -0
  98. package/dist/charts/engine/orderbook/heatmap.cjs.map +1 -0
  99. package/dist/charts/engine/orderbook/heatmap.d.cts +9 -0
  100. package/dist/charts/engine/orderbook/heatmap.d.ts +9 -0
  101. package/dist/charts/engine/orderbook/heatmap.js +703 -0
  102. package/dist/charts/engine/orderbook/heatmap.js.map +1 -0
  103. package/dist/charts/engine/orderbook/host.cjs +2 -0
  104. package/dist/charts/engine/orderbook/host.cjs.map +1 -0
  105. package/dist/charts/engine/orderbook/host.d.cts +50 -0
  106. package/dist/charts/engine/orderbook/host.d.ts +50 -0
  107. package/dist/charts/engine/orderbook/host.js +161 -0
  108. package/dist/charts/engine/orderbook/host.js.map +1 -0
  109. package/dist/charts/engine/orderbook/index.cjs +1 -0
  110. package/dist/charts/engine/orderbook/index.d.cts +6 -0
  111. package/dist/charts/engine/orderbook/index.d.ts +6 -0
  112. package/dist/charts/engine/orderbook/index.js +6 -0
  113. package/dist/charts/engine/orderbook/ladder.cjs +2 -0
  114. package/dist/charts/engine/orderbook/ladder.cjs.map +1 -0
  115. package/dist/charts/engine/orderbook/ladder.d.cts +6 -0
  116. package/dist/charts/engine/orderbook/ladder.d.ts +6 -0
  117. package/dist/charts/engine/orderbook/ladder.js +341 -0
  118. package/dist/charts/engine/orderbook/ladder.js.map +1 -0
  119. package/dist/charts/engine/orderbook/tape.cjs +2 -0
  120. package/dist/charts/engine/orderbook/tape.cjs.map +1 -0
  121. package/dist/charts/engine/orderbook/tape.d.cts +6 -0
  122. package/dist/charts/engine/orderbook/tape.d.ts +6 -0
  123. package/dist/charts/engine/orderbook/tape.js +450 -0
  124. package/dist/charts/engine/orderbook/tape.js.map +1 -0
  125. package/dist/charts/engine/orderbook/types.d.cts +735 -0
  126. package/dist/charts/engine/orderbook/types.d.ts +735 -0
  127. package/dist/charts/engine/overlay.cjs +1 -1
  128. package/dist/charts/engine/overlay.cjs.map +1 -1
  129. package/dist/charts/engine/overlay.d.cts +18 -2
  130. package/dist/charts/engine/overlay.d.ts +18 -2
  131. package/dist/charts/engine/overlay.js +132 -96
  132. package/dist/charts/engine/overlay.js.map +1 -1
  133. package/dist/charts/engine/presets.cjs +2 -2
  134. package/dist/charts/engine/presets.cjs.map +1 -1
  135. package/dist/charts/engine/presets.d.cts +249 -1
  136. package/dist/charts/engine/presets.d.ts +249 -1
  137. package/dist/charts/engine/presets.js +367 -29
  138. package/dist/charts/engine/presets.js.map +1 -1
  139. package/dist/charts/engine/renderers/detect.cjs +1 -1
  140. package/dist/charts/engine/renderers/detect.cjs.map +1 -1
  141. package/dist/charts/engine/renderers/detect.js +18 -15
  142. package/dist/charts/engine/renderers/detect.js.map +1 -1
  143. package/dist/charts/engine/renderers/gl.cjs +2 -0
  144. package/dist/charts/engine/renderers/gl.cjs.map +1 -0
  145. package/dist/charts/engine/renderers/gl.d.cts +21 -0
  146. package/dist/charts/engine/renderers/gl.d.ts +21 -0
  147. package/dist/charts/engine/renderers/gl.js +56 -0
  148. package/dist/charts/engine/renderers/gl.js.map +1 -0
  149. package/dist/charts/engine/renderers/shaders.cjs +143 -1
  150. package/dist/charts/engine/renderers/shaders.cjs.map +1 -1
  151. package/dist/charts/engine/renderers/shaders.d.cts +16 -0
  152. package/dist/charts/engine/renderers/shaders.d.ts +16 -0
  153. package/dist/charts/engine/renderers/shaders.js +139 -1
  154. package/dist/charts/engine/renderers/shaders.js.map +1 -1
  155. package/dist/charts/engine/renderers/webgl.cjs +2 -0
  156. package/dist/charts/engine/renderers/webgl.cjs.map +1 -0
  157. package/dist/charts/engine/renderers/webgl.d.cts +4 -0
  158. package/dist/charts/engine/renderers/webgl.d.ts +4 -0
  159. package/dist/charts/engine/renderers/webgl.js +133 -0
  160. package/dist/charts/engine/renderers/webgl.js.map +1 -0
  161. package/dist/charts/engine/renderers/webgl2.cjs +1 -1
  162. package/dist/charts/engine/renderers/webgl2.cjs.map +1 -1
  163. package/dist/charts/engine/renderers/webgl2.d.cts +0 -1
  164. package/dist/charts/engine/renderers/webgl2.d.ts +0 -1
  165. package/dist/charts/engine/renderers/webgl2.js +59 -108
  166. package/dist/charts/engine/renderers/webgl2.js.map +1 -1
  167. package/dist/charts/engine/scale.cjs +1 -1
  168. package/dist/charts/engine/scale.cjs.map +1 -1
  169. package/dist/charts/engine/scale.js +1 -1
  170. package/dist/charts/engine/scale.js.map +1 -1
  171. package/dist/charts/engine/scene.cjs +1 -1
  172. package/dist/charts/engine/scene.cjs.map +1 -1
  173. package/dist/charts/engine/scene.d.cts +14 -4
  174. package/dist/charts/engine/scene.d.ts +14 -4
  175. package/dist/charts/engine/scene.js +292 -163
  176. package/dist/charts/engine/scene.js.map +1 -1
  177. package/dist/charts/engine/shapes/bullet.cjs +2 -0
  178. package/dist/charts/engine/shapes/bullet.cjs.map +1 -0
  179. package/dist/charts/engine/shapes/bullet.d.cts +6 -0
  180. package/dist/charts/engine/shapes/bullet.d.ts +6 -0
  181. package/dist/charts/engine/shapes/bullet.js +255 -0
  182. package/dist/charts/engine/shapes/bullet.js.map +1 -0
  183. package/dist/charts/engine/shapes/calendar.cjs +2 -0
  184. package/dist/charts/engine/shapes/calendar.cjs.map +1 -0
  185. package/dist/charts/engine/shapes/calendar.d.cts +38 -0
  186. package/dist/charts/engine/shapes/calendar.d.ts +38 -0
  187. package/dist/charts/engine/shapes/calendar.js +369 -0
  188. package/dist/charts/engine/shapes/calendar.js.map +1 -0
  189. package/dist/charts/engine/shapes/canvas.cjs +1 -1
  190. package/dist/charts/engine/shapes/canvas.cjs.map +1 -1
  191. package/dist/charts/engine/shapes/canvas.d.cts +7 -0
  192. package/dist/charts/engine/shapes/canvas.d.ts +7 -0
  193. package/dist/charts/engine/shapes/canvas.js +22 -13
  194. package/dist/charts/engine/shapes/canvas.js.map +1 -1
  195. package/dist/charts/engine/shapes/chart.cjs +1 -1
  196. package/dist/charts/engine/shapes/chart.cjs.map +1 -1
  197. package/dist/charts/engine/shapes/chart.d.cts +3 -2
  198. package/dist/charts/engine/shapes/chart.d.ts +3 -2
  199. package/dist/charts/engine/shapes/chart.js +45 -26
  200. package/dist/charts/engine/shapes/chart.js.map +1 -1
  201. package/dist/charts/engine/shapes/draw.cjs +1 -1
  202. package/dist/charts/engine/shapes/draw.cjs.map +1 -1
  203. package/dist/charts/engine/shapes/draw.d.cts +3 -1
  204. package/dist/charts/engine/shapes/draw.d.ts +3 -1
  205. package/dist/charts/engine/shapes/draw.js +31 -18
  206. package/dist/charts/engine/shapes/draw.js.map +1 -1
  207. package/dist/charts/engine/shapes/funnel.cjs +1 -1
  208. package/dist/charts/engine/shapes/funnel.cjs.map +1 -1
  209. package/dist/charts/engine/shapes/funnel.js +3 -3
  210. package/dist/charts/engine/shapes/funnel.js.map +1 -1
  211. package/dist/charts/engine/shapes/gauge.cjs +1 -1
  212. package/dist/charts/engine/shapes/gauge.cjs.map +1 -1
  213. package/dist/charts/engine/shapes/gauge.js +132 -95
  214. package/dist/charts/engine/shapes/gauge.js.map +1 -1
  215. package/dist/charts/engine/shapes/hit.cjs +1 -1
  216. package/dist/charts/engine/shapes/hit.cjs.map +1 -1
  217. package/dist/charts/engine/shapes/hit.d.cts +3 -1
  218. package/dist/charts/engine/shapes/hit.d.ts +3 -1
  219. package/dist/charts/engine/shapes/hit.js +29 -8
  220. package/dist/charts/engine/shapes/hit.js.map +1 -1
  221. package/dist/charts/engine/shapes/index.d.cts +4 -1
  222. package/dist/charts/engine/shapes/index.d.ts +4 -1
  223. package/dist/charts/engine/shapes/labels.cjs +2 -0
  224. package/dist/charts/engine/shapes/labels.cjs.map +1 -0
  225. package/dist/charts/engine/shapes/labels.d.cts +14 -0
  226. package/dist/charts/engine/shapes/labels.d.ts +14 -0
  227. package/dist/charts/engine/shapes/labels.js +146 -0
  228. package/dist/charts/engine/shapes/labels.js.map +1 -0
  229. package/dist/charts/engine/shapes/layout.cjs +2 -2
  230. package/dist/charts/engine/shapes/layout.cjs.map +1 -1
  231. package/dist/charts/engine/shapes/layout.d.cts +8 -3
  232. package/dist/charts/engine/shapes/layout.d.ts +8 -3
  233. package/dist/charts/engine/shapes/layout.js +200 -113
  234. package/dist/charts/engine/shapes/layout.js.map +1 -1
  235. package/dist/charts/engine/shapes/pie.cjs +1 -1
  236. package/dist/charts/engine/shapes/pie.cjs.map +1 -1
  237. package/dist/charts/engine/shapes/pie.js +2 -2
  238. package/dist/charts/engine/shapes/pie.js.map +1 -1
  239. package/dist/charts/engine/shapes/radar.cjs +1 -1
  240. package/dist/charts/engine/shapes/radar.cjs.map +1 -1
  241. package/dist/charts/engine/shapes/radar.d.cts +2 -2
  242. package/dist/charts/engine/shapes/radar.d.ts +2 -2
  243. package/dist/charts/engine/shapes/radar.js +50 -49
  244. package/dist/charts/engine/shapes/radar.js.map +1 -1
  245. package/dist/charts/engine/shapes/radialBar.cjs +2 -0
  246. package/dist/charts/engine/shapes/radialBar.cjs.map +1 -0
  247. package/dist/charts/engine/shapes/radialBar.d.cts +8 -0
  248. package/dist/charts/engine/shapes/radialBar.d.ts +8 -0
  249. package/dist/charts/engine/shapes/radialBar.js +155 -0
  250. package/dist/charts/engine/shapes/radialBar.js.map +1 -0
  251. package/dist/charts/engine/shapes/runtime.cjs +1 -1
  252. package/dist/charts/engine/shapes/runtime.cjs.map +1 -1
  253. package/dist/charts/engine/shapes/runtime.d.cts +9 -2
  254. package/dist/charts/engine/shapes/runtime.d.ts +9 -2
  255. package/dist/charts/engine/shapes/runtime.js +61 -51
  256. package/dist/charts/engine/shapes/runtime.js.map +1 -1
  257. package/dist/charts/engine/shapes/sankey.cjs +2 -0
  258. package/dist/charts/engine/shapes/sankey.cjs.map +1 -0
  259. package/dist/charts/engine/shapes/sankey.d.cts +29 -0
  260. package/dist/charts/engine/shapes/sankey.d.ts +29 -0
  261. package/dist/charts/engine/shapes/sankey.js +372 -0
  262. package/dist/charts/engine/shapes/sankey.js.map +1 -0
  263. package/dist/charts/engine/shapes/scene.cjs +1 -1
  264. package/dist/charts/engine/shapes/scene.cjs.map +1 -1
  265. package/dist/charts/engine/shapes/scene.d.cts +62 -8
  266. package/dist/charts/engine/shapes/scene.d.ts +62 -8
  267. package/dist/charts/engine/shapes/scene.js +33 -31
  268. package/dist/charts/engine/shapes/scene.js.map +1 -1
  269. package/dist/charts/engine/shapes/sunburst.cjs +2 -0
  270. package/dist/charts/engine/shapes/sunburst.cjs.map +1 -0
  271. package/dist/charts/engine/shapes/sunburst.d.cts +6 -0
  272. package/dist/charts/engine/shapes/sunburst.d.ts +6 -0
  273. package/dist/charts/engine/shapes/sunburst.js +261 -0
  274. package/dist/charts/engine/shapes/sunburst.js.map +1 -0
  275. package/dist/charts/engine/shapes/treemap.cjs +1 -1
  276. package/dist/charts/engine/shapes/treemap.cjs.map +1 -1
  277. package/dist/charts/engine/shapes/treemap.js +2 -2
  278. package/dist/charts/engine/shapes/treemap.js.map +1 -1
  279. package/dist/charts/engine/shapes/types.d.cts +439 -12
  280. package/dist/charts/engine/shapes/types.d.ts +439 -12
  281. package/dist/charts/engine/three-d/canvas2d.cjs +2 -0
  282. package/dist/charts/engine/three-d/canvas2d.cjs.map +1 -0
  283. package/dist/charts/engine/three-d/canvas2d.d.cts +4 -0
  284. package/dist/charts/engine/three-d/canvas2d.d.ts +4 -0
  285. package/dist/charts/engine/three-d/canvas2d.js +104 -0
  286. package/dist/charts/engine/three-d/canvas2d.js.map +1 -0
  287. package/dist/charts/engine/three-d/chart.cjs +2 -0
  288. package/dist/charts/engine/three-d/chart.cjs.map +1 -0
  289. package/dist/charts/engine/three-d/chart.d.cts +15 -0
  290. package/dist/charts/engine/three-d/chart.d.ts +15 -0
  291. package/dist/charts/engine/three-d/chart.js +621 -0
  292. package/dist/charts/engine/three-d/chart.js.map +1 -0
  293. package/dist/charts/engine/three-d/colormap.cjs +2 -0
  294. package/dist/charts/engine/three-d/colormap.cjs.map +1 -0
  295. package/dist/charts/engine/three-d/colormap.d.cts +16 -0
  296. package/dist/charts/engine/three-d/colormap.d.ts +16 -0
  297. package/dist/charts/engine/three-d/colormap.js +166 -0
  298. package/dist/charts/engine/three-d/colormap.js.map +1 -0
  299. package/dist/charts/engine/three-d/contours.cjs +2 -0
  300. package/dist/charts/engine/three-d/contours.cjs.map +1 -0
  301. package/dist/charts/engine/three-d/contours.d.cts +7 -0
  302. package/dist/charts/engine/three-d/contours.d.ts +7 -0
  303. package/dist/charts/engine/three-d/contours.js +47 -0
  304. package/dist/charts/engine/three-d/contours.js.map +1 -0
  305. package/dist/charts/engine/three-d/detect.cjs +2 -0
  306. package/dist/charts/engine/three-d/detect.cjs.map +1 -0
  307. package/dist/charts/engine/three-d/detect.d.cts +11 -0
  308. package/dist/charts/engine/three-d/detect.d.ts +11 -0
  309. package/dist/charts/engine/three-d/detect.js +35 -0
  310. package/dist/charts/engine/three-d/detect.js.map +1 -0
  311. package/dist/charts/engine/three-d/dom.cjs +2 -0
  312. package/dist/charts/engine/three-d/dom.cjs.map +1 -0
  313. package/dist/charts/engine/three-d/dom.d.cts +21 -0
  314. package/dist/charts/engine/three-d/dom.d.ts +21 -0
  315. package/dist/charts/engine/three-d/dom.js +98 -0
  316. package/dist/charts/engine/three-d/dom.js.map +1 -0
  317. package/dist/charts/engine/three-d/geometry.cjs +2 -0
  318. package/dist/charts/engine/three-d/geometry.cjs.map +1 -0
  319. package/dist/charts/engine/three-d/geometry.d.cts +76 -0
  320. package/dist/charts/engine/three-d/geometry.d.ts +76 -0
  321. package/dist/charts/engine/three-d/geometry.js +529 -0
  322. package/dist/charts/engine/three-d/geometry.js.map +1 -0
  323. package/dist/charts/engine/three-d/hover.cjs +2 -0
  324. package/dist/charts/engine/three-d/hover.cjs.map +1 -0
  325. package/dist/charts/engine/three-d/hover.d.cts +25 -0
  326. package/dist/charts/engine/three-d/hover.d.ts +25 -0
  327. package/dist/charts/engine/three-d/hover.js +131 -0
  328. package/dist/charts/engine/three-d/hover.js.map +1 -0
  329. package/dist/charts/engine/three-d/index.cjs +1 -0
  330. package/dist/charts/engine/three-d/index.d.cts +2 -0
  331. package/dist/charts/engine/three-d/index.d.ts +2 -0
  332. package/dist/charts/engine/three-d/index.js +2 -0
  333. package/dist/charts/engine/three-d/labels.cjs +2 -0
  334. package/dist/charts/engine/three-d/labels.cjs.map +1 -0
  335. package/dist/charts/engine/three-d/labels.d.cts +23 -0
  336. package/dist/charts/engine/three-d/labels.d.ts +23 -0
  337. package/dist/charts/engine/three-d/labels.js +136 -0
  338. package/dist/charts/engine/three-d/labels.js.map +1 -0
  339. package/dist/charts/engine/three-d/math.cjs +2 -0
  340. package/dist/charts/engine/three-d/math.cjs.map +1 -0
  341. package/dist/charts/engine/three-d/math.d.cts +84 -0
  342. package/dist/charts/engine/three-d/math.d.ts +84 -0
  343. package/dist/charts/engine/three-d/math.js +150 -0
  344. package/dist/charts/engine/three-d/math.js.map +1 -0
  345. package/dist/charts/engine/three-d/model.cjs +2 -0
  346. package/dist/charts/engine/three-d/model.cjs.map +1 -0
  347. package/dist/charts/engine/three-d/model.d.cts +130 -0
  348. package/dist/charts/engine/three-d/model.d.ts +130 -0
  349. package/dist/charts/engine/three-d/model.js +277 -0
  350. package/dist/charts/engine/three-d/model.js.map +1 -0
  351. package/dist/charts/engine/three-d/overlay.cjs +2 -0
  352. package/dist/charts/engine/three-d/overlay.cjs.map +1 -0
  353. package/dist/charts/engine/three-d/overlay.d.cts +72 -0
  354. package/dist/charts/engine/three-d/overlay.d.ts +72 -0
  355. package/dist/charts/engine/three-d/overlay.js +197 -0
  356. package/dist/charts/engine/three-d/overlay.js.map +1 -0
  357. package/dist/charts/engine/three-d/pick.cjs +2 -0
  358. package/dist/charts/engine/three-d/pick.cjs.map +1 -0
  359. package/dist/charts/engine/three-d/pick.d.cts +52 -0
  360. package/dist/charts/engine/three-d/pick.d.ts +52 -0
  361. package/dist/charts/engine/three-d/pick.js +220 -0
  362. package/dist/charts/engine/three-d/pick.js.map +1 -0
  363. package/dist/charts/engine/three-d/render-types.cjs +2 -0
  364. package/dist/charts/engine/three-d/render-types.cjs.map +1 -0
  365. package/dist/charts/engine/three-d/render-types.d.cts +82 -0
  366. package/dist/charts/engine/three-d/render-types.d.ts +82 -0
  367. package/dist/charts/engine/three-d/render-types.js +13 -0
  368. package/dist/charts/engine/three-d/render-types.js.map +1 -0
  369. package/dist/charts/engine/three-d/shaders.cjs +276 -0
  370. package/dist/charts/engine/three-d/shaders.cjs.map +1 -0
  371. package/dist/charts/engine/three-d/shaders.d.cts +26 -0
  372. package/dist/charts/engine/three-d/shaders.d.ts +26 -0
  373. package/dist/charts/engine/three-d/shaders.js +191 -0
  374. package/dist/charts/engine/three-d/shaders.js.map +1 -0
  375. package/dist/charts/engine/three-d/sort.cjs +2 -0
  376. package/dist/charts/engine/three-d/sort.cjs.map +1 -0
  377. package/dist/charts/engine/three-d/sort.d.cts +18 -0
  378. package/dist/charts/engine/three-d/sort.d.ts +18 -0
  379. package/dist/charts/engine/three-d/sort.js +71 -0
  380. package/dist/charts/engine/three-d/sort.js.map +1 -0
  381. package/dist/charts/engine/three-d/types.d.cts +588 -0
  382. package/dist/charts/engine/three-d/types.d.ts +588 -0
  383. package/dist/charts/engine/three-d/webgl.cjs +2 -0
  384. package/dist/charts/engine/three-d/webgl.cjs.map +1 -0
  385. package/dist/charts/engine/three-d/webgl.d.cts +10 -0
  386. package/dist/charts/engine/three-d/webgl.d.ts +10 -0
  387. package/dist/charts/engine/three-d/webgl.js +130 -0
  388. package/dist/charts/engine/three-d/webgl.js.map +1 -0
  389. package/dist/charts/engine/three-d/webgpu.cjs +2 -0
  390. package/dist/charts/engine/three-d/webgpu.cjs.map +1 -0
  391. package/dist/charts/engine/three-d/webgpu.d.cts +5 -0
  392. package/dist/charts/engine/three-d/webgpu.d.ts +5 -0
  393. package/dist/charts/engine/three-d/webgpu.js +249 -0
  394. package/dist/charts/engine/three-d/webgpu.js.map +1 -0
  395. package/dist/charts/engine/time.cjs +1 -1
  396. package/dist/charts/engine/time.cjs.map +1 -1
  397. package/dist/charts/engine/time.d.cts +13 -4
  398. package/dist/charts/engine/time.d.ts +13 -4
  399. package/dist/charts/engine/time.js +156 -91
  400. package/dist/charts/engine/time.js.map +1 -1
  401. package/dist/charts/engine/trading/chart.cjs +2 -0
  402. package/dist/charts/engine/trading/chart.cjs.map +1 -0
  403. package/dist/charts/engine/trading/chart.d.cts +3 -0
  404. package/dist/charts/engine/trading/chart.d.ts +3 -0
  405. package/dist/charts/engine/trading/chart.js +1507 -0
  406. package/dist/charts/engine/trading/chart.js.map +1 -0
  407. package/dist/charts/engine/trading/drawings.cjs +2 -0
  408. package/dist/charts/engine/trading/drawings.cjs.map +1 -0
  409. package/dist/charts/engine/trading/drawings.d.cts +57 -0
  410. package/dist/charts/engine/trading/drawings.d.ts +57 -0
  411. package/dist/charts/engine/trading/drawings.js +160 -0
  412. package/dist/charts/engine/trading/drawings.js.map +1 -0
  413. package/dist/charts/engine/trading/format.cjs +2 -0
  414. package/dist/charts/engine/trading/format.cjs.map +1 -0
  415. package/dist/charts/engine/trading/format.d.cts +60 -0
  416. package/dist/charts/engine/trading/format.d.ts +60 -0
  417. package/dist/charts/engine/trading/format.js +131 -0
  418. package/dist/charts/engine/trading/format.js.map +1 -0
  419. package/dist/charts/engine/trading/geometry.cjs +2 -0
  420. package/dist/charts/engine/trading/geometry.cjs.map +1 -0
  421. package/dist/charts/engine/trading/geometry.d.cts +55 -0
  422. package/dist/charts/engine/trading/geometry.d.ts +55 -0
  423. package/dist/charts/engine/trading/geometry.js +131 -0
  424. package/dist/charts/engine/trading/geometry.js.map +1 -0
  425. package/dist/charts/engine/trading/index.cjs +1 -0
  426. package/dist/charts/engine/trading/index.d.cts +3 -0
  427. package/dist/charts/engine/trading/index.d.ts +3 -0
  428. package/dist/charts/engine/trading/index.js +3 -0
  429. package/dist/charts/engine/trading/indicators.cjs +2 -0
  430. package/dist/charts/engine/trading/indicators.cjs.map +1 -0
  431. package/dist/charts/engine/trading/indicators.d.cts +105 -0
  432. package/dist/charts/engine/trading/indicators.d.ts +105 -0
  433. package/dist/charts/engine/trading/indicators.js +268 -0
  434. package/dist/charts/engine/trading/indicators.js.map +1 -0
  435. package/dist/charts/engine/trading/labels.cjs +2 -0
  436. package/dist/charts/engine/trading/labels.cjs.map +1 -0
  437. package/dist/charts/engine/trading/labels.d.cts +7 -0
  438. package/dist/charts/engine/trading/labels.d.ts +7 -0
  439. package/dist/charts/engine/trading/labels.js +91 -0
  440. package/dist/charts/engine/trading/labels.js.map +1 -0
  441. package/dist/charts/engine/trading/scale.cjs +2 -0
  442. package/dist/charts/engine/trading/scale.cjs.map +1 -0
  443. package/dist/charts/engine/trading/scale.d.cts +46 -0
  444. package/dist/charts/engine/trading/scale.d.ts +46 -0
  445. package/dist/charts/engine/trading/scale.js +100 -0
  446. package/dist/charts/engine/trading/scale.js.map +1 -0
  447. package/dist/charts/engine/trading/store.cjs +2 -0
  448. package/dist/charts/engine/trading/store.cjs.map +1 -0
  449. package/dist/charts/engine/trading/store.d.cts +62 -0
  450. package/dist/charts/engine/trading/store.d.ts +62 -0
  451. package/dist/charts/engine/trading/store.js +129 -0
  452. package/dist/charts/engine/trading/store.js.map +1 -0
  453. package/dist/charts/engine/trading/studies.cjs +2 -0
  454. package/dist/charts/engine/trading/studies.cjs.map +1 -0
  455. package/dist/charts/engine/trading/studies.d.cts +52 -0
  456. package/dist/charts/engine/trading/studies.d.ts +52 -0
  457. package/dist/charts/engine/trading/studies.js +254 -0
  458. package/dist/charts/engine/trading/studies.js.map +1 -0
  459. package/dist/charts/engine/trading/types.d.cts +656 -0
  460. package/dist/charts/engine/trading/types.d.ts +656 -0
  461. package/dist/charts/engine/types.d.cts +165 -14
  462. package/dist/charts/engine/types.d.ts +165 -14
  463. package/dist/charts/index.cjs +1 -1
  464. package/dist/charts/index.d.cts +7 -4
  465. package/dist/charts/index.d.ts +7 -4
  466. package/dist/charts/index.js +22 -11
  467. package/dist/charts/react/Chart.cjs +1 -1
  468. package/dist/charts/react/Chart.cjs.map +1 -1
  469. package/dist/charts/react/Chart.d.cts +4 -4
  470. package/dist/charts/react/Chart.d.ts +4 -4
  471. package/dist/charts/react/Chart.js +5 -1
  472. package/dist/charts/react/Chart.js.map +1 -1
  473. package/dist/charts/react/charts.cjs +1 -1
  474. package/dist/charts/react/charts.cjs.map +1 -1
  475. package/dist/charts/react/charts.d.cts +39 -1
  476. package/dist/charts/react/charts.d.ts +39 -1
  477. package/dist/charts/react/charts.js +303 -131
  478. package/dist/charts/react/charts.js.map +1 -1
  479. package/dist/charts/react/orderbook.cjs +2 -0
  480. package/dist/charts/react/orderbook.cjs.map +1 -0
  481. package/dist/charts/react/orderbook.d.cts +142 -0
  482. package/dist/charts/react/orderbook.d.ts +142 -0
  483. package/dist/charts/react/orderbook.js +182 -0
  484. package/dist/charts/react/orderbook.js.map +1 -0
  485. package/dist/charts/react/shapes.cjs +1 -1
  486. package/dist/charts/react/shapes.cjs.map +1 -1
  487. package/dist/charts/react/shapes.d.cts +291 -9
  488. package/dist/charts/react/shapes.d.ts +291 -9
  489. package/dist/charts/react/shapes.js +280 -93
  490. package/dist/charts/react/shapes.js.map +1 -1
  491. package/dist/charts/react/three-d.cjs +2 -0
  492. package/dist/charts/react/three-d.cjs.map +1 -0
  493. package/dist/charts/react/three-d.d.cts +151 -0
  494. package/dist/charts/react/three-d.d.ts +151 -0
  495. package/dist/charts/react/three-d.js +154 -0
  496. package/dist/charts/react/three-d.js.map +1 -0
  497. package/dist/charts/react/trading.cjs +2 -0
  498. package/dist/charts/react/trading.cjs.map +1 -0
  499. package/dist/charts/react/trading.d.cts +93 -0
  500. package/dist/charts/react/trading.d.ts +93 -0
  501. package/dist/charts/react/trading.js +95 -0
  502. package/dist/charts/react/trading.js.map +1 -0
  503. package/dist/charts/react/types.d.cts +132 -8
  504. package/dist/charts/react/types.d.ts +132 -8
  505. package/dist/core/contracts.cjs +1 -1
  506. package/dist/core/contracts.cjs.map +1 -1
  507. package/dist/core/contracts.js +1 -1
  508. package/dist/core/contracts.js.map +1 -1
  509. package/dist/native/charts/src/canvas.cjs +1 -1
  510. package/dist/native/charts/src/canvas.js +9 -3
  511. package/dist/native/charts/src/engine/axis.cjs +1 -1
  512. package/dist/native/charts/src/engine/axis.cjs.map +1 -1
  513. package/dist/native/charts/src/engine/axis.js +6 -6
  514. package/dist/native/charts/src/engine/axis.js.map +1 -1
  515. package/dist/native/charts/src/engine/controller.cjs +1 -1
  516. package/dist/native/charts/src/engine/controller.cjs.map +1 -1
  517. package/dist/native/charts/src/engine/controller.js +352 -292
  518. package/dist/native/charts/src/engine/controller.js.map +1 -1
  519. package/dist/native/charts/src/engine/data.cjs +1 -1
  520. package/dist/native/charts/src/engine/data.cjs.map +1 -1
  521. package/dist/native/charts/src/engine/data.js +63 -49
  522. package/dist/native/charts/src/engine/data.js.map +1 -1
  523. package/dist/native/charts/src/engine/format.cjs +1 -1
  524. package/dist/native/charts/src/engine/format.cjs.map +1 -1
  525. package/dist/native/charts/src/engine/format.js +46 -21
  526. package/dist/native/charts/src/engine/format.js.map +1 -1
  527. package/dist/native/charts/src/engine/labels.cjs +2 -0
  528. package/dist/native/charts/src/engine/labels.cjs.map +1 -0
  529. package/dist/native/charts/src/engine/labels.js +74 -0
  530. package/dist/native/charts/src/engine/labels.js.map +1 -0
  531. package/dist/native/charts/src/engine/layout.cjs +1 -1
  532. package/dist/native/charts/src/engine/layout.cjs.map +1 -1
  533. package/dist/native/charts/src/engine/layout.js +53 -12
  534. package/dist/native/charts/src/engine/layout.js.map +1 -1
  535. package/dist/native/charts/src/engine/locale.cjs +2 -0
  536. package/dist/native/charts/src/engine/locale.cjs.map +1 -0
  537. package/dist/native/charts/src/engine/locale.js +60 -0
  538. package/dist/native/charts/src/engine/locale.js.map +1 -0
  539. package/dist/native/charts/src/engine/model.cjs +1 -1
  540. package/dist/native/charts/src/engine/model.cjs.map +1 -1
  541. package/dist/native/charts/src/engine/model.js +223 -116
  542. package/dist/native/charts/src/engine/model.js.map +1 -1
  543. package/dist/native/charts/src/engine/overlay.cjs +1 -1
  544. package/dist/native/charts/src/engine/overlay.cjs.map +1 -1
  545. package/dist/native/charts/src/engine/overlay.js +46 -23
  546. package/dist/native/charts/src/engine/overlay.js.map +1 -1
  547. package/dist/native/charts/src/engine/presets.cjs +2 -2
  548. package/dist/native/charts/src/engine/presets.cjs.map +1 -1
  549. package/dist/native/charts/src/engine/presets.js +448 -33
  550. package/dist/native/charts/src/engine/presets.js.map +1 -1
  551. package/dist/native/charts/src/engine/scale.cjs +1 -1
  552. package/dist/native/charts/src/engine/scale.cjs.map +1 -1
  553. package/dist/native/charts/src/engine/scale.js +1 -1
  554. package/dist/native/charts/src/engine/scale.js.map +1 -1
  555. package/dist/native/charts/src/engine/scene.cjs +1 -1
  556. package/dist/native/charts/src/engine/scene.cjs.map +1 -1
  557. package/dist/native/charts/src/engine/scene.js +296 -167
  558. package/dist/native/charts/src/engine/scene.js.map +1 -1
  559. package/dist/native/charts/src/engine/shapes/bullet.cjs +2 -0
  560. package/dist/native/charts/src/engine/shapes/bullet.cjs.map +1 -0
  561. package/dist/native/charts/src/engine/shapes/bullet.js +255 -0
  562. package/dist/native/charts/src/engine/shapes/bullet.js.map +1 -0
  563. package/dist/native/charts/src/engine/shapes/calendar.cjs +2 -0
  564. package/dist/native/charts/src/engine/shapes/calendar.cjs.map +1 -0
  565. package/dist/native/charts/src/engine/shapes/calendar.js +364 -0
  566. package/dist/native/charts/src/engine/shapes/calendar.js.map +1 -0
  567. package/dist/native/charts/src/engine/shapes/canvas.cjs +2 -0
  568. package/dist/native/charts/src/engine/shapes/canvas.cjs.map +1 -0
  569. package/dist/native/charts/src/engine/shapes/canvas.js +168 -0
  570. package/dist/native/charts/src/engine/shapes/canvas.js.map +1 -0
  571. package/dist/native/charts/src/engine/shapes/draw.cjs +2 -0
  572. package/dist/native/charts/src/engine/shapes/draw.cjs.map +1 -0
  573. package/dist/native/charts/src/engine/shapes/draw.js +165 -0
  574. package/dist/native/charts/src/engine/shapes/draw.js.map +1 -0
  575. package/dist/native/charts/src/engine/shapes/funnel.cjs +2 -0
  576. package/dist/native/charts/src/engine/shapes/funnel.cjs.map +1 -0
  577. package/dist/native/charts/src/engine/shapes/funnel.js +149 -0
  578. package/dist/native/charts/src/engine/shapes/funnel.js.map +1 -0
  579. package/dist/native/charts/src/engine/shapes/gauge.cjs +2 -0
  580. package/dist/native/charts/src/engine/shapes/gauge.cjs.map +1 -0
  581. package/dist/native/charts/src/engine/shapes/gauge.js +210 -0
  582. package/dist/native/charts/src/engine/shapes/gauge.js.map +1 -0
  583. package/dist/native/charts/src/engine/shapes/hit.cjs +2 -0
  584. package/dist/native/charts/src/engine/shapes/hit.cjs.map +1 -0
  585. package/dist/native/charts/src/engine/shapes/hit.js +106 -0
  586. package/dist/native/charts/src/engine/shapes/hit.js.map +1 -0
  587. package/dist/native/charts/src/engine/shapes/labels.cjs +2 -0
  588. package/dist/native/charts/src/engine/shapes/labels.cjs.map +1 -0
  589. package/dist/native/charts/src/engine/shapes/labels.js +146 -0
  590. package/dist/native/charts/src/engine/shapes/labels.js.map +1 -0
  591. package/dist/native/charts/src/engine/shapes/layout.cjs +3 -0
  592. package/dist/native/charts/src/engine/shapes/layout.cjs.map +1 -0
  593. package/dist/native/charts/src/engine/shapes/layout.js +331 -0
  594. package/dist/native/charts/src/engine/shapes/layout.js.map +1 -0
  595. package/dist/native/charts/src/engine/shapes/pie.cjs +2 -0
  596. package/dist/native/charts/src/engine/shapes/pie.cjs.map +1 -0
  597. package/dist/native/charts/src/engine/shapes/pie.js +302 -0
  598. package/dist/native/charts/src/engine/shapes/pie.js.map +1 -0
  599. package/dist/native/charts/src/engine/shapes/radar.cjs +2 -0
  600. package/dist/native/charts/src/engine/shapes/radar.cjs.map +1 -0
  601. package/dist/native/charts/src/engine/shapes/radar.js +198 -0
  602. package/dist/native/charts/src/engine/shapes/radar.js.map +1 -0
  603. package/dist/native/charts/src/engine/shapes/radialBar.cjs +2 -0
  604. package/dist/native/charts/src/engine/shapes/radialBar.cjs.map +1 -0
  605. package/dist/native/charts/src/engine/shapes/radialBar.js +155 -0
  606. package/dist/native/charts/src/engine/shapes/radialBar.js.map +1 -0
  607. package/dist/native/charts/src/engine/shapes/runtime.cjs +2 -0
  608. package/dist/native/charts/src/engine/shapes/runtime.cjs.map +1 -0
  609. package/dist/native/charts/src/engine/shapes/runtime.js +107 -0
  610. package/dist/native/charts/src/engine/shapes/runtime.js.map +1 -0
  611. package/dist/native/charts/src/engine/shapes/sankey.cjs +2 -0
  612. package/dist/native/charts/src/engine/shapes/sankey.cjs.map +1 -0
  613. package/dist/native/charts/src/engine/shapes/sankey.js +372 -0
  614. package/dist/native/charts/src/engine/shapes/sankey.js.map +1 -0
  615. package/dist/native/charts/src/engine/shapes/scene.cjs +2 -0
  616. package/dist/native/charts/src/engine/shapes/scene.cjs.map +1 -0
  617. package/dist/native/charts/src/engine/shapes/scene.js +125 -0
  618. package/dist/native/charts/src/engine/shapes/scene.js.map +1 -0
  619. package/dist/native/charts/src/engine/shapes/sunburst.cjs +2 -0
  620. package/dist/native/charts/src/engine/shapes/sunburst.cjs.map +1 -0
  621. package/dist/native/charts/src/engine/shapes/sunburst.js +261 -0
  622. package/dist/native/charts/src/engine/shapes/sunburst.js.map +1 -0
  623. package/dist/native/charts/src/engine/shapes/treemap.cjs +2 -0
  624. package/dist/native/charts/src/engine/shapes/treemap.cjs.map +1 -0
  625. package/dist/native/charts/src/engine/shapes/treemap.js +213 -0
  626. package/dist/native/charts/src/engine/shapes/treemap.js.map +1 -0
  627. package/dist/native/charts/src/engine/time.cjs +1 -1
  628. package/dist/native/charts/src/engine/time.cjs.map +1 -1
  629. package/dist/native/charts/src/engine/time.js +156 -91
  630. package/dist/native/charts/src/engine/time.js.map +1 -1
  631. package/dist/native/components/Chart/ChartBase.cjs +1 -1
  632. package/dist/native/components/Chart/ChartBase.cjs.map +1 -1
  633. package/dist/native/components/Chart/ChartBase.d.cts +1 -1
  634. package/dist/native/components/Chart/ChartBase.d.ts +1 -1
  635. package/dist/native/components/Chart/ChartBase.js +110 -107
  636. package/dist/native/components/Chart/ChartBase.js.map +1 -1
  637. package/dist/native/components/Chart/charts.cjs +1 -1
  638. package/dist/native/components/Chart/charts.cjs.map +1 -1
  639. package/dist/native/components/Chart/charts.d.cts +6 -1
  640. package/dist/native/components/Chart/charts.d.ts +6 -1
  641. package/dist/native/components/Chart/charts.js +53 -29
  642. package/dist/native/components/Chart/charts.js.map +1 -1
  643. package/dist/native/components/Chart/index.cjs +1 -1
  644. package/dist/native/components/Chart/index.d.cts +1 -1
  645. package/dist/native/components/Chart/index.d.ts +1 -1
  646. package/dist/native/components/Chart/index.js +2 -2
  647. package/dist/native/components/Chart/scene.cjs +1 -1
  648. package/dist/native/components/Chart/scene.cjs.map +1 -1
  649. package/dist/native/components/Chart/scene.js +234 -217
  650. package/dist/native/components/Chart/scene.js.map +1 -1
  651. package/dist/native/components/Chart/types.d.cts +26 -3
  652. package/dist/native/components/Chart/types.d.ts +26 -3
  653. package/dist/native/components/Charts/charts.cjs +2 -0
  654. package/dist/native/components/Charts/charts.cjs.map +1 -0
  655. package/dist/native/components/Charts/charts.d.cts +41 -0
  656. package/dist/native/components/Charts/charts.d.ts +41 -0
  657. package/dist/native/components/Charts/charts.js +338 -0
  658. package/dist/native/components/Charts/charts.js.map +1 -0
  659. package/dist/native/components/Charts/index.cjs +1 -0
  660. package/dist/native/components/Charts/index.d.cts +2 -0
  661. package/dist/native/components/Charts/index.d.ts +2 -0
  662. package/dist/native/components/Charts/index.js +2 -0
  663. package/dist/native/components/Charts/types.d.cts +144 -0
  664. package/dist/native/components/Charts/types.d.ts +144 -0
  665. package/dist/native/components/ShapeChart/ShapeChartBase.cjs +2 -0
  666. package/dist/native/components/ShapeChart/ShapeChartBase.cjs.map +1 -0
  667. package/dist/native/components/ShapeChart/ShapeChartBase.d.cts +24 -0
  668. package/dist/native/components/ShapeChart/ShapeChartBase.d.ts +24 -0
  669. package/dist/native/components/ShapeChart/ShapeChartBase.js +271 -0
  670. package/dist/native/components/ShapeChart/ShapeChartBase.js.map +1 -0
  671. package/dist/native/components/ShapeChart/charts.cjs +2 -0
  672. package/dist/native/components/ShapeChart/charts.cjs.map +1 -0
  673. package/dist/native/components/ShapeChart/charts.d.cts +38 -0
  674. package/dist/native/components/ShapeChart/charts.d.ts +38 -0
  675. package/dist/native/components/ShapeChart/charts.js +387 -0
  676. package/dist/native/components/ShapeChart/charts.js.map +1 -0
  677. package/dist/native/components/ShapeChart/draw.cjs +2 -0
  678. package/dist/native/components/ShapeChart/draw.cjs.map +1 -0
  679. package/dist/native/components/ShapeChart/draw.d.cts +4 -0
  680. package/dist/native/components/ShapeChart/draw.d.ts +4 -0
  681. package/dist/native/components/ShapeChart/draw.js +104 -0
  682. package/dist/native/components/ShapeChart/draw.js.map +1 -0
  683. package/dist/native/components/ShapeChart/geometry.cjs +2 -0
  684. package/dist/native/components/ShapeChart/geometry.cjs.map +1 -0
  685. package/dist/native/components/ShapeChart/geometry.d.cts +71 -0
  686. package/dist/native/components/ShapeChart/geometry.d.ts +71 -0
  687. package/dist/native/components/ShapeChart/geometry.js +602 -0
  688. package/dist/native/components/ShapeChart/geometry.js.map +1 -0
  689. package/dist/native/components/ShapeChart/index.cjs +1 -0
  690. package/dist/native/components/ShapeChart/index.d.cts +2 -0
  691. package/dist/native/components/ShapeChart/index.d.ts +2 -0
  692. package/dist/native/components/ShapeChart/index.js +2 -0
  693. package/dist/native/components/ShapeChart/recorder.cjs +2 -0
  694. package/dist/native/components/ShapeChart/recorder.cjs.map +1 -0
  695. package/dist/native/components/ShapeChart/recorder.d.cts +106 -0
  696. package/dist/native/components/ShapeChart/recorder.d.ts +106 -0
  697. package/dist/native/components/ShapeChart/recorder.js +574 -0
  698. package/dist/native/components/ShapeChart/recorder.js.map +1 -0
  699. package/dist/native/components/ShapeChart/types.d.cts +509 -0
  700. package/dist/native/components/ShapeChart/types.d.ts +509 -0
  701. package/dist/native/index.cjs +1 -1
  702. package/dist/native/index.d.cts +2 -0
  703. package/dist/native/index.d.ts +2 -0
  704. package/dist/native/index.js +14 -10
  705. package/dist/native/manifest.d.cts +6 -4
  706. package/dist/native/manifest.d.ts +6 -4
  707. package/dist/native/source/components/Chart/ChartBase.tsx +8 -1
  708. package/dist/native/source/components/Chart/charts.tsx +42 -6
  709. package/dist/native/source/components/Chart/index.ts +1 -0
  710. package/dist/native/source/components/Chart/scene.tsx +154 -84
  711. package/dist/native/source/components/Chart/types.ts +31 -1
  712. package/dist/native/source/components/Charts/charts.tsx +493 -0
  713. package/dist/native/source/components/Charts/index.ts +14 -0
  714. package/dist/native/source/components/Charts/types.ts +207 -0
  715. package/dist/native/source/components/ShapeChart/ShapeChartBase.tsx +484 -0
  716. package/dist/native/source/components/ShapeChart/charts.tsx +605 -0
  717. package/dist/native/source/components/ShapeChart/draw.tsx +170 -0
  718. package/dist/native/source/components/ShapeChart/geometry.ts +1185 -0
  719. package/dist/native/source/components/ShapeChart/index.ts +15 -0
  720. package/dist/native/source/components/ShapeChart/recorder.ts +830 -0
  721. package/dist/native/source/components/ShapeChart/types.ts +564 -0
  722. package/dist/native/source/index.ts +2 -0
  723. package/dist/native/source/manifest.ts +30 -4
  724. package/dist/taro/charts.d.ts +209 -4
  725. package/dist/taro/index.d.ts +1 -0
  726. package/dist/taro/index.js +7517 -1856
  727. package/dist/taro/manifest.d.ts +1 -0
  728. package/dist/taro/shape-charts.d.ts +537 -0
  729. package/dist/uni/AreaChart.vue +68 -0
  730. package/dist/uni/AreaChart.vue.d.ts +120 -0
  731. package/dist/uni/Badge.vue.d.ts +1 -1
  732. package/dist/uni/BoxPlotChart.vue +66 -0
  733. package/dist/uni/BoxPlotChart.vue.d.ts +102 -0
  734. package/dist/uni/BubbleChart.vue +68 -0
  735. package/dist/uni/BubbleChart.vue.d.ts +106 -0
  736. package/dist/uni/BulletChart.vue +86 -0
  737. package/dist/uni/BulletChart.vue.d.ts +110 -0
  738. package/dist/uni/CalendarHeatmap.vue +92 -0
  739. package/dist/uni/CalendarHeatmap.vue.d.ts +129 -0
  740. package/dist/uni/CandlestickChart.vue +66 -0
  741. package/dist/uni/CandlestickChart.vue.d.ts +100 -0
  742. package/dist/uni/DonutChart.vue +72 -0
  743. package/dist/uni/DonutChart.vue.d.ts +114 -0
  744. package/dist/uni/FunnelChart.vue +67 -0
  745. package/dist/uni/FunnelChart.vue.d.ts +104 -0
  746. package/dist/uni/GanttChart.vue +67 -0
  747. package/dist/uni/GanttChart.vue.d.ts +123 -0
  748. package/dist/uni/GaugeChart.vue +77 -0
  749. package/dist/uni/GaugeChart.vue.d.ts +123 -0
  750. package/dist/uni/HeatmapChart.vue +66 -0
  751. package/dist/uni/HeatmapChart.vue.d.ts +114 -0
  752. package/dist/uni/HistogramChart.vue +66 -0
  753. package/dist/uni/HistogramChart.vue.d.ts +121 -0
  754. package/dist/uni/HorizontalBarChart.vue +68 -0
  755. package/dist/uni/HorizontalBarChart.vue.d.ts +127 -0
  756. package/dist/uni/Input.vue.d.ts +1 -1
  757. package/dist/uni/MixedChart.vue +68 -0
  758. package/dist/uni/MixedChart.vue.d.ts +106 -0
  759. package/dist/uni/NumberInput.vue.d.ts +1 -1
  760. package/dist/uni/PieChart.vue +72 -0
  761. package/dist/uni/PieChart.vue.d.ts +114 -0
  762. package/dist/uni/RadarChart.vue +67 -0
  763. package/dist/uni/RadarChart.vue.d.ts +110 -0
  764. package/dist/uni/RadialBarChart.vue +90 -0
  765. package/dist/uni/RadialBarChart.vue.d.ts +132 -0
  766. package/dist/uni/RangeAreaChart.vue +68 -0
  767. package/dist/uni/RangeAreaChart.vue.d.ts +102 -0
  768. package/dist/uni/ResponsiveGrid.vue.d.ts +1 -1
  769. package/dist/uni/SankeyChart.vue +88 -0
  770. package/dist/uni/SankeyChart.vue.d.ts +121 -0
  771. package/dist/uni/ShapeChart.vue +73 -0
  772. package/dist/uni/ShapeChart.vue.d.ts +54 -0
  773. package/dist/uni/Sparkline.vue +58 -0
  774. package/dist/uni/Sparkline.vue.d.ts +77 -0
  775. package/dist/uni/SunburstChart.vue +90 -0
  776. package/dist/uni/SunburstChart.vue.d.ts +114 -0
  777. package/dist/uni/Textarea.vue.d.ts +1 -1
  778. package/dist/uni/TimePicker.vue.d.ts +1 -1
  779. package/dist/uni/TreemapChart.vue +65 -0
  780. package/dist/uni/TreemapChart.vue.d.ts +100 -0
  781. package/dist/uni/WaterfallChart.vue +66 -0
  782. package/dist/uni/WaterfallChart.vue.d.ts +125 -0
  783. package/dist/uni/chart-types.d.ts +216 -2
  784. package/dist/uni/chart-types.js +174 -0
  785. package/dist/uni/charts-canvas.js +8 -3
  786. package/dist/uni/index.d.ts +26 -1
  787. package/dist/uni/index.js +26 -1
  788. package/dist/uni/manifest.d.ts +272 -0
  789. package/dist/uni/manifest.js +387 -0
  790. package/dist/uni/named-chart-options.d.ts +88 -0
  791. package/dist/uni/named-chart-options.js +156 -0
  792. package/dist/uni/shape-chart-canvas.d.ts +51 -0
  793. package/dist/uni/shape-chart-canvas.js +342 -0
  794. package/dist/uni/shape-chart-types.d.ts +381 -0
  795. package/dist/uni/shape-chart-types.js +261 -0
  796. package/dist/vue/components/Chart/AreaChart.vue.d.ts +124 -0
  797. package/dist/vue/components/Chart/AreaChart.vue.js +7 -0
  798. package/dist/vue/components/Chart/AreaChart.vue.js.map +1 -0
  799. package/dist/vue/components/Chart/AreaChart.vue_vue_type_script_setup_true_lang.js +49 -0
  800. package/dist/vue/components/Chart/AreaChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  801. package/dist/vue/components/Chart/Bar3DChart.vue.d.ts +132 -0
  802. package/dist/vue/components/Chart/Bar3DChart.vue.js +7 -0
  803. package/dist/vue/components/Chart/Bar3DChart.vue.js.map +1 -0
  804. package/dist/vue/components/Chart/Bar3DChart.vue_vue_type_script_setup_true_lang.js +55 -0
  805. package/dist/vue/components/Chart/Bar3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  806. package/dist/vue/components/Chart/BarChart.vue.d.ts +123 -0
  807. package/dist/vue/components/Chart/BarChart.vue.js +7 -0
  808. package/dist/vue/components/Chart/BarChart.vue.js.map +1 -0
  809. package/dist/vue/components/Chart/BarChart.vue_vue_type_script_setup_true_lang.js +53 -0
  810. package/dist/vue/components/Chart/BarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  811. package/dist/vue/components/Chart/BoxPlotChart.vue.d.ts +112 -0
  812. package/dist/vue/components/Chart/BoxPlotChart.vue.js +7 -0
  813. package/dist/vue/components/Chart/BoxPlotChart.vue.js.map +1 -0
  814. package/dist/vue/components/Chart/BoxPlotChart.vue_vue_type_script_setup_true_lang.js +57 -0
  815. package/dist/vue/components/Chart/BoxPlotChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  816. package/dist/vue/components/Chart/BubbleChart.vue.d.ts +106 -0
  817. package/dist/vue/components/Chart/BubbleChart.vue.js +7 -0
  818. package/dist/vue/components/Chart/BubbleChart.vue.js.map +1 -0
  819. package/dist/vue/components/Chart/BubbleChart.vue_vue_type_script_setup_true_lang.js +52 -0
  820. package/dist/vue/components/Chart/BubbleChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  821. package/dist/vue/components/Chart/BulletChart.vue.d.ts +117 -0
  822. package/dist/vue/components/Chart/BulletChart.vue.js +7 -0
  823. package/dist/vue/components/Chart/BulletChart.vue.js.map +1 -0
  824. package/dist/vue/components/Chart/BulletChart.vue_vue_type_script_setup_true_lang.js +64 -0
  825. package/dist/vue/components/Chart/BulletChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  826. package/dist/vue/components/Chart/CalendarHeatmap.vue.d.ts +144 -0
  827. package/dist/vue/components/Chart/CalendarHeatmap.vue.js +7 -0
  828. package/dist/vue/components/Chart/CalendarHeatmap.vue.js.map +1 -0
  829. package/dist/vue/components/Chart/CalendarHeatmap.vue_vue_type_script_setup_true_lang.js +77 -0
  830. package/dist/vue/components/Chart/CalendarHeatmap.vue_vue_type_script_setup_true_lang.js.map +1 -0
  831. package/dist/vue/components/Chart/CandlestickChart.vue.d.ts +94 -0
  832. package/dist/vue/components/Chart/CandlestickChart.vue.js +7 -0
  833. package/dist/vue/components/Chart/CandlestickChart.vue.js.map +1 -0
  834. package/dist/vue/components/Chart/CandlestickChart.vue_vue_type_script_setup_true_lang.js +44 -0
  835. package/dist/vue/components/Chart/CandlestickChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  836. package/dist/vue/components/Chart/Chart.vue.d.ts +103 -0
  837. package/dist/vue/components/Chart/Chart.vue.js +7 -0
  838. package/dist/vue/components/Chart/Chart.vue.js.map +1 -0
  839. package/dist/vue/components/Chart/Chart.vue_vue_type_script_setup_true_lang.js +47 -0
  840. package/dist/vue/components/Chart/Chart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  841. package/dist/vue/components/Chart/DepthChart.vue.d.ts +139 -0
  842. package/dist/vue/components/Chart/DepthChart.vue.js +7 -0
  843. package/dist/vue/components/Chart/DepthChart.vue.js.map +1 -0
  844. package/dist/vue/components/Chart/DepthChart.vue_vue_type_script_setup_true_lang.js +42 -0
  845. package/dist/vue/components/Chart/DepthChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  846. package/dist/vue/components/Chart/DonutChart.vue.d.ts +104 -0
  847. package/dist/vue/components/Chart/DonutChart.vue.js +7 -0
  848. package/dist/vue/components/Chart/DonutChart.vue.js.map +1 -0
  849. package/dist/vue/components/Chart/DonutChart.vue_vue_type_script_setup_true_lang.js +53 -0
  850. package/dist/vue/components/Chart/DonutChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  851. package/dist/vue/components/Chart/FunnelChart.vue.d.ts +105 -0
  852. package/dist/vue/components/Chart/FunnelChart.vue.js +7 -0
  853. package/dist/vue/components/Chart/FunnelChart.vue.js.map +1 -0
  854. package/dist/vue/components/Chart/FunnelChart.vue_vue_type_script_setup_true_lang.js +58 -0
  855. package/dist/vue/components/Chart/FunnelChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  856. package/dist/vue/components/Chart/GanttChart.vue.d.ts +132 -0
  857. package/dist/vue/components/Chart/GanttChart.vue.js +7 -0
  858. package/dist/vue/components/Chart/GanttChart.vue.js.map +1 -0
  859. package/dist/vue/components/Chart/GanttChart.vue_vue_type_script_setup_true_lang.js +98 -0
  860. package/dist/vue/components/Chart/GanttChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  861. package/dist/vue/components/Chart/GaugeChart.vue.d.ts +132 -0
  862. package/dist/vue/components/Chart/GaugeChart.vue.js +7 -0
  863. package/dist/vue/components/Chart/GaugeChart.vue.js.map +1 -0
  864. package/dist/vue/components/Chart/GaugeChart.vue_vue_type_script_setup_true_lang.js +71 -0
  865. package/dist/vue/components/Chart/GaugeChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  866. package/dist/vue/components/Chart/HeatmapChart.vue.d.ts +125 -0
  867. package/dist/vue/components/Chart/HeatmapChart.vue.js +7 -0
  868. package/dist/vue/components/Chart/HeatmapChart.vue.js.map +1 -0
  869. package/dist/vue/components/Chart/HeatmapChart.vue_vue_type_script_setup_true_lang.js +65 -0
  870. package/dist/vue/components/Chart/HeatmapChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  871. package/dist/vue/components/Chart/HistogramChart.vue.d.ts +132 -0
  872. package/dist/vue/components/Chart/HistogramChart.vue.js +7 -0
  873. package/dist/vue/components/Chart/HistogramChart.vue.js.map +1 -0
  874. package/dist/vue/components/Chart/HistogramChart.vue_vue_type_script_setup_true_lang.js +66 -0
  875. package/dist/vue/components/Chart/HistogramChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  876. package/dist/vue/components/Chart/HorizontalBarChart.vue.d.ts +121 -0
  877. package/dist/vue/components/Chart/HorizontalBarChart.vue.js +7 -0
  878. package/dist/vue/components/Chart/HorizontalBarChart.vue.js.map +1 -0
  879. package/dist/vue/components/Chart/HorizontalBarChart.vue_vue_type_script_setup_true_lang.js +55 -0
  880. package/dist/vue/components/Chart/HorizontalBarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  881. package/dist/vue/components/Chart/Line3DChart.vue.d.ts +121 -0
  882. package/dist/vue/components/Chart/Line3DChart.vue.js +7 -0
  883. package/dist/vue/components/Chart/Line3DChart.vue.js.map +1 -0
  884. package/dist/vue/components/Chart/Line3DChart.vue_vue_type_script_setup_true_lang.js +47 -0
  885. package/dist/vue/components/Chart/Line3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  886. package/dist/vue/components/Chart/LineChart.vue.d.ts +125 -0
  887. package/dist/vue/components/Chart/LineChart.vue.js +7 -0
  888. package/dist/vue/components/Chart/LineChart.vue.js.map +1 -0
  889. package/dist/vue/components/Chart/LineChart.vue_vue_type_script_setup_true_lang.js +50 -0
  890. package/dist/vue/components/Chart/LineChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  891. package/dist/vue/components/Chart/MixedChart.vue.d.ts +103 -0
  892. package/dist/vue/components/Chart/MixedChart.vue.js +7 -0
  893. package/dist/vue/components/Chart/MixedChart.vue.js.map +1 -0
  894. package/dist/vue/components/Chart/MixedChart.vue_vue_type_script_setup_true_lang.js +47 -0
  895. package/dist/vue/components/Chart/MixedChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  896. package/dist/vue/components/Chart/OrderBook.vue.d.ts +125 -0
  897. package/dist/vue/components/Chart/OrderBook.vue.js +7 -0
  898. package/dist/vue/components/Chart/OrderBook.vue.js.map +1 -0
  899. package/dist/vue/components/Chart/OrderBook.vue_vue_type_script_setup_true_lang.js +38 -0
  900. package/dist/vue/components/Chart/OrderBook.vue_vue_type_script_setup_true_lang.js.map +1 -0
  901. package/dist/vue/components/Chart/OrderBookHeatmap.vue.d.ts +128 -0
  902. package/dist/vue/components/Chart/OrderBookHeatmap.vue.js +7 -0
  903. package/dist/vue/components/Chart/OrderBookHeatmap.vue.js.map +1 -0
  904. package/dist/vue/components/Chart/OrderBookHeatmap.vue_vue_type_script_setup_true_lang.js +46 -0
  905. package/dist/vue/components/Chart/OrderBookHeatmap.vue_vue_type_script_setup_true_lang.js.map +1 -0
  906. package/dist/vue/components/Chart/PieChart.vue.d.ts +104 -0
  907. package/dist/vue/components/Chart/PieChart.vue.js +7 -0
  908. package/dist/vue/components/Chart/PieChart.vue.js.map +1 -0
  909. package/dist/vue/components/Chart/PieChart.vue_vue_type_script_setup_true_lang.js +53 -0
  910. package/dist/vue/components/Chart/PieChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  911. package/dist/vue/components/Chart/QuadrantChart.vue.d.ts +186 -0
  912. package/dist/vue/components/Chart/QuadrantChart.vue.js +7 -0
  913. package/dist/vue/components/Chart/QuadrantChart.vue.js.map +1 -0
  914. package/dist/vue/components/Chart/QuadrantChart.vue_vue_type_script_setup_true_lang.js +107 -0
  915. package/dist/vue/components/Chart/QuadrantChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  916. package/dist/vue/components/Chart/RadarChart.vue.d.ts +111 -0
  917. package/dist/vue/components/Chart/RadarChart.vue.js +7 -0
  918. package/dist/vue/components/Chart/RadarChart.vue.js.map +1 -0
  919. package/dist/vue/components/Chart/RadarChart.vue_vue_type_script_setup_true_lang.js +61 -0
  920. package/dist/vue/components/Chart/RadarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  921. package/dist/vue/components/Chart/RadialBarChart.vue.d.ts +147 -0
  922. package/dist/vue/components/Chart/RadialBarChart.vue.js +7 -0
  923. package/dist/vue/components/Chart/RadialBarChart.vue.js.map +1 -0
  924. package/dist/vue/components/Chart/RadialBarChart.vue_vue_type_script_setup_true_lang.js +78 -0
  925. package/dist/vue/components/Chart/RadialBarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  926. package/dist/vue/components/Chart/RangeAreaChart.vue.d.ts +106 -0
  927. package/dist/vue/components/Chart/RangeAreaChart.vue.js +7 -0
  928. package/dist/vue/components/Chart/RangeAreaChart.vue.js.map +1 -0
  929. package/dist/vue/components/Chart/RangeAreaChart.vue_vue_type_script_setup_true_lang.js +51 -0
  930. package/dist/vue/components/Chart/RangeAreaChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  931. package/dist/vue/components/Chart/SankeyChart.vue.d.ts +132 -0
  932. package/dist/vue/components/Chart/SankeyChart.vue.js +7 -0
  933. package/dist/vue/components/Chart/SankeyChart.vue.js.map +1 -0
  934. package/dist/vue/components/Chart/SankeyChart.vue_vue_type_script_setup_true_lang.js +71 -0
  935. package/dist/vue/components/Chart/SankeyChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  936. package/dist/vue/components/Chart/Scatter3DChart.vue.d.ts +121 -0
  937. package/dist/vue/components/Chart/Scatter3DChart.vue.js +7 -0
  938. package/dist/vue/components/Chart/Scatter3DChart.vue.js.map +1 -0
  939. package/dist/vue/components/Chart/Scatter3DChart.vue_vue_type_script_setup_true_lang.js +47 -0
  940. package/dist/vue/components/Chart/Scatter3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  941. package/dist/vue/components/Chart/ScatterChart.vue.d.ts +94 -0
  942. package/dist/vue/components/Chart/ScatterChart.vue.js +7 -0
  943. package/dist/vue/components/Chart/ScatterChart.vue.js.map +1 -0
  944. package/dist/vue/components/Chart/ScatterChart.vue_vue_type_script_setup_true_lang.js +44 -0
  945. package/dist/vue/components/Chart/ScatterChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  946. package/dist/vue/components/Chart/ShapeChart.vue.d.ts +39 -0
  947. package/dist/vue/components/Chart/ShapeChart.vue.js +7 -0
  948. package/dist/vue/components/Chart/ShapeChart.vue.js.map +1 -0
  949. package/dist/vue/components/Chart/ShapeChart.vue_vue_type_script_setup_true_lang.js +43 -0
  950. package/dist/vue/components/Chart/ShapeChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  951. package/dist/vue/components/Chart/Sparkline.vue.d.ts +90 -0
  952. package/dist/vue/components/Chart/Sparkline.vue.js +7 -0
  953. package/dist/vue/components/Chart/Sparkline.vue.js.map +1 -0
  954. package/dist/vue/components/Chart/Sparkline.vue_vue_type_script_setup_true_lang.js +66 -0
  955. package/dist/vue/components/Chart/Sparkline.vue_vue_type_script_setup_true_lang.js.map +1 -0
  956. package/dist/vue/components/Chart/SunburstChart.vue.d.ts +123 -0
  957. package/dist/vue/components/Chart/SunburstChart.vue.js +7 -0
  958. package/dist/vue/components/Chart/SunburstChart.vue.js.map +1 -0
  959. package/dist/vue/components/Chart/SunburstChart.vue_vue_type_script_setup_true_lang.js +68 -0
  960. package/dist/vue/components/Chart/SunburstChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  961. package/dist/vue/components/Chart/Surface3DChart.vue.d.ts +143 -0
  962. package/dist/vue/components/Chart/Surface3DChart.vue.js +7 -0
  963. package/dist/vue/components/Chart/Surface3DChart.vue.js.map +1 -0
  964. package/dist/vue/components/Chart/Surface3DChart.vue_vue_type_script_setup_true_lang.js +60 -0
  965. package/dist/vue/components/Chart/Surface3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  966. package/dist/vue/components/Chart/TimeAndSales.vue.d.ts +114 -0
  967. package/dist/vue/components/Chart/TimeAndSales.vue.js +7 -0
  968. package/dist/vue/components/Chart/TimeAndSales.vue.js.map +1 -0
  969. package/dist/vue/components/Chart/TimeAndSales.vue_vue_type_script_setup_true_lang.js +46 -0
  970. package/dist/vue/components/Chart/TimeAndSales.vue_vue_type_script_setup_true_lang.js.map +1 -0
  971. package/dist/vue/components/Chart/TradingChart.vue.d.ts +160 -0
  972. package/dist/vue/components/Chart/TradingChart.vue.js +7 -0
  973. package/dist/vue/components/Chart/TradingChart.vue.js.map +1 -0
  974. package/dist/vue/components/Chart/TradingChart.vue_vue_type_script_setup_true_lang.js +70 -0
  975. package/dist/vue/components/Chart/TradingChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  976. package/dist/vue/components/Chart/TreemapChart.vue.d.ts +97 -0
  977. package/dist/vue/components/Chart/TreemapChart.vue.js +7 -0
  978. package/dist/vue/components/Chart/TreemapChart.vue.js.map +1 -0
  979. package/dist/vue/components/Chart/TreemapChart.vue_vue_type_script_setup_true_lang.js +54 -0
  980. package/dist/vue/components/Chart/TreemapChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  981. package/dist/vue/components/Chart/WaterfallChart.vue.d.ts +132 -0
  982. package/dist/vue/components/Chart/WaterfallChart.vue.js +7 -0
  983. package/dist/vue/components/Chart/WaterfallChart.vue.js.map +1 -0
  984. package/dist/vue/components/Chart/WaterfallChart.vue_vue_type_script_setup_true_lang.js +68 -0
  985. package/dist/vue/components/Chart/WaterfallChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  986. package/dist/vue/components/Chart/cartesian.d.ts +47 -0
  987. package/dist/vue/components/Chart/cartesian.js +56 -0
  988. package/dist/vue/components/Chart/cartesian.js.map +1 -0
  989. package/dist/vue/components/Chart/engine.d.ts +35 -0
  990. package/dist/vue/components/Chart/engine.js +35 -0
  991. package/dist/vue/components/Chart/engine.js.map +1 -0
  992. package/dist/vue/components/Chart/index.d.ts +41 -0
  993. package/dist/vue/components/Chart/index.js +40 -0
  994. package/dist/vue/components/Chart/orderbook.d.ts +359 -0
  995. package/dist/vue/components/Chart/orderbook.js +126 -0
  996. package/dist/vue/components/Chart/orderbook.js.map +1 -0
  997. package/dist/vue/components/Chart/props.d.ts +188 -0
  998. package/dist/vue/components/Chart/props.js +92 -0
  999. package/dist/vue/components/Chart/props.js.map +1 -0
  1000. package/dist/vue/components/Chart/shape.d.ts +41 -0
  1001. package/dist/vue/components/Chart/shape.js +42 -0
  1002. package/dist/vue/components/Chart/shape.js.map +1 -0
  1003. package/dist/vue/components/Chart/three-d.d.ts +106 -0
  1004. package/dist/vue/components/Chart/three-d.js +88 -0
  1005. package/dist/vue/components/Chart/three-d.js.map +1 -0
  1006. package/dist/vue/components/Chart/trading.d.ts +105 -0
  1007. package/dist/vue/components/Chart/trading.js +55 -0
  1008. package/dist/vue/components/Chart/trading.js.map +1 -0
  1009. package/dist/vue/components/Chart/types.d.ts +137 -0
  1010. package/dist/vue/global.d.ts +38 -0
  1011. package/dist/vue/groups/charts.d.ts +1 -0
  1012. package/dist/vue/groups/charts.js +87 -0
  1013. package/dist/vue/groups/charts.js.map +1 -0
  1014. package/dist/vue/index.d.ts +1 -0
  1015. package/dist/vue/index.js +63 -23
  1016. package/dist/vue/plugin.js +12 -10
  1017. package/dist/vue/plugin.js.map +1 -1
  1018. package/dist/weapp/area-chart/index.js +1 -0
  1019. package/dist/weapp/area-chart/index.json +1 -0
  1020. package/dist/weapp/area-chart/index.wxml +1 -0
  1021. package/dist/weapp/area-chart/index.wxss +1 -0
  1022. package/dist/weapp/box-plot-chart/index.js +1 -0
  1023. package/dist/weapp/box-plot-chart/index.json +1 -0
  1024. package/dist/weapp/box-plot-chart/index.wxml +1 -0
  1025. package/dist/weapp/box-plot-chart/index.wxss +1 -0
  1026. package/dist/weapp/bubble-chart/index.js +1 -0
  1027. package/dist/weapp/bubble-chart/index.json +1 -0
  1028. package/dist/weapp/bubble-chart/index.wxml +1 -0
  1029. package/dist/weapp/bubble-chart/index.wxss +1 -0
  1030. package/dist/weapp/bullet-chart/index.js +1 -0
  1031. package/dist/weapp/bullet-chart/index.json +1 -0
  1032. package/dist/weapp/bullet-chart/index.wxml +1 -0
  1033. package/dist/weapp/bullet-chart/index.wxss +1 -0
  1034. package/dist/weapp/calendar-heatmap/index.js +1 -0
  1035. package/dist/weapp/calendar-heatmap/index.json +1 -0
  1036. package/dist/weapp/calendar-heatmap/index.wxml +1 -0
  1037. package/dist/weapp/calendar-heatmap/index.wxss +1 -0
  1038. package/dist/weapp/candlestick-chart/index.js +1 -0
  1039. package/dist/weapp/candlestick-chart/index.json +1 -0
  1040. package/dist/weapp/candlestick-chart/index.wxml +1 -0
  1041. package/dist/weapp/candlestick-chart/index.wxss +1 -0
  1042. package/dist/weapp/charts/canvas.js +11436 -0
  1043. package/dist/weapp/charts/core.d.ts +2 -0
  1044. package/dist/weapp/charts/core.js +41 -0
  1045. package/dist/weapp/controls.js +1433 -4478
  1046. package/dist/weapp/donut-chart/index.js +1 -0
  1047. package/dist/weapp/donut-chart/index.json +1 -0
  1048. package/dist/weapp/donut-chart/index.wxml +1 -0
  1049. package/dist/weapp/donut-chart/index.wxss +1 -0
  1050. package/dist/weapp/funnel-chart/index.js +1 -0
  1051. package/dist/weapp/funnel-chart/index.json +1 -0
  1052. package/dist/weapp/funnel-chart/index.wxml +1 -0
  1053. package/dist/weapp/funnel-chart/index.wxss +1 -0
  1054. package/dist/weapp/gantt-chart/index.js +1 -0
  1055. package/dist/weapp/gantt-chart/index.json +1 -0
  1056. package/dist/weapp/gantt-chart/index.wxml +1 -0
  1057. package/dist/weapp/gantt-chart/index.wxss +1 -0
  1058. package/dist/weapp/gauge-chart/index.js +1 -0
  1059. package/dist/weapp/gauge-chart/index.json +1 -0
  1060. package/dist/weapp/gauge-chart/index.wxml +1 -0
  1061. package/dist/weapp/gauge-chart/index.wxss +1 -0
  1062. package/dist/weapp/heatmap-chart/index.js +1 -0
  1063. package/dist/weapp/heatmap-chart/index.json +1 -0
  1064. package/dist/weapp/heatmap-chart/index.wxml +1 -0
  1065. package/dist/weapp/heatmap-chart/index.wxss +1 -0
  1066. package/dist/weapp/histogram-chart/index.js +1 -0
  1067. package/dist/weapp/histogram-chart/index.json +1 -0
  1068. package/dist/weapp/histogram-chart/index.wxml +1 -0
  1069. package/dist/weapp/histogram-chart/index.wxss +1 -0
  1070. package/dist/weapp/horizontal-bar-chart/index.js +1 -0
  1071. package/dist/weapp/horizontal-bar-chart/index.json +1 -0
  1072. package/dist/weapp/horizontal-bar-chart/index.wxml +1 -0
  1073. package/dist/weapp/horizontal-bar-chart/index.wxss +1 -0
  1074. package/dist/weapp/mixed-chart/index.js +1 -0
  1075. package/dist/weapp/mixed-chart/index.json +1 -0
  1076. package/dist/weapp/mixed-chart/index.wxml +1 -0
  1077. package/dist/weapp/mixed-chart/index.wxss +1 -0
  1078. package/dist/weapp/pie-chart/index.js +1 -0
  1079. package/dist/weapp/pie-chart/index.json +1 -0
  1080. package/dist/weapp/pie-chart/index.wxml +1 -0
  1081. package/dist/weapp/pie-chart/index.wxss +1 -0
  1082. package/dist/weapp/radar-chart/index.js +1 -0
  1083. package/dist/weapp/radar-chart/index.json +1 -0
  1084. package/dist/weapp/radar-chart/index.wxml +1 -0
  1085. package/dist/weapp/radar-chart/index.wxss +1 -0
  1086. package/dist/weapp/radial-bar-chart/index.js +1 -0
  1087. package/dist/weapp/radial-bar-chart/index.json +1 -0
  1088. package/dist/weapp/radial-bar-chart/index.wxml +1 -0
  1089. package/dist/weapp/radial-bar-chart/index.wxss +1 -0
  1090. package/dist/weapp/range-area-chart/index.js +1 -0
  1091. package/dist/weapp/range-area-chart/index.json +1 -0
  1092. package/dist/weapp/range-area-chart/index.wxml +1 -0
  1093. package/dist/weapp/range-area-chart/index.wxss +1 -0
  1094. package/dist/weapp/sankey-chart/index.js +1 -0
  1095. package/dist/weapp/sankey-chart/index.json +1 -0
  1096. package/dist/weapp/sankey-chart/index.wxml +1 -0
  1097. package/dist/weapp/sankey-chart/index.wxss +1 -0
  1098. package/dist/weapp/shape-chart/index.js +1 -0
  1099. package/dist/weapp/shape-chart/index.json +1 -0
  1100. package/dist/weapp/shape-chart/index.wxml +1 -0
  1101. package/dist/weapp/shape-chart/index.wxss +1 -0
  1102. package/dist/weapp/sparkline/index.js +1 -0
  1103. package/dist/weapp/sparkline/index.json +1 -0
  1104. package/dist/weapp/sparkline/index.wxml +1 -0
  1105. package/dist/weapp/sparkline/index.wxss +1 -0
  1106. package/dist/weapp/sunburst-chart/index.js +1 -0
  1107. package/dist/weapp/sunburst-chart/index.json +1 -0
  1108. package/dist/weapp/sunburst-chart/index.wxml +1 -0
  1109. package/dist/weapp/sunburst-chart/index.wxss +1 -0
  1110. package/dist/weapp/treemap-chart/index.js +1 -0
  1111. package/dist/weapp/treemap-chart/index.json +1 -0
  1112. package/dist/weapp/treemap-chart/index.wxml +1 -0
  1113. package/dist/weapp/treemap-chart/index.wxss +1 -0
  1114. package/dist/weapp/types.d.ts +466 -0
  1115. package/dist/weapp/waterfall-chart/index.js +1 -0
  1116. package/dist/weapp/waterfall-chart/index.json +1 -0
  1117. package/dist/weapp/waterfall-chart/index.wxml +1 -0
  1118. package/dist/weapp/waterfall-chart/index.wxss +1 -0
  1119. package/dist/web-components/components/chart/chart.d.ts +58 -0
  1120. package/dist/web-components/components/chart/chart.js +55 -0
  1121. package/dist/web-components/components/chart/chart.js.map +1 -0
  1122. package/dist/web-components/components/chart/charts.d.ts +252 -0
  1123. package/dist/web-components/components/chart/charts.js +201 -0
  1124. package/dist/web-components/components/chart/charts.js.map +1 -0
  1125. package/dist/web-components/components/chart/engine-element.d.ts +53 -0
  1126. package/dist/web-components/components/chart/engine-element.js +77 -0
  1127. package/dist/web-components/components/chart/engine-element.js.map +1 -0
  1128. package/dist/web-components/components/chart/extended.d.ts +224 -0
  1129. package/dist/web-components/components/chart/extended.js +183 -0
  1130. package/dist/web-components/components/chart/extended.js.map +1 -0
  1131. package/dist/web-components/components/chart/series.d.ts +7 -0
  1132. package/dist/web-components/components/chart/series.js +14 -0
  1133. package/dist/web-components/components/chart/series.js.map +1 -0
  1134. package/dist/web-components/components/chart/shape-chart.d.ts +199 -0
  1135. package/dist/web-components/components/chart/shape-chart.js +161 -0
  1136. package/dist/web-components/components/chart/shape-chart.js.map +1 -0
  1137. package/dist/web-components/components/chart/shapes-extended.d.ts +162 -0
  1138. package/dist/web-components/components/chart/shapes-extended.js +156 -0
  1139. package/dist/web-components/components/chart/shapes-extended.js.map +1 -0
  1140. package/dist/web-components/components/chart-3d/chart-3d.d.ts +111 -0
  1141. package/dist/web-components/components/chart-3d/chart-3d.js +97 -0
  1142. package/dist/web-components/components/chart-3d/chart-3d.js.map +1 -0
  1143. package/dist/web-components/components/order-book/order-book.d.ts +165 -0
  1144. package/dist/web-components/components/order-book/order-book.js +174 -0
  1145. package/dist/web-components/components/order-book/order-book.js.map +1 -0
  1146. package/dist/web-components/components/trading-chart/trading-chart.d.ts +96 -0
  1147. package/dist/web-components/components/trading-chart/trading-chart.js +96 -0
  1148. package/dist/web-components/components/trading-chart/trading-chart.js.map +1 -0
  1149. package/dist/web-components/elements/chart-3d.d.ts +2 -0
  1150. package/dist/web-components/elements/chart-3d.js +13 -0
  1151. package/dist/web-components/elements/chart-3d.js.map +1 -0
  1152. package/dist/web-components/elements/chart.d.ts +7 -0
  1153. package/dist/web-components/elements/chart.js +43 -0
  1154. package/dist/web-components/elements/chart.js.map +1 -0
  1155. package/dist/web-components/elements/order-book.d.ts +2 -0
  1156. package/dist/web-components/elements/order-book.js +13 -0
  1157. package/dist/web-components/elements/order-book.js.map +1 -0
  1158. package/dist/web-components/elements/trading-chart.d.ts +2 -0
  1159. package/dist/web-components/elements/trading-chart.js +8 -0
  1160. package/dist/web-components/elements/trading-chart.js.map +1 -0
  1161. package/dist/web-components/html-custom-data.json +1192 -29
  1162. package/dist/web-components/types/react.d.ts +435 -0
  1163. package/dist/web-components/types/solid.d.ts +321 -0
  1164. package/dist/web-components/types/svelte.d.ts +321 -0
  1165. package/dist/web-components/types/vue.d.ts +359 -0
  1166. package/package.json +113 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geometry.cjs","names":["GAP","require_types","BarBuffer","next","o","x","y0","y1","color","LineBuffer","top","bottom","y","x0","t0","t1","dy","ta","tb","AreaBuffer","ok","a","b","clamp","v","candleMetrics","wick","dpr","body","spacing","odd","clampRange","lo","hi","pixelRange","min"],"sources":["../../../../../charts/src/engine/trading/geometry.ts"],"sourcesContent":["// GPU items of the trading chart. Positions are baked in device pixels of\n// the data canvas (one canvas under every pane): candles are snapped to\n// the pixel grid so they stay crisp, and every pane clips its own items.\n\nimport {\n BAR_STRIDE,\n GAP,\n type AreaItem,\n type BarItem,\n type LineItem,\n} from \"../renderers/types\";\nimport type { Rgba } from \"../color\";\n\n/** Growable list of bar instances (x, y0, y1, packed color) */\nexport class BarBuffer {\n private f = new Float32Array(256);\n private u = new Uint32Array(this.f.buffer);\n count = 0;\n\n push(x: number, y0: number, y1: number, color: number): void {\n if ((this.count + 1) * 4 > this.f.length) {\n const next = new Float32Array(this.f.length * 2);\n next.set(this.f);\n this.f = next;\n this.u = new Uint32Array(next.buffer);\n }\n const o = this.count * 4;\n this.f[o] = x;\n this.f[o + 1] = y0;\n this.f[o + 2] = y1;\n this.u[o + 3] = color;\n this.count++;\n }\n\n item(\n key: string,\n version: number,\n halfWidth: number,\n minHalf = 0,\n radius = 0,\n ): BarItem {\n return {\n kind: \"bar\",\n key,\n version,\n color: [1, 1, 1, 1],\n instances: this.f.buffer.slice(0, this.count * BAR_STRIDE),\n count: this.count,\n halfWidth,\n radius,\n inset: 0,\n minHalf,\n sorted: false,\n };\n }\n}\n\n/**\n * Polyline clipped to the band `top..bottom` (device y): segments leaving\n * the band are cut at its edge, NaN values break the line\n */\nexport class LineBuffer {\n private p = new Float32Array(512);\n count = 0;\n private px = NaN;\n private py = NaN;\n /** The last written point is the previous point itself */\n private open = false;\n\n constructor(\n private readonly top: number,\n private readonly bottom: number,\n ) {}\n\n private write(x: number, y: number) {\n if ((this.count + 1) * 2 > this.p.length) {\n const next = new Float32Array(this.p.length * 2);\n next.set(this.p);\n this.p = next;\n }\n this.p[this.count * 2] = x;\n this.p[this.count * 2 + 1] = y;\n this.count++;\n }\n\n private gap() {\n if (this.count && this.p[this.count * 2 - 1] < 1e37) this.write(GAP, GAP);\n }\n\n /** Breaks the line */\n break(): void {\n if (this.open) this.gap();\n this.open = false;\n this.px = this.py = NaN;\n }\n\n push(x: number, y: number): void {\n if (!Number.isFinite(x) || !Number.isFinite(y)) {\n this.break();\n return;\n }\n const { top, bottom } = this;\n if (!Number.isFinite(this.px)) {\n if (y >= top && y <= bottom) {\n this.gap();\n this.write(x, y);\n this.open = true;\n }\n this.px = x;\n this.py = y;\n return;\n }\n const x0 = this.px;\n const y0 = this.py;\n this.px = x;\n this.py = y;\n // clip the segment to the band (parametric t in 0..1)\n let t0 = 0;\n let t1 = 1;\n const dy = y - y0;\n if (dy === 0) {\n if (y0 < top || y0 > bottom) t0 = 2;\n } else {\n const ta = (top - y0) / dy;\n const tb = (bottom - y0) / dy;\n t0 = Math.max(t0, Math.min(ta, tb));\n t1 = Math.min(t1, Math.max(ta, tb));\n }\n if (t0 > t1) {\n if (this.open) this.gap();\n this.open = false;\n return;\n }\n if (!this.open || t0 > 0) {\n this.gap();\n this.write(x0 + (x - x0) * t0, y0 + dy * t0);\n }\n this.write(x0 + (x - x0) * t1, y0 + dy * t1);\n this.open = t1 >= 1;\n if (!this.open) this.gap();\n }\n\n item(key: string, version: number, color: Rgba, width: number): LineItem {\n return {\n kind: \"line\",\n key,\n version,\n color,\n points: this.p.slice(0, this.count * 2),\n count: this.count,\n width,\n sorted: false,\n };\n }\n}\n\n/** Area points (x, top, bottom), both edges clamped to a band */\nexport class AreaBuffer {\n private p = new Float32Array(768);\n count = 0;\n\n constructor(\n private readonly top: number,\n private readonly bottom: number,\n ) {}\n\n push(x: number, a: number, b: number): void {\n if ((this.count + 1) * 3 > this.p.length) {\n const next = new Float32Array(this.p.length * 2);\n next.set(this.p);\n this.p = next;\n }\n const o = this.count * 3;\n const ok = Number.isFinite(x) && Number.isFinite(a) && Number.isFinite(b);\n const clamp = (v: number) => Math.min(this.bottom, Math.max(this.top, v));\n this.p[o] = ok ? x : GAP;\n this.p[o + 1] = ok ? clamp(a) : GAP;\n this.p[o + 2] = ok ? clamp(b) : GAP;\n this.count++;\n }\n\n item(key: string, version: number, color: Rgba, opacity: number): AreaItem {\n return {\n kind: \"area\",\n key,\n version,\n color,\n points: this.p.slice(0, this.count * 3),\n count: this.count,\n opacity,\n sorted: false,\n };\n }\n}\n\n/** Candle metrics for a bar spacing (device px): crisp, centered wicks */\nexport interface CandleMetrics {\n /** Wick / outline width */\n wick: number;\n /** Body width (same parity as the wick, so the wick is centered) */\n body: number;\n /** x of a bar center snapped to the pixel grid */\n snap(x: number): number;\n}\n\nexport const candleMetrics = (spacing: number, dpr: number): CandleMetrics => {\n const wick = Math.max(1, Math.round(dpr));\n let body = Math.round(spacing * 0.72);\n if (body > spacing - 1) body = Math.floor(spacing - 1);\n if (body < wick) body = wick;\n if ((body - wick) % 2) body -= 1;\n const odd = wick % 2 === 1;\n return {\n wick,\n body,\n snap: (x) => (odd ? Math.floor(x) + 0.5 : Math.round(x)),\n };\n};\n\n/** Clamps a device y range to a band; null when outside */\nexport const clampRange = (\n a: number,\n b: number,\n top: number,\n bottom: number,\n): [number, number] | null => {\n let lo = Math.min(a, b);\n let hi = Math.max(a, b);\n if (!Number.isFinite(lo) || !Number.isFinite(hi)) return null;\n if (hi < top || lo > bottom) return null;\n lo = Math.max(top, lo);\n hi = Math.min(bottom, hi);\n return [lo, hi];\n};\n\n/** Rounds a device y range to whole pixels, at least `min` high */\nexport const pixelRange = (a: number, b: number, min = 1): [number, number] => {\n const lo = Math.round(Math.min(a, b));\n let hi = Math.round(Math.max(a, b));\n if (hi - lo < min) hi = lo + min;\n return [lo, hi];\n};\n"],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ import { AreaItem, BarItem, LineItem } from '../renderers/types.cjs';
2
+ import { Rgba } from '../color.cjs';
3
+ /** Growable list of bar instances (x, y0, y1, packed color) */
4
+ export declare class BarBuffer {
5
+ private f;
6
+ private u;
7
+ count: number;
8
+ push(x: number, y0: number, y1: number, color: number): void;
9
+ item(key: string, version: number, halfWidth: number, minHalf?: number, radius?: number): BarItem;
10
+ }
11
+ /**
12
+ * Polyline clipped to the band `top..bottom` (device y): segments leaving
13
+ * the band are cut at its edge, NaN values break the line
14
+ */
15
+ export declare class LineBuffer {
16
+ private readonly top;
17
+ private readonly bottom;
18
+ private p;
19
+ count: number;
20
+ private px;
21
+ private py;
22
+ /** The last written point is the previous point itself */
23
+ private open;
24
+ constructor(top: number, bottom: number);
25
+ private write;
26
+ private gap;
27
+ /** Breaks the line */
28
+ break(): void;
29
+ push(x: number, y: number): void;
30
+ item(key: string, version: number, color: Rgba, width: number): LineItem;
31
+ }
32
+ /** Area points (x, top, bottom), both edges clamped to a band */
33
+ export declare class AreaBuffer {
34
+ private readonly top;
35
+ private readonly bottom;
36
+ private p;
37
+ count: number;
38
+ constructor(top: number, bottom: number);
39
+ push(x: number, a: number, b: number): void;
40
+ item(key: string, version: number, color: Rgba, opacity: number): AreaItem;
41
+ }
42
+ /** Candle metrics for a bar spacing (device px): crisp, centered wicks */
43
+ export interface CandleMetrics {
44
+ /** Wick / outline width */
45
+ wick: number;
46
+ /** Body width (same parity as the wick, so the wick is centered) */
47
+ body: number;
48
+ /** x of a bar center snapped to the pixel grid */
49
+ snap(x: number): number;
50
+ }
51
+ export declare const candleMetrics: (spacing: number, dpr: number) => CandleMetrics;
52
+ /** Clamps a device y range to a band; null when outside */
53
+ export declare const clampRange: (a: number, b: number, top: number, bottom: number) => [number, number] | null;
54
+ /** Rounds a device y range to whole pixels, at least `min` high */
55
+ export declare const pixelRange: (a: number, b: number, min?: number) => [number, number];
@@ -0,0 +1,55 @@
1
+ import { AreaItem, BarItem, LineItem } from '../renderers/types.js';
2
+ import { Rgba } from '../color.js';
3
+ /** Growable list of bar instances (x, y0, y1, packed color) */
4
+ export declare class BarBuffer {
5
+ private f;
6
+ private u;
7
+ count: number;
8
+ push(x: number, y0: number, y1: number, color: number): void;
9
+ item(key: string, version: number, halfWidth: number, minHalf?: number, radius?: number): BarItem;
10
+ }
11
+ /**
12
+ * Polyline clipped to the band `top..bottom` (device y): segments leaving
13
+ * the band are cut at its edge, NaN values break the line
14
+ */
15
+ export declare class LineBuffer {
16
+ private readonly top;
17
+ private readonly bottom;
18
+ private p;
19
+ count: number;
20
+ private px;
21
+ private py;
22
+ /** The last written point is the previous point itself */
23
+ private open;
24
+ constructor(top: number, bottom: number);
25
+ private write;
26
+ private gap;
27
+ /** Breaks the line */
28
+ break(): void;
29
+ push(x: number, y: number): void;
30
+ item(key: string, version: number, color: Rgba, width: number): LineItem;
31
+ }
32
+ /** Area points (x, top, bottom), both edges clamped to a band */
33
+ export declare class AreaBuffer {
34
+ private readonly top;
35
+ private readonly bottom;
36
+ private p;
37
+ count: number;
38
+ constructor(top: number, bottom: number);
39
+ push(x: number, a: number, b: number): void;
40
+ item(key: string, version: number, color: Rgba, opacity: number): AreaItem;
41
+ }
42
+ /** Candle metrics for a bar spacing (device px): crisp, centered wicks */
43
+ export interface CandleMetrics {
44
+ /** Wick / outline width */
45
+ wick: number;
46
+ /** Body width (same parity as the wick, so the wick is centered) */
47
+ body: number;
48
+ /** x of a bar center snapped to the pixel grid */
49
+ snap(x: number): number;
50
+ }
51
+ export declare const candleMetrics: (spacing: number, dpr: number) => CandleMetrics;
52
+ /** Clamps a device y range to a band; null when outside */
53
+ export declare const clampRange: (a: number, b: number, top: number, bottom: number) => [number, number] | null;
54
+ /** Rounds a device y range to whole pixels, at least `min` high */
55
+ export declare const pixelRange: (a: number, b: number, min?: number) => [number, number];
@@ -0,0 +1,131 @@
1
+ import { GAP as e } from "../renderers/types.js";
2
+ //#region src/engine/trading/geometry.ts
3
+ var t = class {
4
+ constructor() {
5
+ this.f = /* @__PURE__ */ new Float32Array(256), this.u = new Uint32Array(this.f.buffer), this.count = 0;
6
+ }
7
+ push(e, t, n, r) {
8
+ if ((this.count + 1) * 4 > this.f.length) {
9
+ let e = new Float32Array(this.f.length * 2);
10
+ e.set(this.f), this.f = e, this.u = new Uint32Array(e.buffer);
11
+ }
12
+ let i = this.count * 4;
13
+ this.f[i] = e, this.f[i + 1] = t, this.f[i + 2] = n, this.u[i + 3] = r, this.count++;
14
+ }
15
+ item(e, t, n, r = 0, i = 0) {
16
+ return {
17
+ kind: "bar",
18
+ key: e,
19
+ version: t,
20
+ color: [
21
+ 1,
22
+ 1,
23
+ 1,
24
+ 1
25
+ ],
26
+ instances: this.f.buffer.slice(0, this.count * 16),
27
+ count: this.count,
28
+ halfWidth: n,
29
+ radius: i,
30
+ inset: 0,
31
+ minHalf: r,
32
+ sorted: !1
33
+ };
34
+ }
35
+ }, n = class {
36
+ constructor(e, t) {
37
+ this.top = e, this.bottom = t, this.p = /* @__PURE__ */ new Float32Array(512), this.count = 0, this.px = NaN, this.py = NaN, this.open = !1;
38
+ }
39
+ write(e, t) {
40
+ if ((this.count + 1) * 2 > this.p.length) {
41
+ let e = new Float32Array(this.p.length * 2);
42
+ e.set(this.p), this.p = e;
43
+ }
44
+ this.p[this.count * 2] = e, this.p[this.count * 2 + 1] = t, this.count++;
45
+ }
46
+ gap() {
47
+ this.count && this.p[this.count * 2 - 1] < 1e37 && this.write(e, e);
48
+ }
49
+ break() {
50
+ this.open && this.gap(), this.open = !1, this.px = this.py = NaN;
51
+ }
52
+ push(e, t) {
53
+ if (!Number.isFinite(e) || !Number.isFinite(t)) {
54
+ this.break();
55
+ return;
56
+ }
57
+ let { top: n, bottom: r } = this;
58
+ if (!Number.isFinite(this.px)) {
59
+ t >= n && t <= r && (this.gap(), this.write(e, t), this.open = !0), this.px = e, this.py = t;
60
+ return;
61
+ }
62
+ let i = this.px, a = this.py;
63
+ this.px = e, this.py = t;
64
+ let o = 0, s = 1, c = t - a;
65
+ if (c === 0) (a < n || a > r) && (o = 2);
66
+ else {
67
+ let e = (n - a) / c, t = (r - a) / c;
68
+ o = Math.max(o, Math.min(e, t)), s = Math.min(s, Math.max(e, t));
69
+ }
70
+ if (o > s) {
71
+ this.open && this.gap(), this.open = !1;
72
+ return;
73
+ }
74
+ (!this.open || o > 0) && (this.gap(), this.write(i + (e - i) * o, a + c * o)), this.write(i + (e - i) * s, a + c * s), this.open = s >= 1, this.open || this.gap();
75
+ }
76
+ item(e, t, n, r) {
77
+ return {
78
+ kind: "line",
79
+ key: e,
80
+ version: t,
81
+ color: n,
82
+ points: this.p.slice(0, this.count * 2),
83
+ count: this.count,
84
+ width: r,
85
+ sorted: !1
86
+ };
87
+ }
88
+ }, r = class {
89
+ constructor(e, t) {
90
+ this.top = e, this.bottom = t, this.p = /* @__PURE__ */ new Float32Array(768), this.count = 0;
91
+ }
92
+ push(t, n, r) {
93
+ if ((this.count + 1) * 3 > this.p.length) {
94
+ let e = new Float32Array(this.p.length * 2);
95
+ e.set(this.p), this.p = e;
96
+ }
97
+ let i = this.count * 3, a = Number.isFinite(t) && Number.isFinite(n) && Number.isFinite(r), o = (e) => Math.min(this.bottom, Math.max(this.top, e));
98
+ this.p[i] = a ? t : e, this.p[i + 1] = a ? o(n) : e, this.p[i + 2] = a ? o(r) : e, this.count++;
99
+ }
100
+ item(e, t, n, r) {
101
+ return {
102
+ kind: "area",
103
+ key: e,
104
+ version: t,
105
+ color: n,
106
+ points: this.p.slice(0, this.count * 3),
107
+ count: this.count,
108
+ opacity: r,
109
+ sorted: !1
110
+ };
111
+ }
112
+ }, i = (e, t) => {
113
+ let n = Math.max(1, Math.round(t)), r = Math.round(e * .72);
114
+ r > e - 1 && (r = Math.floor(e - 1)), r < n && (r = n), (r - n) % 2 && --r;
115
+ let i = n % 2 == 1;
116
+ return {
117
+ wick: n,
118
+ body: r,
119
+ snap: (e) => i ? Math.floor(e) + .5 : Math.round(e)
120
+ };
121
+ }, a = (e, t, n, r) => {
122
+ let i = Math.min(e, t), a = Math.max(e, t);
123
+ return !Number.isFinite(i) || !Number.isFinite(a) || a < n || i > r ? null : (i = Math.max(n, i), a = Math.min(r, a), [i, a]);
124
+ }, o = (e, t, n = 1) => {
125
+ let r = Math.round(Math.min(e, t)), i = Math.round(Math.max(e, t));
126
+ return i - r < n && (i = r + n), [r, i];
127
+ };
128
+ //#endregion
129
+ export { r as AreaBuffer, t as BarBuffer, n as LineBuffer, i as candleMetrics, a as clampRange, o as pixelRange };
130
+
131
+ //# sourceMappingURL=geometry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geometry.js","names":["BarBuffer","next","o","x","y0","y1","color","LineBuffer","top","bottom","y","GAP","x0","t0","t1","dy","ta","tb","AreaBuffer","ok","a","b","clamp","v","candleMetrics","wick","dpr","body","spacing","odd","clampRange","lo","hi","pixelRange","min"],"sources":["../../../../../charts/src/engine/trading/geometry.ts"],"sourcesContent":["// GPU items of the trading chart. Positions are baked in device pixels of\n// the data canvas (one canvas under every pane): candles are snapped to\n// the pixel grid so they stay crisp, and every pane clips its own items.\n\nimport {\n BAR_STRIDE,\n GAP,\n type AreaItem,\n type BarItem,\n type LineItem,\n} from \"../renderers/types\";\nimport type { Rgba } from \"../color\";\n\n/** Growable list of bar instances (x, y0, y1, packed color) */\nexport class BarBuffer {\n private f = new Float32Array(256);\n private u = new Uint32Array(this.f.buffer);\n count = 0;\n\n push(x: number, y0: number, y1: number, color: number): void {\n if ((this.count + 1) * 4 > this.f.length) {\n const next = new Float32Array(this.f.length * 2);\n next.set(this.f);\n this.f = next;\n this.u = new Uint32Array(next.buffer);\n }\n const o = this.count * 4;\n this.f[o] = x;\n this.f[o + 1] = y0;\n this.f[o + 2] = y1;\n this.u[o + 3] = color;\n this.count++;\n }\n\n item(\n key: string,\n version: number,\n halfWidth: number,\n minHalf = 0,\n radius = 0,\n ): BarItem {\n return {\n kind: \"bar\",\n key,\n version,\n color: [1, 1, 1, 1],\n instances: this.f.buffer.slice(0, this.count * BAR_STRIDE),\n count: this.count,\n halfWidth,\n radius,\n inset: 0,\n minHalf,\n sorted: false,\n };\n }\n}\n\n/**\n * Polyline clipped to the band `top..bottom` (device y): segments leaving\n * the band are cut at its edge, NaN values break the line\n */\nexport class LineBuffer {\n private p = new Float32Array(512);\n count = 0;\n private px = NaN;\n private py = NaN;\n /** The last written point is the previous point itself */\n private open = false;\n\n constructor(\n private readonly top: number,\n private readonly bottom: number,\n ) {}\n\n private write(x: number, y: number) {\n if ((this.count + 1) * 2 > this.p.length) {\n const next = new Float32Array(this.p.length * 2);\n next.set(this.p);\n this.p = next;\n }\n this.p[this.count * 2] = x;\n this.p[this.count * 2 + 1] = y;\n this.count++;\n }\n\n private gap() {\n if (this.count && this.p[this.count * 2 - 1] < 1e37) this.write(GAP, GAP);\n }\n\n /** Breaks the line */\n break(): void {\n if (this.open) this.gap();\n this.open = false;\n this.px = this.py = NaN;\n }\n\n push(x: number, y: number): void {\n if (!Number.isFinite(x) || !Number.isFinite(y)) {\n this.break();\n return;\n }\n const { top, bottom } = this;\n if (!Number.isFinite(this.px)) {\n if (y >= top && y <= bottom) {\n this.gap();\n this.write(x, y);\n this.open = true;\n }\n this.px = x;\n this.py = y;\n return;\n }\n const x0 = this.px;\n const y0 = this.py;\n this.px = x;\n this.py = y;\n // clip the segment to the band (parametric t in 0..1)\n let t0 = 0;\n let t1 = 1;\n const dy = y - y0;\n if (dy === 0) {\n if (y0 < top || y0 > bottom) t0 = 2;\n } else {\n const ta = (top - y0) / dy;\n const tb = (bottom - y0) / dy;\n t0 = Math.max(t0, Math.min(ta, tb));\n t1 = Math.min(t1, Math.max(ta, tb));\n }\n if (t0 > t1) {\n if (this.open) this.gap();\n this.open = false;\n return;\n }\n if (!this.open || t0 > 0) {\n this.gap();\n this.write(x0 + (x - x0) * t0, y0 + dy * t0);\n }\n this.write(x0 + (x - x0) * t1, y0 + dy * t1);\n this.open = t1 >= 1;\n if (!this.open) this.gap();\n }\n\n item(key: string, version: number, color: Rgba, width: number): LineItem {\n return {\n kind: \"line\",\n key,\n version,\n color,\n points: this.p.slice(0, this.count * 2),\n count: this.count,\n width,\n sorted: false,\n };\n }\n}\n\n/** Area points (x, top, bottom), both edges clamped to a band */\nexport class AreaBuffer {\n private p = new Float32Array(768);\n count = 0;\n\n constructor(\n private readonly top: number,\n private readonly bottom: number,\n ) {}\n\n push(x: number, a: number, b: number): void {\n if ((this.count + 1) * 3 > this.p.length) {\n const next = new Float32Array(this.p.length * 2);\n next.set(this.p);\n this.p = next;\n }\n const o = this.count * 3;\n const ok = Number.isFinite(x) && Number.isFinite(a) && Number.isFinite(b);\n const clamp = (v: number) => Math.min(this.bottom, Math.max(this.top, v));\n this.p[o] = ok ? x : GAP;\n this.p[o + 1] = ok ? clamp(a) : GAP;\n this.p[o + 2] = ok ? clamp(b) : GAP;\n this.count++;\n }\n\n item(key: string, version: number, color: Rgba, opacity: number): AreaItem {\n return {\n kind: \"area\",\n key,\n version,\n color,\n points: this.p.slice(0, this.count * 3),\n count: this.count,\n opacity,\n sorted: false,\n };\n }\n}\n\n/** Candle metrics for a bar spacing (device px): crisp, centered wicks */\nexport interface CandleMetrics {\n /** Wick / outline width */\n wick: number;\n /** Body width (same parity as the wick, so the wick is centered) */\n body: number;\n /** x of a bar center snapped to the pixel grid */\n snap(x: number): number;\n}\n\nexport const candleMetrics = (spacing: number, dpr: number): CandleMetrics => {\n const wick = Math.max(1, Math.round(dpr));\n let body = Math.round(spacing * 0.72);\n if (body > spacing - 1) body = Math.floor(spacing - 1);\n if (body < wick) body = wick;\n if ((body - wick) % 2) body -= 1;\n const odd = wick % 2 === 1;\n return {\n wick,\n body,\n snap: (x) => (odd ? Math.floor(x) + 0.5 : Math.round(x)),\n };\n};\n\n/** Clamps a device y range to a band; null when outside */\nexport const clampRange = (\n a: number,\n b: number,\n top: number,\n bottom: number,\n): [number, number] | null => {\n let lo = Math.min(a, b);\n let hi = Math.max(a, b);\n if (!Number.isFinite(lo) || !Number.isFinite(hi)) return null;\n if (hi < top || lo > bottom) return null;\n lo = Math.max(top, lo);\n hi = Math.min(bottom, hi);\n return [lo, hi];\n};\n\n/** Rounds a device y range to whole pixels, at least `min` high */\nexport const pixelRange = (a: number, b: number, min = 1): [number, number] => {\n const lo = Math.round(Math.min(a, b));\n let hi = Math.round(Math.max(a, b));\n if (hi - lo < min) hi = lo + min;\n return [lo, hi];\n};\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ const e=require("./indicators.cjs"),t=require("./chart.cjs");exports.atr=e.atr,exports.bollinger=e.bollinger,exports.createTradingChart=t.createTradingChart,exports.ema=e.ema,exports.heikinAshi=e.heikinAshi,exports.kdj=e.kdj,exports.macd=e.macd,exports.resampleBars=e.resampleBars,exports.rsi=e.rsi,exports.sma=e.sma,exports.vwap=e.vwap,exports.wma=e.wma;
@@ -0,0 +1,3 @@
1
+ export type * from './types.cjs';
2
+ export { createTradingChart } from './chart.cjs';
3
+ export { atr, bollinger, ema, heikinAshi, kdj, macd, resampleBars, rsi, sma, vwap, wma, } from './indicators.cjs';
@@ -0,0 +1,3 @@
1
+ export type * from './types.js';
2
+ export { createTradingChart } from './chart.js';
3
+ export { atr, bollinger, ema, heikinAshi, kdj, macd, resampleBars, rsi, sma, vwap, wma, } from './indicators.js';
@@ -0,0 +1,3 @@
1
+ import { atr as e, bollinger as t, ema as n, heikinAshi as r, kdj as i, macd as a, resampleBars as o, rsi as s, sma as c, vwap as l, wma as u } from "./indicators.js";
2
+ import { createTradingChart as d } from "./chart.js";
3
+ export { e as atr, t as bollinger, d as createTradingChart, n as ema, r as heikinAshi, i as kdj, a as macd, o as resampleBars, s as rsi, c as sma, l as vwap, u as wma };
@@ -0,0 +1,2 @@
1
+ var e=Number.isFinite,t=e=>new Float64Array(e).fill(NaN),n=e=>Math.max(1,Math.floor(e)||1),r=(t,r,i,a,o=0)=>{let s=n(i),c=0,l=0;for(let n=Math.max(0,o-s);n<o;n++){let r=t[n];e(r)&&(c+=r,l++)}for(let n=o;n<r;n++){let r=t[n];if(e(r)&&(c+=r,l++),n>=s){let r=t[n-s];e(r)&&(c-=r,l--)}a[n]=l===s?c/s:NaN}},i=(t,n,r)=>{if(n<r-1)return NaN;let i=0;for(let a=n-r+1;a<=n;a++){let n=t[a];if(!e(n))return NaN;i+=n}return i/r},a=(t,n,r,a,o,s)=>{for(let c=s;c<n;c++){let n=t[c],s=c>0?o[c-1]:NaN;e(n)?e(s)?o[c]=s+a*(n-s):o[c]=i(t,c,r):o[c]=NaN}},o=(e,t,r,i,o=0)=>{let s=n(r);a(e,t,s,2/(s+1),i,o)},s=(e,t,r,i,o=0)=>{let s=n(r);a(e,t,s,1/s,i,o)},c=(t,r,a,o,s=0)=>{let c=n(a),l=c*(c+1)/2,u=n=>{if(n<c-1)return NaN;let r=0;for(let i=0;i<c;i++){let a=t[n-i];if(!e(a))return NaN;r+=(c-i)*a}return r},d=s>0?u(s-1):NaN,f=s>0?i(t,s-1,c)*c:NaN;for(let n=s;n<r;n++){let r=t[n];e(d)&&e(f)&&e(r)?(d=d-f+c*r,f=f+r-(n>=c?t[n-c]:0)):(d=u(n),f=i(t,n,c)*c),o[n]=e(d)?d/l:NaN}},l=(t,r,a,o,s=0)=>{let c=n(a);for(let n=s;n<r;n++){let r=i(t,n,c);if(!e(r)){o[n]=NaN;continue}let a=0;for(let e=n-c+1;e<=n;e++){let n=t[e]-r;a+=n*n}o[n]=Math.sqrt(a/c)}},u=(t,r,i,a,o,s,c=0)=>{let l=n(i);for(let n=c;n<r;n++){if(o[n]=s[n]=NaN,a[n]=NaN,n===0)continue;let r=t[n]-t[n-1];if(e(r)){if(e(o[n-1])&&e(s[n-1]))o[n]=(o[n-1]*(l-1)+Math.max(r,0))/l,s[n]=(s[n-1]*(l-1)+Math.max(-r,0))/l;else if(n>=l){let r=0,i=0,a=!0;for(let o=n-l+1;o<=n;o++){let n=t[o]-t[o-1];if(!e(n)){a=!1;break}n>0?r+=n:i-=n}if(!a)continue;o[n]=r/l,s[n]=i/l}else continue;a[n]=s[n]===0?o[n]===0?50:100:100-100/(1+o[n]/s[n])}}},d=(t,n,r,i,a,o=0)=>{for(let s=o;s<i;s++){let i=t[s]-n[s];if(s===0||!e(r[s-1])){a[s]=i;continue}let o=r[s-1];a[s]=Math.max(i,Math.abs(t[s]-o),Math.abs(n[s]-o))}},f=(t,r,i,a,o,s,c,l,u,d,f=0)=>{let p=n(o),m=n(s),h=n(c);for(let n=f;n<a;n++){if(l[n]=u[n]=d[n]=NaN,n<p-1)continue;let a=-1/0,o=1/0;for(let e=n-p+1;e<=n;e++)t[e]>a&&(a=t[e]),r[e]<o&&(o=r[e]);let s=i[n];if(!e(a)||!e(o)||!e(s))continue;let c=a===o?50:(s-o)/(a-o)*100,f=n>0&&e(l[n-1])?l[n-1]:50,g=n>0&&e(u[n-1])?u[n-1]:50;l[n]=((m-1)*f+c)/m,u[n]=((h-1)*g+l[n])/h,d[n]=3*l[n]-2*u[n]}},p=864e5,m=(e,t,n=0)=>{if(t===`none`)return 0;let r=e+n*6e4,i=Math.floor(r/p);if(t===`day`)return i;if(t===`week`)return Math.floor((i+3)/7);let a=new Date(r);return a.getUTCFullYear()*12+a.getUTCMonth()},h=(t,n,r,i,a,o,s,c,l,u,d,f=0)=>{for(let p=f;p<o;p++){let o=(t[p]+n[p]+r[p])/3,f=e(i[p])?i[p]:0,h=p>0&&(!a||m(a[p],s,c)===m(a[p-1],s,c)),g=h&&e(u[p-1])?u[p-1]:0,_=h&&e(d[p-1])?d[p-1]:0;u[p]=g+(e(o)?o*f:0),d[p]=_+f,l[p]=d[p]>0?u[p]/d[p]:e(o)?o:NaN}},g=(t,n,r,i,a,o,s=0)=>{for(let c=s;c<a;c++){let a=(t[c]+n[c]+r[c]+i[c])/4,s=c>0?o.open[c-1]:NaN,l=c>0?o.close[c-1]:NaN,u=e(s)&&e(l)?(s+l)/2:(t[c]+i[c])/2;o.open[c]=u,o.close[c]=a,o.high[c]=Math.max(n[c],u,a),o.low[c]=Math.min(r[c],u,a)}},_=(e,n)=>{let i=t(e.length);return r(e,e.length,n,i),i},v=(e,n)=>{let r=t(e.length);return o(e,e.length,n,r),r},y=(e,n)=>{let r=t(e.length);return c(e,e.length,n,r),r},b=(e,n=20,i=2)=>{let a=e.length,o=t(a),s=t(a),c=t(a),u=t(a);r(e,a,n,o),l(e,a,n,u);for(let e=0;e<a;e++)s[e]=o[e]+i*u[e],c[e]=o[e]-i*u[e];return{middle:o,upper:s,lower:c}},x=(e,n=12,r=26,i=9)=>{let a=e.length,s=t(a),c=t(a);o(e,a,n,s),o(e,a,r,c);let l=t(a);for(let e=0;e<a;e++)l[e]=s[e]-c[e];let u=t(a);o(l,a,i,u);let d=t(a);for(let e=0;e<a;e++)d[e]=l[e]-u[e];return{macd:l,signal:u,histogram:d}},S=(e,n=14)=>{let r=e.length,i=t(r);return u(e,r,n,i,t(r),t(r)),i},C=(e,n,r,i=9,a=3,o=3)=>{let s=r.length,c=t(s),l=t(s),u=t(s);return f(e,n,r,s,i,a,o,c,l,u),{k:c,d:l,j:u}},w=(e,n,r,i=14)=>{let a=r.length,o=t(a);d(e,n,r,a,o);let c=t(a);return s(o,a,i,c),c},T=(e,n,r,i,a={})=>{let o=r.length,s=t(o);return h(e,n,r,i,a.time??null,o,a.reset??`day`,a.utcOffset??0,s,t(o),t(o)),s},E=e=>{let n=e.close.length,r={open:t(n),high:t(n),low:t(n),close:t(n)};return g(e.open,e.high,e.low,e.close,n,r),r},D={s:1e3,m:6e4,h:36e5,H:36e5,d:p,D:p,w:7*p,W:7*p},O=e=>{if(typeof e==`number`)return e>0?{unit:`ms`,count:e,ms:e}:null;let t=/^(\d+(?:\.\d+)?)([smhHdDwWM])$/.exec(e.trim());if(!t)return null;let n=Number(t[1]);if(!(n>0))return null;let r=t[2];return r===`M`?{unit:`month`,count:n,ms:n*30*p}:{unit:`ms`,count:n*D[r],ms:n*D[r]}},k=(e,t,n=0)=>{let r=n*6e4,i=e+r;if(t.unit===`month`){let e=new Date(i),n=e.getUTCFullYear()*12+e.getUTCMonth(),a=n-n%t.count;return Date.UTC(Math.floor(a/12),a%12,1)-r}if(t.count%(7*p)==0){let e=4*p;return Math.floor((i-e)/t.count)*t.count+e-r}return Math.floor(i/t.count)*t.count-r},A=e=>!Array.isArray(e);function j(e,t,n=0){let r=O(t);if(!r)throw Error(`Invalid timeframe: ${String(t)}`);let i=A(e),a=i?e.close.length:e.length,o=t=>{if(!i)return e[t];let n=e;return{time:n.time[t],open:n.open[t],high:n.high[t],low:n.low[t],close:n.close[t],volume:n.volume?n.volume[t]:void 0}},s=[],c=null;for(let e=0;e<a;e++){let t=o(e),i=k(t.time,r,n);!c||i!==c.time?(c&&s.push(c),c={time:i,open:t.open,high:t.high,low:t.low,close:t.close,volume:t.volume??0}):(t.high>c.high&&(c.high=t.high),t.low<c.low&&(c.low=t.low),c.close=t.close,c.volume=(c.volume??0)+(t.volume??0))}if(c&&s.push(c),!i)return s;let l=s.length,u={time:new Float64Array(l),open:new Float64Array(l),high:new Float64Array(l),low:new Float64Array(l),close:new Float64Array(l),volume:new Float64Array(l)};return s.forEach((e,t)=>{u.time[t]=e.time,u.open[t]=e.open,u.high[t]=e.high,u.low[t]=e.low,u.close[t]=e.close,u.volume[t]=e.volume??0}),u}exports.atr=w,exports.bollinger=b,exports.bucketStart=k,exports.ema=v,exports.emaInto=o,exports.heikinAshi=E,exports.heikinAshiInto=g,exports.kdj=C,exports.kdjInto=f,exports.macd=x,exports.parseTimeframe=O,exports.resampleBars=j,exports.rmaInto=s,exports.rsi=S,exports.rsiInto=u,exports.sessionKey=m,exports.sma=_,exports.smaInto=r,exports.stdevInto=l,exports.trueRangeInto=d,exports.vwap=T,exports.vwapInto=h,exports.wma=y,exports.wmaInto=c;
2
+ //# sourceMappingURL=indicators.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indicators.cjs","names":["finite","nanArray","n","periodOf","period","smaInto","p","sum","valid","j","from","v","src","i","old","windowMean","k","smoothInto","prev","out","alpha","emaInto","rmaInto","wmaInto","denominator","direct","num","stdevInto","mean","sq","d","rsiInto","change","close","gain","loss","g","l","ok","c","trueRangeInto","range","high","low","pc","kdjInto","m1","kPeriod","m2","dPeriod","hh","ll","q","rsv","pk","pd","DAY","sessionKey","reset","t","time","utcOffset","day","date","vwapInto","tp","volume","same","basePv","pv","baseV","vol","heikinAshiInto","open","prevOpen","prevClose","o","sma","values","ema","wma","bollinger","middle","upper","lower","dev","multiplier","macd","f","s","fast","slow","line","sig","signal","histogram","rsi","kdj","atr","tr","vwap","options","heikinAshi","bars","UNIT_MS","parseTimeframe","timeframe","match","count","unit","bucketStart","shift","tf","months","start","monday","isColumns","resampleBars","columns","get","current","bar","m","result"],"sources":["../../../../../charts/src/engine/trading/indicators.ts"],"sourcesContent":["// Technical indicators on columns of numbers (Float64Array out, NaN while\n// an indicator warms up). Every kernel computes the outputs from index\n// `from` on, assuming the outputs before it are up to date: the chart\n// recomputes only the last bar on each tick, even with a million bars.\n\nimport type {\n TradingBar,\n TradingBarColumns,\n TradingBarsInput,\n TradingTimeframe,\n} from \"./types\";\n\ntype Values = ArrayLike<number>;\n\nconst finite = Number.isFinite;\n\n/** Output array of `n` values, NaN-filled */\nconst nanArray = (n: number) => new Float64Array(n).fill(NaN);\n\nconst periodOf = (period: number) => Math.max(1, Math.floor(period) || 1);\n\n// ---------------------------------------------------------------- kernels\n\n/** Simple moving average of `src[0..n)` into `out`, from index `from` */\nexport const smaInto = (\n src: Values,\n n: number,\n period: number,\n out: Float64Array,\n from = 0,\n): void => {\n const p = periodOf(period);\n let sum = 0;\n let valid = 0;\n // the window ending just before `from` (the loop below drops its oldest value)\n for (let j = Math.max(0, from - p); j < from; j++) {\n const v = src[j];\n if (finite(v)) {\n sum += v;\n valid++;\n }\n }\n for (let i = from; i < n; i++) {\n const v = src[i];\n if (finite(v)) {\n sum += v;\n valid++;\n }\n if (i >= p) {\n const old = src[i - p];\n if (finite(old)) {\n sum -= old;\n valid--;\n }\n }\n out[i] = valid === p ? sum / p : NaN;\n }\n};\n\n/** Mean of `src[i-p+1..i]`, NaN unless the window is complete */\nconst windowMean = (src: Values, i: number, p: number) => {\n if (i < p - 1) return NaN;\n let sum = 0;\n for (let k = i - p + 1; k <= i; k++) {\n const v = src[k];\n if (!finite(v)) return NaN;\n sum += v;\n }\n return sum / p;\n};\n\n/**\n * Exponential smoothing with factor `alpha`, seeded with the simple\n * average of the first complete window (the TradingView convention)\n */\nconst smoothInto = (\n src: Values,\n n: number,\n p: number,\n alpha: number,\n out: Float64Array,\n from: number,\n) => {\n for (let i = from; i < n; i++) {\n const v = src[i];\n const prev = i > 0 ? out[i - 1] : NaN;\n if (!finite(v)) out[i] = NaN;\n else if (finite(prev)) out[i] = prev + alpha * (v - prev);\n else out[i] = windowMean(src, i, p);\n }\n};\n\n/** Exponential moving average (alpha = 2 / (period + 1)) */\nexport const emaInto = (\n src: Values,\n n: number,\n period: number,\n out: Float64Array,\n from = 0,\n): void => {\n const p = periodOf(period);\n smoothInto(src, n, p, 2 / (p + 1), out, from);\n};\n\n/** Wilder's moving average (alpha = 1 / period), used by RSI and ATR */\nexport const rmaInto = (\n src: Values,\n n: number,\n period: number,\n out: Float64Array,\n from = 0,\n): void => {\n const p = periodOf(period);\n smoothInto(src, n, p, 1 / p, out, from);\n};\n\n/** Linearly weighted moving average (the newest bar weighs `period`) */\nexport const wmaInto = (\n src: Values,\n n: number,\n period: number,\n out: Float64Array,\n from = 0,\n): void => {\n const p = periodOf(period);\n const denominator = (p * (p + 1)) / 2;\n const direct = (i: number) => {\n if (i < p - 1) return NaN;\n let num = 0;\n for (let k = 0; k < p; k++) {\n const v = src[i - k];\n if (!finite(v)) return NaN;\n num += (p - k) * v;\n }\n return num;\n };\n // numerator of the previous index and the sum of its window\n let num = from > 0 ? direct(from - 1) : NaN;\n let sum = from > 0 ? windowMean(src, from - 1, p) * p : NaN;\n for (let i = from; i < n; i++) {\n const v = src[i];\n if (finite(num) && finite(sum) && finite(v)) {\n num = num - sum + p * v;\n sum = sum + v - (i >= p ? src[i - p] : 0);\n } else {\n num = direct(i);\n sum = windowMean(src, i, p) * p;\n }\n out[i] = finite(num) ? num / denominator : NaN;\n }\n};\n\n/** Population standard deviation over the window (two passes: exact) */\nexport const stdevInto = (\n src: Values,\n n: number,\n period: number,\n out: Float64Array,\n from = 0,\n): void => {\n const p = periodOf(period);\n for (let i = from; i < n; i++) {\n const mean = windowMean(src, i, p);\n if (!finite(mean)) {\n out[i] = NaN;\n continue;\n }\n let sq = 0;\n for (let k = i - p + 1; k <= i; k++) {\n const d = src[k] - mean;\n sq += d * d;\n }\n out[i] = Math.sqrt(sq / p);\n }\n};\n\n/** Highest value of the window ending at each index */\nconst extremeInto = (\n src: Values,\n n: number,\n p: number,\n out: Float64Array,\n from: number,\n highest: boolean,\n) => {\n for (let i = from; i < n; i++) {\n if (i < p - 1) {\n out[i] = NaN;\n continue;\n }\n let m = highest ? -Infinity : Infinity;\n for (let k = i - p + 1; k <= i; k++) {\n const v = src[k];\n if (!finite(v)) {\n m = NaN;\n break;\n }\n if (highest ? v > m : v < m) m = v;\n }\n out[i] = m;\n }\n};\n\n/** RSI with Wilder smoothing; `gain` / `loss` hold the running averages */\nexport const rsiInto = (\n close: Values,\n n: number,\n period: number,\n out: Float64Array,\n gain: Float64Array,\n loss: Float64Array,\n from = 0,\n): void => {\n const p = periodOf(period);\n for (let i = from; i < n; i++) {\n gain[i] = loss[i] = NaN;\n out[i] = NaN;\n if (i === 0) continue;\n const change = close[i] - close[i - 1];\n if (!finite(change)) continue;\n if (finite(gain[i - 1]) && finite(loss[i - 1])) {\n gain[i] = (gain[i - 1] * (p - 1) + Math.max(change, 0)) / p;\n loss[i] = (loss[i - 1] * (p - 1) + Math.max(-change, 0)) / p;\n } else if (i >= p) {\n let g = 0;\n let l = 0;\n let ok = true;\n for (let k = i - p + 1; k <= i; k++) {\n const c = close[k] - close[k - 1];\n if (!finite(c)) {\n ok = false;\n break;\n }\n if (c > 0) g += c;\n else l -= c;\n }\n if (!ok) continue;\n gain[i] = g / p;\n loss[i] = l / p;\n } else {\n continue;\n }\n out[i] =\n loss[i] === 0\n ? gain[i] === 0\n ? 50\n : 100\n : 100 - 100 / (1 + gain[i] / loss[i]);\n }\n};\n\n/** True range of each bar */\nexport const trueRangeInto = (\n high: Values,\n low: Values,\n close: Values,\n n: number,\n out: Float64Array,\n from = 0,\n): void => {\n for (let i = from; i < n; i++) {\n const range = high[i] - low[i];\n if (i === 0 || !finite(close[i - 1])) {\n out[i] = range;\n continue;\n }\n const pc = close[i - 1];\n out[i] = Math.max(range, Math.abs(high[i] - pc), Math.abs(low[i] - pc));\n }\n};\n\n/** KDJ: K and D smoothed from the raw stochastic value (seeded at 50), J = 3K − 2D */\nexport const kdjInto = (\n high: Values,\n low: Values,\n close: Values,\n n: number,\n period: number,\n kPeriod: number,\n dPeriod: number,\n k: Float64Array,\n d: Float64Array,\n j: Float64Array,\n from = 0,\n): void => {\n const p = periodOf(period);\n const m1 = periodOf(kPeriod);\n const m2 = periodOf(dPeriod);\n for (let i = from; i < n; i++) {\n k[i] = d[i] = j[i] = NaN;\n if (i < p - 1) continue;\n let hh = -Infinity;\n let ll = Infinity;\n for (let q = i - p + 1; q <= i; q++) {\n if (high[q] > hh) hh = high[q];\n if (low[q] < ll) ll = low[q];\n }\n const c = close[i];\n if (!finite(hh) || !finite(ll) || !finite(c)) continue;\n const rsv = hh === ll ? 50 : ((c - ll) / (hh - ll)) * 100;\n const pk = i > 0 && finite(k[i - 1]) ? k[i - 1] : 50;\n const pd = i > 0 && finite(d[i - 1]) ? d[i - 1] : 50;\n k[i] = ((m1 - 1) * pk + rsv) / m1;\n d[i] = ((m2 - 1) * pd + k[i]) / m2;\n j[i] = 3 * k[i] - 2 * d[i];\n }\n};\n\nconst DAY = 86_400_000;\n\n/** Session key of a time: bars with the same key are in the same VWAP period */\nexport const sessionKey = (\n time: number,\n reset: \"day\" | \"week\" | \"month\" | \"none\",\n utcOffset = 0,\n): number => {\n if (reset === \"none\") return 0;\n const t = time + utcOffset * 60_000;\n const day = Math.floor(t / DAY);\n if (reset === \"day\") return day;\n // 1970-01-01 is a Thursday: weeks start on Monday\n if (reset === \"week\") return Math.floor((day + 3) / 7);\n const date = new Date(t);\n return date.getUTCFullYear() * 12 + date.getUTCMonth();\n};\n\n/** VWAP; `pv` / `vol` hold the cumulative sums of the period */\nexport const vwapInto = (\n high: Values,\n low: Values,\n close: Values,\n volume: Values,\n time: Values | null,\n n: number,\n reset: \"day\" | \"week\" | \"month\" | \"none\",\n utcOffset: number,\n out: Float64Array,\n pv: Float64Array,\n vol: Float64Array,\n from = 0,\n): void => {\n for (let i = from; i < n; i++) {\n const tp = (high[i] + low[i] + close[i]) / 3;\n const v = finite(volume[i]) ? volume[i] : 0;\n const same =\n i > 0 &&\n (!time ||\n sessionKey(time[i], reset, utcOffset) ===\n sessionKey(time[i - 1], reset, utcOffset));\n const basePv = same && finite(pv[i - 1]) ? pv[i - 1] : 0;\n const baseV = same && finite(vol[i - 1]) ? vol[i - 1] : 0;\n pv[i] = basePv + (finite(tp) ? tp * v : 0);\n vol[i] = baseV + v;\n out[i] = vol[i] > 0 ? pv[i] / vol[i] : finite(tp) ? tp : NaN;\n }\n};\n\n/** Heikin-Ashi bars from regular bars */\nexport const heikinAshiInto = (\n open: Values,\n high: Values,\n low: Values,\n close: Values,\n n: number,\n out: {\n open: Float64Array;\n high: Float64Array;\n low: Float64Array;\n close: Float64Array;\n },\n from = 0,\n): void => {\n for (let i = from; i < n; i++) {\n const c = (open[i] + high[i] + low[i] + close[i]) / 4;\n const prevOpen = i > 0 ? out.open[i - 1] : NaN;\n const prevClose = i > 0 ? out.close[i - 1] : NaN;\n const o =\n finite(prevOpen) && finite(prevClose)\n ? (prevOpen + prevClose) / 2\n : (open[i] + close[i]) / 2;\n out.open[i] = o;\n out.close[i] = c;\n out.high[i] = Math.max(high[i], o, c);\n out.low[i] = Math.min(low[i], o, c);\n }\n};\n\n// ------------------------------------------------------- public functions\n\n/**\n * Simple moving average: the mean of the last `period` values (NaN until\n * `period` values are available)\n */\nexport const sma = (values: Values, period: number): Float64Array => {\n const out = nanArray(values.length);\n smaInto(values, values.length, period, out);\n return out;\n};\n\n/** Exponential moving average, seeded with the simple average of the first `period` values */\nexport const ema = (values: Values, period: number): Float64Array => {\n const out = nanArray(values.length);\n emaInto(values, values.length, period, out);\n return out;\n};\n\n/** Linearly weighted moving average: the newest value weighs `period`, the oldest 1 */\nexport const wma = (values: Values, period: number): Float64Array => {\n const out = nanArray(values.length);\n wmaInto(values, values.length, period, out);\n return out;\n};\n\n/** Bollinger bands: simple average ± `multiplier` population standard deviations */\nexport const bollinger = (\n values: Values,\n period = 20,\n multiplier = 2,\n): { middle: Float64Array; upper: Float64Array; lower: Float64Array } => {\n const n = values.length;\n const middle = nanArray(n);\n const upper = nanArray(n);\n const lower = nanArray(n);\n const dev = nanArray(n);\n smaInto(values, n, period, middle);\n stdevInto(values, n, period, dev);\n for (let i = 0; i < n; i++) {\n upper[i] = middle[i] + multiplier * dev[i];\n lower[i] = middle[i] - multiplier * dev[i];\n }\n return { middle, upper, lower };\n};\n\n/** MACD line (fast EMA − slow EMA), its signal EMA and their difference */\nexport const macd = (\n values: Values,\n fast = 12,\n slow = 26,\n signal = 9,\n): { macd: Float64Array; signal: Float64Array; histogram: Float64Array } => {\n const n = values.length;\n const f = nanArray(n);\n const s = nanArray(n);\n emaInto(values, n, fast, f);\n emaInto(values, n, slow, s);\n const line = nanArray(n);\n for (let i = 0; i < n; i++) line[i] = f[i] - s[i];\n const sig = nanArray(n);\n emaInto(line, n, signal, sig);\n const histogram = nanArray(n);\n for (let i = 0; i < n; i++) histogram[i] = line[i] - sig[i];\n return { macd: line, signal: sig, histogram };\n};\n\n/** Relative strength index (0-100) with Wilder smoothing */\nexport const rsi = (values: Values, period = 14): Float64Array => {\n const n = values.length;\n const out = nanArray(n);\n rsiInto(values, n, period, out, nanArray(n), nanArray(n));\n return out;\n};\n\n/** KDJ stochastic: K and D smoothed (seeded at 50), J = 3K − 2D */\nexport const kdj = (\n high: Values,\n low: Values,\n close: Values,\n period = 9,\n kPeriod = 3,\n dPeriod = 3,\n): { k: Float64Array; d: Float64Array; j: Float64Array } => {\n const n = close.length;\n const k = nanArray(n);\n const d = nanArray(n);\n const j = nanArray(n);\n kdjInto(high, low, close, n, period, kPeriod, dPeriod, k, d, j);\n return { k, d, j };\n};\n\n/** Average true range with Wilder smoothing */\nexport const atr = (\n high: Values,\n low: Values,\n close: Values,\n period = 14,\n): Float64Array => {\n const n = close.length;\n const tr = nanArray(n);\n trueRangeInto(high, low, close, n, tr);\n const out = nanArray(n);\n rmaInto(tr, n, period, out);\n return out;\n};\n\n/**\n * Volume-weighted average of the typical price (high + low + close) / 3,\n * restarting each `reset` period (UTC, or shifted by `utcOffset` minutes);\n * without `time`, a single cumulative average\n */\nexport const vwap = (\n high: Values,\n low: Values,\n close: Values,\n volume: Values,\n options: {\n time?: Values;\n reset?: \"day\" | \"week\" | \"month\" | \"none\";\n utcOffset?: number;\n } = {},\n): Float64Array => {\n const n = close.length;\n const out = nanArray(n);\n vwapInto(\n high,\n low,\n close,\n volume,\n options.time ?? null,\n n,\n options.reset ?? \"day\",\n options.utcOffset ?? 0,\n out,\n nanArray(n),\n nanArray(n),\n );\n return out;\n};\n\n/** Heikin-Ashi bars: averaged bars that smooth out the noise of trends */\nexport const heikinAshi = (bars: {\n open: Values;\n high: Values;\n low: Values;\n close: Values;\n}): {\n open: Float64Array;\n high: Float64Array;\n low: Float64Array;\n close: Float64Array;\n} => {\n const n = bars.close.length;\n const out = {\n open: nanArray(n),\n high: nanArray(n),\n low: nanArray(n),\n close: nanArray(n),\n };\n heikinAshiInto(bars.open, bars.high, bars.low, bars.close, n, out);\n return out;\n};\n\n// -------------------------------------------------------------- timeframes\n\n/** A parsed timeframe: a count of a unit, with its approximate duration */\nexport interface ParsedTimeframe {\n unit: \"ms\" | \"month\";\n count: number;\n /** Approximate duration in ms (30 days per month) */\n ms: number;\n}\n\nconst UNIT_MS: Record<string, number> = {\n s: 1000,\n m: 60_000,\n h: 3_600_000,\n H: 3_600_000,\n d: DAY,\n D: DAY,\n w: 7 * DAY,\n W: 7 * DAY,\n};\n\n/** `\"15m\"` -> 15 minutes, `\"1M\"` -> 1 month; `null` when invalid */\nexport const parseTimeframe = (\n timeframe: TradingTimeframe,\n): ParsedTimeframe | null => {\n if (typeof timeframe === \"number\") {\n return timeframe > 0\n ? { unit: \"ms\", count: timeframe, ms: timeframe }\n : null;\n }\n const match = /^(\\d+(?:\\.\\d+)?)([smhHdDwWM])$/.exec(timeframe.trim());\n if (!match) return null;\n const count = Number(match[1]);\n if (!(count > 0)) return null;\n const unit = match[2];\n if (unit === \"M\") return { unit: \"month\", count, ms: count * 30 * DAY };\n return {\n unit: \"ms\",\n count: count * UNIT_MS[unit],\n ms: count * UNIT_MS[unit],\n };\n};\n\n/** Start of the bucket of `time` (weeks start on Monday, months on the 1st) */\nexport const bucketStart = (\n time: number,\n tf: ParsedTimeframe,\n utcOffset = 0,\n): number => {\n const shift = utcOffset * 60_000;\n const t = time + shift;\n if (tf.unit === \"month\") {\n const date = new Date(t);\n const months = date.getUTCFullYear() * 12 + date.getUTCMonth();\n const start = months - (months % tf.count);\n return Date.UTC(Math.floor(start / 12), start % 12, 1) - shift;\n }\n if (tf.count % (7 * DAY) === 0) {\n // Monday-aligned weeks (the epoch is a Thursday)\n const monday = 4 * DAY;\n return Math.floor((t - monday) / tf.count) * tf.count + monday - shift;\n }\n return Math.floor(t / tf.count) * tf.count - shift;\n};\n\nconst isColumns = (bars: TradingBarsInput): bars is TradingBarColumns =>\n !Array.isArray(bars);\n\n/**\n * Aggregates bars into a longer timeframe (`\"5m\"` bars into `\"1H\"`, ...):\n * first open, highest high, lowest low, last close, summed volume. Buckets\n * are aligned on UTC (or shifted by `utcOffset` minutes); weeks start on\n * Monday. Columns in, columns out (Float64Array).\n */\nexport function resampleBars(\n bars: readonly TradingBar[],\n timeframe: TradingTimeframe,\n utcOffset?: number,\n): TradingBar[];\nexport function resampleBars(\n bars: TradingBarColumns,\n timeframe: TradingTimeframe,\n utcOffset?: number,\n): TradingBarColumns;\nexport function resampleBars(\n bars: TradingBarsInput,\n timeframe: TradingTimeframe,\n utcOffset = 0,\n): TradingBar[] | TradingBarColumns {\n const tf = parseTimeframe(timeframe);\n if (!tf) throw new Error(`Invalid timeframe: ${String(timeframe)}`);\n const columns = isColumns(bars);\n const n = columns ? bars.close.length : bars.length;\n const get = (i: number): TradingBar => {\n if (!columns) return (bars as readonly TradingBar[])[i];\n const c = bars as TradingBarColumns;\n return {\n time: c.time[i],\n open: c.open[i],\n high: c.high[i],\n low: c.low[i],\n close: c.close[i],\n volume: c.volume ? c.volume[i] : undefined,\n };\n };\n const out: TradingBar[] = [];\n let current: TradingBar | null = null;\n for (let i = 0; i < n; i++) {\n const bar = get(i);\n const start = bucketStart(bar.time, tf, utcOffset);\n if (!current || start !== current.time) {\n if (current) out.push(current);\n current = {\n time: start,\n open: bar.open,\n high: bar.high,\n low: bar.low,\n close: bar.close,\n volume: bar.volume ?? 0,\n };\n } else {\n if (bar.high > current.high) current.high = bar.high;\n if (bar.low < current.low) current.low = bar.low;\n current.close = bar.close;\n current.volume = (current.volume ?? 0) + (bar.volume ?? 0);\n }\n }\n if (current) out.push(current);\n if (!columns) return out;\n const m = out.length;\n const result = {\n time: new Float64Array(m),\n open: new Float64Array(m),\n high: new Float64Array(m),\n low: new Float64Array(m),\n close: new Float64Array(m),\n volume: new Float64Array(m),\n };\n out.forEach((bar, i) => {\n result.time[i] = bar.time;\n result.open[i] = bar.open;\n result.high[i] = bar.high;\n result.low[i] = bar.low;\n result.close[i] = bar.close;\n result.volume[i] = bar.volume ?? 0;\n });\n return result;\n}\n\n/** Highest / lowest of a window: exported for the KDJ-like studies of the chart */\nexport const highestInto = (\n src: Values,\n n: number,\n period: number,\n out: Float64Array,\n from = 0,\n): void => extremeInto(src, n, periodOf(period), out, from, true);\n\nexport const lowestInto = (\n src: Values,\n n: number,\n period: number,\n out: Float64Array,\n from = 0,\n): void => extremeInto(src, n, periodOf(period), out, from, false);\n"],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ import { TradingBar, TradingBarColumns, TradingTimeframe } from './types.cjs';
2
+ type Values = ArrayLike<number>;
3
+ /** Simple moving average of `src[0..n)` into `out`, from index `from` */
4
+ export declare const smaInto: (src: Values, n: number, period: number, out: Float64Array, from?: number) => void;
5
+ /** Exponential moving average (alpha = 2 / (period + 1)) */
6
+ export declare const emaInto: (src: Values, n: number, period: number, out: Float64Array, from?: number) => void;
7
+ /** Wilder's moving average (alpha = 1 / period), used by RSI and ATR */
8
+ export declare const rmaInto: (src: Values, n: number, period: number, out: Float64Array, from?: number) => void;
9
+ /** Linearly weighted moving average (the newest bar weighs `period`) */
10
+ export declare const wmaInto: (src: Values, n: number, period: number, out: Float64Array, from?: number) => void;
11
+ /** Population standard deviation over the window (two passes: exact) */
12
+ export declare const stdevInto: (src: Values, n: number, period: number, out: Float64Array, from?: number) => void;
13
+ /** RSI with Wilder smoothing; `gain` / `loss` hold the running averages */
14
+ export declare const rsiInto: (close: Values, n: number, period: number, out: Float64Array, gain: Float64Array, loss: Float64Array, from?: number) => void;
15
+ /** True range of each bar */
16
+ export declare const trueRangeInto: (high: Values, low: Values, close: Values, n: number, out: Float64Array, from?: number) => void;
17
+ /** KDJ: K and D smoothed from the raw stochastic value (seeded at 50), J = 3K − 2D */
18
+ export declare const kdjInto: (high: Values, low: Values, close: Values, n: number, period: number, kPeriod: number, dPeriod: number, k: Float64Array, d: Float64Array, j: Float64Array, from?: number) => void;
19
+ /** Session key of a time: bars with the same key are in the same VWAP period */
20
+ export declare const sessionKey: (time: number, reset: "day" | "week" | "month" | "none", utcOffset?: number) => number;
21
+ /** VWAP; `pv` / `vol` hold the cumulative sums of the period */
22
+ export declare const vwapInto: (high: Values, low: Values, close: Values, volume: Values, time: Values | null, n: number, reset: "day" | "week" | "month" | "none", utcOffset: number, out: Float64Array, pv: Float64Array, vol: Float64Array, from?: number) => void;
23
+ /** Heikin-Ashi bars from regular bars */
24
+ export declare const heikinAshiInto: (open: Values, high: Values, low: Values, close: Values, n: number, out: {
25
+ open: Float64Array;
26
+ high: Float64Array;
27
+ low: Float64Array;
28
+ close: Float64Array;
29
+ }, from?: number) => void;
30
+ /**
31
+ * Simple moving average: the mean of the last `period` values (NaN until
32
+ * `period` values are available)
33
+ */
34
+ export declare const sma: (values: Values, period: number) => Float64Array;
35
+ /** Exponential moving average, seeded with the simple average of the first `period` values */
36
+ export declare const ema: (values: Values, period: number) => Float64Array;
37
+ /** Linearly weighted moving average: the newest value weighs `period`, the oldest 1 */
38
+ export declare const wma: (values: Values, period: number) => Float64Array;
39
+ /** Bollinger bands: simple average ± `multiplier` population standard deviations */
40
+ export declare const bollinger: (values: Values, period?: number, multiplier?: number) => {
41
+ middle: Float64Array;
42
+ upper: Float64Array;
43
+ lower: Float64Array;
44
+ };
45
+ /** MACD line (fast EMA − slow EMA), its signal EMA and their difference */
46
+ export declare const macd: (values: Values, fast?: number, slow?: number, signal?: number) => {
47
+ macd: Float64Array;
48
+ signal: Float64Array;
49
+ histogram: Float64Array;
50
+ };
51
+ /** Relative strength index (0-100) with Wilder smoothing */
52
+ export declare const rsi: (values: Values, period?: number) => Float64Array;
53
+ /** KDJ stochastic: K and D smoothed (seeded at 50), J = 3K − 2D */
54
+ export declare const kdj: (high: Values, low: Values, close: Values, period?: number, kPeriod?: number, dPeriod?: number) => {
55
+ k: Float64Array;
56
+ d: Float64Array;
57
+ j: Float64Array;
58
+ };
59
+ /** Average true range with Wilder smoothing */
60
+ export declare const atr: (high: Values, low: Values, close: Values, period?: number) => Float64Array;
61
+ /**
62
+ * Volume-weighted average of the typical price (high + low + close) / 3,
63
+ * restarting each `reset` period (UTC, or shifted by `utcOffset` minutes);
64
+ * without `time`, a single cumulative average
65
+ */
66
+ export declare const vwap: (high: Values, low: Values, close: Values, volume: Values, options?: {
67
+ time?: Values;
68
+ reset?: "day" | "week" | "month" | "none";
69
+ utcOffset?: number;
70
+ }) => Float64Array;
71
+ /** Heikin-Ashi bars: averaged bars that smooth out the noise of trends */
72
+ export declare const heikinAshi: (bars: {
73
+ open: Values;
74
+ high: Values;
75
+ low: Values;
76
+ close: Values;
77
+ }) => {
78
+ open: Float64Array;
79
+ high: Float64Array;
80
+ low: Float64Array;
81
+ close: Float64Array;
82
+ };
83
+ /** A parsed timeframe: a count of a unit, with its approximate duration */
84
+ export interface ParsedTimeframe {
85
+ unit: "ms" | "month";
86
+ count: number;
87
+ /** Approximate duration in ms (30 days per month) */
88
+ ms: number;
89
+ }
90
+ /** `"15m"` -> 15 minutes, `"1M"` -> 1 month; `null` when invalid */
91
+ export declare const parseTimeframe: (timeframe: TradingTimeframe) => ParsedTimeframe | null;
92
+ /** Start of the bucket of `time` (weeks start on Monday, months on the 1st) */
93
+ export declare const bucketStart: (time: number, tf: ParsedTimeframe, utcOffset?: number) => number;
94
+ /**
95
+ * Aggregates bars into a longer timeframe (`"5m"` bars into `"1H"`, ...):
96
+ * first open, highest high, lowest low, last close, summed volume. Buckets
97
+ * are aligned on UTC (or shifted by `utcOffset` minutes); weeks start on
98
+ * Monday. Columns in, columns out (Float64Array).
99
+ */
100
+ export declare function resampleBars(bars: readonly TradingBar[], timeframe: TradingTimeframe, utcOffset?: number): TradingBar[];
101
+ export declare function resampleBars(bars: TradingBarColumns, timeframe: TradingTimeframe, utcOffset?: number): TradingBarColumns;
102
+ /** Highest / lowest of a window: exported for the KDJ-like studies of the chart */
103
+ export declare const highestInto: (src: Values, n: number, period: number, out: Float64Array, from?: number) => void;
104
+ export declare const lowestInto: (src: Values, n: number, period: number, out: Float64Array, from?: number) => void;
105
+ export {};
@@ -0,0 +1,105 @@
1
+ import { TradingBar, TradingBarColumns, TradingTimeframe } from './types.js';
2
+ type Values = ArrayLike<number>;
3
+ /** Simple moving average of `src[0..n)` into `out`, from index `from` */
4
+ export declare const smaInto: (src: Values, n: number, period: number, out: Float64Array, from?: number) => void;
5
+ /** Exponential moving average (alpha = 2 / (period + 1)) */
6
+ export declare const emaInto: (src: Values, n: number, period: number, out: Float64Array, from?: number) => void;
7
+ /** Wilder's moving average (alpha = 1 / period), used by RSI and ATR */
8
+ export declare const rmaInto: (src: Values, n: number, period: number, out: Float64Array, from?: number) => void;
9
+ /** Linearly weighted moving average (the newest bar weighs `period`) */
10
+ export declare const wmaInto: (src: Values, n: number, period: number, out: Float64Array, from?: number) => void;
11
+ /** Population standard deviation over the window (two passes: exact) */
12
+ export declare const stdevInto: (src: Values, n: number, period: number, out: Float64Array, from?: number) => void;
13
+ /** RSI with Wilder smoothing; `gain` / `loss` hold the running averages */
14
+ export declare const rsiInto: (close: Values, n: number, period: number, out: Float64Array, gain: Float64Array, loss: Float64Array, from?: number) => void;
15
+ /** True range of each bar */
16
+ export declare const trueRangeInto: (high: Values, low: Values, close: Values, n: number, out: Float64Array, from?: number) => void;
17
+ /** KDJ: K and D smoothed from the raw stochastic value (seeded at 50), J = 3K − 2D */
18
+ export declare const kdjInto: (high: Values, low: Values, close: Values, n: number, period: number, kPeriod: number, dPeriod: number, k: Float64Array, d: Float64Array, j: Float64Array, from?: number) => void;
19
+ /** Session key of a time: bars with the same key are in the same VWAP period */
20
+ export declare const sessionKey: (time: number, reset: "day" | "week" | "month" | "none", utcOffset?: number) => number;
21
+ /** VWAP; `pv` / `vol` hold the cumulative sums of the period */
22
+ export declare const vwapInto: (high: Values, low: Values, close: Values, volume: Values, time: Values | null, n: number, reset: "day" | "week" | "month" | "none", utcOffset: number, out: Float64Array, pv: Float64Array, vol: Float64Array, from?: number) => void;
23
+ /** Heikin-Ashi bars from regular bars */
24
+ export declare const heikinAshiInto: (open: Values, high: Values, low: Values, close: Values, n: number, out: {
25
+ open: Float64Array;
26
+ high: Float64Array;
27
+ low: Float64Array;
28
+ close: Float64Array;
29
+ }, from?: number) => void;
30
+ /**
31
+ * Simple moving average: the mean of the last `period` values (NaN until
32
+ * `period` values are available)
33
+ */
34
+ export declare const sma: (values: Values, period: number) => Float64Array;
35
+ /** Exponential moving average, seeded with the simple average of the first `period` values */
36
+ export declare const ema: (values: Values, period: number) => Float64Array;
37
+ /** Linearly weighted moving average: the newest value weighs `period`, the oldest 1 */
38
+ export declare const wma: (values: Values, period: number) => Float64Array;
39
+ /** Bollinger bands: simple average ± `multiplier` population standard deviations */
40
+ export declare const bollinger: (values: Values, period?: number, multiplier?: number) => {
41
+ middle: Float64Array;
42
+ upper: Float64Array;
43
+ lower: Float64Array;
44
+ };
45
+ /** MACD line (fast EMA − slow EMA), its signal EMA and their difference */
46
+ export declare const macd: (values: Values, fast?: number, slow?: number, signal?: number) => {
47
+ macd: Float64Array;
48
+ signal: Float64Array;
49
+ histogram: Float64Array;
50
+ };
51
+ /** Relative strength index (0-100) with Wilder smoothing */
52
+ export declare const rsi: (values: Values, period?: number) => Float64Array;
53
+ /** KDJ stochastic: K and D smoothed (seeded at 50), J = 3K − 2D */
54
+ export declare const kdj: (high: Values, low: Values, close: Values, period?: number, kPeriod?: number, dPeriod?: number) => {
55
+ k: Float64Array;
56
+ d: Float64Array;
57
+ j: Float64Array;
58
+ };
59
+ /** Average true range with Wilder smoothing */
60
+ export declare const atr: (high: Values, low: Values, close: Values, period?: number) => Float64Array;
61
+ /**
62
+ * Volume-weighted average of the typical price (high + low + close) / 3,
63
+ * restarting each `reset` period (UTC, or shifted by `utcOffset` minutes);
64
+ * without `time`, a single cumulative average
65
+ */
66
+ export declare const vwap: (high: Values, low: Values, close: Values, volume: Values, options?: {
67
+ time?: Values;
68
+ reset?: "day" | "week" | "month" | "none";
69
+ utcOffset?: number;
70
+ }) => Float64Array;
71
+ /** Heikin-Ashi bars: averaged bars that smooth out the noise of trends */
72
+ export declare const heikinAshi: (bars: {
73
+ open: Values;
74
+ high: Values;
75
+ low: Values;
76
+ close: Values;
77
+ }) => {
78
+ open: Float64Array;
79
+ high: Float64Array;
80
+ low: Float64Array;
81
+ close: Float64Array;
82
+ };
83
+ /** A parsed timeframe: a count of a unit, with its approximate duration */
84
+ export interface ParsedTimeframe {
85
+ unit: "ms" | "month";
86
+ count: number;
87
+ /** Approximate duration in ms (30 days per month) */
88
+ ms: number;
89
+ }
90
+ /** `"15m"` -> 15 minutes, `"1M"` -> 1 month; `null` when invalid */
91
+ export declare const parseTimeframe: (timeframe: TradingTimeframe) => ParsedTimeframe | null;
92
+ /** Start of the bucket of `time` (weeks start on Monday, months on the 1st) */
93
+ export declare const bucketStart: (time: number, tf: ParsedTimeframe, utcOffset?: number) => number;
94
+ /**
95
+ * Aggregates bars into a longer timeframe (`"5m"` bars into `"1H"`, ...):
96
+ * first open, highest high, lowest low, last close, summed volume. Buckets
97
+ * are aligned on UTC (or shifted by `utcOffset` minutes); weeks start on
98
+ * Monday. Columns in, columns out (Float64Array).
99
+ */
100
+ export declare function resampleBars(bars: readonly TradingBar[], timeframe: TradingTimeframe, utcOffset?: number): TradingBar[];
101
+ export declare function resampleBars(bars: TradingBarColumns, timeframe: TradingTimeframe, utcOffset?: number): TradingBarColumns;
102
+ /** Highest / lowest of a window: exported for the KDJ-like studies of the chart */
103
+ export declare const highestInto: (src: Values, n: number, period: number, out: Float64Array, from?: number) => void;
104
+ export declare const lowestInto: (src: Values, n: number, period: number, out: Float64Array, from?: number) => void;
105
+ export {};