@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
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/charts/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACnH,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACnH,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACzD,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrE,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/charts/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACnH,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACnH,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACzD,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC/F,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Drawing on whole device pixels. The chart draws in CSS pixels under the
3
+ * device-pixel-ratio transform, so a 1 px line at a fractional position
4
+ * spreads over two device pixels at half strength and looks soft and thick.
5
+ * Bars drawn here go back to the canvas's own pixels and round to them: a
6
+ * wick is one sharp column, a body has hard edges, at any ratio (1, 1.25, 2…).
7
+ */
8
+ /** CSS to device-pixel mapping, rounded to whole pixels. */
9
+ export interface PixelGrid {
10
+ /** Device pixels per CSS pixel. */
11
+ ratio: number;
12
+ /** The device pixel a CSS x falls on. */
13
+ x(cssX: number): number;
14
+ /** The device pixel a CSS y falls on. */
15
+ y(cssY: number): number;
16
+ /**
17
+ * Left edge (device px) of a column `width` device pixels wide centred on
18
+ * CSS x `cssCenter`: the same column `crispX` strokes for a line there.
19
+ */
20
+ left(cssCenter: number, width: number): number;
21
+ }
22
+ /**
23
+ * Run `draw` with the transform reset to device pixels, then put it back.
24
+ * A context without a readable transform (a test stand-in) is taken as 1:1.
25
+ */
26
+ export declare function inDevicePixels<T>(ctx: CanvasRenderingContext2D, draw: (grid: PixelGrid) => T): T;
27
+ /**
28
+ * A bar's columns in device pixels: the wick one CSS pixel wide (at least one
29
+ * device pixel), the body about the bar's width, with an even difference so
30
+ * the wick sits exactly in the middle.
31
+ */
32
+ export declare function barColumns(barWidth: number, ratio: number): {
33
+ body: number;
34
+ wick: number;
35
+ };
36
+ /**
37
+ * A horizontal line's y and width, snapped so the stroke covers whole device
38
+ * pixels: one sharp row instead of a soft two-pixel smear.
39
+ */
40
+ export declare function crispY(ctx: CanvasRenderingContext2D, y: number, width: number): {
41
+ y: number;
42
+ width: number;
43
+ };
44
+ /** A vertical line's x and width, snapped like `crispY`. */
45
+ export declare function crispX(ctx: CanvasRenderingContext2D, x: number, width: number): {
46
+ x: number;
47
+ width: number;
48
+ };
49
+ //# sourceMappingURL=pixelGrid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pixelGrid.d.ts","sourceRoot":"","sources":["../../src/charts/pixelGrid.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAYH,4DAA4D;AAC5D,MAAM,WAAW,SAAS;IACxB,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,yCAAyC;IACzC,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB;;;OAGG;IACH,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CAChD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,GAAG,EAAE,wBAAwB,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,CAAC,GAAG,CAAC,CAchG;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAK1F;AASD;;;GAGG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAI5G;AAED,4DAA4D;AAC5D,wBAAgB,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAI5G"}
@@ -1,8 +1,9 @@
1
1
  import { DataSeries } from '@tradecanvas/commons';
2
2
  /**
3
3
  * Kagi chart.
4
- * Changes direction when price reverses by the reversal amount.
4
+ * Changes direction when price reverses by the reversal amount: `reversal`
5
+ * percent of the line's start, or `reversal` itself with `mode` 'price'.
5
6
  * Thick lines (yang) for uptrends, thin lines (yin) for downtrends.
6
7
  */
7
- export declare function toKagi(data: DataSeries, reversalPercent?: number): DataSeries;
8
+ export declare function toKagi(data: DataSeries, reversal?: number, mode?: 'percent' | 'price'): DataSeries;
8
9
  //# sourceMappingURL=kagi.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"kagi.d.ts","sourceRoot":"","sources":["../../../src/charts/transforms/kagi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,eAAe,SAAI,GAAG,UAAU,CA2DxE"}
1
+ {"version":3,"file":"kagi.d.ts","sourceRoot":"","sources":["../../../src/charts/transforms/kagi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,SAAI,EAAE,IAAI,GAAE,SAAS,GAAG,OAAmB,GAAG,UAAU,CA2DxG"}
@@ -1 +1 @@
1
- {"version":3,"file":"renko.d.ts","sourceRoot":"","sources":["../../../src/charts/transforms/renko.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,GAAG,UAAU,CAoCzE"}
1
+ {"version":3,"file":"renko.d.ts","sourceRoot":"","sources":["../../../src/charts/transforms/renko.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,GAAG,UAAU,CAqCzE"}
@@ -1,12 +1,45 @@
1
- import { DrawingPlugin, DrawingDescriptor, DrawingState, DrawingStyle, Point, ViewportState, AnchorPoint } from '@tradecanvas/commons';
1
+ import { DrawingPlugin, DrawingDescriptor, DrawingLevel, DrawingOptionValue, DrawingState, DrawingStyle, Point, ViewportState, AnchorPoint } from '@tradecanvas/commons';
2
+ /**
3
+ * How a line is straight on the chart: along `at` (a time's bar position, or
4
+ * the time itself) and `value` (log price on a log scale, else price).
5
+ */
6
+ export interface LineSpace {
7
+ at(time: number): number;
8
+ value(price: number): number;
9
+ price(value: number): number;
10
+ }
11
+ /** The space lines are straight in on this chart; plain time and price without a viewport. */
12
+ export declare function lineSpace(viewport?: ViewportState): LineSpace;
13
+ /** How far `point` is from the segment `p1`–`p2` (px). */
14
+ export declare function distanceToSegment(point: Point, p1: Point, p2: Point): number;
15
+ /** Whether `point` is within `tolerance` of the line through `pts` (and back to the start, with `close`). */
16
+ export declare function nearPolyline(point: Point, pts: readonly Point[], tolerance: number, close?: boolean): boolean;
2
17
  export declare abstract class DrawingBase implements DrawingPlugin {
3
18
  abstract descriptor: DrawingDescriptor;
4
19
  abstract render(ctx: CanvasRenderingContext2D, state: DrawingState, viewport: ViewportState, selected: boolean): void;
5
20
  abstract hitTest(point: Point, state: DrawingState, viewport: ViewportState, tolerance: number): boolean;
6
21
  hitTestAnchor(point: Point, state: DrawingState, viewport: ViewportState, tolerance: number): number;
22
+ /** One of the drawing's options (see `descriptor.options`), its default when unset. */
23
+ protected option<T extends DrawingOptionValue>(state: DrawingState, key: string): T;
24
+ /** The levels turned on, in order. */
25
+ protected visibleLevels(state: DrawingState, key?: string): DrawingLevel[];
26
+ /** The line from `p1` to `p2`, carried to the edge of the chart past either end when asked. */
27
+ protected extendLine(p1: Point, p2: Point, viewport: ViewportState, left: boolean, right: boolean): [Point, Point];
28
+ /**
29
+ * The price on the line through `a` and `b` at `time`: between the anchors,
30
+ * or past `a` / past `b` when the line is extended that way. Null elsewhere,
31
+ * or for a vertical line. `space` is the one the line is straight in.
32
+ */
33
+ protected linePriceAt(a: AnchorPoint, b: AnchorPoint, time: number, pastA: boolean, pastB: boolean, space?: LineSpace): number | null;
34
+ /** `linePriceAt` in `space`'s values (log price on a log scale). */
35
+ protected lineValueAt(a: AnchorPoint, b: AnchorPoint, time: number, pastA: boolean, pastB: boolean, space: LineSpace): number | null;
7
36
  protected anchorToPixel(anchor: AnchorPoint, viewport: ViewportState): Point;
8
37
  protected pixelToAnchor(point: Point, viewport: ViewportState): AnchorPoint;
9
38
  protected applyLineStyle(ctx: CanvasRenderingContext2D, style: DrawingStyle): void;
39
+ /** A horizontal line from `x0` to `x1` at `y`, on whole device pixels (sharp, not smeared). */
40
+ protected strokeHorizontal(ctx: CanvasRenderingContext2D, x0: number, x1: number, y: number): void;
41
+ /** A vertical line from `y0` to `y1` at `x`, on whole device pixels. */
42
+ protected strokeVertical(ctx: CanvasRenderingContext2D, x: number, y0: number, y1: number): void;
10
43
  protected resetLineStyle(ctx: CanvasRenderingContext2D): void;
11
44
  protected renderAnchorHandles(ctx: CanvasRenderingContext2D, state: DrawingState, viewport: ViewportState): void;
12
45
  protected distanceToLine(point: Point, p1: Point, p2: Point): number;
@@ -1 +1 @@
1
- {"version":3,"file":"DrawingBase.d.ts","sourceRoot":"","sources":["../../src/drawings/DrawingBase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,KAAK,EACL,aAAa,EACb,WAAW,EACZ,MAAM,sBAAsB,CAAC;AAG9B,8BAAsB,WAAY,YAAW,aAAa;IACxD,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IAEvC,QAAQ,CAAC,MAAM,CACb,GAAG,EAAE,wBAAwB,EAC7B,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,OAAO,GAChB,IAAI;IAEP,QAAQ,CAAC,OAAO,CACd,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,aAAa,EACvB,SAAS,EAAE,MAAM,GAChB,OAAO;IAEV,aAAa,CACX,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,aAAa,EACvB,SAAS,EAAE,MAAM,GAChB,MAAM;IAST,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,GAAG,KAAK;IAM5E,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,GAAG,WAAW;IAM3E,SAAS,CAAC,cAAc,CAAC,GAAG,EAAE,wBAAwB,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI;IAUlF,SAAS,CAAC,cAAc,CAAC,GAAG,EAAE,wBAAwB,GAAG,IAAI;IAI7D,SAAS,CAAC,mBAAmB,CAAC,GAAG,EAAE,wBAAwB,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI;IAYhH,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,GAAG,MAAM;IAYpE,SAAS,CAAC,sBAAsB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,GAAG,MAAM;CAO7E"}
1
+ {"version":3,"file":"DrawingBase.d.ts","sourceRoot":"","sources":["../../src/drawings/DrawingBase.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import { AnchorPoint, DrawingPlugin, DrawingState, Point } from '@tradecanvas/commons';
2
+ /** What a press, move or release did to the drawing being made. */
3
+ export type CreationStep = 'continue' | 'done' | 'cancel';
4
+ /** Most points a freehand stroke keeps. */
5
+ export declare const MAX_FREEHAND_POINTS = 2000;
6
+ /** Most points a path takes unless its tool says otherwise. */
7
+ export declare const MAX_PATH_POINTS = 100;
8
+ /**
9
+ * The drawing being made with the pointer, for each way a tool is drawn
10
+ * (`DrawingDescriptor.creation`):
11
+ * - clicks: a click per anchor until it has `requiredAnchors`;
12
+ * - freehand: press and drag, a point every few pixels, release to finish;
13
+ * - path: a click per point; a double-click, Enter or a click on the last
14
+ * point finishes it.
15
+ */
16
+ export declare class DrawingCreator {
17
+ private drawing;
18
+ private plugin;
19
+ private preview;
20
+ private lastPos;
21
+ private dragging;
22
+ /** Pixels between freehand points; doubled each time the stroke is thinned. */
23
+ private step;
24
+ /** The drawing being made (its committed anchors), or null. */
25
+ get current(): DrawingState | null;
26
+ reset(): void;
27
+ /**
28
+ * A press at `anchor` (at `pos` on screen). `start` makes the drawing on the
29
+ * first one. `onScreen` puts an anchor where it is now, so a path ends on a
30
+ * click on its last point even after the chart was panned.
31
+ */
32
+ press(plugin: DrawingPlugin, start: () => DrawingState, anchor: AnchorPoint, pos: Point, onScreen?: (anchor: AnchorPoint) => Point): CreationStep;
33
+ /** The pointer moved: a freehand stroke takes a point, others show where the next anchor would go. */
34
+ move(anchor: AnchorPoint, pos: Point): boolean;
35
+ /** The press ended: a freehand stroke is done (or dropped, when it never moved). */
36
+ release(): CreationStep | null;
37
+ /**
38
+ * Take back the last point clicked (Ctrl+Z while drawing). False when there
39
+ * was only the first one: the drawing is dropped then.
40
+ */
41
+ undoPoint(): boolean;
42
+ /** End a path here (Enter, or a double-click): done when it has enough points. */
43
+ finish(): CreationStep;
44
+ /** The drawing as shown while it is made: its anchors, and the one under the pointer. */
45
+ previewState(): DrawingState | null;
46
+ /** Take the finished drawing; the creator is empty after. */
47
+ take(): DrawingState | null;
48
+ private hasEnough;
49
+ private commit;
50
+ }
51
+ //# sourceMappingURL=DrawingCreator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DrawingCreator.d.ts","sourceRoot":"","sources":["../../src/drawings/DrawingCreator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE5F,mEAAmE;AACnE,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAC;AAM1D,2CAA2C;AAC3C,eAAO,MAAM,mBAAmB,OAAO,CAAC;AACxC,+DAA+D;AAC/D,eAAO,MAAM,eAAe,MAAM,CAAC;AAMnC;;;;;;;GAOG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,QAAQ,CAAS;IACzB,+EAA+E;IAC/E,OAAO,CAAC,IAAI,CAAoB;IAEhC,+DAA+D;IAC/D,IAAI,OAAO,IAAI,YAAY,GAAG,IAAI,CAEjC;IAED,KAAK,IAAI,IAAI;IASb;;;;OAIG;IACH,KAAK,CACH,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,MAAM,YAAY,EACzB,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,KAAK,EACV,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,KAAK,GACxC,YAAY;IAyBf,sGAAsG;IACtG,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK,GAAG,OAAO;IAqB9C,oFAAoF;IACpF,OAAO,IAAI,YAAY,GAAG,IAAI;IAM9B;;;OAGG;IACH,SAAS,IAAI,OAAO;IAWpB,kFAAkF;IAClF,MAAM,IAAI,YAAY;IAOtB,yFAAyF;IACzF,YAAY,IAAI,YAAY,GAAG,IAAI;IAOnC,6DAA6D;IAC7D,IAAI,IAAI,YAAY,GAAG,IAAI;IAM3B,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,MAAM;CAKf"}
@@ -0,0 +1,36 @@
1
+ import { DrawingPlugin, DrawingState, Point, ViewportState } from '@tradecanvas/commons';
2
+ /**
3
+ * Drawings being dragged with the pointer: moved together (a selection), or
4
+ * one reshaped by a handle. Drawings are looked up by id on every move, so
5
+ * an undo or a reload in between leaves nothing stale.
6
+ */
7
+ export declare class DrawingDrag {
8
+ private readonly find;
9
+ private start;
10
+ /** The handle being dragged, or -1 while moving. */
11
+ private handle;
12
+ private grabbed;
13
+ constructor(find: (id: string) => DrawingState | undefined);
14
+ isActive(): boolean;
15
+ /** Grab drawings to move together; the first is the one under the pointer. */
16
+ beginMove(pos: Point, drawings: readonly DrawingState[]): void;
17
+ /** Grab handle `handle` of a drawing to reshape it. */
18
+ beginResize(pos: Point, drawing: DrawingState, handle: number): void;
19
+ /** Follow the pointer. True when something changed. */
20
+ move(pos: Point, viewport: ViewportState, plugin: DrawingPlugin | undefined): boolean;
21
+ /** Let go: each drawing that changed, with how it was before. */
22
+ end(): {
23
+ before: DrawingState;
24
+ drawing: DrawingState;
25
+ }[];
26
+ /**
27
+ * Move every grabbed drawing by the pointer's travel: whole bars in time
28
+ * (each point keeps its place between bars, and a weekend gap moves like
29
+ * any other bar), and on screen in price (so a log scale keeps the shape).
30
+ */
31
+ private translate;
32
+ private unmoved;
33
+ /** Put the handle under the pointer: an anchor, or what the tool's `moveHandle` makes of it. */
34
+ private reshape;
35
+ }
36
+ //# sourceMappingURL=DrawingDrag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DrawingDrag.d.ts","sourceRoot":"","sources":["../../src/drawings/DrawingDrag.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,aAAa,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAe3G;;;;GAIG;AACH,qBAAa,WAAW;IAMV,OAAO,CAAC,QAAQ,CAAC,IAAI;IALjC,OAAO,CAAC,KAAK,CAAsB;IACnC,oDAAoD;IACpD,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,OAAO,CAAiB;gBAEH,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,YAAY,GAAG,SAAS;IAE3E,QAAQ,IAAI,OAAO;IAInB,8EAA8E;IAC9E,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,YAAY,EAAE,GAAG,IAAI;IAM9D,uDAAuD;IACvD,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAMpE,uDAAuD;IACvD,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,GAAG,SAAS,GAAG,OAAO;IAKrF,iEAAiE;IACjE,GAAG,IAAI;QAAE,MAAM,EAAE,YAAY,CAAC;QAAC,OAAO,EAAE,YAAY,CAAA;KAAE,EAAE;IAWxD;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAwBjB,OAAO,CAAC,OAAO;IAOf,gGAAgG;IAChG,OAAO,CAAC,OAAO;CAehB"}
@@ -1,26 +1,28 @@
1
- import { DrawingPlugin, DrawingState, DrawingToolType, DrawingStyle, Point, ViewportState, OHLCBar } from '@tradecanvas/commons';
2
- import { UndoRedoManager } from '../features/UndoRedoManager.js';
1
+ import { DrawingPlugin, DrawingState, DrawingToolType, DrawingStyle, DrawingOptions, DrawingOptionDefs, Point, ViewportState, OHLCBar } from '@tradecanvas/commons';
2
+ import { UndoRedoManager, UndoableAction } from '../features/UndoRedoManager.js';
3
+ import { DrawingOrderMove, DrawingPatch } from './drawingState.js';
4
+ import { MagnetMode } from './magnetSnap.js';
5
+ export type { DrawingOrderMove, DrawingPatch } from './drawingState.js';
3
6
  type DrawingEventCallback = (event: string, data: unknown) => void;
4
7
  export type DrawingInteractionState = 'idle' | 'creating' | 'selected' | 'moving' | 'resizing';
5
- export type MagnetMode = 'none' | 'magnet';
8
+ export type { MagnetMode } from './magnetSnap.js';
6
9
  export declare class DrawingManager {
7
10
  private registry;
8
11
  private drawings;
9
12
  private state;
10
13
  private activeTool;
11
14
  private activeStyle;
12
- private creatingDrawing;
13
- private committedAnchors;
14
- private previewAnchor;
15
- private selectedDrawingId;
16
- /** Drawings selected together with `selectedDrawingId` (Ctrl/⌘-drag or Ctrl/⌘-click). */
17
- private groupIds;
15
+ /** The drawing being made with the pointer. */
16
+ private creator;
17
+ /** When the last drawing was finished, and the last press that drew (ms). */
18
+ private finishedAt;
19
+ private creationPressAt;
20
+ /** The eraser: a click on a drawing removes it. */
21
+ private eraser;
22
+ private selection;
18
23
  /** Start state of the other group members while the group is dragged. */
19
- private groupDrag;
20
- private dragAnchorIndex;
21
- private dragStartPoint;
22
- private dragStartAnchors;
23
- private dragBeforeState;
24
+ /** Drawings being moved or reshaped with the pointer. */
25
+ private drag;
24
26
  private eventCallback;
25
27
  private requestRender;
26
28
  private undoRedo;
@@ -31,41 +33,64 @@ export declare class DrawingManager {
31
33
  private stayInDrawingMode;
32
34
  /** Tools this chart allows (e.g. a whitelist); pasting skips the others. */
33
35
  private toolAllowed;
36
+ /** Options new drawings of a tool start with ("save as default"). */
37
+ private toolDefaults;
38
+ /** Drawings being edited (a settings dialog), with their state when the edit began. */
39
+ private edits;
40
+ /** Undo actions gathered by `batchUndo`, pushed as one step when it ends. */
41
+ private batch;
34
42
  register(plugin: DrawingPlugin): void;
35
43
  setEventCallback(cb: DrawingEventCallback): void;
36
44
  setRequestRender(cb: () => void): void;
37
45
  setUndoRedoManager(mgr: UndoRedoManager): void;
38
46
  setMagnetMode(mode: MagnetMode): void;
39
47
  getMagnetMode(): MagnetMode;
48
+ /** The chart's bars, for legacy anchors and the tools drawn from bars. */
40
49
  setDataGetter(getter: () => OHLCBar[]): void;
41
50
  /** Set a separate getter for display data (e.g. Heikin Ashi transformed). Used by magnet snap. */
42
51
  setDisplayDataGetter(getter: () => OHLCBar[]): void;
43
- /**
44
- * Snap an in-progress anchor to the closest OHLC value of the underlying
45
- * bar. `time` is interpreted as a timestamp when `viewport.data` is set
46
- * (the modern, recommended mode) or as a bar index otherwise. The returned
47
- * `time` matches the input convention so the caller doesn't need to know.
48
- */
52
+ /** Snap a point being placed to the bar under it (see `snapToBar`), on the bars as drawn (Heikin Ashi, say). */
49
53
  private snapToOHLC;
50
54
  undo(): boolean;
51
55
  redo(): boolean;
56
+ /** Steps in the shared history that aren't about drawings (the chart's indicators, steps of its owner). */
57
+ private foreignHistory;
58
+ /** Who undoes and redoes the history's steps that aren't about drawings. */
59
+ setForeignHistory(handler: ((action: UndoableAction, direction: 'undo' | 'redo') => void) | null): void;
52
60
  private applyUndoAction;
61
+ private applyRedoAction;
62
+ /**
63
+ * Put the drawings an undo or redo left, and report them: drawingRemove and
64
+ * drawingCreate for drawings gone and back (their alerts follow them),
65
+ * drawingUpdate for changed or reordered ones.
66
+ */
67
+ private applyHistory;
53
68
  /**
54
69
  * After undo/redo nothing is selected, and a picked tool (stay-in-drawing
55
70
  * mode, or one picked mid-drawing) stays ready for a fresh drawing.
56
71
  */
57
72
  private settleAfterHistory;
58
- private undoOne;
59
- private applyRedoAction;
60
- private redoOne;
73
+ /** Record an undo step, or add it to the batch being gathered. */
74
+ private record;
61
75
  /**
62
76
  * Run `fn`, recording every undo action it pushes as one undo step, so a
63
- * group move/delete/restyle comes back with a single Ctrl+Z.
77
+ * group move/delete/restyle comes back with a single Ctrl+Z. Nested calls
78
+ * join the outer step.
64
79
  */
65
80
  private batchUndo;
66
- private isSelectedId;
67
- private clearSelection;
81
+ /** Take drawings out of the selection (hidden or removed); another selected one becomes the primary. */
82
+ private deselect;
68
83
  private addToSelection;
84
+ /** The other drawings of `drawing`'s group (selected along with it). */
85
+ private groupMates;
86
+ /**
87
+ * Select a drawing and the rest of its group (a menu opened on it, say). A
88
+ * drawing already in the selection leaves the selection as it is. False
89
+ * for an unknown or hidden drawing, or while a drawing is being drawn.
90
+ */
91
+ select(id: string): boolean;
92
+ /** Told the selected drawings' ids (the primary first) each time the selection changes. */
93
+ setSelectionListener(listener: ((ids: string[]) => void) | null): void;
69
94
  /** Ids of every selected drawing, the primary one first. */
70
95
  getSelectedDrawingIds(): string[];
71
96
  /**
@@ -81,15 +106,21 @@ export declare class DrawingManager {
81
106
  }, viewport: ViewportState): number;
82
107
  /** Ctrl/⌘-click: add the drawing under `pos` to the selection, or take it out. */
83
108
  toggleSelectionAt(pos: Point, viewport: ViewportState): boolean;
84
- /** Begin moving `primary` — and every other selected drawing with it. */
109
+ /** Begin moving `primary` — and every other selected drawing that isn't locked with it. */
85
110
  private beginMove;
111
+ /** Set drawings' visible or locked flags, as one undo step; hidden ones leave the selection. */
112
+ private setFlags;
86
113
  lockAllDrawings(): void;
87
114
  unlockAllDrawings(): void;
88
115
  hideAllDrawings(): void;
89
116
  showAllDrawings(): void;
90
- /** Toggle a single drawing's visibility. Returns the new value, or null if not found. */
117
+ /** Show or hide a drawing (one undo step). Returns the new value, or null if not found. */
91
118
  setDrawingVisible(id: string, visible: boolean): boolean | null;
92
- /** Toggle a single drawing's lock. Returns the new value, or null if not found. */
119
+ /** Show or hide several drawings as one undo step (a selection, say); unknown ids are passed over. */
120
+ setDrawingsVisible(ids: readonly string[], visible: boolean): void;
121
+ /** Lock or unlock several drawings as one undo step. */
122
+ setDrawingsLocked(ids: readonly string[], locked: boolean): void;
123
+ /** Lock or unlock a drawing (one undo step). Returns the new value, or null if not found. */
93
124
  setDrawingLocked(id: string, locked: boolean): boolean | null;
94
125
  setActiveTool(type: DrawingToolType | null): void;
95
126
  /** When on, finishing a drawing keeps its tool active for the next one. */
@@ -116,9 +147,78 @@ export declare class DrawingManager {
116
147
  onPointerDown(pos: Point, viewport: ViewportState): boolean;
117
148
  onPointerMove(pos: Point, viewport: ViewportState): boolean;
118
149
  onPointerUp(): boolean;
119
- onKeyDown(key: string, ctrlKey?: boolean): boolean;
150
+ /**
151
+ * A key for the drawings (see `drawingShortcut`); true when it was used.
152
+ * Pass `shiftKey` so Caps Lock doesn't read as Shift.
153
+ */
154
+ onKeyDown(key: string, ctrlKey?: boolean, shiftKey?: boolean): boolean;
155
+ /** Escape: put the eraser away, drop the tool being drawn with, else the selection. */
156
+ private escape;
157
+ /** Ungroup every group with a drawing in the selection. */
158
+ private ungroupSelection;
120
159
  getDrawings(): DrawingState[];
121
160
  setDrawings(states: DrawingState[]): void;
161
+ /**
162
+ * Draw a drawing on top of the others, under them, or one step up or down
163
+ * (one undo step). False when it is unknown or already there.
164
+ */
165
+ moveDrawing(id: string, to: DrawingOrderMove): boolean;
166
+ /** Every group, its drawings bottom to top. */
167
+ getGroups(): {
168
+ id: string;
169
+ name: string;
170
+ ids: string[];
171
+ }[];
172
+ /** Change every drawing of a group, as one undo step. */
173
+ private updateGroup;
174
+ /**
175
+ * Group drawings (at least two) so they are selected, hidden and locked
176
+ * together; one leaves the group it was in. Returns the group's id, or null.
177
+ */
178
+ groupDrawings(ids: readonly string[], name?: string): string | null;
179
+ ungroup(groupId: string): boolean;
180
+ renameGroup(groupId: string, name: string): boolean;
181
+ /** Show or hide a group; hidden, it leaves the selection. */
182
+ setGroupVisible(groupId: string, visible: boolean): boolean;
183
+ setGroupLocked(groupId: string, locked: boolean): boolean;
184
+ /**
185
+ * The prices of a drawing's lines at `time` (see `DrawingPlugin.priceAt`),
186
+ * or null; as drawn on `viewport`'s scale when given.
187
+ */
188
+ priceAt(id: string, time: number, viewport?: ViewportState): number[] | null;
189
+ /** Whether a drawing has lines an alert can cross. */
190
+ hasPriceLevels(id: string): boolean;
191
+ /** A registered tool's descriptor, or null. */
192
+ getDescriptor(type: DrawingToolType): DrawingPlugin['descriptor'] | null;
193
+ /** The options a tool offers (empty for a tool without any). */
194
+ getOptionDefs(type: DrawingToolType): DrawingOptionDefs;
195
+ private optionDefs;
196
+ /** A new drawing's options: the tool's defaults, then `explicit`; undefined when none. */
197
+ private initialOptions;
198
+ /** Options every new drawing of `type` starts with; invalid entries are dropped. */
199
+ setToolDefaults(type: DrawingToolType, options: DrawingOptions | null): void;
200
+ getToolDefaults(type: DrawingToolType): DrawingOptions;
201
+ /** Every option of a drawing, its tool's defaults filled in; empty for an unknown drawing. */
202
+ getDrawingOptions(id: string): DrawingOptions;
203
+ /** Change some of a drawing's options (one undo step). False for an unknown drawing. */
204
+ setDrawingOptions(id: string, options: DrawingOptions): boolean;
205
+ /**
206
+ * Change a drawing's anchors, style or options (one undo step, or part of
207
+ * the edit begun with `beginEdit`). Anchors must be as many as it has, with
208
+ * finite times and prices; options are checked against the tool. Explicit
209
+ * edits apply to locked drawings too: the lock only stops the pointer.
210
+ */
211
+ updateDrawing(id: string, patch: DrawingPatch): boolean;
212
+ /**
213
+ * Start editing a drawing (a settings dialog previewing changes): the
214
+ * `updateDrawing` calls until `endEdit` become one undo step. False for an
215
+ * unknown drawing.
216
+ */
217
+ beginEdit(id: string): boolean;
218
+ /** Finish an edit: keep the changes as one undo step, or with `cancel` put the drawing back. */
219
+ endEdit(id: string, { cancel }?: {
220
+ cancel?: boolean;
221
+ }): void;
122
222
  /**
123
223
  * Append a drawing (assigning a fresh id and applying the active style for any
124
224
  * omitted style fields). Records an undo entry. Returns the new id.
@@ -138,6 +238,11 @@ export declare class DrawingManager {
138
238
  */
139
239
  private upgradeLegacyAnchors;
140
240
  removeDrawing(id: string): void;
241
+ /**
242
+ * Remove drawings as one undo step; locked ones stay. Returns how many
243
+ * went.
244
+ */
245
+ removeDrawings(ids: readonly string[]): number;
141
246
  duplicateDrawing(id: string): string | null;
142
247
  clearDrawings(): void;
143
248
  getSelectedDrawingId(): string | null;
@@ -148,7 +253,26 @@ export declare class DrawingManager {
148
253
  * `n × median bar interval`; otherwise it's just `n` (bar-index mode).
149
254
  */
150
255
  private computeBarOffsetTime;
256
+ /** Where a press or move puts an anchor: magnet-snapped, except for a freehand stroke. */
257
+ private creationAnchor;
151
258
  private handleCreationClick;
259
+ private afterCreationStep;
260
+ /**
261
+ * Turn the eraser on or off: while on, a click on a drawing (not a locked
262
+ * one) removes it, one undo step each. Picking a tool or Escape turns it off.
263
+ */
264
+ setEraser(on: boolean): void;
265
+ isEraser(): boolean;
266
+ /** The eraser at `pos`: remove the drawing there. A press off any drawing is left to the chart (a pan). */
267
+ private erase;
268
+ /** The topmost drawing the eraser would take at `pos`: locked ones are passed over. */
269
+ private erasableAt;
270
+ /**
271
+ * Whether a press that drew just finished a drawing: the double-click that
272
+ * ended a path isn't a double-click on it. A drawing finished earlier can be
273
+ * double-clicked straight away.
274
+ */
275
+ justFinished(withinMs?: number): boolean;
152
276
  private finalizeCreation;
153
277
  /** True while a drawing is being moved or reshaped by its handle. */
154
278
  isDragging(): boolean;
@@ -157,10 +281,9 @@ export declare class DrawingManager {
157
281
  * 'pointer' over any drawing that can be grabbed, otherwise null. Null too
158
282
  * while a drawing tool is active (the chart keeps its crosshair).
159
283
  */
284
+ /** The topmost visible drawing under `pos` (locked ones too), or null. */
285
+ drawingAt(pos: Point, viewport: ViewportState, tolerance?: number): string | null;
160
286
  hoverCursorAt(pos: Point, viewport: ViewportState): 'move' | 'pointer' | null;
161
287
  private handleSelectionClick;
162
- private handleMove;
163
- private handleResize;
164
288
  }
165
- export {};
166
289
  //# sourceMappingURL=DrawingManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DrawingManager.d.ts","sourceRoot":"","sources":["../../src/drawings/DrawingManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DrawingManager.d.ts","sourceRoot":"","sources":["../../src/drawings/DrawingManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,KAAK,EACL,aAAa,EACb,OAAO,EAER,MAAM,sBAAsB,CAAC;AAG9B,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACtF,OAAO,EASL,KAAK,gBAAgB,EACrB,KAAK,YAAY,EAClB,MAAM,mBAAmB,CAAC;AAI3B,OAAO,EAAa,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAI7D,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAExE,KAAK,oBAAoB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;AAEnE,MAAM,MAAM,uBAAuB,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,GAAG,QAAQ,GAAG,UAAU,CAAC;AAC/F,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AASlD,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAA6C;IAC7D,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,KAAK,CAAmC;IAChD,OAAO,CAAC,UAAU,CAAgC;IAClD,OAAO,CAAC,WAAW,CAOjB;IACF,+CAA+C;IAC/C,OAAO,CAAC,OAAO,CAAwB;IACvC,6EAA6E;IAC7E,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,eAAe,CAAa;IACpC,mDAAmD;IACnD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAA0B;IAC3C,yEAAyE;IACzE,yDAAyD;IACzD,OAAO,CAAC,IAAI,CAAmE;IAC/E,OAAO,CAAC,aAAa,CAAqC;IAC1D,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,QAAQ,CAAgC;IAChD,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,UAAU,CAAkC;IACpD,OAAO,CAAC,iBAAiB,CAAkC;IAC3D,2EAA2E;IAC3E,OAAO,CAAC,iBAAiB,CAAS;IAClC,4EAA4E;IAC5E,OAAO,CAAC,WAAW,CAAkD;IACrE,qEAAqE;IACrE,OAAO,CAAC,YAAY,CAA8C;IAClE,uFAAuF;IACvF,OAAO,CAAC,KAAK,CAAmC;IAChD,6EAA6E;IAC7E,OAAO,CAAC,KAAK,CAAiC;IAE9C,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAKrC,gBAAgB,CAAC,EAAE,EAAE,oBAAoB,GAAG,IAAI;IAIhD,gBAAgB,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAItC,kBAAkB,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI;IAI9C,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAIrC,aAAa,IAAI,UAAU;IAI3B,0EAA0E;IAC1E,aAAa,CAAC,MAAM,EAAE,MAAM,OAAO,EAAE,GAAG,IAAI;IAK5C,kGAAkG;IAClG,oBAAoB,CAAC,MAAM,EAAE,MAAM,OAAO,EAAE,GAAG,IAAI;IAMnD,gHAAgH;IAChH,OAAO,CAAC,UAAU;IAOlB,IAAI,IAAI,OAAO;IAQf,IAAI,IAAI,OAAO;IAQf,2GAA2G;IAC3G,OAAO,CAAC,cAAc,CAA+E;IAErG,4EAA4E;IAC5E,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI;IAIvG,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,eAAe;IAQvB;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAkBpB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAO1B,kEAAkE;IAClE,OAAO,CAAC,MAAM;IAKd;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAkBjB,wGAAwG;IACxG,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,cAAc;IAKtB,wEAAwE;IACxE,OAAO,CAAC,UAAU;IAKlB;;;;OAIG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAU3B,2FAA2F;IAC3F,oBAAoB,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI;IAItE,4DAA4D;IAC5D,qBAAqB,IAAI,MAAM,EAAE;IAIjC;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,QAAQ,EAAE,aAAa,GAAG,MAAM;IAqBvG,kFAAkF;IAClF,iBAAiB,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,GAAG,OAAO;IAgB/D,2FAA2F;IAC3F,OAAO,CAAC,SAAS;IAWjB,gGAAgG;IAChG,OAAO,CAAC,QAAQ;IAehB,eAAe,IAAI,IAAI;IAIvB,iBAAiB,IAAI,IAAI;IAIzB,eAAe,IAAI,IAAI;IAIvB,eAAe,IAAI,IAAI;IAIvB,2FAA2F;IAC3F,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI;IAO/D,sGAAsG;IACtG,kBAAkB,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAKlE,wDAAwD;IACxD,iBAAiB,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAKhE,6FAA6F;IAC7F,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI;IAS7D,aAAa,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,GAAG,IAAI;IASjD,2EAA2E;IAC3E,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAI5C,mBAAmB,IAAI,OAAO;IAI9B,aAAa,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,OAAO,GAAG,IAAI;IAMhE,gEAAgE;IAChE,aAAa,IAAI,MAAM;IAUvB;;;;OAIG;IACH,KAAK,IAAI,MAAM,EAAE;IAyBjB,aAAa,IAAI,eAAe,GAAG,IAAI;IAIvC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;IAI5C,uDAAuD;IACvD,cAAc,IAAI,YAAY;IAI9B;;;OAGG;IACH,uBAAuB,CAAC,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO;IAoB3E,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,GAAG,OAAO;IAa3D,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,GAAG,OAAO;IAiB3D,WAAW,IAAI,OAAO;IAwBtB;;;OAGG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,UAAQ,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO;IA8CpE,uFAAuF;IACvF,OAAO,CAAC,MAAM;IAmBd,2DAA2D;IAC3D,OAAO,CAAC,gBAAgB;IAYxB,WAAW,IAAI,YAAY,EAAE;IAI7B,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI;IAgBzC;;;OAGG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,gBAAgB,GAAG,OAAO;IAgBtD,+CAA+C;IAC/C,SAAS,IAAI;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE;IAW1D,yDAAyD;IACzD,OAAO,CAAC,WAAW;IAenB;;;OAGG;IACH,aAAa,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAmBnE,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIjC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAKnD,6DAA6D;IAC7D,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO;IAM3D,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO;IAMzD;;;OAGG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,MAAM,EAAE,GAAG,IAAI;IAO5E,sDAAsD;IACtD,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAKnC,+CAA+C;IAC/C,aAAa,CAAC,IAAI,EAAE,eAAe,GAAG,aAAa,CAAC,YAAY,CAAC,GAAG,IAAI;IAIxE,gEAAgE;IAChE,aAAa,CAAC,IAAI,EAAE,eAAe,GAAG,iBAAiB;IAIvD,OAAO,CAAC,UAAU;IAIlB,0FAA0F;IAC1F,OAAO,CAAC,cAAc;IAStB,oFAAoF;IACpF,eAAe,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,GAAG,IAAI;IAM5E,eAAe,CAAC,IAAI,EAAE,eAAe,GAAG,cAAc;IAItD,8FAA8F;IAC9F,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc;IAM7C,wFAAwF;IACxF,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO;IAI/D;;;;;OAKG;IACH,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO;IAqBvD;;;;OAIG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAO9B,gGAAgG;IAChG,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,MAAc,EAAE,GAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,IAAI;IAexE;;;OAGG;IACH,UAAU,CACR,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC,GAAG;QACjE,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,KAAK,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;QAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,GACA,MAAM;IAoBT;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IAc5B,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAkB/B;;;OAGG;IACH,cAAc,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM;IAU9C,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IA6B3C,aAAa,IAAI,IAAI;IAOrB,oBAAoB,IAAI,MAAM,GAAG,IAAI;IAMrC,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI;IAwBpE;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAgB5B,0FAA0F;IAC1F,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,mBAAmB;IAmB3B,OAAO,CAAC,iBAAiB;IAMzB;;;OAGG;IACH,SAAS,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI;IAY5B,QAAQ,IAAI,OAAO;IAInB,2GAA2G;IAC3G,OAAO,CAAC,KAAK;IAOb,uFAAuF;IACvF,OAAO,CAAC,UAAU;IASlB;;;;OAIG;IACH,YAAY,CAAC,QAAQ,SAAM,GAAG,OAAO;IAIrC,OAAO,CAAC,gBAAgB;IAmBxB,qEAAqE;IACrE,UAAU,IAAI,OAAO;IAIrB;;;;OAIG;IACH,0EAA0E;IAC1E,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,SAAI,GAAG,MAAM,GAAG,IAAI;IAS5E,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI;IAkB7E,OAAO,CAAC,oBAAoB;CAyD7B"}
@@ -1,8 +1,8 @@
1
- import { ViewportState } from '@tradecanvas/commons';
1
+ import { Theme, ViewportState } from '@tradecanvas/commons';
2
2
  import { DrawingManager } from './DrawingManager.js';
3
3
  export declare class DrawingRenderer {
4
4
  private manager;
5
5
  constructor(manager: DrawingManager);
6
- render(ctx: CanvasRenderingContext2D, viewport: ViewportState): void;
6
+ render(ctx: CanvasRenderingContext2D, viewport: ViewportState, theme?: Theme): void;
7
7
  }
8
8
  //# sourceMappingURL=DrawingRenderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DrawingRenderer.d.ts","sourceRoot":"","sources":["../../src/drawings/DrawingRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,qBAAa,eAAe;IACd,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,cAAc;IAE3C,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI;CAGrE"}
1
+ {"version":3,"file":"DrawingRenderer.d.ts","sourceRoot":"","sources":["../../src/drawings/DrawingRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAEjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,qBAAa,eAAe;IACd,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,cAAc;IAE3C,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI;CAKpF"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * The selected drawings: a primary one (its handles show, it is what a drag
3
+ * reshapes) and the others selected with it (a box, Ctrl/⌘-clicks, its group).
4
+ */
5
+ export declare class DrawingSelection {
6
+ private primaryId;
7
+ private others;
8
+ private listener;
9
+ /** Told the selected ids (the primary first) after each change. */
10
+ setListener(listener: ((ids: string[]) => void) | null): void;
11
+ /** Run a change; tell the listener when the selection came out different. */
12
+ private change;
13
+ get primary(): string | null;
14
+ has(id: string): boolean;
15
+ /** Every selected id, the primary first. */
16
+ ids(): string[];
17
+ clear(): void;
18
+ /** Add a drawing; the first one is the primary. */
19
+ add(id: string): void;
20
+ /** Select `id` as the primary, and `along` with it (the rest of its group). */
21
+ only(id: string, along?: Iterable<string>): void;
22
+ /** Make a selected drawing the primary, keeping the rest. */
23
+ focus(id: string): void;
24
+ /** Take drawings out; another selected one becomes the primary. Whether anything changed. */
25
+ remove(ids: Iterable<string>): boolean;
26
+ private removeNow;
27
+ }
28
+ //# sourceMappingURL=DrawingSelection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DrawingSelection.d.ts","sourceRoot":"","sources":["../../src/drawings/DrawingSelection.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,QAAQ,CAA0C;IAE1D,mEAAmE;IACnE,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI;IAI7D,6EAA6E;IAC7E,OAAO,CAAC,MAAM;IAOd,IAAI,OAAO,IAAI,MAAM,GAAG,IAAI,CAE3B;IAED,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIxB,4CAA4C;IAC5C,GAAG,IAAI,MAAM,EAAE;IAIf,KAAK,IAAI,IAAI;IAOb,mDAAmD;IACnD,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAOrB,+EAA+E;IAC/E,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,GAAE,QAAQ,CAAC,MAAM,CAAM,GAAG,IAAI;IAQpD,6DAA6D;IAC7D,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IASvB,6FAA6F;IAC7F,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,OAAO;IAItC,OAAO,CAAC,SAAS;CAkBlB"}
@@ -0,0 +1,12 @@
1
+ import { DrawingState } from '@tradecanvas/commons';
2
+ import { UndoableAction } from '../features/UndoRedoManager.js';
3
+ import { DrawingOrderMove } from './drawingState.js';
4
+ /** The drawings in `ids` order; any not listed stay after them. */
5
+ export declare function orderDrawings(drawings: readonly DrawingState[], ids: readonly string[]): DrawingState[];
6
+ /** Where a drawing at `from` (of `count`) goes for `to`. */
7
+ export declare function orderTarget(from: number, count: number, to: DrawingOrderMove): number;
8
+ /** The drawings with `action` taken back. Changed drawings are new objects. */
9
+ export declare function undoAction(drawings: readonly DrawingState[], action: UndoableAction): DrawingState[];
10
+ /** The drawings with `action` done again. */
11
+ export declare function redoAction(drawings: readonly DrawingState[], action: UndoableAction): DrawingState[];
12
+ //# sourceMappingURL=drawingHistory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drawingHistory.d.ts","sourceRoot":"","sources":["../../src/drawings/drawingHistory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,mEAAmE;AACnE,wBAAgB,aAAa,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,EAAE,GAAG,EAAE,SAAS,MAAM,EAAE,GAAG,YAAY,EAAE,CAKvG;AAED,4DAA4D;AAC5D,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,gBAAgB,GAAG,MAAM,CAQrF;AAMD,+EAA+E;AAC/E,wBAAgB,UAAU,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,EAAE,MAAM,EAAE,cAAc,GAAG,YAAY,EAAE,CAoBpG;AAED,6CAA6C;AAC7C,wBAAgB,UAAU,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,EAAE,MAAM,EAAE,cAAc,GAAG,YAAY,EAAE,CAepG"}