@forgecharts/sdk 1.2.1 → 1.2.5

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 (293) hide show
  1. package/dist/Omne-YBWT34SS.png +0 -0
  2. package/dist/Rithmic-CDB4YQEZ.png +0 -0
  3. package/dist/api/DrawingManager.d.ts +1 -1
  4. package/dist/api/DrawingManager.d.ts.map +1 -1
  5. package/dist/api/IndicatorDAG.d.ts +22 -0
  6. package/dist/api/IndicatorDAG.d.ts.map +1 -1
  7. package/dist/api/IndicatorRegistry.d.ts +6 -0
  8. package/dist/api/IndicatorRegistry.d.ts.map +1 -1
  9. package/dist/api/LayoutManager.d.ts +3 -1
  10. package/dist/api/LayoutManager.d.ts.map +1 -1
  11. package/dist/api/ReferenceAPI.d.ts +5 -0
  12. package/dist/api/ReferenceAPI.d.ts.map +1 -1
  13. package/dist/api/TChart.d.ts +69 -0
  14. package/dist/api/TChart.d.ts.map +1 -1
  15. package/dist/api/drawing tools/fib gann menu/fibChannel.d.ts +4 -0
  16. package/dist/api/drawing tools/fib gann menu/fibChannel.d.ts.map +1 -0
  17. package/dist/api/drawing tools/fib gann menu/fibCircles.d.ts +4 -0
  18. package/dist/api/drawing tools/fib gann menu/fibCircles.d.ts.map +1 -0
  19. package/dist/api/drawing tools/fib gann menu/fibRetracement.d.ts.map +1 -1
  20. package/dist/api/drawing tools/fib gann menu/fibSpeedResistanceArcs.d.ts +4 -0
  21. package/dist/api/drawing tools/fib gann menu/fibSpeedResistanceArcs.d.ts.map +1 -0
  22. package/dist/api/drawing tools/fib gann menu/fibSpeedResistanceFan.d.ts +4 -0
  23. package/dist/api/drawing tools/fib gann menu/fibSpeedResistanceFan.d.ts.map +1 -0
  24. package/dist/api/drawing tools/fib gann menu/fibSpiral.d.ts +4 -0
  25. package/dist/api/drawing tools/fib gann menu/fibSpiral.d.ts.map +1 -0
  26. package/dist/api/drawing tools/fib gann menu/fibTimeZone.d.ts +4 -0
  27. package/dist/api/drawing tools/fib gann menu/fibTimeZone.d.ts.map +1 -0
  28. package/dist/api/drawing tools/fib gann menu/fibWedge.d.ts +4 -0
  29. package/dist/api/drawing tools/fib gann menu/fibWedge.d.ts.map +1 -0
  30. package/dist/api/drawing tools/fib gann menu/gannBox.d.ts +4 -0
  31. package/dist/api/drawing tools/fib gann menu/gannBox.d.ts.map +1 -0
  32. package/dist/api/drawing tools/fib gann menu/gannFan.d.ts +4 -0
  33. package/dist/api/drawing tools/fib gann menu/gannFan.d.ts.map +1 -0
  34. package/dist/api/drawing tools/fib gann menu/gannSquare.d.ts +4 -0
  35. package/dist/api/drawing tools/fib gann menu/gannSquare.d.ts.map +1 -0
  36. package/dist/api/drawing tools/fib gann menu/gannSquareFixed.d.ts +4 -0
  37. package/dist/api/drawing tools/fib gann menu/gannSquareFixed.d.ts.map +1 -0
  38. package/dist/api/drawing tools/fib gann menu/pitchfan.d.ts +4 -0
  39. package/dist/api/drawing tools/fib gann menu/pitchfan.d.ts.map +1 -0
  40. package/dist/api/drawing tools/fib gann menu/trendBasedFibExtension.d.ts +4 -0
  41. package/dist/api/drawing tools/fib gann menu/trendBasedFibExtension.d.ts.map +1 -0
  42. package/dist/api/drawing tools/fib gann menu/trendBasedFibTime.d.ts +4 -0
  43. package/dist/api/drawing tools/fib gann menu/trendBasedFibTime.d.ts.map +1 -0
  44. package/dist/api/drawing tools/shapes menu/anchoredText.d.ts +7 -0
  45. package/dist/api/drawing tools/shapes menu/anchoredText.d.ts.map +1 -0
  46. package/dist/api/drawing tools/shapes menu/arc.d.ts +8 -0
  47. package/dist/api/drawing tools/shapes menu/arc.d.ts.map +1 -0
  48. package/dist/api/drawing tools/shapes menu/arrow.d.ts +4 -0
  49. package/dist/api/drawing tools/shapes menu/arrow.d.ts.map +1 -0
  50. package/dist/api/drawing tools/shapes menu/arrowDown.d.ts +7 -0
  51. package/dist/api/drawing tools/shapes menu/arrowDown.d.ts.map +1 -0
  52. package/dist/api/drawing tools/shapes menu/arrowUp.d.ts +7 -0
  53. package/dist/api/drawing tools/shapes menu/arrowUp.d.ts.map +1 -0
  54. package/dist/api/drawing tools/shapes menu/callout.d.ts +7 -0
  55. package/dist/api/drawing tools/shapes menu/callout.d.ts.map +1 -0
  56. package/dist/api/drawing tools/shapes menu/dateRange.d.ts +4 -0
  57. package/dist/api/drawing tools/shapes menu/dateRange.d.ts.map +1 -0
  58. package/dist/api/drawing tools/shapes menu/ellipse.d.ts +4 -0
  59. package/dist/api/drawing tools/shapes menu/ellipse.d.ts.map +1 -0
  60. package/dist/api/drawing tools/shapes menu/longPosition.d.ts +4 -0
  61. package/dist/api/drawing tools/shapes menu/longPosition.d.ts.map +1 -0
  62. package/dist/api/drawing tools/shapes menu/priceLabel.d.ts +7 -0
  63. package/dist/api/drawing tools/shapes menu/priceLabel.d.ts.map +1 -0
  64. package/dist/api/drawing tools/shapes menu/priceRange.d.ts +4 -0
  65. package/dist/api/drawing tools/shapes menu/priceRange.d.ts.map +1 -0
  66. package/dist/api/drawing tools/shapes menu/shortPosition.d.ts +4 -0
  67. package/dist/api/drawing tools/shapes menu/shortPosition.d.ts.map +1 -0
  68. package/dist/api/drawing tools/shapes menu/triangle.d.ts +4 -0
  69. package/dist/api/drawing tools/shapes menu/triangle.d.ts.map +1 -0
  70. package/dist/core/Chart.d.ts +29 -2
  71. package/dist/core/Chart.d.ts.map +1 -1
  72. package/dist/core/CoordTransform.d.ts.map +1 -1
  73. package/dist/core/Crosshair.d.ts +2 -0
  74. package/dist/core/Crosshair.d.ts.map +1 -1
  75. package/dist/core/IndicatorEngine.d.ts +15 -0
  76. package/dist/core/IndicatorEngine.d.ts.map +1 -1
  77. package/dist/core/InteractionManager.d.ts +55 -2
  78. package/dist/core/InteractionManager.d.ts.map +1 -1
  79. package/dist/core/PriceScale.d.ts +2 -0
  80. package/dist/core/PriceScale.d.ts.map +1 -1
  81. package/dist/core/Series.d.ts.map +1 -1
  82. package/dist/core/TimeScale.d.ts +52 -1
  83. package/dist/core/TimeScale.d.ts.map +1 -1
  84. package/dist/core/indicatorStyles.d.ts +37 -0
  85. package/dist/core/indicatorStyles.d.ts.map +1 -0
  86. package/dist/datafeed/DatafeedConnector.d.ts +27 -0
  87. package/dist/datafeed/DatafeedConnector.d.ts.map +1 -1
  88. package/dist/engine/CandleEngine.d.ts +2 -0
  89. package/dist/engine/CandleEngine.d.ts.map +1 -1
  90. package/dist/forgecharts.css +2029 -132
  91. package/dist/forgescript/ast.d.ts +71 -4
  92. package/dist/forgescript/ast.d.ts.map +1 -1
  93. package/dist/forgescript/builtins/collections.d.ts +56 -0
  94. package/dist/forgescript/builtins/collections.d.ts.map +1 -0
  95. package/dist/forgescript/builtins/drawing.d.ts +57 -0
  96. package/dist/forgescript/builtins/drawing.d.ts.map +1 -0
  97. package/dist/forgescript/builtins/udt.d.ts +30 -0
  98. package/dist/forgescript/builtins/udt.d.ts.map +1 -0
  99. package/dist/forgescript/conversion/index.d.ts +16 -9
  100. package/dist/forgescript/conversion/index.d.ts.map +1 -1
  101. package/dist/forgescript/conversion/types.d.ts +10 -54
  102. package/dist/forgescript/conversion/types.d.ts.map +1 -1
  103. package/dist/forgescript/conversion/validation.d.ts.map +1 -1
  104. package/dist/forgescript/datasets/DatasetStore.d.ts +65 -0
  105. package/dist/forgescript/datasets/DatasetStore.d.ts.map +1 -0
  106. package/dist/forgescript/datasets/parseDataset.d.ts +32 -0
  107. package/dist/forgescript/datasets/parseDataset.d.ts.map +1 -0
  108. package/dist/forgescript/parser.d.ts +19 -1
  109. package/dist/forgescript/parser.d.ts.map +1 -1
  110. package/dist/forgescript/runtime.d.ts +125 -104
  111. package/dist/forgescript/runtime.d.ts.map +1 -1
  112. package/dist/index.d.ts +14 -7
  113. package/dist/index.d.ts.map +1 -1
  114. package/dist/index.js +21487 -8016
  115. package/dist/index.js.map +1 -1
  116. package/dist/internal.d.ts +2 -0
  117. package/dist/internal.d.ts.map +1 -1
  118. package/dist/internal.js +19599 -6869
  119. package/dist/internal.js.map +1 -1
  120. package/dist/licensing/ChartRuntimeResolver.d.ts +134 -124
  121. package/dist/licensing/ChartRuntimeResolver.d.ts.map +1 -1
  122. package/dist/licensing/LicenseManager.d.ts.map +1 -1
  123. package/dist/licensing/__tests__/ChartRuntimeResolver.test.d.ts +2 -0
  124. package/dist/licensing/__tests__/ChartRuntimeResolver.test.d.ts.map +1 -1
  125. package/dist/licensing/licenseTypes.d.ts +56 -15
  126. package/dist/licensing/licenseTypes.d.ts.map +1 -1
  127. package/dist/node.d.ts +57 -0
  128. package/dist/node.d.ts.map +1 -0
  129. package/dist/pixi/PixiBenchmark.d.ts +56 -0
  130. package/dist/pixi/PixiBenchmark.d.ts.map +1 -0
  131. package/dist/pixi/PixiCandlestickRenderer.d.ts +19 -6
  132. package/dist/pixi/PixiCandlestickRenderer.d.ts.map +1 -1
  133. package/dist/pixi/PixiChart.d.ts +108 -2
  134. package/dist/pixi/PixiChart.d.ts.map +1 -1
  135. package/dist/pixi/PixiCrosshairRenderer.d.ts +10 -0
  136. package/dist/pixi/PixiCrosshairRenderer.d.ts.map +1 -1
  137. package/dist/pixi/PixiDrawingRenderer.d.ts +17 -5
  138. package/dist/pixi/PixiDrawingRenderer.d.ts.map +1 -1
  139. package/dist/pixi/PixiGridRenderer.d.ts +18 -2
  140. package/dist/pixi/PixiGridRenderer.d.ts.map +1 -1
  141. package/dist/pixi/PixiHistogramRenderer.d.ts +17 -0
  142. package/dist/pixi/PixiHistogramRenderer.d.ts.map +1 -0
  143. package/dist/pixi/PixiIndicatorRenderer.d.ts +35 -0
  144. package/dist/pixi/PixiIndicatorRenderer.d.ts.map +1 -0
  145. package/dist/pixi/PixiLastPriceRenderer.d.ts +33 -0
  146. package/dist/pixi/PixiLastPriceRenderer.d.ts.map +1 -0
  147. package/dist/pixi/PixiLayerManager.d.ts.map +1 -1
  148. package/dist/pixi/PixiLineRenderer.d.ts +19 -0
  149. package/dist/pixi/PixiLineRenderer.d.ts.map +1 -0
  150. package/dist/pixi/PixiTradingRenderer.d.ts +100 -0
  151. package/dist/pixi/PixiTradingRenderer.d.ts.map +1 -0
  152. package/dist/pixi/snap.d.ts +38 -0
  153. package/dist/pixi/snap.d.ts.map +1 -0
  154. package/dist/react/agent/AgentFAB.d.ts +21 -0
  155. package/dist/react/agent/AgentFAB.d.ts.map +1 -0
  156. package/dist/react/agent/AgentProvider.d.ts +15 -0
  157. package/dist/react/agent/AgentProvider.d.ts.map +1 -0
  158. package/dist/react/agent/AgentUIBus.d.ts +118 -0
  159. package/dist/react/agent/AgentUIBus.d.ts.map +1 -0
  160. package/dist/react/agent/AssistantPanel.d.ts +13 -0
  161. package/dist/react/agent/AssistantPanel.d.ts.map +1 -0
  162. package/dist/react/agent/CommandDispatcher.d.ts +81 -0
  163. package/dist/react/agent/CommandDispatcher.d.ts.map +1 -0
  164. package/dist/react/agent/VoiceInput.d.ts +36 -0
  165. package/dist/react/agent/VoiceInput.d.ts.map +1 -0
  166. package/dist/react/agent/contractUtils.d.ts +31 -0
  167. package/dist/react/agent/contractUtils.d.ts.map +1 -0
  168. package/dist/react/agent/index.d.ts +18 -0
  169. package/dist/react/agent/index.d.ts.map +1 -0
  170. package/dist/react/agent/useAgent.d.ts +81 -0
  171. package/dist/react/agent/useAgent.d.ts.map +1 -0
  172. package/dist/react/canvas/ChartCanvas.d.ts +55 -0
  173. package/dist/react/canvas/ChartCanvas.d.ts.map +1 -1
  174. package/dist/react/canvas/ChartContextMenu.d.ts +1 -1
  175. package/dist/react/canvas/ChartContextMenu.d.ts.map +1 -1
  176. package/dist/react/canvas/ChartSettingsDialog.d.ts +80 -2
  177. package/dist/react/canvas/ChartSettingsDialog.d.ts.map +1 -1
  178. package/dist/react/canvas/ContractSwitchDialog.d.ts +22 -0
  179. package/dist/react/canvas/ContractSwitchDialog.d.ts.map +1 -0
  180. package/dist/react/canvas/DrawingPropertiesDialog.d.ts +23 -0
  181. package/dist/react/canvas/DrawingPropertiesDialog.d.ts.map +1 -0
  182. package/dist/react/canvas/IndicatorLabel.d.ts +11 -3
  183. package/dist/react/canvas/IndicatorLabel.d.ts.map +1 -1
  184. package/dist/react/canvas/IndicatorPane.d.ts +1 -1
  185. package/dist/react/canvas/IndicatorPane.d.ts.map +1 -1
  186. package/dist/react/canvas/PointerOverlay.d.ts +6 -3
  187. package/dist/react/canvas/PointerOverlay.d.ts.map +1 -1
  188. package/dist/react/canvas/PositionPropertiesDialog.d.ts +22 -0
  189. package/dist/react/canvas/PositionPropertiesDialog.d.ts.map +1 -0
  190. package/dist/react/canvas/TableOverlay.d.ts +1 -1
  191. package/dist/react/canvas/TableOverlay.d.ts.map +1 -1
  192. package/dist/react/canvas/toolbars/LeftToolbar.d.ts +9 -2
  193. package/dist/react/canvas/toolbars/LeftToolbar.d.ts.map +1 -1
  194. package/dist/react/hooks/useBrokerEvents.d.ts +9 -0
  195. package/dist/react/hooks/useBrokerEvents.d.ts.map +1 -1
  196. package/dist/react/hooks/useChartCapabilities.d.ts.map +1 -1
  197. package/dist/react/hooks/usePanelDrag.d.ts +2 -0
  198. package/dist/react/hooks/usePanelDrag.d.ts.map +1 -0
  199. package/dist/react/index.d.ts +3 -0
  200. package/dist/react/index.d.ts.map +1 -1
  201. package/dist/react/index.js +25769 -10541
  202. package/dist/react/index.js.map +1 -1
  203. package/dist/react/internal.js +32838 -15641
  204. package/dist/react/internal.js.map +1 -1
  205. package/dist/react/shell/DatasetImportPanel.d.ts +14 -0
  206. package/dist/react/shell/DatasetImportPanel.d.ts.map +1 -0
  207. package/dist/react/shell/DatasetManagerDrawer.d.ts +20 -0
  208. package/dist/react/shell/DatasetManagerDrawer.d.ts.map +1 -0
  209. package/dist/react/shell/DepthOfMarketPanel.d.ts +18 -0
  210. package/dist/react/shell/DepthOfMarketPanel.d.ts.map +1 -0
  211. package/dist/react/shell/DocsEditor.d.ts +17 -0
  212. package/dist/react/shell/DocsEditor.d.ts.map +1 -0
  213. package/dist/react/shell/ManagedAppShell.d.ts +27 -0
  214. package/dist/react/shell/ManagedAppShell.d.ts.map +1 -1
  215. package/dist/react/shell/OrderEntryPanel.d.ts +21 -1
  216. package/dist/react/shell/OrderEntryPanel.d.ts.map +1 -1
  217. package/dist/react/shell/ScriptDrawer.d.ts +7 -1
  218. package/dist/react/shell/ScriptDrawer.d.ts.map +1 -1
  219. package/dist/react/shell/ScriptSettings.d.ts +26 -0
  220. package/dist/react/shell/ScriptSettings.d.ts.map +1 -0
  221. package/dist/react/shell/TradeDrawer.d.ts +8 -1
  222. package/dist/react/shell/TradeDrawer.d.ts.map +1 -1
  223. package/dist/react/shell/WatchlistDrawer.d.ts +2 -1
  224. package/dist/react/shell/WatchlistDrawer.d.ts.map +1 -1
  225. package/dist/react/shell/useDepthSubscription.d.ts +12 -0
  226. package/dist/react/shell/useDepthSubscription.d.ts.map +1 -0
  227. package/dist/react/shell/useWatchlistQuotes.d.ts +6 -0
  228. package/dist/react/shell/useWatchlistQuotes.d.ts.map +1 -1
  229. package/dist/react/workspace/BottomTradingPanel.d.ts +78 -0
  230. package/dist/react/workspace/BottomTradingPanel.d.ts.map +1 -0
  231. package/dist/react/workspace/ChartWorkspace.d.ts +64 -1
  232. package/dist/react/workspace/ChartWorkspace.d.ts.map +1 -1
  233. package/dist/react/workspace/FloatingPanel.d.ts +1 -1
  234. package/dist/react/workspace/FloatingPanel.d.ts.map +1 -1
  235. package/dist/react/workspace/GridChartContainer.d.ts +40 -0
  236. package/dist/react/workspace/GridChartContainer.d.ts.map +1 -0
  237. package/dist/react/workspace/GridSyncContext.d.ts +32 -0
  238. package/dist/react/workspace/GridSyncContext.d.ts.map +1 -0
  239. package/dist/react/workspace/GridTemplates.d.ts +16 -0
  240. package/dist/react/workspace/GridTemplates.d.ts.map +1 -0
  241. package/dist/react/workspace/IndicatorsDialog.d.ts +5 -1
  242. package/dist/react/workspace/IndicatorsDialog.d.ts.map +1 -1
  243. package/dist/react/workspace/LayoutMenu.d.ts +1 -1
  244. package/dist/react/workspace/LayoutMenu.d.ts.map +1 -1
  245. package/dist/react/workspace/LayoutTemplateSelector.d.ts +16 -0
  246. package/dist/react/workspace/LayoutTemplateSelector.d.ts.map +1 -0
  247. package/dist/react/workspace/SymbolSearchDialog.d.ts +1 -1
  248. package/dist/react/workspace/SymbolSearchDialog.d.ts.map +1 -1
  249. package/dist/react/workspace/TabBar.d.ts +4 -1
  250. package/dist/react/workspace/TabBar.d.ts.map +1 -1
  251. package/dist/react/workspace/toolbars/BottomToolbar.d.ts +7 -1
  252. package/dist/react/workspace/toolbars/BottomToolbar.d.ts.map +1 -1
  253. package/dist/react/workspace/toolbars/RightToolbar.d.ts +10 -1
  254. package/dist/react/workspace/toolbars/RightToolbar.d.ts.map +1 -1
  255. package/dist/react/workspace/toolbars/TopToolbar.d.ts +36 -2
  256. package/dist/react/workspace/toolbars/TopToolbar.d.ts.map +1 -1
  257. package/dist/renderers/CandlestickRenderer.d.ts.map +1 -1
  258. package/dist/services/BarPrefetchCache.d.ts +39 -0
  259. package/dist/services/BarPrefetchCache.d.ts.map +1 -0
  260. package/dist/theme/colors.d.ts.map +1 -1
  261. package/dist/trading/UnmanagedIngestion.d.ts +39 -12
  262. package/dist/trading/UnmanagedIngestion.d.ts.map +1 -1
  263. package/dist/trading/tradingTypes.d.ts +11 -2
  264. package/dist/trading/tradingTypes.d.ts.map +1 -1
  265. package/dist/types/ChartBackend.d.ts +67 -0
  266. package/dist/types/ChartBackend.d.ts.map +1 -0
  267. package/package.json +2 -2
  268. package/dist/forgescript/__tests__/ai-response-parser.test.d.ts +0 -2
  269. package/dist/forgescript/__tests__/ai-response-parser.test.d.ts.map +0 -1
  270. package/dist/forgescript/__tests__/orchestrator.test.d.ts +0 -2
  271. package/dist/forgescript/__tests__/orchestrator.test.d.ts.map +0 -1
  272. package/dist/forgescript/__tests__/pine-transpiler.test.d.ts +0 -2
  273. package/dist/forgescript/__tests__/pine-transpiler.test.d.ts.map +0 -1
  274. package/dist/forgescript/conversion/ai-conversion-agent.d.ts +0 -41
  275. package/dist/forgescript/conversion/ai-conversion-agent.d.ts.map +0 -1
  276. package/dist/forgescript/conversion/conversion-orchestrator.d.ts +0 -44
  277. package/dist/forgescript/conversion/conversion-orchestrator.d.ts.map +0 -1
  278. package/dist/forgescript/conversion/prompts/index.d.ts +0 -17
  279. package/dist/forgescript/conversion/prompts/index.d.ts.map +0 -1
  280. package/dist/forgescript/pine/PineCompiler.d.ts +0 -38
  281. package/dist/forgescript/pine/PineCompiler.d.ts.map +0 -1
  282. package/dist/forgescript/pine/diagnostics.d.ts +0 -20
  283. package/dist/forgescript/pine/diagnostics.d.ts.map +0 -1
  284. package/dist/forgescript/pine/index.d.ts +0 -8
  285. package/dist/forgescript/pine/index.d.ts.map +0 -1
  286. package/dist/forgescript/pine/pine-ast.d.ts +0 -190
  287. package/dist/forgescript/pine/pine-ast.d.ts.map +0 -1
  288. package/dist/forgescript/pine/pine-lexer.d.ts +0 -41
  289. package/dist/forgescript/pine/pine-lexer.d.ts.map +0 -1
  290. package/dist/forgescript/pine/pine-parser.d.ts +0 -108
  291. package/dist/forgescript/pine/pine-parser.d.ts.map +0 -1
  292. package/dist/forgescript/pine/pine-transpiler.d.ts +0 -40
  293. package/dist/forgescript/pine/pine-transpiler.d.ts.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"priceRange.d.ts","sourceRoot":"","sources":["../../../../src/api/drawing tools/shapes menu/priceRange.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEnE,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,wBAAwB,EAC7B,CAAC,EAAE,OAAO,EACV,CAAC,EAAE,cAAc,GAChB,IAAI,CA4CN"}
@@ -0,0 +1,4 @@
1
+ import type { Drawing } from '@forgecharts/types';
2
+ import type { CoordTransform } from '../../../core/CoordTransform';
3
+ export declare function renderShortPosition(ctx: CanvasRenderingContext2D, d: Drawing, t: CoordTransform): void;
4
+ //# sourceMappingURL=shortPosition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shortPosition.d.ts","sourceRoot":"","sources":["../../../../src/api/drawing tools/shapes menu/shortPosition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAKnE,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,wBAAwB,EAC7B,CAAC,EAAE,OAAO,EACV,CAAC,EAAE,cAAc,GAChB,IAAI,CAmEN"}
@@ -0,0 +1,4 @@
1
+ import type { Drawing } from '@forgecharts/types';
2
+ import type { CoordTransform } from '../../../core/CoordTransform';
3
+ export declare function renderTriangle(ctx: CanvasRenderingContext2D, d: Drawing, t: CoordTransform): void;
4
+ //# sourceMappingURL=triangle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"triangle.d.ts","sourceRoot":"","sources":["../../../../src/api/drawing tools/shapes menu/triangle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEnE,wBAAgB,cAAc,CAC5B,GAAG,EAAE,wBAAwB,EAC7B,CAAC,EAAE,OAAO,EACV,CAAC,EAAE,cAAc,GAChB,IAAI,CA6BN"}
@@ -1,6 +1,7 @@
1
1
  import type { ChartOptions, Drawing, DrawingType, Timeframe } from '@forgecharts/types';
2
- import type { ChartOrder } from '../trading/tradingTypes';
2
+ import type { ChartOrder, ChartPosition } from '../trading/tradingTypes';
3
3
  import type { IChart, IChartPlugin } from '../types/IChart';
4
+ import type { ChartBackend } from '../types/ChartBackend';
4
5
  import type { ISeries } from '../types/ISeries';
5
6
  import { TimeScale } from './TimeScale';
6
7
  import { PriceScale } from './PriceScale';
@@ -20,7 +21,7 @@ import { DrawingManager } from '../api/DrawingManager';
20
21
  * series.setData(ohlcvArray);
21
22
  * ```
22
23
  */
23
- export declare class Chart implements IChart {
24
+ export declare class Chart implements ChartBackend {
24
25
  private readonly _container;
25
26
  private readonly _options;
26
27
  private readonly _colors;
@@ -55,14 +56,29 @@ export declare class Chart implements IChart {
55
56
  private _drawingCursorPt;
56
57
  /** When false the crosshair is suppressed (e.g. Arrow/cursor mode). */
57
58
  private _crosshairEnabled;
59
+ private _magnetMode;
58
60
  /** Current set of order lines supplied by TChart for canvas rendering. */
59
61
  private _tradingOrders;
60
62
  /** Called whenever a drawing is committed (created or updated). */
61
63
  onDrawingCommitted: ((drawing: Drawing) => void) | undefined;
64
+ /** Fired when an EXISTING drawing is modified via drag (handle or body move). */
65
+ onDrawingEdited: ((drawing: Drawing) => void) | undefined;
66
+ private _drawingEditDirty;
67
+ /** Ctrl+Z / Ctrl+Y — drawing history is owned by TChart. */
68
+ onUndoRequest: (() => void) | undefined;
69
+ onRedoRequest: (() => void) | undefined;
62
70
  /** Called whenever a drawing is deleted. */
63
71
  onDrawingDeleted: ((id: string) => void) | undefined;
64
72
  /** Called when the user right-clicks a drawing. x/y are canvas-relative pixels. */
65
73
  onDrawingContextMenu: ((id: string, x: number, y: number) => void) | undefined;
74
+ /** Called when the user double-clicks a drawing. */
75
+ onDrawingDoubleClick: ((id: string, x: number, y: number) => void) | undefined;
76
+ /** Called when the user clicks a position overlay label. */
77
+ onPositionClick: ((positionId: string) => void) | undefined;
78
+ /** Called when the user finishes dragging an SL/TP order line to a new price. */
79
+ onOrderDragEnd: ((orderId: string, newPrice: number) => void) | undefined;
80
+ /** Called when the user drags a TP/SL pill off an entry line to create a bracket leg. */
81
+ onTpSlCreate: ((entryOrderId: string, kind: 'tp' | 'sl', price: number) => void) | undefined;
66
82
  /**
67
83
  * Called after every pan or zoom interaction so external code (e.g. TChart)
68
84
  * can check whether the visible time range now extends past the oldest
@@ -96,6 +112,7 @@ export declare class Chart implements IChart {
96
112
  private _renderCrosshairNow;
97
113
  private _renderGrid;
98
114
  setAllDrawingsVisible(v: boolean): void;
115
+ setDrawings(drawings: readonly Drawing[]): void;
99
116
  setIndicatorsVisible(v: boolean): void;
100
117
  private _renderSeries;
101
118
  private _renderOverlay;
@@ -108,6 +125,7 @@ export declare class Chart implements IChart {
108
125
  snapXToBar(x: number): {
109
126
  x: number;
110
127
  time: number;
128
+ closeY?: number;
111
129
  };
112
130
  private _computeViewport;
113
131
  private _onResize;
@@ -124,6 +142,12 @@ export declare class Chart implements IChart {
124
142
  private _renderLastPriceLine;
125
143
  /** Provides the overlay renderer with the latest order list from TChart. */
126
144
  setTradingOrders(orders: ChartOrder[]): void;
145
+ /** Provides the overlay renderer with the latest position list from TChart. */
146
+ setTradingPositions(_positions: ChartPosition[]): void;
147
+ /** Sets contract switch markers for continuous futures roll dates. */
148
+ setContractSwitches(switches: import('@forgecharts/types').ContractSwitch[]): void;
149
+ setPaneLayout(): void;
150
+ setIndicatorResults(): void;
127
151
  /** Renders active order lines above the series but below chart drawings. */
128
152
  private _renderTradingOrders;
129
153
  /** Pans the viewport so the latest bar sits near the right edge. */
@@ -152,6 +176,8 @@ export declare class Chart implements IChart {
152
176
  drawingManager(): DrawingManager;
153
177
  /** Force a redraw on the next animation frame. */
154
178
  markDirty(): void;
179
+ /** Sets the earliest-available-data timestamp for the boundary marker. */
180
+ setDataBoundaryTime(time: number | null): void;
155
181
  /**
156
182
  * Activates a drawing tool. While active, mouse clicks place anchors.
157
183
  * The tool auto-cancels after each commit. Press Escape to cancel mid-placement.
@@ -164,6 +190,7 @@ export declare class Chart implements IChart {
164
190
  * Pass `false` for Arrow/cursor mode; `true` for crosshair / dot / demonstration.
165
191
  */
166
192
  setCrosshairEnabled(enabled: boolean): void;
193
+ setMagnetMode(mode: import('@forgecharts/types').MagnetMode): void;
167
194
  /**
168
195
  * Hides (`true`) or restores (`false`) the native OS cursor.
169
196
  * Call with `true` for dot and demonstration pointer modes whose visuals
@@ -1 +1 @@
1
- {"version":3,"file":"Chart.d.ts","sourceRoot":"","sources":["../../src/core/Chart.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Chart.d.ts","sourceRoot":"","sources":["../../src/core/Chart.ts"],"names":[],"mappings":"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"}
@@ -1 +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"}
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;IAmCzC,uDAAuD;IACvD,IAAI,SAAS,IAAI,SAAS,CAEzB;IAED,yCAAyC;IACzC,IAAI,UAAU,IAAI,UAAU,CAE3B;CACF"}
@@ -16,6 +16,8 @@ export declare class Crosshair {
16
16
  timezone: string | undefined;
17
17
  /** Active timeframe — controls whether time is shown alongside the date. */
18
18
  interval: string;
19
+ /** Optional price precision override (decimal count). */
20
+ pricePrecision: number | undefined;
19
21
  constructor(layer: CanvasLayer, colors: ChartColors, chartOptions: ChartOptions, transform: CoordTransform);
20
22
  update(x: number, y: number, snapTime?: number): void;
21
23
  hide(): void;
@@ -1 +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;CAyBpB"}
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;IACxB,yDAAyD;IACzD,cAAc,EAAE,MAAM,GAAG,SAAS,CAAa;gBAG7C,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;IAKpB,+EAA+E;IAC/E,OAAO,CAAC,WAAW;CAyBpB"}
@@ -9,6 +9,8 @@ import type { OHLCV, PriceField } from '@forgecharts/types';
9
9
  export type IndicatorPoint = {
10
10
  readonly time: number;
11
11
  readonly value: number;
12
+ /** Per-bar color override from a dynamic `color=` expression in plot(). */
13
+ readonly color?: string;
12
14
  };
13
15
  export type MACDPoint = {
14
16
  readonly time: number;
@@ -48,4 +50,17 @@ export declare function computeSMAFromSeries(input: readonly IndicatorPoint[], p
48
50
  export declare function computeEMAFromSeries(input: readonly IndicatorPoint[], period: number): IndicatorPoint[];
49
51
  /** WMA (Weighted Moving Average) over an arbitrary `IndicatorPoint[]` series. */
50
52
  export declare function computeWMAFromSeries(input: readonly IndicatorPoint[], period: number): IndicatorPoint[];
53
+ /**
54
+ * RMA / SMMA (Smoothed Moving Average) over an arbitrary `IndicatorPoint[]` series.
55
+ * Also known as Running Moving Average or Wilder's Smoothing.
56
+ * Formula: RMA[i] = (RMA[i-1] * (period - 1) + value[i]) / period
57
+ * Seeded with an SMA over the first `period` values.
58
+ */
59
+ export declare function computeRMAFromSeries(input: readonly IndicatorPoint[], period: number): IndicatorPoint[];
60
+ /**
61
+ * VWMA (Volume Weighted Moving Average) over an arbitrary `IndicatorPoint[]` series.
62
+ * Requires matching OHLCV bars for volume data.
63
+ * Formula: VWMA = Σ(price[i] * volume[i]) / Σ(volume[i]) over the period window.
64
+ */
65
+ export declare function computeVWMAFromSeries(input: readonly IndicatorPoint[], period: number, bars: readonly OHLCV[]): IndicatorPoint[];
51
66
  //# sourceMappingURL=IndicatorEngine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IndicatorEngine.d.ts","sourceRoot":"","sources":["../../src/core/IndicatorEngine.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAI5D,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,CAAC;AAqBF,mDAAmD;AACnD,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc,EAAE,CAWnF;AAED,wDAAwD;AACxD,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc,EAAE,CAInF;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,KAAK,EAAE,EAAE,MAAM,SAAK,GAAG,cAAc,EAAE,CAiChF;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,SAAS,KAAK,EAAE,EACtB,UAAU,SAAK,EACf,UAAU,SAAK,EACf,YAAY,SAAI,GACf,SAAS,EAAE,CAwBb;AAED,yDAAyD;AACzD,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,KAAK,EAAE,GAAG,cAAc,EAAE,CAEtE;AAID,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,CAWlE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,SAAS,cAAc,EAAE,EAChC,MAAM,EAAE,MAAM,GACb,cAAc,EAAE,CAWlB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,SAAS,cAAc,EAAE,EAChC,MAAM,EAAE,MAAM,GACb,cAAc,EAAE,CAWlB;AAED,iFAAiF;AACjF,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,SAAS,cAAc,EAAE,EAChC,MAAM,EAAE,MAAM,GACb,cAAc,EAAE,CAUlB"}
1
+ {"version":3,"file":"IndicatorEngine.d.ts","sourceRoot":"","sources":["../../src/core/IndicatorEngine.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAI5D,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,2EAA2E;IAC3E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,CAAC;AAqBF,mDAAmD;AACnD,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc,EAAE,CAWnF;AAED,wDAAwD;AACxD,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc,EAAE,CAInF;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,KAAK,EAAE,EAAE,MAAM,SAAK,GAAG,cAAc,EAAE,CAiChF;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,SAAS,KAAK,EAAE,EACtB,UAAU,SAAK,EACf,UAAU,SAAK,EACf,YAAY,SAAI,GACf,SAAS,EAAE,CAwBb;AAED,yDAAyD;AACzD,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,KAAK,EAAE,GAAG,cAAc,EAAE,CAEtE;AAID,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,CAYlE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,SAAS,cAAc,EAAE,EAChC,MAAM,EAAE,MAAM,GACb,cAAc,EAAE,CAWlB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,SAAS,cAAc,EAAE,EAChC,MAAM,EAAE,MAAM,GACb,cAAc,EAAE,CAWlB;AAED,iFAAiF;AACjF,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,SAAS,cAAc,EAAE,EAChC,MAAM,EAAE,MAAM,GACb,cAAc,EAAE,CAUlB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,SAAS,cAAc,EAAE,EAChC,MAAM,EAAE,MAAM,GACb,cAAc,EAAE,CAYlB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,SAAS,cAAc,EAAE,EAChC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,SAAS,KAAK,EAAE,GACrB,cAAc,EAAE,CAelB"}
@@ -37,6 +37,8 @@ export type InteractionHandlers = {
37
37
  onPriceScaleZoom?: (factor: number, originY: number) => void;
38
38
  /** User dragged up/down on the price axis strip — drag down expands, up compresses. */
39
39
  onPriceAxisDrag?: (dy: number) => void;
40
+ /** User dragged left/right on the time axis strip — zoom time, anchored at right. */
41
+ onTimeAxisDrag?: (dx: number) => void;
40
42
  /** Called when the user clicks while a drawing tool is active. */
41
43
  onDrawClick?: (x: number, y: number) => void;
42
44
  /** Called on every mousemove while a drawing tool is active (preview). */
@@ -53,6 +55,20 @@ export type InteractionHandlers = {
53
55
  onBodyMoveMove?: (id: string, dx: number, dy: number) => void;
54
56
  /** Body move released. */
55
57
  onBodyMoveEnd?: (id: string) => void;
58
+ /** Double-click on a drawing — open properties dialog. */
59
+ onDoubleClickDrawing?: (id: string, x: number, y: number) => void;
60
+ /** Called when the user starts dragging a trading order line (SL/TP). */
61
+ onOrderLineDragStart?: (orderId: string) => void;
62
+ /** Called on every mousemove during an order line drag. y is canvas-relative. */
63
+ onOrderLineDragMove?: (orderId: string, y: number) => void;
64
+ /** Called when the user releases an order line drag. y is canvas-relative. */
65
+ onOrderLineDragEnd?: (orderId: string, y: number) => void;
66
+ /** Called when the user starts dragging a TP/SL pill label. */
67
+ onPillDragStart?: (entryOrderId: string, kind: 'tp' | 'sl') => void;
68
+ /** Called on every mousemove during a pill drag. y is canvas-relative. */
69
+ onPillDragMove?: (y: number) => void;
70
+ /** Called when the user releases a pill drag. y is canvas-relative. */
71
+ onPillDragEnd?: (y: number) => void;
56
72
  };
57
73
  export type InteractionOptions = {
58
74
  /** Allow click-drag panning. Defaults to `true`. */
@@ -131,17 +147,26 @@ export declare class InteractionManager {
131
147
  private _hasMoved;
132
148
  /** True while the user is dragging on the price axis strip. */
133
149
  private _priceAxisDragging;
150
+ /** True while the user is dragging on the time axis strip. */
151
+ private _timeAxisDragging;
152
+ /** Which axis zone the mouse is currently over ('none' when over the plot area). */
153
+ private _axisHover;
134
154
  private _selectedDrawingId;
135
155
  private _drawingMode;
136
156
  /** True when the native cursor should be hidden (crosshair / dot / demonstration). */
137
157
  private _hideCursor;
138
- /** Sets cursor style, respecting _hideCursoraxis resize cursors always show
139
- * even in crosshair/dot/demonstration mode so the user knows they can drag the axes. */
158
+ /** Optional hit-test callback for contract switch icons returns true if (x,y) is over an icon. */
159
+ private _contractSwitchHitTest;
160
+ /** Sets cursor style, respecting _hideCursor — axis resize cursors and pointer
161
+ * (hand) always show even in crosshair/dot/demonstration mode so the user knows
162
+ * they can interact with axes and clickable elements (drawings, candles, indicators). */
140
163
  private _setCursor;
141
164
  /** Set when a drawing is committed mid-mousedown; prevents the paired mouseup from auto-selecting it. */
142
165
  private _suppressNextClick;
143
166
  private _handleDragId;
144
167
  private _handleDragIdx;
168
+ /** Order line currently being dragged (SL/TP). */
169
+ private _orderLineDragId;
145
170
  private _bodyMoveId;
146
171
  private _bodyMovePrevX;
147
172
  private _bodyMovePrevY;
@@ -168,12 +193,32 @@ export declare class InteractionManager {
168
193
  }[]): void;
169
194
  /** Id of the currently selected drawing, or `null`. */
170
195
  get selectedDrawingId(): string | null;
196
+ /** Which axis the pointer is currently hovering: `'price'`, `'time'`, or `'none'`. */
197
+ get axisHover(): 'none' | 'price' | 'time';
171
198
  /** Programmatically deselect (e.g. on symbol / timeframe change). */
172
199
  clearSelection(): void;
173
200
  /**
174
201
  * Switches between drawing-tool mode (crosshair cursor, click fires onDrawClick)
175
202
  * and normal cursor mode. Also resets any in-progress drag state.
176
203
  */
204
+ /** Register a hit-test function for contract switch icons.
205
+ * When the pointer is over an icon the cursor becomes 'pointer' (even in crosshair mode). */
206
+ setContractSwitchHitTest(fn: ((x: number, y: number) => boolean) | null): void;
207
+ /** Register a hit-test function for draggable order lines (SL/TP).
208
+ * Returns the order ID if the point hits a draggable order, or null. */
209
+ private _orderLineHitTest;
210
+ setOrderLineHitTest(fn: ((x: number, y: number) => string | null) | null): void;
211
+ /** Register a hit-test function for TP/SL pill labels on entry lines. */
212
+ private _pillHitTest;
213
+ setPillHitTest(fn: ((x: number, y: number) => {
214
+ kind: 'tp' | 'sl';
215
+ entryOrderId: string;
216
+ entrySide: 'buy' | 'sell';
217
+ } | null) | null): void;
218
+ /** Whether a pill is currently being dragged. */
219
+ private _pillDragging;
220
+ /** True while the left mouse button is held down. */
221
+ private _mouseIsDown;
177
222
  /** Hides (`true`) or shows (`false`) the native OS cursor. Used by crosshair, dot, and demonstration modes. */
178
223
  setHideCursor(hidden: boolean): void;
179
224
  setDrawingMode(active: boolean): void;
@@ -185,6 +230,12 @@ export declare class InteractionManager {
185
230
  private _onMouseMove;
186
231
  private _onMouseUp;
187
232
  private _onMouseLeave;
233
+ private _startDocumentDrag;
234
+ private _stopDocumentDrag;
235
+ /** Convert a document-level MouseEvent to coordinates relative to our element. */
236
+ private _toLocalCoords;
237
+ private _onDocumentMouseMove;
238
+ private _onDocumentMouseUp;
188
239
  private _onWheel;
189
240
  private _onDblClick;
190
241
  private _onContextMenu;
@@ -196,6 +247,8 @@ export declare class InteractionManager {
196
247
  private _hitTestIndicators;
197
248
  private _hitTestDrawings;
198
249
  private _distToDrawing;
250
+ /** Where a ray from (px,py) along (dx,dy) exits the plot — mirrors the renderers' rayExit. */
251
+ private _rayExitPt;
199
252
  /**
200
253
  * Returns the nearest visible bar to x-coordinate `mx`, or `null` if no bar
201
254
  * falls within half a bar-width.
@@ -1 +1 @@
1
- {"version":3,"file":"InteractionManager.d.ts","sourceRoot":"","sources":["../../src/core/InteractionManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InteractionManager.d.ts","sourceRoot":"","sources":["../../src/core/InteractionManager.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,8 @@ export declare class PriceScale {
22
22
  */
23
23
  yToPrice(y: number, canvasHeight: number): number;
24
24
  render(ctx: CanvasRenderingContext2D, width: number, height: number): void;
25
+ /** Optional price precision override (decimal count). */
26
+ pricePrecision: number | undefined;
25
27
  private _formatPrice;
26
28
  }
27
29
  //# sourceMappingURL=PriceScale.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PriceScale.d.ts","sourceRoot":"","sources":["../../src/core/PriceScale.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAErF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAKjD;;;GAGG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,aAAa,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8B;gBAE3C,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,GAAE,iBAAsB;IAcpF,IAAI,YAAY,IAAI,UAAU,CAE7B;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAIxC;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM;IAgBrD;;OAEG;IACH,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM;IAMjD,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAwD1E,OAAO,CAAC,YAAY;CAKrB"}
1
+ {"version":3,"file":"PriceScale.d.ts","sourceRoot":"","sources":["../../src/core/PriceScale.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAErF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAKjD;;;GAGG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,aAAa,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8B;gBAE3C,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,GAAE,iBAAsB;IAcpF,IAAI,YAAY,IAAI,UAAU,CAE7B;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAIxC;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM;IAgBrD;;OAEG;IACH,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM;IAMjD,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IA2D1E,yDAAyD;IACzD,cAAc,EAAE,MAAM,GAAG,SAAS,CAAa;IAE/C,OAAO,CAAC,YAAY;CAQrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"Series.d.ts","sourceRoot":"","sources":["../../src/core/Series.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAMhD;;;GAGG;AACH,qBAAa,MAAO,YAAW,OAAO;IACpC,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IAEtC;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;gBAEf,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW;IAOvD,OAAO,CAAC,IAAI,EAAE,SAAS,KAAK,EAAE,GAAG,IAAI;IAKrC;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI;IAiCxB,IAAI,IAAI,SAAS,KAAK,EAAE;IAIxB,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI;IAInD,OAAO,IAAI,aAAa;IAMxB,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI;IAa3E,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,MAAM,CAAC,eAAe;CAiB/B"}
1
+ {"version":3,"file":"Series.d.ts","sourceRoot":"","sources":["../../src/core/Series.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAMhD;;;GAGG;AACH,qBAAa,MAAO,YAAW,OAAO;IACpC,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IAEtC;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;gBAEf,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW;IAOvD,OAAO,CAAC,IAAI,EAAE,SAAS,KAAK,EAAE,GAAG,IAAI;IAKrC;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI;IAuCxB,IAAI,IAAI,SAAS,KAAK,EAAE;IAIxB,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI;IAInD,OAAO,IAAI,aAAa;IAMxB,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI;IAa3E,OAAO,CAAC,eAAe;IA0BvB,OAAO,CAAC,MAAM,CAAC,eAAe;CAiB/B"}
@@ -1,9 +1,14 @@
1
- import type { TimeRange, ChartColors, TimeScaleOptions, Timeframe } from '@forgecharts/types';
1
+ import type { TimeRange, ChartColors, TimeScaleOptions, Timeframe, ContractSwitch } from '@forgecharts/types';
2
2
  import { computeTicks } from '@forgecharts/utils';
3
3
  import type { CanvasLayer } from './CanvasLayer';
4
4
  /**
5
5
  * TimeScale — manages the horizontal time axis.
6
6
  * Handles pan/zoom of the visible time range and renders tick labels.
7
+ *
8
+ * When bar timestamps are provided via `setBarTimestamps()`, the scale
9
+ * switches to **index-based** mapping: each bar occupies equal horizontal
10
+ * space regardless of the time gap between adjacent bars. This removes
11
+ * weekend, holiday, and overnight session gaps from the chart.
7
12
  */
8
13
  export declare class TimeScale {
9
14
  private _visibleRange;
@@ -13,29 +18,75 @@ export declare class TimeScale {
13
18
  private _activeTimeframe;
14
19
  /** IANA timezone for axis labels. Falls back to UTC when unset. */
15
20
  timezone: string | undefined;
21
+ /** Unix seconds timestamp of the earliest available bar (set when no more history). */
22
+ dataBoundaryTime: number | null;
23
+ /** Contract switch markers for continuous futures — rendered as vertical dashed lines. */
24
+ contractSwitches: ContractSwitch[];
25
+ /** Index of the currently hovered contract switch marker (-1 = none). */
26
+ hoveredSwitchIdx: number;
27
+ /** Sorted array of bar timestamps. When non-empty, enables gap removal. */
28
+ private _barTimes;
29
+ /** Cached median interval between adjacent bars (seconds). Used to extrapolate
30
+ * indices beyond the first/last bar so the viewport can show empty space. */
31
+ private _barInterval;
16
32
  constructor(layer: CanvasLayer, colors: ChartColors, options?: TimeScaleOptions);
17
33
  get visibleRange(): TimeRange;
18
34
  get height(): number;
19
35
  get activeTimeframe(): Timeframe;
36
+ /** The sorted bar-timestamp array, or empty when in linear (no gap-removal) mode. */
37
+ get barTimes(): readonly number[];
20
38
  setVisibleRange(range: TimeRange): void;
21
39
  setTimeframe(tf: Timeframe): void;
40
+ /**
41
+ * Provide the sorted array of bar timestamps for the current series.
42
+ * Enables ordinal (index-based) time mapping which removes all gaps.
43
+ */
44
+ setBarTimestamps(times: number[]): void;
45
+ /**
46
+ * Converts a Unix timestamp to a fractional bar index.
47
+ * Extrapolates linearly beyond the first/last bar using the median bar
48
+ * interval so the viewport can extend past the data (empty space).
49
+ */
50
+ timeToIndex(time: number): number;
51
+ /**
52
+ * Converts a fractional bar index back to a Unix timestamp.
53
+ * Extrapolates linearly beyond the first/last bar using the median
54
+ * bar interval so the viewport can extend past the data.
55
+ */
56
+ indexToTime(idx: number): number;
57
+ /** True when ordinal mapping is active (bar timestamps available). */
58
+ get isIndexBased(): boolean;
22
59
  /**
23
60
  * Converts a Unix timestamp to a canvas X coordinate.
61
+ * Uses ordinal (index-based) mapping when bar timestamps are available,
62
+ * removing all time gaps. Falls back to linear mapping otherwise.
24
63
  */
25
64
  timeToX(time: number, canvasWidth: number): number;
26
65
  /**
27
66
  * Converts a canvas X coordinate back to a Unix timestamp.
67
+ * Uses ordinal mapping when bar timestamps are available.
28
68
  */
29
69
  xToTime(x: number, canvasWidth: number): number;
30
70
  /**
31
71
  * Zooms around a pivot X coordinate by a scale factor.
72
+ * In ordinal mode, zoom is applied uniformly in index space.
32
73
  */
33
74
  zoom(factor: number, pivotX: number, canvasWidth?: number): void;
34
75
  /**
35
76
  * Scrolls by a delta in seconds.
36
77
  */
37
78
  scroll(deltaSeconds: number): void;
79
+ /**
80
+ * Scrolls by a delta in bar indices. Converts the index shift to
81
+ * timestamps and adjusts the visible range. Used by pan() in ordinal mode.
82
+ */
83
+ scrollByIndex(deltaIndex: number): void;
38
84
  render(ctx: CanvasRenderingContext2D, width: number, height: number): void;
85
+ /**
86
+ * Test whether a pixel coordinate hits a contract switch icon.
87
+ * Returns the switch index or -1 if no hit.
88
+ */
89
+ hitTestContractSwitch(px: number, py: number, canvasWidth: number, canvasHeight: number): number;
39
90
  private _priceScaleWidth;
40
91
  private _niceTimeStep;
41
92
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TimeScale.d.ts","sourceRoot":"","sources":["../../src/core/TimeScale.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC9F,OAAO,EAAY,YAAY,EAAyB,MAAM,oBAAoB,CAAC;AAEnF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAIjD;;;GAGG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,aAAa,CAAY;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IACtD,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,mEAAmE;IACnE,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAa;gBAE7B,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,GAAE,gBAAqB;IAenF,IAAI,YAAY,IAAI,SAAS,CAE5B;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,eAAe,IAAI,SAAS,CAE/B;IAED,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAIvC,YAAY,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;IAIjC;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM;IAKlD;;OAEG;IACH,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM;IAK/C;;OAEG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAE,MAA0B,GAAG,IAAI;IASnF;;OAEG;IACH,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAOlC,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IA0D1E,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,aAAa;CAsBtB;AAGD,OAAO,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"TimeScale.d.ts","sourceRoot":"","sources":["../../src/core/TimeScale.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC9G,OAAO,EAAY,YAAY,EAAyB,MAAM,oBAAoB,CAAC;AAEnF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAIjD;;;;;;;;GAQG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,aAAa,CAAY;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IACtD,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,mEAAmE;IACnE,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAa;IACzC,uFAAuF;IACvF,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAQ;IACvC,0FAA0F;IAC1F,gBAAgB,EAAE,cAAc,EAAE,CAAM;IACxC,yEAAyE;IACzE,gBAAgB,SAAM;IAGtB,4EAA4E;IAC5E,OAAO,CAAC,SAAS,CAAgB;IACjC;kFAC8E;IAC9E,OAAO,CAAC,YAAY,CAAK;gBAEb,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,GAAE,gBAAqB;IAenF,IAAI,YAAY,IAAI,SAAS,CAE5B;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,eAAe,IAAI,SAAS,CAE/B;IAED,qFAAqF;IACrF,IAAI,QAAQ,IAAI,SAAS,MAAM,EAAE,CAEhC;IAED,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAIvC,YAAY,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;IAIjC;;;OAGG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAkBvC;;;;OAIG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IA4BjC;;;;OAIG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAiBhC,sEAAsE;IACtE,IAAI,YAAY,IAAI,OAAO,CAE1B;IAID;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM;IAYlD;;;OAGG;IACH,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM;IAY/C;;;OAGG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAE,MAA0B,GAAG,IAAI;IA0BnF;;OAEG;IACH,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAOlC;;;OAGG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IASvC,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IA8K1E;;;OAGG;IACH,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM;IAoBhG,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,aAAa;CAsBtB;AAGD,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * indicatorStyles — default style configs and helpers for indicator rendering.
3
+ *
4
+ * Each indicator type has a set of named "lines" (line1, line2, line3) and
5
+ * optional fills (fill1). This module defines the defaults and provides a
6
+ * helper to resolve user overrides against those defaults.
7
+ */
8
+ import type { IndicatorType, IndicatorStyleConfig, LineStyle } from '@forgecharts/types';
9
+ /**
10
+ * Describes which style slots an indicator type uses, and their display labels.
11
+ * Used by the Style tab in the config dialog.
12
+ */
13
+ export type StyleSlotDef = {
14
+ key: 'line1' | 'line2' | 'line3' | 'line4' | 'line5' | 'fill1' | 'fill2';
15
+ label: string;
16
+ kind: 'line' | 'fill';
17
+ };
18
+ export declare const STYLE_SLOTS: Record<string, StyleSlotDef[]>;
19
+ /**
20
+ * Returns the fully-resolved style for an indicator, merging user overrides
21
+ * over the defaults for the given type.
22
+ */
23
+ export declare function resolveStyle(type: IndicatorType, userStyle?: IndicatorStyleConfig): IndicatorStyleConfig;
24
+ /**
25
+ * Get the default style for an indicator type (no user overrides).
26
+ */
27
+ export declare function getDefaultStyle(type: IndicatorType): IndicatorStyleConfig;
28
+ /**
29
+ * Get the style slot definitions for a given indicator type.
30
+ * Returns empty array for unknown types or scripts.
31
+ */
32
+ export declare function getStyleSlots(type: string): StyleSlotDef[];
33
+ /**
34
+ * Convert a LineStyle to a canvas setLineDash() argument.
35
+ */
36
+ export declare function lineStyleToDash(style: LineStyle | undefined): number[];
37
+ //# sourceMappingURL=indicatorStyles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indicatorStyles.d.ts","sourceRoot":"","sources":["../../src/core/indicatorStyles.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,oBAAoB,EAGpB,SAAS,EACV,MAAM,oBAAoB,CAAC;AAI5B;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,GAAG,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;IACzE,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,CA+BtD,CAAC;AAqDF;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,aAAa,EACnB,SAAS,CAAC,EAAE,oBAAoB,GAC/B,oBAAoB,CAmBtB;AAsBD;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,oBAAoB,CAEzE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE,CAE1D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,EAAE,CAOtE"}
@@ -10,6 +10,8 @@ export type ConnectorCallbacks = {
10
10
  onError(symbol: string, interval: Timeframe, error: string): void;
11
11
  /** Called on every real-time tick after the series is updated. Optional. */
12
12
  onUpdate?: (bar: OHLCV) => void;
13
+ /** Called when there is no more historical data to load (oldest bar reached). */
14
+ onNoMoreHistory?: (oldestTime: number) => void;
13
15
  };
14
16
  /**
15
17
  * DatafeedConnector wires an {@link IDatafeed} to an {@link ISeries}.
@@ -40,6 +42,8 @@ export declare class DatafeedConnector {
40
42
  private readonly _datafeed;
41
43
  private readonly _series;
42
44
  private readonly _cb;
45
+ /** Shared across all connect()/reconnect() calls for the lifetime of this connector. */
46
+ private readonly _prefetchCache;
43
47
  /**
44
48
  * UID of the outstanding subscription.
45
49
  * `null` means nothing is subscribed / all responses for older UIDs are stale.
@@ -51,6 +55,24 @@ export declare class DatafeedConnector {
51
55
  private _isLoadingMore;
52
56
  /** True once the datafeed returned 0 bars for a backwards page — no point fetching older. */
53
57
  private _noMoreHistory;
58
+ /** Consecutive retries when server signals a background fill is in progress. */
59
+ private _fillingRetries;
60
+ /**
61
+ * Cursor for scroll-left pagination (Unix seconds).
62
+ * Advances backward when empty pages are returned so weekend/holiday gaps
63
+ * (e.g. CME ~49h weekend) are automatically skipped. Null = use engine's oldest bar.
64
+ */
65
+ private _loadMoreCursor;
66
+ /**
67
+ * Consecutive empty scroll-left pages with no bars and no filling flag.
68
+ * Reset to 0 when bars are found. After MAX_EMPTY_PAGES we give up.
69
+ */
70
+ private _emptyPageStreak;
71
+ /**
72
+ * Safety timer: clears `batchPending` if bar_batch never arrives within 60 s.
73
+ * Prevents the chart from staying blank when a provider doesn't fire onHistoricalReady.
74
+ */
75
+ private _batchSafetyTimer;
54
76
  constructor(datafeed: IDatafeed, series: ISeries, callbacks: ConnectorCallbacks);
55
77
  /**
56
78
  * Loads historical bars then subscribes for real-time updates.
@@ -81,9 +103,14 @@ export declare class DatafeedConnector {
81
103
  * debounced by the `_isLoadingMore` flag and stops permanently once the
82
104
  * datafeed signals no more history (`_noMoreHistory = true`).
83
105
  *
106
+ * Empty pages caused by weekend/holiday market closures (e.g. CME ~49h gap)
107
+ * are automatically skipped: the internal cursor advances backward up to
108
+ * MAX_EMPTY_PAGES times before concluding there is genuinely no more data.
109
+ *
84
110
  * The series is updated automatically via the engine's `onResync` callback.
85
111
  */
86
112
  loadMoreHistory(symbol: string, timeframe: Timeframe): void;
113
+ private _clearBatchTimer;
87
114
  private _cancelActive;
88
115
  }
89
116
  //# sourceMappingURL=DatafeedConnector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DatafeedConnector.d.ts","sourceRoot":"","sources":["../../src/datafeed/DatafeedConnector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAgDhD;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,GAAG,IAAI,CAAC;IACrD,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACnE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAClE,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;CACjC,CAAC;AAIF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAqB;IAEzC;;;OAGG;IACH,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,UAAU,CAAS;IAE3B,oEAAoE;IACpE,OAAO,CAAC,cAAc,CAAS;IAC/B,6FAA6F;IAC7F,OAAO,CAAC,cAAc,CAAS;gBAEnB,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,kBAAkB;IAQ/E;;;;OAIG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI;IA2EnD;;;;OAIG;IACH,UAAU,IAAI,IAAI;IAIlB;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI;IAKrD;;;;OAIG;IACH,OAAO,IAAI,IAAI;IAOf;;;;;;;OAOG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI;IAgC3D,OAAO,CAAC,aAAa;CAgBtB"}
1
+ {"version":3,"file":"DatafeedConnector.d.ts","sourceRoot":"","sources":["../../src/datafeed/DatafeedConnector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAiDhD;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,GAAG,IAAI,CAAC;IACrD,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACnE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAClE,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;IAChC,iFAAiF;IACjF,eAAe,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;CAChD,CAAC;AAIF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAqB;IACzC,wFAAwF;IACxF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0B;IAEzD;;;OAGG;IACH,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,UAAU,CAAS;IAE3B,oEAAoE;IACpE,OAAO,CAAC,cAAc,CAAS;IAC/B,6FAA6F;IAC7F,OAAO,CAAC,cAAc,CAAS;IAC/B,gFAAgF;IAChF,OAAO,CAAC,eAAe,CAAK;IAC5B;;;;OAIG;IACH,OAAO,CAAC,eAAe,CAAuB;IAC9C;;;OAGG;IACH,OAAO,CAAC,gBAAgB,CAAa;IAErC;;;OAGG;IACH,OAAO,CAAC,iBAAiB,CAA8C;gBAE3D,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,kBAAkB;IAQ/E;;;;OAIG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI;IA+JnD;;;;OAIG;IACH,UAAU,IAAI,IAAI;IAIlB;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI;IAKrD;;;;OAIG;IACH,OAAO,IAAI,IAAI;IAOf;;;;;;;;;;;OAWG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI;IA0G3D,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,aAAa;CAoBtB"}
@@ -197,6 +197,8 @@ export declare class CandleEngine {
197
197
  * @param rawBars Historical bars from the REST endpoint, oldest → newest.
198
198
  */
199
199
  prependHistory(rawBars: RawOHLCV[]): void;
200
+ /** True when the retained-bar ceiling is reached — pagination should stop. */
201
+ atCapacity(): boolean;
200
202
  /**
201
203
  * Clear all state.
202
204
  * Call before switching symbol or timeframe, or on a hard disconnect.
@@ -1 +1 @@
1
- {"version":3,"file":"CandleEngine.d.ts","sourceRoot":"","sources":["../../src/engine/CandleEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CandleEngine.d.ts","sourceRoot":"","sources":["../../src/engine/CandleEngine.ts"],"names":[],"mappings":"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"}