@363045841yyt/klinechart-core 0.8.8 → 0.8.10-alpha.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 (573) hide show
  1. package/dist/controllers/index.d.ts +1 -1
  2. package/dist/controllers/index.d.ts.map +1 -1
  3. package/dist/controllers/types.d.ts +2 -2
  4. package/dist/controllers/types.d.ts.map +1 -1
  5. package/dist/data-fetchers/dataBuffer.d.ts +6 -0
  6. package/dist/data-fetchers/dataBuffer.d.ts.map +1 -1
  7. package/dist/data-fetchers/dataBuffer.js +50 -3
  8. package/dist/data-fetchers/dataBuffer.js.map +1 -1
  9. package/dist/engine/chart.d.ts +0 -1
  10. package/dist/engine/chart.d.ts.map +1 -1
  11. package/dist/engine/chart.js +0 -42
  12. package/dist/engine/chart.js.map +1 -1
  13. package/dist/engine/controller/interaction.d.ts +62 -0
  14. package/dist/engine/controller/interaction.d.ts.map +1 -1
  15. package/dist/engine/controller/interaction.js +158 -74
  16. package/dist/engine/controller/interaction.js.map +1 -1
  17. package/dist/engine/data/chartDataManager.d.ts +3 -0
  18. package/dist/engine/data/chartDataManager.d.ts.map +1 -1
  19. package/dist/engine/data/chartDataManager.js +13 -4
  20. package/dist/engine/data/chartDataManager.js.map +1 -1
  21. package/dist/engine/drawing/index.d.ts +2 -5
  22. package/dist/engine/drawing/index.d.ts.map +1 -1
  23. package/dist/engine/drawing/index.js +2 -33
  24. package/dist/engine/drawing/index.js.map +1 -1
  25. package/dist/engine/drawing/interaction.js +1 -1
  26. package/dist/engine/drawing/interaction.js.map +1 -1
  27. package/dist/engine/drawing/linearRegression.d.ts +6 -0
  28. package/dist/engine/drawing/linearRegression.d.ts.map +1 -0
  29. package/dist/engine/drawing/linearRegression.js +34 -0
  30. package/dist/engine/drawing/linearRegression.js.map +1 -0
  31. package/dist/engine/drawing/plugin.d.ts.map +1 -1
  32. package/dist/engine/drawing/plugin.js +104 -94
  33. package/dist/engine/drawing/plugin.js.map +1 -1
  34. package/dist/engine/indicators/calculators/_shared.d.ts +3 -0
  35. package/dist/engine/indicators/calculators/_shared.d.ts.map +1 -0
  36. package/dist/engine/indicators/calculators/_shared.js +45 -0
  37. package/dist/engine/indicators/calculators/_shared.js.map +1 -0
  38. package/dist/engine/indicators/calculators/bands.d.ts +44 -0
  39. package/dist/engine/indicators/calculators/bands.d.ts.map +1 -0
  40. package/dist/engine/indicators/calculators/bands.js +268 -0
  41. package/dist/engine/indicators/calculators/bands.js.map +1 -0
  42. package/dist/engine/indicators/calculators/index.d.ts +33 -0
  43. package/dist/engine/indicators/calculators/index.d.ts.map +1 -0
  44. package/dist/engine/indicators/calculators/index.js +19 -0
  45. package/dist/engine/indicators/calculators/index.js.map +1 -0
  46. package/dist/engine/indicators/calculators/movingAverages.d.ts +21 -0
  47. package/dist/engine/indicators/calculators/movingAverages.d.ts.map +1 -0
  48. package/dist/engine/indicators/calculators/movingAverages.js +143 -0
  49. package/dist/engine/indicators/calculators/movingAverages.js.map +1 -0
  50. package/dist/engine/indicators/calculators/oscillators.d.ts +29 -0
  51. package/dist/engine/indicators/calculators/oscillators.d.ts.map +1 -0
  52. package/dist/engine/indicators/calculators/oscillators.js +349 -0
  53. package/dist/engine/indicators/calculators/oscillators.js.map +1 -0
  54. package/dist/engine/indicators/calculators/patterns.d.ts +54 -0
  55. package/dist/engine/indicators/calculators/patterns.d.ts.map +1 -0
  56. package/dist/engine/indicators/calculators/patterns.js +214 -0
  57. package/dist/engine/indicators/calculators/patterns.js.map +1 -0
  58. package/dist/engine/indicators/calculators/volatility.d.ts +6 -0
  59. package/dist/engine/indicators/calculators/volatility.d.ts.map +1 -0
  60. package/dist/engine/indicators/calculators/volatility.js +114 -0
  61. package/dist/engine/indicators/calculators/volatility.js.map +1 -0
  62. package/dist/engine/indicators/calculators/volume.d.ts +21 -0
  63. package/dist/engine/indicators/calculators/volume.d.ts.map +1 -0
  64. package/dist/engine/indicators/calculators/volume.js +218 -0
  65. package/dist/engine/indicators/calculators/volume.js.map +1 -0
  66. package/dist/engine/indicators/calculators.d.ts +1 -361
  67. package/dist/engine/indicators/calculators.d.ts.map +1 -1
  68. package/dist/engine/indicators/calculators.js +1 -1787
  69. package/dist/engine/indicators/calculators.js.map +1 -1
  70. package/dist/engine/indicators/chartIndicatorManager.d.ts.map +1 -1
  71. package/dist/engine/indicators/chartIndicatorManager.js +3 -44
  72. package/dist/engine/indicators/chartIndicatorManager.js.map +1 -1
  73. package/dist/engine/indicators/indicatorRegistry.d.ts +8 -0
  74. package/dist/engine/indicators/indicatorRegistry.d.ts.map +1 -1
  75. package/dist/engine/indicators/indicatorRegistry.js +16 -0
  76. package/dist/engine/indicators/indicatorRegistry.js.map +1 -1
  77. package/dist/engine/indicators/indicatorRuntime.js +2 -2
  78. package/dist/engine/indicators/indicatorRuntime.js.map +1 -1
  79. package/dist/engine/indicators/scheduler.d.ts +2 -2
  80. package/dist/engine/indicators/scheduler.d.ts.map +1 -1
  81. package/dist/engine/indicators/scheduler.js +15 -155
  82. package/dist/engine/indicators/scheduler.js.map +1 -1
  83. package/dist/engine/indicators/{atrState.d.ts → state/atrState.d.ts} +1 -1
  84. package/dist/engine/indicators/state/atrState.d.ts.map +1 -0
  85. package/dist/engine/indicators/{atrState.js → state/atrState.js} +1 -1
  86. package/dist/engine/indicators/state/atrState.js.map +1 -0
  87. package/dist/engine/indicators/{bollState.d.ts → state/bollState.d.ts} +4 -2
  88. package/dist/engine/indicators/state/bollState.d.ts.map +1 -0
  89. package/dist/engine/indicators/{bollState.js → state/bollState.js} +5 -3
  90. package/dist/engine/indicators/state/bollState.js.map +1 -0
  91. package/dist/engine/indicators/{cciState.d.ts → state/cciState.d.ts} +1 -1
  92. package/dist/engine/indicators/state/cciState.d.ts.map +1 -0
  93. package/dist/engine/indicators/{cciState.js → state/cciState.js} +1 -1
  94. package/dist/engine/indicators/state/cciState.js.map +1 -0
  95. package/dist/engine/indicators/{chaikinVolState.d.ts → state/chaikinVolState.d.ts} +1 -1
  96. package/dist/engine/indicators/state/chaikinVolState.d.ts.map +1 -0
  97. package/dist/engine/indicators/{chaikinVolState.js → state/chaikinVolState.js} +1 -1
  98. package/dist/engine/indicators/state/chaikinVolState.js.map +1 -0
  99. package/dist/engine/indicators/{cmfState.d.ts → state/cmfState.d.ts} +1 -1
  100. package/dist/engine/indicators/state/cmfState.d.ts.map +1 -0
  101. package/dist/engine/indicators/{cmfState.js → state/cmfState.js} +1 -1
  102. package/dist/engine/indicators/state/cmfState.js.map +1 -0
  103. package/dist/engine/indicators/{demaState.d.ts → state/demaState.d.ts} +1 -1
  104. package/dist/engine/indicators/state/demaState.d.ts.map +1 -0
  105. package/dist/engine/indicators/{demaState.js → state/demaState.js} +1 -1
  106. package/dist/engine/indicators/state/demaState.js.map +1 -0
  107. package/dist/engine/indicators/{donchianState.d.ts → state/donchianState.d.ts} +1 -1
  108. package/dist/engine/indicators/state/donchianState.d.ts.map +1 -0
  109. package/dist/engine/indicators/{donchianState.js → state/donchianState.js} +1 -1
  110. package/dist/engine/indicators/state/donchianState.js.map +1 -0
  111. package/dist/engine/indicators/{eneState.d.ts → state/eneState.d.ts} +4 -2
  112. package/dist/engine/indicators/state/eneState.d.ts.map +1 -0
  113. package/dist/engine/indicators/{eneState.js → state/eneState.js} +5 -3
  114. package/dist/engine/indicators/state/eneState.js.map +1 -0
  115. package/dist/engine/indicators/{expmaState.d.ts → state/expmaState.d.ts} +4 -2
  116. package/dist/engine/indicators/state/expmaState.d.ts.map +1 -0
  117. package/dist/engine/indicators/{expmaState.js → state/expmaState.js} +5 -3
  118. package/dist/engine/indicators/state/expmaState.js.map +1 -0
  119. package/dist/engine/indicators/{fastkState.d.ts → state/fastkState.d.ts} +1 -1
  120. package/dist/engine/indicators/state/fastkState.d.ts.map +1 -0
  121. package/dist/engine/indicators/{fastkState.js → state/fastkState.js} +1 -1
  122. package/dist/engine/indicators/state/fastkState.js.map +1 -0
  123. package/dist/engine/indicators/{fibState.d.ts → state/fibState.d.ts} +1 -1
  124. package/dist/engine/indicators/state/fibState.d.ts.map +1 -0
  125. package/dist/engine/indicators/{fibState.js → state/fibState.js} +1 -1
  126. package/dist/engine/indicators/state/fibState.js.map +1 -0
  127. package/dist/engine/indicators/{hmaState.d.ts → state/hmaState.d.ts} +1 -1
  128. package/dist/engine/indicators/state/hmaState.d.ts.map +1 -0
  129. package/dist/engine/indicators/{hmaState.js → state/hmaState.js} +1 -1
  130. package/dist/engine/indicators/state/hmaState.js.map +1 -0
  131. package/dist/engine/indicators/{hvState.d.ts → state/hvState.d.ts} +1 -1
  132. package/dist/engine/indicators/state/hvState.d.ts.map +1 -0
  133. package/dist/engine/indicators/{hvState.js → state/hvState.js} +1 -1
  134. package/dist/engine/indicators/state/hvState.js.map +1 -0
  135. package/dist/engine/indicators/{ichimokuState.d.ts → state/ichimokuState.d.ts} +1 -1
  136. package/dist/engine/indicators/state/ichimokuState.d.ts.map +1 -0
  137. package/dist/engine/indicators/{ichimokuState.js → state/ichimokuState.js} +1 -1
  138. package/dist/engine/indicators/state/ichimokuState.js.map +1 -0
  139. package/dist/engine/indicators/{kamaState.d.ts → state/kamaState.d.ts} +1 -1
  140. package/dist/engine/indicators/state/kamaState.d.ts.map +1 -0
  141. package/dist/engine/indicators/{kamaState.js → state/kamaState.js} +1 -1
  142. package/dist/engine/indicators/state/kamaState.js.map +1 -0
  143. package/dist/engine/indicators/{keltnerState.d.ts → state/keltnerState.d.ts} +1 -1
  144. package/dist/engine/indicators/state/keltnerState.d.ts.map +1 -0
  145. package/dist/engine/indicators/{keltnerState.js → state/keltnerState.js} +1 -1
  146. package/dist/engine/indicators/state/keltnerState.js.map +1 -0
  147. package/dist/engine/indicators/{kstState.d.ts → state/kstState.d.ts} +2 -2
  148. package/dist/engine/indicators/state/kstState.d.ts.map +1 -0
  149. package/dist/engine/indicators/{kstState.js → state/kstState.js} +1 -1
  150. package/dist/engine/indicators/state/kstState.js.map +1 -0
  151. package/dist/engine/indicators/{maState.d.ts → state/maState.d.ts} +1 -1
  152. package/dist/engine/indicators/state/maState.d.ts.map +1 -0
  153. package/dist/engine/indicators/{maState.js → state/maState.js} +1 -1
  154. package/dist/engine/indicators/state/maState.js.map +1 -0
  155. package/dist/engine/indicators/{macdState.d.ts → state/macdState.d.ts} +3 -19
  156. package/dist/engine/indicators/state/macdState.d.ts.map +1 -0
  157. package/dist/engine/indicators/state/macdState.js.map +1 -0
  158. package/dist/engine/indicators/{mfiState.d.ts → state/mfiState.d.ts} +1 -1
  159. package/dist/engine/indicators/state/mfiState.d.ts.map +1 -0
  160. package/dist/engine/indicators/{mfiState.js → state/mfiState.js} +1 -1
  161. package/dist/engine/indicators/state/mfiState.js.map +1 -0
  162. package/dist/engine/indicators/{momState.d.ts → state/momState.d.ts} +1 -1
  163. package/dist/engine/indicators/state/momState.d.ts.map +1 -0
  164. package/dist/engine/indicators/{momState.js → state/momState.js} +1 -1
  165. package/dist/engine/indicators/state/momState.js.map +1 -0
  166. package/dist/engine/indicators/{obvState.d.ts → state/obvState.d.ts} +1 -1
  167. package/dist/engine/indicators/state/obvState.d.ts.map +1 -0
  168. package/dist/engine/indicators/{obvState.js → state/obvState.js} +1 -1
  169. package/dist/engine/indicators/state/obvState.js.map +1 -0
  170. package/dist/engine/indicators/{parkinsonState.d.ts → state/parkinsonState.d.ts} +1 -1
  171. package/dist/engine/indicators/state/parkinsonState.d.ts.map +1 -0
  172. package/dist/engine/indicators/{parkinsonState.js → state/parkinsonState.js} +1 -1
  173. package/dist/engine/indicators/state/parkinsonState.js.map +1 -0
  174. package/dist/engine/indicators/{pivotState.d.ts → state/pivotState.d.ts} +1 -1
  175. package/dist/engine/indicators/state/pivotState.d.ts.map +1 -0
  176. package/dist/engine/indicators/{pivotState.js → state/pivotState.js} +1 -1
  177. package/dist/engine/indicators/state/pivotState.js.map +1 -0
  178. package/dist/engine/indicators/{pvtState.d.ts → state/pvtState.d.ts} +1 -1
  179. package/dist/engine/indicators/state/pvtState.d.ts.map +1 -0
  180. package/dist/engine/indicators/{pvtState.js → state/pvtState.js} +1 -1
  181. package/dist/engine/indicators/state/pvtState.js.map +1 -0
  182. package/dist/engine/indicators/{rocState.d.ts → state/rocState.d.ts} +1 -1
  183. package/dist/engine/indicators/state/rocState.d.ts.map +1 -0
  184. package/dist/engine/indicators/{rocState.js → state/rocState.js} +1 -1
  185. package/dist/engine/indicators/state/rocState.js.map +1 -0
  186. package/dist/engine/indicators/{rsiState.d.ts → state/rsiState.d.ts} +4 -1
  187. package/dist/engine/indicators/state/rsiState.d.ts.map +1 -0
  188. package/dist/engine/indicators/{rsiState.js → state/rsiState.js} +7 -4
  189. package/dist/engine/indicators/state/rsiState.js.map +1 -0
  190. package/dist/engine/indicators/{sarState.d.ts → state/sarState.d.ts} +1 -1
  191. package/dist/engine/indicators/state/sarState.d.ts.map +1 -0
  192. package/dist/engine/indicators/{sarState.js → state/sarState.js} +1 -1
  193. package/dist/engine/indicators/state/sarState.js.map +1 -0
  194. package/dist/engine/indicators/{stochState.d.ts → state/stochState.d.ts} +2 -2
  195. package/dist/engine/indicators/state/stochState.d.ts.map +1 -0
  196. package/dist/engine/indicators/{stochState.js → state/stochState.js} +1 -1
  197. package/dist/engine/indicators/state/stochState.js.map +1 -0
  198. package/dist/engine/indicators/{structureState.d.ts → state/structureState.d.ts} +1 -1
  199. package/dist/engine/indicators/state/structureState.d.ts.map +1 -0
  200. package/dist/engine/indicators/{structureState.js → state/structureState.js} +1 -1
  201. package/dist/engine/indicators/state/structureState.js.map +1 -0
  202. package/dist/engine/indicators/{supertrendState.d.ts → state/supertrendState.d.ts} +1 -1
  203. package/dist/engine/indicators/state/supertrendState.d.ts.map +1 -0
  204. package/dist/engine/indicators/{supertrendState.js → state/supertrendState.js} +1 -1
  205. package/dist/engine/indicators/state/supertrendState.js.map +1 -0
  206. package/dist/engine/indicators/{temaState.d.ts → state/temaState.d.ts} +1 -1
  207. package/dist/engine/indicators/state/temaState.d.ts.map +1 -0
  208. package/dist/engine/indicators/{temaState.js → state/temaState.js} +1 -1
  209. package/dist/engine/indicators/state/temaState.js.map +1 -0
  210. package/dist/engine/indicators/{trixState.d.ts → state/trixState.d.ts} +1 -1
  211. package/dist/engine/indicators/state/trixState.d.ts.map +1 -0
  212. package/dist/engine/indicators/{trixState.js → state/trixState.js} +1 -1
  213. package/dist/engine/indicators/state/trixState.js.map +1 -0
  214. package/dist/engine/indicators/{vmaState.d.ts → state/vmaState.d.ts} +1 -1
  215. package/dist/engine/indicators/state/vmaState.d.ts.map +1 -0
  216. package/dist/engine/indicators/{vmaState.js → state/vmaState.js} +1 -1
  217. package/dist/engine/indicators/state/vmaState.js.map +1 -0
  218. package/dist/engine/indicators/{volumeProfileState.d.ts → state/volumeProfileState.d.ts} +1 -1
  219. package/dist/engine/indicators/state/volumeProfileState.d.ts.map +1 -0
  220. package/dist/engine/indicators/{volumeProfileState.js → state/volumeProfileState.js} +1 -1
  221. package/dist/engine/indicators/state/volumeProfileState.js.map +1 -0
  222. package/dist/engine/indicators/{vwapState.d.ts → state/vwapState.d.ts} +1 -1
  223. package/dist/engine/indicators/state/vwapState.d.ts.map +1 -0
  224. package/dist/engine/indicators/{vwapState.js → state/vwapState.js} +1 -1
  225. package/dist/engine/indicators/state/vwapState.js.map +1 -0
  226. package/dist/engine/indicators/{wmaState.d.ts → state/wmaState.d.ts} +1 -1
  227. package/dist/engine/indicators/state/wmaState.d.ts.map +1 -0
  228. package/dist/engine/indicators/{wmaState.js → state/wmaState.js} +1 -1
  229. package/dist/engine/indicators/state/wmaState.js.map +1 -0
  230. package/dist/engine/indicators/{wmsrState.d.ts → state/wmsrState.d.ts} +1 -1
  231. package/dist/engine/indicators/state/wmsrState.d.ts.map +1 -0
  232. package/dist/engine/indicators/{wmsrState.js → state/wmsrState.js} +1 -1
  233. package/dist/engine/indicators/state/wmsrState.js.map +1 -0
  234. package/dist/engine/indicators/{zonesState.d.ts → state/zonesState.d.ts} +1 -1
  235. package/dist/engine/indicators/state/zonesState.d.ts.map +1 -0
  236. package/dist/engine/indicators/{zonesState.js → state/zonesState.js} +1 -1
  237. package/dist/engine/indicators/state/zonesState.js.map +1 -0
  238. package/dist/engine/indicators/stateComposer.d.ts +39 -39
  239. package/dist/engine/indicators/stateComposer.d.ts.map +1 -1
  240. package/dist/engine/indicators/visibleStateComposers.d.ts.map +1 -1
  241. package/dist/engine/indicators/visibleStateComposers.js +192 -31
  242. package/dist/engine/indicators/visibleStateComposers.js.map +1 -1
  243. package/dist/engine/layout/pane.js +2 -2
  244. package/dist/engine/layout/pane.js.map +1 -1
  245. package/dist/engine/paneRenderer.d.ts +2 -6
  246. package/dist/engine/paneRenderer.d.ts.map +1 -1
  247. package/dist/engine/paneRenderer.js.map +1 -1
  248. package/dist/engine/render/chartRenderer.d.ts.map +1 -1
  249. package/dist/engine/render/chartRenderer.js +7 -2
  250. package/dist/engine/render/chartRenderer.js.map +1 -1
  251. package/dist/engine/renderers/Indicator/atr.js +2 -2
  252. package/dist/engine/renderers/Indicator/atr.js.map +1 -1
  253. package/dist/engine/renderers/Indicator/cci.js +1 -1
  254. package/dist/engine/renderers/Indicator/cci.js.map +1 -1
  255. package/dist/engine/renderers/Indicator/chaikinVol.js +1 -1
  256. package/dist/engine/renderers/Indicator/chaikinVol.js.map +1 -1
  257. package/dist/engine/renderers/Indicator/cmf.js +1 -1
  258. package/dist/engine/renderers/Indicator/cmf.js.map +1 -1
  259. package/dist/engine/renderers/Indicator/dema.js +1 -1
  260. package/dist/engine/renderers/Indicator/dema.js.map +1 -1
  261. package/dist/engine/renderers/Indicator/donchian.js +1 -1
  262. package/dist/engine/renderers/Indicator/donchian.js.map +1 -1
  263. package/dist/engine/renderers/Indicator/fastk.js +1 -1
  264. package/dist/engine/renderers/Indicator/fastk.js.map +1 -1
  265. package/dist/engine/renderers/Indicator/fib.js +1 -1
  266. package/dist/engine/renderers/Indicator/fib.js.map +1 -1
  267. package/dist/engine/renderers/Indicator/hma.js +1 -1
  268. package/dist/engine/renderers/Indicator/hma.js.map +1 -1
  269. package/dist/engine/renderers/Indicator/hv.js +2 -2
  270. package/dist/engine/renderers/Indicator/hv.js.map +1 -1
  271. package/dist/engine/renderers/Indicator/ichimoku.js +95 -92
  272. package/dist/engine/renderers/Indicator/ichimoku.js.map +1 -1
  273. package/dist/engine/renderers/Indicator/kama.js +1 -1
  274. package/dist/engine/renderers/Indicator/kama.js.map +1 -1
  275. package/dist/engine/renderers/Indicator/keltner.js +1 -1
  276. package/dist/engine/renderers/Indicator/keltner.js.map +1 -1
  277. package/dist/engine/renderers/Indicator/kst.js +2 -2
  278. package/dist/engine/renderers/Indicator/kst.js.map +1 -1
  279. package/dist/engine/renderers/Indicator/ma.js.map +1 -1
  280. package/dist/engine/renderers/Indicator/macd.js +1 -1
  281. package/dist/engine/renderers/Indicator/macd.js.map +1 -1
  282. package/dist/engine/renderers/Indicator/mfi.js +1 -1
  283. package/dist/engine/renderers/Indicator/mfi.js.map +1 -1
  284. package/dist/engine/renderers/Indicator/mom.js +2 -2
  285. package/dist/engine/renderers/Indicator/mom.js.map +1 -1
  286. package/dist/engine/renderers/Indicator/obv.js +1 -1
  287. package/dist/engine/renderers/Indicator/obv.js.map +1 -1
  288. package/dist/engine/renderers/Indicator/parkinson.js +2 -2
  289. package/dist/engine/renderers/Indicator/parkinson.js.map +1 -1
  290. package/dist/engine/renderers/Indicator/pivot.js +1 -1
  291. package/dist/engine/renderers/Indicator/pivot.js.map +1 -1
  292. package/dist/engine/renderers/Indicator/pvt.js +1 -1
  293. package/dist/engine/renderers/Indicator/pvt.js.map +1 -1
  294. package/dist/engine/renderers/Indicator/roc.js +1 -1
  295. package/dist/engine/renderers/Indicator/roc.js.map +1 -1
  296. package/dist/engine/renderers/Indicator/rsi.js +1 -1
  297. package/dist/engine/renderers/Indicator/rsi.js.map +1 -1
  298. package/dist/engine/renderers/Indicator/sar.js +1 -1
  299. package/dist/engine/renderers/Indicator/sar.js.map +1 -1
  300. package/dist/engine/renderers/Indicator/stoch.js +1 -1
  301. package/dist/engine/renderers/Indicator/stoch.js.map +1 -1
  302. package/dist/engine/renderers/Indicator/structure.js +1 -1
  303. package/dist/engine/renderers/Indicator/structure.js.map +1 -1
  304. package/dist/engine/renderers/Indicator/supertrend.js +1 -1
  305. package/dist/engine/renderers/Indicator/supertrend.js.map +1 -1
  306. package/dist/engine/renderers/Indicator/tema.js +1 -1
  307. package/dist/engine/renderers/Indicator/tema.js.map +1 -1
  308. package/dist/engine/renderers/Indicator/trix.js +2 -2
  309. package/dist/engine/renderers/Indicator/trix.js.map +1 -1
  310. package/dist/engine/renderers/Indicator/vma.js +2 -2
  311. package/dist/engine/renderers/Indicator/vma.js.map +1 -1
  312. package/dist/engine/renderers/Indicator/volumeProfile.js +1 -1
  313. package/dist/engine/renderers/Indicator/volumeProfile.js.map +1 -1
  314. package/dist/engine/renderers/Indicator/vwap.js +1 -1
  315. package/dist/engine/renderers/Indicator/vwap.js.map +1 -1
  316. package/dist/engine/renderers/Indicator/wma.js +1 -1
  317. package/dist/engine/renderers/Indicator/wma.js.map +1 -1
  318. package/dist/engine/renderers/Indicator/wmsr.js +1 -1
  319. package/dist/engine/renderers/Indicator/wmsr.js.map +1 -1
  320. package/dist/engine/renderers/Indicator/zones.js +1 -1
  321. package/dist/engine/renderers/Indicator/zones.js.map +1 -1
  322. package/dist/engine/renderers/candle.d.ts.map +1 -1
  323. package/dist/engine/renderers/candle.js +94 -60
  324. package/dist/engine/renderers/candle.js.map +1 -1
  325. package/dist/engine/renderers/extremaMarkers.d.ts.map +1 -1
  326. package/dist/engine/renderers/extremaMarkers.js +5 -6
  327. package/dist/engine/renderers/extremaMarkers.js.map +1 -1
  328. package/dist/engine/renderers/gridLines.js +1 -1
  329. package/dist/engine/renderers/gridLines.js.map +1 -1
  330. package/dist/engine/renderers/leftYAxis.d.ts.map +1 -1
  331. package/dist/engine/renderers/leftYAxis.js +24 -3
  332. package/dist/engine/renderers/leftYAxis.js.map +1 -1
  333. package/dist/engine/renderers/timeAxis.d.ts.map +1 -1
  334. package/dist/engine/renderers/timeAxis.js +2 -0
  335. package/dist/engine/renderers/timeAxis.js.map +1 -1
  336. package/dist/engine/renderers/timeShare.js +1 -1
  337. package/dist/engine/renderers/timeShare.js.map +1 -1
  338. package/dist/engine/viewport/chartViewportManager.d.ts +34 -1
  339. package/dist/engine/viewport/chartViewportManager.d.ts.map +1 -1
  340. package/dist/engine/viewport/chartViewportManager.js +57 -22
  341. package/dist/engine/viewport/chartViewportManager.js.map +1 -1
  342. package/dist/mcp/chartBridge.js +1 -1
  343. package/dist/mcp/chartBridge.js.map +1 -1
  344. package/dist/plugin/types.d.ts +4 -0
  345. package/dist/plugin/types.d.ts.map +1 -1
  346. package/dist/plugin/types.js.map +1 -1
  347. package/dist/utils/dateFormat.d.ts +2 -2
  348. package/dist/utils/dateFormat.d.ts.map +1 -1
  349. package/dist/utils/dateFormat.js +6 -6
  350. package/dist/utils/dateFormat.js.map +1 -1
  351. package/dist/utils/kLineDraw/axis.d.ts +4 -0
  352. package/dist/utils/kLineDraw/axis.d.ts.map +1 -1
  353. package/dist/utils/kLineDraw/axis.js +2 -2
  354. package/dist/utils/kLineDraw/axis.js.map +1 -1
  355. package/dist/utils/volumePrice.d.ts.map +1 -1
  356. package/dist/utils/volumePrice.js +20 -3
  357. package/dist/utils/volumePrice.js.map +1 -1
  358. package/dist/version.d.ts +1 -1
  359. package/dist/version.d.ts.map +1 -1
  360. package/dist/version.js +1 -1
  361. package/dist/version.js.map +1 -1
  362. package/package.json +1 -1
  363. package/src/controllers/createChartController.ts +2 -2
  364. package/src/controllers/index.ts +1 -1
  365. package/src/controllers/types.ts +2 -2
  366. package/src/data-fetchers/__tests__/dataBuffer.test.ts +135 -0
  367. package/src/data-fetchers/dataBuffer.ts +61 -9
  368. package/src/engine/chart.ts +0 -43
  369. package/src/engine/controller/interaction.ts +186 -76
  370. package/src/engine/data/chartDataManager.ts +16 -4
  371. package/src/engine/drawing/index.ts +2 -36
  372. package/src/engine/drawing/interaction.ts +1 -1
  373. package/src/engine/drawing/linearRegression.ts +36 -0
  374. package/src/engine/drawing/plugin.ts +160 -97
  375. package/src/engine/indicators/__tests__/calculators.test.ts +9 -1
  376. package/src/engine/indicators/__tests__/indicatorRegistry.test.ts +10 -5
  377. package/src/engine/indicators/__tests__/scheduler.test.ts +12 -12
  378. package/src/engine/indicators/__tests__/soa.test.ts +46 -12
  379. package/src/engine/indicators/calculators/_shared.ts +44 -0
  380. package/src/engine/indicators/calculators/bands.ts +365 -0
  381. package/src/engine/indicators/calculators/index.ts +37 -0
  382. package/src/engine/indicators/calculators/movingAverages.ts +189 -0
  383. package/src/engine/indicators/calculators/oscillators.ts +446 -0
  384. package/src/engine/indicators/calculators/patterns.ts +287 -0
  385. package/src/engine/indicators/calculators/volatility.ts +150 -0
  386. package/src/engine/indicators/calculators/volume.ts +248 -0
  387. package/src/engine/indicators/calculators.ts +1 -2460
  388. package/src/engine/indicators/chartIndicatorManager.ts +3 -44
  389. package/src/engine/indicators/indicatorRegistry.ts +15 -0
  390. package/src/engine/indicators/indicatorRuntime.ts +2 -2
  391. package/src/engine/indicators/scheduler.ts +39 -154
  392. package/src/engine/indicators/{atrState.ts → state/atrState.ts} +2 -2
  393. package/src/engine/indicators/{bollState.ts → state/bollState.ts} +8 -5
  394. package/src/engine/indicators/{cciState.ts → state/cciState.ts} +2 -2
  395. package/src/engine/indicators/{chaikinVolState.ts → state/chaikinVolState.ts} +2 -2
  396. package/src/engine/indicators/{cmfState.ts → state/cmfState.ts} +2 -2
  397. package/src/engine/indicators/{demaState.ts → state/demaState.ts} +2 -2
  398. package/src/engine/indicators/{donchianState.ts → state/donchianState.ts} +2 -2
  399. package/src/engine/indicators/{eneState.ts → state/eneState.ts} +8 -5
  400. package/src/engine/indicators/{expmaState.ts → state/expmaState.ts} +8 -5
  401. package/src/engine/indicators/{fastkState.ts → state/fastkState.ts} +2 -2
  402. package/src/engine/indicators/{fibState.ts → state/fibState.ts} +2 -2
  403. package/src/engine/indicators/{hmaState.ts → state/hmaState.ts} +2 -2
  404. package/src/engine/indicators/{hvState.ts → state/hvState.ts} +2 -2
  405. package/src/engine/indicators/{ichimokuState.ts → state/ichimokuState.ts} +2 -2
  406. package/src/engine/indicators/{kamaState.ts → state/kamaState.ts} +2 -2
  407. package/src/engine/indicators/{keltnerState.ts → state/keltnerState.ts} +2 -2
  408. package/src/engine/indicators/{kstState.ts → state/kstState.ts} +3 -3
  409. package/src/engine/indicators/{maState.ts → state/maState.ts} +2 -2
  410. package/src/engine/indicators/{macdState.ts → state/macdState.ts} +3 -20
  411. package/src/engine/indicators/{mfiState.ts → state/mfiState.ts} +2 -2
  412. package/src/engine/indicators/{momState.ts → state/momState.ts} +2 -2
  413. package/src/engine/indicators/{obvState.ts → state/obvState.ts} +2 -2
  414. package/src/engine/indicators/{parkinsonState.ts → state/parkinsonState.ts} +2 -2
  415. package/src/engine/indicators/{pivotState.ts → state/pivotState.ts} +2 -2
  416. package/src/engine/indicators/{pvtState.ts → state/pvtState.ts} +2 -2
  417. package/src/engine/indicators/{rocState.ts → state/rocState.ts} +2 -2
  418. package/src/engine/indicators/{rsiState.ts → state/rsiState.ts} +9 -5
  419. package/src/engine/indicators/{sarState.ts → state/sarState.ts} +2 -2
  420. package/src/engine/indicators/{stochState.ts → state/stochState.ts} +3 -3
  421. package/src/engine/indicators/{structureState.ts → state/structureState.ts} +2 -2
  422. package/src/engine/indicators/{supertrendState.ts → state/supertrendState.ts} +2 -2
  423. package/src/engine/indicators/{temaState.ts → state/temaState.ts} +2 -2
  424. package/src/engine/indicators/{trixState.ts → state/trixState.ts} +2 -2
  425. package/src/engine/indicators/{vmaState.ts → state/vmaState.ts} +2 -2
  426. package/src/engine/indicators/{volumeProfileState.ts → state/volumeProfileState.ts} +2 -2
  427. package/src/engine/indicators/{vwapState.ts → state/vwapState.ts} +2 -2
  428. package/src/engine/indicators/{wmaState.ts → state/wmaState.ts} +2 -2
  429. package/src/engine/indicators/{wmsrState.ts → state/wmsrState.ts} +2 -2
  430. package/src/engine/indicators/{zonesState.ts → state/zonesState.ts} +2 -2
  431. package/src/engine/indicators/stateComposer.ts +39 -39
  432. package/src/engine/indicators/visibleStateComposers.ts +203 -30
  433. package/src/engine/layout/pane.ts +2 -2
  434. package/src/engine/paneRenderer.ts +2 -6
  435. package/src/engine/render/chartRenderer.ts +7 -2
  436. package/src/engine/renderers/Indicator/__tests__/createSubIndicatorRenderer.test.ts +1 -1
  437. package/src/engine/renderers/Indicator/atr.ts +3 -3
  438. package/src/engine/renderers/Indicator/boll.ts +1 -1
  439. package/src/engine/renderers/Indicator/cci.ts +2 -2
  440. package/src/engine/renderers/Indicator/chaikinVol.ts +2 -2
  441. package/src/engine/renderers/Indicator/cmf.ts +2 -2
  442. package/src/engine/renderers/Indicator/dema.ts +2 -2
  443. package/src/engine/renderers/Indicator/donchian.ts +2 -2
  444. package/src/engine/renderers/Indicator/ene.ts +1 -1
  445. package/src/engine/renderers/Indicator/expma.ts +1 -1
  446. package/src/engine/renderers/Indicator/fastk.ts +2 -2
  447. package/src/engine/renderers/Indicator/fib.ts +2 -2
  448. package/src/engine/renderers/Indicator/hma.ts +2 -2
  449. package/src/engine/renderers/Indicator/hv.ts +3 -3
  450. package/src/engine/renderers/Indicator/ichimoku.ts +111 -85
  451. package/src/engine/renderers/Indicator/kama.ts +3 -3
  452. package/src/engine/renderers/Indicator/keltner.ts +4 -4
  453. package/src/engine/renderers/Indicator/kst.ts +5 -5
  454. package/src/engine/renderers/Indicator/ma.ts +2 -2
  455. package/src/engine/renderers/Indicator/macd.ts +40 -40
  456. package/src/engine/renderers/Indicator/mfi.ts +3 -3
  457. package/src/engine/renderers/Indicator/mom.ts +4 -4
  458. package/src/engine/renderers/Indicator/obv.ts +3 -3
  459. package/src/engine/renderers/Indicator/parkinson.ts +5 -5
  460. package/src/engine/renderers/Indicator/pivot.ts +4 -4
  461. package/src/engine/renderers/Indicator/pvt.ts +3 -3
  462. package/src/engine/renderers/Indicator/roc.ts +3 -3
  463. package/src/engine/renderers/Indicator/rsi.ts +4 -4
  464. package/src/engine/renderers/Indicator/sar.ts +3 -3
  465. package/src/engine/renderers/Indicator/stoch.ts +4 -4
  466. package/src/engine/renderers/Indicator/structure.ts +24 -24
  467. package/src/engine/renderers/Indicator/supertrend.ts +4 -4
  468. package/src/engine/renderers/Indicator/tema.ts +3 -3
  469. package/src/engine/renderers/Indicator/trix.ts +34 -34
  470. package/src/engine/renderers/Indicator/vma.ts +3 -3
  471. package/src/engine/renderers/Indicator/volumeProfile.ts +28 -28
  472. package/src/engine/renderers/Indicator/vwap.ts +3 -3
  473. package/src/engine/renderers/Indicator/wma.ts +3 -3
  474. package/src/engine/renderers/Indicator/wmsr.ts +3 -3
  475. package/src/engine/renderers/Indicator/zones.ts +6 -6
  476. package/src/engine/renderers/__tests__/boll.renderer.test.ts +1 -1
  477. package/src/engine/renderers/__tests__/ene.renderer.test.ts +1 -1
  478. package/src/engine/renderers/__tests__/expma.renderer.test.ts +1 -1
  479. package/src/engine/renderers/__tests__/ma.renderer.test.ts +1 -1
  480. package/src/engine/renderers/__tests__/mainIndicatorLegend.renderer.test.ts +4 -4
  481. package/src/engine/renderers/candle.ts +112 -70
  482. package/src/engine/renderers/extremaMarkers.ts +5 -3
  483. package/src/engine/renderers/gridLines.ts +1 -1
  484. package/src/engine/renderers/leftYAxis.ts +26 -3
  485. package/src/engine/renderers/timeAxis.ts +2 -0
  486. package/src/engine/renderers/timeShare.ts +10 -10
  487. package/src/engine/viewport/chartViewportManager.ts +61 -26
  488. package/src/mcp/chartBridge.ts +1 -1
  489. package/src/plugin/types.ts +4 -0
  490. package/src/utils/__tests__/dateFormat.test.ts +164 -0
  491. package/src/utils/dateFormat.ts +12 -6
  492. package/src/utils/kLineDraw/axis.ts +6 -2
  493. package/src/utils/volumePrice.ts +19 -3
  494. package/src/version.ts +1 -1
  495. package/dist/engine/indicators/atrState.d.ts.map +0 -1
  496. package/dist/engine/indicators/atrState.js.map +0 -1
  497. package/dist/engine/indicators/bollState.d.ts.map +0 -1
  498. package/dist/engine/indicators/bollState.js.map +0 -1
  499. package/dist/engine/indicators/cciState.d.ts.map +0 -1
  500. package/dist/engine/indicators/cciState.js.map +0 -1
  501. package/dist/engine/indicators/chaikinVolState.d.ts.map +0 -1
  502. package/dist/engine/indicators/chaikinVolState.js.map +0 -1
  503. package/dist/engine/indicators/cmfState.d.ts.map +0 -1
  504. package/dist/engine/indicators/cmfState.js.map +0 -1
  505. package/dist/engine/indicators/demaState.d.ts.map +0 -1
  506. package/dist/engine/indicators/demaState.js.map +0 -1
  507. package/dist/engine/indicators/donchianState.d.ts.map +0 -1
  508. package/dist/engine/indicators/donchianState.js.map +0 -1
  509. package/dist/engine/indicators/eneState.d.ts.map +0 -1
  510. package/dist/engine/indicators/eneState.js.map +0 -1
  511. package/dist/engine/indicators/expmaState.d.ts.map +0 -1
  512. package/dist/engine/indicators/expmaState.js.map +0 -1
  513. package/dist/engine/indicators/fastkState.d.ts.map +0 -1
  514. package/dist/engine/indicators/fastkState.js.map +0 -1
  515. package/dist/engine/indicators/fibState.d.ts.map +0 -1
  516. package/dist/engine/indicators/fibState.js.map +0 -1
  517. package/dist/engine/indicators/hmaState.d.ts.map +0 -1
  518. package/dist/engine/indicators/hmaState.js.map +0 -1
  519. package/dist/engine/indicators/hvState.d.ts.map +0 -1
  520. package/dist/engine/indicators/hvState.js.map +0 -1
  521. package/dist/engine/indicators/ichimokuState.d.ts.map +0 -1
  522. package/dist/engine/indicators/ichimokuState.js.map +0 -1
  523. package/dist/engine/indicators/kamaState.d.ts.map +0 -1
  524. package/dist/engine/indicators/kamaState.js.map +0 -1
  525. package/dist/engine/indicators/keltnerState.d.ts.map +0 -1
  526. package/dist/engine/indicators/keltnerState.js.map +0 -1
  527. package/dist/engine/indicators/kstState.d.ts.map +0 -1
  528. package/dist/engine/indicators/kstState.js.map +0 -1
  529. package/dist/engine/indicators/maState.d.ts.map +0 -1
  530. package/dist/engine/indicators/maState.js.map +0 -1
  531. package/dist/engine/indicators/macdState.d.ts.map +0 -1
  532. package/dist/engine/indicators/macdState.js.map +0 -1
  533. package/dist/engine/indicators/mfiState.d.ts.map +0 -1
  534. package/dist/engine/indicators/mfiState.js.map +0 -1
  535. package/dist/engine/indicators/momState.d.ts.map +0 -1
  536. package/dist/engine/indicators/momState.js.map +0 -1
  537. package/dist/engine/indicators/obvState.d.ts.map +0 -1
  538. package/dist/engine/indicators/obvState.js.map +0 -1
  539. package/dist/engine/indicators/parkinsonState.d.ts.map +0 -1
  540. package/dist/engine/indicators/parkinsonState.js.map +0 -1
  541. package/dist/engine/indicators/pivotState.d.ts.map +0 -1
  542. package/dist/engine/indicators/pivotState.js.map +0 -1
  543. package/dist/engine/indicators/pvtState.d.ts.map +0 -1
  544. package/dist/engine/indicators/pvtState.js.map +0 -1
  545. package/dist/engine/indicators/rocState.d.ts.map +0 -1
  546. package/dist/engine/indicators/rocState.js.map +0 -1
  547. package/dist/engine/indicators/rsiState.d.ts.map +0 -1
  548. package/dist/engine/indicators/rsiState.js.map +0 -1
  549. package/dist/engine/indicators/sarState.d.ts.map +0 -1
  550. package/dist/engine/indicators/sarState.js.map +0 -1
  551. package/dist/engine/indicators/stochState.d.ts.map +0 -1
  552. package/dist/engine/indicators/stochState.js.map +0 -1
  553. package/dist/engine/indicators/structureState.d.ts.map +0 -1
  554. package/dist/engine/indicators/structureState.js.map +0 -1
  555. package/dist/engine/indicators/supertrendState.d.ts.map +0 -1
  556. package/dist/engine/indicators/supertrendState.js.map +0 -1
  557. package/dist/engine/indicators/temaState.d.ts.map +0 -1
  558. package/dist/engine/indicators/temaState.js.map +0 -1
  559. package/dist/engine/indicators/trixState.d.ts.map +0 -1
  560. package/dist/engine/indicators/trixState.js.map +0 -1
  561. package/dist/engine/indicators/vmaState.d.ts.map +0 -1
  562. package/dist/engine/indicators/vmaState.js.map +0 -1
  563. package/dist/engine/indicators/volumeProfileState.d.ts.map +0 -1
  564. package/dist/engine/indicators/volumeProfileState.js.map +0 -1
  565. package/dist/engine/indicators/vwapState.d.ts.map +0 -1
  566. package/dist/engine/indicators/vwapState.js.map +0 -1
  567. package/dist/engine/indicators/wmaState.d.ts.map +0 -1
  568. package/dist/engine/indicators/wmaState.js.map +0 -1
  569. package/dist/engine/indicators/wmsrState.d.ts.map +0 -1
  570. package/dist/engine/indicators/wmsrState.js.map +0 -1
  571. package/dist/engine/indicators/zonesState.d.ts.map +0 -1
  572. package/dist/engine/indicators/zonesState.js.map +0 -1
  573. /package/dist/engine/indicators/{macdState.js → state/macdState.js} +0 -0
@@ -1,9 +1,9 @@
1
1
  import type { RendererPluginWithHost, RenderContext, PluginHost } from '../../../plugin'
2
2
  import { RENDERER_PRIORITY } from '../../../plugin'
3
3
  import { resolveThemeColors } from '../../../tokens'
4
- import type { ParkinsonRenderState } from '../../indicators/parkinsonState'
5
- import { createParkinsonStateKey } from '../../indicators/parkinsonState'
6
- import { EMPTY_PARKINSON_STATE } from '../../indicators/parkinsonState'
4
+ import type { ParkinsonRenderState } from '../../indicators/state/parkinsonState'
5
+ import { createParkinsonStateKey } from '../../indicators/state/parkinsonState'
6
+ import { EMPTY_PARKINSON_STATE } from '../../indicators/state/parkinsonState'
7
7
  import { createNonNegativeSparseVisibleStateComposer } from '../../indicators/visibleStateComposers'
8
8
  import { Indicator } from '../../indicators/indicatorDefinitionRegistry'
9
9
  import { resolveStateKey } from '../../indicators/indicatorMetadata'
@@ -109,7 +109,7 @@ function createParkinsonRendererPlugin(options: { paneId?: string } = {}): Rende
109
109
  const state = pluginHost?.getSharedState<ParkinsonRenderState>(stateKey)
110
110
  return state?.params ?? {}
111
111
  },
112
- setConfig() {},
112
+ setConfig() { },
113
113
  }
114
114
  }
115
115
 
@@ -123,7 +123,7 @@ const getParkinsonTitleInfo = createSingleLineTitleInfo({ createStateKey: create
123
123
  scale: { indicatorKey: 'parkinson', label: 'Parkinson', decimals: 2 },
124
124
  getTitleInfo: getParkinsonTitleInfo,
125
125
  visibleState: { compose: createNonNegativeSparseVisibleStateComposer('parkinson', EMPTY_PARKINSON_STATE) },
126
- runtime: { defaultConfig:{period:20,annualizationFactor:252,showParkinson:true}, computeKey:'calcParkinsonData', compute:(data,c)=>calcParkinsonData(data,c.period,c.annualizationFactor) },
126
+ runtime: { defaultConfig: { period: 20, annualizationFactor: 252, showParkinson: true }, computeKey: 'calcParkinsonData', compute: (data, c) => calcParkinsonData(data, c.period, c.annualizationFactor) },
127
127
  })
128
128
  class ParkinsonIndicatorDefinition {
129
129
  static rendererFactory = createParkinsonRendererPlugin
@@ -1,7 +1,7 @@
1
1
  import type { RendererPluginWithHost, RenderContext, PluginHost } from '../../../plugin'
2
2
  import { RENDERER_PRIORITY } from '../../../plugin'
3
- import type { PivotRenderState } from '../../indicators/pivotState'
4
- import { createPivotStateKey, EMPTY_PIVOT_STATE } from '../../indicators/pivotState'
3
+ import type { PivotRenderState } from '../../indicators/state/pivotState'
4
+ import { createPivotStateKey, EMPTY_PIVOT_STATE } from '../../indicators/state/pivotState'
5
5
  import { Indicator } from '../../indicators/indicatorDefinitionRegistry'
6
6
  import { resolveStateKey, type TitleInfo, type TitleValueItem, type GetTitleInfoFn } from '../../indicators/indicatorMetadata'
7
7
  import type { IndicatorScheduler, PivotSchedulerConfig } from '../../indicators/scheduler'
@@ -99,7 +99,7 @@ function createPivotRendererPlugin(options: { paneId?: string } = {}): RendererP
99
99
  if (!stateKey) return {}
100
100
  return pluginHost?.getSharedState<PivotRenderState>(stateKey)?.params ?? {}
101
101
  },
102
- setConfig() {},
102
+ setConfig() { },
103
103
  }
104
104
  }
105
105
 
@@ -169,7 +169,7 @@ const getPivotTitleInfo: GetTitleInfoFn = (_data, index, _params, host, paneId)
169
169
  mainPane: { rendererName: 'pivot_main', toActiveConfig: (params, active) => ({ ...params, showPP: active, showR1: active, showR2: active, showR3: active, showS1: active, showS2: active, showS3: active }) },
170
170
  scale: { indicatorKey: 'pivot', label: 'Pivot', decimals: 2 },
171
171
  visibleState: { compose: createExactRangePointVisibleStateComposer('pivot', EMPTY_PIVOT_STATE, ['pp', 'r1', 'r2', 'r3', 's1', 's2', 's3']) },
172
- runtime: { defaultConfig:{showPP:true,showR1:true,showR2:true,showR3:true,showS1:true,showS2:true,showS3:true}, computeKey:'calcPivotData', compute:(data,c)=>calcPivotData(data) },
172
+ runtime: { defaultConfig: { showPP: true, showR1: true, showR2: true, showR3: true, showS1: true, showS2: true, showS3: true }, computeKey: 'calcPivotData', compute: (data, c) => calcPivotData(data) },
173
173
  })
174
174
  class PivotDefinition {
175
175
  static rendererFactory = createPivotRendererPlugin
@@ -1,7 +1,7 @@
1
1
  import type { RendererPluginWithHost, RenderContext, PluginHost } from '../../../plugin'
2
2
  import { RENDERER_PRIORITY } from '../../../plugin'
3
- import type { PVTRenderState } from '../../indicators/pvtState'
4
- import { createPVTStateKey, EMPTY_PVT_STATE } from '../../indicators/pvtState'
3
+ import type { PVTRenderState } from '../../indicators/state/pvtState'
4
+ import { createPVTStateKey, EMPTY_PVT_STATE } from '../../indicators/state/pvtState'
5
5
  import { Indicator } from '../../indicators/indicatorDefinitionRegistry'
6
6
  import { resolveStateKey } from '../../indicators/indicatorMetadata'
7
7
  import { createSparseVisibleStateComposer } from '../../indicators/visibleStateComposers'
@@ -106,7 +106,7 @@ function createPVTRendererPlugin(options: { paneId?: string } = {}): RendererPlu
106
106
  const state = pluginHost?.getSharedState<PVTRenderState>(stateKey)
107
107
  return state?.params ?? {}
108
108
  },
109
- setConfig() {},
109
+ setConfig() { },
110
110
  }
111
111
  }
112
112
 
@@ -1,8 +1,8 @@
1
1
  import type { RendererPluginWithHost, RenderContext, PluginHost } from '../../../plugin'
2
2
  import { RENDERER_PRIORITY } from '../../../plugin'
3
3
  import { resolveThemeColors } from '../../../tokens'
4
- import type { ROCRenderState } from '../../indicators/rocState'
5
- import { createROCStateKey, EMPTY_ROC_STATE } from '../../indicators/rocState'
4
+ import type { ROCRenderState } from '../../indicators/state/rocState'
5
+ import { createROCStateKey, EMPTY_ROC_STATE } from '../../indicators/state/rocState'
6
6
  import { Indicator } from '../../indicators/indicatorDefinitionRegistry'
7
7
  import { resolveStateKey } from '../../indicators/indicatorMetadata'
8
8
  import { createSparseVisibleStateComposer } from '../../indicators/visibleStateComposers'
@@ -127,7 +127,7 @@ function createROCRendererPlugin(options: ROCRendererOptions = {}): RendererPlug
127
127
  const state = pluginHost?.getSharedState<ROCRenderState>(stateKey)
128
128
  return state?.params ?? {}
129
129
  },
130
- setConfig() {},
130
+ setConfig() { },
131
131
  }
132
132
  }
133
133
 
@@ -2,8 +2,8 @@ import type { RendererPluginWithHost, RenderContext, PluginHost } from '../../..
2
2
  import { RENDERER_PRIORITY } from '../../../plugin'
3
3
  import { resolveThemeColors } from '../../../tokens'
4
4
  import { alignToPhysicalPixelCenter } from '../../draw/pixelAlign'
5
- import type { RSIRenderState } from '../../indicators/rsiState'
6
- import { createRSIStateKey, EMPTY_RSI_STATE } from '../../indicators/rsiState'
5
+ import type { RSIRenderState } from '../../indicators/state/rsiState'
6
+ import { createRSIStateKey, EMPTY_RSI_STATE } from '../../indicators/state/rsiState'
7
7
  import { Indicator } from '../../indicators/indicatorDefinitionRegistry'
8
8
  import { createFixedRangeRecordVisibleStateComposer } from '../../indicators/visibleStateComposers'
9
9
  import { resolveStateKey } from '../../indicators/indicatorMetadata'
@@ -171,7 +171,7 @@ function createRSIRendererPlugin(options: RSIRendererOptions = {}): RendererPlug
171
171
  },
172
172
 
173
173
  draw(context: RenderContext) {
174
- const { ctx, pane, range, scrollLeft, dpr, kLineCenters, lineWebGLSurface } = context
174
+ const { ctx, pane, range, scrollLeft, dpr, kLineCenters, lineWebGLSurface } = context
175
175
  const colors = resolveThemeColors(context.theme, context.isAsiaMarket, context.colorPresetSettings)
176
176
 
177
177
  // 从 StateStore 读取 RSI 状态
@@ -394,7 +394,7 @@ function getRSITitleInfo(
394
394
  visibleState: { compose: createFixedRangeRecordVisibleStateComposer('rsi', EMPTY_RSI_STATE) },
395
395
  scaleRendererFactory: createRsiScaleRendererPlugin,
396
396
  getTitleInfo: getRSITitleInfo,
397
- runtime: { defaultConfig:{period1:6,period2:12,period3:24,showRSI1:true,showRSI2:true,showRSI3:true}, computeKey:'calcRSIData', compute:(data,c)=>{const p=[c.period1,c.period2,c.period3];const s=[c.showRSI1,c.showRSI2,c.showRSI3];const r:Record<number,(number|undefined)[]>={};for(let i=0;i<3;i++){if(s[i])r[p[i]]=calcRSIData(data,p[i])}return r} },
397
+ runtime: { defaultConfig: { period1: 6, period2: 12, period3: 24, showRSI1: true, showRSI2: true, showRSI3: true }, computeKey: 'calcRSIData', compute: (data, c) => { const p = [c.period1, c.period2, c.period3]; const s = [c.showRSI1, c.showRSI2, c.showRSI3]; const r: Record<number, (number | undefined)[]> = {}; for (let i = 0; i < 3; i++) { if (s[i]) r[p[i]] = calcRSIData(data, p[i]) } return r } },
398
398
  })
399
399
  class RSIIndicatorDefinition {
400
400
  static rendererFactory = createRSIRendererPlugin
@@ -2,8 +2,8 @@ import type { RendererPluginWithHost, RenderContext, PluginHost } from '../../..
2
2
  import { RENDERER_PRIORITY } from '../../../plugin'
3
3
  import { resolveThemeColors } from '../../../tokens'
4
4
  import type { KLineData } from '../../../types/price'
5
- import type { SARRenderState } from '../../indicators/sarState'
6
- import { createSARStateKey, EMPTY_SAR_STATE } from '../../indicators/sarState'
5
+ import type { SARRenderState } from '../../indicators/state/sarState'
6
+ import { createSARStateKey, EMPTY_SAR_STATE } from '../../indicators/state/sarState'
7
7
  import { Indicator } from '../../indicators/indicatorDefinitionRegistry'
8
8
  import { resolveStateKey, type TitleInfo, type GetTitleInfoFn } from '../../indicators/indicatorMetadata'
9
9
  import type { IndicatorScheduler, SARSchedulerConfig } from '../../indicators/scheduler'
@@ -130,7 +130,7 @@ function getSARTitleInfo(
130
130
  mainPane: { rendererName: 'sar_main', toActiveConfig: (params, active) => ({ ...params, showSAR: active }) },
131
131
  scale: { indicatorKey: 'sar', label: 'SAR', decimals: 4 },
132
132
  visibleState: { compose: createValuePointVisibleStateComposer('sar', EMPTY_SAR_STATE, ['value']) },
133
- runtime: { defaultConfig:{step:0.02,maxStep:0.2,showSAR:true}, computeKey:'calcSARData', compute:(data,c)=>calcSARData(data,c.step,c.maxStep) },
133
+ runtime: { defaultConfig: { step: 0.02, maxStep: 0.2, showSAR: true }, computeKey: 'calcSARData', compute: (data, c) => calcSARData(data, c.step, c.maxStep) },
134
134
  })
135
135
  class SARDefinition {
136
136
  static rendererFactory = createSARRendererPlugin
@@ -2,8 +2,8 @@ import type { RendererPluginWithHost, RenderContext, PluginHost } from '../../..
2
2
  import { RENDERER_PRIORITY } from '../../../plugin'
3
3
  import { resolveThemeColors } from '../../../tokens'
4
4
  import { createDashedLineRenderer } from './shared/dashedLines'
5
- import type { STOCHRenderState } from '../../indicators/stochState'
6
- import { createSTOCHStateKey, EMPTY_STOCH_STATE } from '../../indicators/stochState'
5
+ import type { STOCHRenderState } from '../../indicators/state/stochState'
6
+ import { createSTOCHStateKey, EMPTY_STOCH_STATE } from '../../indicators/state/stochState'
7
7
  import { Indicator } from '../../indicators/indicatorDefinitionRegistry'
8
8
  import { createFixedRangePointVisibleStateComposer } from '../../indicators/visibleStateComposers'
9
9
  import { resolveStateKey } from '../../indicators/indicatorMetadata'
@@ -103,7 +103,7 @@ function createSTOCHRendererPlugin(options: STOCHRendererOptions = {}): Renderer
103
103
  },
104
104
 
105
105
  draw(context: RenderContext) {
106
- const { ctx, pane, range, scrollLeft, dpr, kLineCenters, lineWebGLSurface } = context
106
+ const { ctx, pane, range, scrollLeft, dpr, kLineCenters, lineWebGLSurface } = context
107
107
  const colors = resolveThemeColors(context.theme, context.isAsiaMarket, context.colorPresetSettings)
108
108
 
109
109
  const stateKey = resolveKey()
@@ -292,7 +292,7 @@ function getSTOCHTitleInfo(
292
292
  visibleState: { compose: createFixedRangePointVisibleStateComposer('stoch', EMPTY_STOCH_STATE, ['k', 'd'] as const) },
293
293
  scaleRendererFactory: createStochScaleRendererPlugin,
294
294
  getTitleInfo: getSTOCHTitleInfo,
295
- runtime: { defaultConfig:{n:9,m:3,showK:true,showD:true}, computeKey:'calcSTOCHData', compute:(data,c)=>calcSTOCHData(data,c.n,c.m) },
295
+ runtime: { defaultConfig: { n: 9, m: 3, showK: true, showD: true }, computeKey: 'calcSTOCHData', compute: (data, c) => calcSTOCHData(data, c.n, c.m) },
296
296
  })
297
297
  class STOCHIndicatorDefinition {
298
298
  static rendererFactory = createSTOCHRendererPlugin
@@ -1,8 +1,8 @@
1
1
  import { resolveThemeColors } from '../../../tokens'
2
2
  import type { RendererPluginWithHost, RenderContext, PluginHost } from '../../../plugin'
3
3
  import { RENDERER_PRIORITY } from '../../../plugin'
4
- import type { StructureRenderState } from '../../indicators/structureState'
5
- import { createStructureStateKey, EMPTY_STRUCTURE_STATE } from '../../indicators/structureState'
4
+ import type { StructureRenderState } from '../../indicators/state/structureState'
5
+ import { createStructureStateKey, EMPTY_STRUCTURE_STATE } from '../../indicators/state/structureState'
6
6
  import { Indicator } from '../../indicators/indicatorDefinitionRegistry'
7
7
  import { createFixedUnitVisibleStateComposer } from '../../indicators/visibleStateComposers'
8
8
  import { resolveStateKey } from '../../indicators/indicatorMetadata'
@@ -109,34 +109,34 @@ function createStructureRendererPlugin(options: { paneId?: string } = {}): Rende
109
109
  const state = pluginHost?.getSharedState<StructureRenderState>(stateKey)
110
110
  return state?.params ?? {}
111
111
  },
112
- setConfig() {},
112
+ setConfig() { },
113
113
  }
114
114
  }
115
115
 
116
116
  function getStructureTitleInfo(
117
- _data: KLineData[],
118
- index: number | null,
119
- params: Record<string, number | boolean | string>,
120
- host: PluginHost,
121
- paneId: string,
117
+ _data: KLineData[],
118
+ index: number | null,
119
+ params: Record<string, number | boolean | string>,
120
+ host: PluginHost,
121
+ paneId: string,
122
122
  ): TitleInfo | null {
123
- if (index === null) return null
124
- const leftWindow = (params.leftWindow as number) ?? 5
125
- const rightWindow = (params.rightWindow as number) ?? 2
126
- const colors = resolveThemeColors('light')
127
- const state = host.getSharedState<StructureRenderState>(createStructureStateKey(paneId))
123
+ if (index === null) return null
124
+ const leftWindow = (params.leftWindow as number) ?? 5
125
+ const rightWindow = (params.rightWindow as number) ?? 2
126
+ const colors = resolveThemeColors('light')
127
+ const state = host.getSharedState<StructureRenderState>(createStructureStateKey(paneId))
128
128
 
129
- const values: Array<{ label: string; value: number; color: string }> = []
130
- if (state && state.series.swings.length > 0) {
131
- values.push({ label: 'Swings', value: state.series.swings.length, color: colors.structure.hh })
132
- values.push({ label: 'Events', value: state.series.events.length, color: colors.structure.choch })
133
- }
129
+ const values: Array<{ label: string; value: number; color: string }> = []
130
+ if (state && state.series.swings.length > 0) {
131
+ values.push({ label: 'Swings', value: state.series.swings.length, color: colors.structure.hh })
132
+ values.push({ label: 'Events', value: state.series.events.length, color: colors.structure.choch })
133
+ }
134
134
 
135
- return {
136
- name: 'Structure',
137
- params: [leftWindow, rightWindow],
138
- values,
139
- }
135
+ return {
136
+ name: 'Structure',
137
+ params: [leftWindow, rightWindow],
138
+ values,
139
+ }
140
140
  }
141
141
 
142
142
  @Indicator({
@@ -149,7 +149,7 @@ function getStructureTitleInfo(
149
149
  scale: { indicatorKey: 'structure', label: 'Structure', decimals: 2 },
150
150
  getTitleInfo: getStructureTitleInfo,
151
151
  visibleState: { compose: createFixedUnitVisibleStateComposer('structure', EMPTY_STRUCTURE_STATE) },
152
- runtime: { defaultConfig:{leftWindow:5,rightWindow:2,breakoutSource:'close',showSwingLabels:true,showBOS:true,showCHOCH:true,showProvisional:true}, computeKey:'calcStructureData', compute:(data,c)=>calcStructureData(data,c.leftWindow,c.rightWindow,c.breakoutSource) },
152
+ runtime: { defaultConfig: { leftWindow: 5, rightWindow: 2, breakoutSource: 'close', showSwingLabels: true, showBOS: true, showCHOCH: true, showProvisional: true }, computeKey: 'calcStructureData', compute: (data, c) => calcStructureData(data, c.leftWindow, c.rightWindow, c.breakoutSource) },
153
153
  })
154
154
  class StructureIndicatorDefinition {
155
155
  static rendererFactory = createStructureRendererPlugin
@@ -2,8 +2,8 @@ import type { RendererPluginWithHost, RenderContext, PluginHost } from '../../..
2
2
  import { RENDERER_PRIORITY } from '../../../plugin'
3
3
  import { resolveThemeColors } from '../../../tokens'
4
4
  import type { KLineData } from '../../../types/price'
5
- import type { SuperTrendRenderState } from '../../indicators/supertrendState'
6
- import { createSuperTrendStateKey, EMPTY_SUPERTREND_STATE } from '../../indicators/supertrendState'
5
+ import type { SuperTrendRenderState } from '../../indicators/state/supertrendState'
6
+ import { createSuperTrendStateKey, EMPTY_SUPERTREND_STATE } from '../../indicators/state/supertrendState'
7
7
  import { Indicator } from '../../indicators/indicatorDefinitionRegistry'
8
8
  import { resolveStateKey, type TitleInfo, type GetTitleInfoFn } from '../../indicators/indicatorMetadata'
9
9
  import type { IndicatorScheduler, SuperTrendSchedulerConfig } from '../../indicators/scheduler'
@@ -96,7 +96,7 @@ function createSuperTrendRendererPlugin(options: SuperTrendRendererOptions = {})
96
96
  const state = pluginHost?.getSharedState<SuperTrendRenderState>(stateKey)
97
97
  return state?.params ?? {}
98
98
  },
99
- setConfig() {},
99
+ setConfig() { },
100
100
  }
101
101
  }
102
102
 
@@ -131,7 +131,7 @@ function getSuperTrendTitleInfo(
131
131
  mainPane: { rendererName: 'supertrend_main', toActiveConfig: (params, active) => ({ ...params, showSuperTrend: active }) },
132
132
  scale: { indicatorKey: 'supertrend', label: 'SuperTrend', decimals: 2 },
133
133
  visibleState: { compose: createValuePointVisibleStateComposer('supertrend', EMPTY_SUPERTREND_STATE, ['value']) },
134
- runtime: { defaultConfig:{atrPeriod:10,multiplier:3,showSuperTrend:true}, computeKey:'calcSuperTrendData', compute:(data,c)=>calcSuperTrendData(data,c.atrPeriod,c.multiplier) },
134
+ runtime: { defaultConfig: { atrPeriod: 10, multiplier: 3, showSuperTrend: true }, computeKey: 'calcSuperTrendData', compute: (data, c) => calcSuperTrendData(data, c.atrPeriod, c.multiplier) },
135
135
  })
136
136
  class SuperTrendIndicatorDefinition {
137
137
  static rendererFactory = createSuperTrendRendererPlugin
@@ -1,8 +1,8 @@
1
1
  import type { RendererPluginWithHost, RenderContext, PluginHost } from '../../../plugin'
2
2
  import { createSingleLineTitleInfo } from './shared/titleInfo'
3
3
  import { RENDERER_PRIORITY } from '../../../plugin'
4
- import type { TEMARenderState } from '../../indicators/temaState'
5
- import { createTEMAStateKey, EMPTY_TEMA_STATE } from '../../indicators/temaState'
4
+ import type { TEMARenderState } from '../../indicators/state/temaState'
5
+ import { createTEMAStateKey, EMPTY_TEMA_STATE } from '../../indicators/state/temaState'
6
6
  import { Indicator } from '../../indicators/indicatorDefinitionRegistry'
7
7
  import { resolveStateKey } from '../../indicators/indicatorMetadata'
8
8
  import { createSparseVisibleStateComposer } from '../../indicators/visibleStateComposers'
@@ -134,7 +134,7 @@ const getTEMATitleInfo = createSingleLineTitleInfo({ createStateKey: createTEMAS
134
134
  mainPane: { rendererName: 'tema_main', toActiveConfig: (params, active) => ({ ...params, showTEMA: active }) },
135
135
  visibleState: { compose: createSparseVisibleStateComposer('tema', EMPTY_TEMA_STATE) },
136
136
  scale: { indicatorKey: 'tema', label: 'TEMA', decimals: 2 },
137
- runtime: { defaultConfig:{period:14,showTEMA:true}, computeKey:'calcTEMAData', compute:(data,c)=>calcTEMAData(data,c.period) },
137
+ runtime: { defaultConfig: { period: 14, showTEMA: true }, computeKey: 'calcTEMAData', compute: (data, c) => calcTEMAData(data, c.period) },
138
138
  })
139
139
  class TEMADefinition {
140
140
  static rendererFactory = createTEMARendererPlugin
@@ -1,9 +1,9 @@
1
1
  import type { RendererPluginWithHost, RenderContext, PluginHost } from '../../../plugin'
2
2
  import { RENDERER_PRIORITY } from '../../../plugin'
3
3
  import { resolveThemeColors } from '../../../tokens'
4
- import type { TRIXRenderState } from '../../indicators/trixState'
5
- import { createTRIXStateKey } from '../../indicators/trixState'
6
- import { EMPTY_TRIX_STATE } from '../../indicators/trixState'
4
+ import type { TRIXRenderState } from '../../indicators/state/trixState'
5
+ import { createTRIXStateKey } from '../../indicators/state/trixState'
6
+ import { EMPTY_TRIX_STATE } from '../../indicators/state/trixState'
7
7
  import { createDualSparseVisibleStateComposer } from '../../indicators/visibleStateComposers'
8
8
  import { Indicator } from '../../indicators/indicatorDefinitionRegistry'
9
9
  import { resolveStateKey } from '../../indicators/indicatorMetadata'
@@ -135,7 +135,7 @@ function createTRIXRendererPlugin(options: TRIXRendererOptions = {}): RendererPl
135
135
  const state = pluginHost?.getSharedState<TRIXRenderState>(stateKey)
136
136
  return state?.params ?? {}
137
137
  },
138
- setConfig() {},
138
+ setConfig() { },
139
139
  }
140
140
  }
141
141
 
@@ -149,36 +149,36 @@ function drawLine(ctx: CanvasRenderingContext2D, pts: Point[], color: string): v
149
149
  }
150
150
 
151
151
  function getTRIXTitleInfo(
152
- _data: KLineData[],
153
- index: number | null,
154
- params: Record<string, number | boolean | string>,
155
- pluginHost: PluginHost,
156
- paneId: string,
152
+ _data: KLineData[],
153
+ index: number | null,
154
+ params: Record<string, number | boolean | string>,
155
+ pluginHost: PluginHost,
156
+ paneId: string,
157
157
  ): TitleInfo | null {
158
- if (index === null) return null
159
- const period = (params.period as number) ?? 15
160
- const signalPeriod = (params.signalPeriod as number) ?? 9
161
- const state = pluginHost.getSharedState<TRIXRenderState>(createTRIXStateKey(paneId))
162
- if (!state) return null
163
-
164
- const values: Array<{ label: string; value: number; color: string }> = []
165
-
166
- if (state.params.showTRIX) {
167
- const v = state.series[index]
168
- if (v !== undefined) values.push({ label: 'TRIX', value: v, color: TRIX_COLOR })
169
- }
170
- if (state.params.showSignal) {
171
- const v = state.signalSeries[index]
172
- if (v !== undefined) values.push({ label: 'Signal', value: v, color: SIGNAL_COLOR })
173
- }
174
-
175
- if (values.length === 0) return null
176
-
177
- return {
178
- name: 'TRIX',
179
- params: [period, signalPeriod],
180
- values,
181
- }
158
+ if (index === null) return null
159
+ const period = (params.period as number) ?? 15
160
+ const signalPeriod = (params.signalPeriod as number) ?? 9
161
+ const state = pluginHost.getSharedState<TRIXRenderState>(createTRIXStateKey(paneId))
162
+ if (!state) return null
163
+
164
+ const values: Array<{ label: string; value: number; color: string }> = []
165
+
166
+ if (state.params.showTRIX) {
167
+ const v = state.series[index]
168
+ if (v !== undefined) values.push({ label: 'TRIX', value: v, color: TRIX_COLOR })
169
+ }
170
+ if (state.params.showSignal) {
171
+ const v = state.signalSeries[index]
172
+ if (v !== undefined) values.push({ label: 'Signal', value: v, color: SIGNAL_COLOR })
173
+ }
174
+
175
+ if (values.length === 0) return null
176
+
177
+ return {
178
+ name: 'TRIX',
179
+ params: [period, signalPeriod],
180
+ values,
181
+ }
182
182
  }
183
183
 
184
184
  @Indicator({
@@ -189,7 +189,7 @@ function getTRIXTitleInfo(
189
189
  scale: { indicatorKey: 'trix', label: 'TRIX', decimals: 6 },
190
190
  visibleState: { compose: createDualSparseVisibleStateComposer('trix', EMPTY_TRIX_STATE) },
191
191
  getTitleInfo: getTRIXTitleInfo,
192
- runtime: { defaultConfig:{period:15,signalPeriod:9,showTRIX:true,showSignal:true}, computeKey:'calcTRIXData', compute:(data,c)=>calcTRIXData(data,c.period,c.signalPeriod) },
192
+ runtime: { defaultConfig: { period: 15, signalPeriod: 9, showTRIX: true, showSignal: true }, computeKey: 'calcTRIXData', compute: (data, c) => calcTRIXData(data, c.period, c.signalPeriod) },
193
193
  })
194
194
  class TRIXIndicatorDefinition {
195
195
  static rendererFactory = createTRIXRendererPlugin
@@ -1,8 +1,8 @@
1
1
  import type { RendererPluginWithHost, RenderContext, PluginHost } from '../../../plugin'
2
2
  import { RENDERER_PRIORITY } from '../../../plugin'
3
- import type { VMARenderState } from '../../indicators/vmaState'
4
- import { createVMAStateKey } from '../../indicators/vmaState'
5
- import { EMPTY_VMA_STATE } from '../../indicators/vmaState'
3
+ import type { VMARenderState } from '../../indicators/state/vmaState'
4
+ import { createVMAStateKey } from '../../indicators/state/vmaState'
5
+ import { EMPTY_VMA_STATE } from '../../indicators/state/vmaState'
6
6
  import { createSingleLineTitleInfo } from './shared/titleInfo'
7
7
  import { createNonNegativeSparseVisibleStateComposer } from '../../indicators/visibleStateComposers'
8
8
  import { Indicator } from '../../indicators/indicatorDefinitionRegistry'
@@ -1,7 +1,7 @@
1
1
  import type { RendererPluginWithHost, RenderContext, PluginHost } from '../../../plugin'
2
2
  import { RENDERER_PRIORITY } from '../../../plugin'
3
- import type { VolumeProfileRenderState } from '../../indicators/volumeProfileState'
4
- import { createVolumeProfileStateKey, EMPTY_VOLUME_PROFILE_STATE } from '../../indicators/volumeProfileState'
3
+ import type { VolumeProfileRenderState } from '../../indicators/state/volumeProfileState'
4
+ import { createVolumeProfileStateKey, EMPTY_VOLUME_PROFILE_STATE } from '../../indicators/state/volumeProfileState'
5
5
  import { Indicator } from '../../indicators/indicatorDefinitionRegistry'
6
6
  import { createVolumeProfileVisibleStateComposer } from '../../indicators/visibleStateComposers'
7
7
  import { resolveStateKey } from '../../indicators/indicatorMetadata'
@@ -110,7 +110,7 @@ function createVolumeProfileRendererPlugin(options: { paneId?: string } = {}): R
110
110
  const state = pluginHost?.getSharedState<VolumeProfileRenderState>(stateKey)
111
111
  return state?.params ?? {}
112
112
  },
113
- setConfig() {},
113
+ setConfig() { },
114
114
  }
115
115
  }
116
116
 
@@ -119,33 +119,33 @@ const VP_VAH_COLOR = '#6366f1'
119
119
  const VP_VAL_COLOR = '#818cf8'
120
120
 
121
121
  function getVolumeProfileTitleInfo(
122
- _data: KLineData[],
123
- index: number | null,
124
- params: Record<string, number | boolean | string>,
125
- host: PluginHost,
126
- paneId: string,
122
+ _data: KLineData[],
123
+ index: number | null,
124
+ params: Record<string, number | boolean | string>,
125
+ host: PluginHost,
126
+ paneId: string,
127
127
  ): TitleInfo | null {
128
- if (index === null) return null
129
- const bins = (params.bins as number) ?? 24
130
- const state = host.getSharedState<VolumeProfileRenderState>(createVolumeProfileStateKey(paneId))
131
- const vp = state?.series
132
-
133
- const values: Array<{ label: string; value: number; color: string }> = []
134
- if (vp && vp.bins.length > 0) {
135
- if (state.params.showPOC) {
136
- values.push({ label: 'POC', value: vp.poc, color: VP_POC_COLOR })
128
+ if (index === null) return null
129
+ const bins = (params.bins as number) ?? 24
130
+ const state = host.getSharedState<VolumeProfileRenderState>(createVolumeProfileStateKey(paneId))
131
+ const vp = state?.series
132
+
133
+ const values: Array<{ label: string; value: number; color: string }> = []
134
+ if (vp && vp.bins.length > 0) {
135
+ if (state.params.showPOC) {
136
+ values.push({ label: 'POC', value: vp.poc, color: VP_POC_COLOR })
137
+ }
138
+ if (state.params.showValueArea) {
139
+ values.push({ label: 'VAH', value: vp.vah, color: VP_VAH_COLOR })
140
+ values.push({ label: 'VAL', value: vp.val, color: VP_VAL_COLOR })
141
+ }
137
142
  }
138
- if (state.params.showValueArea) {
139
- values.push({ label: 'VAH', value: vp.vah, color: VP_VAH_COLOR })
140
- values.push({ label: 'VAL', value: vp.val, color: VP_VAL_COLOR })
141
- }
142
- }
143
143
 
144
- return {
145
- name: 'VP',
146
- params: [bins],
147
- values,
148
- }
144
+ return {
145
+ name: 'VP',
146
+ params: [bins],
147
+ values,
148
+ }
149
149
  }
150
150
 
151
151
  @Indicator({
@@ -156,7 +156,7 @@ function getVolumeProfileTitleInfo(
156
156
  scale: { indicatorKey: 'volumeProfile', label: 'VP', decimals: 0 },
157
157
  getTitleInfo: getVolumeProfileTitleInfo,
158
158
  visibleState: { compose: createVolumeProfileVisibleStateComposer('volumeProfile', EMPTY_VOLUME_PROFILE_STATE) },
159
- runtime: { defaultConfig:{bins:24,lookback:100,valueAreaPercent:70,showPOC:true,showValueArea:true}, computeKey:'calcVolumeProfileData', compute:(data,c)=>calcVolumeProfileData(data,c.bins,c.lookback,c.valueAreaPercent) },
159
+ runtime: { defaultConfig: { bins: 24, lookback: 100, valueAreaPercent: 70, showPOC: true, showValueArea: true }, computeKey: 'calcVolumeProfileData', compute: (data, c) => calcVolumeProfileData(data, c.bins, c.lookback, c.valueAreaPercent) },
160
160
  })
161
161
  class VolumeProfileIndicatorDefinition {
162
162
  static rendererFactory = createVolumeProfileRendererPlugin
@@ -1,7 +1,7 @@
1
1
  import type { RendererPluginWithHost, RenderContext, PluginHost } from '../../../plugin'
2
2
  import { RENDERER_PRIORITY } from '../../../plugin'
3
- import type { VWAPRenderState } from '../../indicators/vwapState'
4
- import { createVWAPStateKey, EMPTY_VWAP_STATE } from '../../indicators/vwapState'
3
+ import type { VWAPRenderState } from '../../indicators/state/vwapState'
4
+ import { createVWAPStateKey, EMPTY_VWAP_STATE } from '../../indicators/state/vwapState'
5
5
  import { Indicator } from '../../indicators/indicatorDefinitionRegistry'
6
6
  import { resolveStateKey } from '../../indicators/indicatorMetadata'
7
7
  import { createSparseVisibleStateComposer } from '../../indicators/visibleStateComposers'
@@ -106,7 +106,7 @@ function createVWAPRendererPlugin(options: { paneId?: string } = {}): RendererPl
106
106
  const state = pluginHost?.getSharedState<VWAPRenderState>(stateKey)
107
107
  return state?.params ?? {}
108
108
  },
109
- setConfig() {},
109
+ setConfig() { },
110
110
  }
111
111
  }
112
112
 
@@ -1,8 +1,8 @@
1
1
  import type { RendererPluginWithHost, RenderContext, PluginHost } from '../../../plugin'
2
2
  import { createSingleLineTitleInfo } from './shared/titleInfo'
3
3
  import { RENDERER_PRIORITY } from '../../../plugin'
4
- import type { WMARenderState } from '../../indicators/wmaState'
5
- import { createWMAStateKey, EMPTY_WMA_STATE } from '../../indicators/wmaState'
4
+ import type { WMARenderState } from '../../indicators/state/wmaState'
5
+ import { createWMAStateKey, EMPTY_WMA_STATE } from '../../indicators/state/wmaState'
6
6
  import { Indicator } from '../../indicators/indicatorDefinitionRegistry'
7
7
  import { resolveStateKey } from '../../indicators/indicatorMetadata'
8
8
  import { createSparseVisibleStateComposer } from '../../indicators/visibleStateComposers'
@@ -134,7 +134,7 @@ const getWMATitleInfo = createSingleLineTitleInfo({ createStateKey: createWMASta
134
134
  mainPane: { rendererName: 'wma_main', toActiveConfig: (params, active) => ({ ...params, showWMA: active }) },
135
135
  visibleState: { compose: createSparseVisibleStateComposer('wma', EMPTY_WMA_STATE) },
136
136
  scale: { indicatorKey: 'wma', label: 'WMA', decimals: 2 },
137
- runtime: { defaultConfig:{period:10,showWMA:true}, computeKey:'calcWMAData', compute:(data,c)=>calcWMAData(data,c.period) },
137
+ runtime: { defaultConfig: { period: 10, showWMA: true }, computeKey: 'calcWMAData', compute: (data, c) => calcWMAData(data, c.period) },
138
138
  })
139
139
  class WMADefinition {
140
140
  static rendererFactory = createWMARendererPlugin
@@ -2,8 +2,8 @@ import type { RendererPluginWithHost, RenderContext, PluginHost } from '../../..
2
2
  import { RENDERER_PRIORITY } from '../../../plugin'
3
3
  import { resolveThemeColors } from '../../../tokens'
4
4
  import { alignToPhysicalPixelCenter } from '../../draw/pixelAlign'
5
- import type { WMSRRenderState } from '../../indicators/wmsrState'
6
- import { createWMSRStateKey, EMPTY_WMSR_STATE } from '../../indicators/wmsrState'
5
+ import type { WMSRRenderState } from '../../indicators/state/wmsrState'
6
+ import { createWMSRStateKey, EMPTY_WMSR_STATE } from '../../indicators/state/wmsrState'
7
7
  import { Indicator } from '../../indicators/indicatorDefinitionRegistry'
8
8
  import { createFixedRangeSparseVisibleStateComposer } from '../../indicators/visibleStateComposers'
9
9
  import { resolveStateKey } from '../../indicators/indicatorMetadata'
@@ -163,7 +163,7 @@ function createWMSRRendererPlugin(options: WMSRRendererOptions = {}): RendererPl
163
163
  },
164
164
 
165
165
  draw(context: RenderContext) {
166
- const { ctx, pane, range, scrollLeft, dpr, kLineCenters, lineWebGLSurface } = context
166
+ const { ctx, pane, range, scrollLeft, dpr, kLineCenters, lineWebGLSurface } = context
167
167
  const colors = resolveThemeColors(context.theme, context.isAsiaMarket, context.colorPresetSettings)
168
168
 
169
169
  const stateKey = resolveKey()
@@ -1,8 +1,8 @@
1
1
  import { resolveThemeColors } from '../../../tokens'
2
2
  import type { RendererPluginWithHost, RenderContext, PluginHost } from '../../../plugin'
3
3
  import { RENDERER_PRIORITY } from '../../../plugin'
4
- import type { ZonesRenderState } from '../../indicators/zonesState'
5
- import { createZonesStateKey, EMPTY_ZONES_STATE } from '../../indicators/zonesState'
4
+ import type { ZonesRenderState } from '../../indicators/state/zonesState'
5
+ import { createZonesStateKey, EMPTY_ZONES_STATE } from '../../indicators/state/zonesState'
6
6
  import { Indicator } from '../../indicators/indicatorDefinitionRegistry'
7
7
  import { createFixedUnitVisibleStateComposer } from '../../indicators/visibleStateComposers'
8
8
  import { resolveStateKey, type TitleInfo, type TitleValueItem, type GetTitleInfoFn } from '../../indicators/indicatorMetadata'
@@ -73,8 +73,8 @@ function createZonesRendererPlugin(options: { paneId?: string } = {}): RendererP
73
73
  const yLow = toY(zone.low)
74
74
  const fill = zone.kind === 'FVG_BULL' ? colors.zones.fvgBullFill
75
75
  : zone.kind === 'FVG_BEAR' ? colors.zones.fvgBearFill
76
- : zone.kind === 'OB_BULL' ? colors.zones.obBullFill
77
- : colors.zones.obBearFill
76
+ : zone.kind === 'OB_BULL' ? colors.zones.obBullFill
77
+ : colors.zones.obBearFill
78
78
  ctx.fillStyle = fill
79
79
  ctx.fillRect(startX, yHigh, endX - startX, yLow - yHigh)
80
80
  }
@@ -86,7 +86,7 @@ function createZonesRendererPlugin(options: { paneId?: string } = {}): RendererP
86
86
  if (!stateKey) return {}
87
87
  return pluginHost?.getSharedState<ZonesRenderState>(stateKey)?.params ?? {}
88
88
  },
89
- setConfig() {},
89
+ setConfig() { },
90
90
  }
91
91
  }
92
92
 
@@ -125,7 +125,7 @@ const getZonesTitleInfo: GetTitleInfoFn = (_data, index, _params, host, paneId)
125
125
  mainPane: { rendererName: 'zones_main', toActiveConfig: (params, active) => ({ ...params, showFVG: active, showOB: active, showFilledZones: active }) },
126
126
  scale: { indicatorKey: 'zones', label: 'Zones', decimals: 2 },
127
127
  visibleState: { compose: createFixedUnitVisibleStateComposer('zones', EMPTY_ZONES_STATE) },
128
- runtime: { defaultConfig:{showFVG:true,showOB:true,showFilledZones:true,obLookback:20}, computeKey:'calcZonesData', compute:(data,c)=>calcZonesData(data,c.obLookback,5,2,'close') },
128
+ runtime: { defaultConfig: { showFVG: true, showOB: true, showFilledZones: true, obLookback: 20 }, computeKey: 'calcZonesData', compute: (data, c) => calcZonesData(data, c.obLookback, 5, 2, 'close') },
129
129
  })
130
130
  class ZonesDefinition {
131
131
  static rendererFactory = createZonesRendererPlugin
@@ -1,7 +1,7 @@
1
1
  // @ts-nocheck - Test file with intentional type relaxations for mocking
2
2
  import { describe, it, expect, vi, beforeEach } from 'vitest'
3
3
  import { createBOLLRendererPlugin } from '../Indicator/boll'
4
- import { BOLL_STATE_KEY, type BOLLRenderState } from '@/core/indicators/bollState'
4
+ import { BOLL_STATE_KEY, type BOLLRenderState } from '@/core/indicators/state/bollState'
5
5
  import type { PluginHost, RenderContext, RendererPluginWithHost } from '@/plugin'
6
6
  import type { KLineData } from '@/types/price'
7
7
  import type { Pane } from '@/core/layout/pane'