@forgecharts/sdk 1.1.27 → 1.1.28

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 (581) hide show
  1. package/dist/__tests__/backwardCompatibility.test.d.ts +14 -0
  2. package/dist/__tests__/backwardCompatibility.test.d.ts.map +1 -0
  3. package/dist/__tests__/backwardCompatibility.test.js +159 -0
  4. package/dist/__tests__/backwardCompatibility.test.js.map +1 -0
  5. package/dist/__tests__/candleInvariant.test.d.ts +20 -0
  6. package/dist/__tests__/candleInvariant.test.d.ts.map +1 -0
  7. package/dist/__tests__/candleInvariant.test.js +415 -0
  8. package/dist/__tests__/candleInvariant.test.js.map +1 -0
  9. package/dist/__tests__/public-api-surface.d.ts +13 -0
  10. package/dist/__tests__/public-api-surface.d.ts.map +1 -0
  11. package/{src/__tests__/public-api-surface.ts → dist/__tests__/public-api-surface.js} +4 -42
  12. package/dist/__tests__/public-api-surface.js.map +1 -0
  13. package/dist/__tests__/timeframeBoundary.test.d.ts +17 -0
  14. package/dist/__tests__/timeframeBoundary.test.d.ts.map +1 -0
  15. package/dist/__tests__/timeframeBoundary.test.js +452 -0
  16. package/dist/__tests__/timeframeBoundary.test.js.map +1 -0
  17. package/dist/api/DrawingManager.d.ts +20 -0
  18. package/dist/api/DrawingManager.d.ts.map +1 -0
  19. package/dist/api/DrawingManager.js +190 -0
  20. package/dist/api/DrawingManager.js.map +1 -0
  21. package/dist/api/EventBus.d.ts +19 -0
  22. package/dist/api/EventBus.d.ts.map +1 -0
  23. package/dist/api/EventBus.js +44 -0
  24. package/dist/api/EventBus.js.map +1 -0
  25. package/dist/api/IndicatorDAG.d.ts +85 -0
  26. package/dist/api/IndicatorDAG.d.ts.map +1 -0
  27. package/dist/api/IndicatorDAG.js +316 -0
  28. package/dist/api/IndicatorDAG.js.map +1 -0
  29. package/dist/api/IndicatorRegistry.d.ts +22 -0
  30. package/dist/api/IndicatorRegistry.d.ts.map +1 -0
  31. package/dist/api/IndicatorRegistry.js +39 -0
  32. package/dist/api/IndicatorRegistry.js.map +1 -0
  33. package/dist/api/LayoutManager.d.ts +30 -0
  34. package/dist/api/LayoutManager.d.ts.map +1 -0
  35. package/dist/api/LayoutManager.js +51 -0
  36. package/dist/api/LayoutManager.js.map +1 -0
  37. package/dist/api/PaneManager.d.ts +42 -0
  38. package/dist/api/PaneManager.d.ts.map +1 -0
  39. package/dist/api/PaneManager.js +119 -0
  40. package/dist/api/PaneManager.js.map +1 -0
  41. package/dist/api/ReferenceAPI.d.ts +78 -0
  42. package/dist/api/ReferenceAPI.d.ts.map +1 -0
  43. package/dist/api/ReferenceAPI.js +153 -0
  44. package/dist/api/ReferenceAPI.js.map +1 -0
  45. package/dist/api/TChart.d.ts +345 -0
  46. package/dist/api/TChart.d.ts.map +1 -0
  47. package/dist/api/TChart.js +765 -0
  48. package/dist/api/TChart.js.map +1 -0
  49. package/{src/api/createChart.ts → dist/api/createChart.d.ts} +2 -7
  50. package/dist/api/createChart.d.ts.map +1 -0
  51. package/dist/api/createChart.js +42 -0
  52. package/dist/api/createChart.js.map +1 -0
  53. package/dist/api/drawing tools/fib gann menu/fibRetracement.d.ts +4 -0
  54. package/dist/api/drawing tools/fib gann menu/fibRetracement.d.ts.map +1 -0
  55. package/dist/api/drawing tools/fib gann menu/fibRetracement.js +22 -0
  56. package/dist/api/drawing tools/fib gann menu/fibRetracement.js.map +1 -0
  57. package/dist/api/drawing tools/lines menu/crossLine.d.ts +4 -0
  58. package/dist/api/drawing tools/lines menu/crossLine.d.ts.map +1 -0
  59. package/dist/api/drawing tools/lines menu/crossLine.js +16 -0
  60. package/dist/api/drawing tools/lines menu/crossLine.js.map +1 -0
  61. package/dist/api/drawing tools/lines menu/disjointChannel.d.ts +17 -0
  62. package/dist/api/drawing tools/lines menu/disjointChannel.d.ts.map +1 -0
  63. package/dist/api/drawing tools/lines menu/disjointChannel.js +59 -0
  64. package/dist/api/drawing tools/lines menu/disjointChannel.js.map +1 -0
  65. package/dist/api/drawing tools/lines menu/extendedLine.d.ts +4 -0
  66. package/dist/api/drawing tools/lines menu/extendedLine.d.ts.map +1 -0
  67. package/dist/api/drawing tools/lines menu/extendedLine.js +17 -0
  68. package/dist/api/drawing tools/lines menu/extendedLine.js.map +1 -0
  69. package/dist/api/drawing tools/lines menu/flatTopBottom.d.ts +4 -0
  70. package/dist/api/drawing tools/lines menu/flatTopBottom.d.ts.map +1 -0
  71. package/dist/api/drawing tools/lines menu/flatTopBottom.js +41 -0
  72. package/dist/api/drawing tools/lines menu/flatTopBottom.js.map +1 -0
  73. package/dist/api/drawing tools/lines menu/horizontal.d.ts +4 -0
  74. package/dist/api/drawing tools/lines menu/horizontal.d.ts.map +1 -0
  75. package/dist/api/drawing tools/lines menu/horizontal.js +19 -0
  76. package/dist/api/drawing tools/lines menu/horizontal.js.map +1 -0
  77. package/dist/api/drawing tools/lines menu/horizontalRay.d.ts +4 -0
  78. package/dist/api/drawing tools/lines menu/horizontalRay.d.ts.map +1 -0
  79. package/dist/api/drawing tools/lines menu/horizontalRay.js +20 -0
  80. package/dist/api/drawing tools/lines menu/horizontalRay.js.map +1 -0
  81. package/dist/api/drawing tools/lines menu/infoLine.d.ts +4 -0
  82. package/dist/api/drawing tools/lines menu/infoLine.d.ts.map +1 -0
  83. package/dist/api/drawing tools/lines menu/infoLine.js +107 -0
  84. package/dist/api/drawing tools/lines menu/infoLine.js.map +1 -0
  85. package/dist/api/drawing tools/lines menu/insidePitchfork.d.ts +4 -0
  86. package/dist/api/drawing tools/lines menu/insidePitchfork.d.ts.map +1 -0
  87. package/dist/api/drawing tools/lines menu/insidePitchfork.js +31 -0
  88. package/dist/api/drawing tools/lines menu/insidePitchfork.js.map +1 -0
  89. package/dist/api/drawing tools/lines menu/modifiedSchiffPitchfork.d.ts +4 -0
  90. package/dist/api/drawing tools/lines menu/modifiedSchiffPitchfork.d.ts.map +1 -0
  91. package/dist/api/drawing tools/lines menu/modifiedSchiffPitchfork.js +15 -0
  92. package/dist/api/drawing tools/lines menu/modifiedSchiffPitchfork.js.map +1 -0
  93. package/dist/api/drawing tools/lines menu/parallelChannel.d.ts +4 -0
  94. package/dist/api/drawing tools/lines menu/parallelChannel.d.ts.map +1 -0
  95. package/dist/api/drawing tools/lines menu/parallelChannel.js +43 -0
  96. package/dist/api/drawing tools/lines menu/parallelChannel.js.map +1 -0
  97. package/dist/api/drawing tools/lines menu/pitchfork.d.ts +4 -0
  98. package/dist/api/drawing tools/lines menu/pitchfork.d.ts.map +1 -0
  99. package/dist/api/drawing tools/lines menu/pitchfork.js +12 -0
  100. package/dist/api/drawing tools/lines menu/pitchfork.js.map +1 -0
  101. package/dist/api/drawing tools/lines menu/ray.d.ts +4 -0
  102. package/dist/api/drawing tools/lines menu/ray.d.ts.map +1 -0
  103. package/dist/api/drawing tools/lines menu/ray.js +23 -0
  104. package/dist/api/drawing tools/lines menu/ray.js.map +1 -0
  105. package/dist/api/drawing tools/lines menu/regressionTrend.d.ts +4 -0
  106. package/dist/api/drawing tools/lines menu/regressionTrend.d.ts.map +1 -0
  107. package/dist/api/drawing tools/lines menu/regressionTrend.js +127 -0
  108. package/dist/api/drawing tools/lines menu/regressionTrend.js.map +1 -0
  109. package/dist/api/drawing tools/lines menu/schiffPitchfork.d.ts +4 -0
  110. package/dist/api/drawing tools/lines menu/schiffPitchfork.d.ts.map +1 -0
  111. package/dist/api/drawing tools/lines menu/schiffPitchfork.js +15 -0
  112. package/dist/api/drawing tools/lines menu/schiffPitchfork.js.map +1 -0
  113. package/dist/api/drawing tools/lines menu/trendAngle.d.ts +4 -0
  114. package/dist/api/drawing tools/lines menu/trendAngle.d.ts.map +1 -0
  115. package/dist/api/drawing tools/lines menu/trendAngle.js +51 -0
  116. package/dist/api/drawing tools/lines menu/trendAngle.js.map +1 -0
  117. package/dist/api/drawing tools/lines menu/trendline.d.ts +4 -0
  118. package/dist/api/drawing tools/lines menu/trendline.d.ts.map +1 -0
  119. package/dist/api/drawing tools/lines menu/trendline.js +11 -0
  120. package/dist/api/drawing tools/lines menu/trendline.js.map +1 -0
  121. package/dist/api/drawing tools/lines menu/vertical.d.ts +4 -0
  122. package/dist/api/drawing tools/lines menu/vertical.d.ts.map +1 -0
  123. package/dist/api/drawing tools/lines menu/vertical.js +11 -0
  124. package/dist/api/drawing tools/lines menu/vertical.js.map +1 -0
  125. package/dist/api/drawing tools/pointers menu/crosshair.d.ts +16 -0
  126. package/dist/api/drawing tools/pointers menu/crosshair.d.ts.map +1 -0
  127. package/{src/api/drawing tools/pointers menu/crosshair.ts → dist/api/drawing tools/pointers menu/crosshair.js } +6 -7
  128. package/dist/api/drawing tools/pointers menu/crosshair.js.map +1 -0
  129. package/dist/api/drawing tools/pointers menu/cursor.d.ts +15 -0
  130. package/dist/api/drawing tools/pointers menu/cursor.d.ts.map +1 -0
  131. package/{src/api/drawing tools/pointers menu/cursor.ts → dist/api/drawing tools/pointers menu/cursor.js } +7 -8
  132. package/dist/api/drawing tools/pointers menu/cursor.js.map +1 -0
  133. package/dist/api/drawing tools/pointers menu/demonstration.d.ts +30 -0
  134. package/dist/api/drawing tools/pointers menu/demonstration.d.ts.map +1 -0
  135. package/{src/api/drawing tools/pointers menu/demonstration.ts → dist/api/drawing tools/pointers menu/demonstration.js } +9 -14
  136. package/dist/api/drawing tools/pointers menu/demonstration.js.map +1 -0
  137. package/dist/api/drawing tools/pointers menu/dot.d.ts +23 -0
  138. package/dist/api/drawing tools/pointers menu/dot.d.ts.map +1 -0
  139. package/{src/api/drawing tools/pointers menu/dot.ts → dist/api/drawing tools/pointers menu/dot.js } +8 -11
  140. package/dist/api/drawing tools/pointers menu/dot.js.map +1 -0
  141. package/dist/api/drawing tools/shapes menu/rectangle.d.ts +4 -0
  142. package/dist/api/drawing tools/shapes menu/rectangle.d.ts.map +1 -0
  143. package/dist/api/drawing tools/shapes menu/rectangle.js +19 -0
  144. package/dist/api/drawing tools/shapes menu/rectangle.js.map +1 -0
  145. package/dist/api/drawing tools/shapes menu/text.d.ts +4 -0
  146. package/dist/api/drawing tools/shapes menu/text.d.ts.map +1 -0
  147. package/dist/api/drawing tools/shapes menu/text.js +25 -0
  148. package/dist/api/drawing tools/shapes menu/text.js.map +1 -0
  149. package/dist/api/drawingUtils.d.ts +22 -0
  150. package/dist/api/drawingUtils.d.ts.map +1 -0
  151. package/dist/api/drawingUtils.js +83 -0
  152. package/dist/api/drawingUtils.js.map +1 -0
  153. package/dist/core/CanvasLayer.d.ts +26 -0
  154. package/dist/core/CanvasLayer.d.ts.map +1 -0
  155. package/dist/core/CanvasLayer.js +56 -0
  156. package/dist/core/CanvasLayer.js.map +1 -0
  157. package/dist/core/Chart.d.ts +164 -0
  158. package/dist/core/Chart.d.ts.map +1 -0
  159. package/dist/core/Chart.js +839 -0
  160. package/dist/core/Chart.js.map +1 -0
  161. package/dist/core/CoordTransform.d.ts +168 -0
  162. package/dist/core/CoordTransform.d.ts.map +1 -0
  163. package/dist/core/CoordTransform.js +224 -0
  164. package/dist/core/CoordTransform.js.map +1 -0
  165. package/dist/core/Crosshair.d.ts +30 -0
  166. package/dist/core/Crosshair.d.ts.map +1 -0
  167. package/dist/core/Crosshair.js +186 -0
  168. package/dist/core/Crosshair.js.map +1 -0
  169. package/dist/core/IndicatorEngine.d.ts +51 -0
  170. package/dist/core/IndicatorEngine.d.ts.map +1 -0
  171. package/dist/core/IndicatorEngine.js +181 -0
  172. package/dist/core/IndicatorEngine.js.map +1 -0
  173. package/dist/core/InteractionManager.d.ts +197 -0
  174. package/dist/core/InteractionManager.d.ts.map +1 -0
  175. package/dist/core/InteractionManager.js +698 -0
  176. package/dist/core/InteractionManager.js.map +1 -0
  177. package/dist/core/PriceScale.d.ts +27 -0
  178. package/dist/core/PriceScale.d.ts.map +1 -0
  179. package/dist/core/PriceScale.js +113 -0
  180. package/dist/core/PriceScale.js.map +1 -0
  181. package/dist/core/Series.d.ts +40 -0
  182. package/dist/core/Series.d.ts.map +1 -0
  183. package/dist/core/Series.js +114 -0
  184. package/dist/core/Series.js.map +1 -0
  185. package/dist/core/TimeScale.d.ts +43 -0
  186. package/dist/core/TimeScale.d.ts.map +1 -0
  187. package/dist/core/TimeScale.js +150 -0
  188. package/dist/core/TimeScale.js.map +1 -0
  189. package/dist/datafeed/DatafeedConnector.d.ts +89 -0
  190. package/dist/datafeed/DatafeedConnector.d.ts.map +1 -0
  191. package/dist/datafeed/DatafeedConnector.js +268 -0
  192. package/dist/datafeed/DatafeedConnector.js.map +1 -0
  193. package/dist/engine/CandleEngine.d.ts +207 -0
  194. package/dist/engine/CandleEngine.d.ts.map +1 -0
  195. package/dist/engine/CandleEngine.js +318 -0
  196. package/dist/engine/CandleEngine.js.map +1 -0
  197. package/dist/engine/__tests__/CandleEngine.test.d.ts +2 -0
  198. package/dist/engine/__tests__/CandleEngine.test.d.ts.map +1 -0
  199. package/dist/engine/__tests__/CandleEngine.test.js +300 -0
  200. package/dist/engine/__tests__/CandleEngine.test.js.map +1 -0
  201. package/dist/engine/candleInvariants.d.ts +66 -0
  202. package/dist/engine/candleInvariants.d.ts.map +1 -0
  203. package/dist/engine/candleInvariants.js +134 -0
  204. package/dist/engine/candleInvariants.js.map +1 -0
  205. package/{src/engine/mergeUtils.ts → dist/engine/mergeUtils.d.ts} +15 -52
  206. package/dist/engine/mergeUtils.d.ts.map +1 -0
  207. package/dist/engine/mergeUtils.js +64 -0
  208. package/dist/engine/mergeUtils.js.map +1 -0
  209. package/dist/engine/timeframeUtils.d.ts +80 -0
  210. package/dist/engine/timeframeUtils.d.ts.map +1 -0
  211. package/{src/engine/timeframeUtils.ts → dist/engine/timeframeUtils.js} +30 -48
  212. package/dist/engine/timeframeUtils.js.map +1 -0
  213. package/dist/index.d.ts +40 -0
  214. package/dist/index.d.ts.map +1 -0
  215. package/dist/index.js +49 -0
  216. package/dist/index.js.map +1 -0
  217. package/dist/internal.d.ts +29 -0
  218. package/dist/internal.d.ts.map +1 -0
  219. package/{src/internal.ts → dist/internal.js} +1 -10
  220. package/dist/internal.js.map +1 -0
  221. package/dist/licensing/ChartRuntimeResolver.d.ts +233 -0
  222. package/dist/licensing/ChartRuntimeResolver.d.ts.map +1 -0
  223. package/dist/licensing/ChartRuntimeResolver.js +310 -0
  224. package/dist/licensing/ChartRuntimeResolver.js.map +1 -0
  225. package/dist/licensing/LicenseManager.d.ts +55 -0
  226. package/dist/licensing/LicenseManager.d.ts.map +1 -0
  227. package/dist/licensing/LicenseManager.js +114 -0
  228. package/dist/licensing/LicenseManager.js.map +1 -0
  229. package/dist/licensing/__tests__/ChartRuntimeResolver.test.d.ts +13 -0
  230. package/dist/licensing/__tests__/ChartRuntimeResolver.test.d.ts.map +1 -0
  231. package/dist/licensing/__tests__/ChartRuntimeResolver.test.js +177 -0
  232. package/dist/licensing/__tests__/ChartRuntimeResolver.test.js.map +1 -0
  233. package/dist/licensing/__tests__/LicenseManager.test.d.ts +12 -0
  234. package/dist/licensing/__tests__/LicenseManager.test.d.ts.map +1 -0
  235. package/dist/licensing/__tests__/LicenseManager.test.js +153 -0
  236. package/dist/licensing/__tests__/LicenseManager.test.js.map +1 -0
  237. package/dist/licensing/licenseTypes.d.ts +18 -0
  238. package/dist/licensing/licenseTypes.d.ts.map +1 -0
  239. package/dist/licensing/licenseTypes.js +2 -0
  240. package/dist/licensing/licenseTypes.js.map +1 -0
  241. package/dist/pine/PineCompiler.d.ts +35 -0
  242. package/dist/pine/PineCompiler.d.ts.map +1 -0
  243. package/dist/pine/PineCompiler.js +44 -0
  244. package/dist/pine/PineCompiler.js.map +1 -0
  245. package/dist/pine/diagnostics.d.ts +20 -0
  246. package/dist/pine/diagnostics.d.ts.map +1 -0
  247. package/dist/pine/diagnostics.js +11 -0
  248. package/dist/pine/diagnostics.js.map +1 -0
  249. package/{src/pine/index.ts → dist/pine/index.d.ts} +4 -3
  250. package/dist/pine/index.d.ts.map +1 -0
  251. package/dist/pine/index.js +5 -0
  252. package/dist/pine/index.js.map +1 -0
  253. package/dist/pine/pine-ast.d.ts +142 -0
  254. package/dist/pine/pine-ast.d.ts.map +1 -0
  255. package/dist/pine/pine-ast.js +19 -0
  256. package/dist/pine/pine-ast.js.map +1 -0
  257. package/dist/pine/pine-lexer.d.ts +41 -0
  258. package/dist/pine/pine-lexer.d.ts.map +1 -0
  259. package/dist/pine/pine-lexer.js +249 -0
  260. package/dist/pine/pine-lexer.js.map +1 -0
  261. package/dist/pine/pine-parser.d.ts +51 -0
  262. package/dist/pine/pine-parser.d.ts.map +1 -0
  263. package/dist/pine/pine-parser.js +416 -0
  264. package/dist/pine/pine-parser.js.map +1 -0
  265. package/dist/pine/pine-transpiler.d.ts +33 -0
  266. package/dist/pine/pine-transpiler.d.ts.map +1 -0
  267. package/dist/pine/pine-transpiler.js +260 -0
  268. package/dist/pine/pine-transpiler.js.map +1 -0
  269. package/dist/pixi/LayerName.d.ts +18 -0
  270. package/dist/pixi/LayerName.d.ts.map +1 -0
  271. package/dist/pixi/LayerName.js +35 -0
  272. package/dist/pixi/LayerName.js.map +1 -0
  273. package/dist/pixi/PixiCandlestickRenderer.d.ts +23 -0
  274. package/dist/pixi/PixiCandlestickRenderer.d.ts.map +1 -0
  275. package/dist/pixi/PixiCandlestickRenderer.js +107 -0
  276. package/dist/pixi/PixiCandlestickRenderer.js.map +1 -0
  277. package/dist/pixi/PixiChart.d.ts +72 -0
  278. package/dist/pixi/PixiChart.d.ts.map +1 -0
  279. package/dist/pixi/PixiChart.js +367 -0
  280. package/dist/pixi/PixiChart.js.map +1 -0
  281. package/dist/pixi/PixiCrosshairRenderer.d.ts +29 -0
  282. package/dist/pixi/PixiCrosshairRenderer.d.ts.map +1 -0
  283. package/dist/pixi/PixiCrosshairRenderer.js +110 -0
  284. package/dist/pixi/PixiCrosshairRenderer.js.map +1 -0
  285. package/dist/pixi/PixiDrawingRenderer.d.ts +17 -0
  286. package/dist/pixi/PixiDrawingRenderer.d.ts.map +1 -0
  287. package/dist/pixi/PixiDrawingRenderer.js +111 -0
  288. package/dist/pixi/PixiDrawingRenderer.js.map +1 -0
  289. package/dist/pixi/PixiGridRenderer.d.ts +22 -0
  290. package/dist/pixi/PixiGridRenderer.d.ts.map +1 -0
  291. package/dist/pixi/PixiGridRenderer.js +114 -0
  292. package/dist/pixi/PixiGridRenderer.js.map +1 -0
  293. package/dist/pixi/PixiLayerManager.d.ts +56 -0
  294. package/dist/pixi/PixiLayerManager.d.ts.map +1 -0
  295. package/dist/pixi/PixiLayerManager.js +92 -0
  296. package/dist/pixi/PixiLayerManager.js.map +1 -0
  297. package/dist/react/canvas/ChartCanvas.d.ts +85 -0
  298. package/dist/react/canvas/ChartCanvas.d.ts.map +1 -0
  299. package/dist/react/canvas/ChartCanvas.js +604 -0
  300. package/dist/react/canvas/ChartCanvas.js.map +1 -0
  301. package/dist/react/canvas/ChartContextMenu.d.ts +18 -0
  302. package/dist/react/canvas/ChartContextMenu.d.ts.map +1 -0
  303. package/dist/react/canvas/ChartContextMenu.js +5 -0
  304. package/dist/react/canvas/ChartContextMenu.js.map +1 -0
  305. package/dist/react/canvas/ChartSettingsDialog.d.ts +25 -0
  306. package/dist/react/canvas/ChartSettingsDialog.d.ts.map +1 -0
  307. package/dist/react/canvas/ChartSettingsDialog.js +28 -0
  308. package/dist/react/canvas/ChartSettingsDialog.js.map +1 -0
  309. package/dist/react/canvas/IndicatorLabel.d.ts +21 -0
  310. package/dist/react/canvas/IndicatorLabel.d.ts.map +1 -0
  311. package/dist/react/canvas/IndicatorLabel.js +196 -0
  312. package/dist/react/canvas/IndicatorLabel.js.map +1 -0
  313. package/dist/react/canvas/IndicatorPane.d.ts +32 -0
  314. package/dist/react/canvas/IndicatorPane.d.ts.map +1 -0
  315. package/dist/react/canvas/IndicatorPane.js +395 -0
  316. package/dist/react/canvas/IndicatorPane.js.map +1 -0
  317. package/dist/react/canvas/PointerOverlay.d.ts +23 -0
  318. package/dist/react/canvas/PointerOverlay.d.ts.map +1 -0
  319. package/dist/react/canvas/PointerOverlay.js +61 -0
  320. package/dist/react/canvas/PointerOverlay.js.map +1 -0
  321. package/dist/react/canvas/toolbars/LeftToolbar.d.ts +19 -0
  322. package/dist/react/canvas/toolbars/LeftToolbar.d.ts.map +1 -0
  323. package/dist/react/canvas/toolbars/LeftToolbar.js +407 -0
  324. package/dist/react/canvas/toolbars/LeftToolbar.js.map +1 -0
  325. package/dist/react/hooks/useChartCapabilities.d.ts +21 -0
  326. package/dist/react/hooks/useChartCapabilities.d.ts.map +1 -0
  327. package/dist/react/hooks/useChartCapabilities.js +66 -0
  328. package/dist/react/hooks/useChartCapabilities.js.map +1 -0
  329. package/dist/react/index.d.ts +30 -0
  330. package/dist/react/index.d.ts.map +1 -0
  331. package/{src/react/index.ts → dist/react/index.js} +1 -24
  332. package/dist/react/index.js.map +1 -0
  333. package/dist/react/internal.d.ts +38 -0
  334. package/dist/react/internal.d.ts.map +1 -0
  335. package/{src/react/internal.ts → dist/react/internal.js} +1 -19
  336. package/dist/react/internal.js.map +1 -0
  337. package/dist/react/shell/ManagedAppShell.d.ts +91 -0
  338. package/dist/react/shell/ManagedAppShell.d.ts.map +1 -0
  339. package/dist/react/shell/ManagedAppShell.js +440 -0
  340. package/dist/react/shell/ManagedAppShell.js.map +1 -0
  341. package/dist/react/trading/TradingBridge.d.ts +86 -0
  342. package/dist/react/trading/TradingBridge.d.ts.map +1 -0
  343. package/dist/react/trading/TradingBridge.js +73 -0
  344. package/dist/react/trading/TradingBridge.js.map +1 -0
  345. package/dist/react/workspace/ChartWorkspace.d.ts +73 -0
  346. package/dist/react/workspace/ChartWorkspace.d.ts.map +1 -0
  347. package/dist/react/workspace/ChartWorkspace.js +42 -0
  348. package/dist/react/workspace/ChartWorkspace.js.map +1 -0
  349. package/dist/react/workspace/FloatingPanel.d.ts +18 -0
  350. package/dist/react/workspace/FloatingPanel.d.ts.map +1 -0
  351. package/dist/react/workspace/FloatingPanel.js +82 -0
  352. package/dist/react/workspace/FloatingPanel.js.map +1 -0
  353. package/dist/react/workspace/IndicatorsDialog.d.ts +8 -0
  354. package/dist/react/workspace/IndicatorsDialog.d.ts.map +1 -0
  355. package/dist/react/workspace/IndicatorsDialog.js +121 -0
  356. package/dist/react/workspace/IndicatorsDialog.js.map +1 -0
  357. package/dist/react/workspace/LayoutMenu.d.ts +33 -0
  358. package/dist/react/workspace/LayoutMenu.d.ts.map +1 -0
  359. package/dist/react/workspace/LayoutMenu.js +113 -0
  360. package/dist/react/workspace/LayoutMenu.js.map +1 -0
  361. package/dist/react/workspace/SymbolSearchDialog.d.ts +10 -0
  362. package/dist/react/workspace/SymbolSearchDialog.d.ts.map +1 -0
  363. package/dist/react/workspace/SymbolSearchDialog.js +245 -0
  364. package/dist/react/workspace/SymbolSearchDialog.js.map +1 -0
  365. package/dist/react/workspace/TabBar.d.ts +17 -0
  366. package/dist/react/workspace/TabBar.d.ts.map +1 -0
  367. package/dist/react/workspace/TabBar.js +29 -0
  368. package/dist/react/workspace/TabBar.js.map +1 -0
  369. package/dist/react/workspace/toolbars/BottomToolbar.d.ts +19 -0
  370. package/dist/react/workspace/toolbars/BottomToolbar.d.ts.map +1 -0
  371. package/dist/react/workspace/toolbars/BottomToolbar.js +236 -0
  372. package/dist/react/workspace/toolbars/BottomToolbar.js.map +1 -0
  373. package/dist/react/workspace/toolbars/RightToolbar.d.ts +8 -0
  374. package/dist/react/workspace/toolbars/RightToolbar.d.ts.map +1 -0
  375. package/dist/react/workspace/toolbars/RightToolbar.js +18 -0
  376. package/dist/react/workspace/toolbars/RightToolbar.js.map +1 -0
  377. package/dist/react/workspace/toolbars/TopToolbar.d.ts +41 -0
  378. package/dist/react/workspace/toolbars/TopToolbar.d.ts.map +1 -0
  379. package/dist/react/workspace/toolbars/TopToolbar.js +82 -0
  380. package/dist/react/workspace/toolbars/TopToolbar.js.map +1 -0
  381. package/dist/renderers/CandlestickRenderer.d.ts +13 -0
  382. package/dist/renderers/CandlestickRenderer.d.ts.map +1 -0
  383. package/dist/renderers/CandlestickRenderer.js +98 -0
  384. package/dist/renderers/CandlestickRenderer.js.map +1 -0
  385. package/dist/renderers/HistogramRenderer.d.ts +11 -0
  386. package/dist/renderers/HistogramRenderer.d.ts.map +1 -0
  387. package/dist/renderers/HistogramRenderer.js +50 -0
  388. package/dist/renderers/HistogramRenderer.js.map +1 -0
  389. package/dist/renderers/LineRenderer.d.ts +12 -0
  390. package/dist/renderers/LineRenderer.d.ts.map +1 -0
  391. package/dist/renderers/LineRenderer.js +64 -0
  392. package/dist/renderers/LineRenderer.js.map +1 -0
  393. package/dist/theme/colors.d.ts +4 -0
  394. package/dist/theme/colors.d.ts.map +1 -0
  395. package/dist/theme/colors.js +19 -0
  396. package/dist/theme/colors.js.map +1 -0
  397. package/dist/tools/barDivergenceCheck.d.ts +120 -0
  398. package/dist/tools/barDivergenceCheck.d.ts.map +1 -0
  399. package/dist/tools/barDivergenceCheck.js +200 -0
  400. package/dist/tools/barDivergenceCheck.js.map +1 -0
  401. package/dist/trading/TradingOverlayStore.d.ts +86 -0
  402. package/dist/trading/TradingOverlayStore.d.ts.map +1 -0
  403. package/dist/trading/TradingOverlayStore.js +139 -0
  404. package/dist/trading/TradingOverlayStore.js.map +1 -0
  405. package/dist/trading/UnmanagedIngestion.d.ts +91 -0
  406. package/dist/trading/UnmanagedIngestion.d.ts.map +1 -0
  407. package/dist/trading/UnmanagedIngestion.js +114 -0
  408. package/dist/trading/UnmanagedIngestion.js.map +1 -0
  409. package/dist/trading/__tests__/ManagedTradingController.test.d.ts +18 -0
  410. package/dist/trading/__tests__/ManagedTradingController.test.d.ts.map +1 -0
  411. package/dist/trading/__tests__/ManagedTradingController.test.js +271 -0
  412. package/dist/trading/__tests__/ManagedTradingController.test.js.map +1 -0
  413. package/dist/trading/__tests__/TradingOverlayStore.test.d.ts +16 -0
  414. package/dist/trading/__tests__/TradingOverlayStore.test.d.ts.map +1 -0
  415. package/dist/trading/__tests__/TradingOverlayStore.test.js +267 -0
  416. package/dist/trading/__tests__/TradingOverlayStore.test.js.map +1 -0
  417. package/dist/trading/__tests__/UnmanagedIngestion.test.d.ts +16 -0
  418. package/dist/trading/__tests__/UnmanagedIngestion.test.d.ts.map +1 -0
  419. package/dist/trading/__tests__/UnmanagedIngestion.test.js +170 -0
  420. package/dist/trading/__tests__/UnmanagedIngestion.test.js.map +1 -0
  421. package/dist/trading/managed/ManagedTradingController.d.ts +110 -0
  422. package/dist/trading/managed/ManagedTradingController.d.ts.map +1 -0
  423. package/dist/trading/managed/ManagedTradingController.js +247 -0
  424. package/dist/trading/managed/ManagedTradingController.js.map +1 -0
  425. package/dist/trading/managed/managedCapabilities.d.ts +45 -0
  426. package/dist/trading/managed/managedCapabilities.d.ts.map +1 -0
  427. package/dist/trading/managed/managedCapabilities.js +79 -0
  428. package/dist/trading/managed/managedCapabilities.js.map +1 -0
  429. package/dist/trading/managed/managedTypes.d.ts +122 -0
  430. package/dist/trading/managed/managedTypes.d.ts.map +1 -0
  431. package/dist/trading/managed/managedTypes.js +13 -0
  432. package/dist/trading/managed/managedTypes.js.map +1 -0
  433. package/dist/trading/tradingTypes.d.ts +89 -0
  434. package/dist/trading/tradingTypes.d.ts.map +1 -0
  435. package/dist/trading/tradingTypes.js +8 -0
  436. package/dist/trading/tradingTypes.js.map +1 -0
  437. package/dist/tscript/TScriptIndicator.d.ts +41 -0
  438. package/dist/tscript/TScriptIndicator.d.ts.map +1 -0
  439. package/dist/tscript/TScriptIndicator.js +47 -0
  440. package/dist/tscript/TScriptIndicator.js.map +1 -0
  441. package/dist/tscript/ast.d.ts +89 -0
  442. package/dist/tscript/ast.d.ts.map +1 -0
  443. package/dist/tscript/ast.js +22 -0
  444. package/dist/tscript/ast.js.map +1 -0
  445. package/dist/tscript/lexer.d.ts +36 -0
  446. package/dist/tscript/lexer.d.ts.map +1 -0
  447. package/dist/tscript/lexer.js +187 -0
  448. package/dist/tscript/lexer.js.map +1 -0
  449. package/dist/tscript/parser.d.ts +50 -0
  450. package/dist/tscript/parser.d.ts.map +1 -0
  451. package/dist/tscript/parser.js +318 -0
  452. package/dist/tscript/parser.js.map +1 -0
  453. package/dist/tscript/runtime.d.ts +123 -0
  454. package/dist/tscript/runtime.d.ts.map +1 -0
  455. package/dist/tscript/runtime.js +475 -0
  456. package/dist/tscript/runtime.js.map +1 -0
  457. package/dist/tscript/series.d.ts +49 -0
  458. package/dist/tscript/series.d.ts.map +1 -0
  459. package/dist/tscript/series.js +79 -0
  460. package/dist/tscript/series.js.map +1 -0
  461. package/dist/types/IChart.d.ts +48 -0
  462. package/dist/types/IChart.d.ts.map +1 -0
  463. package/dist/types/IChart.js +2 -0
  464. package/dist/types/IChart.js.map +1 -0
  465. package/{src/types/IRenderer.ts → dist/types/IRenderer.d.ts} +2 -8
  466. package/dist/types/IRenderer.d.ts.map +1 -0
  467. package/dist/types/IRenderer.js +2 -0
  468. package/dist/types/IRenderer.js.map +1 -0
  469. package/dist/types/ISeries.d.ts +26 -0
  470. package/dist/types/ISeries.d.ts.map +1 -0
  471. package/dist/types/ISeries.js +2 -0
  472. package/dist/types/ISeries.js.map +1 -0
  473. package/package.json +5 -1
  474. package/src/__tests__/backwardCompatibility.test.ts +0 -191
  475. package/src/__tests__/candleInvariant.test.ts +0 -500
  476. package/src/__tests__/timeframeBoundary.test.ts +0 -583
  477. package/src/api/DrawingManager.ts +0 -188
  478. package/src/api/EventBus.ts +0 -53
  479. package/src/api/IndicatorDAG.ts +0 -389
  480. package/src/api/IndicatorRegistry.ts +0 -47
  481. package/src/api/LayoutManager.ts +0 -72
  482. package/src/api/PaneManager.ts +0 -129
  483. package/src/api/ReferenceAPI.ts +0 -195
  484. package/src/api/TChart.ts +0 -881
  485. package/src/api/drawing tools/fib gann menu/fibRetracement.ts +0 -27
  486. package/src/api/drawing tools/lines menu/crossLine.ts +0 -21
  487. package/src/api/drawing tools/lines menu/disjointChannel.ts +0 -74
  488. package/src/api/drawing tools/lines menu/extendedLine.ts +0 -22
  489. package/src/api/drawing tools/lines menu/flatTopBottom.ts +0 -45
  490. package/src/api/drawing tools/lines menu/horizontal.ts +0 -24
  491. package/src/api/drawing tools/lines menu/horizontalRay.ts +0 -25
  492. package/src/api/drawing tools/lines menu/infoLine.ts +0 -127
  493. package/src/api/drawing tools/lines menu/insidePitchfork.ts +0 -21
  494. package/src/api/drawing tools/lines menu/modifiedSchiffPitchfork.ts +0 -18
  495. package/src/api/drawing tools/lines menu/parallelChannel.ts +0 -47
  496. package/src/api/drawing tools/lines menu/pitchfork.ts +0 -15
  497. package/src/api/drawing tools/lines menu/ray.ts +0 -28
  498. package/src/api/drawing tools/lines menu/regressionTrend.ts +0 -157
  499. package/src/api/drawing tools/lines menu/schiffPitchfork.ts +0 -18
  500. package/src/api/drawing tools/lines menu/trendAngle.ts +0 -64
  501. package/src/api/drawing tools/lines menu/trendline.ts +0 -16
  502. package/src/api/drawing tools/lines menu/vertical.ts +0 -16
  503. package/src/api/drawing tools/shapes menu/rectangle.ts +0 -24
  504. package/src/api/drawing tools/shapes menu/text.ts +0 -30
  505. package/src/api/drawingUtils.ts +0 -82
  506. package/src/core/CanvasLayer.ts +0 -77
  507. package/src/core/Chart.ts +0 -917
  508. package/src/core/CoordTransform.ts +0 -282
  509. package/src/core/Crosshair.ts +0 -207
  510. package/src/core/IndicatorEngine.ts +0 -216
  511. package/src/core/InteractionManager.ts +0 -899
  512. package/src/core/PriceScale.ts +0 -133
  513. package/src/core/Series.ts +0 -132
  514. package/src/core/TimeScale.ts +0 -175
  515. package/src/datafeed/DatafeedConnector.ts +0 -300
  516. package/src/engine/CandleEngine.ts +0 -458
  517. package/src/engine/__tests__/CandleEngine.test.ts +0 -402
  518. package/src/engine/candleInvariants.ts +0 -172
  519. package/src/index.ts +0 -190
  520. package/src/licensing/ChartRuntimeResolver.ts +0 -380
  521. package/src/licensing/LicenseManager.ts +0 -131
  522. package/src/licensing/__tests__/ChartRuntimeResolver.test.ts +0 -207
  523. package/src/licensing/__tests__/LicenseManager.test.ts +0 -180
  524. package/src/licensing/licenseTypes.ts +0 -19
  525. package/src/pine/PineCompiler.ts +0 -68
  526. package/src/pine/diagnostics.ts +0 -30
  527. package/src/pine/pine-ast.ts +0 -163
  528. package/src/pine/pine-lexer.ts +0 -265
  529. package/src/pine/pine-parser.ts +0 -439
  530. package/src/pine/pine-transpiler.ts +0 -301
  531. package/src/pixi/LayerName.ts +0 -35
  532. package/src/pixi/PixiCandlestickRenderer.ts +0 -125
  533. package/src/pixi/PixiChart.ts +0 -425
  534. package/src/pixi/PixiCrosshairRenderer.ts +0 -134
  535. package/src/pixi/PixiDrawingRenderer.ts +0 -121
  536. package/src/pixi/PixiGridRenderer.ts +0 -136
  537. package/src/pixi/PixiLayerManager.ts +0 -102
  538. package/src/react/canvas/ChartCanvas.tsx +0 -984
  539. package/src/react/canvas/ChartContextMenu.tsx +0 -60
  540. package/src/react/canvas/ChartSettingsDialog.tsx +0 -133
  541. package/src/react/canvas/IndicatorLabel.tsx +0 -347
  542. package/src/react/canvas/IndicatorPane.tsx +0 -503
  543. package/src/react/canvas/PointerOverlay.tsx +0 -126
  544. package/src/react/canvas/toolbars/LeftToolbar.tsx +0 -1096
  545. package/src/react/hooks/useChartCapabilities.ts +0 -76
  546. package/src/react/shell/ManagedAppShell.tsx +0 -699
  547. package/src/react/trading/TradingBridge.ts +0 -156
  548. package/src/react/workspace/ChartWorkspace.tsx +0 -228
  549. package/src/react/workspace/FloatingPanel.tsx +0 -131
  550. package/src/react/workspace/IndicatorsDialog.tsx +0 -246
  551. package/src/react/workspace/LayoutMenu.tsx +0 -345
  552. package/src/react/workspace/SymbolSearchDialog.tsx +0 -377
  553. package/src/react/workspace/TabBar.tsx +0 -87
  554. package/src/react/workspace/toolbars/BottomToolbar.tsx +0 -372
  555. package/src/react/workspace/toolbars/RightToolbar.tsx +0 -46
  556. package/src/react/workspace/toolbars/TopToolbar.tsx +0 -431
  557. package/src/renderers/CandlestickRenderer.ts +0 -130
  558. package/src/renderers/HistogramRenderer.ts +0 -63
  559. package/src/renderers/LineRenderer.ts +0 -77
  560. package/src/theme/colors.ts +0 -21
  561. package/src/tools/barDivergenceCheck.ts +0 -305
  562. package/src/trading/TradingOverlayStore.ts +0 -161
  563. package/src/trading/UnmanagedIngestion.ts +0 -156
  564. package/src/trading/__tests__/ManagedTradingController.test.ts +0 -338
  565. package/src/trading/__tests__/TradingOverlayStore.test.ts +0 -323
  566. package/src/trading/__tests__/UnmanagedIngestion.test.ts +0 -205
  567. package/src/trading/managed/ManagedTradingController.ts +0 -292
  568. package/src/trading/managed/managedCapabilities.ts +0 -98
  569. package/src/trading/managed/managedTypes.ts +0 -151
  570. package/src/trading/tradingTypes.ts +0 -135
  571. package/src/tscript/TScriptIndicator.ts +0 -54
  572. package/src/tscript/ast.ts +0 -105
  573. package/src/tscript/lexer.ts +0 -190
  574. package/src/tscript/parser.ts +0 -334
  575. package/src/tscript/runtime.ts +0 -525
  576. package/src/tscript/series.ts +0 -84
  577. package/src/types/IChart.ts +0 -56
  578. package/src/types/ISeries.ts +0 -30
  579. package/tsconfig.json +0 -23
  580. package/tsup.config.ts +0 -16
  581. package/vitest.config.ts +0 -25
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Chart.js","sourceRoot":"","sources":["../../src/core/Chart.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,168 @@
1
+ import type { TimeRange, PriceRange, Point, DrawingPoint } from '@forgecharts/types';
2
+ import type { TimeScale } from './TimeScale';
3
+ import type { PriceScale } from './PriceScale';
4
+ /**
5
+ * Immutable snapshot of the plot area geometry (excluding axes).
6
+ * All coordinates are in logical canvas pixels (pre-DPR).
7
+ */
8
+ export type PlotArea = {
9
+ /** Left edge — always 0. */
10
+ readonly left: number;
11
+ /** Top edge — always 0. */
12
+ readonly top: number;
13
+ /** Right edge = canvasWidth − priceScaleWidth. */
14
+ readonly right: number;
15
+ /** Bottom edge = canvasHeight − timeScaleHeight. */
16
+ readonly bottom: number;
17
+ /** Drawable width (canvasWidth − priceScaleWidth). */
18
+ readonly width: number;
19
+ /** Drawable height (canvasHeight − timeScaleHeight). */
20
+ readonly height: number;
21
+ };
22
+ /**
23
+ * CoordTransform — the single source of truth for all coordinate conversions.
24
+ *
25
+ * Converts between chart data-space coordinates (Unix timestamp in seconds,
26
+ * price) and canvas pixel coordinates (x, y). Every chart subsystem that
27
+ * needs coordinate maths — the Crosshair, series renderers, drawing tools,
28
+ * plugins — should use this class rather than reading scale internals directly.
29
+ *
30
+ * A `CoordTransform` instance is owned by `Chart` and can be retrieved via
31
+ * `chart.transform()`. It is kept up-to-date with every resize; callers
32
+ * hold a stable reference and always see current values.
33
+ *
34
+ * @example
35
+ * ```ts
36
+ * const t = chart.transform();
37
+ *
38
+ * // Data → pixel
39
+ * const x = t.timeToX(bar.time);
40
+ * const y = t.priceToY(bar.close);
41
+ * const { x, y } = t.toPixel(bar.time, bar.close);
42
+ *
43
+ * // Pixel → data (e.g. read pointer position)
44
+ * const { time, price } = t.fromPixel(event.offsetX, event.offsetY);
45
+ *
46
+ * // Zoom on wheel
47
+ * t.zoomTime(0.9, event.offsetX); // zoom in
48
+ *
49
+ * // Pan on drag
50
+ * t.pan(dx, dy);
51
+ * ```
52
+ */
53
+ export declare class CoordTransform {
54
+ private _canvasWidth;
55
+ private _canvasHeight;
56
+ private readonly _timeScale;
57
+ private readonly _priceScale;
58
+ /** Width of the right-side price axis in logical pixels. */
59
+ readonly priceScaleWidth: number;
60
+ /** Height of the bottom time axis in logical pixels. */
61
+ readonly timeScaleHeight: number;
62
+ constructor(timeScale: TimeScale, priceScale: PriceScale, priceScaleWidth: number, timeScaleHeight: number);
63
+ /**
64
+ * Stores the current canvas size.
65
+ * **Must be called** by `Chart` once at construction and after every resize.
66
+ */
67
+ update(canvasWidth: number, canvasHeight: number): void;
68
+ /**
69
+ * The drawable region excluding both axes.
70
+ * Use this to clip drawing operations or check mouse bounds.
71
+ */
72
+ get plotArea(): PlotArea;
73
+ /** Full logical canvas width (plot area + price axis). */
74
+ get canvasWidth(): number;
75
+ /** Full logical canvas height (plot area + time axis). */
76
+ get canvasHeight(): number;
77
+ /** Drawable width (canvas width minus the price axis). */
78
+ get plotWidth(): number;
79
+ /** Drawable height (canvas height minus the time axis). */
80
+ get plotHeight(): number;
81
+ /**
82
+ * Maps a Unix timestamp (seconds) to a canvas X pixel.
83
+ *
84
+ * Returns a value in `[0, plotWidth]` for visible times; may be negative
85
+ * or exceed `plotWidth` for off-screen bars — useful for clipping checks.
86
+ */
87
+ timeToX(time: number): number;
88
+ /**
89
+ * Maps a canvas X pixel coordinate back to a Unix timestamp (seconds).
90
+ */
91
+ xToTime(x: number): number;
92
+ /**
93
+ * Maps a price value to a canvas Y pixel.
94
+ *
95
+ * Y = 0 is the top of the canvas. Higher prices map to smaller Y values
96
+ * in normal (non-inverted) scale mode.
97
+ */
98
+ priceToY(price: number): number;
99
+ /**
100
+ * Maps a canvas Y pixel coordinate back to a price value.
101
+ */
102
+ yToPrice(y: number): number;
103
+ /**
104
+ * Converts a data-space point to a canvas pixel.
105
+ *
106
+ * @example
107
+ * ```ts
108
+ * const { x, y } = transform.toPixel(bar.time, bar.high);
109
+ * ctx.arc(x, y, 3, 0, Math.PI * 2);
110
+ * ```
111
+ */
112
+ toPixel(time: number, price: number): Point;
113
+ /**
114
+ * Converts a canvas pixel to a data-space point (time, price).
115
+ *
116
+ * Returned `time` is in Unix seconds; `price` is in the same units as the
117
+ * price scale (e.g. USD for BTCUSDT charts).
118
+ *
119
+ * @example
120
+ * ```ts
121
+ * canvas.addEventListener('click', e => {
122
+ * const { time, price } = transform.fromPixel(e.offsetX, e.offsetY);
123
+ * });
124
+ * ```
125
+ */
126
+ fromPixel(x: number, y: number): DrawingPoint;
127
+ /**
128
+ * Returns `true` when pixel `(x, y)` falls inside the plot area —
129
+ * i.e. not over the axis gutter regions.
130
+ */
131
+ inPlotArea(x: number, y: number): boolean;
132
+ /**
133
+ * Zooms the time axis around a canvas-space pivot X pixel.
134
+ *
135
+ * @param factor Multiplier applied to the visible time span.
136
+ * `< 1` = zoom in (fewer bars visible),
137
+ * `> 1` = zoom out (more bars visible).
138
+ * @param pivotX Canvas X pixel that remains fixed during the zoom.
139
+ * Pass `event.offsetX` from a wheel event.
140
+ */
141
+ zoomTime(factor: number, pivotX: number): void;
142
+ /**
143
+ * Zooms the price axis around a canvas-space pivot Y pixel.
144
+ *
145
+ * @param factor Multiplier for the visible price span.
146
+ * `> 1` = zoom out (wider range), `< 1` = zoom in (narrower range).
147
+ * @param pivotY Canvas Y pixel that stays fixed during the zoom.
148
+ */
149
+ zoomPrice(factor: number, pivotY: number): void;
150
+ /**
151
+ * Pans the chart by a pixel delta — typically called from a drag handler.
152
+ *
153
+ * - `deltaX > 0` (right drag) shifts the visible time range backward
154
+ * (revealing older bars).
155
+ * - `deltaX < 0` (left drag) shifts forward (revealing newer bars).
156
+ * - `deltaY > 0` (down drag) shifts the visible price range downward.
157
+ * - `deltaY < 0` (up drag) shifts the price range upward.
158
+ *
159
+ * @param deltaX Horizontal pixel displacement since last event.
160
+ * @param deltaY Vertical pixel displacement since last event.
161
+ */
162
+ pan(deltaX: number, deltaY: number): void;
163
+ /** The currently visible time range (Unix seconds). */
164
+ get timeRange(): TimeRange;
165
+ /** The currently visible price range. */
166
+ get priceRange(): PriceRange;
167
+ }
168
+ //# sourceMappingURL=CoordTransform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CoordTransform.d.ts","sourceRoot":"","sources":["../../src/core/CoordTransform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,4BAA4B;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,2BAA2B;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,kDAAkD;IAClD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,oDAAoD;IACpD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,sDAAsD;IACtD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,aAAa,CAAK;IAE1B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IAEzC,4DAA4D;IAC5D,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IAEjC,wDAAwD;IACxD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;gBAG/B,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,MAAM,EACvB,eAAe,EAAE,MAAM;IAUzB;;;OAGG;IACH,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAOvD;;;OAGG;IACH,IAAI,QAAQ,IAAI,QAAQ,CAIvB;IAED,0DAA0D;IAC1D,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,0DAA0D;IAC1D,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,0DAA0D;IAC1D,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,2DAA2D;IAC3D,IAAI,UAAU,IAAI,MAAM,CAEvB;IAID;;;;;OAKG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAI7B;;OAEG;IACH,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAM1B;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAI/B;;OAEG;IACH,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAM3B;;;;;;;;OAQG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK;IAI3C;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,YAAY;IAI7C;;;OAGG;IACH,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO;IAMzC;;;;;;;;OAQG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAI9C;;;;;;OAMG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAa/C;;;;;;;;;;;OAWG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAyBzC,uDAAuD;IACvD,IAAI,SAAS,IAAI,SAAS,CAEzB;IAED,yCAAyC;IACzC,IAAI,UAAU,IAAI,UAAU,CAE3B;CACF"}
@@ -0,0 +1,224 @@
1
+ /**
2
+ * CoordTransform — the single source of truth for all coordinate conversions.
3
+ *
4
+ * Converts between chart data-space coordinates (Unix timestamp in seconds,
5
+ * price) and canvas pixel coordinates (x, y). Every chart subsystem that
6
+ * needs coordinate maths — the Crosshair, series renderers, drawing tools,
7
+ * plugins — should use this class rather than reading scale internals directly.
8
+ *
9
+ * A `CoordTransform` instance is owned by `Chart` and can be retrieved via
10
+ * `chart.transform()`. It is kept up-to-date with every resize; callers
11
+ * hold a stable reference and always see current values.
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * const t = chart.transform();
16
+ *
17
+ * // Data → pixel
18
+ * const x = t.timeToX(bar.time);
19
+ * const y = t.priceToY(bar.close);
20
+ * const { x, y } = t.toPixel(bar.time, bar.close);
21
+ *
22
+ * // Pixel → data (e.g. read pointer position)
23
+ * const { time, price } = t.fromPixel(event.offsetX, event.offsetY);
24
+ *
25
+ * // Zoom on wheel
26
+ * t.zoomTime(0.9, event.offsetX); // zoom in
27
+ *
28
+ * // Pan on drag
29
+ * t.pan(dx, dy);
30
+ * ```
31
+ */
32
+ export class CoordTransform {
33
+ _canvasWidth = 0;
34
+ _canvasHeight = 0;
35
+ _timeScale;
36
+ _priceScale;
37
+ /** Width of the right-side price axis in logical pixels. */
38
+ priceScaleWidth;
39
+ /** Height of the bottom time axis in logical pixels. */
40
+ timeScaleHeight;
41
+ constructor(timeScale, priceScale, priceScaleWidth, timeScaleHeight) {
42
+ this._timeScale = timeScale;
43
+ this._priceScale = priceScale;
44
+ this.priceScaleWidth = priceScaleWidth;
45
+ this.timeScaleHeight = timeScaleHeight;
46
+ }
47
+ // ─── Canvas update ────────────────────────────────────────────────────────
48
+ /**
49
+ * Stores the current canvas size.
50
+ * **Must be called** by `Chart` once at construction and after every resize.
51
+ */
52
+ update(canvasWidth, canvasHeight) {
53
+ this._canvasWidth = canvasWidth;
54
+ this._canvasHeight = canvasHeight;
55
+ }
56
+ // ─── Plot area geometry ───────────────────────────────────────────────────
57
+ /**
58
+ * The drawable region excluding both axes.
59
+ * Use this to clip drawing operations or check mouse bounds.
60
+ */
61
+ get plotArea() {
62
+ const w = this._canvasWidth - this.priceScaleWidth;
63
+ const h = this._canvasHeight - this.timeScaleHeight;
64
+ return { left: 0, top: 0, right: w, bottom: h, width: w, height: h };
65
+ }
66
+ /** Full logical canvas width (plot area + price axis). */
67
+ get canvasWidth() {
68
+ return this._canvasWidth;
69
+ }
70
+ /** Full logical canvas height (plot area + time axis). */
71
+ get canvasHeight() {
72
+ return this._canvasHeight;
73
+ }
74
+ /** Drawable width (canvas width minus the price axis). */
75
+ get plotWidth() {
76
+ return this._canvasWidth - this.priceScaleWidth;
77
+ }
78
+ /** Drawable height (canvas height minus the time axis). */
79
+ get plotHeight() {
80
+ return this._canvasHeight - this.timeScaleHeight;
81
+ }
82
+ // ─── Time axis ────────────────────────────────────────────────────────────
83
+ /**
84
+ * Maps a Unix timestamp (seconds) to a canvas X pixel.
85
+ *
86
+ * Returns a value in `[0, plotWidth]` for visible times; may be negative
87
+ * or exceed `plotWidth` for off-screen bars — useful for clipping checks.
88
+ */
89
+ timeToX(time) {
90
+ return this._timeScale.timeToX(time, this._canvasWidth);
91
+ }
92
+ /**
93
+ * Maps a canvas X pixel coordinate back to a Unix timestamp (seconds).
94
+ */
95
+ xToTime(x) {
96
+ return this._timeScale.xToTime(x, this._canvasWidth);
97
+ }
98
+ // ─── Price axis ───────────────────────────────────────────────────────────
99
+ /**
100
+ * Maps a price value to a canvas Y pixel.
101
+ *
102
+ * Y = 0 is the top of the canvas. Higher prices map to smaller Y values
103
+ * in normal (non-inverted) scale mode.
104
+ */
105
+ priceToY(price) {
106
+ return this._priceScale.priceToY(price, this._canvasHeight);
107
+ }
108
+ /**
109
+ * Maps a canvas Y pixel coordinate back to a price value.
110
+ */
111
+ yToPrice(y) {
112
+ return this._priceScale.yToPrice(y, this._canvasHeight);
113
+ }
114
+ // ─── Combined helpers ─────────────────────────────────────────────────────
115
+ /**
116
+ * Converts a data-space point to a canvas pixel.
117
+ *
118
+ * @example
119
+ * ```ts
120
+ * const { x, y } = transform.toPixel(bar.time, bar.high);
121
+ * ctx.arc(x, y, 3, 0, Math.PI * 2);
122
+ * ```
123
+ */
124
+ toPixel(time, price) {
125
+ return { x: this.timeToX(time), y: this.priceToY(price) };
126
+ }
127
+ /**
128
+ * Converts a canvas pixel to a data-space point (time, price).
129
+ *
130
+ * Returned `time` is in Unix seconds; `price` is in the same units as the
131
+ * price scale (e.g. USD for BTCUSDT charts).
132
+ *
133
+ * @example
134
+ * ```ts
135
+ * canvas.addEventListener('click', e => {
136
+ * const { time, price } = transform.fromPixel(e.offsetX, e.offsetY);
137
+ * });
138
+ * ```
139
+ */
140
+ fromPixel(x, y) {
141
+ return { time: this.xToTime(x), price: this.yToPrice(y) };
142
+ }
143
+ /**
144
+ * Returns `true` when pixel `(x, y)` falls inside the plot area —
145
+ * i.e. not over the axis gutter regions.
146
+ */
147
+ inPlotArea(x, y) {
148
+ return x >= 0 && x <= this.plotWidth && y >= 0 && y <= this.plotHeight;
149
+ }
150
+ // ─── Zoom ─────────────────────────────────────────────────────────────────
151
+ /**
152
+ * Zooms the time axis around a canvas-space pivot X pixel.
153
+ *
154
+ * @param factor Multiplier applied to the visible time span.
155
+ * `< 1` = zoom in (fewer bars visible),
156
+ * `> 1` = zoom out (more bars visible).
157
+ * @param pivotX Canvas X pixel that remains fixed during the zoom.
158
+ * Pass `event.offsetX` from a wheel event.
159
+ */
160
+ zoomTime(factor, pivotX) {
161
+ this._timeScale.zoom(factor, pivotX, this._canvasWidth);
162
+ }
163
+ /**
164
+ * Zooms the price axis around a canvas-space pivot Y pixel.
165
+ *
166
+ * @param factor Multiplier for the visible price span.
167
+ * `> 1` = zoom out (wider range), `< 1` = zoom in (narrower range).
168
+ * @param pivotY Canvas Y pixel that stays fixed during the zoom.
169
+ */
170
+ zoomPrice(factor, pivotY) {
171
+ const pivotPrice = this.yToPrice(pivotY);
172
+ const { min, max } = this._priceScale.visibleRange;
173
+ const span = max - min;
174
+ const newSpan = span * factor;
175
+ // Keep the pivot price anchored at the same Y position
176
+ const ratio = (pivotPrice - min) / span;
177
+ const newMin = pivotPrice - ratio * newSpan;
178
+ this._priceScale.setVisibleRange({ min: newMin, max: newMin + newSpan });
179
+ }
180
+ // ─── Pan ──────────────────────────────────────────────────────────────────
181
+ /**
182
+ * Pans the chart by a pixel delta — typically called from a drag handler.
183
+ *
184
+ * - `deltaX > 0` (right drag) shifts the visible time range backward
185
+ * (revealing older bars).
186
+ * - `deltaX < 0` (left drag) shifts forward (revealing newer bars).
187
+ * - `deltaY > 0` (down drag) shifts the visible price range downward.
188
+ * - `deltaY < 0` (up drag) shifts the price range upward.
189
+ *
190
+ * @param deltaX Horizontal pixel displacement since last event.
191
+ * @param deltaY Vertical pixel displacement since last event.
192
+ */
193
+ pan(deltaX, deltaY) {
194
+ // ── Time axis ────────────────────────────────────────────────────────────
195
+ if (deltaX !== 0 && this._canvasWidth > 0) {
196
+ const { from, to } = this._timeScale.visibleRange;
197
+ const timeSpan = to - from;
198
+ // Right drag (deltaX > 0) → move range backward → negate
199
+ const deltaSeconds = (deltaX / this.plotWidth) * timeSpan;
200
+ this._timeScale.scroll(-deltaSeconds);
201
+ }
202
+ // ── Price axis ────────────────────────────────────────────────────────────
203
+ if (deltaY !== 0 && this._canvasHeight > 0) {
204
+ const { min, max } = this._priceScale.visibleRange;
205
+ const priceSpan = max - min;
206
+ // Down drag (deltaY > 0) → chart content moves down → reveal higher prices → add
207
+ const deltaPrice = (deltaY / this.plotHeight) * priceSpan;
208
+ this._priceScale.setVisibleRange({
209
+ min: min + deltaPrice,
210
+ max: max + deltaPrice,
211
+ });
212
+ }
213
+ }
214
+ // ─── Range accessors ──────────────────────────────────────────────────────
215
+ /** The currently visible time range (Unix seconds). */
216
+ get timeRange() {
217
+ return this._timeScale.visibleRange;
218
+ }
219
+ /** The currently visible price range. */
220
+ get priceRange() {
221
+ return this._priceScale.visibleRange;
222
+ }
223
+ }
224
+ //# sourceMappingURL=CoordTransform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CoordTransform.js","sourceRoot":"","sources":["../../src/core/CoordTransform.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { ChartColors, ChartOptions } from '@forgecharts/types';
2
+ import type { CanvasLayer } from './CanvasLayer';
3
+ import type { CoordTransform } from './CoordTransform';
4
+ /**
5
+ * Crosshair — renders the interactive cross-line overlay and price/time labels.
6
+ */
7
+ export declare class Crosshair {
8
+ private _x;
9
+ private _snapTime;
10
+ private _y;
11
+ private readonly _layer;
12
+ private readonly _colors;
13
+ private readonly _options;
14
+ private readonly _transform;
15
+ /** IANA timezone for the time label on the crosshair. Falls back to UTC. */
16
+ timezone: string | undefined;
17
+ /** Active timeframe — controls whether time is shown alongside the date. */
18
+ interval: string;
19
+ constructor(layer: CanvasLayer, colors: ChartColors, chartOptions: ChartOptions, transform: CoordTransform);
20
+ update(x: number, y: number, snapTime?: number): void;
21
+ hide(): void;
22
+ destroy(): void;
23
+ render(ctx: CanvasRenderingContext2D, width: number, height: number): void;
24
+ private _applyLineStyle;
25
+ /** Formats a price as a fixed-decimal string. */
26
+ private _formatPrice;
27
+ /** Formats a Unix timestamp (seconds) as a human-readable date/time string. */
28
+ private _formatTime;
29
+ }
30
+ //# sourceMappingURL=Crosshair.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Crosshair.d.ts","sourceRoot":"","sources":["../../src/core/Crosshair.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAoB,MAAM,oBAAoB,CAAC;AACtF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGvD;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,EAAE,CAAuB;IACjC,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,EAAE,CAAuB;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IACtD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiB;IAC5C,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAa;IACzC,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,CAAQ;gBAGtB,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,WAAW,EACnB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,cAAc;IAyB3B,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;IAMrD,IAAI,IAAI,IAAI;IAMZ,OAAO,IAAI,IAAI;IAIf,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IA6G1E,OAAO,CAAC,eAAe;IAMvB,iDAAiD;IACjD,OAAO,CAAC,YAAY;IAMpB,+EAA+E;IAC/E,OAAO,CAAC,WAAW;CAiBpB"}