@mui/x-charts 8.7.0 → 8.9.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 (248) hide show
  1. package/BarChart/BarChart.d.ts +4 -3
  2. package/BarChart/BarChart.js +17 -1
  3. package/BarChart/barClasses.d.ts +1 -1
  4. package/BarChart/seriesConfig/seriesProcessor.js +5 -3
  5. package/BarChart/useBarPlotData.js +32 -5
  6. package/CHANGELOG.md +199 -24
  7. package/ChartContainer/ChartContainer.js +22 -0
  8. package/ChartContainer/useChartContainerProps.js +8 -2
  9. package/ChartDataProvider/ChartDataProvider.js +6 -0
  10. package/ChartDataProvider/useChartDataProviderProps.d.ts +1 -1
  11. package/ChartDataProvider/useChartDataProviderProps.js +6 -1
  12. package/ChartsAxisHighlight/ChartsXAxisHighlight.d.ts +1 -1
  13. package/ChartsAxisHighlight/ChartsXAxisHighlight.js +34 -24
  14. package/ChartsAxisHighlight/ChartsYAxisHighlight.d.ts +1 -1
  15. package/ChartsAxisHighlight/ChartsYAxisHighlight.js +34 -24
  16. package/ChartsLabel/ChartsLabelMark.d.ts +2 -1
  17. package/ChartsLabel/index.d.ts +1 -0
  18. package/ChartsLabel/index.js +18 -0
  19. package/ChartsLegend/chartsLegendClasses.d.ts +1 -1
  20. package/ChartsLegend/piecewiseColorLegendClasses.d.ts +1 -1
  21. package/Gauge/GaugeContainer.d.ts +1 -1
  22. package/LineChart/LineChart.d.ts +3 -2
  23. package/LineChart/LineChart.js +23 -1
  24. package/LineChart/LineHighlightPlot.js +10 -4
  25. package/LineChart/MarkPlot.js +17 -3
  26. package/LineChart/useAreaPlotData.js +3 -2
  27. package/PieChart/PieArcLabelPlot.js +3 -0
  28. package/PieChart/PieArcPlot.js +3 -0
  29. package/PieChart/PieChart.d.ts +4 -3
  30. package/PieChart/PieChart.js +1 -1
  31. package/PieChart/pieClasses.d.ts +1 -1
  32. package/RadarChart/RadarAxisHighlight/RadarAxisHighlight.js +3 -5
  33. package/RadarChart/RadarAxisHighlight/useRadarAxisHighlight.d.ts +2 -13
  34. package/RadarChart/RadarAxisHighlight/useRadarAxisHighlight.js +8 -45
  35. package/RadarChart/RadarChart.d.ts +2 -1
  36. package/RadarChart/RadarChart.js +23 -2
  37. package/RadarChart/RadarDataProvider/RadarDataProvider.d.ts +4 -3
  38. package/RadarChart/RadarMetricLabels/useRadarMetricData.js +4 -2
  39. package/RadarChart/RadarSeriesPlot/RadarSeriesArea.js +19 -3
  40. package/RadarChart/RadarSeriesPlot/RadarSeriesMarks.js +20 -4
  41. package/RadarChart/RadarSeriesPlot/RadarSeriesPlot.js +38 -4
  42. package/RadarChart/RadarSeriesPlot/RadarSeriesPlot.types.d.ts +32 -3
  43. package/RadarChart/RadarSeriesPlot/useRadarRotationIndex.d.ts +8 -0
  44. package/RadarChart/RadarSeriesPlot/useRadarRotationIndex.js +38 -0
  45. package/RadarChart/RadarSeriesPlot/useRadarSeriesData.d.ts +2 -2
  46. package/RadarChart/index.d.ts +1 -1
  47. package/RadarChart/useRadarChartProps.d.ts +3 -0
  48. package/RadarChart/useRadarChartProps.js +15 -3
  49. package/ScatterChart/ScatterChart.d.ts +4 -3
  50. package/ScatterChart/ScatterChart.js +1 -1
  51. package/ScatterChart/ScatterPlot.js +2 -2
  52. package/ScatterChart/seriesConfig/seriesProcessor.js +3 -0
  53. package/SparkLineChart/SparkLineChart.d.ts +1 -1
  54. package/SparkLineChart/SparkLineChart.js +16 -0
  55. package/esm/BarChart/BarChart.d.ts +4 -3
  56. package/esm/BarChart/BarChart.js +17 -1
  57. package/esm/BarChart/barClasses.d.ts +1 -1
  58. package/esm/BarChart/seriesConfig/seriesProcessor.js +5 -3
  59. package/esm/BarChart/useBarPlotData.js +32 -5
  60. package/esm/ChartContainer/ChartContainer.js +22 -0
  61. package/esm/ChartContainer/useChartContainerProps.js +8 -2
  62. package/esm/ChartDataProvider/ChartDataProvider.js +6 -0
  63. package/esm/ChartDataProvider/useChartDataProviderProps.d.ts +1 -1
  64. package/esm/ChartDataProvider/useChartDataProviderProps.js +7 -2
  65. package/esm/ChartsAxisHighlight/ChartsXAxisHighlight.d.ts +1 -1
  66. package/esm/ChartsAxisHighlight/ChartsXAxisHighlight.js +36 -26
  67. package/esm/ChartsAxisHighlight/ChartsYAxisHighlight.d.ts +1 -1
  68. package/esm/ChartsAxisHighlight/ChartsYAxisHighlight.js +36 -26
  69. package/esm/ChartsLabel/ChartsLabelMark.d.ts +2 -1
  70. package/esm/ChartsLabel/index.d.ts +1 -0
  71. package/esm/ChartsLabel/index.js +1 -0
  72. package/esm/ChartsLegend/chartsLegendClasses.d.ts +1 -1
  73. package/esm/ChartsLegend/piecewiseColorLegendClasses.d.ts +1 -1
  74. package/esm/Gauge/GaugeContainer.d.ts +1 -1
  75. package/esm/LineChart/LineChart.d.ts +3 -2
  76. package/esm/LineChart/LineChart.js +23 -1
  77. package/esm/LineChart/LineHighlightPlot.js +11 -5
  78. package/esm/LineChart/MarkPlot.js +17 -3
  79. package/esm/LineChart/useAreaPlotData.js +3 -2
  80. package/esm/PieChart/PieArcLabelPlot.js +3 -0
  81. package/esm/PieChart/PieArcPlot.js +3 -0
  82. package/esm/PieChart/PieChart.d.ts +4 -3
  83. package/esm/PieChart/PieChart.js +1 -1
  84. package/esm/PieChart/pieClasses.d.ts +1 -1
  85. package/esm/RadarChart/RadarAxisHighlight/RadarAxisHighlight.js +3 -5
  86. package/esm/RadarChart/RadarAxisHighlight/useRadarAxisHighlight.d.ts +2 -13
  87. package/esm/RadarChart/RadarAxisHighlight/useRadarAxisHighlight.js +8 -45
  88. package/esm/RadarChart/RadarChart.d.ts +2 -1
  89. package/esm/RadarChart/RadarChart.js +23 -2
  90. package/esm/RadarChart/RadarDataProvider/RadarDataProvider.d.ts +4 -3
  91. package/esm/RadarChart/RadarMetricLabels/useRadarMetricData.js +4 -2
  92. package/esm/RadarChart/RadarSeriesPlot/RadarSeriesArea.js +19 -3
  93. package/esm/RadarChart/RadarSeriesPlot/RadarSeriesMarks.js +20 -4
  94. package/esm/RadarChart/RadarSeriesPlot/RadarSeriesPlot.js +38 -4
  95. package/esm/RadarChart/RadarSeriesPlot/RadarSeriesPlot.types.d.ts +32 -3
  96. package/esm/RadarChart/RadarSeriesPlot/useRadarRotationIndex.d.ts +8 -0
  97. package/esm/RadarChart/RadarSeriesPlot/useRadarRotationIndex.js +32 -0
  98. package/esm/RadarChart/RadarSeriesPlot/useRadarSeriesData.d.ts +2 -2
  99. package/esm/RadarChart/index.d.ts +1 -1
  100. package/esm/RadarChart/useRadarChartProps.d.ts +3 -0
  101. package/esm/RadarChart/useRadarChartProps.js +15 -3
  102. package/esm/ScatterChart/ScatterChart.d.ts +4 -3
  103. package/esm/ScatterChart/ScatterChart.js +1 -1
  104. package/esm/ScatterChart/ScatterPlot.js +2 -2
  105. package/esm/ScatterChart/seriesConfig/seriesProcessor.js +3 -0
  106. package/esm/SparkLineChart/SparkLineChart.d.ts +1 -1
  107. package/esm/SparkLineChart/SparkLineChart.js +16 -0
  108. package/esm/hooks/useAxis.d.ts +2 -2
  109. package/esm/hooks/useTicks.d.ts +6 -1
  110. package/esm/hooks/useTicks.js +94 -58
  111. package/esm/index.js +1 -1
  112. package/esm/internals/constants.d.ts +3 -0
  113. package/esm/internals/constants.js +4 -0
  114. package/esm/internals/getLabel.d.ts +1 -1
  115. package/esm/internals/index.d.ts +1 -0
  116. package/esm/internals/index.js +1 -0
  117. package/esm/internals/plugins/corePlugins/corePlugins.d.ts +3 -2
  118. package/esm/internals/plugins/corePlugins/corePlugins.js +2 -1
  119. package/esm/internals/plugins/corePlugins/useChartAnimation/useChartAnimation.selectors.d.ts +1 -1
  120. package/esm/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.selectors.d.ts +3 -3
  121. package/esm/internals/plugins/corePlugins/useChartExperimentalFeature/index.d.ts +3 -0
  122. package/esm/internals/plugins/corePlugins/useChartExperimentalFeature/index.js +2 -0
  123. package/esm/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.d.ts +3 -0
  124. package/esm/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.js +27 -0
  125. package/esm/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.selectors.d.ts +8 -0
  126. package/esm/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.selectors.js +3 -0
  127. package/esm/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.d.ts +21 -0
  128. package/esm/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.js +1 -0
  129. package/esm/internals/plugins/corePlugins/useChartId/useChartId.selectors.d.ts +1 -1
  130. package/esm/internals/plugins/corePlugins/useChartSeries/useChartSeries.selectors.d.ts +2 -2
  131. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.d.ts +5 -1
  132. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.js +4 -2
  133. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeZoom.d.ts +1 -0
  134. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeZoom.js +5 -2
  135. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisDomainLimit.d.ts +7 -0
  136. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisDomainLimit.js +14 -0
  137. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/index.d.ts +2 -0
  138. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/index.js +2 -0
  139. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartAxisSize.selectors.d.ts +4 -4
  140. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.js +46 -3
  141. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.types.d.ts +18 -1
  142. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisPreview.selectors.d.ts +3 -0
  143. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisPreview.selectors.js +76 -0
  144. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.d.ts +10 -5
  145. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.js +8 -5
  146. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianHighlight.selectors.d.ts +47 -0
  147. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianHighlight.selectors.js +48 -0
  148. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.d.ts +18 -12
  149. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.js +16 -2
  150. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/zoom.types.d.ts +6 -1
  151. package/esm/internals/plugins/featurePlugins/useChartHighlight/createIsFaded.d.ts +1 -1
  152. package/esm/internals/plugins/featurePlugins/useChartHighlight/createIsFaded.js +19 -11
  153. package/esm/internals/plugins/featurePlugins/useChartHighlight/createIsHighlighted.d.ts +1 -1
  154. package/esm/internals/plugins/featurePlugins/useChartHighlight/createIsHighlighted.js +19 -11
  155. package/esm/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.selectors.d.ts +5 -5
  156. package/esm/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.selectors.js +10 -4
  157. package/esm/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.js +4 -4
  158. package/esm/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.d.ts +6 -6
  159. package/esm/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.js +44 -1
  160. package/esm/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.selectors.d.ts +5 -5
  161. package/esm/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.types.d.ts +8 -1
  162. package/esm/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarInteraction.selectors.d.ts +7 -8
  163. package/esm/internals/plugins/featurePlugins/useChartVoronoi/useChartVoronoi.selectors.d.ts +1 -1
  164. package/esm/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.selectors.d.ts +1 -1
  165. package/esm/internals/plugins/utils/useLazySelectorEffect.d.ts +7 -0
  166. package/esm/internals/plugins/utils/useLazySelectorEffect.js +70 -0
  167. package/esm/internals/store/useCharts.d.ts +1 -1
  168. package/esm/models/axis.d.ts +42 -1
  169. package/esm/models/axis.js +4 -0
  170. package/esm/models/index.d.ts +1 -1
  171. package/esm/models/seriesType/bar.d.ts +11 -1
  172. package/esm/models/seriesType/common.d.ts +9 -3
  173. package/esm/models/seriesType/line.d.ts +3 -1
  174. package/esm/models/seriesType/scatter.d.ts +14 -2
  175. package/esm/tests/web-components.js +49 -0
  176. package/esm/themeAugmentation/components.d.ts +3 -0
  177. package/esm/themeAugmentation/props.d.ts +2 -0
  178. package/hooks/useAxis.d.ts +2 -2
  179. package/hooks/useTicks.d.ts +6 -1
  180. package/hooks/useTicks.js +95 -58
  181. package/index.js +1 -1
  182. package/internals/constants.d.ts +3 -0
  183. package/internals/constants.js +5 -1
  184. package/internals/getLabel.d.ts +1 -1
  185. package/internals/index.d.ts +1 -0
  186. package/internals/index.js +8 -0
  187. package/internals/plugins/corePlugins/corePlugins.d.ts +3 -2
  188. package/internals/plugins/corePlugins/corePlugins.js +2 -1
  189. package/internals/plugins/corePlugins/useChartAnimation/useChartAnimation.selectors.d.ts +1 -1
  190. package/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.selectors.d.ts +3 -3
  191. package/internals/plugins/corePlugins/useChartExperimentalFeature/index.d.ts +3 -0
  192. package/internals/plugins/corePlugins/useChartExperimentalFeature/index.js +27 -0
  193. package/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.d.ts +3 -0
  194. package/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.js +34 -0
  195. package/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.selectors.d.ts +8 -0
  196. package/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.selectors.js +10 -0
  197. package/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.d.ts +21 -0
  198. package/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.js +5 -0
  199. package/internals/plugins/corePlugins/useChartId/useChartId.selectors.d.ts +1 -1
  200. package/internals/plugins/corePlugins/useChartSeries/useChartSeries.selectors.d.ts +2 -2
  201. package/internals/plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.d.ts +5 -1
  202. package/internals/plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.js +4 -2
  203. package/internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeZoom.d.ts +1 -0
  204. package/internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeZoom.js +4 -1
  205. package/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisDomainLimit.d.ts +7 -0
  206. package/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisDomainLimit.js +21 -0
  207. package/internals/plugins/featurePlugins/useChartCartesianAxis/index.d.ts +2 -0
  208. package/internals/plugins/featurePlugins/useChartCartesianAxis/index.js +24 -0
  209. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartAxisSize.selectors.d.ts +4 -4
  210. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.js +46 -3
  211. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.types.d.ts +18 -1
  212. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisPreview.selectors.d.ts +3 -0
  213. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisPreview.selectors.js +82 -0
  214. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.d.ts +10 -5
  215. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.js +9 -6
  216. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianHighlight.selectors.d.ts +47 -0
  217. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianHighlight.selectors.js +55 -0
  218. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.d.ts +18 -12
  219. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.js +18 -3
  220. package/internals/plugins/featurePlugins/useChartCartesianAxis/zoom.types.d.ts +6 -1
  221. package/internals/plugins/featurePlugins/useChartHighlight/createIsFaded.d.ts +1 -1
  222. package/internals/plugins/featurePlugins/useChartHighlight/createIsFaded.js +20 -13
  223. package/internals/plugins/featurePlugins/useChartHighlight/createIsHighlighted.d.ts +1 -1
  224. package/internals/plugins/featurePlugins/useChartHighlight/createIsHighlighted.js +20 -13
  225. package/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.selectors.d.ts +5 -5
  226. package/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.selectors.js +10 -4
  227. package/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.js +4 -4
  228. package/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.d.ts +6 -6
  229. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.js +44 -1
  230. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.selectors.d.ts +5 -5
  231. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.types.d.ts +8 -1
  232. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarInteraction.selectors.d.ts +7 -8
  233. package/internals/plugins/featurePlugins/useChartVoronoi/useChartVoronoi.selectors.d.ts +1 -1
  234. package/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.selectors.d.ts +1 -1
  235. package/internals/plugins/utils/useLazySelectorEffect.d.ts +7 -0
  236. package/internals/plugins/utils/useLazySelectorEffect.js +77 -0
  237. package/internals/store/useCharts.d.ts +1 -1
  238. package/models/axis.d.ts +42 -1
  239. package/models/axis.js +4 -0
  240. package/models/index.d.ts +1 -1
  241. package/models/seriesType/bar.d.ts +11 -1
  242. package/models/seriesType/common.d.ts +9 -3
  243. package/models/seriesType/line.d.ts +3 -1
  244. package/models/seriesType/scatter.d.ts +14 -2
  245. package/package.json +5 -5
  246. package/tests/web-components.js +55 -0
  247. package/themeAugmentation/components.d.ts +3 -0
  248. package/themeAugmentation/props.d.ts +2 -0
@@ -7,7 +7,7 @@ import { ProcessedSeries } from "../../corePlugins/useChartSeries/useChartSeries
7
7
  import { GetZoomAxisFilters, ZoomData } from "./zoom.types.js";
8
8
  export type ComputeResult<T extends ChartsAxisProps> = {
9
9
  axis: ComputedAxisConfig<T>;
10
- axisIds: string[];
10
+ axisIds: AxisId[];
11
11
  };
12
12
  type ComputeCommonParams<T extends ChartSeriesType = ChartSeriesType> = {
13
13
  drawingArea: ChartDrawingArea;
@@ -16,6 +16,10 @@ type ComputeCommonParams<T extends ChartSeriesType = ChartSeriesType> = {
16
16
  zoomMap?: Map<AxisId, ZoomData>;
17
17
  zoomOptions?: Record<AxisId, DefaultizedZoomOptions>;
18
18
  getFilters?: GetZoomAxisFilters;
19
+ /**
20
+ * @deprecated To remove in v9. This is an experimental feature to avoid breaking change.
21
+ */
22
+ preferStrictDomainInLineCharts?: boolean;
19
23
  };
20
24
  export declare function computeAxisValue<T extends ChartSeriesType>(options: ComputeCommonParams<T> & {
21
25
  axis?: DefaultedYAxis[];
@@ -9,6 +9,7 @@ import { isDateData, createDateFormatter } from "../../../dateHelpers.js";
9
9
  import { zoomScaleRange } from "./zoom.js";
10
10
  import { getAxisExtremum } from "./getAxisExtremum.js";
11
11
  import { getAxisTriggerTooltip } from "./getAxisTriggerTooltip.js";
12
+ import { getAxisDomainLimit } from "./getAxisDomainLimit.js";
12
13
  function getRange(drawingArea, axisDirection,
13
14
  // | 'rotation' | 'radius',
14
15
  axis) {
@@ -25,7 +26,8 @@ export function computeAxisValue({
25
26
  axisDirection,
26
27
  zoomMap,
27
28
  zoomOptions,
28
- getFilters
29
+ getFilters,
30
+ preferStrictDomainInLineCharts
29
31
  }) {
30
32
  if (allAxis === undefined) {
31
33
  return {
@@ -95,7 +97,7 @@ export function computeAxisValue({
95
97
  return;
96
98
  }
97
99
  const scaleType = axis.scaleType ?? 'linear';
98
- const domainLimit = axis.domainLimit ?? 'nice';
100
+ const domainLimit = preferStrictDomainInLineCharts ? getAxisDomainLimit(axis, axisDirection, axisIndex, formattedSeries) : axis.domainLimit ?? 'nice';
99
101
  const axisExtremums = [axis.min ?? minData, axis.max ?? maxData];
100
102
  if (typeof domainLimit === 'function') {
101
103
  const {
@@ -11,6 +11,7 @@ export declare const defaultZoomOptions: {
11
11
  filterMode: "keep";
12
12
  slider: {
13
13
  enabled: false;
14
+ preview: false;
14
15
  size: number;
15
16
  showTooltip: import("./zoom.types.js").ZoomSliderShowTooltip;
16
17
  };
@@ -1,5 +1,5 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
- import { DEFAULT_ZOOM_SLIDER_SHOW_TOOLTIP, DEFAULT_ZOOM_SLIDER_SIZE } from "../../../constants.js";
2
+ import { DEFAULT_ZOOM_SLIDER_PREVIEW_SIZE, DEFAULT_ZOOM_SLIDER_SHOW_TOOLTIP, DEFAULT_ZOOM_SLIDER_SIZE } from "../../../constants.js";
3
3
  export const defaultZoomOptions = {
4
4
  minStart: 0,
5
5
  maxEnd: 100,
@@ -10,6 +10,7 @@ export const defaultZoomOptions = {
10
10
  filterMode: 'keep',
11
11
  slider: {
12
12
  enabled: false,
13
+ preview: false,
13
14
  size: DEFAULT_ZOOM_SLIDER_SIZE,
14
15
  showTooltip: DEFAULT_ZOOM_SLIDER_SHOW_TOOLTIP
15
16
  }
@@ -28,6 +29,8 @@ export const defaultizeZoom = (zoom, axisId, axisDirection) => {
28
29
  axisId,
29
30
  axisDirection
30
31
  }, defaultZoomOptions, zoom, {
31
- slider: _extends({}, defaultZoomOptions.slider, zoom.slider)
32
+ slider: _extends({}, defaultZoomOptions.slider, {
33
+ size: zoom.slider?.preview ?? defaultZoomOptions.slider.preview ? DEFAULT_ZOOM_SLIDER_PREVIEW_SIZE : DEFAULT_ZOOM_SLIDER_SIZE
34
+ }, zoom.slider)
32
35
  });
33
36
  };
@@ -0,0 +1,7 @@
1
+ import { AxisConfig } from "../../../../models/axis.js";
2
+ import { CartesianChartSeriesType } from "../../../../models/seriesType/config.js";
3
+ import { ProcessedSeries } from "../../corePlugins/useChartSeries/index.js";
4
+ export declare const getAxisDomainLimit: <T extends CartesianChartSeriesType>(axis: AxisConfig, axisDirection: "x" | "y", axisIndex: number, formattedSeries: ProcessedSeries<T | "line">) => "nice" | "strict" | ((min: number, max: number) => {
5
+ min: number;
6
+ max: number;
7
+ });
@@ -0,0 +1,14 @@
1
+ export const getAxisDomainLimit = (axis, axisDirection, axisIndex, formattedSeries) => {
2
+ if (axis.domainLimit !== undefined) {
3
+ return axis.domainLimit;
4
+ }
5
+ if (axisDirection === 'x') {
6
+ for (const seriesId of formattedSeries.line?.seriesOrder ?? []) {
7
+ const series = formattedSeries.line.series[seriesId];
8
+ if (series.xAxisId === axis.id || series.xAxisId === undefined && axisIndex === 0) {
9
+ return 'strict';
10
+ }
11
+ }
12
+ }
13
+ return 'nice';
14
+ };
@@ -3,6 +3,8 @@ export type * from "./useChartCartesianAxis.types.js";
3
3
  export * from "./useChartCartesianAxisRendering.selectors.js";
4
4
  export * from "./useChartCartesianAxisLayout.selectors.js";
5
5
  export * from "./useChartCartesianInteraction.selectors.js";
6
+ export * from "./useChartCartesianHighlight.selectors.js";
7
+ export * from "./useChartCartesianAxisPreview.selectors.js";
6
8
  export { defaultizeXAxis, defaultizeYAxis } from "./defaultizeAxis.js";
7
9
  export * from "./computeAxisValue.js";
8
10
  export * from "./createZoomLookup.js";
@@ -2,6 +2,8 @@ export { useChartCartesianAxis } from "./useChartCartesianAxis.js";
2
2
  export * from "./useChartCartesianAxisRendering.selectors.js";
3
3
  export * from "./useChartCartesianAxisLayout.selectors.js";
4
4
  export * from "./useChartCartesianInteraction.selectors.js";
5
+ export * from "./useChartCartesianHighlight.selectors.js";
6
+ export * from "./useChartCartesianAxisPreview.selectors.js";
5
7
  export { defaultizeXAxis, defaultizeYAxis } from "./defaultizeAxis.js";
6
8
  export * from "./computeAxisValue.js";
7
9
  export * from "./createZoomLookup.js";
@@ -1,19 +1,19 @@
1
- export declare const selectorChartLeftAxisSize: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
1
+ export declare const selectorChartLeftAxisSize: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.js").UseChartExperimentalFeaturesState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
2
2
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
3
3
  } & {
4
4
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
5
5
  }, number, []>;
6
- export declare const selectorChartRightAxisSize: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
6
+ export declare const selectorChartRightAxisSize: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.js").UseChartExperimentalFeaturesState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
7
7
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
8
8
  } & {
9
9
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
10
10
  }, number, []>;
11
- export declare const selectorChartTopAxisSize: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
11
+ export declare const selectorChartTopAxisSize: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.js").UseChartExperimentalFeaturesState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
12
12
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
13
13
  } & {
14
14
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
15
15
  }, number, []>;
16
- export declare const selectorChartBottomAxisSize: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
16
+ export declare const selectorChartBottomAxisSize: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.js").UseChartExperimentalFeaturesState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
17
17
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
18
18
  } & {
19
19
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
@@ -2,6 +2,8 @@
2
2
 
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import * as React from 'react';
5
+ import useEnhancedEffect from '@mui/utils/useEnhancedEffect';
6
+ import { useAssertModelConsistency } from '@mui/x-internals/useAssertModelConsistency';
5
7
  import { warnOnce } from '@mui/x-internals/warning';
6
8
  import { rainbowSurgePalette } from "../../../../colorPalettes/index.js";
7
9
  import { useSelector } from "../../../store/useSelector.js";
@@ -12,6 +14,8 @@ import { selectorChartXAxis, selectorChartYAxis } from "./useChartCartesianAxisR
12
14
  import { getAxisIndex } from "./getAxisValue.js";
13
15
  import { getSVGPoint } from "../../../getSVGPoint.js";
14
16
  import { selectorChartsInteractionIsInitialized } from "../useChartInteraction/index.js";
17
+ import { selectorChartAxisInteraction } from "./useChartCartesianInteraction.selectors.js";
18
+ import { useLazySelectorEffect } from "../../utils/useLazySelectorEffect.js";
15
19
  export const useChartCartesianAxis = ({
16
20
  params,
17
21
  store,
@@ -22,7 +26,8 @@ export const useChartCartesianAxis = ({
22
26
  const {
23
27
  xAxis,
24
28
  yAxis,
25
- dataset
29
+ dataset,
30
+ onHighlightedAxisChange
26
31
  } = params;
27
32
  if (process.env.NODE_ENV !== 'production') {
28
33
  const ids = [...(xAxis ?? []), ...(yAxis ?? [])].filter(axis => axis.id).map(axis => axis.id);
@@ -42,6 +47,25 @@ export const useChartCartesianAxis = ({
42
47
  axis: yAxisWithScale,
43
48
  axisIds: yAxisIds
44
49
  } = useSelector(store, selectorChartYAxis);
50
+ useAssertModelConsistency({
51
+ warningPrefix: 'MUI X Charts',
52
+ componentName: 'Chart',
53
+ propName: 'highlightedAxis',
54
+ controlled: params.highlightedAxis,
55
+ defaultValue: undefined
56
+ });
57
+ useEnhancedEffect(() => {
58
+ if (params.highlightedAxis !== undefined) {
59
+ store.update(prevState => {
60
+ if (prevState.controlledCartesianAxisHighlight === params.highlightedAxis) {
61
+ return prevState;
62
+ }
63
+ return _extends({}, prevState, {
64
+ controlledCartesianAxisHighlight: params.highlightedAxis
65
+ });
66
+ });
67
+ }
68
+ }, [store, params.highlightedAxis]);
45
69
 
46
70
  // The effect do not track any value defined synchronously during the 1st render by hooks called after `useChartCartesianAxis`
47
71
  // As a consequence, the state generated by the 1st run of this useEffect will always be equal to the initialization one
@@ -60,6 +84,21 @@ export const useChartCartesianAxis = ({
60
84
  }, [seriesConfig, drawingArea, xAxis, yAxis, dataset, store]);
61
85
  const usedXAxis = xAxisIds[0];
62
86
  const usedYAxis = yAxisIds[0];
87
+ useLazySelectorEffect(store, selectorChartAxisInteraction, (prevAxisInteraction, nextAxisInteraction) => {
88
+ if (Object.is(prevAxisInteraction, nextAxisInteraction)) {
89
+ return;
90
+ }
91
+ if (prevAxisInteraction.length !== nextAxisInteraction.length) {
92
+ onHighlightedAxisChange(nextAxisInteraction);
93
+ return;
94
+ }
95
+ if (prevAxisInteraction?.some(({
96
+ axisId,
97
+ dataIndex
98
+ }, itemIndex) => nextAxisInteraction[itemIndex].axisId !== axisId || nextAxisInteraction[itemIndex].dataIndex !== dataIndex)) {
99
+ onHighlightedAxisChange(nextAxisInteraction);
100
+ }
101
+ }, !onHighlightedAxisChange);
63
102
  React.useEffect(() => {
64
103
  const element = svgRef.current;
65
104
  if (!isInteractionEnabled || !element || params.disableAxisListener) {
@@ -159,7 +198,9 @@ useChartCartesianAxis.params = {
159
198
  yAxis: true,
160
199
  dataset: true,
161
200
  onAxisClick: true,
162
- disableAxisListener: true
201
+ disableAxisListener: true,
202
+ onHighlightedAxisChange: true,
203
+ highlightedAxis: true
163
204
  };
164
205
  useChartCartesianAxis.getDefaultizedParams = ({
165
206
  params
@@ -171,9 +212,11 @@ useChartCartesianAxis.getDefaultizedParams = ({
171
212
  defaultizedYAxis: defaultizeYAxis(params.yAxis, params.dataset)
172
213
  });
173
214
  };
174
- useChartCartesianAxis.getInitialState = params => ({
215
+ useChartCartesianAxis.getInitialState = params => _extends({
175
216
  cartesianAxis: {
176
217
  x: params.defaultizedXAxis,
177
218
  y: params.defaultizedYAxis
178
219
  }
220
+ }, params.highlightedAxis === undefined ? {} : {
221
+ controlledCartesianAxisHighlight: params.highlightedAxis
179
222
  });
@@ -1,6 +1,6 @@
1
1
  import type { ChartPluginSignature } from "../../models/index.js";
2
2
  import type { ChartSeriesType, DatasetType } from "../../../../models/seriesType/config.js";
3
- import type { ComputedAxis, ScaleName, AxisId, ChartsAxisData, YAxis, XAxis, DefaultedXAxis, DefaultedYAxis } from "../../../../models/axis.js";
3
+ import type { ComputedAxis, ScaleName, AxisId, ChartsAxisData, YAxis, XAxis, DefaultedXAxis, DefaultedYAxis, AxisItemIdentifier } from "../../../../models/axis.js";
4
4
  import type { UseChartSeriesSignature } from "../../corePlugins/useChartSeries/index.js";
5
5
  import type { ZoomData, ZoomOptions, ZoomSliderShowTooltip } from "./zoom.types.js";
6
6
  import type { UseChartInteractionSignature } from "../useChartInteraction/index.js";
@@ -36,6 +36,19 @@ export interface UseChartCartesianAxisParameters<S extends ScaleName = ScaleName
36
36
  * @param {null | ChartsAxisData} data The data about the clicked axis and items associated with it.
37
37
  */
38
38
  onAxisClick?: (event: MouseEvent, data: null | ChartsAxisData) => void;
39
+ /**
40
+ * The function called when the pointer position corresponds to a new axis data item.
41
+ * This update can either be caused by a pointer movement, or an axis update.
42
+ * In case of multiple axes, the function is called if at least one axis is updated.
43
+ * The argument contains the identifier for all axes with a `data` property.
44
+ * @param {AxisItemIdentifier[]} axisItems The array of axes item identifiers.
45
+ */
46
+ onHighlightedAxisChange?: (axisItems: AxisItemIdentifier[]) => void;
47
+ /**
48
+ * The controlled axis highlight.
49
+ * Identified by the axis id, and data index.
50
+ */
51
+ highlightedAxis?: AxisItemIdentifier[];
39
52
  /**
40
53
  * If `true`, the charts will not listen to the mouse move event.
41
54
  * It might break interactive features, but will improve performance.
@@ -67,6 +80,10 @@ export interface UseChartCartesianAxisState {
67
80
  x: DefaultedXAxis[];
68
81
  y: DefaultedYAxis[];
69
82
  };
83
+ /**
84
+ * The controlled axis item highlighted.
85
+ */
86
+ controlledCartesianAxisHighlight?: AxisItemIdentifier[];
70
87
  }
71
88
  export type ExtremumFilter = (value: {
72
89
  x: number | Date | string | null;
@@ -0,0 +1,3 @@
1
+ import { AxisId } from "../../../../models/axis.js";
2
+ export declare const selectorChartPreviewComputedXAxis: import("reselect").Selector<any, import("./useChartCartesianAxis.types.js").ComputedAxisConfig<import("../../../index.js").ChartsXAxisProps>, [axisId: AxisId]>;
3
+ export declare const selectorChartPreviewComputedYAxis: import("reselect").Selector<any, import("./useChartCartesianAxis.types.js").ComputedAxisConfig<import("../../../index.js").ChartsYAxisProps>, [axisId: AxisId]>;
@@ -0,0 +1,76 @@
1
+ import { createSelector } from "../../utils/selectors.js";
2
+ import { selectorChartRawXAxis, selectorChartRawYAxis } from "./useChartCartesianAxisLayout.selectors.js";
3
+ import { selectorChartSeriesConfig, selectorChartSeriesProcessed } from "../../corePlugins/useChartSeries/index.js";
4
+ import { computeAxisValue } from "./computeAxisValue.js";
5
+ import { selectorChartZoomAxisFilters, selectorChartZoomOptionsLookup } from "./useChartCartesianAxisRendering.selectors.js";
6
+ import { selectorChartDrawingArea } from "../../corePlugins/useChartDimensions/index.js";
7
+ import { ZOOM_SLIDER_PREVIEW_SIZE } from "../../../constants.js";
8
+ function createPreviewDrawingArea(axisDirection, mainChartDrawingArea) {
9
+ return axisDirection === 'x' ? {
10
+ left: 0,
11
+ top: 0,
12
+ width: mainChartDrawingArea.width,
13
+ height: ZOOM_SLIDER_PREVIEW_SIZE,
14
+ right: mainChartDrawingArea.width,
15
+ bottom: ZOOM_SLIDER_PREVIEW_SIZE
16
+ } : {
17
+ left: 0,
18
+ top: 0,
19
+ width: ZOOM_SLIDER_PREVIEW_SIZE,
20
+ height: mainChartDrawingArea.height,
21
+ right: ZOOM_SLIDER_PREVIEW_SIZE,
22
+ bottom: mainChartDrawingArea.height
23
+ };
24
+ }
25
+ export const selectorChartPreviewComputedXAxis = createSelector([selectorChartRawXAxis, selectorChartSeriesProcessed, selectorChartSeriesConfig, selectorChartZoomOptionsLookup, selectorChartZoomAxisFilters, selectorChartDrawingArea, (_, axisId) => axisId], (xAxes, formattedSeries, seriesConfig, zoomOptions, getFilters, chartDrawingArea, axisId) => {
26
+ const hasAxis = xAxes?.some(axis => axis.id === axisId);
27
+ const drawingArea = createPreviewDrawingArea(hasAxis ? 'x' : 'y', chartDrawingArea);
28
+ const options = zoomOptions[axisId];
29
+ const zoomMap = new Map([[axisId, {
30
+ axisId,
31
+ start: options.minStart,
32
+ end: options.maxEnd
33
+ }]]);
34
+ const computedAxes = computeAxisValue({
35
+ drawingArea,
36
+ formattedSeries,
37
+ axis: xAxes,
38
+ seriesConfig,
39
+ axisDirection: 'x',
40
+ zoomMap,
41
+ zoomOptions,
42
+ getFilters
43
+ });
44
+ if (computedAxes.axis[axisId]) {
45
+ return {
46
+ [axisId]: computedAxes.axis[axisId]
47
+ };
48
+ }
49
+ return computedAxes.axis;
50
+ });
51
+ export const selectorChartPreviewComputedYAxis = createSelector([selectorChartRawYAxis, selectorChartSeriesProcessed, selectorChartSeriesConfig, selectorChartZoomOptionsLookup, selectorChartZoomAxisFilters, selectorChartDrawingArea, (_, axisId) => axisId], (yAxes, formattedSeries, seriesConfig, zoomOptions, getFilters, chartDrawingArea, axisId) => {
52
+ const hasAxis = yAxes?.some(axis => axis.id === axisId);
53
+ const drawingArea = createPreviewDrawingArea(hasAxis ? 'y' : 'x', chartDrawingArea);
54
+ const options = zoomOptions[axisId];
55
+ const zoomMap = new Map([[axisId, {
56
+ axisId,
57
+ start: options.minStart,
58
+ end: options.maxEnd
59
+ }]]);
60
+ const computedAxes = computeAxisValue({
61
+ drawingArea,
62
+ formattedSeries,
63
+ axis: yAxes,
64
+ seriesConfig,
65
+ axisDirection: 'y',
66
+ zoomMap,
67
+ zoomOptions,
68
+ getFilters
69
+ });
70
+ if (computedAxes.axis[axisId]) {
71
+ return {
72
+ [axisId]: computedAxes.axis[axisId]
73
+ };
74
+ }
75
+ return computedAxes.axis;
76
+ });
@@ -4,17 +4,17 @@ export declare const createZoomMap: (zoom: readonly ZoomData[]) => Map<AxisId, Z
4
4
  /**
5
5
  * Following selectors are not exported because they exist in the MIT chart only to ba able to reuse the Zoom state from the pro.
6
6
  */
7
- export declare const selectorChartZoomIsInteracting: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
7
+ export declare const selectorChartZoomIsInteracting: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.js").UseChartExperimentalFeaturesState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
8
8
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
9
9
  } & {
10
10
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
11
11
  }, boolean | undefined, []>;
12
- export declare const selectorChartZoomMap: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
12
+ export declare const selectorChartZoomMap: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.js").UseChartExperimentalFeaturesState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
13
13
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
14
14
  } & {
15
15
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
16
16
  }, Map<AxisId, ZoomData> | undefined, []>;
17
- export declare const selectorChartZoomOptionsLookup: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
17
+ export declare const selectorChartZoomOptionsLookup: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.js").UseChartExperimentalFeaturesState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
18
18
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
19
19
  } & {
20
20
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
@@ -23,15 +23,20 @@ export declare const selectorChartZoomOptionsLookup: import("reselect").Selector
23
23
  [x: number]: import("./useChartCartesianAxis.types.js").DefaultizedZoomOptions;
24
24
  }, []>;
25
25
  export declare const selectorChartAxisZoomOptionsLookup: import("reselect").Selector<any, import("./useChartCartesianAxis.types.js").DefaultizedZoomOptions, [axisId: AxisId]>;
26
+ export declare const selectorChartZoomAxisFilters: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.js").UseChartExperimentalFeaturesState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
27
+ cacheKey: import("../../models/index.js").ChartStateCacheKey;
28
+ } & {
29
+ cacheKey: import("../../models/index.js").ChartStateCacheKey;
30
+ } & Partial<{}>, import("./zoom.types.js").GetZoomAxisFilters | undefined, []>;
26
31
  /**
27
32
  * The only interesting selectors that merge axis data and zoom if provided.
28
33
  */
29
- export declare const selectorChartXAxis: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
34
+ export declare const selectorChartXAxis: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.js").UseChartExperimentalFeaturesState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
30
35
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
31
36
  } & Partial<{}> & {
32
37
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
33
38
  }, import("./computeAxisValue.js").ComputeResult<import("../../../index.js").ChartsXAxisProps>, []>;
34
- export declare const selectorChartYAxis: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
39
+ export declare const selectorChartYAxis: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.js").UseChartExperimentalFeaturesState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
35
40
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
36
41
  } & Partial<{}> & {
37
42
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
@@ -6,6 +6,7 @@ import { computeAxisValue } from "./computeAxisValue.js";
6
6
  import { createAxisFilterMapper, createGetAxisFilters } from "./createAxisFilterMapper.js";
7
7
  import { createZoomLookup } from "./createZoomLookup.js";
8
8
  import { selectorChartRawXAxis, selectorChartRawYAxis } from "./useChartCartesianAxisLayout.selectors.js";
9
+ import { selectorPreferStrictDomainInLineCharts } from "../../corePlugins/useChartExperimentalFeature/index.js";
9
10
  export const createZoomMap = zoom => {
10
11
  const zoomItemMap = new Map();
11
12
  zoom.forEach(zoomItem => {
@@ -37,7 +38,7 @@ const selectorChartYFilter = createSelector([selectorChartZoomMap, selectorChart
37
38
  formattedSeries,
38
39
  direction: 'y'
39
40
  }));
40
- const selectorChartZoomAxisFilters = createSelector([selectorChartXFilter, selectorChartYFilter, selectorChartRawXAxis, selectorChartRawYAxis], (xMapper, yMapper, xAxis, yAxis) => {
41
+ export const selectorChartZoomAxisFilters = createSelector([selectorChartXFilter, selectorChartYFilter, selectorChartRawXAxis, selectorChartRawYAxis], (xMapper, yMapper, xAxis, yAxis) => {
41
42
  if (xMapper === undefined || yMapper === undefined) {
42
43
  // Early return if there is no zoom.
43
44
  return undefined;
@@ -66,7 +67,7 @@ const selectorChartZoomAxisFilters = createSelector([selectorChartXFilter, selec
66
67
  * The only interesting selectors that merge axis data and zoom if provided.
67
68
  */
68
69
 
69
- export const selectorChartXAxis = createSelector([selectorChartRawXAxis, selectorChartDrawingArea, selectorChartSeriesProcessed, selectorChartSeriesConfig, selectorChartZoomMap, selectorChartZoomOptionsLookup, selectorChartZoomAxisFilters], (axis, drawingArea, formattedSeries, seriesConfig, zoomMap, zoomOptions, getFilters) => computeAxisValue({
70
+ export const selectorChartXAxis = createSelector([selectorChartRawXAxis, selectorChartDrawingArea, selectorChartSeriesProcessed, selectorChartSeriesConfig, selectorChartZoomMap, selectorChartZoomOptionsLookup, selectorChartZoomAxisFilters, selectorPreferStrictDomainInLineCharts], (axis, drawingArea, formattedSeries, seriesConfig, zoomMap, zoomOptions, getFilters, preferStrictDomainInLineCharts) => computeAxisValue({
70
71
  drawingArea,
71
72
  formattedSeries,
72
73
  axis,
@@ -74,9 +75,10 @@ export const selectorChartXAxis = createSelector([selectorChartRawXAxis, selecto
74
75
  axisDirection: 'x',
75
76
  zoomMap,
76
77
  zoomOptions,
77
- getFilters
78
+ getFilters,
79
+ preferStrictDomainInLineCharts
78
80
  }));
79
- export const selectorChartYAxis = createSelector([selectorChartRawYAxis, selectorChartDrawingArea, selectorChartSeriesProcessed, selectorChartSeriesConfig, selectorChartZoomMap, selectorChartZoomOptionsLookup, selectorChartZoomAxisFilters], (axis, drawingArea, formattedSeries, seriesConfig, zoomMap, zoomOptions, getFilters) => computeAxisValue({
81
+ export const selectorChartYAxis = createSelector([selectorChartRawYAxis, selectorChartDrawingArea, selectorChartSeriesProcessed, selectorChartSeriesConfig, selectorChartZoomMap, selectorChartZoomOptionsLookup, selectorChartZoomAxisFilters, selectorPreferStrictDomainInLineCharts], (axis, drawingArea, formattedSeries, seriesConfig, zoomMap, zoomOptions, getFilters, preferStrictDomainInLineCharts) => computeAxisValue({
80
82
  drawingArea,
81
83
  formattedSeries,
82
84
  axis,
@@ -84,7 +86,8 @@ export const selectorChartYAxis = createSelector([selectorChartRawYAxis, selecto
84
86
  axisDirection: 'y',
85
87
  zoomMap,
86
88
  zoomOptions,
87
- getFilters
89
+ getFilters,
90
+ preferStrictDomainInLineCharts
88
91
  }));
89
92
  export const selectorChartAxis = createSelector([selectorChartXAxis, selectorChartYAxis, (_, axisId) => axisId], (xAxes, yAxes, axisId) => xAxes?.axis[axisId] ?? yAxes?.axis[axisId]);
90
93
  export const selectorChartRawAxis = createSelector([selectorChartRawXAxis, selectorChartRawYAxis, (state, axisId) => axisId], (xAxes, yAxes, axisId) => {
@@ -0,0 +1,47 @@
1
+ import { AxisItemIdentifier, ChartsAxisProps } from "../../../../models/axis.js";
2
+ export declare const selectorChartsHighlightXAxisIndex: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.js").UseChartExperimentalFeaturesState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<import("../useChartInteraction/useChartInteraction.types.js").UseChartInteractionState> & {
3
+ cacheKey: import("../../models/index.js").ChartStateCacheKey;
4
+ } & {
5
+ cacheKey: import("../../models/index.js").ChartStateCacheKey;
6
+ } & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & Partial<{}>, AxisItemIdentifier[], [id?: import("../../../index.js").AxisId | undefined]>;
7
+ export declare const selectorChartsHighlightYAxisIndex: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.js").UseChartExperimentalFeaturesState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<import("../useChartInteraction/useChartInteraction.types.js").UseChartInteractionState> & {
8
+ cacheKey: import("../../models/index.js").ChartStateCacheKey;
9
+ } & {
10
+ cacheKey: import("../../models/index.js").ChartStateCacheKey;
11
+ } & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & Partial<{}>, AxisItemIdentifier[], [id?: import("../../../index.js").AxisId | undefined]>;
12
+ export declare const selectorChartsHighlightXAxisValue: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.js").UseChartExperimentalFeaturesState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<import("../useChartInteraction/useChartInteraction.types.js").UseChartInteractionState> & {
13
+ cacheKey: import("../../models/index.js").ChartStateCacheKey;
14
+ } & {
15
+ cacheKey: import("../../models/index.js").ChartStateCacheKey;
16
+ } & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & Partial<{}>, {
17
+ value: any;
18
+ axisId: import("../../../index.js").AxisId;
19
+ dataIndex: number;
20
+ }[] | {
21
+ axisId: import("../../../index.js").AxisId;
22
+ dataIndex: number | null;
23
+ value: number | Date;
24
+ }[], [id?: import("../../../index.js").AxisId | undefined]>;
25
+ export declare const selectorChartsHighlightYAxisValue: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.js").UseChartExperimentalFeaturesState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<import("../useChartInteraction/useChartInteraction.types.js").UseChartInteractionState> & {
26
+ cacheKey: import("../../models/index.js").ChartStateCacheKey;
27
+ } & {
28
+ cacheKey: import("../../models/index.js").ChartStateCacheKey;
29
+ } & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & Partial<{}>, {
30
+ value: any;
31
+ axisId: import("../../../index.js").AxisId;
32
+ dataIndex: number;
33
+ }[] | {
34
+ axisId: import("../../../index.js").AxisId;
35
+ dataIndex: number | null;
36
+ value: number | Date;
37
+ }[], [id?: import("../../../index.js").AxisId | undefined]>;
38
+ export declare const selectorChartsHighlightXAxis: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.js").UseChartExperimentalFeaturesState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
39
+ cacheKey: import("../../models/index.js").ChartStateCacheKey;
40
+ } & Partial<{}> & {
41
+ cacheKey: import("../../models/index.js").ChartStateCacheKey;
42
+ }, import("../../../index.js").ComputedAxis<keyof import("../../../index.js").AxisScaleConfig, any, ChartsAxisProps>[], []>;
43
+ export declare const selectorChartsHighlightYAxis: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.js").UseChartExperimentalFeaturesState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
44
+ cacheKey: import("../../models/index.js").ChartStateCacheKey;
45
+ } & Partial<{}> & {
46
+ cacheKey: import("../../models/index.js").ChartStateCacheKey;
47
+ }, import("../../../index.js").ComputedAxis<keyof import("../../../index.js").AxisScaleConfig, any, ChartsAxisProps>[], []>;
@@ -0,0 +1,48 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import { createSelector } from "../../utils/selectors.js";
3
+ import { selectorChartXAxis, selectorChartYAxis } from "./useChartCartesianAxisRendering.selectors.js";
4
+ import { selectorChartsInteractionXAxisIndex, selectorChartsInteractionXAxisValue, selectorChartsInteractionYAxisIndex, selectorChartsInteractionYAxisValue } from "./useChartCartesianInteraction.selectors.js";
5
+ const selectorChartControlledCartesianAxisHighlight = state => state.controlledCartesianAxisHighlight;
6
+ const selectAxisHighlight = (computedIndex, axis, axisItems) => {
7
+ if (axisItems !== undefined) {
8
+ return axisItems.filter(item => axis.axis[item.axisId] !== undefined).map(item => item);
9
+ }
10
+ return computedIndex === null ? [] : [{
11
+ axisId: axis.axisIds[0],
12
+ dataIndex: computedIndex
13
+ }];
14
+ };
15
+ export const selectorChartsHighlightXAxisIndex = createSelector([selectorChartsInteractionXAxisIndex, selectorChartXAxis, selectorChartControlledCartesianAxisHighlight], selectAxisHighlight);
16
+ export const selectorChartsHighlightYAxisIndex = createSelector([selectorChartsInteractionYAxisIndex, selectorChartYAxis, selectorChartControlledCartesianAxisHighlight], selectAxisHighlight);
17
+ const selectAxisHighlightWithValue = (computedIndex, computedValue, axis, axisItems) => {
18
+ if (axisItems !== undefined) {
19
+ return axisItems.map(item => _extends({}, item, {
20
+ value: axis.axis[item.axisId]?.data?.[item.dataIndex]
21
+ })).filter(({
22
+ value
23
+ }) => value !== undefined);
24
+ }
25
+ return computedValue === null ? [] : [{
26
+ axisId: axis.axisIds[0],
27
+ dataIndex: computedIndex,
28
+ value: computedValue
29
+ }];
30
+ };
31
+ export const selectorChartsHighlightXAxisValue = createSelector([selectorChartsInteractionXAxisIndex, selectorChartsInteractionXAxisValue, selectorChartXAxis, selectorChartControlledCartesianAxisHighlight], selectAxisHighlightWithValue);
32
+ export const selectorChartsHighlightYAxisValue = createSelector([selectorChartsInteractionYAxisIndex, selectorChartsInteractionYAxisValue, selectorChartYAxis, selectorChartControlledCartesianAxisHighlight], selectAxisHighlightWithValue);
33
+
34
+ /**
35
+ * Get the scale of the axis with highlight if controlled. The default axis otherwise.
36
+ * @param controlledItem The controlled value of highlightedAxis
37
+ * @param axis The axis state after all the processing
38
+ * @returns axis state
39
+ */
40
+ const selectAxis = (axisItems, axis) => {
41
+ if (axisItems === undefined) {
42
+ return [axis.axis[axis.axisIds[0]]];
43
+ }
44
+ const filteredAxes = axisItems.map(item => axis.axis[item.axisId] ?? null).filter(item => item !== null);
45
+ return filteredAxes;
46
+ };
47
+ export const selectorChartsHighlightXAxis = createSelector([selectorChartControlledCartesianAxisHighlight, selectorChartXAxis], selectAxis);
48
+ export const selectorChartsHighlightYAxis = createSelector([selectorChartControlledCartesianAxisHighlight, selectorChartYAxis], selectAxis);