@tradecanvas/core 1.3.0 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (439) hide show
  1. package/dist/axis/GridRenderer.d.ts.map +1 -1
  2. package/dist/axis/PriceAxis.d.ts +10 -1
  3. package/dist/axis/PriceAxis.d.ts.map +1 -1
  4. package/dist/axis/TimeAxis.d.ts +9 -4
  5. package/dist/axis/TimeAxis.d.ts.map +1 -1
  6. package/dist/charts/AreaRenderer.d.ts.map +1 -1
  7. package/dist/charts/BarRenderer.d.ts.map +1 -1
  8. package/dist/charts/BaselineRenderer.d.ts.map +1 -1
  9. package/dist/charts/CandlestickRenderer.d.ts.map +1 -1
  10. package/dist/charts/CompareRenderer.d.ts +21 -4
  11. package/dist/charts/CompareRenderer.d.ts.map +1 -1
  12. package/dist/charts/EquivolumeRenderer.d.ts.map +1 -1
  13. package/dist/charts/HLCAreaRenderer.d.ts.map +1 -1
  14. package/dist/charts/HiLoRenderer.d.ts +14 -0
  15. package/dist/charts/HiLoRenderer.d.ts.map +1 -0
  16. package/dist/charts/HollowCandleRenderer.d.ts.map +1 -1
  17. package/dist/charts/KagiRenderer.d.ts.map +1 -1
  18. package/dist/charts/LineRenderer.d.ts.map +1 -1
  19. package/dist/charts/LineWithMarkersRenderer.d.ts.map +1 -1
  20. package/dist/charts/MarketProfileRenderer.d.ts.map +1 -1
  21. package/dist/charts/PeriodLevelsRenderer.d.ts.map +1 -1
  22. package/dist/charts/PivotMarkersRenderer.d.ts.map +1 -1
  23. package/dist/charts/PointAndFigureRenderer.d.ts.map +1 -1
  24. package/dist/charts/RenkoRenderer.d.ts.map +1 -1
  25. package/dist/charts/StepLineRenderer.d.ts.map +1 -1
  26. package/dist/charts/VolumeCandleRenderer.d.ts.map +1 -1
  27. package/dist/charts/VolumeProfileRenderer.d.ts.map +1 -1
  28. package/dist/charts/VolumeRenderer.d.ts.map +1 -1
  29. package/dist/charts/denseBars.d.ts +28 -0
  30. package/dist/charts/denseBars.d.ts.map +1 -0
  31. package/dist/charts/index.d.ts +3 -0
  32. package/dist/charts/index.d.ts.map +1 -1
  33. package/dist/charts/transforms/kagi.d.ts +3 -2
  34. package/dist/charts/transforms/kagi.d.ts.map +1 -1
  35. package/dist/charts/transforms/renko.d.ts.map +1 -1
  36. package/dist/drawings/DrawingBase.d.ts +30 -1
  37. package/dist/drawings/DrawingBase.d.ts.map +1 -1
  38. package/dist/drawings/DrawingCreator.d.ts +51 -0
  39. package/dist/drawings/DrawingCreator.d.ts.map +1 -0
  40. package/dist/drawings/DrawingDrag.d.ts +36 -0
  41. package/dist/drawings/DrawingDrag.d.ts.map +1 -0
  42. package/dist/drawings/DrawingManager.d.ts +176 -32
  43. package/dist/drawings/DrawingManager.d.ts.map +1 -1
  44. package/dist/drawings/DrawingSelection.d.ts +28 -0
  45. package/dist/drawings/DrawingSelection.d.ts.map +1 -0
  46. package/dist/drawings/drawingHistory.d.ts +12 -0
  47. package/dist/drawings/drawingHistory.d.ts.map +1 -0
  48. package/dist/drawings/drawingShortcuts.d.ts +11 -0
  49. package/dist/drawings/drawingShortcuts.d.ts.map +1 -0
  50. package/dist/drawings/drawingState.d.ts +29 -0
  51. package/dist/drawings/drawingState.d.ts.map +1 -0
  52. package/dist/drawings/index.d.ts +2 -1
  53. package/dist/drawings/index.d.ts.map +1 -1
  54. package/dist/drawings/magnetSnap.d.ts +12 -0
  55. package/dist/drawings/magnetSnap.d.ts.map +1 -0
  56. package/dist/drawings/tools/AnchoredVWAP.d.ts.map +1 -1
  57. package/dist/drawings/tools/Circle.d.ts +1 -0
  58. package/dist/drawings/tools/Circle.d.ts.map +1 -1
  59. package/dist/drawings/tools/ElliottWave.d.ts +128 -3
  60. package/dist/drawings/tools/ElliottWave.d.ts.map +1 -1
  61. package/dist/drawings/tools/Ellipse.d.ts +1 -0
  62. package/dist/drawings/tools/Ellipse.d.ts.map +1 -1
  63. package/dist/drawings/tools/ExtendedLine.d.ts +1 -0
  64. package/dist/drawings/tools/ExtendedLine.d.ts.map +1 -1
  65. package/dist/drawings/tools/FibChannel.d.ts +7 -0
  66. package/dist/drawings/tools/FibChannel.d.ts.map +1 -1
  67. package/dist/drawings/tools/FibExtension.d.ts +20 -0
  68. package/dist/drawings/tools/FibExtension.d.ts.map +1 -1
  69. package/dist/drawings/tools/FibRetracement.d.ts +28 -0
  70. package/dist/drawings/tools/FibRetracement.d.ts.map +1 -1
  71. package/dist/drawings/tools/FibSpeedResistanceFan.d.ts +9 -1
  72. package/dist/drawings/tools/FibSpeedResistanceFan.d.ts.map +1 -1
  73. package/dist/drawings/tools/FibTimeZones.d.ts +16 -0
  74. package/dist/drawings/tools/FibTimeZones.d.ts.map +1 -1
  75. package/dist/drawings/tools/HorizontalLine.d.ts +1 -0
  76. package/dist/drawings/tools/HorizontalLine.d.ts.map +1 -1
  77. package/dist/drawings/tools/HorizontalRay.d.ts +1 -0
  78. package/dist/drawings/tools/HorizontalRay.d.ts.map +1 -1
  79. package/dist/drawings/tools/Measure.d.ts.map +1 -1
  80. package/dist/drawings/tools/ParallelChannel.d.ts +12 -0
  81. package/dist/drawings/tools/ParallelChannel.d.ts.map +1 -1
  82. package/dist/drawings/tools/PriceLabel.d.ts +1 -0
  83. package/dist/drawings/tools/PriceLabel.d.ts.map +1 -1
  84. package/dist/drawings/tools/PriceRange.d.ts.map +1 -1
  85. package/dist/drawings/tools/Ray.d.ts +1 -0
  86. package/dist/drawings/tools/Ray.d.ts.map +1 -1
  87. package/dist/drawings/tools/Rectangle.d.ts +1 -0
  88. package/dist/drawings/tools/Rectangle.d.ts.map +1 -1
  89. package/dist/drawings/tools/RegressionChannel.d.ts +1 -0
  90. package/dist/drawings/tools/RegressionChannel.d.ts.map +1 -1
  91. package/dist/drawings/tools/RiskReward.d.ts +59 -6
  92. package/dist/drawings/tools/RiskReward.d.ts.map +1 -1
  93. package/dist/drawings/tools/TextAnnotation.d.ts +1 -0
  94. package/dist/drawings/tools/TextAnnotation.d.ts.map +1 -1
  95. package/dist/drawings/tools/TrendLine.d.ts +3 -0
  96. package/dist/drawings/tools/TrendLine.d.ts.map +1 -1
  97. package/dist/drawings/tools/Triangle.d.ts +1 -0
  98. package/dist/drawings/tools/Triangle.d.ts.map +1 -1
  99. package/dist/drawings/tools/VolumeProfileRange.d.ts +1 -0
  100. package/dist/drawings/tools/VolumeProfileRange.d.ts.map +1 -1
  101. package/dist/drawings/tools/annotations.d.ts +113 -0
  102. package/dist/drawings/tools/annotations.d.ts.map +1 -0
  103. package/dist/drawings/tools/cycles.d.ts +37 -0
  104. package/dist/drawings/tools/cycles.d.ts.map +1 -0
  105. package/dist/drawings/tools/fibGeometry.d.ts +202 -0
  106. package/dist/drawings/tools/fibGeometry.d.ts.map +1 -0
  107. package/dist/drawings/tools/forecast.d.ts +85 -0
  108. package/dist/drawings/tools/forecast.d.ts.map +1 -0
  109. package/dist/drawings/tools/freehand.d.ts +81 -0
  110. package/dist/drawings/tools/freehand.d.ts.map +1 -0
  111. package/dist/drawings/tools/index.d.ts +7 -0
  112. package/dist/drawings/tools/index.d.ts.map +1 -1
  113. package/dist/drawings/tools/labels.d.ts +6 -3
  114. package/dist/drawings/tools/labels.d.ts.map +1 -1
  115. package/dist/drawings/tools/options.d.ts +8 -0
  116. package/dist/drawings/tools/options.d.ts.map +1 -0
  117. package/dist/drawings/tools/patterns.d.ts +32 -0
  118. package/dist/drawings/tools/patterns.d.ts.map +1 -1
  119. package/dist/drawings/tools/priceLevels.d.ts +29 -0
  120. package/dist/drawings/tools/priceLevels.d.ts.map +1 -0
  121. package/dist/drawings/tools/textBox.d.ts +39 -0
  122. package/dist/drawings/tools/textBox.d.ts.map +1 -0
  123. package/dist/engine/RenderEngine.d.ts +25 -0
  124. package/dist/engine/RenderEngine.d.ts.map +1 -1
  125. package/dist/events/EventBus.d.ts +2 -0
  126. package/dist/events/EventBus.d.ts.map +1 -1
  127. package/dist/features/AlertManager.d.ts +117 -6
  128. package/dist/features/AlertManager.d.ts.map +1 -1
  129. package/dist/features/ChartState.d.ts +36 -12
  130. package/dist/features/ChartState.d.ts.map +1 -1
  131. package/dist/features/DataExporter.d.ts +7 -2
  132. package/dist/features/DataExporter.d.ts.map +1 -1
  133. package/dist/features/ReplayManager.d.ts +23 -1
  134. package/dist/features/ReplayManager.d.ts.map +1 -1
  135. package/dist/features/SignalMarkerManager.d.ts +8 -0
  136. package/dist/features/SignalMarkerManager.d.ts.map +1 -1
  137. package/dist/features/TradeZoneManager.d.ts.map +1 -1
  138. package/dist/features/UndoRedoManager.d.ts +30 -1
  139. package/dist/features/UndoRedoManager.d.ts.map +1 -1
  140. package/dist/features/index.d.ts +5 -2
  141. package/dist/features/index.d.ts.map +1 -1
  142. package/dist/index.cjs +11 -9
  143. package/dist/index.cjs.map +1 -1
  144. package/dist/index.js +10730 -5082
  145. package/dist/index.js.map +1 -1
  146. package/dist/indicators/IndicatorBase.d.ts +5 -1
  147. package/dist/indicators/IndicatorBase.d.ts.map +1 -1
  148. package/dist/indicators/IndicatorEngine.d.ts +123 -11
  149. package/dist/indicators/IndicatorEngine.d.ts.map +1 -1
  150. package/dist/indicators/PointwiseIndicator.d.ts +25 -0
  151. package/dist/indicators/PointwiseIndicator.d.ts.map +1 -0
  152. package/dist/indicators/index.d.ts +32 -0
  153. package/dist/indicators/index.d.ts.map +1 -1
  154. package/dist/indicators/math.d.ts +47 -0
  155. package/dist/indicators/math.d.ts.map +1 -0
  156. package/dist/indicators/overlay/ALMA.d.ts +20 -0
  157. package/dist/indicators/overlay/ALMA.d.ts.map +1 -0
  158. package/dist/indicators/overlay/Alligator.d.ts +2 -14
  159. package/dist/indicators/overlay/Alligator.d.ts.map +1 -1
  160. package/dist/indicators/overlay/AnchoredVWAP.d.ts +2 -9
  161. package/dist/indicators/overlay/AnchoredVWAP.d.ts.map +1 -1
  162. package/dist/indicators/overlay/BollingerBands.d.ts +2 -10
  163. package/dist/indicators/overlay/BollingerBands.d.ts.map +1 -1
  164. package/dist/indicators/overlay/ChandeKrollStop.d.ts +16 -0
  165. package/dist/indicators/overlay/ChandeKrollStop.d.ts.map +1 -0
  166. package/dist/indicators/overlay/ChandelierExit.d.ts +2 -10
  167. package/dist/indicators/overlay/ChandelierExit.d.ts.map +1 -1
  168. package/dist/indicators/overlay/DEMA.d.ts +11 -0
  169. package/dist/indicators/overlay/DEMA.d.ts.map +1 -0
  170. package/dist/indicators/overlay/DonchianChannel.d.ts +2 -9
  171. package/dist/indicators/overlay/DonchianChannel.d.ts.map +1 -1
  172. package/dist/indicators/overlay/EMA.d.ts +2 -9
  173. package/dist/indicators/overlay/EMA.d.ts.map +1 -1
  174. package/dist/indicators/overlay/Envelope.d.ts +2 -10
  175. package/dist/indicators/overlay/Envelope.d.ts.map +1 -1
  176. package/dist/indicators/overlay/GuppyMMA.d.ts +11 -0
  177. package/dist/indicators/overlay/GuppyMMA.d.ts.map +1 -0
  178. package/dist/indicators/overlay/HullMA.d.ts +2 -9
  179. package/dist/indicators/overlay/HullMA.d.ts.map +1 -1
  180. package/dist/indicators/overlay/Ichimoku.d.ts +2 -12
  181. package/dist/indicators/overlay/Ichimoku.d.ts.map +1 -1
  182. package/dist/indicators/overlay/KAMA.d.ts +15 -0
  183. package/dist/indicators/overlay/KAMA.d.ts.map +1 -0
  184. package/dist/indicators/overlay/KeltnerChannel.d.ts +2 -11
  185. package/dist/indicators/overlay/KeltnerChannel.d.ts.map +1 -1
  186. package/dist/indicators/overlay/LSMA.d.ts +19 -0
  187. package/dist/indicators/overlay/LSMA.d.ts.map +1 -0
  188. package/dist/indicators/overlay/LinearRegressionChannel.d.ts +2 -10
  189. package/dist/indicators/overlay/LinearRegressionChannel.d.ts.map +1 -1
  190. package/dist/indicators/overlay/MACross.d.ts +9 -0
  191. package/dist/indicators/overlay/MACross.d.ts.map +1 -0
  192. package/dist/indicators/overlay/MARibbon.d.ts +8 -0
  193. package/dist/indicators/overlay/MARibbon.d.ts.map +1 -0
  194. package/dist/indicators/overlay/MTFMovingAverage.d.ts +2 -10
  195. package/dist/indicators/overlay/MTFMovingAverage.d.ts.map +1 -1
  196. package/dist/indicators/overlay/McGinleyDynamic.d.ts +13 -0
  197. package/dist/indicators/overlay/McGinleyDynamic.d.ts.map +1 -0
  198. package/dist/indicators/overlay/ParabolicSAR.d.ts +2 -10
  199. package/dist/indicators/overlay/ParabolicSAR.d.ts.map +1 -1
  200. package/dist/indicators/overlay/PivotPoints.d.ts +2 -9
  201. package/dist/indicators/overlay/PivotPoints.d.ts.map +1 -1
  202. package/dist/indicators/overlay/SMA.d.ts +2 -9
  203. package/dist/indicators/overlay/SMA.d.ts.map +1 -1
  204. package/dist/indicators/overlay/SMMA.d.ts +13 -0
  205. package/dist/indicators/overlay/SMMA.d.ts.map +1 -0
  206. package/dist/indicators/overlay/SessionVWAP.d.ts +2 -9
  207. package/dist/indicators/overlay/SessionVWAP.d.ts.map +1 -1
  208. package/dist/indicators/overlay/StandardErrorBands.d.ts +12 -0
  209. package/dist/indicators/overlay/StandardErrorBands.d.ts.map +1 -0
  210. package/dist/indicators/overlay/Supertrend.d.ts +2 -10
  211. package/dist/indicators/overlay/Supertrend.d.ts.map +1 -1
  212. package/dist/indicators/overlay/TEMA.d.ts +2 -9
  213. package/dist/indicators/overlay/TEMA.d.ts.map +1 -1
  214. package/dist/indicators/overlay/VWAP.d.ts +2 -7
  215. package/dist/indicators/overlay/VWAP.d.ts.map +1 -1
  216. package/dist/indicators/overlay/VWMA.d.ts +2 -9
  217. package/dist/indicators/overlay/VWMA.d.ts.map +1 -1
  218. package/dist/indicators/overlay/WMA.d.ts +2 -9
  219. package/dist/indicators/overlay/WMA.d.ts.map +1 -1
  220. package/dist/indicators/overlay/WilliamsFractals.d.ts +15 -0
  221. package/dist/indicators/overlay/WilliamsFractals.d.ts.map +1 -0
  222. package/dist/indicators/overlay/ZigZag.d.ts +2 -9
  223. package/dist/indicators/overlay/ZigZag.d.ts.map +1 -1
  224. package/dist/indicators/panel/ADX.d.ts +2 -10
  225. package/dist/indicators/panel/ADX.d.ts.map +1 -1
  226. package/dist/indicators/panel/ATR.d.ts +2 -10
  227. package/dist/indicators/panel/ATR.d.ts.map +1 -1
  228. package/dist/indicators/panel/AcceleratorOscillator.d.ts +5 -10
  229. package/dist/indicators/panel/AcceleratorOscillator.d.ts.map +1 -1
  230. package/dist/indicators/panel/AccumulationDistribution.d.ts +2 -8
  231. package/dist/indicators/panel/AccumulationDistribution.d.ts.map +1 -1
  232. package/dist/indicators/panel/Aroon.d.ts +2 -10
  233. package/dist/indicators/panel/Aroon.d.ts.map +1 -1
  234. package/dist/indicators/panel/AverageDayRange.d.ts +9 -0
  235. package/dist/indicators/panel/AverageDayRange.d.ts.map +1 -0
  236. package/dist/indicators/panel/AwesomeOscillator.d.ts +2 -11
  237. package/dist/indicators/panel/AwesomeOscillator.d.ts.map +1 -1
  238. package/dist/indicators/panel/BalanceOfPower.d.ts +2 -10
  239. package/dist/indicators/panel/BalanceOfPower.d.ts.map +1 -1
  240. package/dist/indicators/panel/BollingerBandWidth.d.ts +18 -0
  241. package/dist/indicators/panel/BollingerBandWidth.d.ts.map +1 -0
  242. package/dist/indicators/panel/BollingerPercentB.d.ts +21 -0
  243. package/dist/indicators/panel/BollingerPercentB.d.ts.map +1 -0
  244. package/dist/indicators/panel/CCI.d.ts +2 -10
  245. package/dist/indicators/panel/CCI.d.ts.map +1 -1
  246. package/dist/indicators/panel/CMF.d.ts +2 -10
  247. package/dist/indicators/panel/CMF.d.ts.map +1 -1
  248. package/dist/indicators/panel/ChaikinOscillator.d.ts +2 -11
  249. package/dist/indicators/panel/ChaikinOscillator.d.ts.map +1 -1
  250. package/dist/indicators/panel/ChaikinVolatility.d.ts +2 -11
  251. package/dist/indicators/panel/ChaikinVolatility.d.ts.map +1 -1
  252. package/dist/indicators/panel/ChandeMomentum.d.ts +2 -10
  253. package/dist/indicators/panel/ChandeMomentum.d.ts.map +1 -1
  254. package/dist/indicators/panel/ChoppinessIndex.d.ts +2 -10
  255. package/dist/indicators/panel/ChoppinessIndex.d.ts.map +1 -1
  256. package/dist/indicators/panel/ConnorsRSI.d.ts +2 -12
  257. package/dist/indicators/panel/ConnorsRSI.d.ts.map +1 -1
  258. package/dist/indicators/panel/Coppock.d.ts +2 -12
  259. package/dist/indicators/panel/Coppock.d.ts.map +1 -1
  260. package/dist/indicators/panel/DetrendedPriceOscillator.d.ts +2 -10
  261. package/dist/indicators/panel/DetrendedPriceOscillator.d.ts.map +1 -1
  262. package/dist/indicators/panel/DisparityIndex.d.ts +2 -10
  263. package/dist/indicators/panel/DisparityIndex.d.ts.map +1 -1
  264. package/dist/indicators/panel/EaseOfMovement.d.ts +2 -12
  265. package/dist/indicators/panel/EaseOfMovement.d.ts.map +1 -1
  266. package/dist/indicators/panel/ElderRay.d.ts +3 -9
  267. package/dist/indicators/panel/ElderRay.d.ts.map +1 -1
  268. package/dist/indicators/panel/FisherTransform.d.ts +2 -10
  269. package/dist/indicators/panel/FisherTransform.d.ts.map +1 -1
  270. package/dist/indicators/panel/ForceIndex.d.ts +2 -10
  271. package/dist/indicators/panel/ForceIndex.d.ts.map +1 -1
  272. package/dist/indicators/panel/HistoricalVolatility.d.ts +22 -0
  273. package/dist/indicators/panel/HistoricalVolatility.d.ts.map +1 -0
  274. package/dist/indicators/panel/KST.d.ts +2 -18
  275. package/dist/indicators/panel/KST.d.ts.map +1 -1
  276. package/dist/indicators/panel/Klinger.d.ts +2 -12
  277. package/dist/indicators/panel/Klinger.d.ts.map +1 -1
  278. package/dist/indicators/panel/LinearRegressionSlope.d.ts +9 -0
  279. package/dist/indicators/panel/LinearRegressionSlope.d.ts.map +1 -0
  280. package/dist/indicators/panel/MACD.d.ts +2 -12
  281. package/dist/indicators/panel/MACD.d.ts.map +1 -1
  282. package/dist/indicators/panel/MFI.d.ts +2 -10
  283. package/dist/indicators/panel/MFI.d.ts.map +1 -1
  284. package/dist/indicators/panel/MassIndex.d.ts +2 -11
  285. package/dist/indicators/panel/MassIndex.d.ts.map +1 -1
  286. package/dist/indicators/panel/Momentum.d.ts +9 -0
  287. package/dist/indicators/panel/Momentum.d.ts.map +1 -0
  288. package/dist/indicators/panel/NetVolume.d.ts +11 -0
  289. package/dist/indicators/panel/NetVolume.d.ts.map +1 -0
  290. package/dist/indicators/panel/OBV.d.ts +2 -8
  291. package/dist/indicators/panel/OBV.d.ts.map +1 -1
  292. package/dist/indicators/panel/PercentagePriceOscillator.d.ts +2 -12
  293. package/dist/indicators/panel/PercentagePriceOscillator.d.ts.map +1 -1
  294. package/dist/indicators/panel/PrettyGoodOscillator.d.ts +2 -10
  295. package/dist/indicators/panel/PrettyGoodOscillator.d.ts.map +1 -1
  296. package/dist/indicators/panel/PriceVolumeTrend.d.ts +2 -8
  297. package/dist/indicators/panel/PriceVolumeTrend.d.ts.map +1 -1
  298. package/dist/indicators/panel/Qstick.d.ts +2 -10
  299. package/dist/indicators/panel/Qstick.d.ts.map +1 -1
  300. package/dist/indicators/panel/ROC.d.ts +2 -10
  301. package/dist/indicators/panel/ROC.d.ts.map +1 -1
  302. package/dist/indicators/panel/RSI.d.ts +2 -10
  303. package/dist/indicators/panel/RSI.d.ts.map +1 -1
  304. package/dist/indicators/panel/RelativeMomentumIndex.d.ts +2 -11
  305. package/dist/indicators/panel/RelativeMomentumIndex.d.ts.map +1 -1
  306. package/dist/indicators/panel/RelativeVigor.d.ts +2 -10
  307. package/dist/indicators/panel/RelativeVigor.d.ts.map +1 -1
  308. package/dist/indicators/panel/RelativeVolatilityIndex.d.ts +12 -0
  309. package/dist/indicators/panel/RelativeVolatilityIndex.d.ts.map +1 -0
  310. package/dist/indicators/panel/SchaffTrendCycle.d.ts +2 -12
  311. package/dist/indicators/panel/SchaffTrendCycle.d.ts.map +1 -1
  312. package/dist/indicators/panel/StandardError.d.ts +9 -0
  313. package/dist/indicators/panel/StandardError.d.ts.map +1 -0
  314. package/dist/indicators/panel/StdDev.d.ts +2 -10
  315. package/dist/indicators/panel/StdDev.d.ts.map +1 -1
  316. package/dist/indicators/panel/Stochastic.d.ts +2 -12
  317. package/dist/indicators/panel/Stochastic.d.ts.map +1 -1
  318. package/dist/indicators/panel/StochasticMomentumIndex.d.ts +12 -0
  319. package/dist/indicators/panel/StochasticMomentumIndex.d.ts.map +1 -0
  320. package/dist/indicators/panel/StochasticRSI.d.ts +2 -13
  321. package/dist/indicators/panel/StochasticRSI.d.ts.map +1 -1
  322. package/dist/indicators/panel/TRIX.d.ts +2 -11
  323. package/dist/indicators/panel/TRIX.d.ts.map +1 -1
  324. package/dist/indicators/panel/TSI.d.ts +2 -12
  325. package/dist/indicators/panel/TSI.d.ts.map +1 -1
  326. package/dist/indicators/panel/TrendStrengthIndex.d.ts +9 -0
  327. package/dist/indicators/panel/TrendStrengthIndex.d.ts.map +1 -0
  328. package/dist/indicators/panel/UlcerIndex.d.ts +15 -0
  329. package/dist/indicators/panel/UlcerIndex.d.ts.map +1 -0
  330. package/dist/indicators/panel/UltimateOscillator.d.ts +2 -12
  331. package/dist/indicators/panel/UltimateOscillator.d.ts.map +1 -1
  332. package/dist/indicators/panel/VROC.d.ts +2 -10
  333. package/dist/indicators/panel/VROC.d.ts.map +1 -1
  334. package/dist/indicators/panel/VolumeDelta.d.ts +2 -10
  335. package/dist/indicators/panel/VolumeDelta.d.ts.map +1 -1
  336. package/dist/indicators/panel/VolumeOscillator.d.ts +11 -0
  337. package/dist/indicators/panel/VolumeOscillator.d.ts.map +1 -0
  338. package/dist/indicators/panel/VolumeProfile.d.ts +2 -9
  339. package/dist/indicators/panel/VolumeProfile.d.ts.map +1 -1
  340. package/dist/indicators/panel/Vortex.d.ts +2 -10
  341. package/dist/indicators/panel/Vortex.d.ts.map +1 -1
  342. package/dist/indicators/panel/WilliamsAD.d.ts +2 -10
  343. package/dist/indicators/panel/WilliamsAD.d.ts.map +1 -1
  344. package/dist/indicators/panel/WilliamsR.d.ts +2 -10
  345. package/dist/indicators/panel/WilliamsR.d.ts.map +1 -1
  346. package/dist/indicators/plots.d.ts +49 -0
  347. package/dist/indicators/plots.d.ts.map +1 -0
  348. package/dist/indicators/registry.d.ts.map +1 -1
  349. package/dist/indicators/sources.d.ts +37 -0
  350. package/dist/indicators/sources.d.ts.map +1 -0
  351. package/dist/indicators/symbols/SymbolSeriesStore.d.ts +21 -0
  352. package/dist/indicators/symbols/SymbolSeriesStore.d.ts.map +1 -0
  353. package/dist/indicators/symbols/symbolIndicators.d.ts +34 -0
  354. package/dist/indicators/symbols/symbolIndicators.d.ts.map +1 -0
  355. package/dist/interaction/CrosshairHandler.d.ts +31 -4
  356. package/dist/interaction/CrosshairHandler.d.ts.map +1 -1
  357. package/dist/interaction/CrosshairTooltip.d.ts +16 -9
  358. package/dist/interaction/CrosshairTooltip.d.ts.map +1 -1
  359. package/dist/interaction/InteractionManager.d.ts +69 -1
  360. package/dist/interaction/InteractionManager.d.ts.map +1 -1
  361. package/dist/interaction/PaneResizeHandler.d.ts.map +1 -1
  362. package/dist/interaction/PinnedTooltip.d.ts +9 -1
  363. package/dist/interaction/PinnedTooltip.d.ts.map +1 -1
  364. package/dist/interaction/PriceAxisAddButton.d.ts +17 -0
  365. package/dist/interaction/PriceAxisAddButton.d.ts.map +1 -0
  366. package/dist/interaction/ZoomHandler.d.ts +8 -0
  367. package/dist/interaction/ZoomHandler.d.ts.map +1 -1
  368. package/dist/interaction/index.d.ts +2 -0
  369. package/dist/interaction/index.d.ts.map +1 -1
  370. package/dist/realtime/CurrentPriceLine.d.ts.map +1 -1
  371. package/dist/realtime/StreamManager.d.ts +5 -0
  372. package/dist/realtime/StreamManager.d.ts.map +1 -1
  373. package/dist/realtime/TickAggregator.d.ts.map +1 -1
  374. package/dist/realtime/TickBars.d.ts +58 -0
  375. package/dist/realtime/TickBars.d.ts.map +1 -0
  376. package/dist/realtime/adapters/BinanceAdapter.d.ts +24 -1
  377. package/dist/realtime/adapters/BinanceAdapter.d.ts.map +1 -1
  378. package/dist/realtime/adapters/BybitAdapter.d.ts +3 -1
  379. package/dist/realtime/adapters/BybitAdapter.d.ts.map +1 -1
  380. package/dist/realtime/adapters/CoinbaseAdapter.d.ts.map +1 -1
  381. package/dist/realtime/adapters/KrakenAdapter.d.ts.map +1 -1
  382. package/dist/realtime/adapters/MockAdapter.d.ts +19 -1
  383. package/dist/realtime/adapters/MockAdapter.d.ts.map +1 -1
  384. package/dist/realtime/adapters/PollingAdapter.d.ts +14 -1
  385. package/dist/realtime/adapters/PollingAdapter.d.ts.map +1 -1
  386. package/dist/realtime/adapters/ResamplingAdapter.d.ts +84 -0
  387. package/dist/realtime/adapters/ResamplingAdapter.d.ts.map +1 -0
  388. package/dist/realtime/adapters/WebSocketAdapter.d.ts +14 -1
  389. package/dist/realtime/adapters/WebSocketAdapter.d.ts.map +1 -1
  390. package/dist/realtime/adapters/binanceTypes.d.ts +10 -1
  391. package/dist/realtime/adapters/binanceTypes.d.ts.map +1 -1
  392. package/dist/realtime/adapters/index.d.ts +1 -0
  393. package/dist/realtime/adapters/index.d.ts.map +1 -1
  394. package/dist/realtime/index.d.ts +1 -0
  395. package/dist/realtime/index.d.ts.map +1 -1
  396. package/dist/trading/BracketTool.d.ts.map +1 -1
  397. package/dist/trading/OrderDraftTool.d.ts.map +1 -1
  398. package/dist/trading/OrderRenderer.d.ts +2 -1
  399. package/dist/trading/OrderRenderer.d.ts.map +1 -1
  400. package/dist/trading/PaperExecutionAdapter.d.ts +17 -3
  401. package/dist/trading/PaperExecutionAdapter.d.ts.map +1 -1
  402. package/dist/trading/PositionRenderer.d.ts +6 -1
  403. package/dist/trading/PositionRenderer.d.ts.map +1 -1
  404. package/dist/trading/TradingContextMenu.d.ts +1 -1
  405. package/dist/trading/TradingContextMenu.d.ts.map +1 -1
  406. package/dist/trading/TradingManager.d.ts +23 -2
  407. package/dist/trading/TradingManager.d.ts.map +1 -1
  408. package/dist/trading/fillMarks.d.ts +14 -0
  409. package/dist/trading/fillMarks.d.ts.map +1 -0
  410. package/dist/trading/lineButtons.d.ts +31 -0
  411. package/dist/trading/lineButtons.d.ts.map +1 -0
  412. package/dist/trading/positionFormat.d.ts +1 -1
  413. package/dist/trading/positionFormat.d.ts.map +1 -1
  414. package/dist/ui/BarCountdown.d.ts.map +1 -1
  415. package/dist/ui/ChartLegend.d.ts +6 -0
  416. package/dist/ui/ChartLegend.d.ts.map +1 -1
  417. package/dist/ui/PriceLines.d.ts +38 -0
  418. package/dist/ui/PriceLines.d.ts.map +1 -0
  419. package/dist/ui/SessionBreaks.d.ts +4 -1
  420. package/dist/ui/SessionBreaks.d.ts.map +1 -1
  421. package/dist/ui/SessionShading.d.ts +2 -0
  422. package/dist/ui/SessionShading.d.ts.map +1 -1
  423. package/dist/ui/axisValueLabels.d.ts +35 -0
  424. package/dist/ui/axisValueLabels.d.ts.map +1 -0
  425. package/dist/ui/index.d.ts +6 -1
  426. package/dist/ui/index.d.ts.map +1 -1
  427. package/dist/ui/sessionHours.d.ts +12 -2
  428. package/dist/ui/sessionHours.d.ts.map +1 -1
  429. package/dist/ui/shapes.d.ts +9 -0
  430. package/dist/ui/shapes.d.ts.map +1 -0
  431. package/dist/viewport/ScaleMapping.d.ts +20 -0
  432. package/dist/viewport/ScaleMapping.d.ts.map +1 -1
  433. package/dist/viewport/Viewport.d.ts +38 -2
  434. package/dist/viewport/Viewport.d.ts.map +1 -1
  435. package/dist/viewport/index.d.ts +4 -2
  436. package/dist/viewport/index.d.ts.map +1 -1
  437. package/dist/viewport/rangePresets.d.ts +12 -0
  438. package/dist/viewport/rangePresets.d.ts.map +1 -0
  439. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"BarCountdown.d.ts","sourceRoot":"","sources":["../../src/ui/BarCountdown.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAG7E,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,WAAW,CAAK;IAExB,UAAU,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI;IAC5B,SAAS,IAAI,OAAO;IAEpB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAEhC,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IA0BpG,OAAO,CAAC,eAAe;CAUxB"}
1
+ {"version":3,"file":"BarCountdown.d.ts","sourceRoot":"","sources":["../../src/ui/BarCountdown.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAG7E,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,WAAW,CAAK;IAExB,UAAU,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI;IAC5B,SAAS,IAAI,OAAO;IAEpB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAEhC,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IA2BpG,OAAO,CAAC,eAAe;CAUxB"}
@@ -40,6 +40,12 @@ export declare class ChartLegend {
40
40
  value: string;
41
41
  }[]): void;
42
42
  setStatusText(text: string | null): void;
43
+ /**
44
+ * How far below the plot's top edge the symbol, OHLC and volume rows reach
45
+ * (the indicator row excluded), so other content can stack under them.
46
+ * 0 when hidden or drawn in the top-right corner.
47
+ */
48
+ getHeight(): number;
43
49
  render(ctx: CanvasRenderingContext2D, viewport: ViewportState, theme: Theme, data: DataSeries): void;
44
50
  }
45
51
  //# sourceMappingURL=ChartLegend.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChartLegend.d.ts","sourceRoot":"","sources":["../../src/ui/ChartLegend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGtF,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,UAAU,GAAG,WAAW,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,qBAAqB,EAAE,YAQnC,CAAC;AAEF;;;;GAIG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAA8C;IAC5D,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,UAAU,CAAwD;IAC1E,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,cAAc,CAAuB;IAE7C,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;IAI9C;;;OAGG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAIjD,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAI9B,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIjC,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI;IAItC,kBAAkB,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,IAAI;IAIlF,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAIxC,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;CAsGrG"}
1
+ {"version":3,"file":"ChartLegend.d.ts","sourceRoot":"","sources":["../../src/ui/ChartLegend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGtF,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,UAAU,GAAG,WAAW,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,qBAAqB,EAAE,YAQnC,CAAC;AAEF;;;;GAIG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAA8C;IAC5D,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,UAAU,CAAwD;IAC1E,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,cAAc,CAAuB;IAE7C,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;IAI9C;;;OAGG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAIjD,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAI9B,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIjC,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI;IAItC,kBAAkB,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,IAAI;IAIlF,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAIxC;;;;OAIG;IACH,SAAS,IAAI,MAAM;IAWnB,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;CAsGrG"}
@@ -0,0 +1,38 @@
1
+ import { DataSeries, Theme, ViewportState } from '@tradecanvas/commons';
2
+ export type PriceLineKind = 'high' | 'low' | 'bid' | 'ask';
3
+ export interface PriceLineLevel {
4
+ kind: PriceLineKind;
5
+ price: number;
6
+ }
7
+ /** A quote: the best bid and ask. */
8
+ export interface BidAsk {
9
+ bid?: number;
10
+ ask?: number;
11
+ }
12
+ /**
13
+ * Lines across the price pane with a tag on the price axis: the highest
14
+ * high and lowest low of the bars on screen, and the bid and ask.
15
+ */
16
+ export declare class PriceLines {
17
+ private highLow;
18
+ private quote;
19
+ private quoteShown;
20
+ private priceText;
21
+ /** How its tags print a price (the chart's precision, locale and format); null: decimals. */
22
+ setPriceText(format: ((price: number) => string) | null): void;
23
+ /** Leave the bid and ask out for now (a replay: they are the live market's). */
24
+ setQuoteShown(shown: boolean): void;
25
+ /** Mark the highest high and lowest low of the bars on screen. */
26
+ setHighLow(visible: boolean): void;
27
+ isHighLowVisible(): boolean;
28
+ /** The best bid and ask, or null to take them off. */
29
+ setBidAsk(quote: BidAsk | null): void;
30
+ getBidAsk(): BidAsk | null;
31
+ /** The levels to draw over `data` as the viewport shows it. */
32
+ levels(data: DataSeries, viewport: ViewportState): PriceLineLevel[];
33
+ /** The lines, across the price pane. */
34
+ render(ctx: CanvasRenderingContext2D, viewport: ViewportState, theme: Theme, data: DataSeries): void;
35
+ /** Their tags, on the price axis (drawn over its labels). */
36
+ renderAxisTags(ctx: CanvasRenderingContext2D, viewport: ViewportState, theme: Theme, data: DataSeries): void;
37
+ }
38
+ //# sourceMappingURL=PriceLines.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PriceLines.d.ts","sourceRoot":"","sources":["../../src/ui/PriceLines.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAK7E,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAE3D,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qCAAqC;AACrC,MAAM,WAAW,MAAM;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAKD;;;GAGG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,SAAS,CAA4C;IAE7D,6FAA6F;IAC7F,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,IAAI,GAAG,IAAI;IAI9D,gFAAgF;IAChF,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAInC,kEAAkE;IAClE,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIlC,gBAAgB,IAAI,OAAO;IAI3B,sDAAsD;IACtD,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAIrC,SAAS,IAAI,MAAM,GAAG,IAAI;IAI1B,+DAA+D;IAC/D,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,GAAG,cAAc,EAAE;IAoBnE,wCAAwC;IACxC,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IAiBpG,6DAA6D;IAC7D,cAAc,CAAC,GAAG,EAAE,wBAAwB,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;CAoB7G"}
@@ -1,4 +1,4 @@
1
- import { ViewportState, Theme, DataSeries } from '@tradecanvas/commons';
1
+ import { ViewportState, Theme, DataSeries, TimeZoneSetting } from '@tradecanvas/commons';
2
2
  export interface SessionBreakConfig {
3
3
  /** Whether to show session break lines */
4
4
  visible: boolean;
@@ -25,8 +25,11 @@ export declare class SessionBreaks {
25
25
  private cacheValid;
26
26
  private lastDataLength;
27
27
  private locale;
28
+ private tz;
28
29
  setConfig(config: Partial<SessionBreakConfig>): void;
29
30
  setLocale(locale: string): void;
31
+ /** Days start at midnight in this timezone (default: the browser's). */
32
+ setTimezone(tz: TimeZoneSetting): void;
30
33
  isVisible(): boolean;
31
34
  setVisible(visible: boolean): void;
32
35
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"SessionBreaks.d.ts","sourceRoot":"","sources":["../../src/ui/SessionBreaks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAG7E,MAAM,WAAW,kBAAkB;IACjC,0CAA0C;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,2FAA2F;IAC3F,YAAY,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,SAAS,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC1C,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAA0C;IACxD,OAAO,CAAC,iBAAiB,CAA8E;IACvG,OAAO,CAAC,gBAAgB,CAAK;IAI7B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,MAAM,CAAW;IAEzB,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI;IAIpD,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B,SAAS,IAAI,OAAO;IAIpB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIlC;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAgC1B,OAAO,CAAC,IAAI;IAIZ,MAAM,CACJ,GAAG,EAAE,wBAAwB,EAC7B,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,UAAU,GACf,IAAI;IAoEP,yCAAyC;IACzC,eAAe,IAAI,IAAI;CAMxB"}
1
+ {"version":3,"file":"SessionBreaks.d.ts","sourceRoot":"","sources":["../../src/ui/SessionBreaks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAI9F,MAAM,WAAW,kBAAkB;IACjC,0CAA0C;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,2FAA2F;IAC3F,YAAY,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,SAAS,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC1C,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAWD;;;GAGG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAA0C;IACxD,OAAO,CAAC,iBAAiB,CAAsB;IAC/C,OAAO,CAAC,gBAAgB,CAAK;IAI7B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,EAAE,CAAyB;IAEnC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI;IAIpD,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B,wEAAwE;IACxE,WAAW,CAAC,EAAE,EAAE,eAAe,GAAG,IAAI;IAMtC,SAAS,IAAI,OAAO;IAIpB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIlC;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAiC1B,OAAO,CAAC,IAAI;IAIZ,MAAM,CACJ,GAAG,EAAE,wBAAwB,EAC7B,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,UAAU,GACf,IAAI;IAoEP,yCAAyC;IACzC,eAAe,IAAI,IAAI;CAMxB"}
@@ -13,6 +13,8 @@ export declare class SessionShading {
13
13
  setVisible(v: boolean): void;
14
14
  isVisible(): boolean;
15
15
  setConfig(config: Partial<SessionHoursConfig>): void;
16
+ /** Replace the whole config, rather than merging into it. */
17
+ replaceConfig(config: SessionHoursConfig): void;
16
18
  getConfig(): SessionHoursConfig;
17
19
  render(ctx: CanvasRenderingContext2D, data: DataSeries, viewport: ViewportState, theme: Theme): void;
18
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SessionShading.d.ts","sourceRoot":"","sources":["../../src/ui/SessionShading.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE7E,OAAO,EAAoB,KAAK,kBAAkB,EAAsB,MAAM,mBAAmB,CAAC;AAElG,8EAA8E;AAC9E,eAAO,MAAM,qBAAqB,EAAE,kBAInC,CAAC;AAEF;;;;GAIG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAoD;IAElE,UAAU,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI;IAG5B,SAAS,IAAI,OAAO;IAGpB,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI;IAMpD,SAAS,IAAI,kBAAkB;IAO/B,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;CA+BrG"}
1
+ {"version":3,"file":"SessionShading.d.ts","sourceRoot":"","sources":["../../src/ui/SessionShading.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE7E,OAAO,EAAuC,KAAK,kBAAkB,EAAsB,MAAM,mBAAmB,CAAC;AAErH,8EAA8E;AAC9E,eAAO,MAAM,qBAAqB,EAAE,kBAKnC,CAAC;AAEF;;;;GAIG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAoD;IAElE,UAAU,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI;IAG5B,SAAS,IAAI,OAAO;IAGpB,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI;IAIpD,6DAA6D;IAC7D,aAAa,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAG/C,SAAS,IAAI,kBAAkB;IAO/B,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;CA+BrG"}
@@ -0,0 +1,35 @@
1
+ import { Theme } from '@tradecanvas/commons';
2
+ /** A coloured tag on a value axis: an indicator line's latest value. */
3
+ export interface AxisValueLabel {
4
+ /** Where the value sits on the axis (px). */
5
+ y: number;
6
+ text: string;
7
+ /** The line's colour: the tag's background. */
8
+ color: string;
9
+ }
10
+ /**
11
+ * Decimals for an indicator value of this size (RSI 54.32, MACD 0.0012,
12
+ * 12,345.7): two for everyday values, fewer for big ones, more for small.
13
+ */
14
+ export declare function indicatorValuePrecision(value: number): number;
15
+ /** Tag height (px); tags closer than this are pushed apart. */
16
+ export declare const AXIS_LABEL_HEIGHT = 16;
17
+ /**
18
+ * Positions for tags at `ys` (sorted ascending) so that none overlap, each as
19
+ * close to its own value as the others allow, within `[top, bottom]`. When
20
+ * they cannot all fit, the first ones keep their place and the rest run past
21
+ * `bottom` (the renderer leaves those out).
22
+ */
23
+ export declare function spreadLabels(ys: readonly number[], top: number, bottom: number, height?: number): number[];
24
+ /** Dark text on a light tag, light text on a dark one. */
25
+ export declare function labelTextColor(background: string): string;
26
+ /**
27
+ * Draw `labels` on the value axis whose left edge is `axisX`, within the
28
+ * vertical `bounds`. Tags off the axis are dropped; the rest are spread so
29
+ * they do not overlap.
30
+ */
31
+ export declare function renderAxisValueLabels(ctx: CanvasRenderingContext2D, labels: readonly AxisValueLabel[], axisX: number, axisWidth: number, bounds: {
32
+ top: number;
33
+ bottom: number;
34
+ }, theme: Theme): void;
35
+ //# sourceMappingURL=axisValueLabels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"axisValueLabels.d.ts","sourceRoot":"","sources":["../../src/ui/axisValueLabels.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAGlD,wEAAwE;AACxE,MAAM,WAAW,cAAc;IAC7B,6CAA6C;IAC7C,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAG7D;AAED,+DAA+D;AAC/D,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,SAAoB,GAAG,MAAM,EAAE,CAcrH;AAED,0DAA0D;AAC1D,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAMzD;AAYD;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,wBAAwB,EAC7B,MAAM,EAAE,SAAS,cAAc,EAAE,EACjC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EACvC,KAAK,EAAE,KAAK,GACX,IAAI,CAoBN"}
@@ -6,6 +6,11 @@ export { BarCountdown } from './BarCountdown.js';
6
6
  export { SessionBreaks } from './SessionBreaks.js';
7
7
  export type { SessionBreakConfig } from './SessionBreaks.js';
8
8
  export { SessionShading, DEFAULT_SESSION_HOURS } from './SessionShading.js';
9
- export { isRegularSession, isInWindow, minuteOfDay } from './sessionHours.js';
9
+ export { isRegularSession, isInWindow, minuteOfDay, mergeSessionHours } from './sessionHours.js';
10
10
  export type { SessionHoursConfig, SessionWindow } from './sessionHours.js';
11
+ export { renderAxisValueLabels, spreadLabels, labelTextColor, indicatorValuePrecision, AXIS_LABEL_HEIGHT } from './axisValueLabels.js';
12
+ export type { AxisValueLabel } from './axisValueLabels.js';
13
+ export { PriceLines } from './PriceLines.js';
14
+ export type { PriceLineKind, PriceLineLevel, BidAsk } from './PriceLines.js';
15
+ export { fillTag } from './shapes.js';
11
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACtE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC9E,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACtE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACjG,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,cAAc,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACvI,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC"}
@@ -10,8 +10,13 @@ export interface SessionHoursConfig {
10
10
  startMinute: number;
11
11
  /** Session end, minutes from midnight (e.g. 960 = 16:00). */
12
12
  endMinute: number;
13
- /** Timezone offset applied to UTC before deriving minute-of-day (e.g. -300 for EST). */
14
- tzOffsetMinutes: number;
13
+ /** Fixed offset applied to UTC before deriving minute-of-day (e.g. -300 for EST). */
14
+ tzOffsetMinutes?: number;
15
+ /**
16
+ * The session's IANA zone (e.g. `'America/New_York'`): follows daylight
17
+ * saving time, and wins over `tzOffsetMinutes`.
18
+ */
19
+ timeZone?: string;
15
20
  /**
16
21
  * Optional split session: a list of in-session windows within the day. When
17
22
  * present and non-empty, `startMinute`/`endMinute` are ignored and a
@@ -22,6 +27,11 @@ export interface SessionHoursConfig {
22
27
  */
23
28
  windows?: SessionWindow[];
24
29
  }
30
+ /**
31
+ * `patch` over `base`. A fixed offset given without a zone replaces the zone,
32
+ * since the zone would otherwise win over it.
33
+ */
34
+ export declare function mergeSessionHours(base: SessionHoursConfig, patch: Partial<SessionHoursConfig>): SessionHoursConfig;
25
35
  /** Minute-of-day (0–1439) for a timestamp in the configured timezone. */
26
36
  export declare function minuteOfDay(timeMs: number, tzOffsetMinutes: number): number;
27
37
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"sessionHours.d.ts","sourceRoot":"","sources":["../../src/ui/sessionHours.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,MAAM,WAAW,aAAa;IAC5B,8DAA8D;IAC9D,WAAW,EAAE,MAAM,CAAC;IACpB,wFAAwF;IACxF,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,yFAAyF;IACzF,WAAW,EAAE,MAAM,CAAC;IACpB,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAC;IAClB,wFAAwF;IACxF,eAAe,EAAE,MAAM,CAAC;IACxB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;CAC3B;AAID,yEAAyE;AACzE,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,CAI3E;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAK1F;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAMpF"}
1
+ {"version":3,"file":"sessionHours.d.ts","sourceRoot":"","sources":["../../src/ui/sessionHours.ts"],"names":[],"mappings":"AAEA,uEAAuE;AACvE,MAAM,WAAW,aAAa;IAC5B,8DAA8D;IAC9D,WAAW,EAAE,MAAM,CAAC;IACpB,wFAAwF;IACxF,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,yFAAyF;IACzF,WAAW,EAAE,MAAM,CAAC;IACpB,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAC;IAClB,qFAAqF;IACrF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;CAC3B;AAID;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,kBAAkB,CAOlH;AAED,yEAAyE;AACzE,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,CAI3E;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAK1F;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAOpF"}
@@ -0,0 +1,9 @@
1
+ import { Theme } from '@tradecanvas/commons';
2
+ /**
3
+ * Fill a tag's box (a price tag, an axis pill, an order badge) in the
4
+ * theme's corner shape: square by default, rounded by `theme.shape.tagRadius`
5
+ * (999 or anything past half its height makes a pill). Uses the context's
6
+ * current fill.
7
+ */
8
+ export declare function fillTag(ctx: CanvasRenderingContext2D, x: number, y: number, w: number, h: number, theme: Theme): void;
9
+ //# sourceMappingURL=shapes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shapes.d.ts","sourceRoot":"","sources":["../../src/ui/shapes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,wBAAwB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAmBrH"}
@@ -1,6 +1,21 @@
1
1
  import { ViewportState } from '@tradecanvas/commons';
2
2
  export declare function barIndexToX(index: number, viewport: ViewportState): number;
3
3
  export declare function priceToY(price: number, viewport: ViewportState): number;
4
+ /**
5
+ * `priceToY` for one frame, with the per-call work hoisted out: for renderers
6
+ * that map every visible bar. Follows the log scale and the inverted scale.
7
+ */
8
+ export declare function priceToYMapper(viewport: ViewportState): (price: number) => number;
9
+ /**
10
+ * Where bucket `b` of `count` equal price buckets across the price range sits
11
+ * on screen (bucket 0 holds the lowest prices), on any scale. `toY` is the
12
+ * frame's `priceToYMapper`.
13
+ */
14
+ export declare function priceBucketRow(b: number, count: number, viewport: ViewportState, toY: (price: number) => number): {
15
+ top: number;
16
+ height: number;
17
+ mid: number;
18
+ };
4
19
  export declare function xToBarIndex(x: number, viewport: ViewportState): number;
5
20
  export declare function yToPrice(y: number, viewport: ViewportState): number;
6
21
  type TimedSeries = ReadonlyArray<{
@@ -13,6 +28,11 @@ type TimedSeries = ReadonlyArray<{
13
28
  * series and length; 0 when there are fewer than two bars.
14
29
  */
15
30
  export declare function barTimeStep(data: TimedSeries): number;
31
+ /**
32
+ * `barTimeStep` in milliseconds whatever unit the series uses: bar times
33
+ * below 1e12 are seconds (the same rule as `normalizeBarTime`).
34
+ */
35
+ export declare function barTimeStepMs(data: TimedSeries): number;
16
36
  /**
17
37
  * Time at bar index `index`, extrapolated by `barTimeStep` past either end of
18
38
  * the data — e.g. the future area right of the newest bar.
@@ -1 +1 @@
1
- {"version":3,"file":"ScaleMapping.d.ts","sourceRoot":"","sources":["../../src/viewport/ScaleMapping.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,MAAM,CAG1E;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,MAAM,CAcvE;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,MAAM,CAGtE;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,MAAM,CASnE;AAED,KAAK,WAAW,GAAG,aAAa,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAInD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAWrD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,MAAM,CASvE;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,MAAM,CA0BhF;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,MAAM,CAM7E;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,MAAM,CAErE;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,MAAM,CASlE"}
1
+ {"version":3,"file":"ScaleMapping.d.ts","sourceRoot":"","sources":["../../src/viewport/ScaleMapping.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,MAAM,CAG1E;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,MAAM,CAevE;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,aAAa,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAkBjF;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,aAAa,EACvB,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAC7B;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAM9C;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,MAAM,CAGtE;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,MAAM,CAUnE;AAED,KAAK,WAAW,GAAG,aAAa,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAInD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAWrD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAIvD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,MAAM,CASvE;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,MAAM,CA0BhF;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,MAAM,CAM7E;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,MAAM,CAErE;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,MAAM,CASlE"}
@@ -1,4 +1,10 @@
1
1
  import { ViewportState, Rect, DataSeries, PriceScaleMode } from '@tradecanvas/commons';
2
+ /**
3
+ * Narrowest bar slot (bar + gap) in CSS pixels. Below the usual floor
4
+ * (`minBarWidth` + the 2px gap) the chart only zooms out as far as it takes to
5
+ * fit every loaded bar, and never past this.
6
+ */
7
+ export declare const MIN_BAR_UNIT = 0.25;
2
8
  export declare class Viewport {
3
9
  private state;
4
10
  private priceAxisWidth;
@@ -32,6 +38,11 @@ export declare class Viewport {
32
38
  /** Set the price-scale presentation. Keeps `logScale` mirrored for back-compat. */
33
39
  setScaleMode(mode: PriceScaleMode): void;
34
40
  getScaleMode(): PriceScaleMode;
41
+ /** Turn the price scale upside down (higher prices lower on screen). */
42
+ setInvertScale(inverted: boolean): void;
43
+ isInvertScale(): boolean;
44
+ /** How prices on the scale read (null: decimals), and the step they move in (a fraction's). */
45
+ setPriceFormat(format: ((price: number) => string) | null, unit?: number | null): void;
35
46
  /** Reference price for percentage / indexed-to-100 axis labels. */
36
47
  setScaleBaseline(price: number | undefined): void;
37
48
  setRightMargin(bars: number): void;
@@ -54,7 +65,32 @@ export declare class Viewport {
54
65
  private computeChartRect;
55
66
  resize(width: number, height: number): void;
56
67
  setChartRect(rect: Rect): void;
68
+ /** The usual narrowest slot: `minBarWidth` plus the 2px gap. */
69
+ private floorUnit;
70
+ /**
71
+ * The narrowest slot right now: the usual floor, or less when the loaded
72
+ * bars only fit below it — down to `MIN_BAR_UNIT`.
73
+ */
74
+ private minUnit;
75
+ private maxUnit;
76
+ /**
77
+ * Split a slot into bar and gap: above the floor the gap stays 2px, below it
78
+ * both shrink in the floor's proportions, so the bars never turn into gaps.
79
+ */
80
+ private applyUnit;
81
+ /**
82
+ * Keep the slot within the current limits — a dense zoom of a long series
83
+ * grows back to the floor when a shorter one replaces it. Keeps the bar at
84
+ * the left edge in place.
85
+ */
86
+ private clampUnit;
57
87
  updateData(data: DataSeries, autoScale: boolean): void;
88
+ /**
89
+ * The bars on screen moved `count` slots right (bars added in front of the
90
+ * data; negative when a reshaped series lost some): move the view with
91
+ * them, so the same bars stay on screen.
92
+ */
93
+ prependBars(count: number): void;
58
94
  setPriceRange(min: number, max: number): void;
59
95
  /**
60
96
  * Multiply the visible price range by `factor` around its midpoint.
@@ -84,8 +120,8 @@ export declare class Viewport {
84
120
  zoom(delta: number, centerX: number): void;
85
121
  /**
86
122
  * Fit bar slots `from`..`to` (inclusive, fractional allowed, may extend past
87
- * the data) across the chart width. If the bar width hits its min/max the
88
- * range is centred instead.
123
+ * the data) across the chart width. If the slot hits its min/max the range
124
+ * is centred instead.
89
125
  */
90
126
  zoomToBarRange(from: number, to: number): void;
91
127
  private clampOffset;
@@ -1 +1 @@
1
- {"version":3,"file":"Viewport.d.ts","sourceRoot":"","sources":["../../src/viewport/Viewport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI5F,qBAAa,QAAQ;IACnB,OAAO,CAAC,KAAK,CAAgB;IAE7B,OAAO,CAAC,cAAc,CAAoB;IAC1C;;;;;;;;;OASG;IACH,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,cAAc,CAAK;gBAGzB,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,MAAM,EACvB,WAAW,SAAI,EACf,WAAW,SAAK,EAChB,eAAe,SAAI;IAgBrB;;;OAGG;IACH,QAAQ,IAAI,aAAa;IAkBzB,8EAA8E;IAC9E,OAAO,CAAC,UAAU;IAIlB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAInC,UAAU,IAAI,OAAO;IAIrB,mFAAmF;IACnF,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAMxC,YAAY,IAAI,cAAc;IAI9B,mEAAmE;IACnE,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAKjD,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIlC,cAAc,IAAI,MAAM;IAIxB;;;;;;OAMG;IACH,YAAY,CAAC,MAAM,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAO1E,qGAAqG;IACrG,OAAO,CAAC,SAAS;IAKjB,yEAAyE;IACzE,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAOtC,OAAO,CAAC,gBAAgB;IASxB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAM3C,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAY9B,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI;IAsBtD,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAK7C;;;;OAIG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAUrC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAOnC;;;;;;;;;OASG;IACH,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAqBxC;;;;OAIG;IACH,OAAO,IAAI,OAAO;IAKlB,WAAW,IAAI,IAAI;IAUnB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAwB1C;;;;OAIG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAY9C,OAAO,CAAC,WAAW;IAgDnB,OAAO,CAAC,kBAAkB;CAS3B"}
1
+ {"version":3,"file":"Viewport.d.ts","sourceRoot":"","sources":["../../src/viewport/Viewport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI5F;;;;GAIG;AACH,eAAO,MAAM,YAAY,OAAO,CAAC;AAEjC,qBAAa,QAAQ;IACnB,OAAO,CAAC,KAAK,CAAgB;IAE7B,OAAO,CAAC,cAAc,CAAoB;IAC1C;;;;;;;;;OASG;IACH,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,cAAc,CAAK;gBAGzB,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,MAAM,EACvB,WAAW,SAAI,EACf,WAAW,SAAK,EAChB,eAAe,SAAI;IAgBrB;;;OAGG;IACH,QAAQ,IAAI,aAAa;IAqBzB,8EAA8E;IAC9E,OAAO,CAAC,UAAU;IAIlB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAInC,UAAU,IAAI,OAAO;IAIrB,mFAAmF;IACnF,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAMxC,YAAY,IAAI,cAAc;IAI9B,wEAAwE;IACxE,cAAc,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAKvC,aAAa,IAAI,OAAO;IAIxB,+FAA+F;IAC/F,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,IAAI,EAAE,IAAI,GAAE,MAAM,GAAG,IAAW,GAAG,IAAI;IAM5F,mEAAmE;IACnE,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAKjD,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIlC,cAAc,IAAI,MAAM;IAIxB;;;;;;OAMG;IACH,YAAY,CAAC,MAAM,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAO1E,qGAAqG;IACrG,OAAO,CAAC,SAAS;IAKjB,yEAAyE;IACzE,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAOtC,OAAO,CAAC,gBAAgB;IASxB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAO3C,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAa9B,gEAAgE;IAChE,OAAO,CAAC,SAAS;IAIjB;;;OAGG;IACH,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,OAAO;IAIf;;;OAGG;IACH,OAAO,CAAC,SAAS;IAajB;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAQjB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI;IAuBtD;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQhC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAK7C;;;;OAIG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAUrC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAOnC;;;;;;;;;OASG;IACH,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAsBxC;;;;OAIG;IACH,OAAO,IAAI,OAAO;IAKlB,WAAW,IAAI,IAAI;IAUnB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAwB1C;;;;OAIG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAY9C,OAAO,CAAC,WAAW;IAgDnB,OAAO,CAAC,kBAAkB;CAS3B"}
@@ -1,4 +1,6 @@
1
- export { Viewport } from './Viewport.js';
2
- export { barIndexToX, priceToY, xToBarIndex, yToPrice, timestampToBarIndex, resolveBarIndex, barTimeStep, barIndexToTime, timeToX, xToTime, } from './ScaleMapping.js';
1
+ export { Viewport, MIN_BAR_UNIT } from './Viewport.js';
2
+ export { barIndexToX, priceToY, priceToYMapper, priceBucketRow, xToBarIndex, yToPrice, timestampToBarIndex, resolveBarIndex, barTimeStep, barTimeStepMs, barIndexToTime, timeToX, xToTime, } from './ScaleMapping.js';
3
3
  export { getVisibleData } from './DataWindow.js';
4
+ export { RANGE_PRESETS, rangePresetStart } from './rangePresets.js';
5
+ export type { RangePreset } from './rangePresets.js';
4
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/viewport/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,WAAW,EACX,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,mBAAmB,EACnB,eAAe,EACf,WAAW,EACX,cAAc,EACd,OAAO,EACP,OAAO,GACR,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/viewport/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EACL,WAAW,EACX,QAAQ,EACR,cAAc,EACd,cAAc,EACd,WAAW,EACX,QAAQ,EACR,mBAAmB,EACnB,eAAe,EACf,WAAW,EACX,aAAa,EACb,cAAc,EACd,OAAO,EACP,OAAO,GACR,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACpE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { TimeZoneSetting } from '@tradecanvas/commons';
2
+ /** Spans that end at the last bar, as on a chart's range bar. */
3
+ export type RangePreset = '1D' | '5D' | '1M' | '3M' | '6M' | 'YTD' | '1Y' | '5Y' | 'All';
4
+ export declare const RANGE_PRESETS: readonly RangePreset[];
5
+ /**
6
+ * Where the preset's span starts when it ends at `end` (ms): days are counted
7
+ * back from `end`, months and YTD in calendar terms in the display timezone
8
+ * (an IANA zone, minutes east of UTC, or null for the browser's), keeping the
9
+ * wall-clock time across daylight-saving changes. Null for 'All'.
10
+ */
11
+ export declare function rangePresetStart(preset: RangePreset, end: number, tz?: TimeZoneSetting): number | null;
12
+ //# sourceMappingURL=rangePresets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rangePresets.d.ts","sourceRoot":"","sources":["../../src/viewport/rangePresets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEjF,iEAAiE;AACjE,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC;AAEzF,eAAO,MAAM,aAAa,EAAE,SAAS,WAAW,EAA6D,CAAC;AAkB9G;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,GAAE,eAAmB,GAAG,MAAM,GAAG,IAAI,CAQzG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tradecanvas/core",
3
- "version": "1.3.0",
3
+ "version": "1.7.0",
4
4
  "type": "module",
5
5
  "description": "Canvas rendering engine for @tradecanvas/chart",
6
6
  "license": "MIT",
@@ -34,7 +34,7 @@
34
34
  "README.md"
35
35
  ],
36
36
  "dependencies": {
37
- "@tradecanvas/commons": "1.3.0"
37
+ "@tradecanvas/commons": "1.7.0"
38
38
  },
39
39
  "devDependencies": {
40
40
  "jsdom": "^25.0.1",