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,25 @@
1
+ import { type Dispatch, type SetStateAction } from "react";
2
+ /**
3
+ * The series the mouse is over (in a plot, or in the legend), which the plots and the legend
4
+ * highlight
5
+ */
6
+ export interface HoveredSeriesValues {
7
+ /**
8
+ * The name of the hovered series, or `null` when no series is hovered
9
+ */
10
+ hoveredSeriesName: string | null;
11
+ /**
12
+ * Sets (or, with `null`, clears) the hovered series -- e.g. when the mouse is over the series'
13
+ * entry in the legend. (A plot's own mouse-over and mouse-leave set it, through the chart's
14
+ * mouse handlers -- see `useMouse`.)
15
+ */
16
+ setHoveredSeriesName: Dispatch<SetStateAction<string | null>>;
17
+ }
18
+ export declare const HoveredSeriesContext: import("react").Context<HoveredSeriesValues>;
19
+ /**
20
+ * React hook for the series the mouse is over. Kept apart from {@link useChart}, so that only the
21
+ * components that show the hover (the plots and the legend) re-render when it changes.
22
+ * @return The hovered series' name, and its setter
23
+ */
24
+ export declare function useHoveredSeries(): HoveredSeriesValues;
25
+ //# sourceMappingURL=useHoveredSeries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHoveredSeries.d.ts","sourceRoot":"","sources":["../../../../src/app/charts/hooks/useHoveredSeries.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,QAAQ,EAAE,KAAK,cAAc,EAAa,MAAM,OAAO,CAAC;AAEpF;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAChC;;OAEG;IACH,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC;;;;OAIG;IACH,oBAAoB,EAAE,QAAQ,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAA;CAChE;AAED,eAAO,MAAM,oBAAoB,8CAI/B,CAAA;AAEF;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,mBAAmB,CAEtD"}
@@ -0,0 +1,15 @@
1
+ import { createContext, useContext } from "react";
2
+ export const HoveredSeriesContext = createContext({
3
+ hoveredSeriesName: null,
4
+ setHoveredSeriesName: () => {
5
+ },
6
+ });
7
+ /**
8
+ * React hook for the series the mouse is over. Kept apart from {@link useChart}, so that only the
9
+ * components that show the hover (the plots and the legend) re-render when it changes.
10
+ * @return The hovered series' name, and its setter
11
+ */
12
+ export function useHoveredSeries() {
13
+ return useContext(HoveredSeriesContext);
14
+ }
15
+ //# sourceMappingURL=useHoveredSeries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHoveredSeries.js","sourceRoot":"","sources":["../../../../src/app/charts/hooks/useHoveredSeries.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAsC,UAAU,EAAC,MAAM,OAAO,CAAC;AAmBpF,MAAM,CAAC,MAAM,oBAAoB,GAAG,aAAa,CAAsB;IACnE,iBAAiB,EAAE,IAAI;IACvB,oBAAoB,EAAE,GAAG,EAAE;IAC3B,CAAC;CACJ,CAAC,CAAA;AAEF;;;;GAIG;AACH,MAAM,UAAU,gBAAgB;IAC5B,OAAO,UAAU,CAAC,oBAAoB,CAAC,CAAA;AAC3C,CAAC"}
@@ -1,17 +1,32 @@
1
- import { JSX } from "react";
2
- import { TooltipData } from "./useTooltip";
1
+ import type { TooltipData } from "./useTooltip";
3
2
  /**
4
- * Type representing the values exposed through the {@link useMouse} react hook.
3
+ * Called when the mouse moves over a series (e.g. to show the tooltip)
4
+ * @param seriesName The name of the series under the mouse
5
+ * @param time The time (x-value) under the mouse
6
+ * @param tooltipData The data for the tooltip (the series, and the plot's metadata about it)
7
+ * @param mouseCoords The mouse coordinates
8
+ * @param [providerId] The ID of the tooltip content provider to use (e.g. for a plot whose
9
+ * elements have different tooltips)
10
+ */
11
+ export type TooltipMouseOverHandlerFn<D, TM> = (seriesName: string, time: number, tooltipData: TooltipData<D, TM>, mouseCoords: [x: number, y: number], providerId?: string) => void;
12
+ /**
13
+ * Called when the mouse leaves a series (e.g. to hide the tooltip)
14
+ * @param seriesName The name of the series the mouse left
15
+ */
16
+ export type TooltipMouseLeaveHandlerFn = (seriesName: string) => void;
17
+ /**
18
+ * Type representing the values exposed through the `useMouse` react hook.
5
19
  * @template D The type of the data object for the series
6
20
  * @template TM The type of the metadata object for the series
7
21
  */
8
22
  export type UseMouseValues<D, TM> = {
9
23
  /**
10
- * Adds a mouse-over-series handler with the specified ID and handler function
24
+ * Adds a mouse-over-series handler with the specified ID and handler function (replacing any
25
+ * handler already registered with that ID)
11
26
  * @param handlerId The handler ID
12
27
  * @param handler The handler function called when a mouse-over-series event occurs.
13
- * The handler function is handed the series name, the time (x-value), the actual
14
- * series, and the mouse coordinates over which the mouse has moved over.
28
+ * The handler function is handed the series name, the time (x-value), the tooltip data (the
29
+ * series and its metadata), and the mouse coordinates.
15
30
  * @return The handler ID.
16
31
  */
17
32
  registerMouseOverHandler: (handlerId: string, handler: (seriesName: string, time: number, tooltipData: TooltipData<D, TM>, mouseCoords: [x: number, y: number]) => void) => string;
@@ -21,37 +36,46 @@ export type UseMouseValues<D, TM> = {
21
36
  */
22
37
  unregisterMouseOverHandler: (handlerId: string) => void;
23
38
  /**
24
- * Attempts to retrieve the mouse-over-series handler for the specified ID
25
- * @param handlerId The ID of the handler
26
- * @return The mouse-over-series handler for the ID, or `undefined` if not found
39
+ * Retrieves the mouse-over-series handler a plot calls when the mouse is over one of its
40
+ * series: it sets the hovered series (see {@link useHoveredSeries}), and calls *every*
41
+ * registered mouse-over-series handler, handing each the specified provider ID. (The
42
+ * `handlerId` is accepted, but unused.)
43
+ * @param handlerId The ID of the handler (unused)
44
+ * @param [providerId] The ID of the tooltip content provider handed to the handlers
45
+ * @return The mouse-over-series handler
27
46
  */
28
- mouseOverHandlerFor: (handlerId: string, providerId?: string) => ((seriesName: string, time: number, tooltipData: TooltipData<D, TM>, mouseCoords: [x: number, y: number], providerId?: string) => void) | undefined;
47
+ mouseOverHandlerFor: (handlerId: string, providerId?: string) => TooltipMouseOverHandlerFn<D, TM>;
29
48
  /**
30
- * Adds a mouse-leave-series handler with the specified ID and handler function
49
+ * Adds a mouse-leave-series handler with the specified ID and handler function (replacing any
50
+ * handler already registered with that ID)
31
51
  * @param handlerId The handler ID
32
52
  * @param handler The handler function called when a mouse-leave-series event occurs
33
53
  * @return The handler ID
34
54
  */
35
- registerMouseLeaveHandler: (handlerId: string, handler: (seriesName: string) => void) => string;
55
+ registerMouseLeaveHandler: (handlerId: string, handler: TooltipMouseLeaveHandlerFn) => string;
36
56
  /**
37
57
  * Removes the mouse-leave-series handler with the specified ID
38
58
  * @param handlerId The ID of the handler to remove
39
59
  */
40
60
  unregisterMouseLeaveHandler: (handlerId: string) => void;
41
61
  /**
42
- * Attempts to retrieve the mouse-leave-series handler for the specified ID
43
- * @param handlerId The ID of the handler
44
- * @return The mouse-leave-series handler for the ID, or `undefined` if not found
62
+ * Retrieves the mouse-leave-series handler a plot calls when the mouse leaves one of its
63
+ * series: it clears the hovered series, and calls *every* registered mouse-leave-series
64
+ * handler, handing each the specified provider ID. (The `handlerId` is accepted, but unused.)
65
+ * @param handlerId The ID of the handler (unused)
66
+ * @param [providerId] The ID of the tooltip content provider handed to the handlers
67
+ * @return The mouse-leave-series handler
45
68
  */
46
- mouseLeaveHandlerFor: (handlerId: string, providerId?: string) => ((seriesName: string, providerId?: string) => void) | undefined;
69
+ mouseLeaveHandlerFor: (handlerId: string, providerId?: string) => ((seriesName: string, providerId?: string) => void);
47
70
  };
48
- export declare const defaultMouseValues: () => UseMouseValues<any, any>;
49
- export type Props = {
50
- children: JSX.Element | Array<JSX.Element>;
51
- };
52
- export default function MouseProvider<D, TM>(props: Props): JSX.Element;
71
+ export declare const MouseContext: import("react").Context<unknown>;
53
72
  /**
54
- * React hook that sets up the React context for the mouse values.
73
+ * React hook for registering, and retrieving, the chart's mouse-over-series and
74
+ * mouse-leave-series handlers. Must be used within a `<Chart>`.
55
75
  * @return The {@link UseMouseValues} held in the React context.
76
+ * @throws Error when used outside a `<Chart>`
77
+ * @template D The type of the data object for the series
78
+ * @template TM The type of the metadata object for the series
56
79
  */
57
80
  export declare function useMouse<D, TM>(): UseMouseValues<D, TM>;
81
+ //# sourceMappingURL=useMouse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMouse.d.ts","sourceRoot":"","sources":["../../../../src/app/charts/hooks/useMouse.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,cAAc,CAAC;AAE9C;;;;;;;;GAQG;AACH,MAAM,MAAM,yBAAyB,CAAC,CAAC,EAAE,EAAE,IAAI,CAC3C,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,EAC/B,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,EACnC,UAAU,CAAC,EAAE,MAAM,KAClB,IAAI,CAAA;AAET;;;GAGG;AACH,MAAM,MAAM,0BAA0B,GAAG,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAA;AAErE;;;;GAIG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,EAAE,EAAE,IAAI;IAChC;;;;;;;;OAQG;IACH,wBAAwB,EAAE,CACtB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,IAAI,KACxH,MAAM,CAAA;IACX;;;OAGG;IACH,0BAA0B,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IACvD;;;;;;;;OAQG;IACH,mBAAmB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,yBAAyB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACjG;;;;;;OAMG;IACH,yBAAyB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,0BAA0B,KAAK,MAAM,CAAA;IAC7F;;;OAGG;IACH,2BAA2B,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IACxD;;;;;;;OAOG;IACH,oBAAoB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC,CAAA;CACxH,CAAA;AAKD,eAAO,MAAM,YAAY,kCAAoC,CAAA;AAE7D;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,EAAE,KAAK,cAAc,CAAC,CAAC,EAAE,EAAE,CAAC,CAMvD"}
@@ -1,64 +1,20 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { createContext, useContext, useRef } from "react";
1
+ import { createContext, useContext } from "react";
2
+ // the context is generic over the same type parameters as `UseMouseValues`, but a context
3
+ // object can't itself carry unbound generics -- `useMouse` below casts it back to the caller's
4
+ // concrete types, which is safe because `<InteractionProvider/>` is what actually supplies the value
5
+ export const MouseContext = createContext(undefined);
3
6
  /**
4
- * No operation function for use when a default function is needed
5
- */
6
- const noop = () => {
7
- /* empty on purpose */
8
- };
9
- export const defaultMouseValues = () => ({
10
- registerMouseOverHandler: () => '',
11
- unregisterMouseOverHandler: noop,
12
- mouseOverHandlerFor: () => undefined,
13
- registerMouseLeaveHandler: () => '',
14
- unregisterMouseLeaveHandler: noop,
15
- mouseLeaveHandlerFor: () => undefined,
16
- });
17
- const MouseContext = createContext(defaultMouseValues());
18
- export default function MouseProvider(props) {
19
- const { children } = props;
20
- const mouseOverHandlersRef = useRef(new Map());
21
- const mouseLeaveHandlersRef = useRef(new Map());
22
- return _jsx(MouseContext.Provider, { value: {
23
- registerMouseOverHandler: (handlerId, handler) => {
24
- mouseOverHandlersRef.current.set(handlerId, handler);
25
- return handlerId;
26
- },
27
- unregisterMouseOverHandler: handlerId => mouseOverHandlersRef.current.delete(handlerId),
28
- mouseOverHandlerFor: (handlerId, providerId) => {
29
- if (mouseOverHandlersRef.current.size === 0)
30
- return undefined;
31
- return (seriesName, time, tooltipData, mouseCoords) => {
32
- mouseOverHandlersRef.current.forEach(handler => {
33
- handler(seriesName, time, tooltipData, mouseCoords, providerId);
34
- });
35
- };
36
- },
37
- registerMouseLeaveHandler: (handlerId, handler) => {
38
- mouseLeaveHandlersRef.current.set(handlerId, handler);
39
- return handlerId;
40
- },
41
- unregisterMouseLeaveHandler: handlerId => mouseLeaveHandlersRef.current.delete(handlerId),
42
- mouseLeaveHandlerFor: (handlerId, providerId) => {
43
- if (mouseLeaveHandlersRef.current.size === 0)
44
- return undefined;
45
- return (seriesName) => {
46
- mouseLeaveHandlersRef.current.forEach(handler => {
47
- handler(seriesName, providerId);
48
- });
49
- };
50
- },
51
- }, children: children });
52
- }
53
- /**
54
- * React hook that sets up the React context for the mouse values.
7
+ * React hook for registering, and retrieving, the chart's mouse-over-series and
8
+ * mouse-leave-series handlers. Must be used within a `<Chart>`.
55
9
  * @return The {@link UseMouseValues} held in the React context.
10
+ * @throws Error when used outside a `<Chart>`
11
+ * @template D The type of the data object for the series
12
+ * @template TM The type of the metadata object for the series
56
13
  */
57
14
  export function useMouse() {
58
15
  const context = useContext(MouseContext);
59
- const { mouseOverHandlerFor } = context;
60
- if (mouseOverHandlerFor === undefined || mouseOverHandlerFor === null) {
61
- throw new Error("useMouse can only be used when the parent is a <MouseProvider/>");
16
+ if (context === undefined) {
17
+ throw new Error("useMouse can only be used within a <Chart/>");
62
18
  }
63
19
  return context;
64
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useMouse.js","sourceRoot":"","sources":["../../../../src/app/charts/hooks/useMouse.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useMouse.js","sourceRoot":"","sources":["../../../../src/app/charts/hooks/useMouse.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAE,UAAU,EAAC,MAAM,OAAO,CAAC;AAoFhD,0FAA0F;AAC1F,+FAA+F;AAC/F,qGAAqG;AACrG,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAU,SAAS,CAAC,CAAA;AAE7D;;;;;;;GAOG;AACH,MAAM,UAAU,QAAQ;IACpB,MAAM,OAAO,GAAG,UAAU,CAAC,YAAY,CAAC,CAAA;IACxC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;IAClE,CAAC;IACD,OAAO,OAAgC,CAAA;AAC3C,CAAC"}
@@ -1,14 +1,20 @@
1
- import { Dimensions, Margin } from "../styling/margins";
2
- import { JSX } from "react";
3
- export declare const defaultMargin: Margin;
1
+ import { type Dimensions, type Margin } from "../styling/margins";
2
+ /**
3
+ * Called when the plot's dimensions change
4
+ * @param previousDimensions The plot's dimensions before the change
5
+ * @param newDimensions The plot's new dimensions
6
+ */
4
7
  export type PlotDimensionChangeHandler = (previousDimensions: Dimensions, newDimensions: Dimensions) => void;
8
+ /**
9
+ * The values exposed through the {@link usePlotDimensions} react hook
10
+ */
5
11
  export type UsePlotDimensionsValues = {
6
12
  /**
7
- * The width and height (in pixels) of this chart
13
+ * The width and height (in pixels) of the plot area (the chart without its margins)
8
14
  */
9
15
  plotDimensions: Dimensions;
10
16
  /**
11
- * The plot margins for the border of main G
17
+ * The margins between the edges of the chart and the plot area (where the axes are drawn)
12
18
  */
13
19
  margin: Margin;
14
20
  /**
@@ -16,18 +22,24 @@ export type UsePlotDimensionsValues = {
16
22
  * @param dimensions the new dimensions of the plot
17
23
  */
18
24
  updateDimensions: (dimensions: Dimensions) => void;
25
+ /**
26
+ * Registers a handler that's called whenever the plot dimensions change
27
+ * @param handler The handler
28
+ * @return The handler's ID (for unregistering it)
29
+ */
19
30
  registerPlotDimensionChangeHandler: (handler: PlotDimensionChangeHandler) => string;
31
+ /**
32
+ * Unregisters the plot-dimension change handler with the specified ID
33
+ * @param handlerId The handler's ID (from {@link registerPlotDimensionChangeHandler})
34
+ */
20
35
  unregisterPlotDimensionChangeHandler: (handlerId: string) => void;
21
36
  };
22
- export declare const defaultPlotDimensions: () => UsePlotDimensionsValues;
23
- export type Props = {
24
- containerDimensions: Dimensions;
25
- margin: Margin;
26
- children: JSX.Element | Array<JSX.Element>;
27
- };
28
- export default function PlotDimensionsProvider(props: Props): JSX.Element;
37
+ export declare const PlotDimensionsContext: import("react").Context<UsePlotDimensionsValues | undefined>;
29
38
  /**
30
- * React hook that sets up the React context for the plot-dimension values.
39
+ * React hook for the plot's dimensions and margins. Must be used within a
40
+ * `PlotDimensionsProvider` (i.e. within a `<Chart>`).
31
41
  * @return The {@link UsePlotDimensionsValues} held in the React context.
42
+ * @throws Error when used outside a `<PlotDimensionsProvider>`
32
43
  */
33
44
  export declare function usePlotDimensions(): UsePlotDimensionsValues;
45
+ //# sourceMappingURL=usePlotDimensions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePlotDimensions.d.ts","sourceRoot":"","sources":["../../../../src/app/charts/hooks/usePlotDimensions.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,UAAU,EAAE,KAAK,MAAM,EAAC,MAAM,oBAAoB,CAAC;AAGhE;;;;GAIG;AACH,MAAM,MAAM,0BAA0B,GAAG,CAAC,kBAAkB,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,KAAK,IAAI,CAAA;AAE5G;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG;IAClC;;OAEG;IACH,cAAc,EAAE,UAAU,CAAA;IAC1B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IACd;;;OAGG;IACH,gBAAgB,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAA;IAClD;;;;OAIG;IACH,kCAAkC,EAAE,CAAC,OAAO,EAAE,0BAA0B,KAAK,MAAM,CAAA;IACnF;;;OAGG;IACH,oCAAoC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;CACpE,CAAA;AAED,eAAO,MAAM,qBAAqB,8DAAgE,CAAA;AAElG;;;;;GAKG;AACH,wBAAgB,iBAAiB,IAAI,uBAAuB,CAM3D"}
@@ -1,70 +1,14 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { dimensionsNotEqual, plotDimensionsFrom } from "../styling/margins";
3
- import { createContext, useContext, useEffect, useRef, useState } from "react";
1
+ import { createContext, useContext } from "react";
2
+ export const PlotDimensionsContext = createContext(undefined);
4
3
  /**
5
- * No operation function for use when a default function is needed
6
- */
7
- const noop = () => {
8
- /* empty on purpose */
9
- };
10
- export const defaultMargin = { top: 30, right: 20, bottom: 30, left: 50 };
11
- export const defaultPlotDimensions = () => ({
12
- plotDimensions: { width: 0, height: 0 },
13
- margin: defaultMargin,
14
- updateDimensions: noop,
15
- registerPlotDimensionChangeHandler: () => "",
16
- unregisterPlotDimensionChangeHandler: noop
17
- });
18
- const PlotDimensionsContext = createContext(defaultPlotDimensions());
19
- export default function PlotDimensionsProvider(props) {
20
- const { containerDimensions, margin, children } = props;
21
- const [dimensions, setDimensions] = useState(defaultPlotDimensions().plotDimensions);
22
- const plotDimensionChangeHandersRef = useRef(new Map());
23
- // update the plot dimensions when the container size or margin change
24
- useEffect(() => {
25
- const newDimensions = plotDimensionsFrom(containerDimensions.width, containerDimensions.height, margin);
26
- setDimensions(prevDimensions => {
27
- if (dimensionsNotEqual(prevDimensions, newDimensions)) {
28
- for (const handler of plotDimensionChangeHandersRef.current.values()) {
29
- handler(prevDimensions, newDimensions);
30
- }
31
- return newDimensions;
32
- }
33
- return prevDimensions;
34
- });
35
- }, [containerDimensions, margin]);
36
- function updateDimensions(newDimensions) {
37
- setDimensions(prevState => {
38
- for (const handler of plotDimensionChangeHandersRef.current.values()) {
39
- handler(prevState, newDimensions);
40
- }
41
- return newDimensions;
42
- });
43
- }
44
- function registerPlotDimensionChangeHandler(handler) {
45
- const handlerId = crypto.randomUUID();
46
- plotDimensionChangeHandersRef.current.set(handlerId, handler);
47
- return handlerId;
48
- }
49
- function unregisterPlotDimensionChangeHandler(handlerId) {
50
- return plotDimensionChangeHandersRef.current.delete(handlerId);
51
- }
52
- return _jsx(PlotDimensionsContext.Provider, { value: {
53
- plotDimensions: dimensions,
54
- margin,
55
- updateDimensions,
56
- registerPlotDimensionChangeHandler,
57
- unregisterPlotDimensionChangeHandler
58
- }, children: children });
59
- }
60
- /**
61
- * React hook that sets up the React context for the plot-dimension values.
4
+ * React hook for the plot's dimensions and margins. Must be used within a
5
+ * `PlotDimensionsProvider` (i.e. within a `<Chart>`).
62
6
  * @return The {@link UsePlotDimensionsValues} held in the React context.
7
+ * @throws Error when used outside a `<PlotDimensionsProvider>`
63
8
  */
64
9
  export function usePlotDimensions() {
65
10
  const context = useContext(PlotDimensionsContext);
66
- const { plotDimensions } = context;
67
- if (plotDimensions === undefined || plotDimensions === null) {
11
+ if (context === undefined) {
68
12
  throw new Error("usePlotDimensions can only be used when the parent is a <PlotDimensionsProvider/>");
69
13
  }
70
14
  return context;
@@ -1 +1 @@
1
- {"version":3,"file":"usePlotDimensions.js","sourceRoot":"","sources":["../../../../src/app/charts/hooks/usePlotDimensions.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"usePlotDimensions.js","sourceRoot":"","sources":["../../../../src/app/charts/hooks/usePlotDimensions.tsx"],"names":[],"mappings":"AACA,OAAO,EAAC,aAAa,EAAE,UAAU,EAAC,MAAM,OAAO,CAAC;AAuChD,MAAM,CAAC,MAAM,qBAAqB,GAAG,aAAa,CAAsC,SAAS,CAAC,CAAA;AAElG;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB;IAC7B,MAAM,OAAO,GAAG,UAAU,CAAC,qBAAqB,CAAC,CAAA;IACjD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,mFAAmF,CAAC,CAAA;IACxG,CAAC;IACD,OAAO,OAAO,CAAA;AAClB,CAAC"}
@@ -1,6 +1,4 @@
1
- import { Series } from "../plots/plot";
2
- import { TooltipDimensions } from "../tooltips/tooltipUtils";
3
- import { JSX } from "react";
1
+ import type { Series } from "../plots/plot";
4
2
  /**
5
3
  * Base interface for tooltip data that is passed through to the tooltip content provider
6
4
  * @template D The type of the data object for the series
@@ -11,18 +9,21 @@ export interface TooltipData<D, M> {
11
9
  metadata: M;
12
10
  }
13
11
  /**
14
- * A higher-order function that returns a function that provides the tooltip content or
15
- * `undefined` if no tooltip content is available.
16
- * @return The tooltip content, or `undefined` if no tooltip content is available.
12
+ * A function that provides (shows) the tooltip content for the element under the mouse (see
13
+ * {@link TooltipContent}, which registers one)
17
14
  * @param seriesName The name of the series for which the tooltip content is being provided
18
15
  * @param time The time (x-value) for which the tooltip content is being provided
19
16
  * @param tooltipData The tooltip data
20
17
  * @param mouseCoords The mouse coordinates over which the mouse is hovering
21
18
  * @param providerId An optional ID of the tooltip content provider.
19
+ * @template D The type of the data object for the series
20
+ * @template M The type of the metadata object for the series
22
21
  */
23
- export type TooltipContentProvider<D, M> = (seriesName: string, time: number, tooltipData: TooltipData<D, M>, mouseCoords: [x: number, y: number], providerId?: string) => TooltipDimensions;
22
+ export type TooltipContentProvider<D, M> = (seriesName: string, time: number, tooltipData: TooltipData<D, M>, mouseCoords: [x: number, y: number], providerId?: string) => void;
24
23
  /**
25
- * The functions and values exposed through the {@link useTooltip} react hook
24
+ * The functions and values exposed through the `useTooltip` react hook
25
+ * @template D The type of the data object for the series
26
+ * @template M The type of the metadata object for the series
26
27
  */
27
28
  export type UseTooltipValues<D, M> = {
28
29
  /**
@@ -37,28 +38,25 @@ export type UseTooltipValues<D, M> = {
37
38
  * registered, then returns `undefined`.
38
39
  */
39
40
  tooltipContentProvider: () => (TooltipContentProvider<D, M> | undefined);
41
+ /**
42
+ * Callback that sets the visibility state of the tooltip. This is used to control whether the tooltip is
43
+ * visible or not.
44
+ * @param visible Whether the tooltip should be visible or not.
45
+ */
40
46
  setVisibilityState: (visible: boolean) => void;
47
+ /**
48
+ * @return Whether the tooltip is currently visible or not.
49
+ */
41
50
  visibilityState: boolean;
42
51
  };
52
+ export declare const TooltipContext: import("react").Context<unknown>;
43
53
  /**
44
- * The default values for the {@link UseTooltipValues}
45
- */
46
- export declare const defaultTooltipValues: () => UseTooltipValues<any, any>;
47
- export type Props = {
48
- children: JSX.Element | Array<JSX.Element>;
49
- };
50
- /**
51
- * The tooltip context provider allows registering and retrieving tooltip content providers. When
52
- * a tooltip content provider is registered with a provider ID, then it must be retrieved with that
53
- * same provider ID. This allows a chart to have multiple tooltip content providers, depending on
54
- * the context or types of objects being moused over. When a tooltip content provider is registered
55
- * without a provider ID, then the default provider ID is used.
56
- * @param props The properties holding the children
57
- * @return A JSX element containing the children
58
- */
59
- export default function TooltipProvider<D, M>(props: Props): JSX.Element;
60
- /**
61
- * React hook that sets up the React context for the mouse values.
54
+ * React hook for registering, and retrieving, the chart's tooltip content provider, and for the
55
+ * tooltip's visibility. Must be used within a `<Chart>`.
62
56
  * @return The {@link UseTooltipValues} held in the React context.
57
+ * @throws Error when used outside a `<Chart>`
58
+ * @template D The type of the data object for the series
59
+ * @template M The type of the metadata object for the series
63
60
  */
64
61
  export declare function useTooltip<D, M>(): UseTooltipValues<D, M>;
62
+ //# sourceMappingURL=useTooltip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTooltip.d.ts","sourceRoot":"","sources":["../../../../src/app/charts/hooks/useTooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AAG1C;;;;GAIG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,EAAE,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;IACjB,QAAQ,EAAE,CAAC,CAAA;CACd;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,sBAAsB,CAAC,CAAC,EAAE,CAAC,IACnC,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;AAExI;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,EAAE,CAAC,IAAI;IACjC;;;;;OAKG;IACH,8BAA8B,EAAE,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAA;IAEhF;;;OAGG;IACH,sBAAsB,EAAE,MAAM,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,CAAA;IAExE;;;;OAIG;IACH,kBAAkB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;IAE9C;;OAEG;IACH,eAAe,EAAE,OAAO,CAAA;CAC3B,CAAA;AAKD,eAAO,MAAM,cAAc,kCAAoC,CAAA;AAE/D;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAMzD"}
@@ -1,50 +1,20 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { createContext, useContext, useRef } from "react";
1
+ import { createContext, useContext } from "react";
2
+ // the context is generic over the same type parameters as `UseTooltipValues`, but a context
3
+ // object can't itself carry unbound generics -- `useTooltip` below casts it back to the caller's
4
+ // concrete types, which is safe because `<InteractionProvider/>` is what actually supplies the value
5
+ export const TooltipContext = createContext(undefined);
3
6
  /**
4
- * No operation function for use when a default function is needed
5
- */
6
- const noop = () => {
7
- /* empty on purpose */
8
- };
9
- /**
10
- * The default values for the {@link UseTooltipValues}
11
- */
12
- export const defaultTooltipValues = () => ({
13
- registerTooltipContentProvider: noop,
14
- tooltipContentProvider: () => undefined,
15
- setVisibilityState: noop,
16
- visibilityState: false,
17
- });
18
- const TooltipContext = createContext(defaultTooltipValues());
19
- /**
20
- * The tooltip context provider allows registering and retrieving tooltip content providers. When
21
- * a tooltip content provider is registered with a provider ID, then it must be retrieved with that
22
- * same provider ID. This allows a chart to have multiple tooltip content providers, depending on
23
- * the context or types of objects being moused over. When a tooltip content provider is registered
24
- * without a provider ID, then the default provider ID is used.
25
- * @param props The properties holding the children
26
- * @return A JSX element containing the children
27
- */
28
- export default function TooltipProvider(props) {
29
- const { children } = props;
30
- const tooltipContentProviderRef = useRef(undefined);
31
- const visibilityStateRef = useRef(false);
32
- return _jsx(TooltipContext.Provider, { value: {
33
- registerTooltipContentProvider: provider => tooltipContentProviderRef.current = provider,
34
- tooltipContentProvider: () => tooltipContentProviderRef.current,
35
- setVisibilityState: (visible) => visibilityStateRef.current = visible,
36
- visibilityState: visibilityStateRef.current
37
- }, children: children });
38
- }
39
- /**
40
- * React hook that sets up the React context for the mouse values.
7
+ * React hook for registering, and retrieving, the chart's tooltip content provider, and for the
8
+ * tooltip's visibility. Must be used within a `<Chart>`.
41
9
  * @return The {@link UseTooltipValues} held in the React context.
10
+ * @throws Error when used outside a `<Chart>`
11
+ * @template D The type of the data object for the series
12
+ * @template M The type of the metadata object for the series
42
13
  */
43
14
  export function useTooltip() {
44
15
  const context = useContext(TooltipContext);
45
- const { registerTooltipContentProvider } = context;
46
- if (registerTooltipContentProvider === undefined || registerTooltipContentProvider === null) {
47
- throw new Error("useTooltip can only be used when the parent is a <TooltipProvider/>");
16
+ if (context === undefined) {
17
+ throw new Error("useTooltip can only be used within a <Chart/>");
48
18
  }
49
19
  return context;
50
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useTooltip.js","sourceRoot":"","sources":["../../../../src/app/charts/hooks/useTooltip.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAC,aAAa,EAAO,UAAU,EAAE,MAAM,EAAC,MAAM,OAAO,CAAC;AAE7D;;GAEG;AACH,MAAM,IAAI,GAAG,GAAG,EAAE;IACd,sBAAsB;AAC1B,CAAC,CAAA;AA+CD;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAA+B,EAAE,CAAC,CAAC;IACnE,8BAA8B,EAAE,IAAI;IACpC,sBAAsB,EAAE,GAAG,EAAE,CAAC,SAAS;IACvC,kBAAkB,EAAE,IAAI;IACxB,eAAe,EAAE,KAAK;CACzB,CAAC,CAAA;AAEF,MAAM,cAAc,GAAG,aAAa,CAA6B,oBAAoB,EAAE,CAAC,CAAA;AAMxF;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CAAO,KAAY;IACtD,MAAM,EAAC,QAAQ,EAAC,GAAG,KAAK,CAAA;IAExB,MAAM,yBAAyB,GAAG,MAAM,CAA+B,SAAS,CAAC,CAAA;IACjF,MAAM,kBAAkB,GAAG,MAAM,CAAU,KAAK,CAAC,CAAA;IAEjD,OAAO,KAAC,cAAc,CAAC,QAAQ,IAC3B,KAAK,EAAE;YACH,8BAA8B,EAAE,QAAQ,CAAC,EAAE,CAAC,yBAAyB,CAAC,OAAO,GAAG,QAAQ;YACxF,sBAAsB,EAAE,GAAG,EAAE,CAAC,yBAAyB,CAAC,OAAO;YAC/D,kBAAkB,EAAE,CAAC,OAAgB,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,GAAG,OAAO;YAC9E,eAAe,EAAE,kBAAkB,CAAC,OAAO;SAC9C,YAEA,QAAQ,GACa,CAAA;AAC9B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU;IACtB,MAAM,OAAO,GAAG,UAAU,CAAyB,cAAc,CAAC,CAAA;IAClE,MAAM,EAAC,8BAA8B,EAAC,GAAG,OAAO,CAAA;IAChD,IAAI,8BAA8B,KAAK,SAAS,IAAI,8BAA8B,KAAK,IAAI,EAAE,CAAC;QAC1F,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAA;IAC1F,CAAC;IACD,OAAO,OAAO,CAAA;AAClB,CAAC"}
1
+ {"version":3,"file":"useTooltip.js","sourceRoot":"","sources":["../../../../src/app/charts/hooks/useTooltip.tsx"],"names":[],"mappings":"AACA,OAAO,EAAC,aAAa,EAAE,UAAU,EAAC,MAAM,OAAO,CAAC;AA2DhD,4FAA4F;AAC5F,iGAAiG;AACjG,qGAAqG;AACrG,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAAU,SAAS,CAAC,CAAA;AAE/D;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU;IACtB,MAAM,OAAO,GAAG,UAAU,CAAC,cAAc,CAAC,CAAA;IAC1C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;IACpE,CAAC;IACD,OAAO,OAAiC,CAAA;AAC5C,CAAC"}
@@ -0,0 +1,66 @@
1
+ export { Chart, type Props as ChartProps } from "./Chart";
2
+ export { useChart, type UseChartValues, type NoTooltipMetadata } from "./hooks/useChart";
3
+ export type { UseAxesValues } from "./hooks/useAxes";
4
+ export type { AxesState } from "./axes/AxesState";
5
+ export type { UseMouseValues, TooltipMouseOverHandlerFn, TooltipMouseLeaveHandlerFn } from "./hooks/useMouse";
6
+ export type { UseTooltipValues } from "./hooks/useTooltip";
7
+ export { usePlotDimensions, type UsePlotDimensionsValues, type PlotDimensionChangeHandler } from "./hooks/usePlotDimensions";
8
+ export { useDataSource, useDataSourceRunning } from "./hooks/useDataSource";
9
+ export { useHoveredSeries, type HoveredSeriesValues } from "./hooks/useHoveredSeries";
10
+ export { defaultMargin } from "./hooks/defaultPlotDimensions";
11
+ export type { Margin, Dimensions } from "./styling/margins";
12
+ export type { SvgStyle, SvgStrokeStyle, SvgFillStyle } from "./styling/svgStyle";
13
+ export type { CanvasContext, DrawFn, DrawHandle } from "./d3types";
14
+ export { ContinuousAxis, type Props as ContinuousAxisProps } from "./axes/ContinuousAxis";
15
+ export { OrdinalAxis, type Props as OrdinalAxisProps } from "./axes/OrdinalAxis";
16
+ export { EmptyAxis, type Props as EmptyAxisProps } from "./axes/EmptyAxis";
17
+ export { AxisLocation, AxisType, defaultAxesFont, defaultAxisTickStyle, defaultLineStyle, type AxesFont, type AxisTickStyle, type BaseAxis, type ContinuousNumericAxis, type OrdinalStringAxis, type SeriesLineStyle, type SeriesStyle, } from "./axes/axes";
18
+ export { AxisInterval } from "./axes/AxisInterval";
19
+ export { BaseAxisRange } from "./axes/BaseAxisRange";
20
+ export { ContinuousAxisRange } from "./axes/ContinuousAxisRange";
21
+ export { OrdinalAxisRange } from "./axes/OrdinalAxisRange";
22
+ export type { AutoScale } from "./axes/autoScale";
23
+ export { ScatterPlot, type Props as ScatterPlotProps } from "./plots/ScatterPlot";
24
+ export { RasterPlot, type Props as RasterPlotProps } from "./plots/RasterPlot";
25
+ export { PoincarePlot, type Props as PoincarePlotProps, type PoincarePlotZoomState } from "./plots/PoincarePlot";
26
+ export { BarPlot, type Props as BarPlotProps, type BarPlotZoomState, type BarChartElementId } from "./plots/BarPlot";
27
+ export { OutlierPlot, type Props as OutlierPlotProps, type OutlierBandTooltipMetadata } from "./plots/OutlierPlot";
28
+ export { assignAxes, type AxesAssignment, type Series } from "./plots/plot";
29
+ export { NoCurveFactory, BAR_CHART_TOOLTIP_PROVIDER_IDS } from "./plots/constants";
30
+ export { DEFAULT_LINE_COLOR_STEPS, DEFAULT_LINE_END_COLOR, DEFAULT_LINE_START_COLOR, lineColorScale, } from "./plots/colorizedLine";
31
+ export { TimeWindowBehavior } from "./subscriptions/viewDrivers";
32
+ export { defaultBarSeriesStyle, defaultMeanValueLineStyle, defaultMinMaxBarStyle, defaultValueLineStyle, defaultWindowedMeanValueLineStyle, defaultWindowedMinMaxBarStyle, type BarSeriesStyle, type BarStyle, type LineStyle, } from "./styling/barPlotStyle";
33
+ export { Tooltip, type Props as TooltipProps } from "./tooltips/Tooltip";
34
+ export { TooltipContent, type TooltipCapture, type TooltipContentProps } from "./tooltips/TooltipContent";
35
+ export { useTooltipStyle } from "./tooltips/useTooltipStyle";
36
+ export { ScatterPlotTooltipContent, type Props as ScatterPlotTooltipContentProps } from "./tooltips/ScatterPlotTooltipContent";
37
+ export { RasterPlotTooltipContent, type Props as RasterPlotTooltipContentProps } from "./tooltips/RasterPlotTooltipContent";
38
+ export { PoincarePlotTooltipContent, type Props as PoincarePlotTooltipContentProps } from "./tooltips/PoincarePlotTooltipContent";
39
+ export { BarPlotTooltipContent, type Props as BarPlotTooltipContentProps } from "./tooltips/BarPlotTooltipContent";
40
+ export { OutlierPlotTooltipContent, type Props as OutlierPlotTooltipContentProps } from "./tooltips/OutlierPlotTooltipContent";
41
+ export { DefaultOutlierTooltipContent } from "./tooltips/DefaultOutlierTooltipContent";
42
+ export { useOutlierTooltip, type OutlierTooltipContentFormatters, type OutlierTooltipContextValue, type OutlierTooltipData, } from "./tooltips/useOutlierTooltip";
43
+ export type { TooltipData, TooltipContentProvider } from "./hooks/useTooltip";
44
+ export { defaultTooltipStyle, type RasterTooltipMetadata, type ScatterTooltipMetadata, type ScatterTooltipPoints, type TooltipStyle, } from "./tooltips/tooltipUtils";
45
+ export { Tracker, type Props as TrackerProps, type TrackerAxisInfo, type TrackerAxisUpdate } from "./trackers/Tracker";
46
+ export { defaultTrackerLabelFont, defaultTrackerStyle, TrackerLabelLocation, type TrackerLabelFont, type TrackerStyle, } from "./trackers/trackerUtils";
47
+ export { Legend, type Props as LegendProps, type LegendStyle } from "./legends/Legend";
48
+ export { defaultLegendStyle, LegendLocation } from "./legends/constants";
49
+ export { BaseStreamingDataSource, type DataGenerator, type StreamingDataSource, } from "./datasources/StreamingDataSource";
50
+ export { TimeSeriesDataSource, type TimeGroupFor, type TimeSeriesDataSourceOptions, } from "./datasources/timeSeriesDataSource";
51
+ export { IteratesDataSource, type IteratesDataSourceOptions } from "./datasources/iteratesDataSource";
52
+ export { OrdinalDataSource, type OrdinalDataSourceOptions, type WindowedOrdinalStats, } from "./datasources/ordinalDataSource";
53
+ export { OutlierDataSource, type OutlierDataSourceOptions } from "./datasources/outlierDataSource";
54
+ export { type ChartData } from "./observables/ChartData";
55
+ export { DEFAULT_COMPACTING_SIZE, emptySeries, emptySeriesFor, seriesFrom, type BaseSeries, } from "./series/baseSeries";
56
+ export { datumOf, timeSeriesFromTuples, type Datum, type TimeSeries } from "./series/timeSeries";
57
+ export { initialTimeSeriesChartData, type TimeSeriesChartData, } from "./series/timeSeriesChartData";
58
+ export { iterateDatumOf, iterateSeriesFromTuples, type IterateDatum, type IterateSeries, } from "./series/iterateSeries";
59
+ export { iteratesObservable, type IterateChartData } from "./observables/iterates";
60
+ export { calculateOrdinalStats, initialOrdinalChartData, ordinalDatumOf, ordinateSeriesFromTuples, type OrdinalDatum, type OrdinalSeries, } from "./series/ordinalSeries";
61
+ export { ordinalsObservable, type OrdinalChartData, type OrdinalDatumExtremum, type OrdinalStats, type OrdinalValueStats, } from "./observables/ordinals";
62
+ export { outlierBoundsFor, outlierDatumFor, outlierSeriesFor, outlierSeriesFrom, type OutlierBounds, type OutlierDatum, type OutlierSeries, } from "./series/outlierSeries";
63
+ export type { OutlierChartData } from "./observables/outliers";
64
+ export { isSafeRegex, literalFilter, regexFilter } from "./filters/regexFilter";
65
+ export { formatChange, formatNumber, formatTime, formatTimeChange, formatValue, formatValueChange, noop, } from "./utils";
66
+ //# sourceMappingURL=index.d.ts.map