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,53 +1,108 @@
1
- import { addContinuousNumericXAxis, addContinuousNumericYAxis, AxisLocation, defaultAxesFont, labelIdFor } from "./axes";
1
+ import { AxisLocation, defaultAxesFont, addContinuousNumericXAxis, addContinuousNumericYAxis, removeContinuousXAxis, removeContinuousYAxis } from "./axes";
2
2
  import { useChart } from "../hooks/useChart";
3
3
  import { useEffect, useRef } from "react";
4
4
  import * as d3 from "d3";
5
5
  import { usePlotDimensions } from "../hooks/usePlotDimensions";
6
6
  import { AxisInterval } from "./AxisInterval";
7
7
  import { ContinuousAxisRange } from "./ContinuousAxisRange";
8
+ import { clampedDomain, sameAutoScale, warnOnce } from "./autoScale";
8
9
  /**
9
- * Represents a continuous numeric axis (x or y) that can be place on the top, bottom,
10
+ * Represents a continuous numeric axis (x or y) that can be placed on the top, bottom,
10
11
  * left, or right of the chart. The domain (axis range) can be managed by this axis
11
- * component or managed externally (i.e. deferred). This component returns null, meaning
12
- * React won't render it because we are updating the SVG element and don't want React
13
- * involved, except to call this function if the props change.
12
+ * component or managed externally (i.e. deferred). This component returns null, meaning
13
+ * React won't render it because we are drawing directly onto the chart's shared canvas and
14
+ * don't want React involved, except to call this function if the props change.
14
15
  * @param props The properties for the axis
16
+ * @return `null` (the axis draws onto the chart's canvas)
15
17
  */
16
18
  export function ContinuousAxis(props) {
17
- const { chartId, container, axes, color } = useChart();
18
- const { xAxesState, yAxesState, addXAxis, addYAxis, axisRangeFor, setAxisIntervalFor, setAxisRangeFor, addAxesRangesUpdateHandler, } = axes;
19
+ const { chartId, canvasContext, axes, color } = useChart();
20
+ const { xAxesState, yAxesState, addXAxis, addYAxis, axisRangeFor, setAxisIntervalFor, updateAxisRanges, addAxesRangesUpdateHandler, removeAxesRangesUpdateHandler, } = axes;
19
21
  const { plotDimensions, margin } = usePlotDimensions();
20
- const { axisId, location, scale = d3.scaleLinear(), domain, updateAxisBasedOnDomainValues = true, label, } = props;
22
+ const { axisId, location, scale = d3.scaleLinear(), domain, updateAxisBasedOnDomainValues = true, label, autoScale = false, autoScaleMin = -Infinity, autoScaleMax = Infinity, autoScalePadding = 0.05, autoScaledDomain, onAutoScale, } = props;
23
+ // the latest callback for the auto-scaling axis' domain changes (the range-update handler that
24
+ // reports them is registered once, when the axis is created)
25
+ const onAutoScaleRef = useRef(onAutoScale);
26
+ useEffect(() => {
27
+ onAutoScaleRef.current = onAutoScale;
28
+ }, [onAutoScale]);
21
29
  const axisRef = useRef(undefined);
22
30
  const rangeUpdateHandlerIdRef = useRef(undefined);
31
+ // the axisId this axis was actually created under, so the main effect below can tell "axisId
32
+ // changed since I last ran" apart from "first run" -- see its use for why this matters
33
+ const createdAxisIdRef = useRef(undefined);
23
34
  const axisIdRef = useRef(axisId);
24
35
  const marginRef = useRef(margin);
36
+ // holds on the domain from the original props so that we can determine whether the props changed
37
+ // or whether the axis changes from resizing, zoom, scrolling, etc
25
38
  const domainRef = useRef(AxisInterval.as(domain));
39
+ const domainPropRef = useRef(domain);
26
40
  useEffect(() => {
27
41
  axisIdRef.current = axisId;
28
42
  marginRef.current = margin;
29
43
  }, [axisId, plotDimensions, margin]);
30
44
  useEffect(() => {
31
- if (container) {
32
- const svg = d3.select(container);
33
- const font = Object.assign(Object.assign(Object.assign({}, defaultAxesFont()), { color }), props.font);
45
+ var _a;
46
+ if (canvasContext) {
47
+ // a changed axisId prop means axisRef.current (and its range-update handler) were
48
+ // created under the OLD id -- the separate unmount-cleanup effect below (also keyed
49
+ // on axisId) already unregistered the OLD id's canvas draw handle by the time this
50
+ // runs (React fires that cleanup, closing over the previous axisId, before this
51
+ // effect re-runs). Without resetting axisRef.current here too, the `else` branch
52
+ // below would run instead of re-creating the axis, silently leaving it undrawn
53
+ // under the new id forever -- this mount-once guard otherwise never resets on its
54
+ // own.
55
+ if (createdAxisIdRef.current !== undefined && createdAxisIdRef.current !== axisId) {
56
+ if (rangeUpdateHandlerIdRef.current) {
57
+ removeAxesRangesUpdateHandler(rangeUpdateHandlerIdRef.current);
58
+ rangeUpdateHandlerIdRef.current = undefined;
59
+ }
60
+ axisRef.current = undefined;
61
+ }
62
+ const font = { ...defaultAxesFont(), color, ...props.font };
63
+ // the auto-scaling settings, which the plot applies (y-axes only: an x-axis' domain
64
+ // follows time, and its zooming and panning)
65
+ const isYAxis = location === AxisLocation.Left || location === AxisLocation.Right;
66
+ if (autoScale && !isYAxis) {
67
+ warnOnce(`Auto-scaling is for y-axes only, so the "autoScale" setting of x-axis "${axisId}" is ignored`);
68
+ }
69
+ const propDomain = AxisInterval.as(domain).asTuple();
70
+ const settings = autoScale && isYAxis ?
71
+ {
72
+ domain: clampedDomain(propDomain, autoScaleMin, autoScaleMax),
73
+ min: autoScaleMin,
74
+ max: autoScaleMax,
75
+ padding: autoScalePadding
76
+ } :
77
+ undefined;
78
+ if (settings !== undefined && settings.domain[0] === settings.domain[1] && propDomain[0] !== propDomain[1]) {
79
+ warnOnce(`The domain of y-axis "${axisId}" lies outside its auto-scaling limits, so it collapses onto a limit`);
80
+ }
81
+ // the settings the axis had (none, when it's about to be created)
82
+ const previous = (_a = axisRef.current) === null || _a === void 0 ? void 0 : _a.autoScale;
34
83
  const handleRangeUpdates = (updates, plotDim) => {
84
+ var _a;
35
85
  if (rangeUpdateHandlerIdRef.current && axisRef.current) {
36
86
  const range = updates.get(axisId);
37
87
  if (range) {
38
88
  axisRef.current.update(range.current, plotDim, marginRef.current);
89
+ // an auto-scaling axis' domain changes (growth, or a restore) come
90
+ // through here, so report them
91
+ if (axisRef.current.autoScale !== undefined) {
92
+ (_a = onAutoScaleRef.current) === null || _a === void 0 ? void 0 : _a.call(onAutoScaleRef, range.current.asTuple());
93
+ }
39
94
  }
40
95
  }
41
96
  };
42
97
  if (axisRef.current === undefined) {
98
+ createdAxisIdRef.current = axisId;
43
99
  switch (location) {
44
100
  case AxisLocation.Bottom:
45
101
  case AxisLocation.Top: {
46
- axisRef.current = addContinuousNumericXAxis(chartId, axisId, svg, plotDimensions, location, scale, domain, font, margin, label, setAxisIntervalFor);
102
+ axisRef.current = addContinuousNumericXAxis(canvasContext, axisId, plotDimensions, location, scale, domain, font, margin, label, setAxisIntervalFor);
47
103
  // add the x-axis to the chart context
48
104
  const [start, end] = AxisInterval.as(domain).asTuple();
49
105
  addXAxis(axisRef.current, axisId, ContinuousAxisRange.from(start, end));
50
- // addXAxis(axisRef.current, axisId, AxisInterval.as(domain))
51
106
  // add an update handler
52
107
  rangeUpdateHandlerIdRef.current = `x-axis-${chartId}-${axisId}-${location.valueOf()}`;
53
108
  addAxesRangesUpdateHandler(rangeUpdateHandlerIdRef.current, handleRangeUpdates);
@@ -55,11 +110,10 @@ export function ContinuousAxis(props) {
55
110
  }
56
111
  case AxisLocation.Left:
57
112
  case AxisLocation.Right: {
58
- axisRef.current = addContinuousNumericYAxis(chartId, axisId, svg, plotDimensions, location, scale, domain, font, margin, label, setAxisIntervalFor);
113
+ axisRef.current = addContinuousNumericYAxis(canvasContext, axisId, plotDimensions, location, scale, domain, font, margin, label, setAxisIntervalFor);
59
114
  // add the y-axis to the chart context
60
115
  const [start, end] = AxisInterval.as(domain).asTuple();
61
116
  addYAxis(axisRef.current, axisId, ContinuousAxisRange.from(start, end));
62
- // addYAxis(axisRef.current, axisId, AxisInterval.as(domain))
63
117
  // add an update handler
64
118
  rangeUpdateHandlerIdRef.current = `y-axis-${chartId}-${axisId}-${location.valueOf()}`;
65
119
  addAxesRangesUpdateHandler(rangeUpdateHandlerIdRef.current, handleRangeUpdates);
@@ -67,29 +121,108 @@ export function ContinuousAxis(props) {
67
121
  }
68
122
  }
69
123
  else {
70
- const axisRange = axisRangeFor(axisId);
71
- const domain = axisRange
124
+ // apply the new auto-scaling settings before any domain update below, so that,
125
+ // for example, a `domain` change that comes with turning auto-scaling off isn't
126
+ // reported (through `onAutoScale`) as an auto-scaled domain
127
+ axisRef.current.autoScale = settings;
128
+ // calculate the current domain for the axis based on the current interval (range)
129
+ const currentDomain = axisRangeFor(axisId)
72
130
  .map(range => range.current)
73
131
  .getOrElse(AxisInterval.empty());
74
- if (domain.isNotEmpty()) {
75
- axisRef.current.update(domain, plotDimensions, margin);
132
+ // convert the domain from the props to an axis interval for easier comparison
133
+ const propDomain = AxisInterval.as(domain);
134
+ // select whether to update based on whether we have specified that we update the axis
135
+ // range when the domain from the props changes. If the conditions of the first if
136
+ // statement are met, then we do a full update of the axis (we update the current, original
137
+ // range and make the callback that the range has changed with the updated range map)
138
+ if (
139
+ // update axis when the domain from the props has changed
140
+ (updateAxisBasedOnDomainValues && !domainRef.current.equals(propDomain)) ||
141
+ // or when the axis range has actually changed, but we don't update from props
142
+ (!updateAxisBasedOnDomainValues && domainPropRef.current !== domain)) {
143
+ domainRef.current = propDomain;
144
+ domainPropRef.current = domain;
145
+ // preserve any existing `.original` tracking (e.g. from an in-progress
146
+ // zoom) rather than collapsing it to match this new current. A domain-prop
147
+ // change here reflects the chart's OWN state being round-tripped back in
148
+ // (e.g. a zoom/auto-scroll notifying `onUpdateAxesBounds`, which a caller
149
+ // wrote into a store that feeds this same `domain` prop) at least as often
150
+ // as it reflects a genuine external reset -- and there's no way to tell
151
+ // those apart from here. Zoom math is now incremental (see
152
+ // `ContinuousAxisRange.scaledRange`), so preserving `.original` isn't
153
+ // required for zoom correctness anymore, but it's still the more accurate
154
+ // value to carry forward on an ordinary round-trip. A genuine external reset
155
+ // (e.g. the Reset button) already restores the whole axis explicitly
156
+ // elsewhere, so this doesn't need to special-case it too.
157
+ const updatedRange = axisRangeFor(axisId)
158
+ .map(range => range.update(propDomain.start, propDomain.end))
159
+ .getOrElse(ContinuousAxisRange.from(propDomain.start, propDomain.end));
160
+ updateAxisRanges(new Map([[axisId, updatedRange]]));
76
161
  }
77
- if ((updateAxisBasedOnDomainValues && (domainRef.current.start !== domain.start || domainRef.current.end !== domain.end)) ||
78
- (!updateAxisBasedOnDomainValues && domainRef.current !== domain)) {
79
- domainRef.current = domain;
80
- axisRange.ifPresent(range => setAxisRangeFor(axisId, range.updateOriginal(domain.start, domain.end)));
162
+ // otherwise, if the domain exists, update the current axis
163
+ else if (currentDomain.isNotEmpty()) {
164
+ axisRef.current.update(currentDomain, plotDimensions, margin);
81
165
  }
82
- svg.select(`#${labelIdFor(chartId, location)}`).attr('fill', color);
166
+ // keep the label/tick color in sync with the chart's color (e.g. on theme change),
167
+ // without recreating the axis or touching its domain
168
+ axisRef.current.updateFont(font);
169
+ }
170
+ // when the settings change, the axis (re)starts: from the kept auto-scaled domain
171
+ // (if any) when auto-scaling starts, otherwise from its start; and from its own
172
+ // domain when auto-scaling stops
173
+ axisRef.current.autoScale = settings;
174
+ if (!sameAutoScale(previous, settings)) {
175
+ const [start, end] = settings === undefined ?
176
+ propDomain :
177
+ previous === undefined && autoScaledDomain !== undefined ?
178
+ clampedDomain(AxisInterval.as(autoScaledDomain).asTuple(), settings.min, settings.max) :
179
+ settings.domain;
180
+ updateAxisRanges(new Map([[axisId, axisRangeFor(axisId)
181
+ .map(range => range.update(start, end))
182
+ .getOrElse(ContinuousAxisRange.from(start, end))
183
+ ]]));
83
184
  }
84
185
  }
85
186
  }, [
86
187
  chartId, axisId, label, location, props.font, xAxesState, yAxesState, addXAxis, addYAxis, domain,
87
- scale, container, margin, plotDimensions, setAxisIntervalFor,
188
+ scale, canvasContext, margin, plotDimensions, setAxisIntervalFor,
88
189
  axisRangeFor,
89
190
  addAxesRangesUpdateHandler,
90
- setAxisRangeFor,
91
- color, updateAxisBasedOnDomainValues
191
+ removeAxesRangesUpdateHandler,
192
+ updateAxisRanges,
193
+ color, updateAxisBasedOnDomainValues,
194
+ autoScale, autoScaleMin, autoScaleMax, autoScalePadding, autoScaledDomain
92
195
  ]);
196
+ // unregister the axes-provider range-update handler on a genuine unmount -- the main effect
197
+ // above only removes it on an axisId *change* (line ~130), never on unmount itself, so
198
+ // without this a component that unmounts and later remounts with the same chartId/axisId/
199
+ // location (hence the same computed handlerId) would try to re-register under an ID that's
200
+ // still occupied and throw ("Handler with ID already exists..."). Mirrors OrdinalAxis.tsx's
201
+ // identical cleanup effect.
202
+ useEffect(() => {
203
+ return () => {
204
+ if (rangeUpdateHandlerIdRef.current) {
205
+ removeAxesRangesUpdateHandler(rangeUpdateHandlerIdRef.current);
206
+ }
207
+ };
208
+ }, [removeAxesRangesUpdateHandler]);
209
+ // unregister the axis' draw function when the axis unmounts (e.g. the chart is torn down, or
210
+ // this axis is swapped out for a different one)
211
+ useEffect(() => {
212
+ return () => {
213
+ if (canvasContext) {
214
+ switch (location) {
215
+ case AxisLocation.Bottom:
216
+ case AxisLocation.Top:
217
+ removeContinuousXAxis(canvasContext, axisId);
218
+ break;
219
+ case AxisLocation.Left:
220
+ case AxisLocation.Right:
221
+ removeContinuousYAxis(canvasContext, axisId);
222
+ }
223
+ }
224
+ };
225
+ }, [canvasContext, axisId, location]);
93
226
  return null;
94
227
  }
95
228
  //# sourceMappingURL=ContinuousAxis.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContinuousAxis.js","sourceRoot":"","sources":["../../../../src/app/charts/axes/ContinuousAxis.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ContinuousAxis.js","sourceRoot":"","sources":["../../../../src/app/charts/axes/ContinuousAxis.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEH,YAAY,EACZ,eAAe,EAEf,yBAAyB,EACzB,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,EAExB,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAC,SAAS,EAAE,MAAM,EAAC,MAAM,OAAO,CAAC;AACxC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAGzB,OAAO,EAAC,iBAAiB,EAAC,MAAM,4BAA4B,CAAC;AAE7D,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAC,mBAAmB,EAAC,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAiB,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAC,MAAM,aAAa,CAAC;AA0EnF;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,KAAY;IACvC,MAAM,EACF,OAAO,EACP,aAAa,EACb,IAAI,EACJ,KAAK,EACR,GAAG,QAAQ,EAA2E,CAAA;IAEvF,MAAM,EACF,UAAU,EACV,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,0BAA0B,EAC1B,6BAA6B,GAChC,GAAG,IAAI,CAAA;IAER,MAAM,EACF,cAAc,EACd,MAAM,EACT,GAAG,iBAAiB,EAAE,CAAA;IAEvB,MAAM,EACF,MAAM,EACN,QAAQ,EACR,KAAK,GAAG,EAAE,CAAC,WAAW,EAAE,EACxB,MAAM,EACN,6BAA6B,GAAG,IAAI,EACpC,KAAK,EACL,SAAS,GAAG,KAAK,EACjB,YAAY,GAAG,CAAC,QAAQ,EACxB,YAAY,GAAG,QAAQ,EACvB,gBAAgB,GAAG,IAAI,EACvB,gBAAgB,EAChB,WAAW,GACd,GAAG,KAAK,CAAA;IAET,+FAA+F;IAC/F,6DAA6D;IAC7D,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC,CAAA;IAC1C,SAAS,CACL,GAAG,EAAE;QACD,cAAc,CAAC,OAAO,GAAG,WAAW,CAAA;IACxC,CAAC,EACD,CAAC,WAAW,CAAC,CAChB,CAAA;IAED,MAAM,OAAO,GAAG,MAAM,CAAwB,SAAS,CAAC,CAAA;IACxD,MAAM,uBAAuB,GAAG,MAAM,CAAS,SAAS,CAAC,CAAA;IACzD,6FAA6F;IAC7F,uFAAuF;IACvF,MAAM,gBAAgB,GAAG,MAAM,CAAqB,SAAS,CAAC,CAAA;IAE9D,MAAM,SAAS,GAAG,MAAM,CAAS,MAAM,CAAC,CAAA;IACxC,MAAM,SAAS,GAAG,MAAM,CAAS,MAAM,CAAC,CAAA;IACxC,iGAAiG;IACjG,kEAAkE;IAClE,MAAM,SAAS,GAAG,MAAM,CAAe,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IAC/D,MAAM,aAAa,GAAG,MAAM,CAA6B,MAAM,CAAC,CAAA;IAChE,SAAS,CACL,GAAG,EAAE;QACD,SAAS,CAAC,OAAO,GAAG,MAAM,CAAA;QAC1B,SAAS,CAAC,OAAO,GAAG,MAAM,CAAA;IAC9B,CAAC,EACD,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,CAAC,CACnC,CAAA;IAED,SAAS,CACL,GAAG,EAAE;;QACD,IAAI,aAAa,EAAE,CAAC;YAChB,kFAAkF;YAClF,oFAAoF;YACpF,mFAAmF;YACnF,gFAAgF;YAChF,iFAAiF;YACjF,+EAA+E;YAC/E,kFAAkF;YAClF,OAAO;YACP,IAAI,gBAAgB,CAAC,OAAO,KAAK,SAAS,IAAI,gBAAgB,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;gBAChF,IAAI,uBAAuB,CAAC,OAAO,EAAE,CAAC;oBAClC,6BAA6B,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAA;oBAC9D,uBAAuB,CAAC,OAAO,GAAG,SAAS,CAAA;gBAC/C,CAAC;gBACD,OAAO,CAAC,OAAO,GAAG,SAAS,CAAA;YAC/B,CAAC;YAED,MAAM,IAAI,GAAa,EAAC,GAAG,eAAe,EAAE,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,IAAI,EAAC,CAAA;YAEnE,oFAAoF;YACpF,6CAA6C;YAC7C,MAAM,OAAO,GAAG,QAAQ,KAAK,YAAY,CAAC,IAAI,IAAI,QAAQ,KAAK,YAAY,CAAC,KAAK,CAAA;YACjF,IAAI,SAAS,IAAI,CAAC,OAAO,EAAE,CAAC;gBACxB,QAAQ,CAAC,0EAA0E,MAAM,cAAc,CAAC,CAAA;YAC5G,CAAC;YACD,MAAM,UAAU,GAAG,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAA;YACpD,MAAM,QAAQ,GAA0B,SAAS,IAAI,OAAO,CAAC,CAAC;gBAC1D;oBACI,MAAM,EAAE,aAAa,CAAC,UAAU,EAAE,YAAY,EAAE,YAAY,CAAC;oBAC7D,GAAG,EAAE,YAAY;oBACjB,GAAG,EAAE,YAAY;oBACjB,OAAO,EAAE,gBAAgB;iBAC5B,CAAC,CAAC;gBACH,SAAS,CAAA;YACb,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzG,QAAQ,CAAC,yBAAyB,MAAM,sEAAsE,CAAC,CAAA;YACnH,CAAC;YAED,kEAAkE;YAClE,MAAM,QAAQ,GAAG,MAAA,OAAO,CAAC,OAAO,0CAAE,SAAS,CAAA;YAE3C,MAAM,kBAAkB,GAAG,CAAC,OAAyC,EAAE,OAAmB,EAAQ,EAAE;;gBAChG,IAAI,uBAAuB,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;oBACrD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;oBACjC,IAAI,KAAK,EAAE,CAAC;wBACR,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;wBACjE,mEAAmE;wBACnE,+BAA+B;wBAC/B,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;4BAC1C,MAAA,cAAc,CAAC,OAAO,+DAAG,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;wBACrD,CAAC;oBACL,CAAC;gBACL,CAAC;YACL,CAAC,CAAA;YAED,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBAChC,gBAAgB,CAAC,OAAO,GAAG,MAAM,CAAA;gBACjC,QAAQ,QAAQ,EAAE,CAAC;oBACf,KAAK,YAAY,CAAC,MAAM,CAAC;oBACzB,KAAK,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;wBACpB,OAAO,CAAC,OAAO,GAAG,yBAAyB,CACvC,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAC9D,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,CAC1C,CAAA;wBACD,sCAAsC;wBACtC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAA;wBACtD,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,mBAAmB,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAA;wBAEvE,wBAAwB;wBACxB,uBAAuB,CAAC,OAAO,GAAG,UAAU,OAAO,IAAI,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAA;wBACrF,0BAA0B,CAAC,uBAAuB,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAA;wBAE/E,MAAK;oBACT,CAAC;oBAED,KAAK,YAAY,CAAC,IAAI,CAAC;oBACvB,KAAK,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;wBACtB,OAAO,CAAC,OAAO,GAAG,yBAAyB,CACvC,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAC9D,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,CAC1C,CAAA;wBACD,sCAAsC;wBACtC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAA;wBACtD,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,mBAAmB,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAA;wBAEvE,wBAAwB;wBACxB,uBAAuB,CAAC,OAAO,GAAG,UAAU,OAAO,IAAI,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAA;wBACrF,0BAA0B,CAAC,uBAAuB,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAA;oBACnF,CAAC;gBACL,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,+EAA+E;gBAC/E,gFAAgF;gBAChF,4DAA4D;gBAC5D,OAAO,CAAC,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAA;gBAEpC,kFAAkF;gBAClF,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC;qBACrC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;qBAC3B,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAA;gBAEpC,8EAA8E;gBAC9E,MAAM,UAAU,GAAG,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;gBAE1C,sFAAsF;gBACtF,kFAAkF;gBAClF,2FAA2F;gBAC3F,qFAAqF;gBACrF;gBACI,yDAAyD;gBACzD,CAAC,6BAA6B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;oBACxE,8EAA8E;oBAC9E,CAAC,CAAC,6BAA6B,IAAI,aAAa,CAAC,OAAO,KAAK,MAAM,CAAC,EACtE,CAAC;oBACC,SAAS,CAAC,OAAO,GAAG,UAAU,CAAA;oBAC9B,aAAa,CAAC,OAAO,GAAG,MAAM,CAAA;oBAC9B,uEAAuE;oBACvE,2EAA2E;oBAC3E,yEAAyE;oBACzE,0EAA0E;oBAC1E,2EAA2E;oBAC3E,wEAAwE;oBACxE,2DAA2D;oBAC3D,sEAAsE;oBACtE,0EAA0E;oBAC1E,6EAA6E;oBAC7E,qEAAqE;oBACrE,0DAA0D;oBAC1D,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC;yBACpC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,CAAwB,CAAC;yBACnF,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;oBAC1E,gBAAgB,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;gBACvD,CAAC;gBACD,2DAA2D;qBACtD,IAAI,aAAa,CAAC,UAAU,EAAE,EAAE,CAAC;oBAClC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,cAAc,EAAE,MAAM,CAAC,CAAA;gBACjE,CAAC;gBAED,mFAAmF;gBACnF,qDAAqD;gBACrD,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;YACpC,CAAC;YAED,kFAAkF;YAClF,gFAAgF;YAChF,iCAAiC;YACjC,OAAO,CAAC,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAA;YACpC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;gBACrC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC;oBACzC,UAAU,CAAC,CAAC;oBACZ,QAAQ,KAAK,SAAS,IAAI,gBAAgB,KAAK,SAAS,CAAC,CAAC;wBACtD,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;wBACxF,QAAQ,CAAC,MAAM,CAAA;gBACvB,gBAAgB,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC;6BAClD,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAwB,CAAC;6BAC7D,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;qBACnD,CAAC,CAAC,CAAC,CAAA;YACR,CAAC;QACL,CAAC;IACL,CAAC,EACD;QACI,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM;QAChG,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,kBAAkB;QAChE,YAAY;QACZ,0BAA0B;QAC1B,6BAA6B;QAC7B,gBAAgB;QAChB,KAAK,EAAE,6BAA6B;QACpC,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB;KAC5E,CACJ,CAAA;IAED,4FAA4F;IAC5F,uFAAuF;IACvF,0FAA0F;IAC1F,2FAA2F;IAC3F,4FAA4F;IAC5F,4BAA4B;IAC5B,SAAS,CACL,GAAG,EAAE;QACD,OAAO,GAAG,EAAE;YACR,IAAI,uBAAuB,CAAC,OAAO,EAAE,CAAC;gBAClC,6BAA6B,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAA;YAClE,CAAC;QACL,CAAC,CAAA;IACL,CAAC,EACD,CAAC,6BAA6B,CAAC,CAClC,CAAA;IAED,6FAA6F;IAC7F,gDAAgD;IAChD,SAAS,CACL,GAAG,EAAE;QACD,OAAO,GAAG,EAAE;YACR,IAAI,aAAa,EAAE,CAAC;gBAChB,QAAQ,QAAQ,EAAE,CAAC;oBACf,KAAK,YAAY,CAAC,MAAM,CAAC;oBACzB,KAAK,YAAY,CAAC,GAAG;wBACjB,qBAAqB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;wBAC5C,MAAK;oBACT,KAAK,YAAY,CAAC,IAAI,CAAC;oBACvB,KAAK,YAAY,CAAC,KAAK;wBACnB,qBAAqB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;gBACpD,CAAC;YACL,CAAC;QACL,CAAC,CAAA;IACL,CAAC,EACD,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,CACpC,CAAA;IAED,OAAO,IAAI,CAAA;AACf,CAAC"}
@@ -4,6 +4,13 @@ import { BaseAxisRange } from "./BaseAxisRange";
4
4
  * Create an instance using the {@link ContinuousAxisRange.from} factory method.
5
5
  */
6
6
  export declare class ContinuousAxisRange extends BaseAxisRange {
7
+ /**
8
+ * Use {@link ContinuousAxisRange.from} to create an instance
9
+ * @param start The start of the axis-range
10
+ * @param end The end of the axis-range
11
+ * @param [originalStart=start] The original start of the axis-range
12
+ * @param [originalEnd=end] The original end of the axis-range
13
+ */
7
14
  private constructor();
8
15
  /**
9
16
  * Factory function for creating a new continuous-axis range instance.
@@ -17,29 +24,40 @@ export declare class ContinuousAxisRange extends BaseAxisRange {
17
24
  */
18
25
  static from(start: number, end: number, originalStart?: number, originalEnd?: number): ContinuousAxisRange;
19
26
  /**
20
- * Scales the axis-range by the specified scale factor from the specified value. The equations
21
- * are written so that the zooming (scaling) occurs at the specified value and expands/contracts equally
22
- * from that value.
23
- * @param factor The scale factor
27
+ * Scales the axis-range by the specified *incremental* scale factor (relative to `.current`,
28
+ * not `.original` -- see {@link BaseAxisRange.scaledRange}) from the specified value. The
29
+ * equations are written so that the zooming (scaling) occurs at the specified value and
30
+ * expands/contracts equally from that value.
31
+ * @param factor The incremental scale factor
24
32
  * @param value The value from which to scale the interval
25
33
  * @return A new continuous-axis range with updated values
26
34
  */
27
35
  scale(factor: number, value: number): ContinuousAxisRange;
28
36
  /**
29
- * Scales the axis-range by the specified scale factor from the specified value, while keeping
30
- * the range within the constraints (start, end). The equations are written so that the zooming
31
- * (scaling) occurs at the specified value, and expands/contracts equally from that value.
32
- * @param factor The scale factor
37
+ * Scales the axis-range by the specified *incremental* scale factor (relative to `.current`,
38
+ * not `.original` -- see {@link BaseAxisRange.scaledRange}) from the specified value, while
39
+ * keeping the range within the constraints (start, end). The equations are written so that the
40
+ * zooming (scaling) occurs at the specified value, and expands/contracts equally from that value.
41
+ *
42
+ * Clamps the scaled result to stay *inside* `constraint` (shrinks toward it, never past it) --
43
+ * `constraint` is a hard viewport edge (e.g. the data domain) that the visible range must not
44
+ * scroll or zoom beyond. This is the opposite direction from
45
+ * {@link OrdinalAxisRange.constrainedScale}, which *widens* its result to guarantee coverage
46
+ * of `constraint` instead -- see that method's doc comment for why an ordinal axis needs the
47
+ * opposite behavior. Do not "fix" this difference without reading both.
48
+ * @param factor The incremental scale factor
33
49
  * @param value The value from which to scale the interval
34
50
  * @param constraint The minimum and maximum values that range bounds can be
35
51
  * @return A new continuous-axis range with updated values
36
52
  */
37
53
  constrainedScale(factor: number, value: number, constraint: [min: number, max: number]): BaseAxisRange;
38
54
  /**
39
- * Translates the axis-range by the specified amount
55
+ * Translates the axis-range by the specified amount, unless that would take it outside the
56
+ * constraint interval (when both ends of the constraint are infinite, there's no constraint)
40
57
  * @param amount The amount by which to translate the axis-range
41
58
  * @param [constraint=[-Infinity, Infinity]] Optional constraint interval in which the axis range must be within
42
- * @return An updated {@link ContinuousAxisRange} that has been translated by the specified amount
59
+ * @return An updated {@link ContinuousAxisRange} that has been translated by the specified amount (or an
60
+ * unchanged copy, when the translation would leave the constraint interval)
43
61
  */
44
62
  translate(amount: number, constraint?: [start: number, end: number]): ContinuousAxisRange;
45
63
  /**
@@ -57,3 +75,4 @@ export declare class ContinuousAxisRange extends BaseAxisRange {
57
75
  */
58
76
  updateOriginal(start: number, end: number): BaseAxisRange;
59
77
  }
78
+ //# sourceMappingURL=ContinuousAxisRange.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContinuousAxisRange.d.ts","sourceRoot":"","sources":["../../../../src/app/charts/axes/ContinuousAxisRange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAE9C;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,aAAa;IAElD;;;;;;OAMG;IACH,OAAO;IAIP;;;;;;;;;OASG;IACH,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,aAAa,GAAE,MAAc,EAAE,WAAW,GAAE,MAAY,GAAG,mBAAmB;IAItH;;;;;;;;OAQG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,mBAAmB;IAKzD;;;;;;;;;;;;;;;;OAgBG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,aAAa;IAWtG;;;;;;;OAOG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,GAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAyB,GAAG,mBAAmB;IAWhH;;;;;OAKG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,mBAAmB;IAIvD;;;;;OAKG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,aAAa;CAG5D"}
@@ -4,6 +4,13 @@ import { BaseAxisRange } from "./BaseAxisRange";
4
4
  * Create an instance using the {@link ContinuousAxisRange.from} factory method.
5
5
  */
6
6
  export class ContinuousAxisRange extends BaseAxisRange {
7
+ /**
8
+ * Use {@link ContinuousAxisRange.from} to create an instance
9
+ * @param start The start of the axis-range
10
+ * @param end The end of the axis-range
11
+ * @param [originalStart=start] The original start of the axis-range
12
+ * @param [originalEnd=end] The original end of the axis-range
13
+ */
7
14
  constructor(start, end, originalStart = start, originalEnd = end) {
8
15
  super(start, end, originalStart, originalEnd);
9
16
  }
@@ -21,10 +28,11 @@ export class ContinuousAxisRange extends BaseAxisRange {
21
28
  return new ContinuousAxisRange(start, end, originalStart, originalEnd);
22
29
  }
23
30
  /**
24
- * Scales the axis-range by the specified scale factor from the specified value. The equations
25
- * are written so that the zooming (scaling) occurs at the specified value and expands/contracts equally
26
- * from that value.
27
- * @param factor The scale factor
31
+ * Scales the axis-range by the specified *incremental* scale factor (relative to `.current`,
32
+ * not `.original` -- see {@link BaseAxisRange.scaledRange}) from the specified value. The
33
+ * equations are written so that the zooming (scaling) occurs at the specified value and
34
+ * expands/contracts equally from that value.
35
+ * @param factor The incremental scale factor
28
36
  * @param value The value from which to scale the interval
29
37
  * @return A new continuous-axis range with updated values
30
38
  */
@@ -33,10 +41,18 @@ export class ContinuousAxisRange extends BaseAxisRange {
33
41
  return new ContinuousAxisRange(scaledInterval.start, scaledInterval.end, this.original.start, this.original.end);
34
42
  }
35
43
  /**
36
- * Scales the axis-range by the specified scale factor from the specified value, while keeping
37
- * the range within the constraints (start, end). The equations are written so that the zooming
38
- * (scaling) occurs at the specified value, and expands/contracts equally from that value.
39
- * @param factor The scale factor
44
+ * Scales the axis-range by the specified *incremental* scale factor (relative to `.current`,
45
+ * not `.original` -- see {@link BaseAxisRange.scaledRange}) from the specified value, while
46
+ * keeping the range within the constraints (start, end). The equations are written so that the
47
+ * zooming (scaling) occurs at the specified value, and expands/contracts equally from that value.
48
+ *
49
+ * Clamps the scaled result to stay *inside* `constraint` (shrinks toward it, never past it) --
50
+ * `constraint` is a hard viewport edge (e.g. the data domain) that the visible range must not
51
+ * scroll or zoom beyond. This is the opposite direction from
52
+ * {@link OrdinalAxisRange.constrainedScale}, which *widens* its result to guarantee coverage
53
+ * of `constraint` instead -- see that method's doc comment for why an ordinal axis needs the
54
+ * opposite behavior. Do not "fix" this difference without reading both.
55
+ * @param factor The incremental scale factor
40
56
  * @param value The value from which to scale the interval
41
57
  * @param constraint The minimum and maximum values that range bounds can be
42
58
  * @return A new continuous-axis range with updated values
@@ -47,14 +63,16 @@ export class ContinuousAxisRange extends BaseAxisRange {
47
63
  return new ContinuousAxisRange(Math.max(min, scaledInterval.start), Math.min(max, scaledInterval.end), this.original.start, this.original.end);
48
64
  }
49
65
  /**
50
- * Translates the axis-range by the specified amount
66
+ * Translates the axis-range by the specified amount, unless that would take it outside the
67
+ * constraint interval (when both ends of the constraint are infinite, there's no constraint)
51
68
  * @param amount The amount by which to translate the axis-range
52
69
  * @param [constraint=[-Infinity, Infinity]] Optional constraint interval in which the axis range must be within
53
- * @return An updated {@link ContinuousAxisRange} that has been translated by the specified amount
70
+ * @return An updated {@link ContinuousAxisRange} that has been translated by the specified amount (or an
71
+ * unchanged copy, when the translation would leave the constraint interval)
54
72
  */
55
73
  translate(amount, constraint = [-Infinity, Infinity]) {
56
74
  const [cs, ce] = constraint;
57
- // when either of the constraints is infinite, or the pan keeps the new axis range
75
+ // when both of the constraints are infinite, or the pan keeps the new axis range
58
76
  // within the origin axis range (i.e. zoomed in and the panned), then allow the pan,
59
77
  // otherwise don't update
60
78
  if ((!isFinite(cs) && !isFinite(ce)) || (this.current.start + amount >= cs && this.current.end + amount <= ce)) {
@@ -1 +1 @@
1
- {"version":3,"file":"ContinuousAxisRange.js","sourceRoot":"","sources":["../../../../src/app/charts/axes/ContinuousAxisRange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAE9C;;;GAGG;AACH,MAAM,OAAO,mBAAoB,SAAQ,aAAa;IAElD,YAAoB,KAAa,EAAE,GAAW,EAAE,gBAAwB,KAAK,EAAE,cAAsB,GAAG;QACpG,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,WAAW,CAAC,CAAA;IACjD,CAAC;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,IAAI,CAAC,KAAa,EAAE,GAAW,EAAE,gBAAwB,KAAK,EAAE,cAAsB,GAAG;QAC5F,OAAO,IAAI,mBAAmB,CAAC,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,WAAW,CAAC,CAAA;IAC1E,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,MAAc,EAAE,KAAa;QAC/B,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QACtD,OAAO,IAAI,mBAAmB,CAAC,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;IACpH,CAAC;IAED;;;;;;;;OAQG;IACH,gBAAgB,CAAC,MAAc,EAAE,KAAa,EAAE,UAAsC;QAClF,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QACtD,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,UAAU,CAAA;QAC7B,OAAO,IAAI,mBAAmB,CAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC,KAAK,CAAC,EACnC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,EACjC,IAAI,CAAC,QAAQ,CAAC,KAAK,EACnB,IAAI,CAAC,QAAQ,CAAC,GAAG,CACpB,CAAA;IACL,CAAC;IAED;;;;;OAKG;IACH,SAAS,CAAC,MAAc,EAAE,aAA2C,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC;QACtF,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,UAAU,CAAA;QAC3B,kFAAkF;QAClF,oFAAoF;QACpF,yBAAyB;QACzB,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,MAAM,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;YAC7G,OAAO,IAAI,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;QAClI,CAAC;QACD,OAAO,IAAI,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;IAChH,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAa,EAAE,GAAW;QAC7B,OAAO,IAAI,mBAAmB,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;IACtF,CAAC;IAED;;;;;OAKG;IACH,cAAc,CAAC,KAAa,EAAE,GAAW;QACrC,OAAO,IAAI,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;IACpF,CAAC;CACJ"}
1
+ {"version":3,"file":"ContinuousAxisRange.js","sourceRoot":"","sources":["../../../../src/app/charts/axes/ContinuousAxisRange.ts"],"names":[],"mappings":"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"}
@@ -4,9 +4,12 @@ export interface Props {
4
4
  location: AxisLocation;
5
5
  }
6
6
  /**
7
- * Represents an empty axis (x or y) that can be place on the top, bottom,
7
+ * Represents an empty axis (x or y) that can be placed on the top, bottom,
8
8
  * left, or right of the chart. An empty axis is just a line where the axis
9
- * would be, without any ticks or labels.
9
+ * would be, without any ticks or labels. This component returns null, meaning React won't
10
+ * render it because we are drawing directly onto the chart's shared canvas.
10
11
  * @param props The properties for the axis
12
+ * @return `null` (the axis draws onto the chart's canvas)
11
13
  */
12
14
  export declare function EmptyAxis(props: Props): null;
15
+ //# sourceMappingURL=EmptyAxis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmptyAxis.d.ts","sourceRoot":"","sources":["../../../../src/app/charts/axes/EmptyAxis.tsx"],"names":[],"mappings":"AAAA,OAAO,EACH,YAAY,EAQf,MAAM,QAAQ,CAAC;AAUhB,MAAM,WAAW,KAAK;IAElB,MAAM,EAAE,MAAM,CAAA;IAGd,QAAQ,EAAE,YAAY,CAAA;CACzB;AAQD;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAgH5C"}
@@ -1,4 +1,4 @@
1
- import { addEmptyXAxis, addEmptyYAxis, AxisLocation, } from "./axes";
1
+ import { AxisLocation, addEmptyXAxis, addEmptyYAxis, defaultAxesFont, removeContinuousXAxis, removeContinuousYAxis } from "./axes";
2
2
  import { useChart } from "../hooks/useChart";
3
3
  import { useEffect, useRef } from "react";
4
4
  import * as d3 from "d3";
@@ -10,13 +10,15 @@ const EMPTY_AXIS_SCALE = d3.scaleLinear();
10
10
  // the min and max values for the axis
11
11
  const EMPTY_AXIS_DOMAIN = [0, 1];
12
12
  /**
13
- * Represents an empty axis (x or y) that can be place on the top, bottom,
13
+ * Represents an empty axis (x or y) that can be placed on the top, bottom,
14
14
  * left, or right of the chart. An empty axis is just a line where the axis
15
- * would be, without any ticks or labels.
15
+ * would be, without any ticks or labels. This component returns null, meaning React won't
16
+ * render it because we are drawing directly onto the chart's shared canvas.
16
17
  * @param props The properties for the axis
18
+ * @return `null` (the axis draws onto the chart's canvas)
17
19
  */
18
20
  export function EmptyAxis(props) {
19
- const { chartId, container, axes, } = useChart();
21
+ const { chartId, canvasContext, axes, color, } = useChart();
20
22
  const { addXAxis, addYAxis, axisRangeFor, setAxisRangeFor, setAxisIntervalFor, } = axes;
21
23
  const { plotDimensions, margin } = usePlotDimensions();
22
24
  const { axisId, location, } = props;
@@ -28,13 +30,12 @@ export function EmptyAxis(props) {
28
30
  marginRef.current = margin;
29
31
  }, [axisId, plotDimensions, margin]);
30
32
  useEffect(() => {
31
- if (container) {
32
- const svg = d3.select(container);
33
+ if (canvasContext) {
33
34
  if (axisRef.current === undefined) {
34
35
  switch (location) {
35
36
  case AxisLocation.Bottom:
36
37
  case AxisLocation.Top: {
37
- axisRef.current = addEmptyXAxis(axisId, svg, plotDimensions, location, EMPTY_AXIS_SCALE, margin, setAxisIntervalFor, EMPTY_AXIS_DOMAIN);
38
+ axisRef.current = addEmptyXAxis(canvasContext, axisId, plotDimensions, location, EMPTY_AXIS_SCALE, margin, setAxisIntervalFor, color, EMPTY_AXIS_DOMAIN);
38
39
  // add the x-axis to the chart context
39
40
  const [start, end] = AxisInterval.as(EMPTY_AXIS_DOMAIN).asTuple();
40
41
  addXAxis(axisRef.current, axisId, ContinuousAxisRange.from(start, end));
@@ -42,7 +43,7 @@ export function EmptyAxis(props) {
42
43
  }
43
44
  case AxisLocation.Left:
44
45
  case AxisLocation.Right: {
45
- axisRef.current = addEmptyYAxis(axisId, svg, plotDimensions, location, EMPTY_AXIS_SCALE, margin, setAxisIntervalFor, EMPTY_AXIS_DOMAIN);
46
+ axisRef.current = addEmptyYAxis(canvasContext, axisId, plotDimensions, location, EMPTY_AXIS_SCALE, margin, setAxisIntervalFor, color, EMPTY_AXIS_DOMAIN);
46
47
  // add the y-axis to the chart context
47
48
  const [start, end] = AxisInterval.as(EMPTY_AXIS_DOMAIN).asTuple();
48
49
  addYAxis(axisRef.current, axisId, ContinuousAxisRange.from(start, end));
@@ -57,14 +58,34 @@ export function EmptyAxis(props) {
57
58
  if (domain.isNotEmpty()) {
58
59
  axisRef.current.update(domain, plotDimensions, margin);
59
60
  }
61
+ // keep the line color in sync with the chart's color (e.g. on theme change),
62
+ // without recreating the axis or touching its domain
63
+ axisRef.current.updateFont({ ...defaultAxesFont(), color });
60
64
  }
61
65
  }
62
66
  }, [
63
67
  chartId, axisId, location, addXAxis, addYAxis,
64
- container, margin, plotDimensions, setAxisIntervalFor,
68
+ canvasContext, margin, plotDimensions, setAxisIntervalFor,
65
69
  axisRangeFor,
66
70
  setAxisRangeFor,
71
+ color,
67
72
  ]);
73
+ // unregister the axis' draw function when the axis unmounts
74
+ useEffect(() => {
75
+ return () => {
76
+ if (canvasContext) {
77
+ switch (location) {
78
+ case AxisLocation.Bottom:
79
+ case AxisLocation.Top:
80
+ removeContinuousXAxis(canvasContext, axisId);
81
+ break;
82
+ case AxisLocation.Left:
83
+ case AxisLocation.Right:
84
+ removeContinuousYAxis(canvasContext, axisId);
85
+ }
86
+ }
87
+ };
88
+ }, [canvasContext, axisId, location]);
68
89
  return null;
69
90
  }
70
91
  //# sourceMappingURL=EmptyAxis.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EmptyAxis.js","sourceRoot":"","sources":["../../../../src/app/charts/axes/EmptyAxis.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EmptyAxis.js","sourceRoot":"","sources":["../../../../src/app/charts/axes/EmptyAxis.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { AxesFont, AxisLocation, AxisTickStyle } from "./axes";
2
- import { ScaleBand } from "d3";
1
+ import { type AxesFont, AxisLocation, type AxisTickStyle } from "./axes";
2
+ import type { ScaleBand } from "d3";
3
3
  export interface Props {
4
4
  axisId: string;
5
5
  location: AxisLocation;
@@ -14,8 +14,10 @@ export interface Props {
14
14
  * Category axis that represents the x-axis when its location is either on the bottom or the top.
15
15
  * When the axis location is left or right, then the category axis represents the y-axis. The category
16
16
  * axis requires a set of categories that will form the axis. Generally, these categories should
17
- * be the name of the series used to represent each category.
17
+ * be the name of the series used to represent each category. This component returns null, meaning
18
+ * React won't render it because we are drawing directly onto the chart's shared canvas.
18
19
  * @param props The properties for the component
19
20
  * @return null
20
21
  */
21
22
  export declare function OrdinalAxis(props: Props): null;
23
+ //# sourceMappingURL=OrdinalAxis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OrdinalAxis.d.ts","sourceRoot":"","sources":["../../../../src/app/charts/axes/OrdinalAxis.tsx"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,QAAQ,EACb,YAAY,EACZ,KAAK,aAAa,EAOrB,MAAM,QAAQ,CAAA;AACf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,IAAI,CAAC;AASlC,MAAM,WAAW,KAAK;IAElB,MAAM,EAAE,MAAM,CAAA;IAGd,QAAQ,EAAE,YAAY,CAAA;IAEtB,KAAK,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;IAEzB,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IAEzB,IAAI,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;IAExB,aAAa,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAA;IAEtC,KAAK,EAAE,MAAM,CAAA;IAgBb,6BAA6B,CAAC,EAAE,OAAO,CAAA;CAC1C;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAoM9C"}