@mui/x-charts 8.7.0 → 8.8.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 (160) hide show
  1. package/BarChart/BarChart.d.ts +1 -1
  2. package/BarChart/BarChart.js +16 -0
  3. package/CHANGELOG.md +98 -0
  4. package/ChartContainer/ChartContainer.js +22 -0
  5. package/ChartContainer/useChartContainerProps.js +8 -2
  6. package/ChartDataProvider/ChartDataProvider.js +6 -0
  7. package/ChartDataProvider/useChartDataProviderProps.d.ts +1 -1
  8. package/ChartDataProvider/useChartDataProviderProps.js +6 -1
  9. package/ChartsAxisHighlight/ChartsXAxisHighlight.d.ts +1 -1
  10. package/ChartsAxisHighlight/ChartsXAxisHighlight.js +34 -24
  11. package/ChartsAxisHighlight/ChartsYAxisHighlight.d.ts +1 -1
  12. package/ChartsAxisHighlight/ChartsYAxisHighlight.js +34 -24
  13. package/Gauge/GaugeContainer.d.ts +1 -1
  14. package/LineChart/LineChart.js +22 -0
  15. package/LineChart/LineHighlightPlot.js +10 -4
  16. package/LineChart/MarkPlot.js +17 -3
  17. package/LineChart/useAreaPlotData.js +3 -2
  18. package/PieChart/PieChart.d.ts +1 -1
  19. package/RadarChart/RadarDataProvider/RadarDataProvider.d.ts +1 -1
  20. package/ScatterChart/ScatterChart.d.ts +1 -1
  21. package/ScatterChart/ScatterPlot.js +2 -2
  22. package/ScatterChart/seriesConfig/seriesProcessor.js +3 -0
  23. package/SparkLineChart/SparkLineChart.d.ts +1 -1
  24. package/SparkLineChart/SparkLineChart.js +16 -0
  25. package/esm/BarChart/BarChart.d.ts +1 -1
  26. package/esm/BarChart/BarChart.js +16 -0
  27. package/esm/ChartContainer/ChartContainer.js +22 -0
  28. package/esm/ChartContainer/useChartContainerProps.js +8 -2
  29. package/esm/ChartDataProvider/ChartDataProvider.js +6 -0
  30. package/esm/ChartDataProvider/useChartDataProviderProps.d.ts +1 -1
  31. package/esm/ChartDataProvider/useChartDataProviderProps.js +7 -2
  32. package/esm/ChartsAxisHighlight/ChartsXAxisHighlight.d.ts +1 -1
  33. package/esm/ChartsAxisHighlight/ChartsXAxisHighlight.js +36 -26
  34. package/esm/ChartsAxisHighlight/ChartsYAxisHighlight.d.ts +1 -1
  35. package/esm/ChartsAxisHighlight/ChartsYAxisHighlight.js +36 -26
  36. package/esm/Gauge/GaugeContainer.d.ts +1 -1
  37. package/esm/LineChart/LineChart.js +22 -0
  38. package/esm/LineChart/LineHighlightPlot.js +11 -5
  39. package/esm/LineChart/MarkPlot.js +17 -3
  40. package/esm/LineChart/useAreaPlotData.js +3 -2
  41. package/esm/PieChart/PieChart.d.ts +1 -1
  42. package/esm/RadarChart/RadarDataProvider/RadarDataProvider.d.ts +1 -1
  43. package/esm/ScatterChart/ScatterChart.d.ts +1 -1
  44. package/esm/ScatterChart/ScatterPlot.js +2 -2
  45. package/esm/ScatterChart/seriesConfig/seriesProcessor.js +3 -0
  46. package/esm/SparkLineChart/SparkLineChart.d.ts +1 -1
  47. package/esm/SparkLineChart/SparkLineChart.js +16 -0
  48. package/esm/hooks/useAxis.d.ts +2 -2
  49. package/esm/index.js +1 -1
  50. package/esm/internals/constants.d.ts +3 -0
  51. package/esm/internals/constants.js +4 -0
  52. package/esm/internals/getLabel.d.ts +1 -1
  53. package/esm/internals/index.d.ts +1 -0
  54. package/esm/internals/index.js +1 -0
  55. package/esm/internals/plugins/corePlugins/corePlugins.d.ts +3 -2
  56. package/esm/internals/plugins/corePlugins/corePlugins.js +2 -1
  57. package/esm/internals/plugins/corePlugins/useChartAnimation/useChartAnimation.selectors.d.ts +1 -1
  58. package/esm/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.selectors.d.ts +3 -3
  59. package/esm/internals/plugins/corePlugins/useChartExperimentalFeature/index.d.ts +3 -0
  60. package/esm/internals/plugins/corePlugins/useChartExperimentalFeature/index.js +2 -0
  61. package/esm/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.d.ts +3 -0
  62. package/esm/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.js +27 -0
  63. package/esm/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.selectors.d.ts +8 -0
  64. package/esm/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.selectors.js +3 -0
  65. package/esm/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.d.ts +21 -0
  66. package/esm/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.js +1 -0
  67. package/esm/internals/plugins/corePlugins/useChartId/useChartId.selectors.d.ts +1 -1
  68. package/esm/internals/plugins/corePlugins/useChartSeries/useChartSeries.selectors.d.ts +2 -2
  69. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.d.ts +5 -1
  70. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.js +4 -2
  71. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeZoom.d.ts +1 -0
  72. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeZoom.js +5 -2
  73. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisDomainLimit.d.ts +7 -0
  74. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisDomainLimit.js +14 -0
  75. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/index.d.ts +2 -0
  76. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/index.js +2 -0
  77. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartAxisSize.selectors.d.ts +4 -4
  78. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.js +46 -3
  79. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.types.d.ts +18 -1
  80. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisPreview.selectors.d.ts +3 -0
  81. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisPreview.selectors.js +76 -0
  82. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.d.ts +10 -5
  83. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.js +8 -5
  84. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianHighlight.selectors.d.ts +47 -0
  85. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianHighlight.selectors.js +48 -0
  86. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.d.ts +18 -12
  87. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.js +16 -2
  88. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/zoom.types.d.ts +6 -1
  89. package/esm/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.selectors.d.ts +5 -5
  90. package/esm/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.d.ts +6 -6
  91. package/esm/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.selectors.d.ts +5 -5
  92. package/esm/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarInteraction.selectors.d.ts +7 -8
  93. package/esm/internals/plugins/featurePlugins/useChartVoronoi/useChartVoronoi.selectors.d.ts +1 -1
  94. package/esm/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.selectors.d.ts +1 -1
  95. package/esm/internals/plugins/utils/useLazySelectorEffect.d.ts +7 -0
  96. package/esm/internals/plugins/utils/useLazySelectorEffect.js +70 -0
  97. package/esm/internals/store/useCharts.d.ts +1 -1
  98. package/esm/models/axis.d.ts +15 -0
  99. package/esm/models/axis.js +4 -0
  100. package/esm/models/index.d.ts +1 -1
  101. package/esm/models/seriesType/scatter.d.ts +11 -2
  102. package/esm/themeAugmentation/components.d.ts +3 -0
  103. package/esm/themeAugmentation/props.d.ts +2 -0
  104. package/hooks/useAxis.d.ts +2 -2
  105. package/index.js +1 -1
  106. package/internals/constants.d.ts +3 -0
  107. package/internals/constants.js +5 -1
  108. package/internals/getLabel.d.ts +1 -1
  109. package/internals/index.d.ts +1 -0
  110. package/internals/index.js +8 -0
  111. package/internals/plugins/corePlugins/corePlugins.d.ts +3 -2
  112. package/internals/plugins/corePlugins/corePlugins.js +2 -1
  113. package/internals/plugins/corePlugins/useChartAnimation/useChartAnimation.selectors.d.ts +1 -1
  114. package/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.selectors.d.ts +3 -3
  115. package/internals/plugins/corePlugins/useChartExperimentalFeature/index.d.ts +3 -0
  116. package/internals/plugins/corePlugins/useChartExperimentalFeature/index.js +27 -0
  117. package/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.d.ts +3 -0
  118. package/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.js +34 -0
  119. package/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.selectors.d.ts +8 -0
  120. package/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.selectors.js +10 -0
  121. package/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.d.ts +21 -0
  122. package/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.js +5 -0
  123. package/internals/plugins/corePlugins/useChartId/useChartId.selectors.d.ts +1 -1
  124. package/internals/plugins/corePlugins/useChartSeries/useChartSeries.selectors.d.ts +2 -2
  125. package/internals/plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.d.ts +5 -1
  126. package/internals/plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.js +4 -2
  127. package/internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeZoom.d.ts +1 -0
  128. package/internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeZoom.js +4 -1
  129. package/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisDomainLimit.d.ts +7 -0
  130. package/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisDomainLimit.js +21 -0
  131. package/internals/plugins/featurePlugins/useChartCartesianAxis/index.d.ts +2 -0
  132. package/internals/plugins/featurePlugins/useChartCartesianAxis/index.js +24 -0
  133. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartAxisSize.selectors.d.ts +4 -4
  134. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.js +46 -3
  135. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.types.d.ts +18 -1
  136. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisPreview.selectors.d.ts +3 -0
  137. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisPreview.selectors.js +82 -0
  138. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.d.ts +10 -5
  139. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.js +9 -6
  140. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianHighlight.selectors.d.ts +47 -0
  141. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianHighlight.selectors.js +55 -0
  142. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.d.ts +18 -12
  143. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.js +18 -3
  144. package/internals/plugins/featurePlugins/useChartCartesianAxis/zoom.types.d.ts +6 -1
  145. package/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.selectors.d.ts +5 -5
  146. package/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.d.ts +6 -6
  147. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.selectors.d.ts +5 -5
  148. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarInteraction.selectors.d.ts +7 -8
  149. package/internals/plugins/featurePlugins/useChartVoronoi/useChartVoronoi.selectors.d.ts +1 -1
  150. package/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.selectors.d.ts +1 -1
  151. package/internals/plugins/utils/useLazySelectorEffect.d.ts +7 -0
  152. package/internals/plugins/utils/useLazySelectorEffect.js +77 -0
  153. package/internals/store/useCharts.d.ts +1 -1
  154. package/models/axis.d.ts +15 -0
  155. package/models/axis.js +4 -0
  156. package/models/index.d.ts +1 -1
  157. package/models/seriesType/scatter.d.ts +11 -2
  158. package/package.json +4 -4
  159. package/themeAugmentation/components.d.ts +3 -0
  160. package/themeAugmentation/props.d.ts +2 -0
@@ -0,0 +1,21 @@
1
+ import { ChartPluginSignature } from "../../models/index.js";
2
+ export interface ChartExperimentalFeatures {
3
+ /**
4
+ * Default domainLimit to strict for line chart x-axis.
5
+ */
6
+ preferStrictDomainInLineCharts?: boolean;
7
+ }
8
+ export interface UseChartExperimentalFeaturesParameters {
9
+ /**
10
+ * Options to enable features planned for the next major.
11
+ */
12
+ experimentalFeatures?: ChartExperimentalFeatures;
13
+ }
14
+ export interface UseChartExperimentalFeaturesState {
15
+ experimentalFeatures?: ChartExperimentalFeatures;
16
+ }
17
+ export type UseChartExperimentalFeaturesSignature = ChartPluginSignature<{
18
+ params: UseChartExperimentalFeaturesParameters;
19
+ defaultizedParams: UseChartExperimentalFeaturesParameters;
20
+ state: UseChartExperimentalFeaturesState;
21
+ }>;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -3,7 +3,7 @@
3
3
  * @param {ChartState<[UseChartIdSignature]>} state The state of the chart.
4
4
  * @returns {string} The id attribute of the chart.
5
5
  */
6
- export declare const selectorChartId: import("reselect").Selector<import("./useChartId.types.js").UseChartIdState & import("../useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../useChartInteractionListener/index.js").UseChartInteractionListenerState & Partial<{}> & {
6
+ export declare const selectorChartId: import("reselect").Selector<import("./useChartId.types.js").UseChartIdState & import("../useChartExperimentalFeature/useChartExperimentalFeature.types.js").UseChartExperimentalFeaturesState & import("../useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../useChartInteractionListener/index.js").UseChartInteractionListenerState & Partial<{}> & {
7
7
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
8
8
  } & {
9
9
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
@@ -1,12 +1,12 @@
1
1
  import { ChartRootSelector } from "../../utils/selectors.js";
2
2
  import { UseChartSeriesSignature } from "./useChartSeries.types.js";
3
3
  export declare const selectorChartSeriesState: ChartRootSelector<UseChartSeriesSignature>;
4
- export declare const selectorChartSeriesProcessed: import("reselect").Selector<import("../useChartId/useChartId.types.js").UseChartIdState & import("../useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("./useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../useChartInteractionListener/index.js").UseChartInteractionListenerState & Partial<{}> & {
4
+ export declare const selectorChartSeriesProcessed: import("reselect").Selector<import("../useChartId/useChartId.types.js").UseChartIdState & import("../useChartExperimentalFeature/useChartExperimentalFeature.types.js").UseChartExperimentalFeaturesState & import("../useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("./useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../useChartInteractionListener/index.js").UseChartInteractionListenerState & Partial<{}> & {
5
5
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
6
6
  } & {
7
7
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
8
8
  }, import("./useChartSeries.types.js").ProcessedSeries<keyof import("../../../index.js").ChartsSeriesConfig>, any[]>;
9
- export declare const selectorChartSeriesConfig: import("reselect").Selector<import("../useChartId/useChartId.types.js").UseChartIdState & import("../useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("./useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../useChartInteractionListener/index.js").UseChartInteractionListenerState & Partial<{}> & {
9
+ export declare const selectorChartSeriesConfig: import("reselect").Selector<import("../useChartId/useChartId.types.js").UseChartIdState & import("../useChartExperimentalFeature/useChartExperimentalFeature.types.js").UseChartExperimentalFeaturesState & import("../useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("./useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../useChartInteractionListener/index.js").UseChartInteractionListenerState & Partial<{}> & {
10
10
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
11
11
  } & {
12
12
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
@@ -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[];
@@ -16,6 +16,7 @@ var _dateHelpers = require("../../../dateHelpers");
16
16
  var _zoom = require("./zoom");
17
17
  var _getAxisExtremum = require("./getAxisExtremum");
18
18
  var _getAxisTriggerTooltip = require("./getAxisTriggerTooltip");
19
+ var _getAxisDomainLimit = require("./getAxisDomainLimit");
19
20
  function getRange(drawingArea, axisDirection,
20
21
  // | 'rotation' | 'radius',
21
22
  axis) {
@@ -32,7 +33,8 @@ function computeAxisValue({
32
33
  axisDirection,
33
34
  zoomMap,
34
35
  zoomOptions,
35
- getFilters
36
+ getFilters,
37
+ preferStrictDomainInLineCharts
36
38
  }) {
37
39
  if (allAxis === undefined) {
38
40
  return {
@@ -102,7 +104,7 @@ function computeAxisValue({
102
104
  return;
103
105
  }
104
106
  const scaleType = axis.scaleType ?? 'linear';
105
- const domainLimit = axis.domainLimit ?? 'nice';
107
+ const domainLimit = preferStrictDomainInLineCharts ? (0, _getAxisDomainLimit.getAxisDomainLimit)(axis, axisDirection, axisIndex, formattedSeries) : axis.domainLimit ?? 'nice';
106
108
  const axisExtremums = [axis.min ?? minData, axis.max ?? maxData];
107
109
  if (typeof domainLimit === 'function') {
108
110
  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
  };
@@ -17,6 +17,7 @@ const defaultZoomOptions = exports.defaultZoomOptions = {
17
17
  filterMode: 'keep',
18
18
  slider: {
19
19
  enabled: false,
20
+ preview: false,
20
21
  size: _constants.DEFAULT_ZOOM_SLIDER_SIZE,
21
22
  showTooltip: _constants.DEFAULT_ZOOM_SLIDER_SHOW_TOOLTIP
22
23
  }
@@ -35,7 +36,9 @@ const defaultizeZoom = (zoom, axisId, axisDirection) => {
35
36
  axisId,
36
37
  axisDirection
37
38
  }, defaultZoomOptions, zoom, {
38
- slider: (0, _extends2.default)({}, defaultZoomOptions.slider, zoom.slider)
39
+ slider: (0, _extends2.default)({}, defaultZoomOptions.slider, {
40
+ size: zoom.slider?.preview ?? defaultZoomOptions.slider.preview ? _constants.DEFAULT_ZOOM_SLIDER_PREVIEW_SIZE : _constants.DEFAULT_ZOOM_SLIDER_SIZE
41
+ }, zoom.slider)
39
42
  });
40
43
  };
41
44
  exports.defaultizeZoom = defaultizeZoom;
@@ -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,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getAxisDomainLimit = void 0;
7
+ const getAxisDomainLimit = (axis, axisDirection, axisIndex, formattedSeries) => {
8
+ if (axis.domainLimit !== undefined) {
9
+ return axis.domainLimit;
10
+ }
11
+ if (axisDirection === 'x') {
12
+ for (const seriesId of formattedSeries.line?.seriesOrder ?? []) {
13
+ const series = formattedSeries.line.series[seriesId];
14
+ if (series.xAxisId === axis.id || series.xAxisId === undefined && axisIndex === 0) {
15
+ return 'strict';
16
+ }
17
+ }
18
+ }
19
+ return 'nice';
20
+ };
21
+ exports.getAxisDomainLimit = getAxisDomainLimit;
@@ -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";
@@ -63,6 +63,30 @@ Object.keys(_useChartCartesianInteraction).forEach(function (key) {
63
63
  }
64
64
  });
65
65
  });
66
+ var _useChartCartesianHighlight = require("./useChartCartesianHighlight.selectors");
67
+ Object.keys(_useChartCartesianHighlight).forEach(function (key) {
68
+ if (key === "default" || key === "__esModule") return;
69
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
70
+ if (key in exports && exports[key] === _useChartCartesianHighlight[key]) return;
71
+ Object.defineProperty(exports, key, {
72
+ enumerable: true,
73
+ get: function () {
74
+ return _useChartCartesianHighlight[key];
75
+ }
76
+ });
77
+ });
78
+ var _useChartCartesianAxisPreview = require("./useChartCartesianAxisPreview.selectors");
79
+ Object.keys(_useChartCartesianAxisPreview).forEach(function (key) {
80
+ if (key === "default" || key === "__esModule") return;
81
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
82
+ if (key in exports && exports[key] === _useChartCartesianAxisPreview[key]) return;
83
+ Object.defineProperty(exports, key, {
84
+ enumerable: true,
85
+ get: function () {
86
+ return _useChartCartesianAxisPreview[key];
87
+ }
88
+ });
89
+ });
66
90
  var _defaultizeAxis = require("./defaultizeAxis");
67
91
  var _computeAxisValue = require("./computeAxisValue");
68
92
  Object.keys(_computeAxisValue).forEach(function (key) {
@@ -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;
@@ -9,6 +9,8 @@ Object.defineProperty(exports, "__esModule", {
9
9
  exports.useChartCartesianAxis = void 0;
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
11
  var React = _interopRequireWildcard(require("react"));
12
+ var _useEnhancedEffect = _interopRequireDefault(require("@mui/utils/useEnhancedEffect"));
13
+ var _useAssertModelConsistency = require("@mui/x-internals/useAssertModelConsistency");
12
14
  var _warning = require("@mui/x-internals/warning");
13
15
  var _colorPalettes = require("../../../../colorPalettes");
14
16
  var _useSelector = require("../../../store/useSelector");
@@ -19,6 +21,8 @@ var _useChartCartesianAxisRendering = require("./useChartCartesianAxisRendering.
19
21
  var _getAxisValue = require("./getAxisValue");
20
22
  var _getSVGPoint = require("../../../getSVGPoint");
21
23
  var _useChartInteraction = require("../useChartInteraction");
24
+ var _useChartCartesianInteraction = require("./useChartCartesianInteraction.selectors");
25
+ var _useLazySelectorEffect = require("../../utils/useLazySelectorEffect");
22
26
  const useChartCartesianAxis = ({
23
27
  params,
24
28
  store,
@@ -29,7 +33,8 @@ const useChartCartesianAxis = ({
29
33
  const {
30
34
  xAxis,
31
35
  yAxis,
32
- dataset
36
+ dataset,
37
+ onHighlightedAxisChange
33
38
  } = params;
34
39
  if (process.env.NODE_ENV !== 'production') {
35
40
  const ids = [...(xAxis ?? []), ...(yAxis ?? [])].filter(axis => axis.id).map(axis => axis.id);
@@ -49,6 +54,25 @@ const useChartCartesianAxis = ({
49
54
  axis: yAxisWithScale,
50
55
  axisIds: yAxisIds
51
56
  } = (0, _useSelector.useSelector)(store, _useChartCartesianAxisRendering.selectorChartYAxis);
57
+ (0, _useAssertModelConsistency.useAssertModelConsistency)({
58
+ warningPrefix: 'MUI X Charts',
59
+ componentName: 'Chart',
60
+ propName: 'highlightedAxis',
61
+ controlled: params.highlightedAxis,
62
+ defaultValue: undefined
63
+ });
64
+ (0, _useEnhancedEffect.default)(() => {
65
+ if (params.highlightedAxis !== undefined) {
66
+ store.update(prevState => {
67
+ if (prevState.controlledCartesianAxisHighlight === params.highlightedAxis) {
68
+ return prevState;
69
+ }
70
+ return (0, _extends2.default)({}, prevState, {
71
+ controlledCartesianAxisHighlight: params.highlightedAxis
72
+ });
73
+ });
74
+ }
75
+ }, [store, params.highlightedAxis]);
52
76
 
53
77
  // The effect do not track any value defined synchronously during the 1st render by hooks called after `useChartCartesianAxis`
54
78
  // As a consequence, the state generated by the 1st run of this useEffect will always be equal to the initialization one
@@ -67,6 +91,21 @@ const useChartCartesianAxis = ({
67
91
  }, [seriesConfig, drawingArea, xAxis, yAxis, dataset, store]);
68
92
  const usedXAxis = xAxisIds[0];
69
93
  const usedYAxis = yAxisIds[0];
94
+ (0, _useLazySelectorEffect.useLazySelectorEffect)(store, _useChartCartesianInteraction.selectorChartAxisInteraction, (prevAxisInteraction, nextAxisInteraction) => {
95
+ if (Object.is(prevAxisInteraction, nextAxisInteraction)) {
96
+ return;
97
+ }
98
+ if (prevAxisInteraction.length !== nextAxisInteraction.length) {
99
+ onHighlightedAxisChange(nextAxisInteraction);
100
+ return;
101
+ }
102
+ if (prevAxisInteraction?.some(({
103
+ axisId,
104
+ dataIndex
105
+ }, itemIndex) => nextAxisInteraction[itemIndex].axisId !== axisId || nextAxisInteraction[itemIndex].dataIndex !== dataIndex)) {
106
+ onHighlightedAxisChange(nextAxisInteraction);
107
+ }
108
+ }, !onHighlightedAxisChange);
70
109
  React.useEffect(() => {
71
110
  const element = svgRef.current;
72
111
  if (!isInteractionEnabled || !element || params.disableAxisListener) {
@@ -167,7 +206,9 @@ useChartCartesianAxis.params = {
167
206
  yAxis: true,
168
207
  dataset: true,
169
208
  onAxisClick: true,
170
- disableAxisListener: true
209
+ disableAxisListener: true,
210
+ onHighlightedAxisChange: true,
211
+ highlightedAxis: true
171
212
  };
172
213
  useChartCartesianAxis.getDefaultizedParams = ({
173
214
  params
@@ -179,9 +220,11 @@ useChartCartesianAxis.getDefaultizedParams = ({
179
220
  defaultizedYAxis: (0, _defaultizeAxis.defaultizeYAxis)(params.yAxis, params.dataset)
180
221
  });
181
222
  };
182
- useChartCartesianAxis.getInitialState = params => ({
223
+ useChartCartesianAxis.getInitialState = params => (0, _extends2.default)({
183
224
  cartesianAxis: {
184
225
  x: params.defaultizedXAxis,
185
226
  y: params.defaultizedYAxis
186
227
  }
228
+ }, params.highlightedAxis === undefined ? {} : {
229
+ controlledCartesianAxisHighlight: params.highlightedAxis
187
230
  });
@@ -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,82 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.selectorChartPreviewComputedYAxis = exports.selectorChartPreviewComputedXAxis = void 0;
7
+ var _selectors = require("../../utils/selectors");
8
+ var _useChartCartesianAxisLayout = require("./useChartCartesianAxisLayout.selectors");
9
+ var _useChartSeries = require("../../corePlugins/useChartSeries");
10
+ var _computeAxisValue = require("./computeAxisValue");
11
+ var _useChartCartesianAxisRendering = require("./useChartCartesianAxisRendering.selectors");
12
+ var _useChartDimensions = require("../../corePlugins/useChartDimensions");
13
+ var _constants = require("../../../constants");
14
+ function createPreviewDrawingArea(axisDirection, mainChartDrawingArea) {
15
+ return axisDirection === 'x' ? {
16
+ left: 0,
17
+ top: 0,
18
+ width: mainChartDrawingArea.width,
19
+ height: _constants.ZOOM_SLIDER_PREVIEW_SIZE,
20
+ right: mainChartDrawingArea.width,
21
+ bottom: _constants.ZOOM_SLIDER_PREVIEW_SIZE
22
+ } : {
23
+ left: 0,
24
+ top: 0,
25
+ width: _constants.ZOOM_SLIDER_PREVIEW_SIZE,
26
+ height: mainChartDrawingArea.height,
27
+ right: _constants.ZOOM_SLIDER_PREVIEW_SIZE,
28
+ bottom: mainChartDrawingArea.height
29
+ };
30
+ }
31
+ const selectorChartPreviewComputedXAxis = exports.selectorChartPreviewComputedXAxis = (0, _selectors.createSelector)([_useChartCartesianAxisLayout.selectorChartRawXAxis, _useChartSeries.selectorChartSeriesProcessed, _useChartSeries.selectorChartSeriesConfig, _useChartCartesianAxisRendering.selectorChartZoomOptionsLookup, _useChartCartesianAxisRendering.selectorChartZoomAxisFilters, _useChartDimensions.selectorChartDrawingArea, (_, axisId) => axisId], (xAxes, formattedSeries, seriesConfig, zoomOptions, getFilters, chartDrawingArea, axisId) => {
32
+ const hasAxis = xAxes?.some(axis => axis.id === axisId);
33
+ const drawingArea = createPreviewDrawingArea(hasAxis ? 'x' : 'y', chartDrawingArea);
34
+ const options = zoomOptions[axisId];
35
+ const zoomMap = new Map([[axisId, {
36
+ axisId,
37
+ start: options.minStart,
38
+ end: options.maxEnd
39
+ }]]);
40
+ const computedAxes = (0, _computeAxisValue.computeAxisValue)({
41
+ drawingArea,
42
+ formattedSeries,
43
+ axis: xAxes,
44
+ seriesConfig,
45
+ axisDirection: 'x',
46
+ zoomMap,
47
+ zoomOptions,
48
+ getFilters
49
+ });
50
+ if (computedAxes.axis[axisId]) {
51
+ return {
52
+ [axisId]: computedAxes.axis[axisId]
53
+ };
54
+ }
55
+ return computedAxes.axis;
56
+ });
57
+ const selectorChartPreviewComputedYAxis = exports.selectorChartPreviewComputedYAxis = (0, _selectors.createSelector)([_useChartCartesianAxisLayout.selectorChartRawYAxis, _useChartSeries.selectorChartSeriesProcessed, _useChartSeries.selectorChartSeriesConfig, _useChartCartesianAxisRendering.selectorChartZoomOptionsLookup, _useChartCartesianAxisRendering.selectorChartZoomAxisFilters, _useChartDimensions.selectorChartDrawingArea, (_, axisId) => axisId], (yAxes, formattedSeries, seriesConfig, zoomOptions, getFilters, chartDrawingArea, axisId) => {
58
+ const hasAxis = yAxes?.some(axis => axis.id === axisId);
59
+ const drawingArea = createPreviewDrawingArea(hasAxis ? 'y' : 'x', chartDrawingArea);
60
+ const options = zoomOptions[axisId];
61
+ const zoomMap = new Map([[axisId, {
62
+ axisId,
63
+ start: options.minStart,
64
+ end: options.maxEnd
65
+ }]]);
66
+ const computedAxes = (0, _computeAxisValue.computeAxisValue)({
67
+ drawingArea,
68
+ formattedSeries,
69
+ axis: yAxes,
70
+ seriesConfig,
71
+ axisDirection: 'y',
72
+ zoomMap,
73
+ zoomOptions,
74
+ getFilters
75
+ });
76
+ if (computedAxes.axis[axisId]) {
77
+ return {
78
+ [axisId]: computedAxes.axis[axisId]
79
+ };
80
+ }
81
+ return computedAxes.axis;
82
+ });
@@ -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;
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.selectorChartZoomOptionsLookup = exports.selectorChartZoomMap = exports.selectorChartZoomIsInteracting = exports.selectorChartYAxis = exports.selectorChartXAxis = exports.selectorChartRawAxis = exports.selectorChartAxisZoomOptionsLookup = exports.selectorChartAxis = exports.createZoomMap = void 0;
7
+ exports.selectorChartZoomOptionsLookup = exports.selectorChartZoomMap = exports.selectorChartZoomIsInteracting = exports.selectorChartZoomAxisFilters = exports.selectorChartYAxis = exports.selectorChartXAxis = exports.selectorChartRawAxis = exports.selectorChartAxisZoomOptionsLookup = exports.selectorChartAxis = exports.createZoomMap = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var _useChartDimensions = require("../../corePlugins/useChartDimensions");
10
10
  var _useChartSeries = require("../../corePlugins/useChartSeries");
@@ -13,6 +13,7 @@ var _computeAxisValue = require("./computeAxisValue");
13
13
  var _createAxisFilterMapper = require("./createAxisFilterMapper");
14
14
  var _createZoomLookup = require("./createZoomLookup");
15
15
  var _useChartCartesianAxisLayout = require("./useChartCartesianAxisLayout.selectors");
16
+ var _useChartExperimentalFeature = require("../../corePlugins/useChartExperimentalFeature");
16
17
  const createZoomMap = zoom => {
17
18
  const zoomItemMap = new Map();
18
19
  zoom.forEach(zoomItem => {
@@ -45,7 +46,7 @@ const selectorChartYFilter = (0, _selectors.createSelector)([selectorChartZoomMa
45
46
  formattedSeries,
46
47
  direction: 'y'
47
48
  }));
48
- const selectorChartZoomAxisFilters = (0, _selectors.createSelector)([selectorChartXFilter, selectorChartYFilter, _useChartCartesianAxisLayout.selectorChartRawXAxis, _useChartCartesianAxisLayout.selectorChartRawYAxis], (xMapper, yMapper, xAxis, yAxis) => {
49
+ const selectorChartZoomAxisFilters = exports.selectorChartZoomAxisFilters = (0, _selectors.createSelector)([selectorChartXFilter, selectorChartYFilter, _useChartCartesianAxisLayout.selectorChartRawXAxis, _useChartCartesianAxisLayout.selectorChartRawYAxis], (xMapper, yMapper, xAxis, yAxis) => {
49
50
  if (xMapper === undefined || yMapper === undefined) {
50
51
  // Early return if there is no zoom.
51
52
  return undefined;
@@ -74,7 +75,7 @@ const selectorChartZoomAxisFilters = (0, _selectors.createSelector)([selectorCha
74
75
  * The only interesting selectors that merge axis data and zoom if provided.
75
76
  */
76
77
 
77
- const selectorChartXAxis = exports.selectorChartXAxis = (0, _selectors.createSelector)([_useChartCartesianAxisLayout.selectorChartRawXAxis, _useChartDimensions.selectorChartDrawingArea, _useChartSeries.selectorChartSeriesProcessed, _useChartSeries.selectorChartSeriesConfig, selectorChartZoomMap, selectorChartZoomOptionsLookup, selectorChartZoomAxisFilters], (axis, drawingArea, formattedSeries, seriesConfig, zoomMap, zoomOptions, getFilters) => (0, _computeAxisValue.computeAxisValue)({
78
+ const selectorChartXAxis = exports.selectorChartXAxis = (0, _selectors.createSelector)([_useChartCartesianAxisLayout.selectorChartRawXAxis, _useChartDimensions.selectorChartDrawingArea, _useChartSeries.selectorChartSeriesProcessed, _useChartSeries.selectorChartSeriesConfig, selectorChartZoomMap, selectorChartZoomOptionsLookup, selectorChartZoomAxisFilters, _useChartExperimentalFeature.selectorPreferStrictDomainInLineCharts], (axis, drawingArea, formattedSeries, seriesConfig, zoomMap, zoomOptions, getFilters, preferStrictDomainInLineCharts) => (0, _computeAxisValue.computeAxisValue)({
78
79
  drawingArea,
79
80
  formattedSeries,
80
81
  axis,
@@ -82,9 +83,10 @@ const selectorChartXAxis = exports.selectorChartXAxis = (0, _selectors.createSel
82
83
  axisDirection: 'x',
83
84
  zoomMap,
84
85
  zoomOptions,
85
- getFilters
86
+ getFilters,
87
+ preferStrictDomainInLineCharts
86
88
  }));
87
- const selectorChartYAxis = exports.selectorChartYAxis = (0, _selectors.createSelector)([_useChartCartesianAxisLayout.selectorChartRawYAxis, _useChartDimensions.selectorChartDrawingArea, _useChartSeries.selectorChartSeriesProcessed, _useChartSeries.selectorChartSeriesConfig, selectorChartZoomMap, selectorChartZoomOptionsLookup, selectorChartZoomAxisFilters], (axis, drawingArea, formattedSeries, seriesConfig, zoomMap, zoomOptions, getFilters) => (0, _computeAxisValue.computeAxisValue)({
89
+ const selectorChartYAxis = exports.selectorChartYAxis = (0, _selectors.createSelector)([_useChartCartesianAxisLayout.selectorChartRawYAxis, _useChartDimensions.selectorChartDrawingArea, _useChartSeries.selectorChartSeriesProcessed, _useChartSeries.selectorChartSeriesConfig, selectorChartZoomMap, selectorChartZoomOptionsLookup, selectorChartZoomAxisFilters, _useChartExperimentalFeature.selectorPreferStrictDomainInLineCharts], (axis, drawingArea, formattedSeries, seriesConfig, zoomMap, zoomOptions, getFilters, preferStrictDomainInLineCharts) => (0, _computeAxisValue.computeAxisValue)({
88
90
  drawingArea,
89
91
  formattedSeries,
90
92
  axis,
@@ -92,7 +94,8 @@ const selectorChartYAxis = exports.selectorChartYAxis = (0, _selectors.createSel
92
94
  axisDirection: 'y',
93
95
  zoomMap,
94
96
  zoomOptions,
95
- getFilters
97
+ getFilters,
98
+ preferStrictDomainInLineCharts
96
99
  }));
97
100
  const selectorChartAxis = exports.selectorChartAxis = (0, _selectors.createSelector)([selectorChartXAxis, selectorChartYAxis, (_, axisId) => axisId], (xAxes, yAxes, axisId) => xAxes?.axis[axisId] ?? yAxes?.axis[axisId]);
98
101
  const selectorChartRawAxis = exports.selectorChartRawAxis = (0, _selectors.createSelector)([_useChartCartesianAxisLayout.selectorChartRawXAxis, _useChartCartesianAxisLayout.selectorChartRawYAxis, (state, axisId) => axisId], (xAxes, yAxes, axisId) => {