stream-charts 1.2.1 → 2.0.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 (463) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +809 -1022
  3. package/changes.md +36 -0
  4. package/dist/app/charts/Chart.d.ts +35 -139
  5. package/dist/app/charts/Chart.d.ts.map +1 -0
  6. package/dist/app/charts/Chart.js +74 -65
  7. package/dist/app/charts/Chart.js.map +1 -1
  8. package/dist/app/charts/axes/AxesState.d.ts +26 -18
  9. package/dist/app/charts/axes/AxesState.d.ts.map +1 -0
  10. package/dist/app/charts/axes/AxesState.js +26 -24
  11. package/dist/app/charts/axes/AxesState.js.map +1 -1
  12. package/dist/app/charts/axes/AxisInterval.d.ts +44 -26
  13. package/dist/app/charts/axes/AxisInterval.d.ts.map +1 -0
  14. package/dist/app/charts/axes/AxisInterval.js +48 -29
  15. package/dist/app/charts/axes/AxisInterval.js.map +1 -1
  16. package/dist/app/charts/axes/BaseAxisRange.d.ts +46 -22
  17. package/dist/app/charts/axes/BaseAxisRange.d.ts.map +1 -0
  18. package/dist/app/charts/axes/BaseAxisRange.js +17 -12
  19. package/dist/app/charts/axes/BaseAxisRange.js.map +1 -1
  20. package/dist/app/charts/axes/ContinuousAxis.d.ts +47 -6
  21. package/dist/app/charts/axes/ContinuousAxis.d.ts.map +1 -0
  22. package/dist/app/charts/axes/ContinuousAxis.js +160 -27
  23. package/dist/app/charts/axes/ContinuousAxis.js.map +1 -1
  24. package/dist/app/charts/axes/ContinuousAxisRange.d.ts +29 -10
  25. package/dist/app/charts/axes/ContinuousAxisRange.d.ts.map +1 -0
  26. package/dist/app/charts/axes/ContinuousAxisRange.js +29 -11
  27. package/dist/app/charts/axes/ContinuousAxisRange.js.map +1 -1
  28. package/dist/app/charts/axes/EmptyAxis.d.ts +5 -2
  29. package/dist/app/charts/axes/EmptyAxis.d.ts.map +1 -0
  30. package/dist/app/charts/axes/EmptyAxis.js +30 -9
  31. package/dist/app/charts/axes/EmptyAxis.js.map +1 -1
  32. package/dist/app/charts/axes/OrdinalAxis.d.ts +5 -3
  33. package/dist/app/charts/axes/OrdinalAxis.d.ts.map +1 -0
  34. package/dist/app/charts/axes/OrdinalAxis.js +39 -16
  35. package/dist/app/charts/axes/OrdinalAxis.js.map +1 -1
  36. package/dist/app/charts/axes/OrdinalAxisRange.d.ts +76 -13
  37. package/dist/app/charts/axes/OrdinalAxisRange.d.ts.map +1 -0
  38. package/dist/app/charts/axes/OrdinalAxisRange.js +95 -16
  39. package/dist/app/charts/axes/OrdinalAxisRange.js.map +1 -1
  40. package/dist/app/charts/axes/autoScale.d.ts +111 -0
  41. package/dist/app/charts/axes/autoScale.d.ts.map +1 -0
  42. package/dist/app/charts/axes/autoScale.js +188 -0
  43. package/dist/app/charts/axes/autoScale.js.map +1 -0
  44. package/dist/app/charts/axes/axes.d.ts +273 -150
  45. package/dist/app/charts/axes/axes.d.ts.map +1 -0
  46. package/dist/app/charts/axes/axes.js +808 -583
  47. package/dist/app/charts/axes/axes.js.map +1 -1
  48. package/dist/app/charts/d3types.d.ts +40 -11
  49. package/dist/app/charts/d3types.d.ts.map +1 -0
  50. package/dist/app/charts/d3types.js +3 -0
  51. package/dist/app/charts/d3types.js.map +1 -1
  52. package/dist/app/charts/datasources/StreamingDataSource.d.ts +149 -0
  53. package/dist/app/charts/datasources/StreamingDataSource.d.ts.map +1 -0
  54. package/dist/app/charts/datasources/StreamingDataSource.js +110 -0
  55. package/dist/app/charts/datasources/StreamingDataSource.js.map +1 -0
  56. package/dist/app/charts/datasources/iteratesDataSource.d.ts +73 -0
  57. package/dist/app/charts/datasources/iteratesDataSource.d.ts.map +1 -0
  58. package/dist/app/charts/datasources/iteratesDataSource.js +87 -0
  59. package/dist/app/charts/datasources/iteratesDataSource.js.map +1 -0
  60. package/dist/app/charts/datasources/ordinalDataSource.d.ts +75 -0
  61. package/dist/app/charts/datasources/ordinalDataSource.d.ts.map +1 -0
  62. package/dist/app/charts/datasources/ordinalDataSource.js +135 -0
  63. package/dist/app/charts/datasources/ordinalDataSource.js.map +1 -0
  64. package/dist/app/charts/datasources/outlierDataSource.d.ts +53 -0
  65. package/dist/app/charts/datasources/outlierDataSource.d.ts.map +1 -0
  66. package/dist/app/charts/datasources/outlierDataSource.js +57 -0
  67. package/dist/app/charts/datasources/outlierDataSource.js.map +1 -0
  68. package/dist/app/charts/datasources/timeSeriesDataSource.d.ts +77 -0
  69. package/dist/app/charts/datasources/timeSeriesDataSource.d.ts.map +1 -0
  70. package/dist/app/charts/datasources/timeSeriesDataSource.js +85 -0
  71. package/dist/app/charts/datasources/timeSeriesDataSource.js.map +1 -0
  72. package/dist/app/charts/filters/regexFilter.d.ts +31 -4
  73. package/dist/app/charts/filters/regexFilter.d.ts.map +1 -0
  74. package/dist/app/charts/filters/regexFilter.js +38 -4
  75. package/dist/app/charts/filters/regexFilter.js.map +1 -1
  76. package/dist/app/charts/hooks/AxesProvider.d.ts +21 -0
  77. package/dist/app/charts/hooks/AxesProvider.d.ts.map +1 -0
  78. package/dist/app/charts/hooks/AxesProvider.js +213 -0
  79. package/dist/app/charts/hooks/AxesProvider.js.map +1 -0
  80. package/dist/app/charts/hooks/CanvasSurfaceProvider.d.ts +25 -0
  81. package/dist/app/charts/hooks/CanvasSurfaceProvider.d.ts.map +1 -0
  82. package/dist/app/charts/hooks/CanvasSurfaceProvider.js +76 -0
  83. package/dist/app/charts/hooks/CanvasSurfaceProvider.js.map +1 -0
  84. package/dist/app/charts/hooks/ChartProvider.d.ts +40 -0
  85. package/dist/app/charts/hooks/ChartProvider.d.ts.map +1 -0
  86. package/dist/app/charts/hooks/ChartProvider.js +33 -0
  87. package/dist/app/charts/hooks/ChartProvider.js.map +1 -0
  88. package/dist/app/charts/hooks/InteractionProvider.d.ts +23 -0
  89. package/dist/app/charts/hooks/InteractionProvider.d.ts.map +1 -0
  90. package/dist/app/charts/hooks/InteractionProvider.js +60 -0
  91. package/dist/app/charts/hooks/InteractionProvider.js.map +1 -0
  92. package/dist/app/charts/hooks/PlotDimensionsProvider.d.ts +16 -0
  93. package/dist/app/charts/hooks/PlotDimensionsProvider.d.ts.map +1 -0
  94. package/dist/app/charts/hooks/PlotDimensionsProvider.js +76 -0
  95. package/dist/app/charts/hooks/PlotDimensionsProvider.js.map +1 -0
  96. package/dist/app/charts/hooks/defaultAxesValues.d.ts +11 -0
  97. package/dist/app/charts/hooks/defaultAxesValues.d.ts.map +1 -0
  98. package/dist/app/charts/hooks/defaultAxesValues.js +36 -0
  99. package/dist/app/charts/hooks/defaultAxesValues.js.map +1 -0
  100. package/dist/app/charts/hooks/defaultMouseValues.d.ts +9 -0
  101. package/dist/app/charts/hooks/defaultMouseValues.d.ts.map +1 -0
  102. package/dist/app/charts/hooks/defaultMouseValues.js +23 -0
  103. package/dist/app/charts/hooks/defaultMouseValues.js.map +1 -0
  104. package/dist/app/charts/hooks/defaultPlotDimensions.d.ts +13 -0
  105. package/dist/app/charts/hooks/defaultPlotDimensions.d.ts.map +1 -0
  106. package/dist/app/charts/hooks/defaultPlotDimensions.js +23 -0
  107. package/dist/app/charts/hooks/defaultPlotDimensions.js.map +1 -0
  108. package/dist/app/charts/hooks/defaultTooltipValues.d.ts +9 -0
  109. package/dist/app/charts/hooks/defaultTooltipValues.d.ts.map +1 -0
  110. package/dist/app/charts/hooks/defaultTooltipValues.js +21 -0
  111. package/dist/app/charts/hooks/defaultTooltipValues.js.map +1 -0
  112. package/dist/app/charts/hooks/defaultUseChartValues.d.ts +14 -0
  113. package/dist/app/charts/hooks/defaultUseChartValues.d.ts.map +1 -0
  114. package/dist/app/charts/hooks/defaultUseChartValues.js +30 -0
  115. package/dist/app/charts/hooks/defaultUseChartValues.js.map +1 -0
  116. package/dist/app/charts/hooks/useAxes.d.ts +49 -36
  117. package/dist/app/charts/hooks/useAxes.d.ts.map +1 -0
  118. package/dist/app/charts/hooks/useAxes.js +16 -176
  119. package/dist/app/charts/hooks/useAxes.js.map +1 -1
  120. package/dist/app/charts/hooks/useCanvasSurface.d.ts +25 -0
  121. package/dist/app/charts/hooks/useCanvasSurface.d.ts.map +1 -0
  122. package/dist/app/charts/hooks/useCanvasSurface.js +18 -0
  123. package/dist/app/charts/hooks/useCanvasSurface.js.map +1 -0
  124. package/dist/app/charts/hooks/useChart.d.ts +30 -44
  125. package/dist/app/charts/hooks/useChart.d.ts.map +1 -0
  126. package/dist/app/charts/hooks/useChart.js +26 -48
  127. package/dist/app/charts/hooks/useChart.js.map +1 -1
  128. package/dist/app/charts/hooks/useDataSource.d.ts +68 -0
  129. package/dist/app/charts/hooks/useDataSource.d.ts.map +1 -0
  130. package/dist/app/charts/hooks/useDataSource.js +63 -0
  131. package/dist/app/charts/hooks/useDataSource.js.map +1 -0
  132. package/dist/app/charts/hooks/useHoveredSeries.d.ts +25 -0
  133. package/dist/app/charts/hooks/useHoveredSeries.d.ts.map +1 -0
  134. package/dist/app/charts/hooks/useHoveredSeries.js +15 -0
  135. package/dist/app/charts/hooks/useHoveredSeries.js.map +1 -0
  136. package/dist/app/charts/hooks/useMouse.d.ts +46 -22
  137. package/dist/app/charts/hooks/useMouse.d.ts.map +1 -0
  138. package/dist/app/charts/hooks/useMouse.js +12 -56
  139. package/dist/app/charts/hooks/useMouse.js.map +1 -1
  140. package/dist/app/charts/hooks/usePlotDimensions.d.ts +25 -13
  141. package/dist/app/charts/hooks/usePlotDimensions.d.ts.map +1 -0
  142. package/dist/app/charts/hooks/usePlotDimensions.js +6 -62
  143. package/dist/app/charts/hooks/usePlotDimensions.js.map +1 -1
  144. package/dist/app/charts/hooks/useTooltip.d.ts +24 -26
  145. package/dist/app/charts/hooks/useTooltip.d.ts.map +1 -0
  146. package/dist/app/charts/hooks/useTooltip.js +12 -42
  147. package/dist/app/charts/hooks/useTooltip.js.map +1 -1
  148. package/dist/app/charts/index.d.ts +66 -0
  149. package/dist/app/charts/index.d.ts.map +1 -0
  150. package/dist/app/charts/index.js +87 -0
  151. package/dist/app/charts/index.js.map +1 -0
  152. package/dist/app/charts/legends/Legend.d.ts +33 -12
  153. package/dist/app/charts/legends/Legend.d.ts.map +1 -0
  154. package/dist/app/charts/legends/Legend.js +138 -379
  155. package/dist/app/charts/legends/Legend.js.map +1 -1
  156. package/dist/app/charts/legends/constants.d.ts +19 -0
  157. package/dist/app/charts/legends/constants.d.ts.map +1 -0
  158. package/dist/app/charts/legends/constants.js +34 -0
  159. package/dist/app/charts/legends/constants.js.map +1 -0
  160. package/dist/app/charts/observables/ChartData.d.ts +1 -0
  161. package/dist/app/charts/observables/ChartData.d.ts.map +1 -0
  162. package/dist/app/charts/observables/iterates.d.ts +13 -7
  163. package/dist/app/charts/observables/iterates.d.ts.map +1 -0
  164. package/dist/app/charts/observables/iterates.js +42 -9
  165. package/dist/app/charts/observables/iterates.js.map +1 -1
  166. package/dist/app/charts/observables/ordinals.d.ts +70 -12
  167. package/dist/app/charts/observables/ordinals.d.ts.map +1 -0
  168. package/dist/app/charts/observables/ordinals.js +127 -48
  169. package/dist/app/charts/observables/ordinals.js.map +1 -1
  170. package/dist/app/charts/observables/outliers.d.ts +18 -0
  171. package/dist/app/charts/observables/outliers.d.ts.map +1 -0
  172. package/dist/app/charts/observables/outliers.js +2 -0
  173. package/dist/app/charts/observables/outliers.js.map +1 -0
  174. package/dist/app/charts/plots/BarPlot.d.ts +87 -13
  175. package/dist/app/charts/plots/BarPlot.d.ts.map +1 -0
  176. package/dist/app/charts/plots/BarPlot.js +603 -356
  177. package/dist/app/charts/plots/BarPlot.js.map +1 -1
  178. package/dist/app/charts/plots/OutlierPlot.d.ts +123 -0
  179. package/dist/app/charts/plots/OutlierPlot.d.ts.map +1 -0
  180. package/dist/app/charts/plots/OutlierPlot.js +430 -0
  181. package/dist/app/charts/plots/OutlierPlot.js.map +1 -0
  182. package/dist/app/charts/plots/PoincarePlot.d.ts +92 -14
  183. package/dist/app/charts/plots/PoincarePlot.d.ts.map +1 -0
  184. package/dist/app/charts/plots/PoincarePlot.js +523 -364
  185. package/dist/app/charts/plots/PoincarePlot.js.map +1 -1
  186. package/dist/app/charts/plots/RasterPlot.d.ts +31 -10
  187. package/dist/app/charts/plots/RasterPlot.d.ts.map +1 -0
  188. package/dist/app/charts/plots/RasterPlot.js +198 -306
  189. package/dist/app/charts/plots/RasterPlot.js.map +1 -1
  190. package/dist/app/charts/plots/ScatterPlot.d.ts +77 -21
  191. package/dist/app/charts/plots/ScatterPlot.d.ts.map +1 -0
  192. package/dist/app/charts/plots/ScatterPlot.js +359 -302
  193. package/dist/app/charts/plots/ScatterPlot.js.map +1 -1
  194. package/dist/app/charts/plots/autoScaleYAxes.d.ts +43 -0
  195. package/dist/app/charts/plots/autoScaleYAxes.d.ts.map +1 -0
  196. package/dist/app/charts/plots/autoScaleYAxes.js +71 -0
  197. package/dist/app/charts/plots/autoScaleYAxes.js.map +1 -0
  198. package/dist/app/charts/plots/colorizedLine.d.ts +61 -0
  199. package/dist/app/charts/plots/colorizedLine.d.ts.map +1 -0
  200. package/dist/app/charts/plots/colorizedLine.js +157 -0
  201. package/dist/app/charts/plots/colorizedLine.js.map +1 -0
  202. package/dist/app/charts/plots/constants.d.ts +7 -0
  203. package/dist/app/charts/plots/constants.d.ts.map +1 -0
  204. package/dist/app/charts/plots/constants.js +11 -0
  205. package/dist/app/charts/plots/constants.js.map +1 -0
  206. package/dist/app/charts/plots/hitTesting.d.ts +88 -0
  207. package/dist/app/charts/plots/hitTesting.d.ts.map +1 -0
  208. package/dist/app/charts/plots/hitTesting.js +136 -0
  209. package/dist/app/charts/plots/hitTesting.js.map +1 -0
  210. package/dist/app/charts/plots/plot.d.ts +52 -16
  211. package/dist/app/charts/plots/plot.d.ts.map +1 -0
  212. package/dist/app/charts/plots/plot.js +108 -35
  213. package/dist/app/charts/plots/plot.js.map +1 -1
  214. package/dist/app/charts/plots/useCanvasZoomPan.d.ts +119 -0
  215. package/dist/app/charts/plots/useCanvasZoomPan.d.ts.map +1 -0
  216. package/dist/app/charts/plots/useCanvasZoomPan.js +113 -0
  217. package/dist/app/charts/plots/useCanvasZoomPan.js.map +1 -0
  218. package/dist/app/charts/plots/useStreamingTimeAxes.d.ts +103 -0
  219. package/dist/app/charts/plots/useStreamingTimeAxes.d.ts.map +1 -0
  220. package/dist/app/charts/plots/useStreamingTimeAxes.js +257 -0
  221. package/dist/app/charts/plots/useStreamingTimeAxes.js.map +1 -0
  222. package/dist/app/charts/series/baseSeries.d.ts +60 -8
  223. package/dist/app/charts/series/baseSeries.d.ts.map +1 -0
  224. package/dist/app/charts/series/baseSeries.js +53 -8
  225. package/dist/app/charts/series/baseSeries.js.map +1 -1
  226. package/dist/app/charts/series/iterateSeries.d.ts +9 -8
  227. package/dist/app/charts/series/iterateSeries.d.ts.map +1 -0
  228. package/dist/app/charts/series/iterateSeries.js +7 -7
  229. package/dist/app/charts/series/iterateSeries.js.map +1 -1
  230. package/dist/app/charts/series/ordinalSeries.d.ts +27 -13
  231. package/dist/app/charts/series/ordinalSeries.d.ts.map +1 -0
  232. package/dist/app/charts/series/ordinalSeries.js +29 -15
  233. package/dist/app/charts/series/ordinalSeries.js.map +1 -1
  234. package/dist/app/charts/series/outlierSeries.d.ts +142 -0
  235. package/dist/app/charts/series/outlierSeries.d.ts.map +1 -0
  236. package/dist/app/charts/series/outlierSeries.js +82 -0
  237. package/dist/app/charts/series/outlierSeries.js.map +1 -0
  238. package/dist/app/charts/series/timeSeries.d.ts +13 -9
  239. package/dist/app/charts/series/timeSeries.d.ts.map +1 -0
  240. package/dist/app/charts/series/timeSeries.js +6 -3
  241. package/dist/app/charts/series/timeSeries.js.map +1 -1
  242. package/dist/app/charts/series/timeSeriesChartData.d.ts +18 -10
  243. package/dist/app/charts/series/timeSeriesChartData.d.ts.map +1 -0
  244. package/dist/app/charts/series/timeSeriesChartData.js +28 -14
  245. package/dist/app/charts/series/timeSeriesChartData.js.map +1 -1
  246. package/dist/app/charts/styling/barPlotStyle.d.ts +46 -2
  247. package/dist/app/charts/styling/barPlotStyle.d.ts.map +1 -0
  248. package/dist/app/charts/styling/barPlotStyle.js +37 -3
  249. package/dist/app/charts/styling/barPlotStyle.js.map +1 -1
  250. package/dist/app/charts/styling/canvasStyle.d.ts +53 -0
  251. package/dist/app/charts/styling/canvasStyle.d.ts.map +1 -0
  252. package/dist/app/charts/styling/canvasStyle.js +71 -0
  253. package/dist/app/charts/styling/canvasStyle.js.map +1 -0
  254. package/dist/app/charts/styling/margins.d.ts +21 -2
  255. package/dist/app/charts/styling/margins.d.ts.map +1 -0
  256. package/dist/app/charts/styling/margins.js +25 -4
  257. package/dist/app/charts/styling/margins.js.map +1 -1
  258. package/dist/app/charts/styling/svgStyle.d.ts +10 -56
  259. package/dist/app/charts/styling/svgStyle.d.ts.map +1 -0
  260. package/dist/app/charts/styling/svgStyle.js +3 -78
  261. package/dist/app/charts/styling/svgStyle.js.map +1 -1
  262. package/dist/app/charts/subscriptions/viewDrivers.d.ts +124 -0
  263. package/dist/app/charts/subscriptions/viewDrivers.d.ts.map +1 -0
  264. package/dist/app/charts/subscriptions/viewDrivers.js +338 -0
  265. package/dist/app/charts/subscriptions/viewDrivers.js.map +1 -0
  266. package/dist/app/charts/tooltips/BarPlotTooltipContent.d.ts +12 -78
  267. package/dist/app/charts/tooltips/BarPlotTooltipContent.d.ts.map +1 -0
  268. package/dist/app/charts/tooltips/BarPlotTooltipContent.js +65 -257
  269. package/dist/app/charts/tooltips/BarPlotTooltipContent.js.map +1 -1
  270. package/dist/app/charts/tooltips/DefaultOutlierTooltipContent.d.ts +9 -0
  271. package/dist/app/charts/tooltips/DefaultOutlierTooltipContent.d.ts.map +1 -0
  272. package/dist/app/charts/tooltips/DefaultOutlierTooltipContent.js +16 -0
  273. package/dist/app/charts/tooltips/DefaultOutlierTooltipContent.js.map +1 -0
  274. package/dist/app/charts/tooltips/OutlierPlotTooltipContent.d.ts +30 -0
  275. package/dist/app/charts/tooltips/OutlierPlotTooltipContent.d.ts.map +1 -0
  276. package/dist/app/charts/tooltips/OutlierPlotTooltipContent.js +26 -0
  277. package/dist/app/charts/tooltips/OutlierPlotTooltipContent.js.map +1 -0
  278. package/dist/app/charts/tooltips/PoincarePlotTooltipContent.d.ts +22 -72
  279. package/dist/app/charts/tooltips/PoincarePlotTooltipContent.d.ts.map +1 -0
  280. package/dist/app/charts/tooltips/PoincarePlotTooltipContent.js +104 -171
  281. package/dist/app/charts/tooltips/PoincarePlotTooltipContent.js.map +1 -1
  282. package/dist/app/charts/tooltips/RasterPlotTooltipContent.d.ts +32 -8
  283. package/dist/app/charts/tooltips/RasterPlotTooltipContent.d.ts.map +1 -0
  284. package/dist/app/charts/tooltips/RasterPlotTooltipContent.js +62 -115
  285. package/dist/app/charts/tooltips/RasterPlotTooltipContent.js.map +1 -1
  286. package/dist/app/charts/tooltips/ScatterPlotTooltipContent.d.ts +39 -12
  287. package/dist/app/charts/tooltips/ScatterPlotTooltipContent.d.ts.map +1 -0
  288. package/dist/app/charts/tooltips/ScatterPlotTooltipContent.js +162 -134
  289. package/dist/app/charts/tooltips/ScatterPlotTooltipContent.js.map +1 -1
  290. package/dist/app/charts/tooltips/Tooltip.d.ts +27 -32
  291. package/dist/app/charts/tooltips/Tooltip.d.ts.map +1 -0
  292. package/dist/app/charts/tooltips/Tooltip.js +37 -81
  293. package/dist/app/charts/tooltips/Tooltip.js.map +1 -1
  294. package/dist/app/charts/tooltips/TooltipContent.d.ts +81 -0
  295. package/dist/app/charts/tooltips/TooltipContent.d.ts.map +1 -0
  296. package/dist/app/charts/tooltips/TooltipContent.js +99 -0
  297. package/dist/app/charts/tooltips/TooltipContent.js.map +1 -0
  298. package/dist/app/charts/tooltips/tooltipUtils.d.ts +186 -36
  299. package/dist/app/charts/tooltips/tooltipUtils.d.ts.map +1 -0
  300. package/dist/app/charts/tooltips/tooltipUtils.js +277 -48
  301. package/dist/app/charts/tooltips/tooltipUtils.js.map +1 -1
  302. package/dist/app/charts/tooltips/useOutlierTooltip.d.ts +59 -0
  303. package/dist/app/charts/tooltips/useOutlierTooltip.d.ts.map +1 -0
  304. package/dist/app/charts/tooltips/useOutlierTooltip.js +16 -0
  305. package/dist/app/charts/tooltips/useOutlierTooltip.js.map +1 -0
  306. package/dist/app/charts/tooltips/useTooltipPlacement.d.ts +51 -0
  307. package/dist/app/charts/tooltips/useTooltipPlacement.d.ts.map +1 -0
  308. package/dist/app/charts/tooltips/useTooltipPlacement.js +52 -0
  309. package/dist/app/charts/tooltips/useTooltipPlacement.js.map +1 -0
  310. package/dist/app/charts/tooltips/useTooltipStyle.d.ts +11 -0
  311. package/dist/app/charts/tooltips/useTooltipStyle.d.ts.map +1 -0
  312. package/dist/app/charts/tooltips/useTooltipStyle.js +14 -0
  313. package/dist/app/charts/tooltips/useTooltipStyle.js.map +1 -0
  314. package/dist/app/charts/trackers/Tracker.d.ts +22 -6
  315. package/dist/app/charts/trackers/Tracker.d.ts.map +1 -0
  316. package/dist/app/charts/trackers/Tracker.js +36 -22
  317. package/dist/app/charts/trackers/Tracker.js.map +1 -1
  318. package/dist/app/charts/trackers/trackerUtils.d.ts +40 -18
  319. package/dist/app/charts/trackers/trackerUtils.d.ts.map +1 -0
  320. package/dist/app/charts/trackers/trackerUtils.js +213 -300
  321. package/dist/app/charts/trackers/trackerUtils.js.map +1 -1
  322. package/dist/app/charts/utils.d.ts +72 -33
  323. package/dist/app/charts/utils.d.ts.map +1 -0
  324. package/dist/app/charts/utils.js +87 -42
  325. package/dist/app/charts/utils.js.map +1 -1
  326. package/dist/index.d.ts +2 -45
  327. package/dist/index.d.ts.map +1 -0
  328. package/dist/index.js +2 -72
  329. package/dist/index.js.map +1 -1
  330. package/package.json +87 -46
  331. package/src/app/charts/Chart.tsx +132 -168
  332. package/src/app/charts/axes/AxesState.ts +27 -29
  333. package/src/app/charts/axes/AxisInterval.ts +57 -32
  334. package/src/app/charts/axes/BaseAxisRange.ts +47 -27
  335. package/src/app/charts/axes/ContinuousAxis.tsx +235 -39
  336. package/src/app/charts/axes/ContinuousAxisRange.ts +29 -11
  337. package/src/app/charts/axes/EmptyAxis.tsx +52 -17
  338. package/src/app/charts/axes/OrdinalAxis.tsx +54 -28
  339. package/src/app/charts/axes/OrdinalAxisRange.ts +96 -16
  340. package/src/app/charts/axes/autoScale.ts +244 -0
  341. package/src/app/charts/axes/axes.ts +954 -735
  342. package/src/app/charts/d3types.ts +42 -13
  343. package/src/app/charts/datasources/StreamingDataSource.ts +214 -0
  344. package/src/app/charts/datasources/iteratesDataSource.ts +122 -0
  345. package/src/app/charts/datasources/ordinalDataSource.ts +205 -0
  346. package/src/app/charts/datasources/outlierDataSource.ts +90 -0
  347. package/src/app/charts/datasources/timeSeriesDataSource.ts +133 -0
  348. package/src/app/charts/filters/regexFilter.ts +45 -5
  349. package/src/app/charts/hooks/AxesProvider.tsx +301 -0
  350. package/src/app/charts/hooks/CanvasSurfaceProvider.tsx +117 -0
  351. package/src/app/charts/hooks/ChartProvider.tsx +79 -0
  352. package/src/app/charts/hooks/InteractionProvider.tsx +88 -0
  353. package/src/app/charts/hooks/PlotDimensionsProvider.tsx +109 -0
  354. package/src/app/charts/hooks/defaultAxesValues.ts +40 -0
  355. package/src/app/charts/hooks/defaultMouseValues.ts +24 -0
  356. package/src/app/charts/hooks/defaultPlotDimensions.ts +27 -0
  357. package/src/app/charts/hooks/defaultTooltipValues.tsx +23 -0
  358. package/src/app/charts/hooks/defaultUseChartValues.tsx +36 -0
  359. package/src/app/charts/hooks/useAxes.tsx +60 -228
  360. package/src/app/charts/hooks/useCanvasSurface.tsx +35 -0
  361. package/src/app/charts/hooks/useChart.tsx +47 -106
  362. package/src/app/charts/hooks/useDataSource.tsx +106 -0
  363. package/src/app/charts/hooks/useHoveredSeries.tsx +33 -0
  364. package/src/app/charts/hooks/useMouse.tsx +58 -82
  365. package/src/app/charts/hooks/usePlotDimensions.tsx +25 -89
  366. package/src/app/charts/hooks/useTooltip.tsx +32 -63
  367. package/src/app/charts/index.ts +213 -0
  368. package/src/app/charts/legends/Legend.tsx +198 -479
  369. package/src/app/charts/legends/constants.ts +37 -0
  370. package/src/app/charts/observables/iterates.ts +32 -12
  371. package/src/app/charts/observables/ordinals.ts +141 -67
  372. package/src/app/charts/observables/outliers.ts +20 -0
  373. package/src/app/charts/plots/BarPlot.tsx +784 -666
  374. package/src/app/charts/plots/OutlierPlot.tsx +685 -0
  375. package/src/app/charts/plots/PoincarePlot.tsx +707 -489
  376. package/src/app/charts/plots/RasterPlot.tsx +253 -445
  377. package/src/app/charts/plots/ScatterPlot.tsx +480 -463
  378. package/src/app/charts/plots/autoScaleYAxes.ts +102 -0
  379. package/src/app/charts/plots/colorizedLine.ts +185 -0
  380. package/src/app/charts/plots/constants.ts +16 -0
  381. package/src/app/charts/plots/hitTesting.ts +198 -0
  382. package/src/app/charts/plots/plot.ts +138 -44
  383. package/src/app/charts/plots/useCanvasZoomPan.ts +240 -0
  384. package/src/app/charts/plots/useStreamingTimeAxes.ts +384 -0
  385. package/src/app/charts/series/baseSeries.ts +81 -14
  386. package/src/app/charts/series/iterateSeries.ts +8 -8
  387. package/src/app/charts/series/ordinalSeries.ts +35 -20
  388. package/src/app/charts/series/outlierSeries.ts +188 -0
  389. package/src/app/charts/series/timeSeries.ts +14 -12
  390. package/src/app/charts/series/timeSeriesChartData.ts +31 -17
  391. package/src/app/charts/styling/barPlotStyle.ts +48 -5
  392. package/src/app/charts/styling/canvasStyle.ts +86 -0
  393. package/src/app/charts/styling/margins.ts +28 -4
  394. package/src/app/charts/styling/svgStyle.ts +10 -91
  395. package/src/app/charts/subscriptions/viewDrivers.ts +447 -0
  396. package/src/app/charts/tooltips/BarPlotTooltipContent.tsx +156 -380
  397. package/src/app/charts/tooltips/DefaultOutlierTooltipContent.tsx +40 -0
  398. package/src/app/charts/tooltips/OutlierPlotTooltipContent.tsx +67 -0
  399. package/src/app/charts/tooltips/PoincarePlotTooltipContent.tsx +229 -292
  400. package/src/app/charts/tooltips/RasterPlotTooltipContent.tsx +164 -217
  401. package/src/app/charts/tooltips/ScatterPlotTooltipContent.tsx +373 -236
  402. package/src/app/charts/tooltips/Tooltip.tsx +58 -124
  403. package/src/app/charts/tooltips/TooltipContent.tsx +177 -0
  404. package/src/app/charts/tooltips/tooltipUtils.ts +359 -61
  405. package/src/app/charts/tooltips/useOutlierTooltip.tsx +68 -0
  406. package/src/app/charts/tooltips/useTooltipPlacement.ts +86 -0
  407. package/src/app/charts/tooltips/useTooltipStyle.ts +15 -0
  408. package/src/app/charts/trackers/Tracker.tsx +68 -33
  409. package/src/app/charts/trackers/trackerUtils.ts +263 -376
  410. package/src/app/charts/utils.ts +90 -48
  411. package/src/index.ts +2 -322
  412. package/dist/app/charts/axes/AxesState.test.d.ts +0 -1
  413. package/dist/app/charts/axes/AxesState.test.js +0 -30
  414. package/dist/app/charts/axes/AxesState.test.js.map +0 -1
  415. package/dist/app/charts/axes/AxisInterval.test.d.ts +0 -1
  416. package/dist/app/charts/axes/AxisInterval.test.js +0 -120
  417. package/dist/app/charts/axes/AxisInterval.test.js.map +0 -1
  418. package/dist/app/charts/axes/ContinuousAxisRange.test.d.ts +0 -1
  419. package/dist/app/charts/axes/ContinuousAxisRange.test.js +0 -47
  420. package/dist/app/charts/axes/ContinuousAxisRange.test.js.map +0 -1
  421. package/dist/app/charts/axes/OrdinalAxisRange.test.d.ts +0 -1
  422. package/dist/app/charts/axes/OrdinalAxisRange.test.js +0 -48
  423. package/dist/app/charts/axes/OrdinalAxisRange.test.js.map +0 -1
  424. package/dist/app/charts/filters/regexFilter.test.d.ts +0 -1
  425. package/dist/app/charts/filters/regexFilter.test.js +0 -11
  426. package/dist/app/charts/filters/regexFilter.test.js.map +0 -1
  427. package/dist/app/charts/hooks/useDataObservable.d.ts +0 -72
  428. package/dist/app/charts/hooks/useDataObservable.js +0 -74
  429. package/dist/app/charts/hooks/useDataObservable.js.map +0 -1
  430. package/dist/app/charts/hooks/useInitialData.d.ts +0 -36
  431. package/dist/app/charts/hooks/useInitialData.js +0 -28
  432. package/dist/app/charts/hooks/useInitialData.js.map +0 -1
  433. package/dist/app/charts/observables/iterates.test.d.ts +0 -1
  434. package/dist/app/charts/observables/iterates.test.js +0 -180
  435. package/dist/app/charts/observables/iterates.test.js.map +0 -1
  436. package/dist/app/charts/observables/ordinals.test.d.ts +0 -1
  437. package/dist/app/charts/observables/ordinals.test.js +0 -102
  438. package/dist/app/charts/observables/ordinals.test.js.map +0 -1
  439. package/dist/app/charts/series/datumSeries.test.d.ts +0 -1
  440. package/dist/app/charts/series/datumSeries.test.js +0 -50
  441. package/dist/app/charts/series/datumSeries.test.js.map +0 -1
  442. package/dist/app/charts/styling/margins.test.d.ts +0 -1
  443. package/dist/app/charts/styling/margins.test.js +0 -19
  444. package/dist/app/charts/styling/margins.test.js.map +0 -1
  445. package/dist/app/charts/subscriptions/subscription.test.d.ts +0 -1
  446. package/dist/app/charts/subscriptions/subscription.test.js +0 -395
  447. package/dist/app/charts/subscriptions/subscription.test.js.map +0 -1
  448. package/dist/app/charts/subscriptions/subscriptions.d.ts +0 -100
  449. package/dist/app/charts/subscriptions/subscriptions.js +0 -449
  450. package/dist/app/charts/subscriptions/subscriptions.js.map +0 -1
  451. package/src/app/charts/axes/AxesState.test.ts +0 -34
  452. package/src/app/charts/axes/AxisInterval.test.ts +0 -143
  453. package/src/app/charts/axes/ContinuousAxisRange.test.ts +0 -55
  454. package/src/app/charts/axes/OrdinalAxisRange.test.ts +0 -55
  455. package/src/app/charts/filters/regexFilter.test.ts +0 -13
  456. package/src/app/charts/hooks/useDataObservable.tsx +0 -170
  457. package/src/app/charts/hooks/useInitialData.tsx +0 -64
  458. package/src/app/charts/observables/iterates.test.ts +0 -201
  459. package/src/app/charts/observables/ordinals.test.ts +0 -135
  460. package/src/app/charts/series/datumSeries.test.ts +0 -60
  461. package/src/app/charts/styling/margins.test.ts +0 -22
  462. package/src/app/charts/subscriptions/subscription.test.ts +0 -499
  463. package/src/app/charts/subscriptions/subscriptions.ts +0 -635
@@ -0,0 +1,14 @@
1
+ import { createContext, useContext } from "react";
2
+ import { defaultTooltipStyle } from "./tooltipUtils";
3
+ /**
4
+ * The style of the enclosing {@link Tooltip} (its `style`, over the default tooltip style)
5
+ */
6
+ export const TooltipStyleContext = createContext(defaultTooltipStyle);
7
+ /**
8
+ * @return The style of the enclosing {@link Tooltip}: its `style` property over the default tooltip
9
+ * style (or just the default style, outside a tooltip)
10
+ */
11
+ export function useTooltipStyle() {
12
+ return useContext(TooltipStyleContext);
13
+ }
14
+ //# sourceMappingURL=useTooltipStyle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTooltipStyle.js","sourceRoot":"","sources":["../../../../src/app/charts/tooltips/useTooltipStyle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAE,UAAU,EAAC,MAAM,OAAO,CAAC;AAChD,OAAO,EAAC,mBAAmB,EAAoB,MAAM,gBAAgB,CAAC;AAEtE;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,aAAa,CAAe,mBAAmB,CAAC,CAAA;AAEnF;;;GAGG;AACH,MAAM,UAAU,eAAe;IAC3B,OAAO,UAAU,CAAC,mBAAmB,CAAC,CAAA;AAC1C,CAAC"}
@@ -1,27 +1,43 @@
1
- import { TrackerLabelFont, TrackerStyle } from "./trackerUtils";
1
+ import { type TrackerLabelFont, TrackerLabelLocation, type TrackerStyle } from "./trackerUtils";
2
2
  import { AxisLocation } from "../axes/axes";
3
+ /**
4
+ * What the tracker reports for an axis: the axis' value at the mouse, and where the axis is
5
+ */
3
6
  export interface TrackerAxisInfo {
7
+ /** the axis' value at the mouse (for a y-axis too, despite the name) */
4
8
  x: number;
9
+ /** the location of the axis */
5
10
  axisLocation: AxisLocation;
6
11
  }
7
12
  export type TrackerAxisUpdate = Map<string, TrackerAxisInfo>;
8
- export declare enum TrackerLabelLocation {
9
- Nowhere = 0,
10
- ByAxis = 1
11
- }
13
+ /**
14
+ * The properties of the {@link Tracker}
15
+ */
12
16
  export interface Props {
17
+ /** whether the tracker is shown */
13
18
  visible: boolean;
19
+ /**
20
+ * the axes the tracker reports the values of: top or bottom for a vertical line that tracks
21
+ * the x-axes (the default), left or right for a horizontal line that tracks the y-axes
22
+ */
14
23
  trackerAxis?: AxisLocation;
24
+ /** where the tracker's labels are shown (by the axes, the default, or nowhere) */
15
25
  labelLocation?: TrackerLabelLocation;
26
+ /** formats an axis' value for its label (defaults to a whole number, with thousands separators) */
16
27
  labelFormatter?: (value: number) => string;
28
+ /** the style of the tracker's line */
17
29
  style?: Partial<TrackerStyle>;
30
+ /** the font of the tracker's labels */
18
31
  font?: Partial<TrackerLabelFont>;
32
+ /** called with each (non-empty) axis' value at the mouse, as the mouse moves over the plot */
19
33
  onTrackerUpdate?: (update: TrackerAxisUpdate) => void;
20
34
  }
21
35
  /**
22
36
  * A tracker line that displays or reports the x or y coordinates at the mouse location. The tracker
23
- * handles single axes and dual axes.
37
+ * handles single axes and dual axes. Internally, this registers a draw function with the chart's
38
+ * canvas context (see `trackerUtils.ts`) rather than creating/updating SVG elements.
24
39
  * @param props The tracker control properties
25
40
  * @return null component
26
41
  */
27
42
  export declare function Tracker(props: Props): null;
43
+ //# sourceMappingURL=Tracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tracker.d.ts","sourceRoot":"","sources":["../../../../src/app/charts/trackers/Tracker.tsx"],"names":[],"mappings":"AAEA,OAAO,EAIH,KAAK,gBAAgB,EACrB,oBAAoB,EACpB,KAAK,YAAY,EACpB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAC,YAAY,EAA4C,MAAM,cAAc,CAAC;AAGrF;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B,wEAAwE;IACxE,CAAC,EAAE,MAAM,CAAA;IACT,+BAA+B;IAC/B,YAAY,EAAE,YAAY,CAAA;CAC7B;AAGD,MAAM,MAAM,iBAAiB,GAAG,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;AAE5D;;GAEG;AACH,MAAM,WAAW,KAAK;IAClB,mCAAmC;IACnC,OAAO,EAAE,OAAO,CAAA;IAChB;;;OAGG;IACH,WAAW,CAAC,EAAE,YAAY,CAAA;IAC1B,kFAAkF;IAClF,aAAa,CAAC,EAAE,oBAAoB,CAAA;IACpC,mGAAmG;IACnG,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;IAC1C,sCAAsC;IACtC,KAAK,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC9B,uCAAuC;IACvC,IAAI,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACjC,8FAA8F;IAC9F,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAA;CACxD;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAwG1C"}
@@ -1,59 +1,73 @@
1
1
  import { noop } from "../utils";
2
2
  import { useChart } from "../hooks/useChart";
3
- import { defaultTrackerLabelFont, defaultTrackerStyle, removeTrackerControl, trackerControlInstance } from "./trackerUtils";
3
+ import { defaultTrackerLabelFont, defaultTrackerStyle, trackerControlInstance, TrackerLabelLocation } from "./trackerUtils";
4
4
  import * as d3 from "d3";
5
5
  import { useEffect, useMemo, useRef } from "react";
6
6
  import { AxisLocation } from "../axes/axes";
7
7
  import { usePlotDimensions } from "../hooks/usePlotDimensions";
8
- export var TrackerLabelLocation;
9
- (function (TrackerLabelLocation) {
10
- TrackerLabelLocation[TrackerLabelLocation["Nowhere"] = 0] = "Nowhere";
11
- TrackerLabelLocation[TrackerLabelLocation["ByAxis"] = 1] = "ByAxis";
12
- })(TrackerLabelLocation || (TrackerLabelLocation = {}));
13
8
  /**
14
9
  * A tracker line that displays or reports the x or y coordinates at the mouse location. The tracker
15
- * handles single axes and dual axes.
10
+ * handles single axes and dual axes. Internally, this registers a draw function with the chart's
11
+ * canvas context (see `trackerUtils.ts`) rather than creating/updating SVG elements.
16
12
  * @param props The tracker control properties
17
13
  * @return null component
18
14
  */
19
15
  export function Tracker(props) {
20
16
  const { visible, trackerAxis = AxisLocation.Bottom, labelLocation = TrackerLabelLocation.ByAxis, labelFormatter, style, font, onTrackerUpdate = noop } = props;
21
- const { chartId, container, axes, backgroundColor } = useChart();
17
+ const { chartId, canvasContext, axes, backgroundColor } = useChart();
22
18
  const { xAxesState, yAxesState } = axes;
23
19
  const axisState = (trackerAxis === AxisLocation.Bottom || trackerAxis === AxisLocation.Top) ?
24
20
  xAxesState :
25
21
  yAxesState;
26
22
  const { plotDimensions, margin } = usePlotDimensions();
27
- const trackerStyle = useMemo(() => (Object.assign(Object.assign({}, defaultTrackerStyle), style)), [style]);
28
- const trackerFont = useMemo(() => (Object.assign(Object.assign({}, defaultTrackerLabelFont), font)), [font]);
29
- const trackerRef = useRef(undefined);
23
+ const trackerStyle = useMemo(() => ({ ...defaultTrackerStyle, ...style }), [style]);
24
+ const trackerFont = useMemo(() => ({ ...defaultTrackerLabelFont, ...font }), [font]);
25
+ // holds the cleanup function returned by `trackerControlInstance`, replacing the old
26
+ // `TrackerSelection` ref
27
+ const trackerCleanupRef = useRef(undefined);
30
28
  const axisRef = useRef(new Map());
31
29
  useEffect(() => {
32
30
  const axes = new Map();
33
31
  axisState.axes.forEach((axis, id) => axes.set(id, axis));
34
32
  axisRef.current = axes;
35
33
  }, [axisState]);
36
- // when the container, tracker-control function, or visibility change, then we need to update the
37
- // tracker control
34
+ // when the canvas context, tracker-control function, or visibility change, then we need to
35
+ // update the tracker control
38
36
  useEffect(() => {
39
- if (container) {
40
- const svg = d3.select(container);
41
- if (visible && container) {
42
- const trackerLabels = new Map(Array.from(axisRef.current.values()).map(axis => {
37
+ if (canvasContext) {
38
+ if (visible) {
39
+ // if a tracker was already registered (e.g., from a prior render with
40
+ // different props), tear it down before registering the new one
41
+ if (trackerCleanupRef.current !== undefined) {
42
+ trackerCleanupRef.current();
43
+ trackerCleanupRef.current = undefined;
44
+ }
45
+ const trackerLabels = new Map(Array.from(axisRef.current.values())
46
+ .filter(axis => !axis.isEmpty)
47
+ .map(axis => {
43
48
  const formatter = labelFormatter !== null && labelFormatter !== void 0 ? labelFormatter : ((value) => labelLocation === TrackerLabelLocation.Nowhere ?
44
49
  "" :
45
50
  `${d3.format(",.0f")(value)}`);
46
51
  return [axis, formatter];
47
52
  }));
48
- trackerRef.current = trackerControlInstance(chartId, container, svg, plotDimensions, margin, trackerStyle, trackerFont, trackerLabels, labelLocation, onTrackerUpdate, trackerAxis, backgroundColor);
53
+ trackerCleanupRef.current = trackerControlInstance(canvasContext, chartId, plotDimensions, margin, trackerStyle, trackerFont, trackerLabels, labelLocation, onTrackerUpdate, trackerAxis, backgroundColor);
49
54
  }
50
55
  // if the tracker was defined and is now no longer defined (i.e., props changed, then remove the tracker)
51
- else if (!visible && trackerRef.current !== undefined) {
52
- removeTrackerControl(svg, trackerAxis);
53
- trackerRef.current = undefined;
56
+ else if (!visible && trackerCleanupRef.current !== undefined) {
57
+ trackerCleanupRef.current();
58
+ trackerCleanupRef.current = undefined;
54
59
  }
55
60
  }
56
- }, [backgroundColor, chartId, container, labelFormatter, labelLocation, margin, onTrackerUpdate, plotDimensions, trackerAxis, trackerFont, trackerStyle, visible]);
61
+ }, [backgroundColor, chartId, canvasContext, labelFormatter, labelLocation, margin, onTrackerUpdate, plotDimensions, trackerAxis, trackerFont, trackerStyle, visible]);
62
+ // unregister the tracker when this component unmounts
63
+ useEffect(() => {
64
+ return () => {
65
+ if (trackerCleanupRef.current !== undefined) {
66
+ trackerCleanupRef.current();
67
+ trackerCleanupRef.current = undefined;
68
+ }
69
+ };
70
+ }, []);
57
71
  return null;
58
72
  }
59
73
  //# sourceMappingURL=Tracker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tracker.js","sourceRoot":"","sources":["../../../../src/app/charts/trackers/Tracker.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Tracker.js","sourceRoot":"","sources":["../../../../src/app/charts/trackers/Tracker.tsx"],"names":[],"mappings":"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"}
@@ -1,42 +1,64 @@
1
- import { SvgSelection, TrackerSelection } from "../d3types";
2
- import { Dimensions, Margin } from "../styling/margins";
3
- import { AxisLocation, ContinuousNumericAxis } from "../axes/axes";
4
- import { TrackerAxisUpdate, TrackerLabelLocation } from "./Tracker";
1
+ import type { CanvasContext } from "../d3types";
2
+ import { type Dimensions, type Margin } from "../styling/margins";
3
+ import { AxisLocation, type ContinuousNumericAxis } from "../axes/axes";
4
+ import { type TrackerAxisUpdate } from "./Tracker";
5
+ /**
6
+ * The font of the tracker's labels
7
+ */
5
8
  export interface TrackerLabelFont {
6
9
  size: number;
7
10
  color: string;
8
11
  family: string;
9
12
  weight: number;
10
13
  }
14
+ /**
15
+ * The default font of the tracker's labels
16
+ */
11
17
  export declare const defaultTrackerLabelFont: TrackerLabelFont;
18
+ /**
19
+ * The style of the tracker's line (and whether it's shown)
20
+ */
12
21
  export interface TrackerStyle {
13
22
  visible: boolean;
14
23
  color: string;
15
24
  lineWidth: number;
16
25
  }
26
+ /**
27
+ * The default tracker style (hidden)
28
+ */
17
29
  export declare const defaultTrackerStyle: TrackerStyle;
18
30
  /**
19
- * Creates or returns the existing SVG elements for displaying a tracker line that is either
20
- * vertical (for x-axes) or horizontal (for y-axes).
31
+ * The location of the tracker label
32
+ * Note: replaces enums to support `erasableSyntaxOnly`
33
+ * TS1294: This syntax is not allowed when 'erasableSyntaxOnly' is enabled.
34
+ */
35
+ export declare const TrackerLabelLocation: {
36
+ readonly Nowhere: "Nowhere";
37
+ readonly ByAxis: "ByAxis";
38
+ };
39
+ export type TrackerLabelLocation = (typeof TrackerLabelLocation)[keyof typeof TrackerLabelLocation];
40
+ /**
41
+ * Registers a tracker (a line that follows the mouse, with optional per-axis labels) with the
42
+ * canvas context. Replaces the old `trackerControlInstance`, which created SVG `<line>`/`<text>`/
43
+ * `<rect>` elements and updated them via a namespaced `mousemove` handler on the `<svg>`. The
44
+ * canvas version instead registers a draw function that reads the mouse's last-known position
45
+ * (tracked via its own `mousemove` listener on the canvas) and paints the tracker fresh every
46
+ * redraw.
47
+ * @param cc The canvas context to register the tracker's draw function with
21
48
  * @param chartId The ID of the chart
22
- * @param container The SVG container
23
- * @param svg The SVG selection
24
49
  * @param plotDimensions The dimensions of the plot
25
50
  * @param margin The margins around the plot
26
51
  * @param style The tracker style
27
52
  * @param labelFont The font used for the axis labels
28
- * @param label A function that returns the tracker label string for a given x-value
29
- * @param labelStyle The location style for the tracker (i.e. on the axes, next to the mouse, none shown)
53
+ * @param label A map associating each axis with the function that formats the tracker's label for that axis' value
54
+ * @param labelStyle Where the tracker's labels are shown (by the axes, or nowhere)
30
55
  * @param onTrackerUpdate A callback function that accepts the current tracker's axis information
31
56
  * @param [axisLocation = AxisLocation.Bottom] The optional location of the axis for which the tracker is to
32
57
  * be shown. Default is bottom.
33
58
  * @param backgroundColor The background color of the tracker label
34
- * @return The tracker selection
35
- */
36
- export declare function trackerControlInstance(chartId: number, container: SVGSVGElement, svg: SvgSelection, plotDimensions: Dimensions, margin: Margin, style: TrackerStyle, labelFont: TrackerLabelFont, label: Map<ContinuousNumericAxis, (x: number) => string>, labelStyle: TrackerLabelLocation, onTrackerUpdate: (update: TrackerAxisUpdate) => void, axisLocation: AxisLocation | undefined, backgroundColor: string): TrackerSelection;
37
- /**
38
- * Removes the tracker control from the chart
39
- * @param svg The svg selection holding the tracker control
40
- * @param axisLocation The location of the axis for which the tracker is to be removed.
59
+ * @return A cleanup function that unregisters the tracker's draw function and removes its
60
+ * `mousemove` listener. Call this when the tracker becomes invisible or unmounts (replaces the
61
+ * old `removeTrackerControl`).
41
62
  */
42
- export declare function removeTrackerControl(svg: SvgSelection, axisLocation: AxisLocation): void;
63
+ export declare function trackerControlInstance(cc: CanvasContext, chartId: number, plotDimensions: Dimensions, margin: Margin, style: TrackerStyle, labelFont: TrackerLabelFont, label: Map<ContinuousNumericAxis, (x: number) => string>, labelStyle: TrackerLabelLocation, onTrackerUpdate: (update: TrackerAxisUpdate) => void, axisLocation: AxisLocation | undefined, backgroundColor: string): () => void;
64
+ //# sourceMappingURL=trackerUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trackerUtils.d.ts","sourceRoot":"","sources":["../../../../src/app/charts/trackers/trackerUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAa,MAAM,YAAY,CAAC;AAC1D,OAAO,EAA0B,KAAK,UAAU,EAAE,KAAK,MAAM,EAAC,MAAM,oBAAoB,CAAC;AAGzF,OAAO,EAAC,YAAY,EAAE,KAAK,qBAAqB,EAAC,MAAM,cAAc,CAAC;AACtE,OAAO,EAAuB,KAAK,iBAAiB,EAAC,MAAM,WAAW,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,gBAKrC,CAAA;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,YAIjC,CAAA;AAID;;;;GAIG;AACH,eAAO,MAAM,oBAAoB;;;CAGvB,CAAA;AACV,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,OAAO,oBAAoB,CAAC,CAAA;AAQnG;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,sBAAsB,CAClC,EAAE,EAAE,aAAa,EACjB,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,UAAU,EAC1B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,gBAAgB,EAC3B,KAAK,EAAE,GAAG,CAAC,qBAAqB,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,EACxD,UAAU,EAAE,oBAAoB,EAChC,eAAe,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,EACpD,YAAY,EAAE,YAAY,YAAsB,EAChD,eAAe,EAAE,MAAM,GACxB,MAAM,IAAI,CAUZ"}