@tradecanvas/core 1.4.0 → 1.10.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 (491) hide show
  1. package/README.md +107 -107
  2. package/dist/WebGLSeriesRenderer-DQOPCwno.js +1643 -0
  3. package/dist/WebGLSeriesRenderer-DQOPCwno.js.map +1 -0
  4. package/dist/WebGLSeriesRenderer-DspCYR38.cjs +429 -0
  5. package/dist/WebGLSeriesRenderer-DspCYR38.cjs.map +1 -0
  6. package/dist/axis/GridRenderer.d.ts.map +1 -1
  7. package/dist/axis/PriceAxis.d.ts +12 -1
  8. package/dist/axis/PriceAxis.d.ts.map +1 -1
  9. package/dist/axis/TimeAxis.d.ts +7 -4
  10. package/dist/axis/TimeAxis.d.ts.map +1 -1
  11. package/dist/axis/gridLines.d.ts +9 -0
  12. package/dist/axis/gridLines.d.ts.map +1 -0
  13. package/dist/charts/BarRenderer.d.ts.map +1 -1
  14. package/dist/charts/CandlestickRenderer.d.ts.map +1 -1
  15. package/dist/charts/CompareRenderer.d.ts +21 -4
  16. package/dist/charts/CompareRenderer.d.ts.map +1 -1
  17. package/dist/charts/HiLoRenderer.d.ts +14 -0
  18. package/dist/charts/HiLoRenderer.d.ts.map +1 -0
  19. package/dist/charts/HollowCandleRenderer.d.ts.map +1 -1
  20. package/dist/charts/PeriodLevelsRenderer.d.ts.map +1 -1
  21. package/dist/charts/VolumeCandleRenderer.d.ts.map +1 -1
  22. package/dist/charts/VolumeRenderer.d.ts +6 -3
  23. package/dist/charts/VolumeRenderer.d.ts.map +1 -1
  24. package/dist/charts/denseBars.d.ts +28 -0
  25. package/dist/charts/denseBars.d.ts.map +1 -0
  26. package/dist/charts/index.d.ts +3 -0
  27. package/dist/charts/index.d.ts.map +1 -1
  28. package/dist/charts/pixelGrid.d.ts +49 -0
  29. package/dist/charts/pixelGrid.d.ts.map +1 -0
  30. package/dist/charts/transforms/kagi.d.ts +3 -2
  31. package/dist/charts/transforms/kagi.d.ts.map +1 -1
  32. package/dist/charts/transforms/renko.d.ts.map +1 -1
  33. package/dist/drawings/DrawingBase.d.ts +34 -1
  34. package/dist/drawings/DrawingBase.d.ts.map +1 -1
  35. package/dist/drawings/DrawingCreator.d.ts +51 -0
  36. package/dist/drawings/DrawingCreator.d.ts.map +1 -0
  37. package/dist/drawings/DrawingDrag.d.ts +36 -0
  38. package/dist/drawings/DrawingDrag.d.ts.map +1 -0
  39. package/dist/drawings/DrawingManager.d.ts +156 -33
  40. package/dist/drawings/DrawingManager.d.ts.map +1 -1
  41. package/dist/drawings/DrawingRenderer.d.ts +2 -2
  42. package/dist/drawings/DrawingRenderer.d.ts.map +1 -1
  43. package/dist/drawings/DrawingSelection.d.ts +28 -0
  44. package/dist/drawings/DrawingSelection.d.ts.map +1 -0
  45. package/dist/drawings/drawingHistory.d.ts +12 -0
  46. package/dist/drawings/drawingHistory.d.ts.map +1 -0
  47. package/dist/drawings/drawingShortcuts.d.ts +11 -0
  48. package/dist/drawings/drawingShortcuts.d.ts.map +1 -0
  49. package/dist/drawings/drawingState.d.ts +29 -0
  50. package/dist/drawings/drawingState.d.ts.map +1 -0
  51. package/dist/drawings/index.d.ts +2 -1
  52. package/dist/drawings/index.d.ts.map +1 -1
  53. package/dist/drawings/magnetSnap.d.ts +12 -0
  54. package/dist/drawings/magnetSnap.d.ts.map +1 -0
  55. package/dist/drawings/tools/AnchoredVWAP.d.ts.map +1 -1
  56. package/dist/drawings/tools/Circle.d.ts +1 -0
  57. package/dist/drawings/tools/Circle.d.ts.map +1 -1
  58. package/dist/drawings/tools/CrossLine.d.ts.map +1 -1
  59. package/dist/drawings/tools/DateRange.d.ts.map +1 -1
  60. package/dist/drawings/tools/ElliottWave.d.ts +128 -3
  61. package/dist/drawings/tools/ElliottWave.d.ts.map +1 -1
  62. package/dist/drawings/tools/Ellipse.d.ts +1 -0
  63. package/dist/drawings/tools/Ellipse.d.ts.map +1 -1
  64. package/dist/drawings/tools/ExtendedLine.d.ts +1 -0
  65. package/dist/drawings/tools/ExtendedLine.d.ts.map +1 -1
  66. package/dist/drawings/tools/FibChannel.d.ts +7 -0
  67. package/dist/drawings/tools/FibChannel.d.ts.map +1 -1
  68. package/dist/drawings/tools/FibExtension.d.ts +20 -0
  69. package/dist/drawings/tools/FibExtension.d.ts.map +1 -1
  70. package/dist/drawings/tools/FibRetracement.d.ts +28 -0
  71. package/dist/drawings/tools/FibRetracement.d.ts.map +1 -1
  72. package/dist/drawings/tools/FibSpeedResistanceFan.d.ts +9 -1
  73. package/dist/drawings/tools/FibSpeedResistanceFan.d.ts.map +1 -1
  74. package/dist/drawings/tools/FibTimeZones.d.ts +16 -0
  75. package/dist/drawings/tools/FibTimeZones.d.ts.map +1 -1
  76. package/dist/drawings/tools/GannBox.d.ts.map +1 -1
  77. package/dist/drawings/tools/GannFan.d.ts.map +1 -1
  78. package/dist/drawings/tools/HorizontalLine.d.ts +1 -0
  79. package/dist/drawings/tools/HorizontalLine.d.ts.map +1 -1
  80. package/dist/drawings/tools/HorizontalRay.d.ts +1 -0
  81. package/dist/drawings/tools/HorizontalRay.d.ts.map +1 -1
  82. package/dist/drawings/tools/Measure.d.ts.map +1 -1
  83. package/dist/drawings/tools/ParallelChannel.d.ts +12 -0
  84. package/dist/drawings/tools/ParallelChannel.d.ts.map +1 -1
  85. package/dist/drawings/tools/PriceLabel.d.ts +1 -0
  86. package/dist/drawings/tools/PriceLabel.d.ts.map +1 -1
  87. package/dist/drawings/tools/PriceRange.d.ts.map +1 -1
  88. package/dist/drawings/tools/Ray.d.ts +1 -0
  89. package/dist/drawings/tools/Ray.d.ts.map +1 -1
  90. package/dist/drawings/tools/Rectangle.d.ts +1 -0
  91. package/dist/drawings/tools/Rectangle.d.ts.map +1 -1
  92. package/dist/drawings/tools/RegressionChannel.d.ts +1 -0
  93. package/dist/drawings/tools/RegressionChannel.d.ts.map +1 -1
  94. package/dist/drawings/tools/RiskReward.d.ts +59 -6
  95. package/dist/drawings/tools/RiskReward.d.ts.map +1 -1
  96. package/dist/drawings/tools/TextAnnotation.d.ts +1 -0
  97. package/dist/drawings/tools/TextAnnotation.d.ts.map +1 -1
  98. package/dist/drawings/tools/TrendAngle.d.ts.map +1 -1
  99. package/dist/drawings/tools/TrendLine.d.ts +3 -0
  100. package/dist/drawings/tools/TrendLine.d.ts.map +1 -1
  101. package/dist/drawings/tools/Triangle.d.ts +1 -0
  102. package/dist/drawings/tools/Triangle.d.ts.map +1 -1
  103. package/dist/drawings/tools/VerticalLine.d.ts.map +1 -1
  104. package/dist/drawings/tools/VolumeProfileRange.d.ts +1 -0
  105. package/dist/drawings/tools/VolumeProfileRange.d.ts.map +1 -1
  106. package/dist/drawings/tools/annotations.d.ts +113 -0
  107. package/dist/drawings/tools/annotations.d.ts.map +1 -0
  108. package/dist/drawings/tools/cycles.d.ts +37 -0
  109. package/dist/drawings/tools/cycles.d.ts.map +1 -0
  110. package/dist/drawings/tools/fibGeometry.d.ts +202 -0
  111. package/dist/drawings/tools/fibGeometry.d.ts.map +1 -0
  112. package/dist/drawings/tools/forecast.d.ts +85 -0
  113. package/dist/drawings/tools/forecast.d.ts.map +1 -0
  114. package/dist/drawings/tools/freehand.d.ts +81 -0
  115. package/dist/drawings/tools/freehand.d.ts.map +1 -0
  116. package/dist/drawings/tools/index.d.ts +7 -0
  117. package/dist/drawings/tools/index.d.ts.map +1 -1
  118. package/dist/drawings/tools/labels.d.ts +32 -3
  119. package/dist/drawings/tools/labels.d.ts.map +1 -1
  120. package/dist/drawings/tools/options.d.ts +16 -0
  121. package/dist/drawings/tools/options.d.ts.map +1 -0
  122. package/dist/drawings/tools/patterns.d.ts +32 -0
  123. package/dist/drawings/tools/patterns.d.ts.map +1 -1
  124. package/dist/drawings/tools/priceLevels.d.ts +29 -0
  125. package/dist/drawings/tools/priceLevels.d.ts.map +1 -0
  126. package/dist/drawings/tools/textBox.d.ts +39 -0
  127. package/dist/drawings/tools/textBox.d.ts.map +1 -0
  128. package/dist/engine/LayerManager.d.ts +23 -0
  129. package/dist/engine/LayerManager.d.ts.map +1 -1
  130. package/dist/engine/RenderEngine.d.ts +53 -1
  131. package/dist/engine/RenderEngine.d.ts.map +1 -1
  132. package/dist/engine/gpu.d.ts +83 -0
  133. package/dist/engine/gpu.d.ts.map +1 -0
  134. package/dist/engine/index.d.ts +2 -0
  135. package/dist/engine/index.d.ts.map +1 -1
  136. package/dist/engine/loadWebGL.d.ts +9 -0
  137. package/dist/engine/loadWebGL.d.ts.map +1 -0
  138. package/dist/engine/plotSteps.d.ts +39 -0
  139. package/dist/engine/plotSteps.d.ts.map +1 -0
  140. package/dist/events/EventBus.d.ts +2 -0
  141. package/dist/events/EventBus.d.ts.map +1 -1
  142. package/dist/features/AlertManager.d.ts +117 -6
  143. package/dist/features/AlertManager.d.ts.map +1 -1
  144. package/dist/features/ChartState.d.ts +19 -1
  145. package/dist/features/ChartState.d.ts.map +1 -1
  146. package/dist/features/DataExporter.d.ts +7 -2
  147. package/dist/features/DataExporter.d.ts.map +1 -1
  148. package/dist/features/ReplayManager.d.ts +7 -0
  149. package/dist/features/ReplayManager.d.ts.map +1 -1
  150. package/dist/features/SignalMarkerManager.d.ts +8 -0
  151. package/dist/features/SignalMarkerManager.d.ts.map +1 -1
  152. package/dist/features/TradeZoneManager.d.ts.map +1 -1
  153. package/dist/features/UndoRedoManager.d.ts +30 -1
  154. package/dist/features/UndoRedoManager.d.ts.map +1 -1
  155. package/dist/features/index.d.ts +3 -1
  156. package/dist/features/index.d.ts.map +1 -1
  157. package/dist/gridLines-J41F0DQ6.cjs +2 -0
  158. package/dist/gridLines-J41F0DQ6.cjs.map +1 -0
  159. package/dist/gridLines-kFhXyH-u.js +218 -0
  160. package/dist/gridLines-kFhXyH-u.js.map +1 -0
  161. package/dist/index.cjs +11 -9
  162. package/dist/index.cjs.map +1 -1
  163. package/dist/index.js +10638 -4930
  164. package/dist/index.js.map +1 -1
  165. package/dist/indicators/IndicatorBase.d.ts +5 -1
  166. package/dist/indicators/IndicatorBase.d.ts.map +1 -1
  167. package/dist/indicators/IndicatorEngine.d.ts +123 -11
  168. package/dist/indicators/IndicatorEngine.d.ts.map +1 -1
  169. package/dist/indicators/PointwiseIndicator.d.ts +25 -0
  170. package/dist/indicators/PointwiseIndicator.d.ts.map +1 -0
  171. package/dist/indicators/index.d.ts +32 -0
  172. package/dist/indicators/index.d.ts.map +1 -1
  173. package/dist/indicators/linePen.d.ts +38 -0
  174. package/dist/indicators/linePen.d.ts.map +1 -0
  175. package/dist/indicators/math.d.ts +47 -0
  176. package/dist/indicators/math.d.ts.map +1 -0
  177. package/dist/indicators/overlay/ALMA.d.ts +20 -0
  178. package/dist/indicators/overlay/ALMA.d.ts.map +1 -0
  179. package/dist/indicators/overlay/Alligator.d.ts +2 -14
  180. package/dist/indicators/overlay/Alligator.d.ts.map +1 -1
  181. package/dist/indicators/overlay/AnchoredVWAP.d.ts +2 -9
  182. package/dist/indicators/overlay/AnchoredVWAP.d.ts.map +1 -1
  183. package/dist/indicators/overlay/BollingerBands.d.ts +2 -10
  184. package/dist/indicators/overlay/BollingerBands.d.ts.map +1 -1
  185. package/dist/indicators/overlay/ChandeKrollStop.d.ts +16 -0
  186. package/dist/indicators/overlay/ChandeKrollStop.d.ts.map +1 -0
  187. package/dist/indicators/overlay/ChandelierExit.d.ts +2 -10
  188. package/dist/indicators/overlay/ChandelierExit.d.ts.map +1 -1
  189. package/dist/indicators/overlay/DEMA.d.ts +11 -0
  190. package/dist/indicators/overlay/DEMA.d.ts.map +1 -0
  191. package/dist/indicators/overlay/DonchianChannel.d.ts +2 -9
  192. package/dist/indicators/overlay/DonchianChannel.d.ts.map +1 -1
  193. package/dist/indicators/overlay/EMA.d.ts +2 -9
  194. package/dist/indicators/overlay/EMA.d.ts.map +1 -1
  195. package/dist/indicators/overlay/Envelope.d.ts +2 -10
  196. package/dist/indicators/overlay/Envelope.d.ts.map +1 -1
  197. package/dist/indicators/overlay/GuppyMMA.d.ts +11 -0
  198. package/dist/indicators/overlay/GuppyMMA.d.ts.map +1 -0
  199. package/dist/indicators/overlay/HullMA.d.ts +2 -9
  200. package/dist/indicators/overlay/HullMA.d.ts.map +1 -1
  201. package/dist/indicators/overlay/Ichimoku.d.ts +2 -12
  202. package/dist/indicators/overlay/Ichimoku.d.ts.map +1 -1
  203. package/dist/indicators/overlay/KAMA.d.ts +15 -0
  204. package/dist/indicators/overlay/KAMA.d.ts.map +1 -0
  205. package/dist/indicators/overlay/KeltnerChannel.d.ts +2 -11
  206. package/dist/indicators/overlay/KeltnerChannel.d.ts.map +1 -1
  207. package/dist/indicators/overlay/LSMA.d.ts +19 -0
  208. package/dist/indicators/overlay/LSMA.d.ts.map +1 -0
  209. package/dist/indicators/overlay/LinearRegressionChannel.d.ts +2 -10
  210. package/dist/indicators/overlay/LinearRegressionChannel.d.ts.map +1 -1
  211. package/dist/indicators/overlay/MACross.d.ts +9 -0
  212. package/dist/indicators/overlay/MACross.d.ts.map +1 -0
  213. package/dist/indicators/overlay/MARibbon.d.ts +8 -0
  214. package/dist/indicators/overlay/MARibbon.d.ts.map +1 -0
  215. package/dist/indicators/overlay/MTFMovingAverage.d.ts +2 -10
  216. package/dist/indicators/overlay/MTFMovingAverage.d.ts.map +1 -1
  217. package/dist/indicators/overlay/McGinleyDynamic.d.ts +13 -0
  218. package/dist/indicators/overlay/McGinleyDynamic.d.ts.map +1 -0
  219. package/dist/indicators/overlay/ParabolicSAR.d.ts +2 -10
  220. package/dist/indicators/overlay/ParabolicSAR.d.ts.map +1 -1
  221. package/dist/indicators/overlay/PivotPoints.d.ts +2 -9
  222. package/dist/indicators/overlay/PivotPoints.d.ts.map +1 -1
  223. package/dist/indicators/overlay/SMA.d.ts +2 -9
  224. package/dist/indicators/overlay/SMA.d.ts.map +1 -1
  225. package/dist/indicators/overlay/SMMA.d.ts +13 -0
  226. package/dist/indicators/overlay/SMMA.d.ts.map +1 -0
  227. package/dist/indicators/overlay/SessionVWAP.d.ts +2 -9
  228. package/dist/indicators/overlay/SessionVWAP.d.ts.map +1 -1
  229. package/dist/indicators/overlay/StandardErrorBands.d.ts +12 -0
  230. package/dist/indicators/overlay/StandardErrorBands.d.ts.map +1 -0
  231. package/dist/indicators/overlay/Supertrend.d.ts +2 -10
  232. package/dist/indicators/overlay/Supertrend.d.ts.map +1 -1
  233. package/dist/indicators/overlay/TEMA.d.ts +2 -9
  234. package/dist/indicators/overlay/TEMA.d.ts.map +1 -1
  235. package/dist/indicators/overlay/VWAP.d.ts +2 -7
  236. package/dist/indicators/overlay/VWAP.d.ts.map +1 -1
  237. package/dist/indicators/overlay/VWMA.d.ts +2 -9
  238. package/dist/indicators/overlay/VWMA.d.ts.map +1 -1
  239. package/dist/indicators/overlay/WMA.d.ts +2 -9
  240. package/dist/indicators/overlay/WMA.d.ts.map +1 -1
  241. package/dist/indicators/overlay/WilliamsFractals.d.ts +15 -0
  242. package/dist/indicators/overlay/WilliamsFractals.d.ts.map +1 -0
  243. package/dist/indicators/overlay/ZigZag.d.ts +2 -9
  244. package/dist/indicators/overlay/ZigZag.d.ts.map +1 -1
  245. package/dist/indicators/panel/ADX.d.ts +2 -10
  246. package/dist/indicators/panel/ADX.d.ts.map +1 -1
  247. package/dist/indicators/panel/ATR.d.ts +2 -10
  248. package/dist/indicators/panel/ATR.d.ts.map +1 -1
  249. package/dist/indicators/panel/AcceleratorOscillator.d.ts +5 -10
  250. package/dist/indicators/panel/AcceleratorOscillator.d.ts.map +1 -1
  251. package/dist/indicators/panel/AccumulationDistribution.d.ts +2 -8
  252. package/dist/indicators/panel/AccumulationDistribution.d.ts.map +1 -1
  253. package/dist/indicators/panel/Aroon.d.ts +2 -10
  254. package/dist/indicators/panel/Aroon.d.ts.map +1 -1
  255. package/dist/indicators/panel/AverageDayRange.d.ts +9 -0
  256. package/dist/indicators/panel/AverageDayRange.d.ts.map +1 -0
  257. package/dist/indicators/panel/AwesomeOscillator.d.ts +2 -11
  258. package/dist/indicators/panel/AwesomeOscillator.d.ts.map +1 -1
  259. package/dist/indicators/panel/BalanceOfPower.d.ts +2 -10
  260. package/dist/indicators/panel/BalanceOfPower.d.ts.map +1 -1
  261. package/dist/indicators/panel/BollingerBandWidth.d.ts +18 -0
  262. package/dist/indicators/panel/BollingerBandWidth.d.ts.map +1 -0
  263. package/dist/indicators/panel/BollingerPercentB.d.ts +21 -0
  264. package/dist/indicators/panel/BollingerPercentB.d.ts.map +1 -0
  265. package/dist/indicators/panel/CCI.d.ts +2 -10
  266. package/dist/indicators/panel/CCI.d.ts.map +1 -1
  267. package/dist/indicators/panel/CMF.d.ts +2 -10
  268. package/dist/indicators/panel/CMF.d.ts.map +1 -1
  269. package/dist/indicators/panel/ChaikinOscillator.d.ts +2 -11
  270. package/dist/indicators/panel/ChaikinOscillator.d.ts.map +1 -1
  271. package/dist/indicators/panel/ChaikinVolatility.d.ts +2 -11
  272. package/dist/indicators/panel/ChaikinVolatility.d.ts.map +1 -1
  273. package/dist/indicators/panel/ChandeMomentum.d.ts +2 -10
  274. package/dist/indicators/panel/ChandeMomentum.d.ts.map +1 -1
  275. package/dist/indicators/panel/ChoppinessIndex.d.ts +2 -10
  276. package/dist/indicators/panel/ChoppinessIndex.d.ts.map +1 -1
  277. package/dist/indicators/panel/ConnorsRSI.d.ts +2 -12
  278. package/dist/indicators/panel/ConnorsRSI.d.ts.map +1 -1
  279. package/dist/indicators/panel/Coppock.d.ts +2 -12
  280. package/dist/indicators/panel/Coppock.d.ts.map +1 -1
  281. package/dist/indicators/panel/DetrendedPriceOscillator.d.ts +2 -10
  282. package/dist/indicators/panel/DetrendedPriceOscillator.d.ts.map +1 -1
  283. package/dist/indicators/panel/DisparityIndex.d.ts +2 -10
  284. package/dist/indicators/panel/DisparityIndex.d.ts.map +1 -1
  285. package/dist/indicators/panel/EaseOfMovement.d.ts +2 -12
  286. package/dist/indicators/panel/EaseOfMovement.d.ts.map +1 -1
  287. package/dist/indicators/panel/ElderRay.d.ts +3 -9
  288. package/dist/indicators/panel/ElderRay.d.ts.map +1 -1
  289. package/dist/indicators/panel/FisherTransform.d.ts +2 -10
  290. package/dist/indicators/panel/FisherTransform.d.ts.map +1 -1
  291. package/dist/indicators/panel/ForceIndex.d.ts +2 -10
  292. package/dist/indicators/panel/ForceIndex.d.ts.map +1 -1
  293. package/dist/indicators/panel/HistoricalVolatility.d.ts +22 -0
  294. package/dist/indicators/panel/HistoricalVolatility.d.ts.map +1 -0
  295. package/dist/indicators/panel/KST.d.ts +2 -18
  296. package/dist/indicators/panel/KST.d.ts.map +1 -1
  297. package/dist/indicators/panel/Klinger.d.ts +2 -12
  298. package/dist/indicators/panel/Klinger.d.ts.map +1 -1
  299. package/dist/indicators/panel/LinearRegressionSlope.d.ts +9 -0
  300. package/dist/indicators/panel/LinearRegressionSlope.d.ts.map +1 -0
  301. package/dist/indicators/panel/MACD.d.ts +2 -12
  302. package/dist/indicators/panel/MACD.d.ts.map +1 -1
  303. package/dist/indicators/panel/MFI.d.ts +2 -10
  304. package/dist/indicators/panel/MFI.d.ts.map +1 -1
  305. package/dist/indicators/panel/MassIndex.d.ts +2 -11
  306. package/dist/indicators/panel/MassIndex.d.ts.map +1 -1
  307. package/dist/indicators/panel/Momentum.d.ts +9 -0
  308. package/dist/indicators/panel/Momentum.d.ts.map +1 -0
  309. package/dist/indicators/panel/NetVolume.d.ts +11 -0
  310. package/dist/indicators/panel/NetVolume.d.ts.map +1 -0
  311. package/dist/indicators/panel/OBV.d.ts +2 -8
  312. package/dist/indicators/panel/OBV.d.ts.map +1 -1
  313. package/dist/indicators/panel/PercentagePriceOscillator.d.ts +2 -12
  314. package/dist/indicators/panel/PercentagePriceOscillator.d.ts.map +1 -1
  315. package/dist/indicators/panel/PrettyGoodOscillator.d.ts +2 -10
  316. package/dist/indicators/panel/PrettyGoodOscillator.d.ts.map +1 -1
  317. package/dist/indicators/panel/PriceVolumeTrend.d.ts +2 -8
  318. package/dist/indicators/panel/PriceVolumeTrend.d.ts.map +1 -1
  319. package/dist/indicators/panel/Qstick.d.ts +2 -10
  320. package/dist/indicators/panel/Qstick.d.ts.map +1 -1
  321. package/dist/indicators/panel/ROC.d.ts +2 -10
  322. package/dist/indicators/panel/ROC.d.ts.map +1 -1
  323. package/dist/indicators/panel/RSI.d.ts +2 -10
  324. package/dist/indicators/panel/RSI.d.ts.map +1 -1
  325. package/dist/indicators/panel/RelativeMomentumIndex.d.ts +2 -11
  326. package/dist/indicators/panel/RelativeMomentumIndex.d.ts.map +1 -1
  327. package/dist/indicators/panel/RelativeVigor.d.ts +2 -10
  328. package/dist/indicators/panel/RelativeVigor.d.ts.map +1 -1
  329. package/dist/indicators/panel/RelativeVolatilityIndex.d.ts +12 -0
  330. package/dist/indicators/panel/RelativeVolatilityIndex.d.ts.map +1 -0
  331. package/dist/indicators/panel/SchaffTrendCycle.d.ts +2 -12
  332. package/dist/indicators/panel/SchaffTrendCycle.d.ts.map +1 -1
  333. package/dist/indicators/panel/StandardError.d.ts +9 -0
  334. package/dist/indicators/panel/StandardError.d.ts.map +1 -0
  335. package/dist/indicators/panel/StdDev.d.ts +2 -10
  336. package/dist/indicators/panel/StdDev.d.ts.map +1 -1
  337. package/dist/indicators/panel/Stochastic.d.ts +2 -12
  338. package/dist/indicators/panel/Stochastic.d.ts.map +1 -1
  339. package/dist/indicators/panel/StochasticMomentumIndex.d.ts +12 -0
  340. package/dist/indicators/panel/StochasticMomentumIndex.d.ts.map +1 -0
  341. package/dist/indicators/panel/StochasticRSI.d.ts +2 -13
  342. package/dist/indicators/panel/StochasticRSI.d.ts.map +1 -1
  343. package/dist/indicators/panel/TRIX.d.ts +2 -11
  344. package/dist/indicators/panel/TRIX.d.ts.map +1 -1
  345. package/dist/indicators/panel/TSI.d.ts +2 -12
  346. package/dist/indicators/panel/TSI.d.ts.map +1 -1
  347. package/dist/indicators/panel/TrendStrengthIndex.d.ts +9 -0
  348. package/dist/indicators/panel/TrendStrengthIndex.d.ts.map +1 -0
  349. package/dist/indicators/panel/UlcerIndex.d.ts +15 -0
  350. package/dist/indicators/panel/UlcerIndex.d.ts.map +1 -0
  351. package/dist/indicators/panel/UltimateOscillator.d.ts +2 -12
  352. package/dist/indicators/panel/UltimateOscillator.d.ts.map +1 -1
  353. package/dist/indicators/panel/VROC.d.ts +2 -10
  354. package/dist/indicators/panel/VROC.d.ts.map +1 -1
  355. package/dist/indicators/panel/VolumeDelta.d.ts +2 -10
  356. package/dist/indicators/panel/VolumeDelta.d.ts.map +1 -1
  357. package/dist/indicators/panel/VolumeOscillator.d.ts +11 -0
  358. package/dist/indicators/panel/VolumeOscillator.d.ts.map +1 -0
  359. package/dist/indicators/panel/VolumeProfile.d.ts +2 -9
  360. package/dist/indicators/panel/VolumeProfile.d.ts.map +1 -1
  361. package/dist/indicators/panel/Vortex.d.ts +2 -10
  362. package/dist/indicators/panel/Vortex.d.ts.map +1 -1
  363. package/dist/indicators/panel/WilliamsAD.d.ts +2 -10
  364. package/dist/indicators/panel/WilliamsAD.d.ts.map +1 -1
  365. package/dist/indicators/panel/WilliamsR.d.ts +2 -10
  366. package/dist/indicators/panel/WilliamsR.d.ts.map +1 -1
  367. package/dist/indicators/plots.d.ts +49 -0
  368. package/dist/indicators/plots.d.ts.map +1 -0
  369. package/dist/indicators/registry.d.ts.map +1 -1
  370. package/dist/indicators/sources.d.ts +37 -0
  371. package/dist/indicators/sources.d.ts.map +1 -0
  372. package/dist/indicators/symbols/SymbolSeriesStore.d.ts +21 -0
  373. package/dist/indicators/symbols/SymbolSeriesStore.d.ts.map +1 -0
  374. package/dist/indicators/symbols/symbolIndicators.d.ts +34 -0
  375. package/dist/indicators/symbols/symbolIndicators.d.ts.map +1 -0
  376. package/dist/interaction/CrosshairHandler.d.ts +7 -4
  377. package/dist/interaction/CrosshairHandler.d.ts.map +1 -1
  378. package/dist/interaction/CrosshairTooltip.d.ts +11 -5
  379. package/dist/interaction/CrosshairTooltip.d.ts.map +1 -1
  380. package/dist/interaction/InteractionManager.d.ts +63 -1
  381. package/dist/interaction/InteractionManager.d.ts.map +1 -1
  382. package/dist/interaction/PaneResizeHandler.d.ts.map +1 -1
  383. package/dist/interaction/PinnedTooltip.d.ts +9 -1
  384. package/dist/interaction/PinnedTooltip.d.ts.map +1 -1
  385. package/dist/interaction/PriceAxisAddButton.d.ts +17 -0
  386. package/dist/interaction/PriceAxisAddButton.d.ts.map +1 -0
  387. package/dist/interaction/ZoomHandler.d.ts +8 -0
  388. package/dist/interaction/ZoomHandler.d.ts.map +1 -1
  389. package/dist/interaction/index.d.ts +2 -0
  390. package/dist/interaction/index.d.ts.map +1 -1
  391. package/dist/realtime/CurrentPriceLine.d.ts.map +1 -1
  392. package/dist/realtime/StreamManager.d.ts +5 -0
  393. package/dist/realtime/StreamManager.d.ts.map +1 -1
  394. package/dist/realtime/TickAggregator.d.ts.map +1 -1
  395. package/dist/realtime/TickBars.d.ts +58 -0
  396. package/dist/realtime/TickBars.d.ts.map +1 -0
  397. package/dist/realtime/adapters/BinanceAdapter.d.ts +24 -1
  398. package/dist/realtime/adapters/BinanceAdapter.d.ts.map +1 -1
  399. package/dist/realtime/adapters/BybitAdapter.d.ts +3 -1
  400. package/dist/realtime/adapters/BybitAdapter.d.ts.map +1 -1
  401. package/dist/realtime/adapters/CoinbaseAdapter.d.ts.map +1 -1
  402. package/dist/realtime/adapters/KrakenAdapter.d.ts.map +1 -1
  403. package/dist/realtime/adapters/MockAdapter.d.ts +19 -1
  404. package/dist/realtime/adapters/MockAdapter.d.ts.map +1 -1
  405. package/dist/realtime/adapters/PollingAdapter.d.ts +14 -1
  406. package/dist/realtime/adapters/PollingAdapter.d.ts.map +1 -1
  407. package/dist/realtime/adapters/ResamplingAdapter.d.ts +84 -0
  408. package/dist/realtime/adapters/ResamplingAdapter.d.ts.map +1 -0
  409. package/dist/realtime/adapters/WebSocketAdapter.d.ts +14 -1
  410. package/dist/realtime/adapters/WebSocketAdapter.d.ts.map +1 -1
  411. package/dist/realtime/adapters/binanceTypes.d.ts +10 -1
  412. package/dist/realtime/adapters/binanceTypes.d.ts.map +1 -1
  413. package/dist/realtime/adapters/index.d.ts +1 -0
  414. package/dist/realtime/adapters/index.d.ts.map +1 -1
  415. package/dist/realtime/index.d.ts +1 -0
  416. package/dist/realtime/index.d.ts.map +1 -1
  417. package/dist/trading/BracketTool.d.ts.map +1 -1
  418. package/dist/trading/OrderDraftTool.d.ts.map +1 -1
  419. package/dist/trading/OrderRenderer.d.ts +2 -1
  420. package/dist/trading/OrderRenderer.d.ts.map +1 -1
  421. package/dist/trading/PaperExecutionAdapter.d.ts +17 -3
  422. package/dist/trading/PaperExecutionAdapter.d.ts.map +1 -1
  423. package/dist/trading/PositionRenderer.d.ts +6 -1
  424. package/dist/trading/PositionRenderer.d.ts.map +1 -1
  425. package/dist/trading/TradingContextMenu.d.ts +1 -1
  426. package/dist/trading/TradingContextMenu.d.ts.map +1 -1
  427. package/dist/trading/TradingDragHandler.d.ts.map +1 -1
  428. package/dist/trading/TradingManager.d.ts +26 -2
  429. package/dist/trading/TradingManager.d.ts.map +1 -1
  430. package/dist/trading/TradingRenderer.d.ts +2 -0
  431. package/dist/trading/TradingRenderer.d.ts.map +1 -1
  432. package/dist/trading/fillMarks.d.ts +14 -0
  433. package/dist/trading/fillMarks.d.ts.map +1 -0
  434. package/dist/trading/lineButtons.d.ts +31 -0
  435. package/dist/trading/lineButtons.d.ts.map +1 -0
  436. package/dist/trading/plot.d.ts +4 -0
  437. package/dist/trading/plot.d.ts.map +1 -0
  438. package/dist/trading/positionFormat.d.ts +1 -1
  439. package/dist/trading/positionFormat.d.ts.map +1 -1
  440. package/dist/ui/BarCountdown.d.ts.map +1 -1
  441. package/dist/ui/PriceLines.d.ts +38 -0
  442. package/dist/ui/PriceLines.d.ts.map +1 -0
  443. package/dist/ui/SessionBreaks.d.ts +14 -1
  444. package/dist/ui/SessionBreaks.d.ts.map +1 -1
  445. package/dist/ui/SessionShading.d.ts +5 -0
  446. package/dist/ui/SessionShading.d.ts.map +1 -1
  447. package/dist/ui/Watermark.d.ts +2 -0
  448. package/dist/ui/Watermark.d.ts.map +1 -1
  449. package/dist/ui/axisValueLabels.d.ts +52 -0
  450. package/dist/ui/axisValueLabels.d.ts.map +1 -0
  451. package/dist/ui/index.d.ts +7 -1
  452. package/dist/ui/index.d.ts.map +1 -1
  453. package/dist/ui/sessionHours.d.ts +12 -2
  454. package/dist/ui/sessionHours.d.ts.map +1 -1
  455. package/dist/ui/shapes.d.ts +9 -0
  456. package/dist/ui/shapes.d.ts.map +1 -0
  457. package/dist/viewport/Viewport.d.ts +35 -2
  458. package/dist/viewport/Viewport.d.ts.map +1 -1
  459. package/dist/viewport/index.d.ts +1 -1
  460. package/dist/viewport/index.d.ts.map +1 -1
  461. package/dist/viewport/rangePresets.d.ts +4 -2
  462. package/dist/viewport/rangePresets.d.ts.map +1 -1
  463. package/dist/webgl/WebGLSeriesRenderer.d.ts +70 -0
  464. package/dist/webgl/WebGLSeriesRenderer.d.ts.map +1 -0
  465. package/dist/webgl/commandDrawer.d.ts +31 -0
  466. package/dist/webgl/commandDrawer.d.ts.map +1 -0
  467. package/dist/webgl/glColor.d.ts +13 -0
  468. package/dist/webgl/glColor.d.ts.map +1 -0
  469. package/dist/webgl/glKit.d.ts +26 -0
  470. package/dist/webgl/glKit.d.ts.map +1 -0
  471. package/dist/webgl/index.d.ts +5 -0
  472. package/dist/webgl/index.d.ts.map +1 -0
  473. package/dist/webgl/polygonSpans.d.ts +20 -0
  474. package/dist/webgl/polygonSpans.d.ts.map +1 -0
  475. package/dist/webgl/recordedCommands.d.ts +75 -0
  476. package/dist/webgl/recordedCommands.d.ts.map +1 -0
  477. package/dist/webgl/recordedPath.d.ts +51 -0
  478. package/dist/webgl/recordedPath.d.ts.map +1 -0
  479. package/dist/webgl/recordedShaders.d.ts +38 -0
  480. package/dist/webgl/recordedShaders.d.ts.map +1 -0
  481. package/dist/webgl/recorder.d.ts +67 -0
  482. package/dist/webgl/recorder.d.ts.map +1 -0
  483. package/dist/webgl/seriesUploads.d.ts +40 -0
  484. package/dist/webgl/seriesUploads.d.ts.map +1 -0
  485. package/dist/webgl/shaders.d.ts +39 -0
  486. package/dist/webgl/shaders.d.ts.map +1 -0
  487. package/dist/webgl/strokeGeometry.d.ts +28 -0
  488. package/dist/webgl/strokeGeometry.d.ts.map +1 -0
  489. package/dist/webgl/yMapping.d.ts +32 -0
  490. package/dist/webgl/yMapping.d.ts.map +1 -0
  491. package/package.json +2 -2
@@ -0,0 +1,34 @@
1
+ import { DataSeries, IndicatorConfig, IndicatorDescriptor, IndicatorValue } from '@tradecanvas/commons';
2
+ import { PointwiseIndicator } from '../PointwiseIndicator.js';
3
+ import { SymbolSeriesStore } from './SymbolSeriesStore.js';
4
+ interface SymbolParams {
5
+ symbol: string;
6
+ }
7
+ interface SpreadParams extends SymbolParams {
8
+ ratio: boolean;
9
+ }
10
+ /**
11
+ * Another symbol's close on the chart's bars, by time (its bar at or before
12
+ * each one): compare it on its own scale (`scale: 'left'`) or in a pane of
13
+ * its own. Its bars come from the chart's `setSymbolSeries`.
14
+ */
15
+ export declare class CompareSymbolIndicator extends PointwiseIndicator<SymbolParams> {
16
+ private readonly store;
17
+ descriptor: IndicatorDescriptor;
18
+ constructor(store: SymbolSeriesStore);
19
+ protected read(config: IndicatorConfig): SymbolParams;
20
+ protected pointAt(data: DataSeries, i: number, { symbol }: SymbolParams): IndicatorValue | null;
21
+ }
22
+ /**
23
+ * The chart's close against another symbol's, bar by bar: their difference
24
+ * (`mode` 'spread') or their ratio ('ratio').
25
+ */
26
+ export declare class SpreadIndicator extends PointwiseIndicator<SpreadParams> {
27
+ private readonly store;
28
+ descriptor: IndicatorDescriptor;
29
+ constructor(store: SymbolSeriesStore);
30
+ protected read(config: IndicatorConfig): SpreadParams;
31
+ protected pointAt(data: DataSeries, i: number, { symbol, ratio }: SpreadParams): IndicatorValue | null;
32
+ }
33
+ export {};
34
+ //# sourceMappingURL=symbolIndicators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symbolIndicators.d.ts","sourceRoot":"","sources":["../../../src/indicators/symbols/symbolIndicators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC7G,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,UAAU,YAAY;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,YAAa,SAAQ,YAAY;IACzC,KAAK,EAAE,OAAO,CAAC;CAChB;AAKD;;;;GAIG;AACH,qBAAa,sBAAuB,SAAQ,kBAAkB,CAAC,YAAY,CAAC;IAU9D,OAAO,CAAC,QAAQ,CAAC,KAAK;IATlC,UAAU,EAAE,mBAAmB,CAO7B;gBAE2B,KAAK,EAAE,iBAAiB;IAIrD,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,GAAG,YAAY;IAIrD,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,YAAY,GAAG,cAAc,GAAG,IAAI;CAKhG;AAED;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,kBAAkB,CAAC,YAAY,CAAC;IAWvD,OAAO,CAAC,QAAQ,CAAC,KAAK;IAVlC,UAAU,EAAE,mBAAmB,CAQ7B;gBAE2B,KAAK,EAAE,iBAAiB;IAIrD,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,GAAG,YAAY;IAIrD,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,YAAY,GAAG,cAAc,GAAG,IAAI;CAOvG"}
@@ -1,13 +1,16 @@
1
- import { Point, ViewportState, Theme, DataSeries } from '@tradecanvas/commons';
1
+ import { Point, ViewportState, Theme, DataSeries, TimeFormatter, TimeZoneSetting } from '@tradecanvas/commons';
2
2
  export type CrosshairCallback = (barIndex: number | null, point: Point | null) => void;
3
3
  export type CrosshairMode = 'normal' | 'magnet' | 'hidden';
4
4
  export declare class CrosshairHandler {
5
5
  private position;
6
6
  private callback;
7
7
  private data;
8
- private tzOffsetMinutes;
9
- /** null = browser-local timezone; a number = fixed UTC offset in minutes. */
10
- setTimezoneOffset(minutes: number | null): void;
8
+ private tz;
9
+ private timeFormatter;
10
+ /** An IANA zone, a fixed UTC offset in minutes, or null for the browser's zone. */
11
+ /** Times in your words (the crosshair's label), or null for its own. */
12
+ setTimeFormatter(formatter: TimeFormatter | null): void;
13
+ setTimezoneOffset(tz: TimeZoneSetting): void;
11
14
  private magnetMode;
12
15
  private mode;
13
16
  /** Fixed decimals for the price pill; `null` follows the price axis. */
@@ -1 +1 @@
1
- {"version":3,"file":"CrosshairHandler.d.ts","sourceRoot":"","sources":["../../src/interaction/CrosshairHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAIpF,MAAM,MAAM,iBAAiB,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC;AAEvF,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE3D,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,IAAI,CAAkB;IAC9B,OAAO,CAAC,eAAe,CAAuB;IAE9C,6EAA6E;IAC7E,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAG/C,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,IAAI,CAA2B;IACvC,wEAAwE;IACxE,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,MAAM,CAAW;IAGzB,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,oBAAoB,CAAM;IAClC,wFAAwF;IACxF,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,YAAY,CAAuB;IAE3C,WAAW,CAAC,EAAE,EAAE,iBAAiB,GAAG,IAAI;IAIxC,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAI/B,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAKrC,OAAO,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI;IAKlC,OAAO,IAAI,aAAa;IAIxB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAIjD,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B,WAAW,IAAI,KAAK,GAAG,IAAI;IAI3B;;;;OAIG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAIxC,aAAa,IAAI,MAAM,GAAG,IAAI;IAI9B;;;;OAIG;IACH,eAAe,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,GAAG,IAAI;IAKrE,aAAa,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI;IAI/B,cAAc,IAAI,IAAI;IAQtB,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAsDlF;;;;;;;OAOG;IACH,gBAAgB,CACd,GAAG,EAAE,wBAAwB,EAC7B,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,UAAU,EAChB,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI;IAqCP,kFAAkF;IAClF,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,qBAAqB;IAc7B,OAAO,CAAC,YAAY;IAuBpB,0DAA0D;IAC1D,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,aAAa;CAGtB"}
1
+ {"version":3,"file":"CrosshairHandler.d.ts","sourceRoot":"","sources":["../../src/interaction/CrosshairHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAOpH,MAAM,MAAM,iBAAiB,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC;AAEvF,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE3D,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,IAAI,CAAkB;IAC9B,OAAO,CAAC,EAAE,CAAyB;IACnC,OAAO,CAAC,aAAa,CAA8B;IAEnD,mFAAmF;IACnF,wEAAwE;IACxE,gBAAgB,CAAC,SAAS,EAAE,aAAa,GAAG,IAAI,GAAG,IAAI;IAIvD,iBAAiB,CAAC,EAAE,EAAE,eAAe,GAAG,IAAI;IAG5C,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,IAAI,CAA2B;IACvC,wEAAwE;IACxE,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,MAAM,CAAW;IAGzB,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,oBAAoB,CAAM;IAClC,wFAAwF;IACxF,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,YAAY,CAAuB;IAE3C,WAAW,CAAC,EAAE,EAAE,iBAAiB,GAAG,IAAI;IAIxC,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAI/B,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAKrC,OAAO,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI;IAKlC,OAAO,IAAI,aAAa;IAIxB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAIjD,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B,WAAW,IAAI,KAAK,GAAG,IAAI;IAI3B;;;;OAIG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAIxC,aAAa,IAAI,MAAM,GAAG,IAAI;IAI9B;;;;OAIG;IACH,eAAe,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,GAAG,IAAI;IAKrE,aAAa,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI;IAI/B,cAAc,IAAI,IAAI;IAQtB,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAyDlF;;;;;;;OAOG;IACH,gBAAgB,CACd,GAAG,EAAE,wBAAwB,EAC7B,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,UAAU,EAChB,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI;IAsCP,kFAAkF;IAClF,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,qBAAqB;IAc7B,OAAO,CAAC,YAAY;IA2BpB,0DAA0D;IAC1D,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,aAAa;CAGtB"}
@@ -1,4 +1,4 @@
1
- import { OHLCBar, Theme, Point } from '@tradecanvas/commons';
1
+ import { OHLCBar, Theme, Point, TimeFormatter, TimeZoneSetting } from '@tradecanvas/commons';
2
2
  /** Per-show context the chart knows and the bar alone does not. */
3
3
  export interface CrosshairTooltipContext {
4
4
  /** Previous bar's close: the change is measured from it, like the legend. */
@@ -25,7 +25,7 @@ export interface CrosshairTooltipContext {
25
25
  * Pass the bar spacing in ms when known: without it, a midnight bar can't be
26
26
  * told from a daily one.
27
27
  */
28
- export declare function formatTooltipTime(rawTime: number, tzOffsetMinutes: number | null, barStepMs?: number, locale?: string): string;
28
+ export declare function formatTooltipTime(rawTime: number, tz: TimeZoneSetting, barStepMs?: number, locale?: string): string;
29
29
  /**
30
30
  * Floating OHLCV card that follows the crosshair.
31
31
  *
@@ -39,7 +39,9 @@ export declare class CrosshairTooltip {
39
39
  private appliedTheme;
40
40
  private locale;
41
41
  private pricePrecision;
42
- private tzOffsetMinutes;
42
+ private tz;
43
+ private priceFormatter;
44
+ private timeFormatter;
43
45
  private dirEl;
44
46
  private timeEl;
45
47
  private changeEl;
@@ -53,8 +55,12 @@ export declare class CrosshairTooltip {
53
55
  setLocale(locale: string): void;
54
56
  /** Fixed decimals (a market's precision); `null` picks them from the visible range. */
55
57
  setPricePrecision(precision: number | null): void;
56
- /** Timezone for the time line: `null` = browser-local, a number = UTC offset in minutes. */
57
- setTimezoneOffset(minutes: number | null): void;
58
+ /** Timezone for the time line: an IANA zone, a UTC offset in minutes, or `null` for the browser's. */
59
+ setTimezoneOffset(tz: TimeZoneSetting): void;
60
+ /** Prices in the chart's format (null: decimals). */
61
+ setPriceFormatter(formatter: ((price: number) => string) | null): void;
62
+ /** The time line in your words (null: its own). */
63
+ setTimeFormatter(formatter: TimeFormatter | null): void;
58
64
  show(pos: Point, bar: OHLCBar, theme: Theme, containerRect: {
59
65
  width: number;
60
66
  height: number;
@@ -1 +1 @@
1
- {"version":3,"file":"CrosshairTooltip.d.ts","sourceRoot":"","sources":["../../src/interaction/CrosshairTooltip.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AASlE,mEAAmE;AACnE,MAAM,WAAW,uBAAuB;IACtC,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0EAA0E;IAC1E,UAAU,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,+EAA+E;IAC/E,IAAI,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/D,wFAAwF;IACxF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA+BD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,MAAM,GAAG,IAAI,EAC9B,SAAS,CAAC,EAAE,MAAM,EAClB,MAAM,SAAU,GACf,MAAM,CAYR;AAUD;;;;;;GAMG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,EAAE,CAA4B;IACtC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAAsB;IAE1C,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,eAAe,CAAuB;IAG9C,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,QAAQ,CAAuG;IACvH,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,SAAS,CAAe;IAEhC,OAAO,CAAC,KAAK,CAAO;IACpB,OAAO,CAAC,MAAM,CAAO;IAErB,MAAM,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI;IA4DpC,6CAA6C;IAC7C,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B,uFAAuF;IACvF,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAIjD,4FAA4F;IAC5F,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAI/C,IAAI,CACF,GAAG,EAAE,KAAK,EACV,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAChD,OAAO,GAAE,uBAA4B,GACpC,IAAI;IAmDP,IAAI,IAAI,IAAI;IAOZ,SAAS,IAAI,OAAO;IAIpB,OAAO,IAAI,IAAI;IAQf,OAAO,CAAC,UAAU;CAenB"}
1
+ {"version":3,"file":"CrosshairTooltip.d.ts","sourceRoot":"","sources":["../../src/interaction/CrosshairTooltip.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AASlG,mEAAmE;AACnE,MAAM,WAAW,uBAAuB;IACtC,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0EAA0E;IAC1E,UAAU,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,+EAA+E;IAC/E,IAAI,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/D,wFAAwF;IACxF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAYD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,eAAe,EACnB,SAAS,CAAC,EAAE,MAAM,EAClB,MAAM,SAAU,GACf,MAAM,CAYR;AAUD;;;;;;GAMG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,EAAE,CAA4B;IACtC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAAsB;IAE1C,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,EAAE,CAAyB;IACnC,OAAO,CAAC,cAAc,CAA4C;IAClE,OAAO,CAAC,aAAa,CAA8B;IAGnD,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,QAAQ,CAAuG;IACvH,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,SAAS,CAAe;IAEhC,OAAO,CAAC,KAAK,CAAO;IACpB,OAAO,CAAC,MAAM,CAAO;IAErB,MAAM,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI;IA4DpC,6CAA6C;IAC7C,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B,uFAAuF;IACvF,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAIjD,sGAAsG;IACtG,iBAAiB,CAAC,EAAE,EAAE,eAAe,GAAG,IAAI;IAI5C,qDAAqD;IACrD,iBAAiB,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,IAAI,GAAG,IAAI;IAItE,mDAAmD;IACnD,gBAAgB,CAAC,SAAS,EAAE,aAAa,GAAG,IAAI,GAAG,IAAI;IAIvD,IAAI,CACF,GAAG,EAAE,KAAK,EACV,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAChD,OAAO,GAAE,uBAA4B,GACpC,IAAI;IAqDP,IAAI,IAAI,IAAI;IAOZ,SAAS,IAAI,OAAO;IAIpB,OAAO,IAAI,IAAI;IAQf,OAAO,CAAC,UAAU;CAenB"}
@@ -1,4 +1,4 @@
1
- import { Point, ViewportState } from '@tradecanvas/commons';
1
+ import { Point, Rect, ViewportState } from '@tradecanvas/commons';
2
2
  import { PanHandler } from './PanHandler.js';
3
3
  import { ZoomHandler } from './ZoomHandler.js';
4
4
  import { CrosshairHandler } from './CrosshairHandler.js';
@@ -7,6 +7,23 @@ import { AlertDragHandler } from './AlertDragHandler.js';
7
7
  import { DrawingManager } from '../drawings/DrawingManager.js';
8
8
  import { TradingManager } from '../trading/TradingManager.js';
9
9
  import { PaneResizeHandler } from './PaneResizeHandler.js';
10
+ import { PriceAxisAddButton } from './PriceAxisAddButton.js';
11
+ /** Where the axis strips are around the plot. */
12
+ export interface AxisStrips {
13
+ /** The price pane's plot; its axis strip is to the right of it. */
14
+ plot: Rect;
15
+ /** Top of the time axis: below the price pane and every pane under it. */
16
+ timeAxisTop: number;
17
+ /** The left price scale's strip, which ends at the plot's left edge. */
18
+ left: {
19
+ /** Its width; 0 while it is hidden. */
20
+ width: number;
21
+ /** Whether a drag there scales the price range (it mirrors the price scale). */
22
+ scales: boolean;
23
+ };
24
+ }
25
+ /** Where on the chart a point is, for a menu that depends on it. */
26
+ export type ChartArea = 'plot' | 'pane' | 'priceAxis' | 'timeAxis';
10
27
  export declare class InteractionManager {
11
28
  private element;
12
29
  private panHandler;
@@ -16,6 +33,16 @@ export declare class InteractionManager {
16
33
  private alertDragHandler;
17
34
  private axisViewportGetter;
18
35
  private onAxisDoubleClick;
36
+ private onDrawingDoubleClick;
37
+ private onDrawingContextMenu;
38
+ /** The zoom-area tool: a drag draws the box to zoom into. */
39
+ private zoomArea;
40
+ /** The host's menu for a right-click off any drawing; true when it took it. */
41
+ private onChartContextMenu;
42
+ /** The "+" by the price axis, and what a click on it does. */
43
+ private priceAxisAdd;
44
+ private axisStrips;
45
+ private savedTouchAction;
19
46
  private measureHandlers;
20
47
  private measuring;
21
48
  private boxSelectHandlers;
@@ -24,6 +51,13 @@ export declare class InteractionManager {
24
51
  private onEscape;
25
52
  private onConfirm;
26
53
  private onClick;
54
+ /** Signal markers: the one under a point, and who hears when the hovered one changes. */
55
+ private markerAt;
56
+ private onMarkerHover;
57
+ private markerClickable;
58
+ /** Where the pointer was over the hovered marker. */
59
+ private markerPos;
60
+ private hoveredMarker;
27
61
  private downPos;
28
62
  private downMoved;
29
63
  private pressForClick;
@@ -71,6 +105,14 @@ export declare class InteractionManager {
71
105
  setEscapeHandler(handler: () => void): void;
72
106
  /** Wire an `Enter` keydown — used to confirm bracket placement. Return true if handled. */
73
107
  setConfirmHandler(handler: () => boolean): void;
108
+ /**
109
+ * Markers that react to the pointer: word of the one hovered (null when the
110
+ * pointer leaves it), and a hand over them while `clickable()` says a click
111
+ * on one does something.
112
+ */
113
+ setSignalMarkerHitTest(markerAt: ((pos: Point) => unknown | null) | null, onHover: ((marker: unknown | null, pos: Point) => void) | null, clickable?: () => boolean): void;
114
+ /** Leave the hovered marker (the pointer left, or a press started). */
115
+ private leaveMarker;
74
116
  /** Wire a plain left-click on the chart area (press + release without drag). */
75
117
  setClickHandler(handler: (pos: Point) => void): void;
76
118
  /**
@@ -91,9 +133,29 @@ export declare class InteractionManager {
91
133
  }): void;
92
134
  setAxisDragHandler(handler: AxisDragHandler, viewportGetter: () => ViewportState, onDoubleClick?: (axis: 'price' | 'time') => void): void;
93
135
  setDrawingManager(manager: DrawingManager, viewportGetter: () => ViewportState): void;
136
+ /**
137
+ * Called for a right-click that no drawing or trading menu took, with where
138
+ * it was; return true to keep the browser's own menu shut.
139
+ */
140
+ setChartContextMenu(cb: ((area: ChartArea, pos: Point) => boolean) | null): void;
141
+ /** The "+" by the price axis: a click on it (not while placing something) calls `onClick`. */
142
+ setPriceAxisAddButton(button: PriceAxisAddButton, onClick: (pos: Point) => void): void;
143
+ /** While on, a plain drag draws a box (the box-select handlers get it) instead of panning. */
144
+ setZoomAreaMode(on: boolean): void;
145
+ /** Called when a drawing is right-clicked (to open its menu); the browser's menu stays shut. */
146
+ setDrawingContextMenu(cb: (id: string, pos: Point) => void): void;
147
+ /** Called with a drawing's id when it is double-clicked (to open its settings, say). */
148
+ setDrawingDoubleClick(cb: (id: string) => void): void;
94
149
  /** Enable dragging price-alert lines. Hit-tested after trading/drawing. */
95
150
  setAlertDragHandler(handler: AlertDragHandler): void;
96
151
  setTradingManager(manager: TradingManager, viewportGetter: () => ViewportState): void;
152
+ /**
153
+ * The time axis below the panes, and the left price scale's strip. Presses
154
+ * on a strip that scales nothing (beside a pane, or a left scale carrying
155
+ * overlays) never draw or pan; a left scale that mirrors the price scale
156
+ * drags and resets like the price axis.
157
+ */
158
+ setAxisStrips(getter: () => AxisStrips): void;
97
159
  /** Enable dragging pane dividers to resize indicator panels. */
98
160
  setPaneResizeHandler(handler: PaneResizeHandler): void;
99
161
  attach(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"InteractionManager.d.ts","sourceRoot":"","sources":["../../src/interaction/InteractionManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InteractionManager.d.ts","sourceRoot":"","sources":["../../src/interaction/InteractionManager.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"PaneResizeHandler.d.ts","sourceRoot":"","sources":["../../src/interaction/PaneResizeHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAQ,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AASvF,UAAU,UAAU;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,YAAY,GAAG,UAAU,CAAC;IACvC,QAAQ,EAAE,aAAa,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,qBAAa,iBAAiB;IAKhB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAJtC,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,YAAY,CAAuC;IAC3D,OAAO,CAAC,QAAQ,CAA0D;gBAE7C,SAAS,SAAI;IAE1C,SAAS,CACP,YAAY,EAAE,MAAM,cAAc,EAClC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,GAChD,IAAI;IAKP,yFAAyF;IACzF,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,GAAG,UAAU,GAAG,IAAI;IAiB9D,4DAA4D;IAC5D,QAAQ,CAAC,GAAG,EAAE,KAAK,GAAG,MAAM,GAAG,IAAI;IAQnC,iFAAiF;IACjF,QAAQ,CAAC,GAAG,EAAE,KAAK,GAAG,OAAO;IAc7B,IAAI,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI;IAKtB,8FAA8F;IAC9F,WAAW,CAAC,GAAG,EAAE,KAAK,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAqBjE,GAAG,IAAI,IAAI;IAIX,QAAQ,IAAI,OAAO;CAGpB"}
1
+ {"version":3,"file":"PaneResizeHandler.d.ts","sourceRoot":"","sources":["../../src/interaction/PaneResizeHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAQ,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AASvF,UAAU,UAAU;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,YAAY,GAAG,UAAU,CAAC;IACvC,QAAQ,EAAE,aAAa,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,qBAAa,iBAAiB;IAKhB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAJtC,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,YAAY,CAAuC;IAC3D,OAAO,CAAC,QAAQ,CAA0D;gBAE7C,SAAS,SAAI;IAE1C,SAAS,CACP,YAAY,EAAE,MAAM,cAAc,EAClC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,GAChD,IAAI;IAKP,yFAAyF;IACzF,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,GAAG,UAAU,GAAG,IAAI;IAkB9D,4DAA4D;IAC5D,QAAQ,CAAC,GAAG,EAAE,KAAK,GAAG,MAAM,GAAG,IAAI;IAQnC,iFAAiF;IACjF,QAAQ,CAAC,GAAG,EAAE,KAAK,GAAG,OAAO;IAc7B,IAAI,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI;IAKtB,8FAA8F;IAC9F,WAAW,CAAC,GAAG,EAAE,KAAK,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAqBjE,GAAG,IAAI,IAAI;IAIX,QAAQ,IAAI,OAAO;CAGpB"}
@@ -1,4 +1,4 @@
1
- import { OHLCBar, Theme, ViewportState } from '@tradecanvas/commons';
1
+ import { OHLCBar, Theme, TimeZoneSetting, ViewportState } from '@tradecanvas/commons';
2
2
  /**
3
3
  * Pinned OHLC tooltip — a second DOM tooltip anchored to a specific bar index.
4
4
  *
@@ -23,6 +23,14 @@ export declare class PinnedTooltip {
23
23
  private ohlcEl;
24
24
  private pinnedBar;
25
25
  private pinnedIndex;
26
+ private tz;
27
+ private priceFormatter;
28
+ /** The time zone the bar's time is shown in; null for the browser's. */
29
+ setTimezone(tz: TimeZoneSetting): void;
30
+ /** Prices in the chart's format (null: two decimals). */
31
+ setPriceFormatter(formatter: ((price: number) => string) | null): void;
32
+ /** A price as markup-safe text. */
33
+ private fmt;
26
34
  create(container: HTMLElement): void;
27
35
  pin(bar: OHLCBar, barIndex: number, theme: Theme): void;
28
36
  unpin(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"PinnedTooltip.d.ts","sourceRoot":"","sources":["../../src/interaction/PinnedTooltip.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG1E;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,EAAE,CAA4B;IACtC,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,WAAW,CAAM;IAEzB,MAAM,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI;IA4CpC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IA+BvD,KAAK,IAAI,IAAI;IAMb,QAAQ,IAAI,OAAO;IAInB,cAAc,IAAI,MAAM;IAIxB;;;;OAIG;IACH,UAAU,CAAC,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAiC5G,OAAO,IAAI,IAAI;CAShB"}
1
+ {"version":3,"file":"PinnedTooltip.d.ts","sourceRoot":"","sources":["../../src/interaction/PinnedTooltip.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAI3F;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,EAAE,CAA4B;IACtC,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,EAAE,CAAyB;IAEnC,OAAO,CAAC,cAAc,CAA4C;IAElE,wEAAwE;IACxE,WAAW,CAAC,EAAE,EAAE,eAAe,GAAG,IAAI;IAItC,yDAAyD;IACzD,iBAAiB,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,IAAI,GAAG,IAAI;IAItE,mCAAmC;IACnC,OAAO,CAAC,GAAG;IAIX,MAAM,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI;IA4CpC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IA+BvD,KAAK,IAAI,IAAI;IAMb,QAAQ,IAAI,OAAO;IAInB,cAAc,IAAI,MAAM;IAIxB;;;;OAIG;IACH,UAAU,CAAC,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAiC5G,OAAO,IAAI,IAAI;CAShB"}
@@ -0,0 +1,17 @@
1
+ import { Point, Theme, ViewportState } from '@tradecanvas/commons';
2
+ /**
3
+ * A "+" at the right edge of the price pane, level with the crosshair: a
4
+ * click on it offers what to do at that price (an alert, an order, a line).
5
+ * It follows the pointer up and down, so a click anywhere in its narrow strip
6
+ * is on it.
7
+ */
8
+ export declare class PriceAxisAddButton {
9
+ private enabled;
10
+ setEnabled(enabled: boolean): void;
11
+ isEnabled(): boolean;
12
+ /** Whether `pos` is on the button: in the price pane, in the strip by the axis. */
13
+ hit(pos: Point, viewport: ViewportState): boolean;
14
+ /** Draw it level with the crosshair at `cursor` (when it is over the price pane). */
15
+ render(ctx: CanvasRenderingContext2D, viewport: ViewportState, theme: Theme, cursor: Point | null): void;
16
+ }
17
+ //# sourceMappingURL=PriceAxisAddButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PriceAxisAddButton.d.ts","sourceRoot":"","sources":["../../src/interaction/PriceAxisAddButton.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAMxE;;;;;GAKG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,OAAO,CAAS;IAExB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIlC,SAAS,IAAI,OAAO;IAIpB,mFAAmF;IACnF,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,GAAG,OAAO;IAOjD,qFAAqF;IACrF,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI;CAsBzG"}
@@ -8,10 +8,18 @@ export declare class ZoomHandler {
8
8
  private callback;
9
9
  private sensitivity;
10
10
  private pendingDelta;
11
+ /** Pinch steps this frame, multiplied: the change in finger distance. */
12
+ private pendingScale;
11
13
  private pendingCenterX;
12
14
  private rafId;
13
15
  constructor(callback: ZoomCallback, sensitivity?: number);
14
16
  onWheel(deltaY: number, pos: Point): void;
17
+ /**
18
+ * A pinch step: `scale` is the new finger distance over the last one, so
19
+ * the bars grow or shrink as much as the fingers spread or close.
20
+ */
21
+ onPinch(scale: number, pos: Point): void;
22
+ private schedule;
15
23
  dispose(): void;
16
24
  }
17
25
  //# sourceMappingURL=ZoomHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ZoomHandler.d.ts","sourceRoot":"","sources":["../../src/interaction/ZoomHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAEpE;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,WAAW,CAAS;IAG5B,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,KAAK,CAAK;gBAEN,QAAQ,EAAE,YAAY,EAAE,WAAW,SAAQ;IAKvD,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,GAAG,IAAI;IAezC,OAAO,IAAI,IAAI;CAMhB"}
1
+ {"version":3,"file":"ZoomHandler.d.ts","sourceRoot":"","sources":["../../src/interaction/ZoomHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAEpE;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,WAAW,CAAS;IAG5B,OAAO,CAAC,YAAY,CAAK;IACzB,yEAAyE;IACzE,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,KAAK,CAAK;gBAEN,QAAQ,EAAE,YAAY,EAAE,WAAW,SAAQ;IAKvD,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,GAAG,IAAI;IAMzC;;;OAGG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,GAAG,IAAI;IAOxC,OAAO,CAAC,QAAQ;IAYhB,OAAO,IAAI,IAAI;CAMhB"}
@@ -1,4 +1,6 @@
1
1
  export { InteractionManager } from './InteractionManager.js';
2
+ export type { AxisStrips, ChartArea } from './InteractionManager.js';
3
+ export { PriceAxisAddButton } from './PriceAxisAddButton.js';
2
4
  export { PanHandler } from './PanHandler.js';
3
5
  export { ZoomHandler } from './ZoomHandler.js';
4
6
  export { AxisDragHandler } from './AxisDragHandler.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interaction/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC5E,YAAY,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interaction/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC5E,YAAY,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CurrentPriceLine.d.ts","sourceRoot":"","sources":["../../src/realtime/CurrentPriceLine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAIjE;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,UAAU,CAAK;IACvB,iEAAiE;IACjE,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,MAAM,CAAW;IAEzB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI;IAQrD,UAAU,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI;IAI5B,SAAS,IAAI,OAAO;IAIpB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAIjD,QAAQ,IAAI,MAAM,GAAG,IAAI;IAIzB,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;CAkDnF"}
1
+ {"version":3,"file":"CurrentPriceLine.d.ts","sourceRoot":"","sources":["../../src/realtime/CurrentPriceLine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAKjE;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,UAAU,CAAK;IACvB,iEAAiE;IACjE,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,MAAM,CAAW;IAEzB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI;IAQrD,UAAU,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI;IAI5B,SAAS,IAAI,OAAO;IAIpB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAIjD,QAAQ,IAAI,MAAM,GAAG,IAAI;IAIzB,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;CAkDnF"}
@@ -15,6 +15,11 @@ export interface StreamEvents {
15
15
  price: number;
16
16
  previousClose: number | null;
17
17
  };
18
+ /** The best bid and ask changed (from ticks that carry them) */
19
+ quote: {
20
+ bid?: number;
21
+ ask?: number;
22
+ };
18
23
  /** Connection state changed */
19
24
  connectionChange: ConnectionInfo;
20
25
  /** Error occurred */
@@ -1 +1 @@
1
- {"version":3,"file":"StreamManager.d.ts","sourceRoot":"","sources":["../../src/realtime/StreamManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EACf,cAAc,EAEd,OAAO,EACP,OAAO,EACP,aAAa,EACb,SAAS,EACV,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,WAAW,YAAY;IAC3B,6BAA6B;IAC7B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,8BAA8B;IAC9B,QAAQ,EAAE,aAAa,CAAC;IACxB,kCAAkC;IAClC,SAAS,EAAE,aAAa,CAAC;IACzB,wBAAwB;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,4BAA4B;IAC5B,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAC7D,+BAA+B;IAC/B,gBAAgB,EAAE,cAAc,CAAC;IACjC,qBAAqB;IACrB,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,aAAc,SAAQ,OAAO,CAAC,YAAY,CAAC;IACtD,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,WAAW,CAAmB;IACtC,QAAQ,CAAC,SAAS,mBAA0B;IAE5C,OAAO,CAAC,KAAK,CAAmC;IAChD,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,cAAc,CAA+C;IACrE,OAAO,CAAC,eAAe,CAAK;IAC5B,yEAAyE;IACzE,OAAO,CAAC,UAAU,CAAK;;IAUjB,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAgClD,UAAU,IAAI,IAAI;IAuBlB;;;OAGG;IACG,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBnE,kBAAkB,IAAI,eAAe;IAIrC,iBAAiB,IAAI,cAAc;IAQnC,YAAY,IAAI,MAAM,GAAG,IAAI;YAMf,SAAS;IAuCvB,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,WAAW;IAsDnB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,QAAQ;IAUhB,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,aAAa;IAOrB,OAAO,IAAI,IAAI;CAIhB"}
1
+ {"version":3,"file":"StreamManager.d.ts","sourceRoot":"","sources":["../../src/realtime/StreamManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EACf,cAAc,EAEd,OAAO,EACP,OAAO,EACP,aAAa,EACb,SAAS,EACV,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAIzD,MAAM,WAAW,YAAY;IAC3B,6BAA6B;IAC7B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,8BAA8B;IAC9B,QAAQ,EAAE,aAAa,CAAC;IACxB,kCAAkC;IAClC,SAAS,EAAE,aAAa,CAAC;IACzB,wBAAwB;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,4BAA4B;IAC5B,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAC7D,gEAAgE;IAChE,KAAK,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtC,+BAA+B;IAC/B,gBAAgB,EAAE,cAAc,CAAC;IACjC,qBAAqB;IACrB,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,aAAc,SAAQ,OAAO,CAAC,YAAY,CAAC;IACtD,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,WAAW,CAAmB;IACtC,QAAQ,CAAC,SAAS,mBAA0B;IAE5C,OAAO,CAAC,KAAK,CAAmC;IAChD,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,cAAc,CAA+C;IACrE,OAAO,CAAC,eAAe,CAAK;IAC5B,yEAAyE;IACzE,OAAO,CAAC,UAAU,CAAK;;IAUjB,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAmClD,UAAU,IAAI,IAAI;IAuBlB;;;OAGG;IACG,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBnE,kBAAkB,IAAI,eAAe;IAIrC,iBAAiB,IAAI,cAAc;IAQnC,YAAY,IAAI,MAAM,GAAG,IAAI;YAMf,SAAS;IAuCvB,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,WAAW;IAuDnB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,QAAQ;IAUhB,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,aAAa;IAOrB,OAAO,IAAI,IAAI;CAIhB"}
@@ -1 +1 @@
1
- {"version":3,"file":"TickAggregator.d.ts","sourceRoot":"","sources":["../../src/realtime/TickAggregator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAEvF,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,UAAU,gBAAgB;IACxB,GAAG,EAAE,aAAa,CAAC;IACnB,QAAQ,EAAE,aAAa,CAAC;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,cAAe,SAAQ,OAAO,CAAC,gBAAgB,CAAC;IAC3D,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,WAAW,CAAS;IAG5B,OAAO,CAAC,QAAQ,CAAY;IAC5B,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;gBAGpC,UAAU,EAAE,SAAS,EACrB,UAAU,SAAO;IAQnB,YAAY,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;IAOjC,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IA2ChC;;;OAGG;IACH,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAkB/C,aAAa,IAAI,aAAa,GAAG,IAAI;IAIrC,aAAa,IAAI,SAAS,OAAO,EAAE;IASnC,KAAK,IAAI,IAAI;IAMb,OAAO,CAAC,gBAAgB;CAGzB"}
1
+ {"version":3,"file":"TickAggregator.d.ts","sourceRoot":"","sources":["../../src/realtime/TickAggregator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAEvF,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,UAAU,gBAAgB;IACxB,GAAG,EAAE,aAAa,CAAC;IACnB,QAAQ,EAAE,aAAa,CAAC;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,cAAe,SAAQ,OAAO,CAAC,gBAAgB,CAAC;IAC3D,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,WAAW,CAAS;IAG5B,OAAO,CAAC,QAAQ,CAAY;IAC5B,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;gBAGpC,UAAU,EAAE,SAAS,EACrB,UAAU,SAAO;IAQnB,YAAY,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;IAOjC,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IA2ChC;;;OAGG;IACH,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAkB/C,aAAa,IAAI,aAAa,GAAG,IAAI;IAIrC,aAAa,IAAI,SAAS,OAAO,EAAE;IASnC,KAAK,IAAI,IAAI;IAMb,OAAO,CAAC,gBAAgB;CAKzB"}
@@ -0,0 +1,58 @@
1
+ import { ConnectionState, DataAdapter, DataAdapterConfig, DataAdapterEventType, DataAdapterListener, NewsItem, OHLCBar, Quote, SymbolInfo, SymbolSearchOptions, TimeFrame, Trade } from '@tradecanvas/commons';
2
+ /**
3
+ * Bars of N trades each: a bar opens with its first trade (and is stamped
4
+ * with its time) and closes with its Nth.
5
+ */
6
+ export declare class TickBarBuilder {
7
+ private readonly tradesPerBar;
8
+ private bar;
9
+ private count;
10
+ /** The last bar's time: a bar never shares one (trades in the same millisecond). */
11
+ private lastTime;
12
+ constructor(tradesPerBar: number);
13
+ /** Add trades; the bars they touched, oldest first: closed ones, then the one left forming. */
14
+ push(trades: readonly Trade[]): {
15
+ bar: OHLCBar;
16
+ closed: boolean;
17
+ }[];
18
+ /** Every bar of `trades` (the last one may be forming), from a fresh start. */
19
+ build(trades: readonly Trade[]): OHLCBar[];
20
+ }
21
+ /**
22
+ * Tick timeframes (`'100T'`: bars of 100 trades) for a feed with trades
23
+ * (`fetchTrades` and `subscribeTrades`): history from its recent trades,
24
+ * then live bars from its trades. Time timeframes go to the feed as they are.
25
+ */
26
+ export declare class TickBarAdapter implements DataAdapter {
27
+ private readonly inner;
28
+ readonly name: string;
29
+ readonly supportedTimeframes?: readonly TimeFrame[];
30
+ readonly searchSymbols?: (query: string, options?: SymbolSearchOptions) => Promise<SymbolInfo[]>;
31
+ readonly resolveSymbol?: (symbol: string) => Promise<SymbolInfo | null>;
32
+ readonly subscribeQuotes?: (symbols: readonly string[], onQuotes: (quotes: Quote[]) => void) => () => void;
33
+ readonly fetchNews?: (symbol: string, limit?: number) => Promise<NewsItem[]>;
34
+ readonly fetchTrades: (symbol: string, limit?: number) => Promise<Trade[]>;
35
+ readonly subscribeTrades: (symbol: string, onTrades: (trades: Trade[]) => void) => () => void;
36
+ private readonly listeners;
37
+ /** The tick chart being served: its builder, and the last trade its history had. */
38
+ private tick;
39
+ private stopTrades;
40
+ private keepAlive;
41
+ private tickMode;
42
+ private state;
43
+ constructor(inner: DataAdapter & Required<Pick<DataAdapter, 'fetchTrades' | 'subscribeTrades'>>);
44
+ fetchHistory(symbol: string, timeframe: TimeFrame, limit?: number): Promise<OHLCBar[]>;
45
+ fetchHistoryBefore(symbol: string, timeframe: TimeFrame, before: number, limit: number): Promise<OHLCBar[]>;
46
+ connect(config: DataAdapterConfig): void;
47
+ disconnect(): void;
48
+ getConnectionState(): ConnectionState;
49
+ dispose(): void;
50
+ on<T = unknown>(event: DataAdapterEventType, listener: DataAdapterListener<T>): void;
51
+ off<T = unknown>(event: DataAdapterEventType, listener: DataAdapterListener<T>): void;
52
+ private emit;
53
+ }
54
+ /** A feed with trades, able to serve tick timeframes too; any other feed as it is. */
55
+ export declare function withTickBars(adapter: DataAdapter): DataAdapter;
56
+ /** Whether the feed has trades to build tick bars from. */
57
+ export declare function hasTrades(adapter: DataAdapter): adapter is DataAdapter & Required<Pick<DataAdapter, 'fetchTrades' | 'subscribeTrades'>>;
58
+ //# sourceMappingURL=TickBars.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TickBars.d.ts","sourceRoot":"","sources":["../../src/realtime/TickBars.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { DataAdapter, DataAdapterConfig, DataAdapterEventType, DataAdapterListener, ConnectionState, OHLCBar, TimeFrame } from '@tradecanvas/commons';
1
+ import { DataAdapter, DataAdapterConfig, DataAdapterEventType, DataAdapterListener, ConnectionState, OHLCBar, Quote, Trade, SymbolInfo, SymbolSearchOptions, TimeFrame } from '@tradecanvas/commons';
2
2
  /**
3
3
  * Binance public API adapter (no API key required).
4
4
  *
@@ -14,12 +14,16 @@ import { DataAdapter, DataAdapterConfig, DataAdapterEventType, DataAdapterListen
14
14
  */
15
15
  export declare class BinanceAdapter implements DataAdapter {
16
16
  readonly name = "binance";
17
+ /** Binance's kline intervals; other timeframes are built from these. */
18
+ readonly supportedTimeframes: TimeFrame[];
17
19
  private ws;
18
20
  private state;
19
21
  private listeners;
20
22
  private config;
21
23
  private restBase;
22
24
  private wsBase;
25
+ /** Every trading symbol, loaded on the first search. */
26
+ private symbolList;
23
27
  constructor(options?: {
24
28
  restBase?: string;
25
29
  wsBase?: string;
@@ -28,6 +32,25 @@ export declare class BinanceAdapter implements DataAdapter {
28
32
  disconnect(): void;
29
33
  getConnectionState(): ConnectionState;
30
34
  fetchHistory(symbol: string, timeframe: TimeFrame, limit?: number): Promise<OHLCBar[]>;
35
+ /** Trading symbols matching `query`, best first; the list loads once, on the first search. */
36
+ searchSymbols(query: string, options?: SymbolSearchOptions): Promise<SymbolInfo[]>;
37
+ /** Name, price step and currency of one symbol, or null for one Binance doesn't trade. */
38
+ resolveSymbol(symbol: string): Promise<SymbolInfo | null>;
39
+ private loadSymbols;
40
+ /**
41
+ * Live quotes for up to 200 symbols: last price and the 24 h change, high,
42
+ * low and volume. A snapshot first, then the exchange's mini-ticker stream
43
+ * (reconnected while subscribed). Symbols that can't be Binance tickers are
44
+ * left out.
45
+ */
46
+ subscribeQuotes(symbols: readonly string[], onQuotes: (quotes: Quote[]) => void): () => void;
47
+ /** Up to 1000 recent trades, oldest first (aggregate trades: one per taker order and price). */
48
+ fetchTrades(symbol: string, limit?: number): Promise<Trade[]>;
49
+ /** Live trades of `symbol` (the aggregate trade stream), reconnected while subscribed. */
50
+ subscribeTrades(symbol: string, onTrades: (trades: Trade[]) => void): () => void;
51
+ /** Up to `limit` klines (1000 at most) that open before `before` (ms). */
52
+ fetchHistoryBefore(symbol: string, timeframe: TimeFrame, before: number, limit?: number): Promise<OHLCBar[]>;
53
+ private fetchKlines;
31
54
  on<T = unknown>(event: DataAdapterEventType, listener: DataAdapterListener<T>): void;
32
55
  off<T = unknown>(event: DataAdapterEventType, listener: DataAdapterListener<T>): void;
33
56
  dispose(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"BinanceAdapter.d.ts","sourceRoot":"","sources":["../../../src/realtime/adapters/BinanceAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,OAAO,EACP,SAAS,EACV,MAAM,sBAAsB,CAAC;AAS9B;;;;;;;;;;;;GAYG;AACH,qBAAa,cAAe,YAAW,WAAW;IAChD,QAAQ,CAAC,IAAI,aAAa;IAE1B,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,KAAK,CAAmC;IAChD,OAAO,CAAC,SAAS,CAA6D;IAC9E,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAS;gBAEX,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IAO5D,OAAO,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAKxC,UAAU,IAAI,IAAI;IAiBlB,kBAAkB,IAAI,eAAe;IAI/B,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,SAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAiBzF,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,IAAI;IASpF,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,IAAI;IAIrF,OAAO,IAAI,IAAI;IAOf,OAAO,CAAC,SAAS;IAmDjB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,SAAS;CASlB"}
1
+ {"version":3,"file":"BinanceAdapter.d.ts","sourceRoot":"","sources":["../../../src/realtime/adapters/BinanceAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,OAAO,EACP,KAAK,EACL,KAAK,EACL,UAAU,EACV,mBAAmB,EACnB,SAAS,EACV,MAAM,sBAAsB,CAAC;AAmE9B;;;;;;;;;;;;GAYG;AACH,qBAAa,cAAe,YAAW,WAAW;IAChD,QAAQ,CAAC,IAAI,aAAa;IAC1B,wEAAwE;IACxE,QAAQ,CAAC,mBAAmB,EAA0B,SAAS,EAAE,CAAC;IAElE,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,KAAK,CAAmC;IAChD,OAAO,CAAC,SAAS,CAA6D;IAC9E,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,wDAAwD;IACxD,OAAO,CAAC,UAAU,CAAsC;gBAE5C,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IAO5D,OAAO,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAKxC,UAAU,IAAI,IAAI;IAiBlB,kBAAkB,IAAI,eAAe;IAIrC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,SAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAInF,8FAA8F;IACxF,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAKxF,0FAA0F;IACpF,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAW/D,OAAO,CAAC,WAAW;IAanB;;;;;OAKG;IACH,eAAe,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,IAAI,GAAG,MAAM,IAAI;IA+E5F,gGAAgG;IAC1F,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,SAAO,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAQjE,0FAA0F;IAC1F,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,IAAI,GAAG,MAAM,IAAI;IAiDhF,0EAA0E;IAC1E,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,SAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;YAI3F,WAAW;IAiBzB,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,IAAI;IASpF,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,IAAI;IAIrF,OAAO,IAAI,IAAI;IAOf,OAAO,CAAC,SAAS;IAmDjB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,SAAS;CASlB"}
@@ -20,7 +20,9 @@ export declare class BybitAdapter extends WebSocketAdapter {
20
20
  }
21
21
  /** Parse a Bybit v5 kline push frame into the latest bar. */
22
22
  export declare function parseBybitWsMessage(raw: unknown): WsParseResult | null;
23
- export declare function fetchBybitKlines(restBase: string, category: BybitCategory, symbol: string, timeframe: TimeFrame, limit: number): Promise<OHLCBar[]>;
23
+ export declare function fetchBybitKlines(restBase: string, category: BybitCategory, symbol: string, timeframe: TimeFrame, limit: number,
24
+ /** Latest start time to include (ms); the newest klines when omitted. */
25
+ end?: number): Promise<OHLCBar[]>;
24
26
  /** Parse Bybit's `result.list` (descending) into ascending bars. */
25
27
  export declare function parseBybitRestKlines(json: unknown): OHLCBar[];
26
28
  /** Bybit kline tuple: `[startTime(ms), open, high, low, close, volume, turnover]`. */
@@ -1 +1 @@
1
- {"version":3,"file":"BybitAdapter.d.ts","sourceRoot":"","sources":["../../../src/realtime/adapters/BybitAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAG7E,KAAK,aAAa,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AAQnD,0EAA0E;AAC1E,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAE1D;AAED,MAAM,WAAW,mBAAmB;IAClC,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B;AAED;;;GAGG;AACH,qBAAa,YAAa,SAAQ,gBAAgB;gBACpC,OAAO,GAAE,mBAAwB;CAa9C;AAED,6DAA6D;AAC7D,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,GAAG,IAAI,CAuBtE;AAED,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,EAAE,CAAC,CAQpB;AAED,oEAAoE;AACpE,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,EAAE,CAW7D;AAED,sFAAsF;AACtF,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI,CAe9D"}
1
+ {"version":3,"file":"BybitAdapter.d.ts","sourceRoot":"","sources":["../../../src/realtime/adapters/BybitAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAG7E,KAAK,aAAa,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AAQnD,0EAA0E;AAC1E,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAE1D;AAED,MAAM,WAAW,mBAAmB;IAClC,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B;AAED;;;GAGG;AACH,qBAAa,YAAa,SAAQ,gBAAgB;gBACpC,OAAO,GAAE,mBAAwB;CAgB9C;AAED,6DAA6D;AAC7D,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,GAAG,IAAI,CAuBtE;AAED,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,MAAM;AACb,yEAAyE;AACzE,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,EAAE,CAAC,CASpB;AAED,oEAAoE;AACpE,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,EAAE,CAW7D;AAED,sFAAsF;AACtF,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI,CAe9D"}
@@ -1 +1 @@
1
- {"version":3,"file":"CoinbaseAdapter.d.ts","sourceRoot":"","sources":["../../../src/realtime/adapters/CoinbaseAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAarD,6EAA6E;AAC7E,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAEhE;AAED,MAAM,WAAW,sBAAsB;IACrC,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,qBAAa,eAAgB,SAAQ,cAAc;gBACrC,OAAO,GAAE,sBAA2B;CASjD;AAED,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,OAAO,EAAE,CAAC,CAOpB;AAED,2EAA2E;AAC3E,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,EAAE,CAS7D;AAED,0EAA0E;AAC1E,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI,CAehE"}
1
+ {"version":3,"file":"CoinbaseAdapter.d.ts","sourceRoot":"","sources":["../../../src/realtime/adapters/CoinbaseAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAarD,6EAA6E;AAC7E,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAEhE;AAED,MAAM,WAAW,sBAAsB;IACrC,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,qBAAa,eAAgB,SAAQ,cAAc;gBACrC,OAAO,GAAE,sBAA2B;CAUjD;AAED,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,OAAO,EAAE,CAAC,CAOpB;AAED,2EAA2E;AAC3E,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,EAAE,CAS7D;AAED,0EAA0E;AAC1E,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI,CAehE"}
@@ -1 +1 @@
1
- {"version":3,"file":"KrakenAdapter.d.ts","sourceRoot":"","sources":["../../../src/realtime/adapters/KrakenAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAS7E,uEAAuE;AACvE,wBAAgB,cAAc,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAE3D;AAED,MAAM,WAAW,oBAAoB;IACnC,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,gBAAgB;gBACrC,OAAO,GAAE,oBAAyB;CAkB/C;AAED,4EAA4E;AAC5E,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,GAAG,IAAI,CAuBvE;AAED,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,OAAO,EAAE,CAAC,CAQpB;AAED,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,EAAE,CAkBxD;AAED,mFAAmF;AACnF,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI,CAe/D"}
1
+ {"version":3,"file":"KrakenAdapter.d.ts","sourceRoot":"","sources":["../../../src/realtime/adapters/KrakenAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAS7E,uEAAuE;AACvE,wBAAgB,cAAc,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAE3D;AAED,MAAM,WAAW,oBAAoB;IACnC,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,gBAAgB;gBACrC,OAAO,GAAE,oBAAyB;CAmB/C;AAED,4EAA4E;AAC5E,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,GAAG,IAAI,CAuBvE;AAED,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,OAAO,EAAE,CAAC,CAQpB;AAED,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,EAAE,CAkBxD;AAED,mFAAmF;AACnF,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI,CAe/D"}
@@ -1,4 +1,4 @@
1
- import { DataAdapter, DataAdapterConfig, DataAdapterEventType, DataAdapterListener, ConnectionState, OHLCBar, TimeFrame } from '@tradecanvas/commons';
1
+ import { DataAdapter, DataAdapterConfig, DataAdapterEventType, DataAdapterListener, ConnectionState, OHLCBar, Quote, Trade, SymbolInfo, SymbolSearchOptions, TimeFrame } from '@tradecanvas/commons';
2
2
  export interface MockAdapterOptions {
3
3
  /** Base price to generate data around */
4
4
  basePrice?: number;
@@ -10,6 +10,8 @@ export interface MockAdapterOptions {
10
10
  historySize?: number;
11
11
  /** Custom history generator */
12
12
  historyGenerator?: (symbol: string, timeframe: TimeFrame, limit: number) => OHLCBar[];
13
+ /** Symbols `searchSymbols` and `resolveSymbol` know. */
14
+ symbols?: SymbolInfo[];
13
15
  }
14
16
  /**
15
17
  * Mock data adapter for testing, demos, and markets without free APIs.
@@ -28,11 +30,27 @@ export declare class MockAdapter implements DataAdapter {
28
30
  private options;
29
31
  private tickTimer;
30
32
  private currentPrice;
33
+ /** Open of the oldest bar handed out per symbol, where its next older page ends. */
34
+ private oldestOpen;
31
35
  constructor(options?: MockAdapterOptions);
32
36
  connect(config: DataAdapterConfig): void;
33
37
  disconnect(): void;
34
38
  getConnectionState(): ConnectionState;
39
+ /**
40
+ * Made-up quotes: a random walk per symbol around `basePrice` (each symbol
41
+ * starting at a price of its own), every symbol quoted at once and then each
42
+ * `tickInterval`.
43
+ */
44
+ subscribeQuotes(symbols: readonly string[], onQuotes: (quotes: Quote[]) => void): () => void;
45
+ /** Made-up recent trades: a walk around `basePrice`, a second apart, oldest first. */
46
+ fetchTrades(symbol: string, limit?: number): Promise<Trade[]>;
47
+ /** Made-up live trades, a few each `tickInterval`. */
48
+ subscribeTrades(symbol: string, onTrades: (trades: Trade[]) => void): () => void;
35
49
  fetchHistory(symbol: string, timeframe: TimeFrame, limit?: number): Promise<OHLCBar[]>;
50
+ /** Make up `limit` bars before `before` (ms) that lead into the oldest bar handed out. */
51
+ fetchHistoryBefore(symbol: string, timeframe: TimeFrame, before: number, limit: number): Promise<OHLCBar[]>;
52
+ searchSymbols(query: string, options?: SymbolSearchOptions): Promise<SymbolInfo[]>;
53
+ resolveSymbol(symbol: string): Promise<SymbolInfo | null>;
36
54
  on<T = unknown>(event: DataAdapterEventType, listener: DataAdapterListener<T>): void;
37
55
  off<T = unknown>(event: DataAdapterEventType, listener: DataAdapterListener<T>): void;
38
56
  dispose(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"MockAdapter.d.ts","sourceRoot":"","sources":["../../../src/realtime/adapters/MockAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,OAAO,EACP,SAAS,EACV,MAAM,sBAAsB,CAAC;AAG9B,MAAM,WAAW,kBAAkB;IACjC,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+BAA+B;IAC/B,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,EAAE,CAAC;CACvF;AAED;;;;;;;;GAQG;AACH,qBAAa,WAAY,YAAW,WAAW;IAC7C,QAAQ,CAAC,IAAI,UAAU;IAEvB,OAAO,CAAC,KAAK,CAAmC;IAChD,OAAO,CAAC,SAAS,CAA6D;IAC9E,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,SAAS,CAA+C;IAChE,OAAO,CAAC,YAAY,CAAS;gBAEjB,OAAO,CAAC,EAAE,kBAAkB;IAWxC,OAAO,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAOxC,UAAU,IAAI,IAAI;IAMlB,kBAAkB,IAAI,eAAe;IAI/B,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAO5F,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,IAAI;IAMpF,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,IAAI;IAIrF,OAAO,IAAI,IAAI;IAOf,OAAO,CAAC,eAAe;IAsBvB,OAAO,CAAC,YAAY;IAgCpB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,SAAS;CAOlB"}
1
+ {"version":3,"file":"MockAdapter.d.ts","sourceRoot":"","sources":["../../../src/realtime/adapters/MockAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,OAAO,EACP,KAAK,EACL,KAAK,EACL,UAAU,EACV,mBAAmB,EACnB,SAAS,EACV,MAAM,sBAAsB,CAAC;AAG9B,MAAM,WAAW,kBAAkB;IACjC,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+BAA+B;IAC/B,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,EAAE,CAAC;IACtF,wDAAwD;IACxD,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,qBAAa,WAAY,YAAW,WAAW;IAC7C,QAAQ,CAAC,IAAI,UAAU;IAEvB,OAAO,CAAC,KAAK,CAAmC;IAChD,OAAO,CAAC,SAAS,CAA6D;IAC9E,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,SAAS,CAA+C;IAChE,OAAO,CAAC,YAAY,CAAS;IAC7B,oFAAoF;IACpF,OAAO,CAAC,UAAU,CAA6B;gBAEnC,OAAO,CAAC,EAAE,kBAAkB;IAWxC,OAAO,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAOxC,UAAU,IAAI,IAAI;IAMlB,kBAAkB,IAAI,eAAe;IAIrC;;;;OAIG;IACH,eAAe,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,IAAI,GAAG,MAAM,IAAI;IA+B5F,sFAAsF;IAChF,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,SAAO,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAajE,sDAAsD;IACtD,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,IAAI,GAAG,MAAM,IAAI;IAc1E,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAQ5F,0FAA0F;IACpF,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAkB3G,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAIlF,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAI/D,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,IAAI;IAMpF,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,IAAI;IAIrF,OAAO,IAAI,IAAI;IAOf,OAAO,CAAC,eAAe;IAsBvB,OAAO,CAAC,YAAY;IAgCpB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,SAAS;CAOlB"}