stream-charts 1.2.0 → 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 +40 -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
@@ -1,359 +1,272 @@
1
- import * as d3 from "d3";
2
- import { containerDimensionsFrom, plotDimensionsFrom } from "../styling/margins";
3
- import { mouseInPlotAreaFor, textDimensions } from "../utils";
1
+ import { containerDimensionsFrom } from "../styling/margins";
2
+ import { fontStringFor, mouseInPlotAreaFor, textDimensions } from "../utils";
3
+ import { canvasLocalPoint } from "../plots/hitTesting";
4
4
  import { AxisLocation } from "../axes/axes";
5
- import { TrackerLabelLocation } from "./Tracker";
5
+ /**
6
+ * The default font of the tracker's labels
7
+ */
6
8
  export const defaultTrackerLabelFont = {
7
9
  size: 12,
8
10
  color: '#d2933f',
9
11
  weight: 300,
10
12
  family: 'sans-serif'
11
13
  };
14
+ /**
15
+ * The default tracker style (hidden)
16
+ */
12
17
  export const defaultTrackerStyle = {
13
18
  visible: false,
14
19
  color: '#d2933f',
15
20
  lineWidth: 1,
16
21
  };
17
- // create namespaced "mousemoved" event names to distinguish between vertical and horizontal trackers
18
- const MOUSE_MOVED_EVENT_VERTICAL_AXIS = "mousemove.vertical";
19
- const MOUSE_MOVED_EVENT_HORIZONTAL_AXIS = "mousemove.horizontal";
20
22
  const TRACKER_ID = "stream-chart-tracker";
21
23
  /**
22
- * SVG ID for the vertical tracker line
23
- * @param chartId The ID of the chart
24
- * @return SVG ID for the vertical tracker line
24
+ * The location of the tracker label
25
+ * Note: replaces enums to support `erasableSyntaxOnly`
26
+ * TS1294: This syntax is not allowed when 'erasableSyntaxOnly' is enabled.
25
27
  */
26
- function verticalTrackerLineId(chartId) {
27
- return `${TRACKER_ID}-line-vertical-${chartId}`;
28
- }
28
+ export const TrackerLabelLocation = {
29
+ Nowhere: "Nowhere",
30
+ ByAxis: "ByAxis",
31
+ };
29
32
  /**
30
- * SVG ID for the horizontal tracker line
31
- * @param chartId The ID of the chart
32
- * @return SVG ID for the vertical tracker line
33
+ * A small, fixed corner radius (px) used for the tracker label's background, matching the old
34
+ * SVG version's hard-coded `rx: '5px'`.
33
35
  */
34
- function horizontalTrackerLineId(chartId) {
35
- return `${TRACKER_ID}-line-horizontal-${chartId}`;
36
- }
36
+ const LABEL_BACKGROUND_RADIUS = 5;
37
37
  /**
38
- * SVG ID for the tracker label
38
+ * Registers a tracker (a line that follows the mouse, with optional per-axis labels) with the
39
+ * canvas context. Replaces the old `trackerControlInstance`, which created SVG `<line>`/`<text>`/
40
+ * `<rect>` elements and updated them via a namespaced `mousemove` handler on the `<svg>`. The
41
+ * canvas version instead registers a draw function that reads the mouse's last-known position
42
+ * (tracked via its own `mousemove` listener on the canvas) and paints the tracker fresh every
43
+ * redraw.
44
+ * @param cc The canvas context to register the tracker's draw function with
39
45
  * @param chartId The ID of the chart
40
- * @param axisLocation The location of the axis for which the tracker label is to be shown
41
- * @return SVG ID for the vertical tracker line
42
- */
43
- function trackerLabelId(chartId, axisLocation) {
44
- switch (axisLocation) {
45
- case AxisLocation.Bottom:
46
- case AxisLocation.Top:
47
- return `${TRACKER_ID}-label-vertical-${chartId}-${axisLocation}`;
48
- case AxisLocation.Left:
49
- case AxisLocation.Right:
50
- return `${TRACKER_ID}-label-horizontal-${chartId}-${axisLocation}`;
51
- }
52
- }
53
- /**
54
- * Creates or returns the existing SVG elements for displaying a tracker line that is either
55
- * vertical (for x-axes) or horizontal (for y-axes).
56
- * @param chartId The ID of the chart
57
- * @param container The SVG container
58
- * @param svg The SVG selection
59
46
  * @param plotDimensions The dimensions of the plot
60
47
  * @param margin The margins around the plot
61
48
  * @param style The tracker style
62
49
  * @param labelFont The font used for the axis labels
63
- * @param label A function that returns the tracker label string for a given x-value
64
- * @param labelStyle The location style for the tracker (i.e. on the axes, next to the mouse, none shown)
50
+ * @param label A map associating each axis with the function that formats the tracker's label for that axis' value
51
+ * @param labelStyle Where the tracker's labels are shown (by the axes, or nowhere)
65
52
  * @param onTrackerUpdate A callback function that accepts the current tracker's axis information
66
53
  * @param [axisLocation = AxisLocation.Bottom] The optional location of the axis for which the tracker is to
67
54
  * be shown. Default is bottom.
68
55
  * @param backgroundColor The background color of the tracker label
69
- * @return The tracker selection
56
+ * @return A cleanup function that unregisters the tracker's draw function and removes its
57
+ * `mousemove` listener. Call this when the tracker becomes invisible or unmounts (replaces the
58
+ * old `removeTrackerControl`).
70
59
  */
71
- export function trackerControlInstance(chartId, container, svg, plotDimensions, margin, style, labelFont, label, labelStyle, onTrackerUpdate, axisLocation = AxisLocation.Bottom, backgroundColor) {
60
+ export function trackerControlInstance(cc, chartId, plotDimensions, margin, style, labelFont, label, labelStyle, onTrackerUpdate, axisLocation = AxisLocation.Bottom, backgroundColor) {
72
61
  switch (axisLocation) {
73
62
  case AxisLocation.Bottom:
74
63
  case AxisLocation.Top:
75
- return verticalTrackerControlInstance(chartId, container, svg, plotDimensions, margin, style, labelFont, label, labelStyle, onTrackerUpdate, backgroundColor);
64
+ return verticalTrackerControlInstance(cc, chartId, plotDimensions, margin, style, labelFont, label, labelStyle, onTrackerUpdate, backgroundColor);
76
65
  case AxisLocation.Left:
77
66
  case AxisLocation.Right:
78
67
  default:
79
- return horizontalTrackerControlInstance(chartId, container, svg, plotDimensions, margin, style, labelFont, label, labelStyle, onTrackerUpdate, backgroundColor);
68
+ return horizontalTrackerControlInstance(cc, chartId, plotDimensions, margin, style, labelFont, label, labelStyle, onTrackerUpdate, backgroundColor);
80
69
  }
81
70
  }
82
71
  /**
83
- * Creates or returns the existing SVG elements for displaying a vertical tracker line
72
+ * Registers a vertical tracker line (for x-axes) with the canvas context: the line follows the
73
+ * mouse across the plot area, with a label by each x-axis showing that axis' value at the mouse
74
+ * (see {@link trackerControlInstance}).
75
+ * @param cc The canvas context to register the tracker's draw function with
84
76
  * @param chartId The ID of the chart
85
- * @param container The SVG container
86
- * @param svg The SVG selection
87
77
  * @param plotDimensions The dimensions of the plot
88
78
  * @param margin The margins around the plot
89
79
  * @param style The tracker style
90
80
  * @param labelFont The font used for the axis labels
91
- * @param label A function that returns the tracker label string for a given x-value
92
- * @param labelStyle The location style for the tracker (i.e. on the axes, next to the mouse, none shown)
81
+ * @param label A map associating each axis with the function that formats the tracker's label for that axis' value
82
+ * @param labelStyle Where the tracker's labels are shown (by the axes, or nowhere)
93
83
  * @param onTrackerUpdate A callback function that accepts the current tracker's axis information
94
84
  * @param backgroundColor The background color of the tracker label
95
- * @return The tracker selection
85
+ * @return A cleanup function that unregisters the tracker's draw function and removes its mouse listeners
96
86
  */
97
- function verticalTrackerControlInstance(chartId, container, svg, plotDimensions, margin, style, labelFont, label, labelStyle, onTrackerUpdate, backgroundColor) {
98
- const trackerLine = svg
99
- .append('line')
100
- .attr('id', verticalTrackerLineId(chartId))
101
- .attr('class', 'tracker')
102
- .attr('y1', margin.top)
103
- .attr('y2', plotDimensions.height + margin.top)
104
- .attr('stroke', style.color)
105
- .attr('stroke-width', style.lineWidth)
106
- .attr('opacity', 0);
107
- if (labelStyle === TrackerLabelLocation.ByAxis) {
108
- label.forEach((_, axis) => {
109
- // create the text element holding the tracker time
110
- const labelY = axis.location === AxisLocation.Top ?
111
- Math.max(0, margin.top - 20) :
112
- Math.max(0, plotDimensions.height + margin.top - 3);
113
- svg
114
- .append('rect')
115
- .attr('id', `${trackerLabelId(chartId, axis.location)}-background`)
116
- .attr('y', labelY)
117
- .attr('fill', backgroundColor)
118
- .attr('opacity', 0);
119
- svg
120
- .append('text')
121
- .attr('id', trackerLabelId(chartId, axis.location))
122
- .attr('y', labelY)
123
- .attr('fill', labelFont.color)
124
- .attr('font-family', labelFont.family)
125
- .attr('font-size', labelFont.size)
126
- .attr('font-weight', labelFont.weight)
127
- .attr('opacity', 0)
128
- .text(() => '');
87
+ function verticalTrackerControlInstance(cc, chartId, plotDimensions, margin, style, labelFont, label, labelStyle, onTrackerUpdate, backgroundColor) {
88
+ const drawHandle = `${TRACKER_ID}-vertical-${chartId}`;
89
+ // the mouse's last-known position, in canvas coordinates; null when the mouse is outside the canvas
90
+ let mouseX = null;
91
+ let mouseY = null;
92
+ const draw = (context) => {
93
+ if (mouseX === null || mouseY === null)
94
+ return;
95
+ const { context2D } = context;
96
+ const dimensions = containerDimensionsFrom(plotDimensions, margin);
97
+ const inPlot = mouseInPlotAreaFor(mouseX, mouseY, margin, dimensions);
98
+ context2D.save();
99
+ context2D.globalAlpha = inPlot ? 1 : 0;
100
+ context2D.strokeStyle = style.color;
101
+ context2D.lineWidth = style.lineWidth;
102
+ context2D.beginPath();
103
+ context2D.moveTo(mouseX, margin.top);
104
+ context2D.lineTo(mouseX, plotDimensions.height + margin.top);
105
+ context2D.stroke();
106
+ context2D.restore();
107
+ const updateInfo = [];
108
+ label.forEach((trackerLabel, axis) => {
109
+ if (labelStyle === TrackerLabelLocation.ByAxis) {
110
+ const value = axis.scale.invert(mouseX - margin.left);
111
+ const text = trackerLabel(value);
112
+ context2D.save();
113
+ context2D.font = fontStringFor(labelFont.size, labelFont.family, labelFont.weight);
114
+ const { width: labelWidth, height: labelHeight } = textDimensions(context2D, text);
115
+ const space = 10;
116
+ const labelY = axis.location === AxisLocation.Top ?
117
+ margin.top + labelFont.size + space :
118
+ margin.top + plotDimensions.height - space;
119
+ const xOffset = 10;
120
+ const labelX = Math.min(dimensions.width - margin.right - labelWidth, mouseX + xOffset);
121
+ // label background
122
+ const padding = 3;
123
+ context2D.globalAlpha = inPlot ? 0.8 : 0;
124
+ context2D.fillStyle = backgroundColor;
125
+ context2D.beginPath();
126
+ context2D.roundRect(labelX - padding, labelY - labelHeight - padding, labelWidth + 2 * padding, labelHeight + 2 * padding, LABEL_BACKGROUND_RADIUS);
127
+ context2D.fill();
128
+ // label text
129
+ context2D.globalAlpha = inPlot ? 1 : 0;
130
+ context2D.fillStyle = labelFont.color;
131
+ context2D.textAlign = 'left';
132
+ context2D.textBaseline = 'alphabetic';
133
+ context2D.fillText(text, labelX, labelY);
134
+ context2D.restore();
135
+ }
136
+ updateInfo.push([axis.axisId, {
137
+ x: axis.scale.invert(mouseX - margin.left),
138
+ axisLocation: axis.location
139
+ }]);
129
140
  });
130
- }
131
- const containerDimensions = containerDimensionsFrom(plotDimensions, margin);
132
- svg.on(MOUSE_MOVED_EVENT_VERTICAL_AXIS, event => handleShowVerticalTracker(chartId, container, event, margin, containerDimensions, style, labelFont, label, labelStyle, onTrackerUpdate, backgroundColor));
133
- return trackerLine;
141
+ if (inPlot) {
142
+ onTrackerUpdate(new Map(updateInfo));
143
+ }
144
+ };
145
+ cc.register(drawHandle, draw, 20);
146
+ const handleMouseMove = (event) => {
147
+ const [x, y] = canvasLocalPoint(event, cc.canvas);
148
+ mouseX = x;
149
+ mouseY = y;
150
+ cc.requestRedraw();
151
+ };
152
+ const handleMouseLeave = () => {
153
+ mouseX = null;
154
+ mouseY = null;
155
+ cc.requestRedraw();
156
+ };
157
+ cc.canvas.addEventListener('mousemove', handleMouseMove);
158
+ cc.canvas.addEventListener('mouseleave', handleMouseLeave);
159
+ return () => {
160
+ cc.unregister(drawHandle);
161
+ cc.canvas.removeEventListener('mousemove', handleMouseMove);
162
+ cc.canvas.removeEventListener('mouseleave', handleMouseLeave);
163
+ };
134
164
  }
135
165
  /**
136
- * Creates or returns the existing SVG elements for displaying a horizontal tracker line
166
+ * Registers a horizontal tracker line (for y-axes) with the canvas context: the line follows the
167
+ * mouse up and down the plot area, with a label by each y-axis showing that axis' value at the
168
+ * mouse (see {@link trackerControlInstance}).
169
+ * @param cc The canvas context to register the tracker's draw function with
137
170
  * @param chartId The ID of the chart
138
- * @param container The SVG container
139
- * @param svg The SVG selection
140
171
  * @param plotDimensions The dimensions of the plot
141
172
  * @param margin The margins around the plot
142
173
  * @param style The tracker style
143
174
  * @param labelFont The font used for the axis labels
144
- * @param label A function that returns the tracker label string for a given x-value
145
- * @param labelStyle The location style for the tracker (i.e. on the axes, next to the mouse, none shown)
175
+ * @param label A map associating each axis with the function that formats the tracker's label for that axis' value
176
+ * @param labelStyle Where the tracker's labels are shown (by the axes, or nowhere)
146
177
  * @param onTrackerUpdate A callback function that accepts the current tracker's axis information
147
178
  * @param backgroundColor The background color of the tracker label
148
- * @return The tracker selection
179
+ * @return A cleanup function that unregisters the tracker's draw function and removes its mouse listeners
149
180
  */
150
- function horizontalTrackerControlInstance(chartId, container, svg, plotDimensions, margin, style, labelFont, label, labelStyle, onTrackerUpdate, backgroundColor) {
151
- const trackerLine = svg
152
- .append('line')
153
- .attr('id', horizontalTrackerLineId(chartId))
154
- .attr('class', 'tracker')
155
- .attr('x1', margin.left)
156
- .attr('x2', plotDimensions.width + margin.left)
157
- .attr('stroke', style.color)
158
- .attr('stroke-width', style.lineWidth)
159
- .attr('opacity', 0);
160
- label.forEach((_, axis) => {
161
- // create the text element holding the tracker time
162
- const labelY = axis.location === AxisLocation.Left ?
163
- Math.max(0, margin.left - 20) :
164
- Math.max(0, plotDimensions.width + margin.left - 3);
165
- svg
166
- .append('rect')
167
- .attr('id', `${trackerLabelId(chartId, axis.location)}-background`)
168
- .attr('y', labelY)
169
- .attr('fill', backgroundColor)
170
- .attr('opacity', 0);
171
- svg
172
- .append('text')
173
- .attr('id', trackerLabelId(chartId, axis.location))
174
- .attr('y', labelY)
175
- .attr('fill', labelFont.color)
176
- .attr('font-family', labelFont.family)
177
- .attr('font-size', labelFont.size)
178
- .attr('font-weight', labelFont.weight)
179
- .attr('opacity', 0)
180
- .text(() => '');
181
- });
182
- const containerDimensions = containerDimensionsFrom(plotDimensions, margin);
183
- svg.on(MOUSE_MOVED_EVENT_HORIZONTAL_AXIS, event => handleShowHorizontalTracker(chartId, container, event, margin, containerDimensions, style, labelFont, label, labelStyle, onTrackerUpdate, backgroundColor));
184
- return trackerLine;
185
- }
186
- /**
187
- * Removes the tracker control from the chart
188
- * @param svg The svg selection holding the tracker control
189
- * @param axisLocation The location of the axis for which the tracker is to be removed.
190
- */
191
- export function removeTrackerControl(svg, axisLocation) {
192
- switch (axisLocation) {
193
- case AxisLocation.Bottom:
194
- case AxisLocation.Top:
195
- svg.on(MOUSE_MOVED_EVENT_VERTICAL_AXIS, () => null);
196
- break;
197
- case AxisLocation.Left:
198
- case AxisLocation.Right:
199
- default:
200
- svg.on(MOUSE_MOVED_EVENT_HORIZONTAL_AXIS, () => null);
201
- }
202
- }
203
- /**
204
- * Callback when the vertical mouse tracker is to be shown
205
- * @param chartId The ID number of the chart
206
- * @param container The svg container
207
- * @param event The mouse-over series event
208
- * @param margin The plot margins
209
- * @param dimensions The container dimensions (i.e., the plot dimensions plus its margins)
210
- * @param trackerStyle The style settings for the tracker line
211
- * @param labelFont The style settings for the tracker font
212
- * @param label A function that returns the tracker label string
213
- * @param labelStyle Where to display the tracker labels (i.e., with-mouse, with-axes, no-where)
214
- * @param onTrackerUpdate A callback function that accepts the current tracker's axis information
215
- * @param backgroundColor The background color of the tracker label
216
- */
217
- function handleShowVerticalTracker(chartId, container, event, margin, dimensions, trackerStyle, labelFont, label, labelStyle, onTrackerUpdate, backgroundColor) {
218
- // determine whether the mouse is in the plot area
219
- const [x, y] = d3.pointer(event, container);
220
- const inPlot = mouseInPlotAreaFor(x, y, margin, dimensions);
221
- const updateInfo = Array.from(label.entries())
222
- .map(([axis, trackerLabel]) => {
223
- // when the mouse is in the plot area, then set the opacity of the tracker line and label to 1,
224
- // which means it is fully visible. when the mouse is not in the plot area, set the opacity to 0,
225
- // which means the tracker line and label are invisible.
226
- d3.select(`#${verticalTrackerLineId(chartId)}`)
227
- .attr('x1', x)
228
- .attr('x2', x)
229
- .attr('stroke', trackerStyle.color)
230
- .attr('stroke-width', trackerStyle.lineWidth)
231
- .attr('opacity', () => inPlot ? 1 : 0);
232
- // when the label-style is to be with the mouse
233
- if (labelStyle === TrackerLabelLocation.ByAxis) {
234
- const label = d3.select(`#${trackerLabelId(chartId, axis.location)}`)
235
- .attr('fill', labelFont.color)
236
- .attr('font-family', labelFont.family)
237
- .attr('font-size', labelFont.size)
238
- .attr('font-weight', labelFont.weight)
239
- .attr('opacity', () => inPlot ? 1 : 0)
240
- .text(() => trackerLabel(axis.scale.invert(x - margin.left)));
241
- const labelBackground = d3.select(`#${trackerLabelId(chartId, axis.location)}-background`)
242
- .attr('fill', backgroundColor)
243
- .attr('opacity', () => inPlot ? 0.8 : 0)
244
- .attr('rx', '5px');
245
- const space = 10;
246
- const { height } = plotDimensionsFrom(dimensions.width, dimensions.height, margin);
247
- const labelY = axis.location === AxisLocation.Top ?
248
- margin.top + labelFont.size + space :
249
- margin.top + height - space;
250
- label.attr('y', labelY);
251
- // adjust the label position when the tracker is at the right-most edges of the plot so that
252
- // the label remains visible (i.e., doesn't get clipped)
253
- const xOffset = TrackerLabelLocation.ByAxis ? 10 : 0;
254
- const { width: labelWidth, height: labelHeight } = textDimensions(label);
255
- const labelX = Math.min(dimensions.width - margin.right - labelWidth, x + xOffset);
256
- label.attr('x', labelX);
257
- // set the background location and width
258
- const padding = 3;
259
- labelBackground
260
- .attr('x', labelX - padding)
261
- .attr('y', labelY - labelHeight - padding)
262
- .attr('width', labelWidth + 2 * padding)
263
- .attr('height', labelHeight + 2 * padding);
264
- }
265
- const trackerInfo = {
266
- x: axis.scale.invert(x - margin.left),
267
- axisLocation: axis.location
268
- };
269
- return [axis.axisId, trackerInfo];
270
- });
271
- if (inPlot) {
272
- onTrackerUpdate(new Map(updateInfo));
273
- }
274
- }
275
- /**
276
- * Callback when the horizontal mouse tracker is to be shown
277
- * @param chartId The ID number of the chart
278
- * @param container The svg container
279
- * @param event The mouse-over series event
280
- * @param margin The plot margins
281
- * @param dimensions The container dimensions (i.e., the plot dimensions plus its margins)
282
- * @param trackerStyle The style settings for the tracker line
283
- * @param labelFont The style settings for the tracker font
284
- * @param label A function that returns the tracker label string
285
- * @param labelStyle Where to display the tracker labels (i.e., with-mouse, with-axes, no-where)
286
- * @param onTrackerUpdate A callback function that accepts the current tracker's axis information
287
- * @param backgroundColor The background color of the tracker label
288
- */
289
- function handleShowHorizontalTracker(chartId, container, event, margin, dimensions, trackerStyle, labelFont, label, labelStyle, onTrackerUpdate, backgroundColor) {
290
- var _a;
291
- // determine whether the mouse is in the plot area
292
- const [x, y] = d3.pointer(event, container);
293
- const inPlot = mouseInPlotAreaFor(x, y, margin, dimensions);
294
- //
295
- // need to calculate each axis-label position separately, because at the plot edges, the axis-label
296
- // positions depend on each other. For example, at the left edge, the left-axis label needs to move
297
- // to the right of the mouse to remain in the plot area. Therefore, the right-axis label needs
298
- // to move as well but needs to know the width of the left-axis label to do so.
299
- //
300
- // add the labels and calculate the bounding boxes
301
- const boundingBoxes = new Map(Array.from(label.entries())
302
- .map(([axis, trackerLabel]) => {
303
- // when the mouse is in the plot area, then set the opacity of the tracker line and label to 1,
304
- // which means it is fully visible. when the mouse is not in the plot area, set the opacity to 0,
305
- // which means the tracker line and label are invisible.
306
- d3.select(`#${horizontalTrackerLineId(chartId)}`)
307
- .attr('y1', y)
308
- .attr('y2', y)
309
- .attr('stroke', trackerStyle.color)
310
- .attr('stroke-width', trackerStyle.lineWidth)
311
- .attr('opacity', () => inPlot ? 1 : 0);
312
- const label = d3.select(`#${trackerLabelId(chartId, axis.location)}`)
313
- .attr('fill', labelFont.color)
314
- .attr('font-family', labelFont.family)
315
- .attr('font-size', labelFont.size)
316
- .attr('font-weight', labelFont.weight)
317
- .attr('opacity', () => inPlot ? 1 : 0)
318
- .text(() => trackerLabel(axis.scale.invert(y - margin.top)));
319
- const labelBackground = d3.select(`#${trackerLabelId(chartId, axis.location)}-background`)
320
- .attr('fill', backgroundColor)
321
- .attr('opacity', () => inPlot && labelStyle !== TrackerLabelLocation.Nowhere ? 0.8 : 0)
322
- .attr('rx', '5px');
323
- return [axis.location, { axis, labelSelection: label, labelBoundingBox: textDimensions(label), labelBackground }];
324
- }));
325
- // place the labels so that they remain in the plot area
326
- const space = 10;
327
- const rightLabelWidth = (((_a = boundingBoxes.get(AxisLocation.Right)) === null || _a === void 0 ? void 0 : _a.labelBoundingBox.width) || -space) + space;
328
- const updateInfo = Array.from(boundingBoxes.entries())
329
- .map(([location, { axis, labelSelection, labelBoundingBox, labelBackground }]) => {
330
- if (labelStyle === TrackerLabelLocation.ByAxis) {
331
- const { width } = plotDimensionsFrom(dimensions.width, dimensions.height, margin);
332
- const labelX = location === AxisLocation.Left ?
333
- margin.left + space :
334
- margin.left + width - rightLabelWidth - space;
335
- labelSelection.attr('x', labelX);
336
- // adjust the label position when the tracker is at the right-most edges of the plot so that
337
- // the label remains visible (i.e., doesn't get clipped)
338
- const yOffset = labelStyle === TrackerLabelLocation.ByAxis ? space : 0;
339
- const labelY = Math.max(y - yOffset, margin.top + yOffset + labelBoundingBox.height);
340
- labelSelection.attr('y', labelY);
341
- // set the background location and width
342
- const padding = 5;
343
- labelBackground
344
- .attr('x', labelX - padding)
345
- .attr('y', labelY - labelBoundingBox.height - 1)
346
- .attr('width', labelBoundingBox.width + 2 * padding)
347
- .attr('height', labelBoundingBox.height + 2 * padding);
181
+ function horizontalTrackerControlInstance(cc, chartId, plotDimensions, margin, style, labelFont, label, labelStyle, onTrackerUpdate, backgroundColor) {
182
+ const drawHandle = `${TRACKER_ID}-horizontal-${chartId}`;
183
+ let mouseX = null;
184
+ let mouseY = null;
185
+ const draw = (context) => {
186
+ var _a;
187
+ if (mouseX === null || mouseY === null)
188
+ return;
189
+ const { context2D } = context;
190
+ const dimensions = containerDimensionsFrom(plotDimensions, margin);
191
+ const inPlot = mouseInPlotAreaFor(mouseX, mouseY, margin, dimensions);
192
+ context2D.save();
193
+ context2D.globalAlpha = inPlot ? 1 : 0;
194
+ context2D.strokeStyle = style.color;
195
+ context2D.lineWidth = style.lineWidth;
196
+ context2D.beginPath();
197
+ context2D.moveTo(margin.left, mouseY);
198
+ context2D.lineTo(plotDimensions.width + margin.left, mouseY);
199
+ context2D.stroke();
200
+ context2D.restore();
201
+ // need to calculate each axis-label position separately, because at the plot edges, the axis-label
202
+ // positions depend on each other. For example, at the left edge, the left-axis label needs to move
203
+ // to the right of the mouse to remain in the plot area. Therefore, the right-axis label needs
204
+ // to move as well but needs to know the width of the left-axis label to do so.
205
+ //
206
+ // measure all the labels first, then position them (mirrors the old two-phase SVG approach,
207
+ // where text had to be set before `getBBox()` would return a meaningful size)
208
+ context2D.font = fontStringFor(labelFont.size, labelFont.family, labelFont.weight);
209
+ const boundingBoxes = new Map(Array.from(label.entries())
210
+ .map(([axis, trackerLabel]) => {
211
+ const text = trackerLabel(axis.scale.invert(mouseY - margin.top));
212
+ const { width: labelWidth, height: labelHeight } = textDimensions(context2D, text);
213
+ return [axis.location, { axis, text, labelWidth, labelHeight }];
214
+ }));
215
+ // place the labels so that they remain in the plot area
216
+ const space = 10;
217
+ const rightLabelWidth = (((_a = boundingBoxes.get(AxisLocation.Right)) === null || _a === void 0 ? void 0 : _a.labelWidth) || -space) + space;
218
+ const updateInfo = Array.from(boundingBoxes.entries())
219
+ .map(([location, { axis, text, labelWidth, labelHeight }]) => {
220
+ if (labelStyle === TrackerLabelLocation.ByAxis) {
221
+ const labelX = location === AxisLocation.Left ?
222
+ margin.left + space :
223
+ margin.left + plotDimensions.width - rightLabelWidth - space;
224
+ const yOffset = space;
225
+ const labelY = Math.max(mouseY - yOffset, margin.top + yOffset + labelHeight);
226
+ // label background
227
+ const padding = 5;
228
+ context2D.save();
229
+ context2D.globalAlpha = inPlot ? 0.8 : 0;
230
+ context2D.fillStyle = backgroundColor;
231
+ context2D.beginPath();
232
+ context2D.roundRect(labelX - padding, labelY - labelHeight - 1, labelWidth + 2 * padding, labelHeight + 2 * padding, LABEL_BACKGROUND_RADIUS);
233
+ context2D.fill();
234
+ // label text
235
+ context2D.globalAlpha = inPlot ? 1 : 0;
236
+ context2D.fillStyle = labelFont.color;
237
+ context2D.textAlign = 'left';
238
+ context2D.textBaseline = 'alphabetic';
239
+ context2D.fillText(text, labelX, labelY);
240
+ context2D.restore();
241
+ }
242
+ const trackerInfo = {
243
+ x: axis.scale.invert(mouseY - margin.top + margin.bottom),
244
+ axisLocation: axis.location
245
+ };
246
+ return [axis.axisId, trackerInfo];
247
+ });
248
+ if (inPlot) {
249
+ onTrackerUpdate(new Map(updateInfo));
348
250
  }
349
- const trackerInfo = {
350
- x: axis.scale.invert(y - margin.top + margin.bottom),
351
- axisLocation: axis.location
352
- };
353
- return [axis.axisId, trackerInfo];
354
- });
355
- if (inPlot) {
356
- onTrackerUpdate(new Map(updateInfo));
357
- }
251
+ };
252
+ cc.register(drawHandle, draw, 20);
253
+ const handleMouseMove = (event) => {
254
+ const [x, y] = canvasLocalPoint(event, cc.canvas);
255
+ mouseX = x;
256
+ mouseY = y;
257
+ cc.requestRedraw();
258
+ };
259
+ const handleMouseLeave = () => {
260
+ mouseX = null;
261
+ mouseY = null;
262
+ cc.requestRedraw();
263
+ };
264
+ cc.canvas.addEventListener('mousemove', handleMouseMove);
265
+ cc.canvas.addEventListener('mouseleave', handleMouseLeave);
266
+ return () => {
267
+ cc.unregister(drawHandle);
268
+ cc.canvas.removeEventListener('mousemove', handleMouseMove);
269
+ cc.canvas.removeEventListener('mouseleave', handleMouseLeave);
270
+ };
358
271
  }
359
272
  //# sourceMappingURL=trackerUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"trackerUtils.js","sourceRoot":"","sources":["../../../../src/app/charts/trackers/trackerUtils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAGzB,OAAO,EAAC,uBAAuB,EAAsB,kBAAkB,EAAC,MAAM,oBAAoB,CAAC;AACnG,OAAO,EAAc,kBAAkB,EAAE,cAAc,EAAC,MAAM,UAAU,CAAC;AACzE,OAAO,EAAC,YAAY,EAAwB,MAAM,cAAc,CAAC;AACjE,OAAO,EAAqC,oBAAoB,EAAC,MAAM,WAAW,CAAC;AAUnF,MAAM,CAAC,MAAM,uBAAuB,GAAqB;IACrD,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,YAAY;CACvB,CAAA;AAQD,MAAM,CAAC,MAAM,mBAAmB,GAAiB;IAC7C,OAAO,EAAE,KAAK;IACd,KAAK,EAAE,SAAS;IAChB,SAAS,EAAE,CAAC;CACf,CAAA;AAED,qGAAqG;AACrG,MAAM,+BAA+B,GAAG,oBAAoB,CAAA;AAC5D,MAAM,iCAAiC,GAAG,sBAAsB,CAAA;AAEhE,MAAM,UAAU,GAAG,sBAAsB,CAAA;AAEzC;;;;GAIG;AACH,SAAS,qBAAqB,CAAC,OAAe;IAC1C,OAAO,GAAG,UAAU,kBAAkB,OAAO,EAAE,CAAA;AACnD,CAAC;AAED;;;;GAIG;AACH,SAAS,uBAAuB,CAAC,OAAe;IAC5C,OAAO,GAAG,UAAU,oBAAoB,OAAO,EAAE,CAAA;AACrD,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CAAC,OAAe,EAAE,YAA0B;IAC/D,QAAQ,YAAY,EAAE,CAAC;QACnB,KAAK,YAAY,CAAC,MAAM,CAAC;QACzB,KAAK,YAAY,CAAC,GAAG;YACjB,OAAO,GAAG,UAAU,mBAAmB,OAAO,IAAI,YAAY,EAAE,CAAA;QACpE,KAAK,YAAY,CAAC,IAAI,CAAC;QACvB,KAAK,YAAY,CAAC,KAAK;YACnB,OAAO,GAAG,UAAU,qBAAqB,OAAO,IAAI,YAAY,EAAE,CAAA;IAC1E,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,sBAAsB,CAClC,OAAe,EACf,SAAwB,EACxB,GAAiB,EACjB,cAA0B,EAC1B,MAAc,EACd,KAAmB,EACnB,SAA2B,EAC3B,KAAwD,EACxD,UAAgC,EAChC,eAAoD,EACpD,eAA6B,YAAY,CAAC,MAAM,EAChD,eAAuB;IAEvB,QAAQ,YAAY,EAAE,CAAC;QACnB,KAAK,YAAY,CAAC,MAAM,CAAC;QACzB,KAAK,YAAY,CAAC,GAAG;YACjB,OAAO,8BAA8B,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,CAAC,CAAA;QACjK,KAAK,YAAY,CAAC,IAAI,CAAC;QACvB,KAAK,YAAY,CAAC,KAAK,CAAC;QACxB;YACI,OAAO,gCAAgC,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,CAAC,CAAA;IACvK,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAS,8BAA8B,CACnC,OAAe,EACf,SAAwB,EACxB,GAAiB,EACjB,cAA0B,EAC1B,MAAc,EACd,KAAmB,EACnB,SAA2B,EAC3B,KAAwD,EACxD,UAAgC,EAChC,eAAoD,EACpD,eAAuB;IAEvB,MAAM,WAAW,GAAG,GAAG;SAClB,MAAM,CAAiB,MAAM,CAAC;SAC9B,IAAI,CAAC,IAAI,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAC;SAC1C,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC;SACxB,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC;SACtB,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC;SAC9C,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC;SAC3B,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,SAAS,CAAC;SACrC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAsD,CAAA;IAE5E,IAAI,UAAU,KAAK,oBAAoB,CAAC,MAAM,EAAE,CAAC;QAC7C,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;YACtB,mDAAmD;YACnD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,KAAK,YAAY,CAAC,GAAG,CAAC,CAAC;gBAC/C,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC9B,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;YAEvD,GAAG;iBACE,MAAM,CAAiB,MAAM,CAAC;iBAC9B,IAAI,CAAC,IAAI,EAAE,GAAG,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;iBAClE,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC;iBACjB,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC;iBAC7B,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;YAEvB,GAAG;iBACE,MAAM,CAAiB,MAAM,CAAC;iBAC9B,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;iBAClD,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC;iBACjB,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC;iBAC7B,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,MAAM,CAAC;iBACrC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC;iBACjC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,MAAM,CAAC;iBACrC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;iBAClB,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;QACvB,CAAC,CAAC,CAAA;IACN,CAAC;IAED,MAAM,mBAAmB,GAAG,uBAAuB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;IAC3E,GAAG,CAAC,EAAE,CACF,+BAA+B,EAC/B,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAC9B,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,CAChI,CACJ,CAAA;IAED,OAAO,WAAW,CAAA;AACtB,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAS,gCAAgC,CACrC,OAAe,EACf,SAAwB,EACxB,GAAiB,EACjB,cAA0B,EAC1B,MAAc,EACd,KAAmB,EACnB,SAA2B,EAC3B,KAAwD,EACxD,UAAgC,EAChC,eAAoD,EACpD,eAAuB;IAEvB,MAAM,WAAW,GAAG,GAAG;SAClB,MAAM,CAAiB,MAAM,CAAC;SAC9B,IAAI,CAAC,IAAI,EAAE,uBAAuB,CAAC,OAAO,CAAC,CAAC;SAC5C,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC;SACxB,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;SACvB,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;SAC9C,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC;SAC3B,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,SAAS,CAAC;SACrC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAsD,CAAA;IAE5E,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;QACtB,mDAAmD;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;YAChD,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAA;QAEvD,GAAG;aACE,MAAM,CAAiB,MAAM,CAAC;aAC9B,IAAI,CAAC,IAAI,EAAE,GAAG,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;aAClE,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC;aACjB,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC;aAC7B,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;QAEvB,GAAG;aACE,MAAM,CAAiB,MAAM,CAAC;aAC9B,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;aAClD,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC;aACjB,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC;aAC7B,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,MAAM,CAAC;aACrC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC;aACjC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,MAAM,CAAC;aACrC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;aAClB,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;IACvB,CAAC,CAAC,CAAA;IAEF,MAAM,mBAAmB,GAAG,uBAAuB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;IAC3E,GAAG,CAAC,EAAE,CACF,iCAAiC,EACjC,KAAK,CAAC,EAAE,CAAC,2BAA2B,CAChC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,CAChI,CACJ,CAAA;IAED,OAAO,WAAW,CAAA;AACtB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAiB,EAAE,YAA0B;IAC9E,QAAQ,YAAY,EAAE,CAAC;QACnB,KAAK,YAAY,CAAC,MAAM,CAAC;QACzB,KAAK,YAAY,CAAC,GAAG;YACjB,GAAG,CAAC,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;YACnD,MAAK;QACT,KAAK,YAAY,CAAC,IAAI,CAAC;QACvB,KAAK,YAAY,CAAC,KAAK,CAAC;QACxB;YACI,GAAG,CAAC,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;IAC7D,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAS,yBAAyB,CAC9B,OAAe,EACf,SAAwB,EACxB,KAAsC,EACtC,MAAc,EACd,UAAsB,EACtB,YAA0B,EAC1B,SAA2B,EAC3B,KAAwD,EACxD,UAAgC,EAChC,eAAoD,EACpD,eAAuB;IAEvB,kDAAkD;IAClD,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;IAC3C,MAAM,MAAM,GAAG,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAA;IAE3D,MAAM,UAAU,GAAqC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;SAC3E,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,EAAE;QAC1B,+FAA+F;QAC/F,iGAAiG;QACjG,wDAAwD;QACxD,EAAE,CAAC,MAAM,CAAwB,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;aACjE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;aACb,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;aACb,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC;aAClC,IAAI,CAAC,cAAc,EAAE,YAAY,CAAC,SAAS,CAAC;aAC5C,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAE1C,+CAA+C;QAC/C,IAAI,UAAU,KAAK,oBAAoB,CAAC,MAAM,EAAE,CAAC;YAC7C,MAAM,KAAK,GAAG,EAAE,CAAC,MAAM,CAAsB,IAAI,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;iBACrF,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC;iBAC7B,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,MAAM,CAAC;iBACrC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC;iBACjC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,MAAM,CAAC;iBACrC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBACrC,IAAI,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAGjE,MAAM,eAAe,GAAG,EAAE,CAAC,MAAM,CAAsB,IAAI,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;iBAC1G,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC;iBAC7B,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;YAEtB,MAAM,KAAK,GAAG,EAAE,CAAA;YAChB,MAAM,EAAC,MAAM,EAAC,GAAG,kBAAkB,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;YAChF,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,KAAK,YAAY,CAAC,GAAG,CAAC,CAAC;gBAC/C,MAAM,CAAC,GAAG,GAAG,SAAS,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;gBACrC,MAAM,CAAC,GAAG,GAAG,MAAM,GAAG,KAAK,CAAA;YAC/B,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;YAEvB,4FAA4F;YAC5F,wDAAwD;YACxD,MAAM,OAAO,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;YACpD,MAAM,EAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAC,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;YACtE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,CAAA;YAClF,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;YAEvB,wCAAwC;YACxC,MAAM,OAAO,GAAW,CAAC,CAAA;YACzB,eAAe;iBACV,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;iBAC3B,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,OAAO,CAAC;iBACzC,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,CAAC,GAAG,OAAO,CAAC;iBACvC,IAAI,CAAC,QAAQ,EAAE,WAAW,GAAG,CAAC,GAAG,OAAO,CAAC,CAAA;QAClD,CAAC;QAED,MAAM,WAAW,GAAoB;YACjC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;YACrC,YAAY,EAAE,IAAI,CAAC,QAAQ;SAC9B,CAAA;QACD,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IACrC,CAAC,CAAC,CAAA;IAEN,IAAI,MAAM,EAAE,CAAC;QACT,eAAe,CAAC,IAAI,GAAG,CAA0B,UAAU,CAAC,CAAC,CAAA;IACjE,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAS,2BAA2B,CAChC,OAAe,EACf,SAAwB,EACxB,KAAsC,EACtC,MAAc,EACd,UAAsB,EACtB,YAA0B,EAC1B,SAA2B,EAC3B,KAAwD,EACxD,UAAgC,EAChC,eAAoD,EACpD,eAAuB;;IAEvB,kDAAkD;IAClD,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;IAC3C,MAAM,MAAM,GAAG,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAA;IAQ3D,EAAE;IACF,mGAAmG;IACnG,mGAAmG;IACnG,8FAA8F;IAC9F,+EAA+E;IAC/E,EAAE;IACF,kDAAkD;IAClD,MAAM,aAAa,GAAwC,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;SACzF,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,EAAE;QAC1B,+FAA+F;QAC/F,iGAAiG;QACjG,wDAAwD;QACxD,EAAE,CAAC,MAAM,CAAwB,IAAI,uBAAuB,CAAC,OAAO,CAAC,EAAE,CAAC;aACnE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;aACb,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;aACb,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC;aAClC,IAAI,CAAC,cAAc,EAAE,YAAY,CAAC,SAAS,CAAC;aAC5C,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAE1C,MAAM,KAAK,GAAG,EAAE,CAAC,MAAM,CAAsB,IAAI,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;aACrF,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC;aAC7B,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,MAAM,CAAC;aACrC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC;aACjC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,MAAM,CAAC;aACrC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACrC,IAAI,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAEhE,MAAM,eAAe,GAAG,EAAE,CAAC,MAAM,CAAsB,IAAI,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;aAC1G,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC;aAC7B,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,IAAI,UAAU,KAAK,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aACtF,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAEtB,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,eAAe,EAAC,CAAC,CAAA;IACnH,CAAC,CAAC,CAAC,CAAA;IAEP,wDAAwD;IACxD,MAAM,KAAK,GAAG,EAAE,CAAA;IAChB,MAAM,eAAe,GAAG,CAAC,CAAA,MAAA,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,0CAAE,gBAAgB,CAAC,KAAK,KAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;IAEzG,MAAM,UAAU,GAAqC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;SACnF,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAC,IAAI,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAC,CAAC,EAAE,EAAE;QAC3E,IAAI,UAAU,KAAK,oBAAoB,CAAC,MAAM,EAAE,CAAC;YAC7C,MAAM,EAAC,KAAK,EAAC,GAAG,kBAAkB,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;YAC/E,MAAM,MAAM,GAAG,QAAQ,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;gBAC3C,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;gBACrB,MAAM,CAAC,IAAI,GAAG,KAAK,GAAG,eAAe,GAAG,KAAK,CAAA;YACjD,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;YAEhC,4FAA4F;YAC5F,wDAAwD;YACxD,MAAM,OAAO,GAAW,UAAU,KAAK,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YAC9E,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,CAAC,GAAG,GAAG,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;YACpF,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;YAEhC,wCAAwC;YACxC,MAAM,OAAO,GAAW,CAAC,CAAA;YACzB,eAAe;iBACV,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;iBAC3B,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;iBAC/C,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,KAAK,GAAG,CAAC,GAAG,OAAO,CAAC;iBACnD,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAA;QAC9D,CAAC;QAED,MAAM,WAAW,GAAoB;YACjC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;YACpD,YAAY,EAAE,IAAI,CAAC,QAAQ;SAC9B,CAAA;QACD,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IACrC,CAAC,CAAC,CAAA;IAEN,IAAI,MAAM,EAAE,CAAC;QACT,eAAe,CAAC,IAAI,GAAG,CAA0B,UAAU,CAAC,CAAC,CAAA;IACjE,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"trackerUtils.js","sourceRoot":"","sources":["../../../../src/app/charts/trackers/trackerUtils.ts"],"names":[],"mappings":"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"}