minerva-design 1.3.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1337) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +21 -21
  3. package/custom-elements.json +18546 -7329
  4. package/dist/angular/fesm2022/minerva-angular.mjs +8303 -172
  5. package/dist/angular/fesm2022/minerva-angular.mjs.map +1 -1
  6. package/dist/angular/types/minerva-angular.d.ts +2809 -0
  7. package/dist/charts/canvas.d.cts +8 -3
  8. package/dist/charts/canvas.d.ts +8 -3
  9. package/dist/charts/core.cjs +1 -1
  10. package/dist/charts/core.d.cts +10 -5
  11. package/dist/charts/core.d.ts +10 -5
  12. package/dist/charts/core.js +27 -8
  13. package/dist/charts/engine/axis.cjs +1 -1
  14. package/dist/charts/engine/axis.cjs.map +1 -1
  15. package/dist/charts/engine/axis.js +43 -20
  16. package/dist/charts/engine/axis.js.map +1 -1
  17. package/dist/charts/engine/canvas.cjs +1 -1
  18. package/dist/charts/engine/canvas.cjs.map +1 -1
  19. package/dist/charts/engine/canvas.d.cts +11 -1
  20. package/dist/charts/engine/canvas.d.ts +11 -1
  21. package/dist/charts/engine/canvas.js +193 -116
  22. package/dist/charts/engine/canvas.js.map +1 -1
  23. package/dist/charts/engine/chart.cjs +1 -1
  24. package/dist/charts/engine/chart.cjs.map +1 -1
  25. package/dist/charts/engine/chart.d.cts +1 -1
  26. package/dist/charts/engine/chart.d.ts +1 -1
  27. package/dist/charts/engine/chart.js +486 -350
  28. package/dist/charts/engine/chart.js.map +1 -1
  29. package/dist/charts/engine/color.cjs +1 -1
  30. package/dist/charts/engine/color.cjs.map +1 -1
  31. package/dist/charts/engine/color.d.cts +18 -0
  32. package/dist/charts/engine/color.d.ts +18 -0
  33. package/dist/charts/engine/color.js +47 -1
  34. package/dist/charts/engine/color.js.map +1 -1
  35. package/dist/charts/engine/controller.cjs +2 -2
  36. package/dist/charts/engine/controller.cjs.map +1 -1
  37. package/dist/charts/engine/controller.d.cts +44 -4
  38. package/dist/charts/engine/controller.d.ts +44 -4
  39. package/dist/charts/engine/controller.js +421 -314
  40. package/dist/charts/engine/controller.js.map +1 -1
  41. package/dist/charts/engine/data.cjs +1 -1
  42. package/dist/charts/engine/data.cjs.map +1 -1
  43. package/dist/charts/engine/data.d.cts +9 -1
  44. package/dist/charts/engine/data.d.ts +9 -1
  45. package/dist/charts/engine/data.js +65 -49
  46. package/dist/charts/engine/data.js.map +1 -1
  47. package/dist/charts/engine/defaults.cjs +2 -0
  48. package/dist/charts/engine/defaults.cjs.map +1 -0
  49. package/dist/charts/engine/defaults.d.cts +20 -0
  50. package/dist/charts/engine/defaults.d.ts +20 -0
  51. package/dist/charts/engine/defaults.js +35 -0
  52. package/dist/charts/engine/defaults.js.map +1 -0
  53. package/dist/charts/engine/format.cjs +1 -1
  54. package/dist/charts/engine/format.cjs.map +1 -1
  55. package/dist/charts/engine/format.d.cts +27 -6
  56. package/dist/charts/engine/format.d.ts +27 -6
  57. package/dist/charts/engine/format.js +59 -21
  58. package/dist/charts/engine/format.js.map +1 -1
  59. package/dist/charts/engine/graph/chart.cjs +2 -0
  60. package/dist/charts/engine/graph/chart.cjs.map +1 -0
  61. package/dist/charts/engine/graph/chart.d.cts +3 -0
  62. package/dist/charts/engine/graph/chart.d.ts +3 -0
  63. package/dist/charts/engine/graph/chart.js +1565 -0
  64. package/dist/charts/engine/graph/chart.js.map +1 -0
  65. package/dist/charts/engine/graph/circular.cjs +2 -0
  66. package/dist/charts/engine/graph/circular.cjs.map +1 -0
  67. package/dist/charts/engine/graph/circular.d.cts +16 -0
  68. package/dist/charts/engine/graph/circular.d.ts +16 -0
  69. package/dist/charts/engine/graph/circular.js +62 -0
  70. package/dist/charts/engine/graph/circular.js.map +1 -0
  71. package/dist/charts/engine/graph/dag.cjs +2 -0
  72. package/dist/charts/engine/graph/dag.cjs.map +1 -0
  73. package/dist/charts/engine/graph/dag.d.cts +34 -0
  74. package/dist/charts/engine/graph/dag.d.ts +34 -0
  75. package/dist/charts/engine/graph/dag.js +314 -0
  76. package/dist/charts/engine/graph/dag.js.map +1 -0
  77. package/dist/charts/engine/graph/dom.cjs +2 -0
  78. package/dist/charts/engine/graph/dom.cjs.map +1 -0
  79. package/dist/charts/engine/graph/dom.d.cts +23 -0
  80. package/dist/charts/engine/graph/dom.d.ts +23 -0
  81. package/dist/charts/engine/graph/dom.js +158 -0
  82. package/dist/charts/engine/graph/dom.js.map +1 -0
  83. package/dist/charts/engine/graph/force.cjs +2 -0
  84. package/dist/charts/engine/graph/force.cjs.map +1 -0
  85. package/dist/charts/engine/graph/force.d.cts +67 -0
  86. package/dist/charts/engine/graph/force.d.ts +67 -0
  87. package/dist/charts/engine/graph/force.js +325 -0
  88. package/dist/charts/engine/graph/force.js.map +1 -0
  89. package/dist/charts/engine/graph/geometry.cjs +2 -0
  90. package/dist/charts/engine/graph/geometry.cjs.map +1 -0
  91. package/dist/charts/engine/graph/geometry.d.cts +37 -0
  92. package/dist/charts/engine/graph/geometry.d.ts +37 -0
  93. package/dist/charts/engine/graph/geometry.js +144 -0
  94. package/dist/charts/engine/graph/geometry.js.map +1 -0
  95. package/dist/charts/engine/graph/index.cjs +1 -0
  96. package/dist/charts/engine/graph/index.d.cts +6 -0
  97. package/dist/charts/engine/graph/index.d.ts +6 -0
  98. package/dist/charts/engine/graph/index.js +6 -0
  99. package/dist/charts/engine/graph/labels.cjs +2 -0
  100. package/dist/charts/engine/graph/labels.cjs.map +1 -0
  101. package/dist/charts/engine/graph/labels.d.cts +12 -0
  102. package/dist/charts/engine/graph/labels.d.ts +12 -0
  103. package/dist/charts/engine/graph/labels.js +128 -0
  104. package/dist/charts/engine/graph/labels.js.map +1 -0
  105. package/dist/charts/engine/graph/model.cjs +2 -0
  106. package/dist/charts/engine/graph/model.cjs.map +1 -0
  107. package/dist/charts/engine/graph/model.d.cts +43 -0
  108. package/dist/charts/engine/graph/model.d.ts +43 -0
  109. package/dist/charts/engine/graph/model.js +88 -0
  110. package/dist/charts/engine/graph/model.js.map +1 -0
  111. package/dist/charts/engine/graph/sizing.cjs +2 -0
  112. package/dist/charts/engine/graph/sizing.cjs.map +1 -0
  113. package/dist/charts/engine/graph/sizing.d.cts +33 -0
  114. package/dist/charts/engine/graph/sizing.d.ts +33 -0
  115. package/dist/charts/engine/graph/sizing.js +60 -0
  116. package/dist/charts/engine/graph/sizing.js.map +1 -0
  117. package/dist/charts/engine/graph/tree.cjs +2 -0
  118. package/dist/charts/engine/graph/tree.cjs.map +1 -0
  119. package/dist/charts/engine/graph/tree.d.cts +30 -0
  120. package/dist/charts/engine/graph/tree.d.ts +30 -0
  121. package/dist/charts/engine/graph/tree.js +218 -0
  122. package/dist/charts/engine/graph/tree.js.map +1 -0
  123. package/dist/charts/engine/graph/types.d.cts +626 -0
  124. package/dist/charts/engine/graph/types.d.ts +626 -0
  125. package/dist/charts/engine/graph/worker.cjs +46 -0
  126. package/dist/charts/engine/graph/worker.cjs.map +1 -0
  127. package/dist/charts/engine/graph/worker.d.cts +36 -0
  128. package/dist/charts/engine/graph/worker.d.ts +36 -0
  129. package/dist/charts/engine/graph/worker.js +129 -0
  130. package/dist/charts/engine/graph/worker.js.map +1 -0
  131. package/dist/charts/engine/items.cjs +1 -1
  132. package/dist/charts/engine/items.cjs.map +1 -1
  133. package/dist/charts/engine/items.d.cts +15 -2
  134. package/dist/charts/engine/items.d.ts +15 -2
  135. package/dist/charts/engine/items.js +257 -81
  136. package/dist/charts/engine/items.js.map +1 -1
  137. package/dist/charts/engine/labels.cjs +2 -0
  138. package/dist/charts/engine/labels.cjs.map +1 -0
  139. package/dist/charts/engine/labels.d.cts +13 -0
  140. package/dist/charts/engine/labels.d.ts +13 -0
  141. package/dist/charts/engine/labels.js +98 -0
  142. package/dist/charts/engine/labels.js.map +1 -0
  143. package/dist/charts/engine/layout.cjs +1 -1
  144. package/dist/charts/engine/layout.cjs.map +1 -1
  145. package/dist/charts/engine/layout.d.cts +43 -2
  146. package/dist/charts/engine/layout.d.ts +43 -2
  147. package/dist/charts/engine/layout.js +62 -12
  148. package/dist/charts/engine/layout.js.map +1 -1
  149. package/dist/charts/engine/locale.cjs +2 -0
  150. package/dist/charts/engine/locale.cjs.map +1 -0
  151. package/dist/charts/engine/locale.d.cts +33 -0
  152. package/dist/charts/engine/locale.d.ts +33 -0
  153. package/dist/charts/engine/locale.js +68 -0
  154. package/dist/charts/engine/locale.js.map +1 -0
  155. package/dist/charts/engine/model.cjs +1 -1
  156. package/dist/charts/engine/model.cjs.map +1 -1
  157. package/dist/charts/engine/model.d.cts +77 -2
  158. package/dist/charts/engine/model.d.ts +77 -2
  159. package/dist/charts/engine/model.js +304 -116
  160. package/dist/charts/engine/model.js.map +1 -1
  161. package/dist/charts/engine/orderbook/book.cjs +2 -0
  162. package/dist/charts/engine/orderbook/book.cjs.map +1 -0
  163. package/dist/charts/engine/orderbook/book.d.cts +28 -0
  164. package/dist/charts/engine/orderbook/book.d.ts +28 -0
  165. package/dist/charts/engine/orderbook/book.js +134 -0
  166. package/dist/charts/engine/orderbook/book.js.map +1 -0
  167. package/dist/charts/engine/orderbook/depth.cjs +2 -0
  168. package/dist/charts/engine/orderbook/depth.cjs.map +1 -0
  169. package/dist/charts/engine/orderbook/depth.d.cts +7 -0
  170. package/dist/charts/engine/orderbook/depth.d.ts +7 -0
  171. package/dist/charts/engine/orderbook/depth.js +413 -0
  172. package/dist/charts/engine/orderbook/depth.js.map +1 -0
  173. package/dist/charts/engine/orderbook/format.cjs +2 -0
  174. package/dist/charts/engine/orderbook/format.cjs.map +1 -0
  175. package/dist/charts/engine/orderbook/format.d.cts +49 -0
  176. package/dist/charts/engine/orderbook/format.d.ts +49 -0
  177. package/dist/charts/engine/orderbook/format.js +65 -0
  178. package/dist/charts/engine/orderbook/format.js.map +1 -0
  179. package/dist/charts/engine/orderbook/heatmap.cjs +2 -0
  180. package/dist/charts/engine/orderbook/heatmap.cjs.map +1 -0
  181. package/dist/charts/engine/orderbook/heatmap.d.cts +9 -0
  182. package/dist/charts/engine/orderbook/heatmap.d.ts +9 -0
  183. package/dist/charts/engine/orderbook/heatmap.js +822 -0
  184. package/dist/charts/engine/orderbook/heatmap.js.map +1 -0
  185. package/dist/charts/engine/orderbook/host.cjs +2 -0
  186. package/dist/charts/engine/orderbook/host.cjs.map +1 -0
  187. package/dist/charts/engine/orderbook/host.d.cts +50 -0
  188. package/dist/charts/engine/orderbook/host.d.ts +50 -0
  189. package/dist/charts/engine/orderbook/host.js +161 -0
  190. package/dist/charts/engine/orderbook/host.js.map +1 -0
  191. package/dist/charts/engine/orderbook/index.cjs +1 -0
  192. package/dist/charts/engine/orderbook/index.d.cts +6 -0
  193. package/dist/charts/engine/orderbook/index.d.ts +6 -0
  194. package/dist/charts/engine/orderbook/index.js +6 -0
  195. package/dist/charts/engine/orderbook/ladder.cjs +2 -0
  196. package/dist/charts/engine/orderbook/ladder.cjs.map +1 -0
  197. package/dist/charts/engine/orderbook/ladder.d.cts +6 -0
  198. package/dist/charts/engine/orderbook/ladder.d.ts +6 -0
  199. package/dist/charts/engine/orderbook/ladder.js +341 -0
  200. package/dist/charts/engine/orderbook/ladder.js.map +1 -0
  201. package/dist/charts/engine/orderbook/layout.cjs +2 -0
  202. package/dist/charts/engine/orderbook/layout.cjs.map +1 -0
  203. package/dist/charts/engine/orderbook/layout.d.cts +37 -0
  204. package/dist/charts/engine/orderbook/layout.d.ts +37 -0
  205. package/dist/charts/engine/orderbook/layout.js +70 -0
  206. package/dist/charts/engine/orderbook/layout.js.map +1 -0
  207. package/dist/charts/engine/orderbook/tape.cjs +2 -0
  208. package/dist/charts/engine/orderbook/tape.cjs.map +1 -0
  209. package/dist/charts/engine/orderbook/tape.d.cts +6 -0
  210. package/dist/charts/engine/orderbook/tape.d.ts +6 -0
  211. package/dist/charts/engine/orderbook/tape.js +450 -0
  212. package/dist/charts/engine/orderbook/tape.js.map +1 -0
  213. package/dist/charts/engine/orderbook/types.d.cts +751 -0
  214. package/dist/charts/engine/orderbook/types.d.ts +751 -0
  215. package/dist/charts/engine/overlay.cjs +1 -1
  216. package/dist/charts/engine/overlay.cjs.map +1 -1
  217. package/dist/charts/engine/overlay.d.cts +28 -2
  218. package/dist/charts/engine/overlay.d.ts +28 -2
  219. package/dist/charts/engine/overlay.js +138 -96
  220. package/dist/charts/engine/overlay.js.map +1 -1
  221. package/dist/charts/engine/presets.cjs +2 -2
  222. package/dist/charts/engine/presets.cjs.map +1 -1
  223. package/dist/charts/engine/presets.d.cts +273 -3
  224. package/dist/charts/engine/presets.d.ts +273 -3
  225. package/dist/charts/engine/presets.js +390 -38
  226. package/dist/charts/engine/presets.js.map +1 -1
  227. package/dist/charts/engine/renderers/detect.cjs +1 -1
  228. package/dist/charts/engine/renderers/detect.cjs.map +1 -1
  229. package/dist/charts/engine/renderers/detect.d.cts +2 -1
  230. package/dist/charts/engine/renderers/detect.d.ts +2 -1
  231. package/dist/charts/engine/renderers/detect.js +24 -19
  232. package/dist/charts/engine/renderers/detect.js.map +1 -1
  233. package/dist/charts/engine/renderers/gl.cjs +2 -0
  234. package/dist/charts/engine/renderers/gl.cjs.map +1 -0
  235. package/dist/charts/engine/renderers/gl.d.cts +21 -0
  236. package/dist/charts/engine/renderers/gl.d.ts +21 -0
  237. package/dist/charts/engine/renderers/gl.js +56 -0
  238. package/dist/charts/engine/renderers/gl.js.map +1 -0
  239. package/dist/charts/engine/renderers/shaders.cjs +143 -1
  240. package/dist/charts/engine/renderers/shaders.cjs.map +1 -1
  241. package/dist/charts/engine/renderers/shaders.d.cts +16 -0
  242. package/dist/charts/engine/renderers/shaders.d.ts +16 -0
  243. package/dist/charts/engine/renderers/shaders.js +139 -1
  244. package/dist/charts/engine/renderers/shaders.js.map +1 -1
  245. package/dist/charts/engine/renderers/webgl.cjs +2 -0
  246. package/dist/charts/engine/renderers/webgl.cjs.map +1 -0
  247. package/dist/charts/engine/renderers/webgl.d.cts +4 -0
  248. package/dist/charts/engine/renderers/webgl.d.ts +4 -0
  249. package/dist/charts/engine/renderers/webgl.js +133 -0
  250. package/dist/charts/engine/renderers/webgl.js.map +1 -0
  251. package/dist/charts/engine/renderers/webgl2.cjs +1 -1
  252. package/dist/charts/engine/renderers/webgl2.cjs.map +1 -1
  253. package/dist/charts/engine/renderers/webgl2.d.cts +0 -1
  254. package/dist/charts/engine/renderers/webgl2.d.ts +0 -1
  255. package/dist/charts/engine/renderers/webgl2.js +59 -108
  256. package/dist/charts/engine/renderers/webgl2.js.map +1 -1
  257. package/dist/charts/engine/scale.cjs +1 -1
  258. package/dist/charts/engine/scale.cjs.map +1 -1
  259. package/dist/charts/engine/scale.js +1 -1
  260. package/dist/charts/engine/scale.js.map +1 -1
  261. package/dist/charts/engine/scene.cjs +1 -1
  262. package/dist/charts/engine/scene.cjs.map +1 -1
  263. package/dist/charts/engine/scene.d.cts +71 -8
  264. package/dist/charts/engine/scene.d.ts +71 -8
  265. package/dist/charts/engine/scene.js +465 -183
  266. package/dist/charts/engine/scene.js.map +1 -1
  267. package/dist/charts/engine/shapes/bullet.cjs +2 -0
  268. package/dist/charts/engine/shapes/bullet.cjs.map +1 -0
  269. package/dist/charts/engine/shapes/bullet.d.cts +6 -0
  270. package/dist/charts/engine/shapes/bullet.d.ts +6 -0
  271. package/dist/charts/engine/shapes/bullet.js +255 -0
  272. package/dist/charts/engine/shapes/bullet.js.map +1 -0
  273. package/dist/charts/engine/shapes/calendar.cjs +2 -0
  274. package/dist/charts/engine/shapes/calendar.cjs.map +1 -0
  275. package/dist/charts/engine/shapes/calendar.d.cts +38 -0
  276. package/dist/charts/engine/shapes/calendar.d.ts +38 -0
  277. package/dist/charts/engine/shapes/calendar.js +369 -0
  278. package/dist/charts/engine/shapes/calendar.js.map +1 -0
  279. package/dist/charts/engine/shapes/canvas.cjs +1 -1
  280. package/dist/charts/engine/shapes/canvas.cjs.map +1 -1
  281. package/dist/charts/engine/shapes/canvas.d.cts +7 -0
  282. package/dist/charts/engine/shapes/canvas.d.ts +7 -0
  283. package/dist/charts/engine/shapes/canvas.js +22 -13
  284. package/dist/charts/engine/shapes/canvas.js.map +1 -1
  285. package/dist/charts/engine/shapes/chart.cjs +1 -1
  286. package/dist/charts/engine/shapes/chart.cjs.map +1 -1
  287. package/dist/charts/engine/shapes/chart.d.cts +3 -2
  288. package/dist/charts/engine/shapes/chart.d.ts +3 -2
  289. package/dist/charts/engine/shapes/chart.js +49 -27
  290. package/dist/charts/engine/shapes/chart.js.map +1 -1
  291. package/dist/charts/engine/shapes/chord.cjs +2 -0
  292. package/dist/charts/engine/shapes/chord.cjs.map +1 -0
  293. package/dist/charts/engine/shapes/chord.d.cts +18 -0
  294. package/dist/charts/engine/shapes/chord.d.ts +18 -0
  295. package/dist/charts/engine/shapes/chord.js +414 -0
  296. package/dist/charts/engine/shapes/chord.js.map +1 -0
  297. package/dist/charts/engine/shapes/draw.cjs +1 -1
  298. package/dist/charts/engine/shapes/draw.cjs.map +1 -1
  299. package/dist/charts/engine/shapes/draw.d.cts +7 -1
  300. package/dist/charts/engine/shapes/draw.d.ts +7 -1
  301. package/dist/charts/engine/shapes/draw.js +62 -19
  302. package/dist/charts/engine/shapes/draw.js.map +1 -1
  303. package/dist/charts/engine/shapes/funnel.cjs +1 -1
  304. package/dist/charts/engine/shapes/funnel.cjs.map +1 -1
  305. package/dist/charts/engine/shapes/funnel.js +3 -3
  306. package/dist/charts/engine/shapes/funnel.js.map +1 -1
  307. package/dist/charts/engine/shapes/gauge.cjs +1 -1
  308. package/dist/charts/engine/shapes/gauge.cjs.map +1 -1
  309. package/dist/charts/engine/shapes/gauge.js +132 -95
  310. package/dist/charts/engine/shapes/gauge.js.map +1 -1
  311. package/dist/charts/engine/shapes/hit.cjs +1 -1
  312. package/dist/charts/engine/shapes/hit.cjs.map +1 -1
  313. package/dist/charts/engine/shapes/hit.d.cts +5 -1
  314. package/dist/charts/engine/shapes/hit.d.ts +5 -1
  315. package/dist/charts/engine/shapes/hit.js +89 -39
  316. package/dist/charts/engine/shapes/hit.js.map +1 -1
  317. package/dist/charts/engine/shapes/index.d.cts +6 -2
  318. package/dist/charts/engine/shapes/index.d.ts +6 -2
  319. package/dist/charts/engine/shapes/labels.cjs +2 -0
  320. package/dist/charts/engine/shapes/labels.cjs.map +1 -0
  321. package/dist/charts/engine/shapes/labels.d.cts +14 -0
  322. package/dist/charts/engine/shapes/labels.d.ts +14 -0
  323. package/dist/charts/engine/shapes/labels.js +154 -0
  324. package/dist/charts/engine/shapes/labels.js.map +1 -0
  325. package/dist/charts/engine/shapes/layout.cjs +2 -2
  326. package/dist/charts/engine/shapes/layout.cjs.map +1 -1
  327. package/dist/charts/engine/shapes/layout.d.cts +10 -3
  328. package/dist/charts/engine/shapes/layout.d.ts +10 -3
  329. package/dist/charts/engine/shapes/layout.js +239 -124
  330. package/dist/charts/engine/shapes/layout.js.map +1 -1
  331. package/dist/charts/engine/shapes/pie.cjs +1 -1
  332. package/dist/charts/engine/shapes/pie.cjs.map +1 -1
  333. package/dist/charts/engine/shapes/pie.js +2 -2
  334. package/dist/charts/engine/shapes/pie.js.map +1 -1
  335. package/dist/charts/engine/shapes/radar.cjs +1 -1
  336. package/dist/charts/engine/shapes/radar.cjs.map +1 -1
  337. package/dist/charts/engine/shapes/radar.d.cts +2 -2
  338. package/dist/charts/engine/shapes/radar.d.ts +2 -2
  339. package/dist/charts/engine/shapes/radar.js +50 -49
  340. package/dist/charts/engine/shapes/radar.js.map +1 -1
  341. package/dist/charts/engine/shapes/radialBar.cjs +2 -0
  342. package/dist/charts/engine/shapes/radialBar.cjs.map +1 -0
  343. package/dist/charts/engine/shapes/radialBar.d.cts +8 -0
  344. package/dist/charts/engine/shapes/radialBar.d.ts +8 -0
  345. package/dist/charts/engine/shapes/radialBar.js +155 -0
  346. package/dist/charts/engine/shapes/radialBar.js.map +1 -0
  347. package/dist/charts/engine/shapes/runtime.cjs +1 -1
  348. package/dist/charts/engine/shapes/runtime.cjs.map +1 -1
  349. package/dist/charts/engine/shapes/runtime.d.cts +9 -2
  350. package/dist/charts/engine/shapes/runtime.d.ts +9 -2
  351. package/dist/charts/engine/shapes/runtime.js +61 -51
  352. package/dist/charts/engine/shapes/runtime.js.map +1 -1
  353. package/dist/charts/engine/shapes/sankey.cjs +2 -0
  354. package/dist/charts/engine/shapes/sankey.cjs.map +1 -0
  355. package/dist/charts/engine/shapes/sankey.d.cts +29 -0
  356. package/dist/charts/engine/shapes/sankey.d.ts +29 -0
  357. package/dist/charts/engine/shapes/sankey.js +372 -0
  358. package/dist/charts/engine/shapes/sankey.js.map +1 -0
  359. package/dist/charts/engine/shapes/scene.cjs +1 -1
  360. package/dist/charts/engine/shapes/scene.cjs.map +1 -1
  361. package/dist/charts/engine/shapes/scene.d.cts +92 -8
  362. package/dist/charts/engine/shapes/scene.d.ts +92 -8
  363. package/dist/charts/engine/shapes/scene.js +76 -31
  364. package/dist/charts/engine/shapes/scene.js.map +1 -1
  365. package/dist/charts/engine/shapes/sunburst.cjs +2 -0
  366. package/dist/charts/engine/shapes/sunburst.cjs.map +1 -0
  367. package/dist/charts/engine/shapes/sunburst.d.cts +6 -0
  368. package/dist/charts/engine/shapes/sunburst.d.ts +6 -0
  369. package/dist/charts/engine/shapes/sunburst.js +261 -0
  370. package/dist/charts/engine/shapes/sunburst.js.map +1 -0
  371. package/dist/charts/engine/shapes/treemap.cjs +1 -1
  372. package/dist/charts/engine/shapes/treemap.cjs.map +1 -1
  373. package/dist/charts/engine/shapes/treemap.js +2 -2
  374. package/dist/charts/engine/shapes/treemap.js.map +1 -1
  375. package/dist/charts/engine/shapes/types.d.cts +550 -12
  376. package/dist/charts/engine/shapes/types.d.ts +550 -12
  377. package/dist/charts/engine/signature.cjs +1 -1
  378. package/dist/charts/engine/signature.cjs.map +1 -1
  379. package/dist/charts/engine/signature.js +1 -1
  380. package/dist/charts/engine/signature.js.map +1 -1
  381. package/dist/charts/engine/three-d/canvas2d.cjs +2 -0
  382. package/dist/charts/engine/three-d/canvas2d.cjs.map +1 -0
  383. package/dist/charts/engine/three-d/canvas2d.d.cts +7 -0
  384. package/dist/charts/engine/three-d/canvas2d.d.ts +7 -0
  385. package/dist/charts/engine/three-d/canvas2d.js +128 -0
  386. package/dist/charts/engine/three-d/canvas2d.js.map +1 -0
  387. package/dist/charts/engine/three-d/chart.cjs +2 -0
  388. package/dist/charts/engine/three-d/chart.cjs.map +1 -0
  389. package/dist/charts/engine/three-d/chart.d.cts +15 -0
  390. package/dist/charts/engine/three-d/chart.d.ts +15 -0
  391. package/dist/charts/engine/three-d/chart.js +621 -0
  392. package/dist/charts/engine/three-d/chart.js.map +1 -0
  393. package/dist/charts/engine/three-d/colormap.cjs +2 -0
  394. package/dist/charts/engine/three-d/colormap.cjs.map +1 -0
  395. package/dist/charts/engine/three-d/colormap.d.cts +16 -0
  396. package/dist/charts/engine/three-d/colormap.d.ts +16 -0
  397. package/dist/charts/engine/three-d/colormap.js +166 -0
  398. package/dist/charts/engine/three-d/colormap.js.map +1 -0
  399. package/dist/charts/engine/three-d/contours.cjs +2 -0
  400. package/dist/charts/engine/three-d/contours.cjs.map +1 -0
  401. package/dist/charts/engine/three-d/contours.d.cts +7 -0
  402. package/dist/charts/engine/three-d/contours.d.ts +7 -0
  403. package/dist/charts/engine/three-d/contours.js +47 -0
  404. package/dist/charts/engine/three-d/contours.js.map +1 -0
  405. package/dist/charts/engine/three-d/detect.cjs +2 -0
  406. package/dist/charts/engine/three-d/detect.cjs.map +1 -0
  407. package/dist/charts/engine/three-d/detect.d.cts +12 -0
  408. package/dist/charts/engine/three-d/detect.d.ts +12 -0
  409. package/dist/charts/engine/three-d/detect.js +37 -0
  410. package/dist/charts/engine/three-d/detect.js.map +1 -0
  411. package/dist/charts/engine/three-d/dom.cjs +2 -0
  412. package/dist/charts/engine/three-d/dom.cjs.map +1 -0
  413. package/dist/charts/engine/three-d/dom.d.cts +21 -0
  414. package/dist/charts/engine/three-d/dom.d.ts +21 -0
  415. package/dist/charts/engine/three-d/dom.js +98 -0
  416. package/dist/charts/engine/three-d/dom.js.map +1 -0
  417. package/dist/charts/engine/three-d/geometry.cjs +2 -0
  418. package/dist/charts/engine/three-d/geometry.cjs.map +1 -0
  419. package/dist/charts/engine/three-d/geometry.d.cts +82 -0
  420. package/dist/charts/engine/three-d/geometry.d.ts +82 -0
  421. package/dist/charts/engine/three-d/geometry.js +545 -0
  422. package/dist/charts/engine/three-d/geometry.js.map +1 -0
  423. package/dist/charts/engine/three-d/hover.cjs +2 -0
  424. package/dist/charts/engine/three-d/hover.cjs.map +1 -0
  425. package/dist/charts/engine/three-d/hover.d.cts +25 -0
  426. package/dist/charts/engine/three-d/hover.d.ts +25 -0
  427. package/dist/charts/engine/three-d/hover.js +131 -0
  428. package/dist/charts/engine/three-d/hover.js.map +1 -0
  429. package/dist/charts/engine/three-d/index.cjs +1 -0
  430. package/dist/charts/engine/three-d/index.d.cts +2 -0
  431. package/dist/charts/engine/three-d/index.d.ts +2 -0
  432. package/dist/charts/engine/three-d/index.js +2 -0
  433. package/dist/charts/engine/three-d/labels.cjs +2 -0
  434. package/dist/charts/engine/three-d/labels.cjs.map +1 -0
  435. package/dist/charts/engine/three-d/labels.d.cts +23 -0
  436. package/dist/charts/engine/three-d/labels.d.ts +23 -0
  437. package/dist/charts/engine/three-d/labels.js +136 -0
  438. package/dist/charts/engine/three-d/labels.js.map +1 -0
  439. package/dist/charts/engine/three-d/math.cjs +2 -0
  440. package/dist/charts/engine/three-d/math.cjs.map +1 -0
  441. package/dist/charts/engine/three-d/math.d.cts +84 -0
  442. package/dist/charts/engine/three-d/math.d.ts +84 -0
  443. package/dist/charts/engine/three-d/math.js +150 -0
  444. package/dist/charts/engine/three-d/math.js.map +1 -0
  445. package/dist/charts/engine/three-d/model.cjs +2 -0
  446. package/dist/charts/engine/three-d/model.cjs.map +1 -0
  447. package/dist/charts/engine/three-d/model.d.cts +132 -0
  448. package/dist/charts/engine/three-d/model.d.ts +132 -0
  449. package/dist/charts/engine/three-d/model.js +279 -0
  450. package/dist/charts/engine/three-d/model.js.map +1 -0
  451. package/dist/charts/engine/three-d/overlay.cjs +2 -0
  452. package/dist/charts/engine/three-d/overlay.cjs.map +1 -0
  453. package/dist/charts/engine/three-d/overlay.d.cts +72 -0
  454. package/dist/charts/engine/three-d/overlay.d.ts +72 -0
  455. package/dist/charts/engine/three-d/overlay.js +204 -0
  456. package/dist/charts/engine/three-d/overlay.js.map +1 -0
  457. package/dist/charts/engine/three-d/pick.cjs +2 -0
  458. package/dist/charts/engine/three-d/pick.cjs.map +1 -0
  459. package/dist/charts/engine/three-d/pick.d.cts +52 -0
  460. package/dist/charts/engine/three-d/pick.d.ts +52 -0
  461. package/dist/charts/engine/three-d/pick.js +220 -0
  462. package/dist/charts/engine/three-d/pick.js.map +1 -0
  463. package/dist/charts/engine/three-d/render-types.cjs +2 -0
  464. package/dist/charts/engine/three-d/render-types.cjs.map +1 -0
  465. package/dist/charts/engine/three-d/render-types.d.cts +103 -0
  466. package/dist/charts/engine/three-d/render-types.d.ts +103 -0
  467. package/dist/charts/engine/three-d/render-types.js +12 -0
  468. package/dist/charts/engine/three-d/render-types.js.map +1 -0
  469. package/dist/charts/engine/three-d/shaders.cjs +311 -0
  470. package/dist/charts/engine/three-d/shaders.cjs.map +1 -0
  471. package/dist/charts/engine/three-d/shaders.d.cts +25 -0
  472. package/dist/charts/engine/three-d/shaders.d.ts +25 -0
  473. package/dist/charts/engine/three-d/shaders.js +210 -0
  474. package/dist/charts/engine/three-d/shaders.js.map +1 -0
  475. package/dist/charts/engine/three-d/sort.cjs +2 -0
  476. package/dist/charts/engine/three-d/sort.cjs.map +1 -0
  477. package/dist/charts/engine/three-d/sort.d.cts +29 -0
  478. package/dist/charts/engine/three-d/sort.d.ts +29 -0
  479. package/dist/charts/engine/three-d/sort.js +145 -0
  480. package/dist/charts/engine/three-d/sort.js.map +1 -0
  481. package/dist/charts/engine/three-d/types.d.cts +615 -0
  482. package/dist/charts/engine/three-d/types.d.ts +615 -0
  483. package/dist/charts/engine/three-d/webgl.cjs +2 -0
  484. package/dist/charts/engine/three-d/webgl.cjs.map +1 -0
  485. package/dist/charts/engine/three-d/webgl.d.cts +10 -0
  486. package/dist/charts/engine/three-d/webgl.d.ts +10 -0
  487. package/dist/charts/engine/three-d/webgl.js +132 -0
  488. package/dist/charts/engine/three-d/webgl.js.map +1 -0
  489. package/dist/charts/engine/three-d/webgpu.cjs +2 -0
  490. package/dist/charts/engine/three-d/webgpu.cjs.map +1 -0
  491. package/dist/charts/engine/three-d/webgpu.d.cts +5 -0
  492. package/dist/charts/engine/three-d/webgpu.d.ts +5 -0
  493. package/dist/charts/engine/three-d/webgpu.js +260 -0
  494. package/dist/charts/engine/three-d/webgpu.js.map +1 -0
  495. package/dist/charts/engine/time.cjs +1 -1
  496. package/dist/charts/engine/time.cjs.map +1 -1
  497. package/dist/charts/engine/time.d.cts +13 -4
  498. package/dist/charts/engine/time.d.ts +13 -4
  499. package/dist/charts/engine/time.js +156 -91
  500. package/dist/charts/engine/time.js.map +1 -1
  501. package/dist/charts/engine/trading/chart.cjs +2 -0
  502. package/dist/charts/engine/trading/chart.cjs.map +1 -0
  503. package/dist/charts/engine/trading/chart.d.cts +13 -0
  504. package/dist/charts/engine/trading/chart.d.ts +13 -0
  505. package/dist/charts/engine/trading/chart.js +2206 -0
  506. package/dist/charts/engine/trading/chart.js.map +1 -0
  507. package/dist/charts/engine/trading/drawings.cjs +3 -0
  508. package/dist/charts/engine/trading/drawings.cjs.map +1 -0
  509. package/dist/charts/engine/trading/drawings.d.cts +95 -0
  510. package/dist/charts/engine/trading/drawings.d.ts +95 -0
  511. package/dist/charts/engine/trading/drawings.js +423 -0
  512. package/dist/charts/engine/trading/drawings.js.map +1 -0
  513. package/dist/charts/engine/trading/format.cjs +2 -0
  514. package/dist/charts/engine/trading/format.cjs.map +1 -0
  515. package/dist/charts/engine/trading/format.d.cts +73 -0
  516. package/dist/charts/engine/trading/format.d.ts +73 -0
  517. package/dist/charts/engine/trading/format.js +163 -0
  518. package/dist/charts/engine/trading/format.js.map +1 -0
  519. package/dist/charts/engine/trading/geometry.cjs +2 -0
  520. package/dist/charts/engine/trading/geometry.cjs.map +1 -0
  521. package/dist/charts/engine/trading/geometry.d.cts +55 -0
  522. package/dist/charts/engine/trading/geometry.d.ts +55 -0
  523. package/dist/charts/engine/trading/geometry.js +131 -0
  524. package/dist/charts/engine/trading/geometry.js.map +1 -0
  525. package/dist/charts/engine/trading/index.cjs +1 -0
  526. package/dist/charts/engine/trading/index.d.cts +4 -0
  527. package/dist/charts/engine/trading/index.d.ts +4 -0
  528. package/dist/charts/engine/trading/index.js +4 -0
  529. package/dist/charts/engine/trading/indicators.cjs +2 -0
  530. package/dist/charts/engine/trading/indicators.cjs.map +1 -0
  531. package/dist/charts/engine/trading/indicators.d.cts +275 -0
  532. package/dist/charts/engine/trading/indicators.d.ts +275 -0
  533. package/dist/charts/engine/trading/indicators.js +544 -0
  534. package/dist/charts/engine/trading/indicators.js.map +1 -0
  535. package/dist/charts/engine/trading/labels.cjs +2 -0
  536. package/dist/charts/engine/trading/labels.cjs.map +1 -0
  537. package/dist/charts/engine/trading/labels.d.cts +7 -0
  538. package/dist/charts/engine/trading/labels.d.ts +7 -0
  539. package/dist/charts/engine/trading/labels.js +171 -0
  540. package/dist/charts/engine/trading/labels.js.map +1 -0
  541. package/dist/charts/engine/trading/scale.cjs +2 -0
  542. package/dist/charts/engine/trading/scale.cjs.map +1 -0
  543. package/dist/charts/engine/trading/scale.d.cts +46 -0
  544. package/dist/charts/engine/trading/scale.d.ts +46 -0
  545. package/dist/charts/engine/trading/scale.js +100 -0
  546. package/dist/charts/engine/trading/scale.js.map +1 -0
  547. package/dist/charts/engine/trading/store.cjs +2 -0
  548. package/dist/charts/engine/trading/store.cjs.map +1 -0
  549. package/dist/charts/engine/trading/store.d.cts +83 -0
  550. package/dist/charts/engine/trading/store.d.ts +83 -0
  551. package/dist/charts/engine/trading/store.js +150 -0
  552. package/dist/charts/engine/trading/store.js.map +1 -0
  553. package/dist/charts/engine/trading/studies.cjs +2 -0
  554. package/dist/charts/engine/trading/studies.cjs.map +1 -0
  555. package/dist/charts/engine/trading/studies.d.cts +85 -0
  556. package/dist/charts/engine/trading/studies.d.ts +85 -0
  557. package/dist/charts/engine/trading/studies.js +510 -0
  558. package/dist/charts/engine/trading/studies.js.map +1 -0
  559. package/dist/charts/engine/trading/sync.cjs +2 -0
  560. package/dist/charts/engine/trading/sync.cjs.map +1 -0
  561. package/dist/charts/engine/trading/sync.d.cts +8 -0
  562. package/dist/charts/engine/trading/sync.d.ts +8 -0
  563. package/dist/charts/engine/trading/sync.js +25 -0
  564. package/dist/charts/engine/trading/sync.js.map +1 -0
  565. package/dist/charts/engine/trading/types.d.cts +1131 -0
  566. package/dist/charts/engine/trading/types.d.ts +1131 -0
  567. package/dist/charts/engine/types.d.cts +247 -22
  568. package/dist/charts/engine/types.d.ts +247 -22
  569. package/dist/charts/index.cjs +1 -1
  570. package/dist/charts/index.d.cts +8 -4
  571. package/dist/charts/index.d.ts +8 -4
  572. package/dist/charts/index.js +30 -11
  573. package/dist/charts/react/Chart.cjs +1 -1
  574. package/dist/charts/react/Chart.cjs.map +1 -1
  575. package/dist/charts/react/Chart.d.cts +4 -4
  576. package/dist/charts/react/Chart.d.ts +4 -4
  577. package/dist/charts/react/Chart.js +5 -1
  578. package/dist/charts/react/Chart.js.map +1 -1
  579. package/dist/charts/react/charts.cjs +1 -1
  580. package/dist/charts/react/charts.cjs.map +1 -1
  581. package/dist/charts/react/charts.d.cts +39 -1
  582. package/dist/charts/react/charts.d.ts +39 -1
  583. package/dist/charts/react/charts.js +312 -128
  584. package/dist/charts/react/charts.js.map +1 -1
  585. package/dist/charts/react/graph.cjs +2 -0
  586. package/dist/charts/react/graph.cjs.map +1 -0
  587. package/dist/charts/react/graph.d.cts +213 -0
  588. package/dist/charts/react/graph.d.ts +213 -0
  589. package/dist/charts/react/graph.js +159 -0
  590. package/dist/charts/react/graph.js.map +1 -0
  591. package/dist/charts/react/orderbook.cjs +2 -0
  592. package/dist/charts/react/orderbook.cjs.map +1 -0
  593. package/dist/charts/react/orderbook.d.cts +142 -0
  594. package/dist/charts/react/orderbook.d.ts +142 -0
  595. package/dist/charts/react/orderbook.js +182 -0
  596. package/dist/charts/react/orderbook.js.map +1 -0
  597. package/dist/charts/react/shapes.cjs +1 -1
  598. package/dist/charts/react/shapes.cjs.map +1 -1
  599. package/dist/charts/react/shapes.d.cts +374 -9
  600. package/dist/charts/react/shapes.d.ts +374 -9
  601. package/dist/charts/react/shapes.js +323 -93
  602. package/dist/charts/react/shapes.js.map +1 -1
  603. package/dist/charts/react/three-d.cjs +2 -0
  604. package/dist/charts/react/three-d.cjs.map +1 -0
  605. package/dist/charts/react/three-d.d.cts +151 -0
  606. package/dist/charts/react/three-d.d.ts +151 -0
  607. package/dist/charts/react/three-d.js +154 -0
  608. package/dist/charts/react/three-d.js.map +1 -0
  609. package/dist/charts/react/trading.cjs +2 -0
  610. package/dist/charts/react/trading.cjs.map +1 -0
  611. package/dist/charts/react/trading.d.cts +145 -0
  612. package/dist/charts/react/trading.d.ts +145 -0
  613. package/dist/charts/react/trading.js +126 -0
  614. package/dist/charts/react/trading.js.map +1 -0
  615. package/dist/charts/react/types.d.cts +143 -8
  616. package/dist/charts/react/types.d.ts +143 -8
  617. package/dist/core/contracts.cjs +1 -1
  618. package/dist/core/contracts.cjs.map +1 -1
  619. package/dist/core/contracts.js +1 -1
  620. package/dist/core/contracts.js.map +1 -1
  621. package/dist/native/charts/src/canvas.cjs +1 -1
  622. package/dist/native/charts/src/canvas.js +9 -3
  623. package/dist/native/charts/src/engine/axis.cjs +1 -1
  624. package/dist/native/charts/src/engine/axis.cjs.map +1 -1
  625. package/dist/native/charts/src/engine/axis.js +43 -20
  626. package/dist/native/charts/src/engine/axis.js.map +1 -1
  627. package/dist/native/charts/src/engine/color.cjs +1 -1
  628. package/dist/native/charts/src/engine/color.cjs.map +1 -1
  629. package/dist/native/charts/src/engine/color.js +47 -5
  630. package/dist/native/charts/src/engine/color.js.map +1 -1
  631. package/dist/native/charts/src/engine/controller.cjs +2 -2
  632. package/dist/native/charts/src/engine/controller.cjs.map +1 -1
  633. package/dist/native/charts/src/engine/controller.js +415 -308
  634. package/dist/native/charts/src/engine/controller.js.map +1 -1
  635. package/dist/native/charts/src/engine/data.cjs +1 -1
  636. package/dist/native/charts/src/engine/data.cjs.map +1 -1
  637. package/dist/native/charts/src/engine/data.js +65 -49
  638. package/dist/native/charts/src/engine/data.js.map +1 -1
  639. package/dist/native/charts/src/engine/format.cjs +1 -1
  640. package/dist/native/charts/src/engine/format.cjs.map +1 -1
  641. package/dist/native/charts/src/engine/format.js +59 -21
  642. package/dist/native/charts/src/engine/format.js.map +1 -1
  643. package/dist/native/charts/src/engine/labels.cjs +2 -0
  644. package/dist/native/charts/src/engine/labels.cjs.map +1 -0
  645. package/dist/native/charts/src/engine/labels.js +98 -0
  646. package/dist/native/charts/src/engine/labels.js.map +1 -0
  647. package/dist/native/charts/src/engine/layout.cjs +1 -1
  648. package/dist/native/charts/src/engine/layout.cjs.map +1 -1
  649. package/dist/native/charts/src/engine/layout.js +62 -12
  650. package/dist/native/charts/src/engine/layout.js.map +1 -1
  651. package/dist/native/charts/src/engine/locale.cjs +2 -0
  652. package/dist/native/charts/src/engine/locale.cjs.map +1 -0
  653. package/dist/native/charts/src/engine/locale.js +60 -0
  654. package/dist/native/charts/src/engine/locale.js.map +1 -0
  655. package/dist/native/charts/src/engine/model.cjs +1 -1
  656. package/dist/native/charts/src/engine/model.cjs.map +1 -1
  657. package/dist/native/charts/src/engine/model.js +307 -119
  658. package/dist/native/charts/src/engine/model.js.map +1 -1
  659. package/dist/native/charts/src/engine/overlay.cjs +1 -1
  660. package/dist/native/charts/src/engine/overlay.cjs.map +1 -1
  661. package/dist/native/charts/src/engine/overlay.js +46 -23
  662. package/dist/native/charts/src/engine/overlay.js.map +1 -1
  663. package/dist/native/charts/src/engine/presets.cjs +2 -2
  664. package/dist/native/charts/src/engine/presets.cjs.map +1 -1
  665. package/dist/native/charts/src/engine/presets.js +470 -41
  666. package/dist/native/charts/src/engine/presets.js.map +1 -1
  667. package/dist/native/charts/src/engine/scale.cjs +1 -1
  668. package/dist/native/charts/src/engine/scale.cjs.map +1 -1
  669. package/dist/native/charts/src/engine/scale.js +1 -1
  670. package/dist/native/charts/src/engine/scale.js.map +1 -1
  671. package/dist/native/charts/src/engine/scene.cjs +1 -1
  672. package/dist/native/charts/src/engine/scene.cjs.map +1 -1
  673. package/dist/native/charts/src/engine/scene.js +489 -207
  674. package/dist/native/charts/src/engine/scene.js.map +1 -1
  675. package/dist/native/charts/src/engine/shapes/bullet.cjs +2 -0
  676. package/dist/native/charts/src/engine/shapes/bullet.cjs.map +1 -0
  677. package/dist/native/charts/src/engine/shapes/bullet.js +255 -0
  678. package/dist/native/charts/src/engine/shapes/bullet.js.map +1 -0
  679. package/dist/native/charts/src/engine/shapes/calendar.cjs +2 -0
  680. package/dist/native/charts/src/engine/shapes/calendar.cjs.map +1 -0
  681. package/dist/native/charts/src/engine/shapes/calendar.js +369 -0
  682. package/dist/native/charts/src/engine/shapes/calendar.js.map +1 -0
  683. package/dist/native/charts/src/engine/shapes/canvas.cjs +2 -0
  684. package/dist/native/charts/src/engine/shapes/canvas.cjs.map +1 -0
  685. package/dist/native/charts/src/engine/shapes/canvas.js +168 -0
  686. package/dist/native/charts/src/engine/shapes/canvas.js.map +1 -0
  687. package/dist/native/charts/src/engine/shapes/chord.cjs +2 -0
  688. package/dist/native/charts/src/engine/shapes/chord.cjs.map +1 -0
  689. package/dist/native/charts/src/engine/shapes/chord.js +414 -0
  690. package/dist/native/charts/src/engine/shapes/chord.js.map +1 -0
  691. package/dist/native/charts/src/engine/shapes/draw.cjs +2 -0
  692. package/dist/native/charts/src/engine/shapes/draw.cjs.map +1 -0
  693. package/dist/native/charts/src/engine/shapes/draw.js +195 -0
  694. package/dist/native/charts/src/engine/shapes/draw.js.map +1 -0
  695. package/dist/native/charts/src/engine/shapes/funnel.cjs +2 -0
  696. package/dist/native/charts/src/engine/shapes/funnel.cjs.map +1 -0
  697. package/dist/native/charts/src/engine/shapes/funnel.js +149 -0
  698. package/dist/native/charts/src/engine/shapes/funnel.js.map +1 -0
  699. package/dist/native/charts/src/engine/shapes/gauge.cjs +2 -0
  700. package/dist/native/charts/src/engine/shapes/gauge.cjs.map +1 -0
  701. package/dist/native/charts/src/engine/shapes/gauge.js +210 -0
  702. package/dist/native/charts/src/engine/shapes/gauge.js.map +1 -0
  703. package/dist/native/charts/src/engine/shapes/hit.cjs +2 -0
  704. package/dist/native/charts/src/engine/shapes/hit.cjs.map +1 -0
  705. package/dist/native/charts/src/engine/shapes/hit.js +135 -0
  706. package/dist/native/charts/src/engine/shapes/hit.js.map +1 -0
  707. package/dist/native/charts/src/engine/shapes/labels.cjs +2 -0
  708. package/dist/native/charts/src/engine/shapes/labels.cjs.map +1 -0
  709. package/dist/native/charts/src/engine/shapes/labels.js +154 -0
  710. package/dist/native/charts/src/engine/shapes/labels.js.map +1 -0
  711. package/dist/native/charts/src/engine/shapes/layout.cjs +3 -0
  712. package/dist/native/charts/src/engine/shapes/layout.cjs.map +1 -0
  713. package/dist/native/charts/src/engine/shapes/layout.js +358 -0
  714. package/dist/native/charts/src/engine/shapes/layout.js.map +1 -0
  715. package/dist/native/charts/src/engine/shapes/pie.cjs +2 -0
  716. package/dist/native/charts/src/engine/shapes/pie.cjs.map +1 -0
  717. package/dist/native/charts/src/engine/shapes/pie.js +302 -0
  718. package/dist/native/charts/src/engine/shapes/pie.js.map +1 -0
  719. package/dist/native/charts/src/engine/shapes/radar.cjs +2 -0
  720. package/dist/native/charts/src/engine/shapes/radar.cjs.map +1 -0
  721. package/dist/native/charts/src/engine/shapes/radar.js +198 -0
  722. package/dist/native/charts/src/engine/shapes/radar.js.map +1 -0
  723. package/dist/native/charts/src/engine/shapes/radialBar.cjs +2 -0
  724. package/dist/native/charts/src/engine/shapes/radialBar.cjs.map +1 -0
  725. package/dist/native/charts/src/engine/shapes/radialBar.js +155 -0
  726. package/dist/native/charts/src/engine/shapes/radialBar.js.map +1 -0
  727. package/dist/native/charts/src/engine/shapes/runtime.cjs +2 -0
  728. package/dist/native/charts/src/engine/shapes/runtime.cjs.map +1 -0
  729. package/dist/native/charts/src/engine/shapes/runtime.js +107 -0
  730. package/dist/native/charts/src/engine/shapes/runtime.js.map +1 -0
  731. package/dist/native/charts/src/engine/shapes/sankey.cjs +2 -0
  732. package/dist/native/charts/src/engine/shapes/sankey.cjs.map +1 -0
  733. package/dist/native/charts/src/engine/shapes/sankey.js +372 -0
  734. package/dist/native/charts/src/engine/shapes/sankey.js.map +1 -0
  735. package/dist/native/charts/src/engine/shapes/scene.cjs +2 -0
  736. package/dist/native/charts/src/engine/shapes/scene.cjs.map +1 -0
  737. package/dist/native/charts/src/engine/shapes/scene.js +168 -0
  738. package/dist/native/charts/src/engine/shapes/scene.js.map +1 -0
  739. package/dist/native/charts/src/engine/shapes/sunburst.cjs +2 -0
  740. package/dist/native/charts/src/engine/shapes/sunburst.cjs.map +1 -0
  741. package/dist/native/charts/src/engine/shapes/sunburst.js +261 -0
  742. package/dist/native/charts/src/engine/shapes/sunburst.js.map +1 -0
  743. package/dist/native/charts/src/engine/shapes/treemap.cjs +2 -0
  744. package/dist/native/charts/src/engine/shapes/treemap.cjs.map +1 -0
  745. package/dist/native/charts/src/engine/shapes/treemap.js +213 -0
  746. package/dist/native/charts/src/engine/shapes/treemap.js.map +1 -0
  747. package/dist/native/charts/src/engine/time.cjs +1 -1
  748. package/dist/native/charts/src/engine/time.cjs.map +1 -1
  749. package/dist/native/charts/src/engine/time.js +156 -91
  750. package/dist/native/charts/src/engine/time.js.map +1 -1
  751. package/dist/native/components/Chart/ChartBase.cjs +1 -1
  752. package/dist/native/components/Chart/ChartBase.cjs.map +1 -1
  753. package/dist/native/components/Chart/ChartBase.d.cts +1 -1
  754. package/dist/native/components/Chart/ChartBase.d.ts +1 -1
  755. package/dist/native/components/Chart/ChartBase.js +110 -107
  756. package/dist/native/components/Chart/ChartBase.js.map +1 -1
  757. package/dist/native/components/Chart/charts.cjs +1 -1
  758. package/dist/native/components/Chart/charts.cjs.map +1 -1
  759. package/dist/native/components/Chart/charts.d.cts +6 -1
  760. package/dist/native/components/Chart/charts.d.ts +6 -1
  761. package/dist/native/components/Chart/charts.js +53 -29
  762. package/dist/native/components/Chart/charts.js.map +1 -1
  763. package/dist/native/components/Chart/index.cjs +1 -1
  764. package/dist/native/components/Chart/index.d.cts +1 -1
  765. package/dist/native/components/Chart/index.d.ts +1 -1
  766. package/dist/native/components/Chart/index.js +2 -2
  767. package/dist/native/components/Chart/scene.cjs +1 -1
  768. package/dist/native/components/Chart/scene.cjs.map +1 -1
  769. package/dist/native/components/Chart/scene.js +315 -229
  770. package/dist/native/components/Chart/scene.js.map +1 -1
  771. package/dist/native/components/Chart/types.d.cts +26 -3
  772. package/dist/native/components/Chart/types.d.ts +26 -3
  773. package/dist/native/components/Charts/charts.cjs +2 -0
  774. package/dist/native/components/Charts/charts.cjs.map +1 -0
  775. package/dist/native/components/Charts/charts.d.cts +41 -0
  776. package/dist/native/components/Charts/charts.d.ts +41 -0
  777. package/dist/native/components/Charts/charts.js +350 -0
  778. package/dist/native/components/Charts/charts.js.map +1 -0
  779. package/dist/native/components/Charts/index.cjs +1 -0
  780. package/dist/native/components/Charts/index.d.cts +2 -0
  781. package/dist/native/components/Charts/index.d.ts +2 -0
  782. package/dist/native/components/Charts/index.js +2 -0
  783. package/dist/native/components/Charts/types.d.cts +155 -0
  784. package/dist/native/components/Charts/types.d.ts +155 -0
  785. package/dist/native/components/ShapeChart/ShapeChartBase.cjs +2 -0
  786. package/dist/native/components/ShapeChart/ShapeChartBase.cjs.map +1 -0
  787. package/dist/native/components/ShapeChart/ShapeChartBase.d.cts +24 -0
  788. package/dist/native/components/ShapeChart/ShapeChartBase.d.ts +24 -0
  789. package/dist/native/components/ShapeChart/ShapeChartBase.js +272 -0
  790. package/dist/native/components/ShapeChart/ShapeChartBase.js.map +1 -0
  791. package/dist/native/components/ShapeChart/charts.cjs +2 -0
  792. package/dist/native/components/ShapeChart/charts.cjs.map +1 -0
  793. package/dist/native/components/ShapeChart/charts.d.cts +43 -0
  794. package/dist/native/components/ShapeChart/charts.d.ts +43 -0
  795. package/dist/native/components/ShapeChart/charts.js +429 -0
  796. package/dist/native/components/ShapeChart/charts.js.map +1 -0
  797. package/dist/native/components/ShapeChart/draw.cjs +2 -0
  798. package/dist/native/components/ShapeChart/draw.cjs.map +1 -0
  799. package/dist/native/components/ShapeChart/draw.d.cts +4 -0
  800. package/dist/native/components/ShapeChart/draw.d.ts +4 -0
  801. package/dist/native/components/ShapeChart/draw.js +113 -0
  802. package/dist/native/components/ShapeChart/draw.js.map +1 -0
  803. package/dist/native/components/ShapeChart/geometry.cjs +2 -0
  804. package/dist/native/components/ShapeChart/geometry.cjs.map +1 -0
  805. package/dist/native/components/ShapeChart/geometry.d.cts +71 -0
  806. package/dist/native/components/ShapeChart/geometry.d.ts +71 -0
  807. package/dist/native/components/ShapeChart/geometry.js +681 -0
  808. package/dist/native/components/ShapeChart/geometry.js.map +1 -0
  809. package/dist/native/components/ShapeChart/index.cjs +1 -0
  810. package/dist/native/components/ShapeChart/index.d.cts +2 -0
  811. package/dist/native/components/ShapeChart/index.d.ts +2 -0
  812. package/dist/native/components/ShapeChart/index.js +2 -0
  813. package/dist/native/components/ShapeChart/recorder.cjs +2 -0
  814. package/dist/native/components/ShapeChart/recorder.cjs.map +1 -0
  815. package/dist/native/components/ShapeChart/recorder.d.cts +115 -0
  816. package/dist/native/components/ShapeChart/recorder.d.ts +115 -0
  817. package/dist/native/components/ShapeChart/recorder.js +583 -0
  818. package/dist/native/components/ShapeChart/recorder.js.map +1 -0
  819. package/dist/native/components/ShapeChart/types.d.cts +594 -0
  820. package/dist/native/components/ShapeChart/types.d.ts +594 -0
  821. package/dist/native/index.cjs +1 -1
  822. package/dist/native/index.d.cts +2 -0
  823. package/dist/native/index.d.ts +2 -0
  824. package/dist/native/index.js +14 -10
  825. package/dist/native/manifest.d.cts +6 -4
  826. package/dist/native/manifest.d.ts +6 -4
  827. package/dist/native/source/components/Chart/ChartBase.tsx +8 -1
  828. package/dist/native/source/components/Chart/charts.tsx +42 -6
  829. package/dist/native/source/components/Chart/index.ts +1 -0
  830. package/dist/native/source/components/Chart/scene.tsx +312 -98
  831. package/dist/native/source/components/Chart/types.ts +31 -1
  832. package/dist/native/source/components/Charts/charts.tsx +521 -0
  833. package/dist/native/source/components/Charts/index.ts +14 -0
  834. package/dist/native/source/components/Charts/types.ts +218 -0
  835. package/dist/native/source/components/ShapeChart/ShapeChartBase.tsx +486 -0
  836. package/dist/native/source/components/ShapeChart/charts.tsx +661 -0
  837. package/dist/native/source/components/ShapeChart/draw.tsx +201 -0
  838. package/dist/native/source/components/ShapeChart/geometry.ts +1366 -0
  839. package/dist/native/source/components/ShapeChart/index.ts +16 -0
  840. package/dist/native/source/components/ShapeChart/recorder.ts +845 -0
  841. package/dist/native/source/components/ShapeChart/types.ts +655 -0
  842. package/dist/native/source/index.ts +2 -0
  843. package/dist/native/source/manifest.ts +31 -4
  844. package/dist/taro/charts.d.ts +229 -4
  845. package/dist/taro/index.d.ts +1 -0
  846. package/dist/taro/index.js +8818 -2093
  847. package/dist/taro/manifest.d.ts +1 -0
  848. package/dist/taro/shape-charts.d.ts +629 -0
  849. package/dist/uni/AreaChart.vue +68 -0
  850. package/dist/uni/AreaChart.vue.d.ts +124 -0
  851. package/dist/uni/Badge.vue.d.ts +1 -1
  852. package/dist/uni/BarChart.vue.d.ts +5 -1
  853. package/dist/uni/BoxPlotChart.vue +66 -0
  854. package/dist/uni/BoxPlotChart.vue.d.ts +110 -0
  855. package/dist/uni/BubbleChart.vue +68 -0
  856. package/dist/uni/BubbleChart.vue.d.ts +110 -0
  857. package/dist/uni/BulletChart.vue +86 -0
  858. package/dist/uni/BulletChart.vue.d.ts +114 -0
  859. package/dist/uni/CalendarHeatmap.vue +92 -0
  860. package/dist/uni/CalendarHeatmap.vue.d.ts +131 -0
  861. package/dist/uni/CandlestickChart.vue +66 -0
  862. package/dist/uni/CandlestickChart.vue.d.ts +104 -0
  863. package/dist/uni/Chart.vue.d.ts +4 -0
  864. package/dist/uni/ChordChart.vue +93 -0
  865. package/dist/uni/ChordChart.vue.d.ts +136 -0
  866. package/dist/uni/DonutChart.vue +72 -0
  867. package/dist/uni/DonutChart.vue.d.ts +118 -0
  868. package/dist/uni/FunnelChart.vue +67 -0
  869. package/dist/uni/FunnelChart.vue.d.ts +108 -0
  870. package/dist/uni/GanttChart.vue +67 -0
  871. package/dist/uni/GanttChart.vue.d.ts +127 -0
  872. package/dist/uni/GaugeChart.vue +77 -0
  873. package/dist/uni/GaugeChart.vue.d.ts +127 -0
  874. package/dist/uni/HeatmapChart.vue +66 -0
  875. package/dist/uni/HeatmapChart.vue.d.ts +120 -0
  876. package/dist/uni/HistogramChart.vue +66 -0
  877. package/dist/uni/HistogramChart.vue.d.ts +125 -0
  878. package/dist/uni/HorizontalBarChart.vue +68 -0
  879. package/dist/uni/HorizontalBarChart.vue.d.ts +129 -0
  880. package/dist/uni/Input.vue.d.ts +1 -1
  881. package/dist/uni/LineChart.vue.d.ts +4 -0
  882. package/dist/uni/MixedChart.vue +68 -0
  883. package/dist/uni/MixedChart.vue.d.ts +110 -0
  884. package/dist/uni/NumberInput.vue.d.ts +1 -1
  885. package/dist/uni/PieChart.vue +72 -0
  886. package/dist/uni/PieChart.vue.d.ts +118 -0
  887. package/dist/uni/QuadrantChart.vue.d.ts +4 -0
  888. package/dist/uni/RadarChart.vue +67 -0
  889. package/dist/uni/RadarChart.vue.d.ts +114 -0
  890. package/dist/uni/RadialBarChart.vue +90 -0
  891. package/dist/uni/RadialBarChart.vue.d.ts +136 -0
  892. package/dist/uni/RangeAreaChart.vue +68 -0
  893. package/dist/uni/RangeAreaChart.vue.d.ts +106 -0
  894. package/dist/uni/ResponsiveGrid.vue.d.ts +1 -1
  895. package/dist/uni/SankeyChart.vue +88 -0
  896. package/dist/uni/SankeyChart.vue.d.ts +125 -0
  897. package/dist/uni/ScatterChart.vue.d.ts +4 -0
  898. package/dist/uni/ShapeChart.vue +73 -0
  899. package/dist/uni/ShapeChart.vue.d.ts +54 -0
  900. package/dist/uni/Sparkline.vue +58 -0
  901. package/dist/uni/Sparkline.vue.d.ts +81 -0
  902. package/dist/uni/SunburstChart.vue +90 -0
  903. package/dist/uni/SunburstChart.vue.d.ts +118 -0
  904. package/dist/uni/Textarea.vue.d.ts +1 -1
  905. package/dist/uni/TimePicker.vue.d.ts +1 -1
  906. package/dist/uni/ToastProvider.vue.d.ts +1 -1
  907. package/dist/uni/TreemapChart.vue +65 -0
  908. package/dist/uni/TreemapChart.vue.d.ts +104 -0
  909. package/dist/uni/WaterfallChart.vue +66 -0
  910. package/dist/uni/WaterfallChart.vue.d.ts +134 -0
  911. package/dist/uni/chart-canvas.d.ts +3 -0
  912. package/dist/uni/chart-canvas.js +4 -0
  913. package/dist/uni/chart-types.d.ts +240 -2
  914. package/dist/uni/chart-types.js +198 -0
  915. package/dist/uni/charts-canvas.js +8 -3
  916. package/dist/uni/index.d.ts +27 -1
  917. package/dist/uni/index.js +27 -1
  918. package/dist/uni/manifest.d.ts +279 -0
  919. package/dist/uni/manifest.js +397 -0
  920. package/dist/uni/named-chart-options.d.ts +95 -0
  921. package/dist/uni/named-chart-options.js +173 -0
  922. package/dist/uni/shape-chart-canvas.d.ts +53 -0
  923. package/dist/uni/shape-chart-canvas.js +333 -0
  924. package/dist/uni/shape-chart-types.d.ts +431 -0
  925. package/dist/uni/shape-chart-types.js +305 -0
  926. package/dist/vue/charts-global.d.ts +48 -0
  927. package/dist/vue/charts.d.ts +18 -0
  928. package/dist/vue/charts.js +56 -0
  929. package/dist/vue/charts.js.map +1 -0
  930. package/dist/vue/components/Chart/AreaChart.vue.d.ts +124 -0
  931. package/dist/vue/components/Chart/AreaChart.vue.js +7 -0
  932. package/dist/vue/components/Chart/AreaChart.vue.js.map +1 -0
  933. package/dist/vue/components/Chart/AreaChart.vue_vue_type_script_setup_true_lang.js +49 -0
  934. package/dist/vue/components/Chart/AreaChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  935. package/dist/vue/components/Chart/Bar3DChart.vue.d.ts +132 -0
  936. package/dist/vue/components/Chart/Bar3DChart.vue.js +7 -0
  937. package/dist/vue/components/Chart/Bar3DChart.vue.js.map +1 -0
  938. package/dist/vue/components/Chart/Bar3DChart.vue_vue_type_script_setup_true_lang.js +55 -0
  939. package/dist/vue/components/Chart/Bar3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  940. package/dist/vue/components/Chart/BarChart.vue.d.ts +123 -0
  941. package/dist/vue/components/Chart/BarChart.vue.js +7 -0
  942. package/dist/vue/components/Chart/BarChart.vue.js.map +1 -0
  943. package/dist/vue/components/Chart/BarChart.vue_vue_type_script_setup_true_lang.js +53 -0
  944. package/dist/vue/components/Chart/BarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  945. package/dist/vue/components/Chart/BoxPlotChart.vue.d.ts +120 -0
  946. package/dist/vue/components/Chart/BoxPlotChart.vue.js +7 -0
  947. package/dist/vue/components/Chart/BoxPlotChart.vue.js.map +1 -0
  948. package/dist/vue/components/Chart/BoxPlotChart.vue_vue_type_script_setup_true_lang.js +63 -0
  949. package/dist/vue/components/Chart/BoxPlotChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  950. package/dist/vue/components/Chart/BubbleChart.vue.d.ts +106 -0
  951. package/dist/vue/components/Chart/BubbleChart.vue.js +7 -0
  952. package/dist/vue/components/Chart/BubbleChart.vue.js.map +1 -0
  953. package/dist/vue/components/Chart/BubbleChart.vue_vue_type_script_setup_true_lang.js +52 -0
  954. package/dist/vue/components/Chart/BubbleChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  955. package/dist/vue/components/Chart/BulletChart.vue.d.ts +117 -0
  956. package/dist/vue/components/Chart/BulletChart.vue.js +7 -0
  957. package/dist/vue/components/Chart/BulletChart.vue.js.map +1 -0
  958. package/dist/vue/components/Chart/BulletChart.vue_vue_type_script_setup_true_lang.js +64 -0
  959. package/dist/vue/components/Chart/BulletChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  960. package/dist/vue/components/Chart/CalendarHeatmap.vue.d.ts +144 -0
  961. package/dist/vue/components/Chart/CalendarHeatmap.vue.js +7 -0
  962. package/dist/vue/components/Chart/CalendarHeatmap.vue.js.map +1 -0
  963. package/dist/vue/components/Chart/CalendarHeatmap.vue_vue_type_script_setup_true_lang.js +77 -0
  964. package/dist/vue/components/Chart/CalendarHeatmap.vue_vue_type_script_setup_true_lang.js.map +1 -0
  965. package/dist/vue/components/Chart/CandlestickChart.vue.d.ts +94 -0
  966. package/dist/vue/components/Chart/CandlestickChart.vue.js +7 -0
  967. package/dist/vue/components/Chart/CandlestickChart.vue.js.map +1 -0
  968. package/dist/vue/components/Chart/CandlestickChart.vue_vue_type_script_setup_true_lang.js +44 -0
  969. package/dist/vue/components/Chart/CandlestickChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  970. package/dist/vue/components/Chart/Chart.vue.d.ts +103 -0
  971. package/dist/vue/components/Chart/Chart.vue.js +7 -0
  972. package/dist/vue/components/Chart/Chart.vue.js.map +1 -0
  973. package/dist/vue/components/Chart/Chart.vue_vue_type_script_setup_true_lang.js +47 -0
  974. package/dist/vue/components/Chart/Chart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  975. package/dist/vue/components/Chart/ChordChart.vue.d.ts +153 -0
  976. package/dist/vue/components/Chart/ChordChart.vue.js +7 -0
  977. package/dist/vue/components/Chart/ChordChart.vue.js.map +1 -0
  978. package/dist/vue/components/Chart/ChordChart.vue_vue_type_script_setup_true_lang.js +81 -0
  979. package/dist/vue/components/Chart/ChordChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  980. package/dist/vue/components/Chart/DependencyGraph.vue.d.ts +179 -0
  981. package/dist/vue/components/Chart/DependencyGraph.vue.js +7 -0
  982. package/dist/vue/components/Chart/DependencyGraph.vue.js.map +1 -0
  983. package/dist/vue/components/Chart/DependencyGraph.vue_vue_type_script_setup_true_lang.js +65 -0
  984. package/dist/vue/components/Chart/DependencyGraph.vue_vue_type_script_setup_true_lang.js.map +1 -0
  985. package/dist/vue/components/Chart/DepthChart.vue.d.ts +139 -0
  986. package/dist/vue/components/Chart/DepthChart.vue.js +7 -0
  987. package/dist/vue/components/Chart/DepthChart.vue.js.map +1 -0
  988. package/dist/vue/components/Chart/DepthChart.vue_vue_type_script_setup_true_lang.js +42 -0
  989. package/dist/vue/components/Chart/DepthChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  990. package/dist/vue/components/Chart/DonutChart.vue.d.ts +104 -0
  991. package/dist/vue/components/Chart/DonutChart.vue.js +7 -0
  992. package/dist/vue/components/Chart/DonutChart.vue.js.map +1 -0
  993. package/dist/vue/components/Chart/DonutChart.vue_vue_type_script_setup_true_lang.js +53 -0
  994. package/dist/vue/components/Chart/DonutChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  995. package/dist/vue/components/Chart/FunnelChart.vue.d.ts +105 -0
  996. package/dist/vue/components/Chart/FunnelChart.vue.js +7 -0
  997. package/dist/vue/components/Chart/FunnelChart.vue.js.map +1 -0
  998. package/dist/vue/components/Chart/FunnelChart.vue_vue_type_script_setup_true_lang.js +58 -0
  999. package/dist/vue/components/Chart/FunnelChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1000. package/dist/vue/components/Chart/GanttChart.vue.d.ts +136 -0
  1001. package/dist/vue/components/Chart/GanttChart.vue.js +7 -0
  1002. package/dist/vue/components/Chart/GanttChart.vue.js.map +1 -0
  1003. package/dist/vue/components/Chart/GanttChart.vue_vue_type_script_setup_true_lang.js +101 -0
  1004. package/dist/vue/components/Chart/GanttChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1005. package/dist/vue/components/Chart/GaugeChart.vue.d.ts +132 -0
  1006. package/dist/vue/components/Chart/GaugeChart.vue.js +7 -0
  1007. package/dist/vue/components/Chart/GaugeChart.vue.js.map +1 -0
  1008. package/dist/vue/components/Chart/GaugeChart.vue_vue_type_script_setup_true_lang.js +71 -0
  1009. package/dist/vue/components/Chart/GaugeChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1010. package/dist/vue/components/Chart/GraphChart.vue.d.ts +184 -0
  1011. package/dist/vue/components/Chart/GraphChart.vue.js +7 -0
  1012. package/dist/vue/components/Chart/GraphChart.vue.js.map +1 -0
  1013. package/dist/vue/components/Chart/GraphChart.vue_vue_type_script_setup_true_lang.js +62 -0
  1014. package/dist/vue/components/Chart/GraphChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1015. package/dist/vue/components/Chart/HeatmapChart.vue.d.ts +129 -0
  1016. package/dist/vue/components/Chart/HeatmapChart.vue.js +7 -0
  1017. package/dist/vue/components/Chart/HeatmapChart.vue.js.map +1 -0
  1018. package/dist/vue/components/Chart/HeatmapChart.vue_vue_type_script_setup_true_lang.js +67 -0
  1019. package/dist/vue/components/Chart/HeatmapChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1020. package/dist/vue/components/Chart/HistogramChart.vue.d.ts +132 -0
  1021. package/dist/vue/components/Chart/HistogramChart.vue.js +7 -0
  1022. package/dist/vue/components/Chart/HistogramChart.vue.js.map +1 -0
  1023. package/dist/vue/components/Chart/HistogramChart.vue_vue_type_script_setup_true_lang.js +66 -0
  1024. package/dist/vue/components/Chart/HistogramChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1025. package/dist/vue/components/Chart/HorizontalBarChart.vue.d.ts +121 -0
  1026. package/dist/vue/components/Chart/HorizontalBarChart.vue.js +7 -0
  1027. package/dist/vue/components/Chart/HorizontalBarChart.vue.js.map +1 -0
  1028. package/dist/vue/components/Chart/HorizontalBarChart.vue_vue_type_script_setup_true_lang.js +55 -0
  1029. package/dist/vue/components/Chart/HorizontalBarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1030. package/dist/vue/components/Chart/Line3DChart.vue.d.ts +121 -0
  1031. package/dist/vue/components/Chart/Line3DChart.vue.js +7 -0
  1032. package/dist/vue/components/Chart/Line3DChart.vue.js.map +1 -0
  1033. package/dist/vue/components/Chart/Line3DChart.vue_vue_type_script_setup_true_lang.js +47 -0
  1034. package/dist/vue/components/Chart/Line3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1035. package/dist/vue/components/Chart/LineChart.vue.d.ts +125 -0
  1036. package/dist/vue/components/Chart/LineChart.vue.js +7 -0
  1037. package/dist/vue/components/Chart/LineChart.vue.js.map +1 -0
  1038. package/dist/vue/components/Chart/LineChart.vue_vue_type_script_setup_true_lang.js +50 -0
  1039. package/dist/vue/components/Chart/LineChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1040. package/dist/vue/components/Chart/MixedChart.vue.d.ts +103 -0
  1041. package/dist/vue/components/Chart/MixedChart.vue.js +7 -0
  1042. package/dist/vue/components/Chart/MixedChart.vue.js.map +1 -0
  1043. package/dist/vue/components/Chart/MixedChart.vue_vue_type_script_setup_true_lang.js +47 -0
  1044. package/dist/vue/components/Chart/MixedChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1045. package/dist/vue/components/Chart/OrderBook.vue.d.ts +125 -0
  1046. package/dist/vue/components/Chart/OrderBook.vue.js +7 -0
  1047. package/dist/vue/components/Chart/OrderBook.vue.js.map +1 -0
  1048. package/dist/vue/components/Chart/OrderBook.vue_vue_type_script_setup_true_lang.js +38 -0
  1049. package/dist/vue/components/Chart/OrderBook.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1050. package/dist/vue/components/Chart/OrderBookHeatmap.vue.d.ts +130 -0
  1051. package/dist/vue/components/Chart/OrderBookHeatmap.vue.js +7 -0
  1052. package/dist/vue/components/Chart/OrderBookHeatmap.vue.js.map +1 -0
  1053. package/dist/vue/components/Chart/OrderBookHeatmap.vue_vue_type_script_setup_true_lang.js +46 -0
  1054. package/dist/vue/components/Chart/OrderBookHeatmap.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1055. package/dist/vue/components/Chart/PieChart.vue.d.ts +104 -0
  1056. package/dist/vue/components/Chart/PieChart.vue.js +7 -0
  1057. package/dist/vue/components/Chart/PieChart.vue.js.map +1 -0
  1058. package/dist/vue/components/Chart/PieChart.vue_vue_type_script_setup_true_lang.js +53 -0
  1059. package/dist/vue/components/Chart/PieChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1060. package/dist/vue/components/Chart/QuadrantChart.vue.d.ts +186 -0
  1061. package/dist/vue/components/Chart/QuadrantChart.vue.js +7 -0
  1062. package/dist/vue/components/Chart/QuadrantChart.vue.js.map +1 -0
  1063. package/dist/vue/components/Chart/QuadrantChart.vue_vue_type_script_setup_true_lang.js +107 -0
  1064. package/dist/vue/components/Chart/QuadrantChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1065. package/dist/vue/components/Chart/RadarChart.vue.d.ts +111 -0
  1066. package/dist/vue/components/Chart/RadarChart.vue.js +7 -0
  1067. package/dist/vue/components/Chart/RadarChart.vue.js.map +1 -0
  1068. package/dist/vue/components/Chart/RadarChart.vue_vue_type_script_setup_true_lang.js +61 -0
  1069. package/dist/vue/components/Chart/RadarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1070. package/dist/vue/components/Chart/RadialBarChart.vue.d.ts +147 -0
  1071. package/dist/vue/components/Chart/RadialBarChart.vue.js +7 -0
  1072. package/dist/vue/components/Chart/RadialBarChart.vue.js.map +1 -0
  1073. package/dist/vue/components/Chart/RadialBarChart.vue_vue_type_script_setup_true_lang.js +78 -0
  1074. package/dist/vue/components/Chart/RadialBarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1075. package/dist/vue/components/Chart/RangeAreaChart.vue.d.ts +106 -0
  1076. package/dist/vue/components/Chart/RangeAreaChart.vue.js +7 -0
  1077. package/dist/vue/components/Chart/RangeAreaChart.vue.js.map +1 -0
  1078. package/dist/vue/components/Chart/RangeAreaChart.vue_vue_type_script_setup_true_lang.js +51 -0
  1079. package/dist/vue/components/Chart/RangeAreaChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1080. package/dist/vue/components/Chart/SankeyChart.vue.d.ts +132 -0
  1081. package/dist/vue/components/Chart/SankeyChart.vue.js +7 -0
  1082. package/dist/vue/components/Chart/SankeyChart.vue.js.map +1 -0
  1083. package/dist/vue/components/Chart/SankeyChart.vue_vue_type_script_setup_true_lang.js +71 -0
  1084. package/dist/vue/components/Chart/SankeyChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1085. package/dist/vue/components/Chart/Scatter3DChart.vue.d.ts +121 -0
  1086. package/dist/vue/components/Chart/Scatter3DChart.vue.js +7 -0
  1087. package/dist/vue/components/Chart/Scatter3DChart.vue.js.map +1 -0
  1088. package/dist/vue/components/Chart/Scatter3DChart.vue_vue_type_script_setup_true_lang.js +47 -0
  1089. package/dist/vue/components/Chart/Scatter3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1090. package/dist/vue/components/Chart/ScatterChart.vue.d.ts +94 -0
  1091. package/dist/vue/components/Chart/ScatterChart.vue.js +7 -0
  1092. package/dist/vue/components/Chart/ScatterChart.vue.js.map +1 -0
  1093. package/dist/vue/components/Chart/ScatterChart.vue_vue_type_script_setup_true_lang.js +44 -0
  1094. package/dist/vue/components/Chart/ScatterChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1095. package/dist/vue/components/Chart/ShapeChart.vue.d.ts +39 -0
  1096. package/dist/vue/components/Chart/ShapeChart.vue.js +7 -0
  1097. package/dist/vue/components/Chart/ShapeChart.vue.js.map +1 -0
  1098. package/dist/vue/components/Chart/ShapeChart.vue_vue_type_script_setup_true_lang.js +43 -0
  1099. package/dist/vue/components/Chart/ShapeChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1100. package/dist/vue/components/Chart/Sparkline.vue.d.ts +90 -0
  1101. package/dist/vue/components/Chart/Sparkline.vue.js +7 -0
  1102. package/dist/vue/components/Chart/Sparkline.vue.js.map +1 -0
  1103. package/dist/vue/components/Chart/Sparkline.vue_vue_type_script_setup_true_lang.js +66 -0
  1104. package/dist/vue/components/Chart/Sparkline.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1105. package/dist/vue/components/Chart/SunburstChart.vue.d.ts +123 -0
  1106. package/dist/vue/components/Chart/SunburstChart.vue.js +7 -0
  1107. package/dist/vue/components/Chart/SunburstChart.vue.js.map +1 -0
  1108. package/dist/vue/components/Chart/SunburstChart.vue_vue_type_script_setup_true_lang.js +68 -0
  1109. package/dist/vue/components/Chart/SunburstChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1110. package/dist/vue/components/Chart/Surface3DChart.vue.d.ts +143 -0
  1111. package/dist/vue/components/Chart/Surface3DChart.vue.js +7 -0
  1112. package/dist/vue/components/Chart/Surface3DChart.vue.js.map +1 -0
  1113. package/dist/vue/components/Chart/Surface3DChart.vue_vue_type_script_setup_true_lang.js +60 -0
  1114. package/dist/vue/components/Chart/Surface3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1115. package/dist/vue/components/Chart/TimeAndSales.vue.d.ts +116 -0
  1116. package/dist/vue/components/Chart/TimeAndSales.vue.js +7 -0
  1117. package/dist/vue/components/Chart/TimeAndSales.vue.js.map +1 -0
  1118. package/dist/vue/components/Chart/TimeAndSales.vue_vue_type_script_setup_true_lang.js +46 -0
  1119. package/dist/vue/components/Chart/TimeAndSales.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1120. package/dist/vue/components/Chart/TradingChart.vue.d.ts +208 -0
  1121. package/dist/vue/components/Chart/TradingChart.vue.js +7 -0
  1122. package/dist/vue/components/Chart/TradingChart.vue.js.map +1 -0
  1123. package/dist/vue/components/Chart/TradingChart.vue_vue_type_script_setup_true_lang.js +101 -0
  1124. package/dist/vue/components/Chart/TradingChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1125. package/dist/vue/components/Chart/TreeChart.vue.d.ts +172 -0
  1126. package/dist/vue/components/Chart/TreeChart.vue.js +7 -0
  1127. package/dist/vue/components/Chart/TreeChart.vue.js.map +1 -0
  1128. package/dist/vue/components/Chart/TreeChart.vue_vue_type_script_setup_true_lang.js +56 -0
  1129. package/dist/vue/components/Chart/TreeChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1130. package/dist/vue/components/Chart/TreemapChart.vue.d.ts +97 -0
  1131. package/dist/vue/components/Chart/TreemapChart.vue.js +7 -0
  1132. package/dist/vue/components/Chart/TreemapChart.vue.js.map +1 -0
  1133. package/dist/vue/components/Chart/TreemapChart.vue_vue_type_script_setup_true_lang.js +54 -0
  1134. package/dist/vue/components/Chart/TreemapChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1135. package/dist/vue/components/Chart/WaterfallChart.vue.d.ts +143 -0
  1136. package/dist/vue/components/Chart/WaterfallChart.vue.js +7 -0
  1137. package/dist/vue/components/Chart/WaterfallChart.vue.js.map +1 -0
  1138. package/dist/vue/components/Chart/WaterfallChart.vue_vue_type_script_setup_true_lang.js +74 -0
  1139. package/dist/vue/components/Chart/WaterfallChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1140. package/dist/vue/components/Chart/cartesian.d.ts +47 -0
  1141. package/dist/vue/components/Chart/cartesian.js +56 -0
  1142. package/dist/vue/components/Chart/cartesian.js.map +1 -0
  1143. package/dist/vue/components/Chart/engine.d.ts +35 -0
  1144. package/dist/vue/components/Chart/engine.js +35 -0
  1145. package/dist/vue/components/Chart/engine.js.map +1 -0
  1146. package/dist/vue/components/Chart/graph.d.ts +153 -0
  1147. package/dist/vue/components/Chart/graph.js +135 -0
  1148. package/dist/vue/components/Chart/graph.js.map +1 -0
  1149. package/dist/vue/components/Chart/index.d.ts +45 -0
  1150. package/dist/vue/components/Chart/index.js +44 -0
  1151. package/dist/vue/components/Chart/orderbook.d.ts +363 -0
  1152. package/dist/vue/components/Chart/orderbook.js +128 -0
  1153. package/dist/vue/components/Chart/orderbook.js.map +1 -0
  1154. package/dist/vue/components/Chart/props.d.ts +188 -0
  1155. package/dist/vue/components/Chart/props.js +92 -0
  1156. package/dist/vue/components/Chart/props.js.map +1 -0
  1157. package/dist/vue/components/Chart/shape.d.ts +41 -0
  1158. package/dist/vue/components/Chart/shape.js +42 -0
  1159. package/dist/vue/components/Chart/shape.js.map +1 -0
  1160. package/dist/vue/components/Chart/three-d.d.ts +106 -0
  1161. package/dist/vue/components/Chart/three-d.js +88 -0
  1162. package/dist/vue/components/Chart/three-d.js.map +1 -0
  1163. package/dist/vue/components/Chart/trading.d.ts +127 -0
  1164. package/dist/vue/components/Chart/trading.js +63 -0
  1165. package/dist/vue/components/Chart/trading.js.map +1 -0
  1166. package/dist/vue/components/Chart/types.d.ts +209 -0
  1167. package/dist/vue/global.d.ts +2 -0
  1168. package/dist/vue/groups/charts.d.ts +1 -0
  1169. package/dist/vue/groups/charts.js +95 -0
  1170. package/dist/vue/groups/charts.js.map +1 -0
  1171. package/dist/vue/index.d.ts +1 -0
  1172. package/dist/vue/index.js +67 -23
  1173. package/dist/vue/internal/register.d.ts +7 -0
  1174. package/dist/vue/internal/register.js +14 -0
  1175. package/dist/vue/internal/register.js.map +1 -0
  1176. package/dist/vue/plugin.d.ts +9 -4
  1177. package/dist/vue/plugin.js +7 -10
  1178. package/dist/vue/plugin.js.map +1 -1
  1179. package/dist/weapp/area-chart/index.js +1 -0
  1180. package/dist/weapp/area-chart/index.json +1 -0
  1181. package/dist/weapp/area-chart/index.wxml +1 -0
  1182. package/dist/weapp/area-chart/index.wxss +1 -0
  1183. package/dist/weapp/box-plot-chart/index.js +1 -0
  1184. package/dist/weapp/box-plot-chart/index.json +1 -0
  1185. package/dist/weapp/box-plot-chart/index.wxml +1 -0
  1186. package/dist/weapp/box-plot-chart/index.wxss +1 -0
  1187. package/dist/weapp/bubble-chart/index.js +1 -0
  1188. package/dist/weapp/bubble-chart/index.json +1 -0
  1189. package/dist/weapp/bubble-chart/index.wxml +1 -0
  1190. package/dist/weapp/bubble-chart/index.wxss +1 -0
  1191. package/dist/weapp/bullet-chart/index.js +1 -0
  1192. package/dist/weapp/bullet-chart/index.json +1 -0
  1193. package/dist/weapp/bullet-chart/index.wxml +1 -0
  1194. package/dist/weapp/bullet-chart/index.wxss +1 -0
  1195. package/dist/weapp/calendar-heatmap/index.js +1 -0
  1196. package/dist/weapp/calendar-heatmap/index.json +1 -0
  1197. package/dist/weapp/calendar-heatmap/index.wxml +1 -0
  1198. package/dist/weapp/calendar-heatmap/index.wxss +1 -0
  1199. package/dist/weapp/candlestick-chart/index.js +1 -0
  1200. package/dist/weapp/candlestick-chart/index.json +1 -0
  1201. package/dist/weapp/candlestick-chart/index.wxml +1 -0
  1202. package/dist/weapp/candlestick-chart/index.wxss +1 -0
  1203. package/dist/weapp/charts/canvas.js +12976 -0
  1204. package/dist/weapp/charts/core.d.ts +2 -0
  1205. package/dist/weapp/charts/core.js +42 -0
  1206. package/dist/weapp/chord-chart/index.js +1 -0
  1207. package/dist/weapp/chord-chart/index.json +1 -0
  1208. package/dist/weapp/chord-chart/index.wxml +1 -0
  1209. package/dist/weapp/chord-chart/index.wxss +1 -0
  1210. package/dist/weapp/controls.js +1495 -4480
  1211. package/dist/weapp/donut-chart/index.js +1 -0
  1212. package/dist/weapp/donut-chart/index.json +1 -0
  1213. package/dist/weapp/donut-chart/index.wxml +1 -0
  1214. package/dist/weapp/donut-chart/index.wxss +1 -0
  1215. package/dist/weapp/funnel-chart/index.js +1 -0
  1216. package/dist/weapp/funnel-chart/index.json +1 -0
  1217. package/dist/weapp/funnel-chart/index.wxml +1 -0
  1218. package/dist/weapp/funnel-chart/index.wxss +1 -0
  1219. package/dist/weapp/gantt-chart/index.js +1 -0
  1220. package/dist/weapp/gantt-chart/index.json +1 -0
  1221. package/dist/weapp/gantt-chart/index.wxml +1 -0
  1222. package/dist/weapp/gantt-chart/index.wxss +1 -0
  1223. package/dist/weapp/gauge-chart/index.js +1 -0
  1224. package/dist/weapp/gauge-chart/index.json +1 -0
  1225. package/dist/weapp/gauge-chart/index.wxml +1 -0
  1226. package/dist/weapp/gauge-chart/index.wxss +1 -0
  1227. package/dist/weapp/heatmap-chart/index.js +1 -0
  1228. package/dist/weapp/heatmap-chart/index.json +1 -0
  1229. package/dist/weapp/heatmap-chart/index.wxml +1 -0
  1230. package/dist/weapp/heatmap-chart/index.wxss +1 -0
  1231. package/dist/weapp/histogram-chart/index.js +1 -0
  1232. package/dist/weapp/histogram-chart/index.json +1 -0
  1233. package/dist/weapp/histogram-chart/index.wxml +1 -0
  1234. package/dist/weapp/histogram-chart/index.wxss +1 -0
  1235. package/dist/weapp/horizontal-bar-chart/index.js +1 -0
  1236. package/dist/weapp/horizontal-bar-chart/index.json +1 -0
  1237. package/dist/weapp/horizontal-bar-chart/index.wxml +1 -0
  1238. package/dist/weapp/horizontal-bar-chart/index.wxss +1 -0
  1239. package/dist/weapp/mixed-chart/index.js +1 -0
  1240. package/dist/weapp/mixed-chart/index.json +1 -0
  1241. package/dist/weapp/mixed-chart/index.wxml +1 -0
  1242. package/dist/weapp/mixed-chart/index.wxss +1 -0
  1243. package/dist/weapp/pie-chart/index.js +1 -0
  1244. package/dist/weapp/pie-chart/index.json +1 -0
  1245. package/dist/weapp/pie-chart/index.wxml +1 -0
  1246. package/dist/weapp/pie-chart/index.wxss +1 -0
  1247. package/dist/weapp/radar-chart/index.js +1 -0
  1248. package/dist/weapp/radar-chart/index.json +1 -0
  1249. package/dist/weapp/radar-chart/index.wxml +1 -0
  1250. package/dist/weapp/radar-chart/index.wxss +1 -0
  1251. package/dist/weapp/radial-bar-chart/index.js +1 -0
  1252. package/dist/weapp/radial-bar-chart/index.json +1 -0
  1253. package/dist/weapp/radial-bar-chart/index.wxml +1 -0
  1254. package/dist/weapp/radial-bar-chart/index.wxss +1 -0
  1255. package/dist/weapp/range-area-chart/index.js +1 -0
  1256. package/dist/weapp/range-area-chart/index.json +1 -0
  1257. package/dist/weapp/range-area-chart/index.wxml +1 -0
  1258. package/dist/weapp/range-area-chart/index.wxss +1 -0
  1259. package/dist/weapp/sankey-chart/index.js +1 -0
  1260. package/dist/weapp/sankey-chart/index.json +1 -0
  1261. package/dist/weapp/sankey-chart/index.wxml +1 -0
  1262. package/dist/weapp/sankey-chart/index.wxss +1 -0
  1263. package/dist/weapp/shape-chart/index.js +1 -0
  1264. package/dist/weapp/shape-chart/index.json +1 -0
  1265. package/dist/weapp/shape-chart/index.wxml +1 -0
  1266. package/dist/weapp/shape-chart/index.wxss +1 -0
  1267. package/dist/weapp/sparkline/index.js +1 -0
  1268. package/dist/weapp/sparkline/index.json +1 -0
  1269. package/dist/weapp/sparkline/index.wxml +1 -0
  1270. package/dist/weapp/sparkline/index.wxss +1 -0
  1271. package/dist/weapp/sunburst-chart/index.js +1 -0
  1272. package/dist/weapp/sunburst-chart/index.json +1 -0
  1273. package/dist/weapp/sunburst-chart/index.wxml +1 -0
  1274. package/dist/weapp/sunburst-chart/index.wxss +1 -0
  1275. package/dist/weapp/treemap-chart/index.js +1 -0
  1276. package/dist/weapp/treemap-chart/index.json +1 -0
  1277. package/dist/weapp/treemap-chart/index.wxml +1 -0
  1278. package/dist/weapp/treemap-chart/index.wxss +1 -0
  1279. package/dist/weapp/types.d.ts +549 -0
  1280. package/dist/weapp/waterfall-chart/index.js +1 -0
  1281. package/dist/weapp/waterfall-chart/index.json +1 -0
  1282. package/dist/weapp/waterfall-chart/index.wxml +1 -0
  1283. package/dist/weapp/waterfall-chart/index.wxss +1 -0
  1284. package/dist/web-components/components/chart/chart.d.ts +58 -0
  1285. package/dist/web-components/components/chart/chart.js +55 -0
  1286. package/dist/web-components/components/chart/chart.js.map +1 -0
  1287. package/dist/web-components/components/chart/charts.d.ts +254 -0
  1288. package/dist/web-components/components/chart/charts.js +208 -0
  1289. package/dist/web-components/components/chart/charts.js.map +1 -0
  1290. package/dist/web-components/components/chart/engine-element.d.ts +53 -0
  1291. package/dist/web-components/components/chart/engine-element.js +77 -0
  1292. package/dist/web-components/components/chart/engine-element.js.map +1 -0
  1293. package/dist/web-components/components/chart/extended.d.ts +234 -0
  1294. package/dist/web-components/components/chart/extended.js +197 -0
  1295. package/dist/web-components/components/chart/extended.js.map +1 -0
  1296. package/dist/web-components/components/chart/series.d.ts +7 -0
  1297. package/dist/web-components/components/chart/series.js +14 -0
  1298. package/dist/web-components/components/chart/series.js.map +1 -0
  1299. package/dist/web-components/components/chart/shape-chart.d.ts +199 -0
  1300. package/dist/web-components/components/chart/shape-chart.js +161 -0
  1301. package/dist/web-components/components/chart/shape-chart.js.map +1 -0
  1302. package/dist/web-components/components/chart/shapes-extended.d.ts +198 -0
  1303. package/dist/web-components/components/chart/shapes-extended.js +182 -0
  1304. package/dist/web-components/components/chart/shapes-extended.js.map +1 -0
  1305. package/dist/web-components/components/chart-3d/chart-3d.d.ts +111 -0
  1306. package/dist/web-components/components/chart-3d/chart-3d.js +97 -0
  1307. package/dist/web-components/components/chart-3d/chart-3d.js.map +1 -0
  1308. package/dist/web-components/components/graph/graph.d.ts +154 -0
  1309. package/dist/web-components/components/graph/graph.js +149 -0
  1310. package/dist/web-components/components/graph/graph.js.map +1 -0
  1311. package/dist/web-components/components/order-book/order-book.d.ts +165 -0
  1312. package/dist/web-components/components/order-book/order-book.js +174 -0
  1313. package/dist/web-components/components/order-book/order-book.js.map +1 -0
  1314. package/dist/web-components/components/trading-chart/trading-chart.d.ts +143 -0
  1315. package/dist/web-components/components/trading-chart/trading-chart.js +158 -0
  1316. package/dist/web-components/components/trading-chart/trading-chart.js.map +1 -0
  1317. package/dist/web-components/elements/chart-3d.d.ts +2 -0
  1318. package/dist/web-components/elements/chart-3d.js +13 -0
  1319. package/dist/web-components/elements/chart-3d.js.map +1 -0
  1320. package/dist/web-components/elements/chart.d.ts +7 -0
  1321. package/dist/web-components/elements/chart.js +44 -0
  1322. package/dist/web-components/elements/chart.js.map +1 -0
  1323. package/dist/web-components/elements/graph.d.ts +2 -0
  1324. package/dist/web-components/elements/graph.js +12 -0
  1325. package/dist/web-components/elements/graph.js.map +1 -0
  1326. package/dist/web-components/elements/order-book.d.ts +2 -0
  1327. package/dist/web-components/elements/order-book.js +13 -0
  1328. package/dist/web-components/elements/order-book.js.map +1 -0
  1329. package/dist/web-components/elements/trading-chart.d.ts +2 -0
  1330. package/dist/web-components/elements/trading-chart.js +8 -0
  1331. package/dist/web-components/elements/trading-chart.js.map +1 -0
  1332. package/dist/web-components/html-custom-data.json +1470 -38
  1333. package/dist/web-components/types/react.d.ts +494 -0
  1334. package/dist/web-components/types/solid.d.ts +368 -0
  1335. package/dist/web-components/types/svelte.d.ts +368 -0
  1336. package/dist/web-components/types/vue.d.ts +410 -0
  1337. package/package.json +128 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"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"),n=require("./sync.cjs");exports.atr=e.atr,exports.bollinger=e.bollinger,exports.cci=e.cci,exports.createTradingChart=t.createTradingChart,exports.dmi=e.dmi,exports.donchian=e.donchian,exports.ema=e.ema,exports.heikinAshi=e.heikinAshi,exports.ichimoku=e.ichimoku,exports.kdj=e.kdj,exports.keltner=e.keltner,exports.macd=e.macd,exports.mfi=e.mfi,exports.obv=e.obv,exports.psar=e.psar,exports.resampleBars=e.resampleBars,exports.rsi=e.rsi,exports.sma=e.sma,exports.stochRsi=e.stochRsi,exports.supertrend=e.supertrend,exports.syncCharts=n.syncCharts,exports.volumeProfile=e.volumeProfile,exports.vwap=e.vwap,exports.williamsR=e.williamsR,exports.wma=e.wma;
@@ -0,0 +1,4 @@
1
+ export type * from './types.cjs';
2
+ export { createTradingChart } from './chart.cjs';
3
+ export { syncCharts } from './sync.cjs';
4
+ export { atr, bollinger, cci, dmi, donchian, ema, heikinAshi, ichimoku, kdj, keltner, macd, mfi, obv, psar, resampleBars, rsi, sma, stochRsi, supertrend, volumeProfile, vwap, williamsR, wma, } from './indicators.cjs';
@@ -0,0 +1,4 @@
1
+ export type * from './types.js';
2
+ export { createTradingChart } from './chart.js';
3
+ export { syncCharts } from './sync.js';
4
+ export { atr, bollinger, cci, dmi, donchian, ema, heikinAshi, ichimoku, kdj, keltner, macd, mfi, obv, psar, resampleBars, rsi, sma, stochRsi, supertrend, volumeProfile, vwap, williamsR, wma, } from './indicators.js';
@@ -0,0 +1,4 @@
1
+ import { atr as e, bollinger as t, cci as n, dmi as r, donchian as i, ema as a, heikinAshi as o, ichimoku as s, kdj as c, keltner as l, macd as u, mfi as d, obv as f, psar as p, resampleBars as m, rsi as h, sma as g, stochRsi as _, supertrend as v, volumeProfile as y, vwap as b, williamsR as x, wma as S } from "./indicators.js";
2
+ import { createTradingChart as C } from "./chart.js";
3
+ import { syncCharts as w } from "./sync.js";
4
+ export { e as atr, t as bollinger, n as cci, C as createTradingChart, r as dmi, i as donchian, a as ema, o as heikinAshi, s as ichimoku, c as kdj, l as keltner, u as macd, d as mfi, f as obv, p as psar, m as resampleBars, h as rsi, g as sma, _ as stochRsi, v as supertrend, w as syncCharts, y as volumeProfile, b as vwap, x as williamsR, S as wma };
@@ -0,0 +1,2 @@
1
+ const e=require("./format.cjs");var t=Number.isFinite,n=e=>new Float64Array(e).fill(NaN),r=e=>Math.max(1,Math.floor(e)||1),i=(e,n,i,a,o=0)=>{let s=r(i),c=0,l=0;for(let n=Math.max(0,o-s);n<o;n++){let r=e[n];t(r)&&(c+=r,l++)}for(let r=o;r<n;r++){let n=e[r];if(t(n)&&(c+=n,l++),r>=s){let n=e[r-s];t(n)&&(c-=n,l--)}a[r]=l===s?c/s:NaN}},a=(e,n,r)=>{if(n<r-1)return NaN;let i=0;for(let a=n-r+1;a<=n;a++){let n=e[a];if(!t(n))return NaN;i+=n}return i/r},o=(e,n,r,i,o,s)=>{for(let c=s;c<n;c++){let n=e[c],s=c>0?o[c-1]:NaN;t(n)?t(s)?o[c]=s+i*(n-s):o[c]=a(e,c,r):o[c]=NaN}},s=(e,t,n,i,a=0)=>{let s=r(n);o(e,t,s,2/(s+1),i,a)},c=(e,t,n,i,a=0)=>{let s=r(n);o(e,t,s,1/s,i,a)},l=(e,n,i,o,s=0)=>{let c=r(i),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=e[n-i];if(!t(a))return NaN;r+=(c-i)*a}return r},d=s>0?u(s-1):NaN,f=s>0?a(e,s-1,c)*c:NaN;for(let r=s;r<n;r++){let n=e[r];t(d)&&t(f)&&t(n)?(d=d-f+c*n,f=f+n-(r>=c?e[r-c]:0)):(d=u(r),f=a(e,r,c)*c),o[r]=t(d)?d/l:NaN}},u=(e,n,i,o,s=0)=>{let c=r(i);for(let r=s;r<n;r++){let n=a(e,r,c);if(!t(n)){o[r]=NaN;continue}let i=0;for(let t=r-c+1;t<=r;t++){let r=e[t]-n;i+=r*r}o[r]=Math.sqrt(i/c)}},d=(e,n,r,i,a,o)=>{let s=new Int32Array(r+1),c=0,l=0,u=-1,d=(e,t)=>o?e>=t:e<=t,f=n=>{let i=e[n];if(!t(i)){u=n,c=l=0;return}for(;l>c&&d(i,e[s[(l-1)%(r+1)]]);)l--;for(s[l%(r+1)]=n,l++;s[c%(r+1)]<=n-r;)c++};for(let e=Math.max(0,a-r+1);e<a;e++)f(e);for(let t=a;t<n;t++)f(t),i[t]=t<r-1||u>t-r||l===c?NaN:e[s[c%(r+1)]]},f=(e,n,i,a,o,s,c=0)=>{let l=r(i);for(let r=c;r<n;r++){if(o[r]=s[r]=NaN,a[r]=NaN,r===0)continue;let n=e[r]-e[r-1];if(t(n)){if(t(o[r-1])&&t(s[r-1]))o[r]=(o[r-1]*(l-1)+Math.max(n,0))/l,s[r]=(s[r-1]*(l-1)+Math.max(-n,0))/l;else if(r>=l){let n=0,i=0,a=!0;for(let o=r-l+1;o<=r;o++){let r=e[o]-e[o-1];if(!t(r)){a=!1;break}r>0?n+=r:i-=r}if(!a)continue;o[r]=n/l,s[r]=i/l}else continue;a[r]=s[r]===0?o[r]===0?50:100:100-100/(1+o[r]/s[r])}}},p=(e,n,r,i,a,o=0)=>{for(let s=o;s<i;s++){let i=e[s]-n[s];if(s===0||!t(r[s-1])){a[s]=i;continue}let o=r[s-1];a[s]=Math.max(i,Math.abs(e[s]-o),Math.abs(n[s]-o))}},m=(e,n,i,a,o,s,c,l,u,d,f=0)=>{let p=r(o),m=r(s),h=r(c);for(let r=f;r<a;r++){if(l[r]=u[r]=d[r]=NaN,r<p-1)continue;let a=-1/0,o=1/0;for(let t=r-p+1;t<=r;t++)e[t]>a&&(a=e[t]),n[t]<o&&(o=n[t]);let s=i[r];if(!t(a)||!t(o)||!t(s))continue;let c=a===o?50:(s-o)/(a-o)*100,f=r>0&&t(l[r-1])?l[r-1]:50,g=r>0&&t(u[r-1])?u[r-1]:50;l[r]=((m-1)*f+c)/m,u[r]=((h-1)*g+l[r])/h,d[r]=3*l[r]-2*u[r]}},h=864e5,g=(t,n,r=0)=>{if(n===`none`)return 0;let i=t+e.offsetOf(r,t)*6e4,a=Math.floor(i/h);if(n===`day`)return a;if(n===`week`)return Math.floor((a+3)/7);let o=new Date(i);return o.getUTCFullYear()*12+o.getUTCMonth()},_=(e,n,r,i,a,o,s,c,l,u,d,f=0)=>{for(let p=f;p<o;p++){let o=(e[p]+n[p]+r[p])/3,f=t(i[p])?i[p]:0,m=p>0&&(!a||g(a[p],s,c)===g(a[p-1],s,c)),h=m&&t(u[p-1])?u[p-1]:0,_=m&&t(d[p-1])?d[p-1]:0;u[p]=h+(t(o)?o*f:0),d[p]=_+f,l[p]=d[p]>0?u[p]/d[p]:t(o)?o:NaN}},v=(e,n,r,i,a,o,s=0)=>{for(let c=s;c<a;c++){let a=(e[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=t(s)&&t(l)?(s+l)/2:(e[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)}},y=(e,n,r,i,a=0)=>{for(let o=a;o<r;o++){if(o===0){i[o]=0;continue}let r=t(n[o])?n[o]:0,a=t(i[o-1])?i[o-1]:0,s=e[o]-e[o-1];i[o]=a+(s>0?r:s<0?-r:0)}},b=(e,t,n,r,i,a)=>{for(let o=a;o<r;o++)i[o]=(e[o]+t[o]+n[o])/3},x=(e,n,a,o,s,c,l,u,d=0)=>{let f=r(s);b(e,n,a,o,l,d),i(l,o,f,u,d);for(let e=d;e<o;e++){let n=u[e];if(!t(n)){c[e]=NaN;continue}let r=0;for(let t=e-f+1;t<=e;t++)r+=Math.abs(l[t]-n);r/=f,c[e]=r===0?0:(l[e]-n)/(.015*r)}},S=(e,n,i,a,o,s,c,l,u=0)=>{let f=r(o);d(e,a,f,c,u,!0),d(n,a,f,l,u,!1);for(let e=u;e<a;e++){let n=c[e],r=l[e];s[e]=!t(n)||!t(r)?NaN:n===r?-50:(n-i[e])/(n-r)*-100}},C=(e,n,i,a,o,s,c,l,u=0)=>{let d=r(s);b(e,n,i,o,l,Math.max(0,u-d-1));for(let e=u;e<o;e++){if(e<d){c[e]=NaN;continue}let n=0,r=0,i=!0;for(let o=e-d+1;o<=e;o++){let e=l[o]*(t(a[o])?a[o]:0);if(!t(e)||!t(l[o-1])){i=!1;break}l[o]>l[o-1]?n+=e:l[o]<l[o-1]&&(r+=e)}c[e]=i?r===0?n===0?50:100:100-100/(1+n/r):NaN}},w=(e,n,a,o,s,c,l,u,p,m=0)=>{let h=r(o);f(e,n,a,p.rsi,p.gain,p.loss,m),d(p.rsi,n,h,p.highest,m,!0),d(p.rsi,n,h,p.lowest,m,!1);for(let e=m;e<n;e++){let n=p.highest[e],r=p.lowest[e];p.raw[e]=!t(n)||!t(r)?NaN:n===r?50:(p.rsi[e]-r)/(n-r)*100}i(p.raw,n,s,l,m),i(l,n,c,u,m)},T=(e,n,r,i,a,o,s,l,u,d,f=0)=>{for(let t=f;t<i;t++){if(t===0){d.tr[t]=d.plusDm[t]=d.minusDm[t]=NaN;continue}let i=e[t]-e[t-1],a=n[t-1]-n[t];d.plusDm[t]=i>a&&i>0?i:0,d.minusDm[t]=a>i&&a>0?a:0;let o=r[t-1];d.tr[t]=Math.max(e[t]-n[t],Math.abs(e[t]-o),Math.abs(n[t]-o))}c(d.tr,i,a,d.smoothTr,f),c(d.plusDm,i,a,d.smoothPlus,f),c(d.minusDm,i,a,d.smoothMinus,f);for(let e=f;e<i;e++){let n=d.smoothTr[e];s[e]=n?100*d.smoothPlus[e]/n:NaN,l[e]=n?100*d.smoothMinus[e]/n:NaN;let r=s[e]+l[e];d.dx[e]=t(r)?r===0?0:100*Math.abs(s[e]-l[e])/r:NaN}c(d.dx,i,o,u,f)},E=(e,n,r,i,a,o,s,c,l=0)=>{let{ep:u,af:d,trend:f}=c;for(let c=l;c<r;c++){if(c===0){s[c]=u[c]=d[c]=f[c]=NaN;continue}if(!t(f[c-1])){let r=e[c]+n[c]>=e[c-1]+n[c-1];s[c]=r?Math.min(n[c-1],n[c]):Math.max(e[c-1],e[c]),u[c]=r?Math.max(e[c-1],e[c]):Math.min(n[c-1],n[c]),d[c]=i,f[c]=t(s[c])?r?1:-1:NaN;continue}let r=u[c-1],l=d[c-1],p=s[c-1]+l*(r-s[c-1]),m=c>=2?c-2:c-1;f[c-1]===1?(p=Math.min(p,n[c-1],n[m]),n[c]<p?(f[c]=-1,p=Math.max(r,e[c]),u[c]=n[c],d[c]=i):(f[c]=1,u[c]=Math.max(r,e[c]),d[c]=e[c]>r?Math.min(l+a,o):l)):(p=Math.max(p,e[c-1],e[m]),e[c]>p?(f[c]=1,p=Math.min(r,n[c]),u[c]=e[c],d[c]=i):(f[c]=-1,u[c]=Math.min(r,n[c]),d[c]=n[c]<r?Math.min(l+a,o):l)),s[c]=p}},D=(e,n,r,i,a,o,s,l,u,d=0)=>{let{tr:f,atr:m,upper:h,lower:g}=u;p(e,n,r,i,f,d),c(f,i,a,m,d);for(let a=d;a<i;a++){let i=m[a];if(!t(i)){s[a]=l[a]=h[a]=g[a]=NaN;continue}let c=(e[a]+n[a])/2,u=c+o*i,d=c-o*i,f=a>0?h[a-1]:NaN,p=a>0?g[a-1]:NaN,_=a>0?r[a-1]:NaN;t(p)&&!(d>p||_<p)&&(d=p),t(f)&&!(u<f||_>f)&&(u=f),h[a]=u,g[a]=d;let v=a>0?l[a-1]:NaN,y=t(v)?v===-1?r[a]>u?1:-1:r[a]<d?-1:1:-1;l[a]=y,s[a]=y===1?d:u}},O=(e,t,n,i,a,o,s,c)=>{let l=r(i);d(e,n,l,o,c,!0),d(t,n,l,s,c,!1);for(let e=c;e<n;e++)a[e]=(o[e]+s[e])/2},k=(e,t,n,r,i,a,o,s,c,l,u,d=0)=>{let{highest:f,lowest:p}=u;O(e,t,n,r,o,f,p,d),O(e,t,n,i,s,f,p,d),O(e,t,n,a,l,f,p,d);for(let e=d;e<n;e++)c[e]=(o[e]+s[e])/2},A=(e,t,n,i,a,o,s,c=0)=>{let l=r(i);d(e,n,l,a,c,!0),d(t,n,l,o,c,!1);for(let e=c;e<n;e++)s[e]=(a[e]+o[e])/2},j=(e,t,n,r,i,a,o,l,u,d,f,m=0)=>{s(n,r,i,l,m),p(e,t,n,r,f.tr,m),c(f.tr,r,o,f.atr,m);for(let e=m;e<r;e++)u[e]=l[e]+a*f.atr[e],d[e]=l[e]-a*f.atr[e]},M=(e,t)=>{let r=n(e.length);return i(e,e.length,t,r),r},ee=(e,t)=>{let r=n(e.length);return s(e,e.length,t,r),r},te=(e,t)=>{let r=n(e.length);return l(e,e.length,t,r),r},ne=(e,t=20,r=2)=>{let a=e.length,o=n(a),s=n(a),c=n(a),l=n(a);i(e,a,t,o),u(e,a,t,l);for(let e=0;e<a;e++)s[e]=o[e]+r*l[e],c[e]=o[e]-r*l[e];return{middle:o,upper:s,lower:c}},re=(e,t=12,r=26,i=9)=>{let a=e.length,o=n(a),c=n(a);s(e,a,t,o),s(e,a,r,c);let l=n(a);for(let e=0;e<a;e++)l[e]=o[e]-c[e];let u=n(a);s(l,a,i,u);let d=n(a);for(let e=0;e<a;e++)d[e]=l[e]-u[e];return{macd:l,signal:u,histogram:d}},N=(e,t=14)=>{let r=e.length,i=n(r);return f(e,r,t,i,n(r),n(r)),i},P=(e,t,r,i=9,a=3,o=3)=>{let s=r.length,c=n(s),l=n(s),u=n(s);return m(e,t,r,s,i,a,o,c,l,u),{k:c,d:l,j:u}},F=(e,t,r,i=14)=>{let a=r.length,o=n(a);p(e,t,r,a,o);let s=n(a);return c(o,a,i,s),s},I=(t,r,i,a,o={})=>{let s=i.length,c=n(s),l=o.timeZone;return _(t,r,i,a,o.time??null,s,o.reset??`day`,o.utcOffset??(l?t=>e.zoneOffset(t,l):0),c,n(s),n(s)),c},L=e=>{let t=e.close.length,r={open:n(t),high:n(t),low:n(t),close:n(t)};return v(e.open,e.high,e.low,e.close,t,r),r},R=(e,t)=>{let r=n(e.length);return y(e,t,e.length,r),r},z=(e,t,r,i=20)=>{let a=r.length,o=n(a);return x(e,t,r,a,i,o,n(a),n(a)),o},B=(e,t,r,i=14)=>{let a=r.length,o=n(a);return S(e,t,r,a,i,o,n(a),n(a)),o},V=(e,t,r,i,a=14)=>{let o=r.length,s=n(o);return C(e,t,r,i,o,a,s,n(o)),s},H=(e,t={})=>{let r=e.length,i=n(r),a=n(r);return w(e,r,t.rsiPeriod??14,t.stochPeriod??14,t.kPeriod??3,t.dPeriod??3,i,a,{rsi:n(r),gain:n(r),loss:n(r),highest:n(r),lowest:n(r),raw:n(r)}),{k:i,d:a}},U=(e,t,r,i=14,a=14)=>{let o=r.length,s=n(o),c=n(o),l=n(o);return T(e,t,r,o,i,a,s,c,l,{tr:n(o),plusDm:n(o),minusDm:n(o),smoothTr:n(o),smoothPlus:n(o),smoothMinus:n(o),dx:n(o)}),{plus:s,minus:c,adx:l}},W=(e,t,r={})=>{let i=e.length,a=n(i),o=r.start??.02;return E(e,t,i,o,r.increment??o,r.maximum??.2,a,{ep:n(i),af:n(i),trend:n(i)}),a},G=(e,t,r,i=10,a=3)=>{let o=r.length,s=n(o),c=n(o);return D(e,t,r,o,i,a,s,c,{tr:n(o),atr:n(o),upper:n(o),lower:n(o)}),{value:s,direction:c}},K=(e,t,r={})=>{let i=e.length,a={conversion:n(i),base:n(i),spanA:n(i),spanB:n(i)};return k(e,t,i,r.conversionPeriod??9,r.basePeriod??26,r.spanBPeriod??52,a.conversion,a.base,a.spanA,a.spanB,{highest:n(i),lowest:n(i)}),a},q=(e,t,r,i={})=>{let a=r.length,o={middle:n(a),upper:n(a),lower:n(a)};return j(e,t,r,a,i.period??20,i.multiplier??2,i.atrPeriod??10,o.middle,o.upper,o.lower,{tr:n(a),atr:n(a)}),o},J=(e,t,r=20)=>{let i=e.length,a={upper:n(i),lower:n(i),middle:n(i)};return A(e,t,i,r,a.upper,a.lower,a.middle),a},Y=(e,n={})=>{let r=e.close.length,i=Math.max(0,Math.floor(n.from??0)),a=Math.min(r-1,Math.floor(n.to??r-1)),o=Math.max(1,Math.floor(n.rows??24)),s=1/0,c=-1/0;for(let t=i;t<=a;t++)e.low[t]<s&&(s=e.low[t]),e.high[t]>c&&(c=e.high[t]);let l=new Float64Array(o),u=new Float64Array(o),d={low:s,high:c,step:0,up:l,down:u,total:0,poc:-1,valueAreaFrom:-1,valueAreaTo:-1};if(!t(s)||!t(c))return d;c===s&&(c+=Math.abs(s)*1e-6||1e-6,s-=Math.abs(s)*1e-6||1e-6);let f=(c-s)/o,p=0;for(let n=i;n<=a;n++){let r=e.volume[n],i=e.low[n],a=e.high[n];if(!(r>0)||!t(i)||!t(a))continue;let c=e.close[n]>=e.open[n]?l:u;p+=r;let d=Math.min(o-1,Math.max(0,Math.floor((i-s)/f))),m=Math.min(o-1,Math.max(0,Math.floor((a-s)/f)));if(d===m||a<=i){c[d]+=r;continue}let h=a-i;for(let e=d;e<=m;e++){let t=s+e*f,n=Math.min(a,t+f)-Math.max(i,t);n>0&&(c[e]+=r*n/h)}}if(!(p>0))return{...d,low:s,high:c,step:f};let m=0;for(let e=1;e<o;e++)l[e]+u[e]>l[m]+u[m]&&(m=e);let h=p*Math.min(1,Math.max(0,n.valueArea??.7)),g=m,_=m,v=l[m]+u[m];for(;v<h&&(g>0||_<o-1);){let e=g>0?l[g-1]+u[g-1]:-1;(_<o-1?l[_+1]+u[_+1]:-1)>=e?(_++,v+=l[_]+u[_]):(g--,v+=l[g]+u[g])}return{low:s,high:c,step:f,up:l,down:u,total:p,poc:m,valueAreaFrom:g,valueAreaTo:_}},X={s:1e3,m:6e4,h:36e5,H:36e5,d:h,D:h,w:7*h,W:7*h},Z=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*h}:{unit:`ms`,count:n*X[r],ms:n*X[r]}},Q=(t,n,r=0)=>{let i=t+e.offsetOf(r,t)*6e4;if(n.unit===`month`){let e=new Date(i),t=e.getUTCFullYear()*12+e.getUTCMonth();return t-t%n.count}return n.count%(7*h)==0?Math.floor((i-4*h)/n.count):Math.floor(i/n.count)},$=(t,n,r=0)=>{let i=Q(t,n,r),a=n.unit===`month`?Date.UTC(Math.floor(i/12),i%12,1):n.count%(7*h)==0?i*n.count+4*h:i*n.count,o=a-e.offsetOf(r,t)*6e4;return a-e.offsetOf(r,o)*6e4},ie=e=>!Array.isArray(e);function ae(t,n,r=0){let i=Z(n);if(!i)throw Error(`Invalid timeframe: ${String(n)}`);let a=typeof r==`string`?t=>e.zoneOffset(t,r):r,o=ie(t),s=o?t.close.length:t.length,c=e=>{if(!o)return t[e];let n=t;return{time:n.time[e],open:n.open[e],high:n.high[e],low:n.low[e],close:n.close[e],volume:n.volume?n.volume[e]:void 0}},l=[],u=null,d=NaN;for(let e=0;e<s;e++){let t=c(e),n=Q(t.time,i,a);!u||n!==d?(u&&l.push(u),d=n,u={time:$(t.time,i,a),open:t.open,high:t.high,low:t.low,close:t.close,volume:t.volume??0}):(t.high>u.high&&(u.high=t.high),t.low<u.low&&(u.low=t.low),u.close=t.close,u.volume=(u.volume??0)+(t.volume??0))}if(u&&l.push(u),!o)return l;let f=l.length,p={time:new Float64Array(f),open:new Float64Array(f),high:new Float64Array(f),low:new Float64Array(f),close:new Float64Array(f),volume:new Float64Array(f)};return l.forEach((e,t)=>{p.time[t]=e.time,p.open[t]=e.open,p.high[t]=e.high,p.low[t]=e.low,p.close[t]=e.close,p.volume[t]=e.volume??0}),p}exports.atr=F,exports.bollinger=ne,exports.bucketKey=Q,exports.bucketStart=$,exports.cci=z,exports.cciInto=x,exports.dmi=U,exports.dmiInto=T,exports.donchian=J,exports.donchianInto=A,exports.ema=ee,exports.emaInto=s,exports.heikinAshi=L,exports.heikinAshiInto=v,exports.ichimoku=K,exports.ichimokuInto=k,exports.kdj=P,exports.kdjInto=m,exports.keltner=q,exports.keltnerInto=j,exports.macd=re,exports.mfi=V,exports.mfiInto=C,exports.obv=R,exports.obvInto=y,exports.parseTimeframe=Z,exports.psar=W,exports.psarInto=E,exports.resampleBars=ae,exports.rmaInto=c,exports.rsi=N,exports.rsiInto=f,exports.sessionKey=g,exports.sma=M,exports.smaInto=i,exports.stdevInto=u,exports.stochRsi=H,exports.stochRsiInto=w,exports.supertrend=G,exports.supertrendInto=D,exports.trueRangeInto=p,exports.volumeProfile=Y,exports.vwap=I,exports.vwapInto=_,exports.williamsR=B,exports.williamsRInto=S,exports.wma=te,exports.wmaInto=l;
2
+ //# sourceMappingURL=indicators.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indicators.cjs","names":["offsetOf","zoneOffset","require_format","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","extremeInto","queue","head","tail","lastNaN","better","highest","a","b","push","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","obvInto","typicalInto","cciInto","typical","m","deviation","williamsRInto","lowest","mfiInto","positive","negative","flow","stochRsiInto","stochPeriod","rsiPeriod","work","dmiInto","up","down","tr","plus","minus","adxPeriod","adx","psarInto","trend","start","prevEp","ep","prevAf","af","sar","before","increment","maximum","supertrendInto","mid","multiplier","pu","upper","pl","lower","direction","midpointInto","ichimokuInto","conversionPeriod","conversion","basePeriod","base","spanBPeriod","spanB","donchianInto","keltnerInto","middle","atrPeriod","sma","values","ema","wma","bollinger","dev","macd","f","s","fast","slow","line","sig","signal","histogram","rsi","kdj","atr","vwap","zone","options","heikinAshi","bars","obv","cci","williamsR","mfi","stochRsi","dmi","psar","supertrend","value","ichimoku","keltner","donchian","volumeProfile","count","to","rows","lo","hi","empty","step","total","h","target","r0","r1","span","r","bottom","overlap","poc","wanted","inside","below","UNIT_MS","parseTimeframe","timeframe","match","unit","bucketKey","tf","months","bucketStart","key","shifted","guess","isColumns","resampleBars","offset","timeZone","columns","get","current","currentKey","bar","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 { offsetOf, zoneOffset, type UtcOffset } from \"./format\";\nimport type {\n TradingBar,\n TradingBarColumns,\n TradingBarsInput,\n TradingTimeframe,\n TradingVolumeProfile,\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/**\n * Highest (or lowest) value of the window ending at each index, NaN while\n * the window is incomplete or holds a NaN. A monotonic queue of indices\n * makes it O(1) per bar whatever the period (Ichimoku uses 52 bars).\n */\nconst extremeInto = (\n src: Values,\n n: number,\n p: number,\n out: Float64Array,\n from: number,\n highest: boolean,\n) => {\n const queue = new Int32Array(p + 1);\n let head = 0;\n let tail = 0;\n let lastNaN = -1;\n const better = (a: number, b: number) => (highest ? a >= b : a <= b);\n const push = (i: number) => {\n const v = src[i];\n if (!finite(v)) {\n lastNaN = i;\n head = tail = 0;\n return;\n }\n while (tail > head && better(v, src[queue[(tail - 1) % (p + 1)]])) tail--;\n queue[tail % (p + 1)] = i;\n tail++;\n while (queue[head % (p + 1)] <= i - p) head++;\n };\n // the window ending just before `from`\n for (let i = Math.max(0, from - p + 1); i < from; i++) push(i);\n for (let i = from; i < n; i++) {\n push(i);\n out[i] =\n i < p - 1 || lastNaN > i - p || tail === head\n ? NaN\n : src[queue[head % (p + 1)]];\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: UtcOffset = 0,\n): number => {\n if (reset === \"none\") return 0;\n const t = time + offsetOf(utcOffset, time) * 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: UtcOffset,\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/** On-balance volume: the volume added on up closes, subtracted on down closes */\nexport const obvInto = (\n close: Values,\n volume: Values,\n n: number,\n out: Float64Array,\n from = 0,\n): void => {\n for (let i = from; i < n; i++) {\n if (i === 0) {\n out[i] = 0;\n continue;\n }\n const v = finite(volume[i]) ? volume[i] : 0;\n const prev = finite(out[i - 1]) ? out[i - 1] : 0;\n const change = close[i] - close[i - 1];\n out[i] = prev + (change > 0 ? v : change < 0 ? -v : 0);\n }\n};\n\n/** Typical price (high + low + close) / 3 */\nconst typicalInto = (\n high: Values,\n low: Values,\n close: Values,\n n: number,\n out: Float64Array,\n from: number,\n) => {\n for (let i = from; i < n; i++) out[i] = (high[i] + low[i] + close[i]) / 3;\n};\n\n/** Commodity channel index: distance of the typical price from its average, in mean deviations / 0.015 */\nexport const cciInto = (\n high: Values,\n low: Values,\n close: Values,\n n: number,\n period: number,\n out: Float64Array,\n typical: Float64Array,\n mean: Float64Array,\n from = 0,\n): void => {\n const p = periodOf(period);\n typicalInto(high, low, close, n, typical, from);\n smaInto(typical, n, p, mean, from);\n for (let i = from; i < n; i++) {\n const m = mean[i];\n if (!finite(m)) {\n out[i] = NaN;\n continue;\n }\n let deviation = 0;\n for (let k = i - p + 1; k <= i; k++) deviation += Math.abs(typical[k] - m);\n deviation /= p;\n out[i] = deviation === 0 ? 0 : (typical[i] - m) / (0.015 * deviation);\n }\n};\n\n/** Williams %R (−100 to 0): the close within the range of the window, from its high */\nexport const williamsRInto = (\n high: Values,\n low: Values,\n close: Values,\n n: number,\n period: number,\n out: Float64Array,\n highest: Float64Array,\n lowest: Float64Array,\n from = 0,\n): void => {\n const p = periodOf(period);\n extremeInto(high, n, p, highest, from, true);\n extremeInto(low, n, p, lowest, from, false);\n for (let i = from; i < n; i++) {\n const hh = highest[i];\n const ll = lowest[i];\n out[i] =\n !finite(hh) || !finite(ll)\n ? NaN\n : hh === ll\n ? -50\n : ((hh - close[i]) / (hh - ll)) * -100;\n }\n};\n\n/** Money flow index (0-100): an RSI of the typical price weighted by the volume */\nexport const mfiInto = (\n high: Values,\n low: Values,\n close: Values,\n volume: Values,\n n: number,\n period: number,\n out: Float64Array,\n typical: Float64Array,\n from = 0,\n): void => {\n const p = periodOf(period);\n typicalInto(high, low, close, n, typical, Math.max(0, from - p - 1));\n for (let i = from; i < n; i++) {\n if (i < p) {\n out[i] = NaN;\n continue;\n }\n let positive = 0;\n let negative = 0;\n let ok = true;\n for (let k = i - p + 1; k <= i; k++) {\n const flow = typical[k] * (finite(volume[k]) ? volume[k] : 0);\n if (!finite(flow) || !finite(typical[k - 1])) {\n ok = false;\n break;\n }\n if (typical[k] > typical[k - 1]) positive += flow;\n else if (typical[k] < typical[k - 1]) negative += flow;\n }\n out[i] = !ok\n ? NaN\n : negative === 0\n ? positive === 0\n ? 50\n : 100\n : 100 - 100 / (1 + positive / negative);\n }\n};\n\n/** Working columns of the stochastic RSI */\nexport interface StochRsiWork {\n rsi: Float64Array;\n gain: Float64Array;\n loss: Float64Array;\n highest: Float64Array;\n lowest: Float64Array;\n raw: Float64Array;\n}\n\n/** Stochastic RSI: the stochastic of the RSI, smoothed into K and D */\nexport const stochRsiInto = (\n close: Values,\n n: number,\n rsiPeriod: number,\n stochPeriod: number,\n kPeriod: number,\n dPeriod: number,\n k: Float64Array,\n d: Float64Array,\n work: StochRsiWork,\n from = 0,\n): void => {\n const p = periodOf(stochPeriod);\n rsiInto(close, n, rsiPeriod, work.rsi, work.gain, work.loss, from);\n extremeInto(work.rsi, n, p, work.highest, from, true);\n extremeInto(work.rsi, n, p, work.lowest, from, false);\n for (let i = from; i < n; i++) {\n const hh = work.highest[i];\n const ll = work.lowest[i];\n work.raw[i] =\n !finite(hh) || !finite(ll)\n ? NaN\n : hh === ll\n ? 50\n : ((work.rsi[i] - ll) / (hh - ll)) * 100;\n }\n smaInto(work.raw, n, kPeriod, k, from);\n smaInto(k, n, dPeriod, d, from);\n};\n\n/** Working columns of the DMI */\nexport interface DmiWork {\n tr: Float64Array;\n plusDm: Float64Array;\n minusDm: Float64Array;\n smoothTr: Float64Array;\n smoothPlus: Float64Array;\n smoothMinus: Float64Array;\n dx: Float64Array;\n}\n\n/** Directional movement index (Wilder): +DI, −DI and the ADX */\nexport const dmiInto = (\n high: Values,\n low: Values,\n close: Values,\n n: number,\n period: number,\n adxPeriod: number,\n plus: Float64Array,\n minus: Float64Array,\n adx: Float64Array,\n work: DmiWork,\n from = 0,\n): void => {\n for (let i = from; i < n; i++) {\n if (i === 0) {\n work.tr[i] = work.plusDm[i] = work.minusDm[i] = NaN;\n continue;\n }\n const up = high[i] - high[i - 1];\n const down = low[i - 1] - low[i];\n work.plusDm[i] = up > down && up > 0 ? up : 0;\n work.minusDm[i] = down > up && down > 0 ? down : 0;\n const pc = close[i - 1];\n work.tr[i] = Math.max(\n high[i] - low[i],\n Math.abs(high[i] - pc),\n Math.abs(low[i] - pc),\n );\n }\n rmaInto(work.tr, n, period, work.smoothTr, from);\n rmaInto(work.plusDm, n, period, work.smoothPlus, from);\n rmaInto(work.minusDm, n, period, work.smoothMinus, from);\n for (let i = from; i < n; i++) {\n const tr = work.smoothTr[i];\n plus[i] = tr ? (100 * work.smoothPlus[i]) / tr : NaN;\n minus[i] = tr ? (100 * work.smoothMinus[i]) / tr : NaN;\n const sum = plus[i] + minus[i];\n work.dx[i] = !finite(sum)\n ? NaN\n : sum === 0\n ? 0\n : (100 * Math.abs(plus[i] - minus[i])) / sum;\n }\n rmaInto(work.dx, n, adxPeriod, adx, from);\n};\n\n/** Working columns of the parabolic SAR */\nexport interface PsarWork {\n /** Extreme point of the trend */\n ep: Float64Array;\n /** Acceleration factor */\n af: Float64Array;\n /** 1 rising, −1 falling */\n trend: Float64Array;\n}\n\n/** Parabolic stop and reverse (Wilder) */\nexport const psarInto = (\n high: Values,\n low: Values,\n n: number,\n start: number,\n increment: number,\n maximum: number,\n out: Float64Array,\n work: PsarWork,\n from = 0,\n): void => {\n const { ep, af, trend } = work;\n for (let i = from; i < n; i++) {\n if (i === 0) {\n out[i] = ep[i] = af[i] = trend[i] = NaN;\n continue;\n }\n if (!finite(trend[i - 1])) {\n // the first two bars set the direction\n const up = high[i] + low[i] >= high[i - 1] + low[i - 1];\n out[i] = up\n ? Math.min(low[i - 1], low[i])\n : Math.max(high[i - 1], high[i]);\n ep[i] = up\n ? Math.max(high[i - 1], high[i])\n : Math.min(low[i - 1], low[i]);\n af[i] = start;\n trend[i] = finite(out[i]) ? (up ? 1 : -1) : NaN;\n continue;\n }\n const prevEp = ep[i - 1];\n const prevAf = af[i - 1];\n let sar = out[i - 1] + prevAf * (prevEp - out[i - 1]);\n const before = i >= 2 ? i - 2 : i - 1;\n if (trend[i - 1] === 1) {\n sar = Math.min(sar, low[i - 1], low[before]);\n if (low[i] < sar) {\n trend[i] = -1;\n sar = Math.max(prevEp, high[i]);\n ep[i] = low[i];\n af[i] = start;\n } else {\n trend[i] = 1;\n ep[i] = Math.max(prevEp, high[i]);\n af[i] =\n high[i] > prevEp ? Math.min(prevAf + increment, maximum) : prevAf;\n }\n } else {\n sar = Math.max(sar, high[i - 1], high[before]);\n if (high[i] > sar) {\n trend[i] = 1;\n sar = Math.min(prevEp, low[i]);\n ep[i] = high[i];\n af[i] = start;\n } else {\n trend[i] = -1;\n ep[i] = Math.min(prevEp, low[i]);\n af[i] =\n low[i] < prevEp ? Math.min(prevAf + increment, maximum) : prevAf;\n }\n }\n out[i] = sar;\n }\n};\n\n/** Working columns of the SuperTrend */\nexport interface SupertrendWork {\n tr: Float64Array;\n atr: Float64Array;\n upper: Float64Array;\n lower: Float64Array;\n}\n\n/**\n * SuperTrend: a trailing band `multiplier` ATRs from the median price,\n * below the bars in an uptrend (`direction` 1), above them in a downtrend (−1)\n */\nexport const supertrendInto = (\n high: Values,\n low: Values,\n close: Values,\n n: number,\n period: number,\n multiplier: number,\n out: Float64Array,\n direction: Float64Array,\n work: SupertrendWork,\n from = 0,\n): void => {\n const { tr, atr: range, upper, lower } = work;\n trueRangeInto(high, low, close, n, tr, from);\n rmaInto(tr, n, period, range, from);\n for (let i = from; i < n; i++) {\n const a = range[i];\n if (!finite(a)) {\n out[i] = direction[i] = upper[i] = lower[i] = NaN;\n continue;\n }\n const mid = (high[i] + low[i]) / 2;\n let up = mid + multiplier * a;\n let down = mid - multiplier * a;\n const pu = i > 0 ? upper[i - 1] : NaN;\n const pl = i > 0 ? lower[i - 1] : NaN;\n const pc = i > 0 ? close[i - 1] : NaN;\n // the bands only tighten while the trend holds\n if (finite(pl) && !(down > pl || pc < pl)) down = pl;\n if (finite(pu) && !(up < pu || pc > pu)) up = pu;\n upper[i] = up;\n lower[i] = down;\n const pd = i > 0 ? direction[i - 1] : NaN;\n const d = !finite(pd)\n ? -1\n : pd === -1\n ? close[i] > up\n ? 1\n : -1\n : close[i] < down\n ? -1\n : 1;\n direction[i] = d;\n out[i] = d === 1 ? down : up;\n }\n};\n\n/** Midpoint of the highest high and the lowest low of a window */\nconst midpointInto = (\n high: Values,\n low: Values,\n n: number,\n period: number,\n out: Float64Array,\n highest: Float64Array,\n lowest: Float64Array,\n from: number,\n) => {\n const p = periodOf(period);\n extremeInto(high, n, p, highest, from, true);\n extremeInto(low, n, p, lowest, from, false);\n for (let i = from; i < n; i++) out[i] = (highest[i] + lowest[i]) / 2;\n};\n\n/** Working columns of Ichimoku */\nexport interface IchimokuWork {\n highest: Float64Array;\n lowest: Float64Array;\n}\n\n/**\n * Ichimoku lines at each bar (unshifted): conversion (Tenkan), base\n * (Kijun), leading span A and B (drawn `displacement − 1` bars ahead)\n */\nexport const ichimokuInto = (\n high: Values,\n low: Values,\n n: number,\n conversionPeriod: number,\n basePeriod: number,\n spanBPeriod: number,\n conversion: Float64Array,\n base: Float64Array,\n spanA: Float64Array,\n spanB: Float64Array,\n work: IchimokuWork,\n from = 0,\n): void => {\n const { highest, lowest } = work;\n midpointInto(\n high,\n low,\n n,\n conversionPeriod,\n conversion,\n highest,\n lowest,\n from,\n );\n midpointInto(high, low, n, basePeriod, base, highest, lowest, from);\n midpointInto(high, low, n, spanBPeriod, spanB, highest, lowest, from);\n for (let i = from; i < n; i++) spanA[i] = (conversion[i] + base[i]) / 2;\n};\n\n/** Donchian channel: highest high, lowest low and their midpoint */\nexport const donchianInto = (\n high: Values,\n low: Values,\n n: number,\n period: number,\n upper: Float64Array,\n lower: Float64Array,\n middle: Float64Array,\n from = 0,\n): void => {\n const p = periodOf(period);\n extremeInto(high, n, p, upper, from, true);\n extremeInto(low, n, p, lower, from, false);\n for (let i = from; i < n; i++) middle[i] = (upper[i] + lower[i]) / 2;\n};\n\n/** Keltner channel: an EMA of the close ± `multiplier` ATRs */\nexport const keltnerInto = (\n high: Values,\n low: Values,\n close: Values,\n n: number,\n period: number,\n multiplier: number,\n atrPeriod: number,\n middle: Float64Array,\n upper: Float64Array,\n lower: Float64Array,\n work: { tr: Float64Array; atr: Float64Array },\n from = 0,\n): void => {\n emaInto(close, n, period, middle, from);\n trueRangeInto(high, low, close, n, work.tr, from);\n rmaInto(work.tr, n, atrPeriod, work.atr, from);\n for (let i = from; i < n; i++) {\n upper[i] = middle[i] + multiplier * work.atr[i];\n lower[i] = middle[i] - multiplier * work.atr[i];\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 * or in the IANA `timeZone`); 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 timeZone?: string;\n } = {},\n): Float64Array => {\n const n = close.length;\n const out = nanArray(n);\n const zone = options.timeZone;\n vwapInto(\n high,\n low,\n close,\n volume,\n options.time ?? null,\n n,\n options.reset ?? \"day\",\n options.utcOffset ?? (zone ? (time: number) => zoneOffset(time, zone) : 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/** On-balance volume: the running sum of the volume, signed by the close change */\nexport const obv = (close: Values, volume: Values): Float64Array => {\n const out = nanArray(close.length);\n obvInto(close, volume, close.length, out);\n return out;\n};\n\n/** Commodity channel index (typically between −100 and +100 in a range) */\nexport const cci = (\n high: Values,\n low: Values,\n close: Values,\n period = 20,\n): Float64Array => {\n const n = close.length;\n const out = nanArray(n);\n cciInto(high, low, close, n, period, out, nanArray(n), nanArray(n));\n return out;\n};\n\n/** Williams %R, from −100 (close at the lowest low) to 0 (at the highest high) */\nexport const williamsR = (\n high: Values,\n low: Values,\n close: Values,\n period = 14,\n): Float64Array => {\n const n = close.length;\n const out = nanArray(n);\n williamsRInto(high, low, close, n, period, out, nanArray(n), nanArray(n));\n return out;\n};\n\n/** Money flow index (0-100): a volume-weighted RSI of the typical price */\nexport const mfi = (\n high: Values,\n low: Values,\n close: Values,\n volume: Values,\n period = 14,\n): Float64Array => {\n const n = close.length;\n const out = nanArray(n);\n mfiInto(high, low, close, volume, n, period, out, nanArray(n));\n return out;\n};\n\n/** Stochastic RSI (0-100): the stochastic of the RSI, smoothed into K and D */\nexport const stochRsi = (\n close: Values,\n options: {\n rsiPeriod?: number;\n stochPeriod?: number;\n kPeriod?: number;\n dPeriod?: number;\n } = {},\n): { k: Float64Array; d: Float64Array } => {\n const n = close.length;\n const k = nanArray(n);\n const d = nanArray(n);\n stochRsiInto(\n close,\n n,\n options.rsiPeriod ?? 14,\n options.stochPeriod ?? 14,\n options.kPeriod ?? 3,\n options.dPeriod ?? 3,\n k,\n d,\n {\n rsi: nanArray(n),\n gain: nanArray(n),\n loss: nanArray(n),\n highest: nanArray(n),\n lowest: nanArray(n),\n raw: nanArray(n),\n },\n );\n return { k, d };\n};\n\n/** Directional movement (Wilder): +DI, −DI and the average directional index */\nexport const dmi = (\n high: Values,\n low: Values,\n close: Values,\n period = 14,\n adxPeriod = 14,\n): { plus: Float64Array; minus: Float64Array; adx: Float64Array } => {\n const n = close.length;\n const plus = nanArray(n);\n const minus = nanArray(n);\n const adx = nanArray(n);\n dmiInto(high, low, close, n, period, adxPeriod, plus, minus, adx, {\n tr: nanArray(n),\n plusDm: nanArray(n),\n minusDm: nanArray(n),\n smoothTr: nanArray(n),\n smoothPlus: nanArray(n),\n smoothMinus: nanArray(n),\n dx: nanArray(n),\n });\n return { plus, minus, adx };\n};\n\n/**\n * Parabolic SAR (Wilder): a trailing stop below the bars in an uptrend,\n * above them in a downtrend, accelerating with each new extreme\n */\nexport const psar = (\n high: Values,\n low: Values,\n options: { start?: number; increment?: number; maximum?: number } = {},\n): Float64Array => {\n const n = high.length;\n const out = nanArray(n);\n const start = options.start ?? 0.02;\n psarInto(\n high,\n low,\n n,\n start,\n options.increment ?? start,\n options.maximum ?? 0.2,\n out,\n { ep: nanArray(n), af: nanArray(n), trend: nanArray(n) },\n );\n return out;\n};\n\n/**\n * SuperTrend: the trailing band (`value`) and the trend (`direction`: 1 up,\n * −1 down)\n */\nexport const supertrend = (\n high: Values,\n low: Values,\n close: Values,\n period = 10,\n multiplier = 3,\n): { value: Float64Array; direction: Float64Array } => {\n const n = close.length;\n const value = nanArray(n);\n const direction = nanArray(n);\n supertrendInto(high, low, close, n, period, multiplier, value, direction, {\n tr: nanArray(n),\n atr: nanArray(n),\n upper: nanArray(n),\n lower: nanArray(n),\n });\n return { value, direction };\n};\n\n/**\n * Ichimoku Kinkō Hyō, aligned on the bars that compute them: the leading\n * spans are plotted `displacement − 1` bars ahead and the lagging span is\n * the close plotted `displacement − 1` bars back\n */\nexport const ichimoku = (\n high: Values,\n low: Values,\n options: {\n conversionPeriod?: number;\n basePeriod?: number;\n spanBPeriod?: number;\n } = {},\n): {\n conversion: Float64Array;\n base: Float64Array;\n spanA: Float64Array;\n spanB: Float64Array;\n} => {\n const n = high.length;\n const out = {\n conversion: nanArray(n),\n base: nanArray(n),\n spanA: nanArray(n),\n spanB: nanArray(n),\n };\n ichimokuInto(\n high,\n low,\n n,\n options.conversionPeriod ?? 9,\n options.basePeriod ?? 26,\n options.spanBPeriod ?? 52,\n out.conversion,\n out.base,\n out.spanA,\n out.spanB,\n { highest: nanArray(n), lowest: nanArray(n) },\n );\n return out;\n};\n\n/** Keltner channel: EMA of the close ± `multiplier` average true ranges */\nexport const keltner = (\n high: Values,\n low: Values,\n close: Values,\n options: { period?: number; multiplier?: number; atrPeriod?: number } = {},\n): { middle: Float64Array; upper: Float64Array; lower: Float64Array } => {\n const n = close.length;\n const out = { middle: nanArray(n), upper: nanArray(n), lower: nanArray(n) };\n keltnerInto(\n high,\n low,\n close,\n n,\n options.period ?? 20,\n options.multiplier ?? 2,\n options.atrPeriod ?? 10,\n out.middle,\n out.upper,\n out.lower,\n { tr: nanArray(n), atr: nanArray(n) },\n );\n return out;\n};\n\n/** Donchian channel: highest high, lowest low and their midpoint over `period` bars */\nexport const donchian = (\n high: Values,\n low: Values,\n period = 20,\n): { upper: Float64Array; lower: Float64Array; middle: Float64Array } => {\n const n = high.length;\n const out = { upper: nanArray(n), lower: nanArray(n), middle: nanArray(n) };\n donchianInto(high, low, n, period, out.upper, out.lower, out.middle);\n return out;\n};\n\n/**\n * Volume profile: the volume of bars `from..to` (inclusive) spread over\n * `rows` price rows (each bar evenly over its low-high range), split by\n * rising / falling bars, with the point of control and the value area\n * (the rows around it holding `valueArea` of the volume, 70% by default)\n */\nexport const volumeProfile = (\n bars: {\n open: Values;\n high: Values;\n low: Values;\n close: Values;\n volume: Values;\n },\n options: {\n from?: number;\n to?: number;\n rows?: number;\n valueArea?: number;\n } = {},\n): TradingVolumeProfile => {\n const count = bars.close.length;\n const from = Math.max(0, Math.floor(options.from ?? 0));\n const to = Math.min(count - 1, Math.floor(options.to ?? count - 1));\n const rows = Math.max(1, Math.floor(options.rows ?? 24));\n let lo = Infinity;\n let hi = -Infinity;\n for (let i = from; i <= to; i++) {\n if (bars.low[i] < lo) lo = bars.low[i];\n if (bars.high[i] > hi) hi = bars.high[i];\n }\n const up = new Float64Array(rows);\n const down = new Float64Array(rows);\n const empty = {\n low: lo,\n high: hi,\n step: 0,\n up,\n down,\n total: 0,\n poc: -1,\n valueAreaFrom: -1,\n valueAreaTo: -1,\n };\n if (!finite(lo) || !finite(hi)) return empty;\n if (hi === lo) {\n hi += Math.abs(lo) * 1e-6 || 1e-6;\n lo -= Math.abs(lo) * 1e-6 || 1e-6;\n }\n const step = (hi - lo) / rows;\n let total = 0;\n for (let i = from; i <= to; i++) {\n const v = bars.volume[i];\n const l = bars.low[i];\n const h = bars.high[i];\n if (!(v > 0) || !finite(l) || !finite(h)) continue;\n const target = bars.close[i] >= bars.open[i] ? up : down;\n total += v;\n const r0 = Math.min(rows - 1, Math.max(0, Math.floor((l - lo) / step)));\n const r1 = Math.min(rows - 1, Math.max(0, Math.floor((h - lo) / step)));\n if (r0 === r1 || h <= l) {\n target[r0] += v;\n continue;\n }\n const span = h - l;\n for (let r = r0; r <= r1; r++) {\n const bottom = lo + r * step;\n const overlap = Math.min(h, bottom + step) - Math.max(l, bottom);\n if (overlap > 0) target[r] += (v * overlap) / span;\n }\n }\n if (!(total > 0)) return { ...empty, low: lo, high: hi, step };\n let poc = 0;\n for (let r = 1; r < rows; r++)\n if (up[r] + down[r] > up[poc] + down[poc]) poc = r;\n // grow the value area from the point of control toward the larger side\n const wanted = total * Math.min(1, Math.max(0, options.valueArea ?? 0.7));\n let a = poc;\n let b = poc;\n let inside = up[poc] + down[poc];\n while (inside < wanted && (a > 0 || b < rows - 1)) {\n const below = a > 0 ? up[a - 1] + down[a - 1] : -1;\n const above = b < rows - 1 ? up[b + 1] + down[b + 1] : -1;\n if (above >= below) {\n b++;\n inside += up[b] + down[b];\n } else {\n a--;\n inside += up[a] + down[a];\n }\n }\n return {\n low: lo,\n high: hi,\n step,\n up,\n down,\n total,\n poc,\n valueAreaFrom: a,\n valueAreaTo: b,\n };\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/**\n * Key of the bucket of `time` in the shifted (displayed) time: weeks start\n * on Monday, months on the 1st. Comparing keys rather than UTC starts keeps\n * a day whole when its offset changes (daylight saving).\n */\nexport const bucketKey = (\n time: number,\n tf: ParsedTimeframe,\n utcOffset: UtcOffset = 0,\n): number => {\n const t = time + offsetOf(utcOffset, time) * 60_000;\n if (tf.unit === \"month\") {\n const date = new Date(t);\n const months = date.getUTCFullYear() * 12 + date.getUTCMonth();\n return months - (months % tf.count);\n }\n if (tf.count % (7 * DAY) === 0) {\n // Monday-aligned weeks (the epoch is a Thursday)\n return Math.floor((t - 4 * DAY) / tf.count);\n }\n return Math.floor(t / tf.count);\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: UtcOffset = 0,\n): number => {\n const key = bucketKey(time, tf, utcOffset);\n const shifted =\n tf.unit === \"month\"\n ? Date.UTC(Math.floor(key / 12), key % 12, 1)\n : tf.count % (7 * DAY) === 0\n ? key * tf.count + 4 * DAY\n : key * tf.count;\n // the offset at the start itself (it may differ from the one at `time`)\n const guess = shifted - offsetOf(utcOffset, time) * 60_000;\n return shifted - offsetOf(utcOffset, guess) * 60_000;\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 `timeZone` (minutes from UTC, or an\n * IANA time zone such as `\"America/New_York\"`); weeks start on Monday.\n * Columns in, columns out (Float64Array).\n */\nexport function resampleBars(\n bars: readonly TradingBar[],\n timeframe: TradingTimeframe,\n timeZone?: number | string,\n): TradingBar[];\nexport function resampleBars(\n bars: TradingBarColumns,\n timeframe: TradingTimeframe,\n timeZone?: number | string,\n): TradingBarColumns;\nexport function resampleBars(\n bars: TradingBarsInput,\n timeframe: TradingTimeframe,\n timeZone: number | string = 0,\n): TradingBar[] | TradingBarColumns {\n const tf = parseTimeframe(timeframe);\n if (!tf) throw new Error(`Invalid timeframe: ${String(timeframe)}`);\n const offset: UtcOffset =\n typeof timeZone === \"string\"\n ? (time: number) => zoneOffset(time, timeZone)\n : timeZone;\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 let currentKey = NaN;\n for (let i = 0; i < n; i++) {\n const bar = get(i);\n const key = bucketKey(bar.time, tf, offset);\n if (!current || key !== currentKey) {\n if (current) out.push(current);\n currentKey = key;\n current = {\n time: bucketStart(bar.time, tf, offset),\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,275 @@
1
+ import { UtcOffset } from './format.cjs';
2
+ import { TradingBar, TradingBarColumns, TradingTimeframe, TradingVolumeProfile } from './types.cjs';
3
+ type Values = ArrayLike<number>;
4
+ /** Simple moving average of `src[0..n)` into `out`, from index `from` */
5
+ export declare const smaInto: (src: Values, n: number, period: number, out: Float64Array, from?: number) => void;
6
+ /** Exponential moving average (alpha = 2 / (period + 1)) */
7
+ export declare const emaInto: (src: Values, n: number, period: number, out: Float64Array, from?: number) => void;
8
+ /** Wilder's moving average (alpha = 1 / period), used by RSI and ATR */
9
+ export declare const rmaInto: (src: Values, n: number, period: number, out: Float64Array, from?: number) => void;
10
+ /** Linearly weighted moving average (the newest bar weighs `period`) */
11
+ export declare const wmaInto: (src: Values, n: number, period: number, out: Float64Array, from?: number) => void;
12
+ /** Population standard deviation over the window (two passes: exact) */
13
+ export declare const stdevInto: (src: Values, n: number, period: number, out: Float64Array, from?: number) => void;
14
+ /** RSI with Wilder smoothing; `gain` / `loss` hold the running averages */
15
+ export declare const rsiInto: (close: Values, n: number, period: number, out: Float64Array, gain: Float64Array, loss: Float64Array, from?: number) => void;
16
+ /** True range of each bar */
17
+ export declare const trueRangeInto: (high: Values, low: Values, close: Values, n: number, out: Float64Array, from?: number) => void;
18
+ /** KDJ: K and D smoothed from the raw stochastic value (seeded at 50), J = 3K − 2D */
19
+ 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;
20
+ /** Session key of a time: bars with the same key are in the same VWAP period */
21
+ export declare const sessionKey: (time: number, reset: "day" | "week" | "month" | "none", utcOffset?: UtcOffset) => number;
22
+ /** VWAP; `pv` / `vol` hold the cumulative sums of the period */
23
+ export declare const vwapInto: (high: Values, low: Values, close: Values, volume: Values, time: Values | null, n: number, reset: "day" | "week" | "month" | "none", utcOffset: UtcOffset, out: Float64Array, pv: Float64Array, vol: Float64Array, from?: number) => void;
24
+ /** Heikin-Ashi bars from regular bars */
25
+ export declare const heikinAshiInto: (open: Values, high: Values, low: Values, close: Values, n: number, out: {
26
+ open: Float64Array;
27
+ high: Float64Array;
28
+ low: Float64Array;
29
+ close: Float64Array;
30
+ }, from?: number) => void;
31
+ /** On-balance volume: the volume added on up closes, subtracted on down closes */
32
+ export declare const obvInto: (close: Values, volume: Values, n: number, out: Float64Array, from?: number) => void;
33
+ /** Commodity channel index: distance of the typical price from its average, in mean deviations / 0.015 */
34
+ export declare const cciInto: (high: Values, low: Values, close: Values, n: number, period: number, out: Float64Array, typical: Float64Array, mean: Float64Array, from?: number) => void;
35
+ /** Williams %R (−100 to 0): the close within the range of the window, from its high */
36
+ export declare const williamsRInto: (high: Values, low: Values, close: Values, n: number, period: number, out: Float64Array, highest: Float64Array, lowest: Float64Array, from?: number) => void;
37
+ /** Money flow index (0-100): an RSI of the typical price weighted by the volume */
38
+ export declare const mfiInto: (high: Values, low: Values, close: Values, volume: Values, n: number, period: number, out: Float64Array, typical: Float64Array, from?: number) => void;
39
+ /** Working columns of the stochastic RSI */
40
+ export interface StochRsiWork {
41
+ rsi: Float64Array;
42
+ gain: Float64Array;
43
+ loss: Float64Array;
44
+ highest: Float64Array;
45
+ lowest: Float64Array;
46
+ raw: Float64Array;
47
+ }
48
+ /** Stochastic RSI: the stochastic of the RSI, smoothed into K and D */
49
+ export declare const stochRsiInto: (close: Values, n: number, rsiPeriod: number, stochPeriod: number, kPeriod: number, dPeriod: number, k: Float64Array, d: Float64Array, work: StochRsiWork, from?: number) => void;
50
+ /** Working columns of the DMI */
51
+ export interface DmiWork {
52
+ tr: Float64Array;
53
+ plusDm: Float64Array;
54
+ minusDm: Float64Array;
55
+ smoothTr: Float64Array;
56
+ smoothPlus: Float64Array;
57
+ smoothMinus: Float64Array;
58
+ dx: Float64Array;
59
+ }
60
+ /** Directional movement index (Wilder): +DI, −DI and the ADX */
61
+ export declare const dmiInto: (high: Values, low: Values, close: Values, n: number, period: number, adxPeriod: number, plus: Float64Array, minus: Float64Array, adx: Float64Array, work: DmiWork, from?: number) => void;
62
+ /** Working columns of the parabolic SAR */
63
+ export interface PsarWork {
64
+ /** Extreme point of the trend */
65
+ ep: Float64Array;
66
+ /** Acceleration factor */
67
+ af: Float64Array;
68
+ /** 1 rising, −1 falling */
69
+ trend: Float64Array;
70
+ }
71
+ /** Parabolic stop and reverse (Wilder) */
72
+ export declare const psarInto: (high: Values, low: Values, n: number, start: number, increment: number, maximum: number, out: Float64Array, work: PsarWork, from?: number) => void;
73
+ /** Working columns of the SuperTrend */
74
+ export interface SupertrendWork {
75
+ tr: Float64Array;
76
+ atr: Float64Array;
77
+ upper: Float64Array;
78
+ lower: Float64Array;
79
+ }
80
+ /**
81
+ * SuperTrend: a trailing band `multiplier` ATRs from the median price,
82
+ * below the bars in an uptrend (`direction` 1), above them in a downtrend (−1)
83
+ */
84
+ export declare const supertrendInto: (high: Values, low: Values, close: Values, n: number, period: number, multiplier: number, out: Float64Array, direction: Float64Array, work: SupertrendWork, from?: number) => void;
85
+ /** Working columns of Ichimoku */
86
+ export interface IchimokuWork {
87
+ highest: Float64Array;
88
+ lowest: Float64Array;
89
+ }
90
+ /**
91
+ * Ichimoku lines at each bar (unshifted): conversion (Tenkan), base
92
+ * (Kijun), leading span A and B (drawn `displacement − 1` bars ahead)
93
+ */
94
+ export declare const ichimokuInto: (high: Values, low: Values, n: number, conversionPeriod: number, basePeriod: number, spanBPeriod: number, conversion: Float64Array, base: Float64Array, spanA: Float64Array, spanB: Float64Array, work: IchimokuWork, from?: number) => void;
95
+ /** Donchian channel: highest high, lowest low and their midpoint */
96
+ export declare const donchianInto: (high: Values, low: Values, n: number, period: number, upper: Float64Array, lower: Float64Array, middle: Float64Array, from?: number) => void;
97
+ /** Keltner channel: an EMA of the close ± `multiplier` ATRs */
98
+ export declare const keltnerInto: (high: Values, low: Values, close: Values, n: number, period: number, multiplier: number, atrPeriod: number, middle: Float64Array, upper: Float64Array, lower: Float64Array, work: {
99
+ tr: Float64Array;
100
+ atr: Float64Array;
101
+ }, from?: number) => void;
102
+ /**
103
+ * Simple moving average: the mean of the last `period` values (NaN until
104
+ * `period` values are available)
105
+ */
106
+ export declare const sma: (values: Values, period: number) => Float64Array;
107
+ /** Exponential moving average, seeded with the simple average of the first `period` values */
108
+ export declare const ema: (values: Values, period: number) => Float64Array;
109
+ /** Linearly weighted moving average: the newest value weighs `period`, the oldest 1 */
110
+ export declare const wma: (values: Values, period: number) => Float64Array;
111
+ /** Bollinger bands: simple average ± `multiplier` population standard deviations */
112
+ export declare const bollinger: (values: Values, period?: number, multiplier?: number) => {
113
+ middle: Float64Array;
114
+ upper: Float64Array;
115
+ lower: Float64Array;
116
+ };
117
+ /** MACD line (fast EMA − slow EMA), its signal EMA and their difference */
118
+ export declare const macd: (values: Values, fast?: number, slow?: number, signal?: number) => {
119
+ macd: Float64Array;
120
+ signal: Float64Array;
121
+ histogram: Float64Array;
122
+ };
123
+ /** Relative strength index (0-100) with Wilder smoothing */
124
+ export declare const rsi: (values: Values, period?: number) => Float64Array;
125
+ /** KDJ stochastic: K and D smoothed (seeded at 50), J = 3K − 2D */
126
+ export declare const kdj: (high: Values, low: Values, close: Values, period?: number, kPeriod?: number, dPeriod?: number) => {
127
+ k: Float64Array;
128
+ d: Float64Array;
129
+ j: Float64Array;
130
+ };
131
+ /** Average true range with Wilder smoothing */
132
+ export declare const atr: (high: Values, low: Values, close: Values, period?: number) => Float64Array;
133
+ /**
134
+ * Volume-weighted average of the typical price (high + low + close) / 3,
135
+ * restarting each `reset` period (UTC, or shifted by `utcOffset` minutes,
136
+ * or in the IANA `timeZone`); without `time`, a single cumulative average
137
+ */
138
+ export declare const vwap: (high: Values, low: Values, close: Values, volume: Values, options?: {
139
+ time?: Values;
140
+ reset?: "day" | "week" | "month" | "none";
141
+ utcOffset?: number;
142
+ timeZone?: string;
143
+ }) => Float64Array;
144
+ /** Heikin-Ashi bars: averaged bars that smooth out the noise of trends */
145
+ export declare const heikinAshi: (bars: {
146
+ open: Values;
147
+ high: Values;
148
+ low: Values;
149
+ close: Values;
150
+ }) => {
151
+ open: Float64Array;
152
+ high: Float64Array;
153
+ low: Float64Array;
154
+ close: Float64Array;
155
+ };
156
+ /** On-balance volume: the running sum of the volume, signed by the close change */
157
+ export declare const obv: (close: Values, volume: Values) => Float64Array;
158
+ /** Commodity channel index (typically between −100 and +100 in a range) */
159
+ export declare const cci: (high: Values, low: Values, close: Values, period?: number) => Float64Array;
160
+ /** Williams %R, from −100 (close at the lowest low) to 0 (at the highest high) */
161
+ export declare const williamsR: (high: Values, low: Values, close: Values, period?: number) => Float64Array;
162
+ /** Money flow index (0-100): a volume-weighted RSI of the typical price */
163
+ export declare const mfi: (high: Values, low: Values, close: Values, volume: Values, period?: number) => Float64Array;
164
+ /** Stochastic RSI (0-100): the stochastic of the RSI, smoothed into K and D */
165
+ export declare const stochRsi: (close: Values, options?: {
166
+ rsiPeriod?: number;
167
+ stochPeriod?: number;
168
+ kPeriod?: number;
169
+ dPeriod?: number;
170
+ }) => {
171
+ k: Float64Array;
172
+ d: Float64Array;
173
+ };
174
+ /** Directional movement (Wilder): +DI, −DI and the average directional index */
175
+ export declare const dmi: (high: Values, low: Values, close: Values, period?: number, adxPeriod?: number) => {
176
+ plus: Float64Array;
177
+ minus: Float64Array;
178
+ adx: Float64Array;
179
+ };
180
+ /**
181
+ * Parabolic SAR (Wilder): a trailing stop below the bars in an uptrend,
182
+ * above them in a downtrend, accelerating with each new extreme
183
+ */
184
+ export declare const psar: (high: Values, low: Values, options?: {
185
+ start?: number;
186
+ increment?: number;
187
+ maximum?: number;
188
+ }) => Float64Array;
189
+ /**
190
+ * SuperTrend: the trailing band (`value`) and the trend (`direction`: 1 up,
191
+ * −1 down)
192
+ */
193
+ export declare const supertrend: (high: Values, low: Values, close: Values, period?: number, multiplier?: number) => {
194
+ value: Float64Array;
195
+ direction: Float64Array;
196
+ };
197
+ /**
198
+ * Ichimoku Kinkō Hyō, aligned on the bars that compute them: the leading
199
+ * spans are plotted `displacement − 1` bars ahead and the lagging span is
200
+ * the close plotted `displacement − 1` bars back
201
+ */
202
+ export declare const ichimoku: (high: Values, low: Values, options?: {
203
+ conversionPeriod?: number;
204
+ basePeriod?: number;
205
+ spanBPeriod?: number;
206
+ }) => {
207
+ conversion: Float64Array;
208
+ base: Float64Array;
209
+ spanA: Float64Array;
210
+ spanB: Float64Array;
211
+ };
212
+ /** Keltner channel: EMA of the close ± `multiplier` average true ranges */
213
+ export declare const keltner: (high: Values, low: Values, close: Values, options?: {
214
+ period?: number;
215
+ multiplier?: number;
216
+ atrPeriod?: number;
217
+ }) => {
218
+ middle: Float64Array;
219
+ upper: Float64Array;
220
+ lower: Float64Array;
221
+ };
222
+ /** Donchian channel: highest high, lowest low and their midpoint over `period` bars */
223
+ export declare const donchian: (high: Values, low: Values, period?: number) => {
224
+ upper: Float64Array;
225
+ lower: Float64Array;
226
+ middle: Float64Array;
227
+ };
228
+ /**
229
+ * Volume profile: the volume of bars `from..to` (inclusive) spread over
230
+ * `rows` price rows (each bar evenly over its low-high range), split by
231
+ * rising / falling bars, with the point of control and the value area
232
+ * (the rows around it holding `valueArea` of the volume, 70% by default)
233
+ */
234
+ export declare const volumeProfile: (bars: {
235
+ open: Values;
236
+ high: Values;
237
+ low: Values;
238
+ close: Values;
239
+ volume: Values;
240
+ }, options?: {
241
+ from?: number;
242
+ to?: number;
243
+ rows?: number;
244
+ valueArea?: number;
245
+ }) => TradingVolumeProfile;
246
+ /** A parsed timeframe: a count of a unit, with its approximate duration */
247
+ export interface ParsedTimeframe {
248
+ unit: "ms" | "month";
249
+ count: number;
250
+ /** Approximate duration in ms (30 days per month) */
251
+ ms: number;
252
+ }
253
+ /** `"15m"` -> 15 minutes, `"1M"` -> 1 month; `null` when invalid */
254
+ export declare const parseTimeframe: (timeframe: TradingTimeframe) => ParsedTimeframe | null;
255
+ /**
256
+ * Key of the bucket of `time` in the shifted (displayed) time: weeks start
257
+ * on Monday, months on the 1st. Comparing keys rather than UTC starts keeps
258
+ * a day whole when its offset changes (daylight saving).
259
+ */
260
+ export declare const bucketKey: (time: number, tf: ParsedTimeframe, utcOffset?: UtcOffset) => number;
261
+ /** Start of the bucket of `time` (weeks start on Monday, months on the 1st) */
262
+ export declare const bucketStart: (time: number, tf: ParsedTimeframe, utcOffset?: UtcOffset) => number;
263
+ /**
264
+ * Aggregates bars into a longer timeframe (`"5m"` bars into `"1H"`, ...):
265
+ * first open, highest high, lowest low, last close, summed volume. Buckets
266
+ * are aligned on UTC, or shifted by `timeZone` (minutes from UTC, or an
267
+ * IANA time zone such as `"America/New_York"`); weeks start on Monday.
268
+ * Columns in, columns out (Float64Array).
269
+ */
270
+ export declare function resampleBars(bars: readonly TradingBar[], timeframe: TradingTimeframe, timeZone?: number | string): TradingBar[];
271
+ export declare function resampleBars(bars: TradingBarColumns, timeframe: TradingTimeframe, timeZone?: number | string): TradingBarColumns;
272
+ /** Highest / lowest of a window: exported for the KDJ-like studies of the chart */
273
+ export declare const highestInto: (src: Values, n: number, period: number, out: Float64Array, from?: number) => void;
274
+ export declare const lowestInto: (src: Values, n: number, period: number, out: Float64Array, from?: number) => void;
275
+ export {};