@mui/x-charts 8.18.0 → 8.20.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 (140) hide show
  1. package/BarChart/seriesConfig/bar/seriesProcessor.js +15 -9
  2. package/CHANGELOG.md +175 -0
  3. package/ChartsGrid/ChartsHorizontalGrid.js +5 -1
  4. package/ChartsGrid/ChartsVerticalGrid.js +5 -1
  5. package/ChartsSurface/ChartsSurface.js +5 -2
  6. package/ChartsTooltip/ChartsTooltipContainer.js +1 -1
  7. package/LineChart/seriesConfig/seriesProcessor.js +15 -10
  8. package/PieChart/PieArcPlot.js +5 -3
  9. package/RadarChart/RadarSeriesPlot/RadarSeriesArea.js +2 -2
  10. package/RadarChart/RadarSeriesPlot/RadarSeriesPlot.js +2 -2
  11. package/RadarChart/RadarSeriesPlot/useInteractionAllItemProps.d.ts +7 -0
  12. package/RadarChart/RadarSeriesPlot/useInteractionAllItemProps.js +26 -0
  13. package/esm/BarChart/seriesConfig/bar/seriesProcessor.js +15 -9
  14. package/esm/ChartsGrid/ChartsHorizontalGrid.js +5 -1
  15. package/esm/ChartsGrid/ChartsVerticalGrid.js +5 -1
  16. package/esm/ChartsSurface/ChartsSurface.js +5 -2
  17. package/esm/ChartsTooltip/ChartsTooltipContainer.js +1 -1
  18. package/esm/LineChart/seriesConfig/seriesProcessor.js +15 -10
  19. package/esm/PieChart/PieArcPlot.js +5 -3
  20. package/esm/RadarChart/RadarSeriesPlot/RadarSeriesArea.js +1 -1
  21. package/esm/RadarChart/RadarSeriesPlot/RadarSeriesPlot.js +1 -1
  22. package/esm/RadarChart/RadarSeriesPlot/useInteractionAllItemProps.d.ts +7 -0
  23. package/esm/RadarChart/RadarSeriesPlot/useInteractionAllItemProps.js +18 -0
  24. package/esm/hooks/useBarSeries.js +3 -5
  25. package/esm/hooks/useInteractionItemProps.d.ts +0 -5
  26. package/esm/hooks/useInteractionItemProps.js +0 -11
  27. package/esm/hooks/useLineSeries.js +3 -5
  28. package/esm/hooks/usePieSeries.js +3 -5
  29. package/esm/hooks/useRadarSeries.js +3 -5
  30. package/esm/hooks/useScatterSeries.js +3 -5
  31. package/esm/hooks/useTicks.js +12 -3
  32. package/esm/index.d.ts +2 -1
  33. package/esm/index.js +2 -1
  34. package/esm/internals/domUtils.js +30 -14
  35. package/esm/internals/getScale.d.ts +2 -1
  36. package/esm/internals/index.d.ts +1 -1
  37. package/esm/internals/index.js +1 -1
  38. package/esm/internals/plugins/corePlugins/useChartAnimation/useChartAnimation.selectors.js +2 -2
  39. package/esm/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.selectors.js +5 -6
  40. package/esm/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.selectors.js +2 -2
  41. package/esm/internals/plugins/corePlugins/useChartId/useChartId.selectors.js +2 -2
  42. package/esm/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.js +4 -1
  43. package/esm/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.types.d.ts +3 -1
  44. package/esm/internals/plugins/corePlugins/useChartSeries/processSeries.d.ts +16 -10
  45. package/esm/internals/plugins/corePlugins/useChartSeries/processSeries.js +20 -12
  46. package/esm/internals/plugins/corePlugins/useChartSeries/useChartSeries.js +5 -7
  47. package/esm/internals/plugins/corePlugins/useChartSeries/useChartSeries.selectors.d.ts +11 -4
  48. package/esm/internals/plugins/corePlugins/useChartSeries/useChartSeries.selectors.js +14 -5
  49. package/esm/internals/plugins/corePlugins/useChartSeries/useChartSeries.types.d.ts +3 -2
  50. package/esm/internals/plugins/featurePlugins/useChartBrush/useChartBrush.selectors.d.ts +1 -1
  51. package/esm/internals/plugins/featurePlugins/useChartBrush/useChartBrush.selectors.js +15 -15
  52. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.types.d.ts +1 -1
  53. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisPreview.selectors.js +5 -5
  54. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.d.ts +3 -0
  55. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.js +11 -11
  56. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianHighlight.selectors.js +5 -6
  57. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.js +7 -8
  58. package/esm/internals/plugins/featurePlugins/useChartClosestPoint/findClosestPoints.js +2 -2
  59. package/esm/internals/plugins/featurePlugins/useChartClosestPoint/useChartClosestPoint.selectors.js +2 -2
  60. package/esm/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.js +16 -12
  61. package/esm/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.selectors.js +15 -16
  62. package/esm/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.types.d.ts +4 -0
  63. package/esm/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.js +8 -8
  64. package/esm/internals/plugins/featurePlugins/useChartInteraction/useChartTooltip.selectors.d.ts +1 -1
  65. package/esm/internals/plugins/featurePlugins/useChartInteraction/useChartTooltip.selectors.js +4 -4
  66. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.js +15 -10
  67. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.selectors.js +11 -11
  68. package/esm/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.selectors.js +6 -6
  69. package/esm/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarInteraction.selectors.js +7 -8
  70. package/esm/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.selectors.js +2 -2
  71. package/esm/internals/plugins/utils/selectors.d.ts +1 -14
  72. package/esm/internals/plugins/utils/selectors.js +1 -5
  73. package/esm/internals/seriesSelectorOfType.d.ts +20 -0
  74. package/esm/internals/seriesSelectorOfType.js +38 -0
  75. package/esm/models/seriesType/config.d.ts +2 -2
  76. package/esm/utils/index.d.ts +4 -0
  77. package/esm/utils/index.js +5 -0
  78. package/esm/utils/niceDomain.d.ts +20 -0
  79. package/esm/utils/niceDomain.js +24 -0
  80. package/hooks/useBarSeries.js +3 -6
  81. package/hooks/useInteractionItemProps.d.ts +0 -5
  82. package/hooks/useInteractionItemProps.js +1 -13
  83. package/hooks/useLineSeries.js +3 -6
  84. package/hooks/usePieSeries.js +3 -6
  85. package/hooks/useRadarSeries.js +3 -6
  86. package/hooks/useScatterSeries.js +3 -6
  87. package/hooks/useTicks.js +12 -3
  88. package/index.d.ts +2 -1
  89. package/index.js +13 -1
  90. package/internals/domUtils.js +30 -14
  91. package/internals/getScale.d.ts +2 -1
  92. package/internals/index.d.ts +1 -1
  93. package/internals/index.js +4 -4
  94. package/internals/plugins/corePlugins/useChartAnimation/useChartAnimation.selectors.js +2 -2
  95. package/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.selectors.js +4 -5
  96. package/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.selectors.js +2 -2
  97. package/internals/plugins/corePlugins/useChartId/useChartId.selectors.js +2 -2
  98. package/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.js +4 -1
  99. package/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.types.d.ts +3 -1
  100. package/internals/plugins/corePlugins/useChartSeries/processSeries.d.ts +16 -10
  101. package/internals/plugins/corePlugins/useChartSeries/processSeries.js +23 -14
  102. package/internals/plugins/corePlugins/useChartSeries/useChartSeries.js +4 -6
  103. package/internals/plugins/corePlugins/useChartSeries/useChartSeries.selectors.d.ts +11 -4
  104. package/internals/plugins/corePlugins/useChartSeries/useChartSeries.selectors.js +15 -6
  105. package/internals/plugins/corePlugins/useChartSeries/useChartSeries.types.d.ts +3 -2
  106. package/internals/plugins/featurePlugins/useChartBrush/useChartBrush.selectors.d.ts +1 -1
  107. package/internals/plugins/featurePlugins/useChartBrush/useChartBrush.selectors.js +15 -15
  108. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.types.d.ts +1 -1
  109. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisPreview.selectors.js +5 -5
  110. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.d.ts +3 -0
  111. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.js +11 -11
  112. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianHighlight.selectors.js +4 -5
  113. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.js +6 -7
  114. package/internals/plugins/featurePlugins/useChartClosestPoint/findClosestPoints.js +2 -2
  115. package/internals/plugins/featurePlugins/useChartClosestPoint/useChartClosestPoint.selectors.js +2 -2
  116. package/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.js +16 -12
  117. package/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.selectors.js +14 -15
  118. package/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.types.d.ts +4 -0
  119. package/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.js +8 -8
  120. package/internals/plugins/featurePlugins/useChartInteraction/useChartTooltip.selectors.d.ts +1 -1
  121. package/internals/plugins/featurePlugins/useChartInteraction/useChartTooltip.selectors.js +4 -4
  122. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.js +15 -10
  123. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.selectors.js +11 -11
  124. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.selectors.js +6 -6
  125. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarInteraction.selectors.js +6 -7
  126. package/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.selectors.js +2 -2
  127. package/internals/plugins/utils/selectors.d.ts +1 -14
  128. package/internals/plugins/utils/selectors.js +1 -8
  129. package/internals/seriesSelectorOfType.d.ts +20 -0
  130. package/internals/seriesSelectorOfType.js +46 -0
  131. package/models/seriesType/config.d.ts +2 -2
  132. package/package.json +4 -4
  133. package/utils/index.d.ts +4 -0
  134. package/utils/index.js +16 -0
  135. package/utils/niceDomain.d.ts +20 -0
  136. package/utils/niceDomain.js +29 -0
  137. package/esm/internals/createSeriesSelectorOfType.d.ts +0 -4
  138. package/esm/internals/createSeriesSelectorOfType.js +0 -45
  139. package/internals/createSeriesSelectorOfType.d.ts +0 -4
  140. package/internals/createSeriesSelectorOfType.js +0 -53
@@ -4,12 +4,11 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.selectorDefaultYAxisTickNumber = exports.selectorDefaultXAxisTickNumber = exports.selectorChartZoomOptionsLookup = exports.selectorChartZoomMap = exports.selectorChartZoomIsInteracting = exports.selectorChartZoomAxisFilters = exports.selectorChartYScales = exports.selectorChartYAxisWithDomains = exports.selectorChartYAxis = exports.selectorChartXScales = exports.selectorChartXAxisWithDomains = exports.selectorChartXAxis = exports.selectorChartSeriesFlatbushMap = exports.selectorChartSeriesEmptyFlatbushMap = exports.selectorChartRawAxis = exports.selectorChartNormalizedYScales = exports.selectorChartNormalizedXScales = exports.selectorChartFilteredYDomains = exports.selectorChartFilteredXDomains = exports.selectorChartDefaultYAxisId = exports.selectorChartDefaultXAxisId = exports.selectorChartAxisZoomOptionsLookup = exports.selectorChartAxisZoomData = exports.selectorChartAxis = exports.createZoomMap = void 0;
7
+ exports.selectorDefaultYAxisTickNumber = exports.selectorDefaultXAxisTickNumber = exports.selectorChartZoomOptionsLookup = exports.selectorChartZoomMap = exports.selectorChartZoomIsInteracting = exports.selectorChartZoomAxisFilters = exports.selectorChartYScales = exports.selectorChartYAxisWithDomains = exports.selectorChartYAxis = exports.selectorChartXScales = exports.selectorChartXAxisWithDomains = exports.selectorChartXAxis = exports.selectorChartSeriesFlatbushMap = exports.selectorChartSeriesEmptyFlatbushMap = exports.selectorChartRawAxis = exports.selectorChartNormalizedYScales = exports.selectorChartNormalizedXScales = exports.selectorChartHasZoom = exports.selectorChartFilteredYDomains = exports.selectorChartFilteredXDomains = exports.selectorChartDefaultYAxisId = exports.selectorChartDefaultXAxisId = exports.selectorChartAxisZoomOptionsLookup = exports.selectorChartAxisZoomData = exports.selectorChartAxis = exports.createZoomMap = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var _store = require("@mui/x-internals/store");
10
10
  var _useChartDimensions = require("../../corePlugins/useChartDimensions");
11
11
  var _useChartSeries = require("../../corePlugins/useChartSeries");
12
- var _selectors = require("../../utils/selectors");
13
12
  var _computeAxisValue = require("./computeAxisValue");
14
13
  var _createAxisFilterMapper = require("./createAxisFilterMapper");
15
14
  var _createZoomLookup = require("./createZoomLookup");
@@ -32,24 +31,25 @@ const createZoomMap = zoom => {
32
31
  };
33
32
  exports.createZoomMap = createZoomMap;
34
33
  const selectorChartZoomState = state => state.zoom;
34
+ const selectorChartHasZoom = exports.selectorChartHasZoom = (0, _store.createSelector)(_useChartCartesianAxisLayout.selectorChartRawXAxis, _useChartCartesianAxisLayout.selectorChartRawYAxis, (xAxes, yAxes) => xAxes?.some(axis => Boolean(axis.zoom)) || yAxes?.some(axis => Boolean(axis.zoom)) || false);
35
35
 
36
36
  /**
37
37
  * Following selectors are not exported because they exist in the MIT chart only to ba able to reuse the Zoom state from the pro.
38
38
  */
39
39
 
40
- const selectorChartZoomIsInteracting = exports.selectorChartZoomIsInteracting = (0, _selectors.createSelector)([selectorChartZoomState], zoom => zoom?.isInteracting);
40
+ const selectorChartZoomIsInteracting = exports.selectorChartZoomIsInteracting = (0, _store.createSelector)(selectorChartZoomState, zoom => zoom?.isInteracting);
41
41
  const selectorChartZoomMap = exports.selectorChartZoomMap = (0, _store.createSelectorMemoized)(selectorChartZoomState, function selectorChartZoomMap(zoom) {
42
42
  return zoom?.zoomData && createZoomMap(zoom?.zoomData);
43
43
  });
44
- const selectorChartAxisZoomData = exports.selectorChartAxisZoomData = (0, _selectors.createSelector)([selectorChartZoomMap], (zoomMap, axisId) => zoomMap?.get(axisId));
44
+ const selectorChartAxisZoomData = exports.selectorChartAxisZoomData = (0, _store.createSelector)(selectorChartZoomMap, (zoomMap, axisId) => zoomMap?.get(axisId));
45
45
  const selectorChartZoomOptionsLookup = exports.selectorChartZoomOptionsLookup = (0, _store.createSelectorMemoized)(_useChartCartesianAxisLayout.selectorChartRawXAxis, _useChartCartesianAxisLayout.selectorChartRawYAxis, function selectorChartZoomOptionsLookup(xAxis, yAxis) {
46
46
  return (0, _extends2.default)({}, (0, _createZoomLookup.createZoomLookup)('x')(xAxis), (0, _createZoomLookup.createZoomLookup)('y')(yAxis));
47
47
  });
48
- const selectorChartAxisZoomOptionsLookup = exports.selectorChartAxisZoomOptionsLookup = (0, _selectors.createSelector)([selectorChartZoomOptionsLookup], (axisLookup, axisId) => axisLookup[axisId]);
49
- const selectorDefaultXAxisTickNumber = exports.selectorDefaultXAxisTickNumber = (0, _selectors.createSelector)([_useChartDimensions.selectorChartDrawingArea], function selectorDefaultXAxisTickNumber(drawingArea) {
48
+ const selectorChartAxisZoomOptionsLookup = exports.selectorChartAxisZoomOptionsLookup = (0, _store.createSelector)(selectorChartZoomOptionsLookup, (axisLookup, axisId) => axisLookup[axisId]);
49
+ const selectorDefaultXAxisTickNumber = exports.selectorDefaultXAxisTickNumber = (0, _store.createSelector)(_useChartDimensions.selectorChartDrawingArea, function selectorDefaultXAxisTickNumber(drawingArea) {
50
50
  return (0, _ticks.getDefaultTickNumber)(drawingArea.width);
51
51
  });
52
- const selectorDefaultYAxisTickNumber = exports.selectorDefaultYAxisTickNumber = (0, _selectors.createSelector)([_useChartDimensions.selectorChartDrawingArea], function selectorDefaultYAxisTickNumber(drawingArea) {
52
+ const selectorDefaultYAxisTickNumber = exports.selectorDefaultYAxisTickNumber = (0, _store.createSelector)(_useChartDimensions.selectorChartDrawingArea, function selectorDefaultYAxisTickNumber(drawingArea) {
53
53
  return (0, _ticks.getDefaultTickNumber)(drawingArea.height);
54
54
  });
55
55
  const selectorChartXAxisWithDomains = exports.selectorChartXAxisWithDomains = (0, _store.createSelectorMemoized)(_useChartCartesianAxisLayout.selectorChartRawXAxis, _useChartSeries.selectorChartSeriesProcessed, _useChartSeries.selectorChartSeriesConfig, _useChartExperimentalFeature.selectorPreferStrictDomainInLineCharts, selectorDefaultXAxisTickNumber, function selectorChartXAxisWithDomains(axes, formattedSeries, seriesConfig, preferStrictDomainInLineCharts, defaultTickNumber) {
@@ -263,16 +263,16 @@ const selectorChartYAxis = exports.selectorChartYAxis = (0, _store.createSelecto
263
263
  domains
264
264
  });
265
265
  });
266
- const selectorChartAxis = exports.selectorChartAxis = (0, _selectors.createSelector)([selectorChartXAxis, selectorChartYAxis], (xAxes, yAxes, axisId) => xAxes?.axis[axisId] ?? yAxes?.axis[axisId]);
267
- const selectorChartRawAxis = exports.selectorChartRawAxis = (0, _selectors.createSelector)([_useChartCartesianAxisLayout.selectorChartRawXAxis, _useChartCartesianAxisLayout.selectorChartRawYAxis], (xAxes, yAxes, axisId) => {
266
+ const selectorChartAxis = exports.selectorChartAxis = (0, _store.createSelector)(selectorChartXAxis, selectorChartYAxis, (xAxes, yAxes, axisId) => xAxes?.axis[axisId] ?? yAxes?.axis[axisId]);
267
+ const selectorChartRawAxis = exports.selectorChartRawAxis = (0, _store.createSelector)(_useChartCartesianAxisLayout.selectorChartRawXAxis, _useChartCartesianAxisLayout.selectorChartRawYAxis, (xAxes, yAxes, axisId) => {
268
268
  const axis = xAxes?.find(a => a.id === axisId) ?? yAxes?.find(a => a.id === axisId) ?? null;
269
269
  if (!axis) {
270
270
  return undefined;
271
271
  }
272
272
  return axis;
273
273
  });
274
- const selectorChartDefaultXAxisId = exports.selectorChartDefaultXAxisId = (0, _selectors.createSelector)([_useChartCartesianAxisLayout.selectorChartRawXAxis], xAxes => xAxes[0].id);
275
- const selectorChartDefaultYAxisId = exports.selectorChartDefaultYAxisId = (0, _selectors.createSelector)([_useChartCartesianAxisLayout.selectorChartRawYAxis], yAxes => yAxes[0].id);
274
+ const selectorChartDefaultXAxisId = exports.selectorChartDefaultXAxisId = (0, _store.createSelector)(_useChartCartesianAxisLayout.selectorChartRawXAxis, xAxes => xAxes[0].id);
275
+ const selectorChartDefaultYAxisId = exports.selectorChartDefaultYAxisId = (0, _store.createSelector)(_useChartCartesianAxisLayout.selectorChartRawYAxis, yAxes => yAxes[0].id);
276
276
  const EMPTY_MAP = new Map();
277
277
  const selectorChartSeriesEmptyFlatbushMap = () => EMPTY_MAP;
278
278
  exports.selectorChartSeriesEmptyFlatbushMap = selectorChartSeriesEmptyFlatbushMap;
@@ -7,7 +7,6 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.selectorChartsHighlightYAxisValue = exports.selectorChartsHighlightYAxisIndex = exports.selectorChartsHighlightYAxis = exports.selectorChartsHighlightXAxisValue = exports.selectorChartsHighlightXAxisIndex = exports.selectorChartsHighlightXAxis = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var _store = require("@mui/x-internals/store");
10
- var _selectors = require("../../utils/selectors");
11
10
  var _useChartCartesianAxisRendering = require("./useChartCartesianAxisRendering.selectors");
12
11
  var _useChartCartesianInteraction = require("./useChartCartesianInteraction.selectors");
13
12
  var _useChartKeyboardNavigation = require("../useChartKeyboardNavigation/useChartKeyboardNavigation.selectors");
@@ -66,8 +65,8 @@ const selectAxisHighlightWithValue = (computedIndex, computedValue, axis, contro
66
65
  }
67
66
  return [];
68
67
  };
69
- const selectorChartsHighlightXAxisValue = exports.selectorChartsHighlightXAxisValue = (0, _selectors.createSelector)([_useChartCartesianInteraction.selectorChartsInteractionXAxisIndex, _useChartCartesianInteraction.selectorChartsInteractionXAxisValue, _useChartCartesianAxisRendering.selectorChartXAxis, selectorChartControlledCartesianAxisHighlight, _useChartKeyboardNavigation.selectorChartsKeyboardXAxisIndex, _useChartInteraction.selectorChartsLastInteraction, _useChartBrush.selectorBrushShouldPreventAxisHighlight], selectAxisHighlightWithValue);
70
- const selectorChartsHighlightYAxisValue = exports.selectorChartsHighlightYAxisValue = (0, _selectors.createSelector)([_useChartCartesianInteraction.selectorChartsInteractionYAxisIndex, _useChartCartesianInteraction.selectorChartsInteractionYAxisValue, _useChartCartesianAxisRendering.selectorChartYAxis, selectorChartControlledCartesianAxisHighlight, _useChartKeyboardNavigation.selectorChartsKeyboardYAxisIndex, _useChartInteraction.selectorChartsLastInteraction, _useChartBrush.selectorBrushShouldPreventAxisHighlight], selectAxisHighlightWithValue);
68
+ const selectorChartsHighlightXAxisValue = exports.selectorChartsHighlightXAxisValue = (0, _store.createSelector)(_useChartCartesianInteraction.selectorChartsInteractionXAxisIndex, _useChartCartesianInteraction.selectorChartsInteractionXAxisValue, _useChartCartesianAxisRendering.selectorChartXAxis, selectorChartControlledCartesianAxisHighlight, _useChartKeyboardNavigation.selectorChartsKeyboardXAxisIndex, _useChartInteraction.selectorChartsLastInteraction, _useChartBrush.selectorBrushShouldPreventAxisHighlight, selectAxisHighlightWithValue);
69
+ const selectorChartsHighlightYAxisValue = exports.selectorChartsHighlightYAxisValue = (0, _store.createSelector)(_useChartCartesianInteraction.selectorChartsInteractionYAxisIndex, _useChartCartesianInteraction.selectorChartsInteractionYAxisValue, _useChartCartesianAxisRendering.selectorChartYAxis, selectorChartControlledCartesianAxisHighlight, _useChartKeyboardNavigation.selectorChartsKeyboardYAxisIndex, _useChartInteraction.selectorChartsLastInteraction, _useChartBrush.selectorBrushShouldPreventAxisHighlight, selectAxisHighlightWithValue);
71
70
 
72
71
  /**
73
72
  * Get the scale of the axis with highlight if controlled. The default axis otherwise.
@@ -82,5 +81,5 @@ const selectAxis = (axisItems, axis) => {
82
81
  const filteredAxes = axisItems.map(item => axis.axis[item.axisId] ?? null).filter(item => item !== null);
83
82
  return filteredAxes;
84
83
  };
85
- const selectorChartsHighlightXAxis = exports.selectorChartsHighlightXAxis = (0, _selectors.createSelector)([selectorChartControlledCartesianAxisHighlight, _useChartCartesianAxisRendering.selectorChartXAxis], selectAxis);
86
- const selectorChartsHighlightYAxis = exports.selectorChartsHighlightYAxis = (0, _selectors.createSelector)([selectorChartControlledCartesianAxisHighlight, _useChartCartesianAxisRendering.selectorChartYAxis], selectAxis);
84
+ const selectorChartsHighlightXAxis = exports.selectorChartsHighlightXAxis = (0, _store.createSelector)(selectorChartControlledCartesianAxisHighlight, _useChartCartesianAxisRendering.selectorChartXAxis, selectAxis);
85
+ const selectorChartsHighlightYAxis = exports.selectorChartsHighlightYAxis = (0, _store.createSelector)(selectorChartControlledCartesianAxisHighlight, _useChartCartesianAxisRendering.selectorChartYAxis, selectAxis);
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.selectorChartsInteractionYAxisValue = exports.selectorChartsInteractionYAxisIndex = exports.selectorChartsInteractionXAxisValue = exports.selectorChartsInteractionXAxisIndex = exports.selectorChartsInteractionTooltipYAxes = exports.selectorChartsInteractionTooltipXAxes = exports.selectorChartsInteractionAxisTooltip = exports.selectorChartAxisInteraction = exports.selectChartsInteractionAxisIndex = void 0;
7
7
  var _isDeepEqual = require("@mui/x-internals/isDeepEqual");
8
8
  var _store = require("@mui/x-internals/store");
9
- var _selectors = require("../../utils/selectors");
10
9
  var _useChartInteraction = require("../useChartInteraction/useChartInteraction.selectors");
11
10
  var _getAxisValue = require("./getAxisValue");
12
11
  var _useChartCartesianAxisRendering = require("./useChartCartesianAxisRendering.selectors");
@@ -25,9 +24,9 @@ const selectChartsInteractionAxisIndex = (value, axes, id) => {
25
24
  return index === -1 ? null : index;
26
25
  };
27
26
  exports.selectChartsInteractionAxisIndex = selectChartsInteractionAxisIndex;
28
- const selectorChartsInteractionXAxisIndex = exports.selectorChartsInteractionXAxisIndex = (0, _selectors.createSelector)([_useChartInteraction.selectorChartsInteractionPointerX, _useChartCartesianAxisRendering.selectorChartXAxis], selectChartsInteractionAxisIndex);
29
- const selectorChartsInteractionYAxisIndex = exports.selectorChartsInteractionYAxisIndex = (0, _selectors.createSelector)([_useChartInteraction.selectorChartsInteractionPointerY, _useChartCartesianAxisRendering.selectorChartYAxis], selectChartsInteractionAxisIndex);
30
- const selectorChartAxisInteraction = exports.selectorChartAxisInteraction = (0, _selectors.createSelector)([_useChartInteraction.selectorChartsInteractionPointerX, _useChartInteraction.selectorChartsInteractionPointerY, _useChartCartesianAxisRendering.selectorChartXAxis, _useChartCartesianAxisRendering.selectorChartYAxis], (x, y, xAxis, yAxis) => [...(x === null ? [] : xAxis.axisIds.map(axisId => ({
27
+ const selectorChartsInteractionXAxisIndex = exports.selectorChartsInteractionXAxisIndex = (0, _store.createSelector)(_useChartInteraction.selectorChartsInteractionPointerX, _useChartCartesianAxisRendering.selectorChartXAxis, selectChartsInteractionAxisIndex);
28
+ const selectorChartsInteractionYAxisIndex = exports.selectorChartsInteractionYAxisIndex = (0, _store.createSelector)(_useChartInteraction.selectorChartsInteractionPointerY, _useChartCartesianAxisRendering.selectorChartYAxis, selectChartsInteractionAxisIndex);
29
+ const selectorChartAxisInteraction = exports.selectorChartAxisInteraction = (0, _store.createSelector)(_useChartInteraction.selectorChartsInteractionPointerX, _useChartInteraction.selectorChartsInteractionPointerY, _useChartCartesianAxisRendering.selectorChartXAxis, _useChartCartesianAxisRendering.selectorChartYAxis, (x, y, xAxis, yAxis) => [...(x === null ? [] : xAxis.axisIds.map(axisId => ({
31
30
  axisId,
32
31
  dataIndex: indexGetter(x, xAxis, axisId)
33
32
  }))), ...(y === null ? [] : yAxis.axisIds.map(axisId => ({
@@ -45,13 +44,13 @@ function valueGetter(value, axes, indexes, ids = axes.axisIds[0]) {
45
44
  return (0, _getAxisValue.getAxisValue)(axis.scale, axis.data, value, indexes[axisIndex]);
46
45
  }) : (0, _getAxisValue.getAxisValue)(axes.axis[ids].scale, axes.axis[ids].data, value, indexes);
47
46
  }
48
- const selectorChartsInteractionXAxisValue = exports.selectorChartsInteractionXAxisValue = (0, _selectors.createSelector)([_useChartInteraction.selectorChartsInteractionPointerX, _useChartCartesianAxisRendering.selectorChartXAxis, selectorChartsInteractionXAxisIndex], (x, xAxes, xIndex, id) => {
47
+ const selectorChartsInteractionXAxisValue = exports.selectorChartsInteractionXAxisValue = (0, _store.createSelector)(_useChartInteraction.selectorChartsInteractionPointerX, _useChartCartesianAxisRendering.selectorChartXAxis, selectorChartsInteractionXAxisIndex, (x, xAxes, xIndex, id) => {
49
48
  if (x === null || xAxes.axisIds.length === 0) {
50
49
  return null;
51
50
  }
52
51
  return valueGetter(x, xAxes, xIndex, id);
53
52
  });
54
- const selectorChartsInteractionYAxisValue = exports.selectorChartsInteractionYAxisValue = (0, _selectors.createSelector)([_useChartInteraction.selectorChartsInteractionPointerY, _useChartCartesianAxisRendering.selectorChartYAxis, selectorChartsInteractionYAxisIndex], (y, yAxes, yIndex, id) => {
53
+ const selectorChartsInteractionYAxisValue = exports.selectorChartsInteractionYAxisValue = (0, _store.createSelector)(_useChartInteraction.selectorChartsInteractionPointerY, _useChartCartesianAxisRendering.selectorChartYAxis, selectorChartsInteractionYAxisIndex, (y, yAxes, yIndex, id) => {
55
54
  if (y === null || yAxes.axisIds.length === 0) {
56
55
  return null;
57
56
  }
@@ -106,4 +105,4 @@ const selectorChartsInteractionTooltipYAxes = exports.selectorChartsInteractionT
106
105
  /**
107
106
  * Return `true` if the axis tooltip has something to display.
108
107
  */
109
- const selectorChartsInteractionAxisTooltip = exports.selectorChartsInteractionAxisTooltip = (0, _selectors.createSelector)([selectorChartsInteractionTooltipXAxes, selectorChartsInteractionTooltipYAxes], (xTooltip, yTooltip) => xTooltip.length > 0 || yTooltip.length > 0);
108
+ const selectorChartsInteractionAxisTooltip = exports.selectorChartsInteractionAxisTooltip = (0, _store.createSelector)(selectorChartsInteractionTooltipXAxes, selectorChartsInteractionTooltipYAxes, (xTooltip, yTooltip) => xTooltip.length > 0 || yTooltip.length > 0);
@@ -26,8 +26,8 @@ function findClosestPoints(flatbush, drawingArea, seriesData, xScale, yScale, xZ
26
26
  function sqDistFn(dx, dy) {
27
27
  return fxSq * dx * dx + fySq * dy * dy;
28
28
  }
29
- const pointX = originalXScale(invertScale(xScale, svgPointX, dataIndex => seriesData[dataIndex].x));
30
- const pointY = originalYScale(invertScale(yScale, svgPointY, dataIndex => seriesData[dataIndex].y));
29
+ const pointX = originalXScale(invertScale(xScale, svgPointX, dataIndex => seriesData[dataIndex]?.x));
30
+ const pointY = originalYScale(invertScale(yScale, svgPointY, dataIndex => seriesData[dataIndex]?.y));
31
31
  return flatbush.neighbors(pointX, pointY, maxResults, maxRadius != null ? maxRadius * maxRadius : Infinity, excludeIfOutsideDrawingArea, sqDistFn);
32
32
  }
33
33
  function invertScale(scale, value, getDataPoint) {
@@ -4,6 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.selectorChartsIsVoronoiEnabled = void 0;
7
- var _selectors = require("../../utils/selectors");
7
+ var _store = require("@mui/x-internals/store");
8
8
  const selectVoronoi = state => state.voronoi;
9
- const selectorChartsIsVoronoiEnabled = exports.selectorChartsIsVoronoiEnabled = (0, _selectors.createSelector)([selectVoronoi], voronoi => voronoi?.isVoronoiEnabled);
9
+ const selectorChartsIsVoronoiEnabled = exports.selectorChartsIsVoronoiEnabled = (0, _store.createSelector)(selectVoronoi, voronoi => voronoi?.isVoronoiEnabled);
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.useChartHighlight = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _warning = require("@mui/x-internals/warning");
9
10
  var _useAssertModelConsistency = require("@mui/x-internals/useAssertModelConsistency");
10
11
  var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallback"));
11
12
  var _useEnhancedEffect = _interopRequireDefault(require("@mui/utils/useEnhancedEffect"));
@@ -27,27 +28,34 @@ const useChartHighlight = ({
27
28
  item: params.highlightedItem
28
29
  }));
29
30
  }
31
+ if (process.env.NODE_ENV !== 'production') {
32
+ if (params.highlightedItem !== undefined && !store.state.highlight.isControlled) {
33
+ (0, _warning.warnOnce)(['MUI X Charts: The `highlightedItem` switched between controlled and uncontrolled state.', 'To remove the highlight when using controlled state, you must provide `null` to the `highlightedItem` prop instead of `undefined`.'].join('\n'));
34
+ }
35
+ }
30
36
  }, [store, params.highlightedItem]);
31
37
  const clearHighlight = (0, _useEventCallback.default)(() => {
32
38
  params.onHighlightChange?.(null);
33
- const prevItem = store.getSnapshot().highlight.item;
34
- if (prevItem === null) {
39
+ const prevHighlight = store.getSnapshot().highlight;
40
+ if (prevHighlight.item === null || prevHighlight.isControlled) {
35
41
  return;
36
42
  }
37
43
  store.set('highlight', {
38
44
  item: null,
39
- lastUpdate: 'pointer'
45
+ lastUpdate: 'pointer',
46
+ isControlled: false
40
47
  });
41
48
  });
42
49
  const setHighlight = (0, _useEventCallback.default)(newItem => {
43
- const prevItem = store.getSnapshot().highlight.item;
44
- if ((0, _fastObjectShallowCompare.fastObjectShallowCompare)(prevItem, newItem)) {
50
+ const prevHighlight = store.getSnapshot().highlight;
51
+ if (prevHighlight.isControlled || (0, _fastObjectShallowCompare.fastObjectShallowCompare)(prevHighlight.item, newItem)) {
45
52
  return;
46
53
  }
47
54
  params.onHighlightChange?.(newItem);
48
55
  store.set('highlight', {
49
56
  item: newItem,
50
- lastUpdate: 'pointer'
57
+ lastUpdate: 'pointer',
58
+ isControlled: false
51
59
  });
52
60
  });
53
61
  return {
@@ -58,15 +66,11 @@ const useChartHighlight = ({
58
66
  };
59
67
  };
60
68
  exports.useChartHighlight = useChartHighlight;
61
- useChartHighlight.getDefaultizedParams = ({
62
- params
63
- }) => (0, _extends2.default)({}, params, {
64
- highlightedItem: params.highlightedItem ?? null
65
- });
66
69
  useChartHighlight.getInitialState = params => ({
67
70
  highlight: {
68
71
  item: params.highlightedItem,
69
- lastUpdate: 'pointer'
72
+ lastUpdate: 'pointer',
73
+ isControlled: params.highlightedItem !== undefined
70
74
  }
71
75
  });
72
76
  useChartHighlight.params = {
@@ -5,17 +5,16 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.selectorChartsIsHighlightedCallback = exports.selectorChartsIsHighlighted = exports.selectorChartsIsFadedCallback = exports.selectorChartsIsFaded = exports.selectorChartsHighlightedItem = exports.selectorChartsHighlightScopePerSeriesId = exports.selectorChartsHighlightScope = exports.selectorChartSeriesUnfadedItem = exports.selectorChartSeriesHighlightedItem = exports.selectorChartIsSeriesHighlighted = exports.selectorChartIsSeriesFaded = void 0;
7
7
  var _store = require("@mui/x-internals/store");
8
- var _selectors = require("../../utils/selectors");
9
8
  var _createIsHighlighted = require("./createIsHighlighted");
10
9
  var _createIsFaded = require("./createIsFaded");
11
10
  var _highlightStates = require("./highlightStates");
12
11
  var _useChartKeyboardNavigation = require("../useChartKeyboardNavigation");
12
+ var _useChartSeries = require("../../corePlugins/useChartSeries/useChartSeries.selectors");
13
13
  const selectHighlight = state => state.highlight;
14
- const selectSeries = state => state.series;
15
- const selectorChartsHighlightScopePerSeriesId = exports.selectorChartsHighlightScopePerSeriesId = (0, _selectors.createSelector)([selectSeries], series => {
14
+ const selectorChartsHighlightScopePerSeriesId = exports.selectorChartsHighlightScopePerSeriesId = (0, _store.createSelector)(_useChartSeries.selectorChartSeriesProcessed, processedSeries => {
16
15
  const map = new Map();
17
- Object.keys(series.processedSeries).forEach(seriesType => {
18
- const seriesData = series.processedSeries[seriesType];
16
+ Object.keys(processedSeries).forEach(seriesType => {
17
+ const seriesData = processedSeries[seriesType];
19
18
  seriesData?.seriesOrder?.forEach(seriesId => {
20
19
  const seriesItem = seriesData?.series[seriesId];
21
20
  map.set(seriesId, seriesItem?.highlightScope);
@@ -24,9 +23,9 @@ const selectorChartsHighlightScopePerSeriesId = exports.selectorChartsHighlightS
24
23
  return map;
25
24
  });
26
25
  const selectorChartsHighlightedItem = exports.selectorChartsHighlightedItem = (0, _store.createSelectorMemoized)(selectHighlight, _useChartKeyboardNavigation.selectorChartsKeyboardItem, function selectorChartsHighlightedItem(highlight, keyboardItem) {
27
- return highlight.lastUpdate === 'pointer' ? highlight.item : keyboardItem;
26
+ return highlight.isControlled || highlight.lastUpdate === 'pointer' ? highlight.item : keyboardItem;
28
27
  });
29
- const selectorChartsHighlightScope = exports.selectorChartsHighlightScope = (0, _selectors.createSelector)([selectorChartsHighlightScopePerSeriesId, selectorChartsHighlightedItem], function selectorChartsHighlightScope(seriesIdToHighlightScope, highlightedItem) {
28
+ const selectorChartsHighlightScope = exports.selectorChartsHighlightScope = (0, _store.createSelector)(selectorChartsHighlightScopePerSeriesId, selectorChartsHighlightedItem, function selectorChartsHighlightScope(seriesIdToHighlightScope, highlightedItem) {
30
29
  if (!highlightedItem) {
31
30
  return null;
32
31
  }
@@ -36,15 +35,15 @@ const selectorChartsHighlightScope = exports.selectorChartsHighlightScope = (0,
36
35
  }
37
36
  return highlightScope;
38
37
  });
39
- const selectorChartsIsHighlightedCallback = exports.selectorChartsIsHighlightedCallback = (0, _selectors.createSelector)([selectorChartsHighlightScope, selectorChartsHighlightedItem], _createIsHighlighted.createIsHighlighted);
40
- const selectorChartsIsFadedCallback = exports.selectorChartsIsFadedCallback = (0, _selectors.createSelector)([selectorChartsHighlightScope, selectorChartsHighlightedItem], _createIsFaded.createIsFaded);
41
- const selectorChartsIsHighlighted = exports.selectorChartsIsHighlighted = (0, _selectors.createSelector)([selectorChartsHighlightScope, selectorChartsHighlightedItem], function selectorChartsIsHighlighted(highlightScope, highlightedItem, item) {
38
+ const selectorChartsIsHighlightedCallback = exports.selectorChartsIsHighlightedCallback = (0, _store.createSelector)(selectorChartsHighlightScope, selectorChartsHighlightedItem, _createIsHighlighted.createIsHighlighted);
39
+ const selectorChartsIsFadedCallback = exports.selectorChartsIsFadedCallback = (0, _store.createSelector)(selectorChartsHighlightScope, selectorChartsHighlightedItem, _createIsFaded.createIsFaded);
40
+ const selectorChartsIsHighlighted = exports.selectorChartsIsHighlighted = (0, _store.createSelector)(selectorChartsHighlightScope, selectorChartsHighlightedItem, function selectorChartsIsHighlighted(highlightScope, highlightedItem, item) {
42
41
  return (0, _createIsHighlighted.createIsHighlighted)(highlightScope, highlightedItem)(item);
43
42
  });
44
- const selectorChartIsSeriesHighlighted = exports.selectorChartIsSeriesHighlighted = (0, _selectors.createSelector)([selectorChartsHighlightScope, selectorChartsHighlightedItem], _highlightStates.isSeriesHighlighted);
45
- const selectorChartIsSeriesFaded = exports.selectorChartIsSeriesFaded = (0, _selectors.createSelector)([selectorChartsHighlightScope, selectorChartsHighlightedItem], _highlightStates.isSeriesFaded);
46
- const selectorChartSeriesUnfadedItem = exports.selectorChartSeriesUnfadedItem = (0, _selectors.createSelector)([selectorChartsHighlightScope, selectorChartsHighlightedItem], _highlightStates.getSeriesUnfadedItem);
47
- const selectorChartSeriesHighlightedItem = exports.selectorChartSeriesHighlightedItem = (0, _selectors.createSelector)([selectorChartsHighlightScope, selectorChartsHighlightedItem], _highlightStates.getSeriesHighlightedItem);
48
- const selectorChartsIsFaded = exports.selectorChartsIsFaded = (0, _selectors.createSelector)([selectorChartsHighlightScope, selectorChartsHighlightedItem], function selectorChartsIsFaded(highlightScope, highlightedItem, item) {
43
+ const selectorChartIsSeriesHighlighted = exports.selectorChartIsSeriesHighlighted = (0, _store.createSelector)(selectorChartsHighlightScope, selectorChartsHighlightedItem, _highlightStates.isSeriesHighlighted);
44
+ const selectorChartIsSeriesFaded = exports.selectorChartIsSeriesFaded = (0, _store.createSelector)(selectorChartsHighlightScope, selectorChartsHighlightedItem, _highlightStates.isSeriesFaded);
45
+ const selectorChartSeriesUnfadedItem = exports.selectorChartSeriesUnfadedItem = (0, _store.createSelector)(selectorChartsHighlightScope, selectorChartsHighlightedItem, _highlightStates.getSeriesUnfadedItem);
46
+ const selectorChartSeriesHighlightedItem = exports.selectorChartSeriesHighlightedItem = (0, _store.createSelector)(selectorChartsHighlightScope, selectorChartsHighlightedItem, _highlightStates.getSeriesHighlightedItem);
47
+ const selectorChartsIsFaded = exports.selectorChartsIsFaded = (0, _store.createSelector)(selectorChartsHighlightScope, selectorChartsHighlightedItem, function selectorChartsIsFaded(highlightScope, highlightedItem, item) {
49
48
  return (0, _createIsFaded.createIsFaded)(highlightScope, highlightedItem)(item);
50
49
  });
@@ -56,6 +56,10 @@ export interface UseChartHighlightParameters {
56
56
  export type UseChartHighlightDefaultizedParameters = DefaultizedProps<UseChartHighlightParameters, 'highlightedItem'>;
57
57
  export interface UseChartHighlightState {
58
58
  highlight: {
59
+ /**
60
+ * Indicates if the highlighted item is controlled.
61
+ */
62
+ isControlled: boolean;
59
63
  /**
60
64
  * The item currently highlighted.
61
65
  */
@@ -4,12 +4,12 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.selectorChartsLastInteraction = exports.selectorChartsInteractionPointerY = exports.selectorChartsInteractionPointerX = exports.selectorChartsInteractionPointer = exports.selectorChartsInteractionItemIsDefined = exports.selectorChartsInteractionItem = exports.selectorChartsInteractionIsInitialized = void 0;
7
- var _selectors = require("../../utils/selectors");
7
+ var _store = require("@mui/x-internals/store");
8
8
  const selectInteraction = state => state.interaction;
9
- const selectorChartsInteractionIsInitialized = exports.selectorChartsInteractionIsInitialized = (0, _selectors.createSelector)([selectInteraction], interaction => interaction !== undefined);
10
- const selectorChartsInteractionItem = exports.selectorChartsInteractionItem = (0, _selectors.createSelector)([selectInteraction], interaction => interaction?.item ?? null);
11
- const selectorChartsInteractionPointer = exports.selectorChartsInteractionPointer = (0, _selectors.createSelector)([selectInteraction], interaction => interaction?.pointer ?? null);
12
- const selectorChartsInteractionPointerX = exports.selectorChartsInteractionPointerX = (0, _selectors.createSelector)([selectorChartsInteractionPointer], pointer => pointer && pointer.x);
13
- const selectorChartsInteractionPointerY = exports.selectorChartsInteractionPointerY = (0, _selectors.createSelector)([selectorChartsInteractionPointer], pointer => pointer && pointer.y);
14
- const selectorChartsInteractionItemIsDefined = exports.selectorChartsInteractionItemIsDefined = (0, _selectors.createSelector)([selectorChartsInteractionItem], item => item !== null);
15
- const selectorChartsLastInteraction = exports.selectorChartsLastInteraction = (0, _selectors.createSelector)([selectInteraction], interaction => interaction?.lastUpdate);
9
+ const selectorChartsInteractionIsInitialized = exports.selectorChartsInteractionIsInitialized = (0, _store.createSelector)(selectInteraction, interaction => interaction !== undefined);
10
+ const selectorChartsInteractionItem = exports.selectorChartsInteractionItem = (0, _store.createSelector)(selectInteraction, interaction => interaction?.item ?? null);
11
+ const selectorChartsInteractionPointer = exports.selectorChartsInteractionPointer = (0, _store.createSelector)(selectInteraction, interaction => interaction?.pointer ?? null);
12
+ const selectorChartsInteractionPointerX = exports.selectorChartsInteractionPointerX = (0, _store.createSelector)(selectorChartsInteractionPointer, pointer => pointer && pointer.x);
13
+ const selectorChartsInteractionPointerY = exports.selectorChartsInteractionPointerY = (0, _store.createSelector)(selectorChartsInteractionPointer, pointer => pointer && pointer.y);
14
+ const selectorChartsInteractionItemIsDefined = exports.selectorChartsInteractionItemIsDefined = (0, _store.createSelector)(selectorChartsInteractionItem, item => item !== null);
15
+ const selectorChartsLastInteraction = exports.selectorChartsLastInteraction = (0, _store.createSelector)(selectInteraction, interaction => interaction?.lastUpdate);
@@ -6,7 +6,7 @@ export declare const selectorChartsTooltipItemIsDefined: (args_0: import("../../
6
6
  }) => boolean;
7
7
  export declare const selectorChartsTooltipItemPosition: (args_0: 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.types.js").UseChartInteractionState> & {
8
8
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
9
- }) => {
9
+ }, placement?: "bottom" | "left" | "right" | "top" | undefined) => {
10
10
  x: number;
11
11
  y: number;
12
12
  } | null;
@@ -4,16 +4,16 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.selectorChartsTooltipItemPosition = exports.selectorChartsTooltipItemIsDefined = exports.selectorChartsTooltipItem = void 0;
7
+ var _store = require("@mui/x-internals/store");
7
8
  var _useChartSeries = require("../../corePlugins/useChartSeries");
8
- var _selectors = require("../../utils/selectors");
9
9
  var _useChartCartesianAxisRendering = require("../useChartCartesianAxis/useChartCartesianAxisRendering.selectors");
10
10
  var _useChartKeyboardNavigation = require("../useChartKeyboardNavigation");
11
11
  var _useChartInteraction = require("./useChartInteraction.selectors");
12
12
  var _useChartDimensions = require("../../corePlugins/useChartDimensions/useChartDimensions.selectors");
13
13
  var _isCartesian = require("../../../isCartesian");
14
- const selectorChartsTooltipItem = exports.selectorChartsTooltipItem = (0, _selectors.createSelector)([_useChartInteraction.selectorChartsLastInteraction, _useChartInteraction.selectorChartsInteractionItem, _useChartKeyboardNavigation.selectorChartsKeyboardItem], (lastInteraction, interactionItem, keyboardItem) => lastInteraction === 'keyboard' ? keyboardItem : interactionItem ?? null);
15
- const selectorChartsTooltipItemIsDefined = exports.selectorChartsTooltipItemIsDefined = (0, _selectors.createSelector)([_useChartInteraction.selectorChartsLastInteraction, _useChartInteraction.selectorChartsInteractionItemIsDefined, _useChartKeyboardNavigation.selectorChartsKeyboardItemIsDefined], (lastInteraction, interactionItemIsDefined, keyboardItemIsDefined) => lastInteraction === 'keyboard' ? keyboardItemIsDefined : interactionItemIsDefined);
16
- const selectorChartsTooltipItemPosition = exports.selectorChartsTooltipItemPosition = (0, _selectors.createSelector)([selectorChartsTooltipItem, _useChartDimensions.selectorChartDrawingArea, _useChartSeries.selectorChartSeriesConfig, _useChartCartesianAxisRendering.selectorChartXAxis, _useChartCartesianAxisRendering.selectorChartYAxis, _useChartSeries.selectorChartSeriesProcessed, (_, placement) => placement], function selectorChartsTooltipItemPosition(identifier, drawingArea, seriesConfig, {
14
+ const selectorChartsTooltipItem = exports.selectorChartsTooltipItem = (0, _store.createSelector)(_useChartInteraction.selectorChartsLastInteraction, _useChartInteraction.selectorChartsInteractionItem, _useChartKeyboardNavigation.selectorChartsKeyboardItem, (lastInteraction, interactionItem, keyboardItem) => lastInteraction === 'keyboard' ? keyboardItem : interactionItem ?? null);
15
+ const selectorChartsTooltipItemIsDefined = exports.selectorChartsTooltipItemIsDefined = (0, _store.createSelector)(_useChartInteraction.selectorChartsLastInteraction, _useChartInteraction.selectorChartsInteractionItemIsDefined, _useChartKeyboardNavigation.selectorChartsKeyboardItemIsDefined, (lastInteraction, interactionItemIsDefined, keyboardItemIsDefined) => lastInteraction === 'keyboard' ? keyboardItemIsDefined : interactionItemIsDefined);
16
+ const selectorChartsTooltipItemPosition = exports.selectorChartsTooltipItemPosition = (0, _store.createSelector)(selectorChartsTooltipItem, _useChartDimensions.selectorChartDrawingArea, _useChartSeries.selectorChartSeriesConfig, _useChartCartesianAxisRendering.selectorChartXAxis, _useChartCartesianAxisRendering.selectorChartYAxis, _useChartSeries.selectorChartSeriesProcessed, function selectorChartsTooltipItemPosition(identifier, drawingArea, seriesConfig, {
17
17
  axis: xAxis,
18
18
  axisIds: xAxisIds
19
19
  }, {
@@ -12,22 +12,24 @@ var React = _interopRequireWildcard(require("react"));
12
12
  var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallback"));
13
13
  var _useEnhancedEffect = _interopRequireDefault(require("@mui/utils/useEnhancedEffect"));
14
14
  var _useChartKeyboardNavigation = require("./useChartKeyboardNavigation.helpers");
15
+ var _useChartSeries = require("../../corePlugins/useChartSeries/useChartSeries.selectors");
15
16
  function getNextIndexFocusedItem(state) {
17
+ const processedSeries = (0, _useChartSeries.selectorChartSeriesProcessed)(state);
16
18
  let {
17
19
  type,
18
20
  seriesId
19
21
  } = state.keyboardNavigation.item ?? {};
20
22
  if (type === undefined ||
21
23
  // @ts-ignore sankey is not in MIT version
22
- type === 'sankey' || seriesId === undefined || !(0, _useChartKeyboardNavigation.seriesHasData)(state.series.processedSeries, type, seriesId)) {
23
- const nextSeries = (0, _useChartKeyboardNavigation.getNextSeriesWithData)(state.series.processedSeries, type, seriesId);
24
+ type === 'sankey' || seriesId === undefined || !(0, _useChartKeyboardNavigation.seriesHasData)(processedSeries, type, seriesId)) {
25
+ const nextSeries = (0, _useChartKeyboardNavigation.getNextSeriesWithData)(processedSeries, type, seriesId);
24
26
  if (nextSeries === null) {
25
27
  return null;
26
28
  }
27
29
  type = nextSeries.type;
28
30
  seriesId = nextSeries.seriesId;
29
31
  }
30
- const dataLength = state.series.processedSeries[type].series[seriesId].data.length;
32
+ const dataLength = processedSeries[type].series[seriesId].data.length;
31
33
  return {
32
34
  type,
33
35
  seriesId,
@@ -35,21 +37,22 @@ function getNextIndexFocusedItem(state) {
35
37
  };
36
38
  }
37
39
  function getPreviousIndexFocusedItem(state) {
40
+ const processedSeries = (0, _useChartSeries.selectorChartSeriesProcessed)(state);
38
41
  let {
39
42
  type,
40
43
  seriesId
41
44
  } = state.keyboardNavigation.item ?? {};
42
45
  if (type === undefined ||
43
46
  // @ts-ignore sankey is not in MIT version
44
- type === 'sankey' || seriesId === undefined || !(0, _useChartKeyboardNavigation.seriesHasData)(state.series.processedSeries, type, seriesId)) {
45
- const previousSeries = (0, _useChartKeyboardNavigation.getPreviousSeriesWithData)(state.series.processedSeries, type, seriesId);
47
+ type === 'sankey' || seriesId === undefined || !(0, _useChartKeyboardNavigation.seriesHasData)(processedSeries, type, seriesId)) {
48
+ const previousSeries = (0, _useChartKeyboardNavigation.getPreviousSeriesWithData)(processedSeries, type, seriesId);
46
49
  if (previousSeries === null) {
47
50
  return null;
48
51
  }
49
52
  type = previousSeries.type;
50
53
  seriesId = previousSeries.seriesId;
51
54
  }
52
- const dataLength = state.series.processedSeries[type].series[seriesId].data.length;
55
+ const dataLength = processedSeries[type].series[seriesId].data.length;
53
56
  return {
54
57
  type,
55
58
  seriesId,
@@ -57,17 +60,18 @@ function getPreviousIndexFocusedItem(state) {
57
60
  };
58
61
  }
59
62
  function getNextSeriesFocusedItem(state) {
63
+ const processedSeries = (0, _useChartSeries.selectorChartSeriesProcessed)(state);
60
64
  let {
61
65
  type,
62
66
  seriesId
63
67
  } = state.keyboardNavigation.item ?? {};
64
- const nextSeries = (0, _useChartKeyboardNavigation.getNextSeriesWithData)(state.series.processedSeries, type, seriesId);
68
+ const nextSeries = (0, _useChartKeyboardNavigation.getNextSeriesWithData)(processedSeries, type, seriesId);
65
69
  if (nextSeries === null) {
66
70
  return null; // No series to move the focus to.
67
71
  }
68
72
  type = nextSeries.type;
69
73
  seriesId = nextSeries.seriesId;
70
- const dataLength = state.series.processedSeries[type].series[seriesId].data.length;
74
+ const dataLength = processedSeries[type].series[seriesId].data.length;
71
75
  return {
72
76
  type,
73
77
  seriesId,
@@ -75,17 +79,18 @@ function getNextSeriesFocusedItem(state) {
75
79
  };
76
80
  }
77
81
  function getPreviousSeriesFocusedItem(state) {
82
+ const processedSeries = (0, _useChartSeries.selectorChartSeriesProcessed)(state);
78
83
  let {
79
84
  type,
80
85
  seriesId
81
86
  } = state.keyboardNavigation.item ?? {};
82
- const previousSeries = (0, _useChartKeyboardNavigation.getPreviousSeriesWithData)(state.series.processedSeries, type, seriesId);
87
+ const previousSeries = (0, _useChartKeyboardNavigation.getPreviousSeriesWithData)(processedSeries, type, seriesId);
83
88
  if (previousSeries === null) {
84
89
  return null; // No series to move the focus to.
85
90
  }
86
91
  type = previousSeries.type;
87
92
  seriesId = previousSeries.seriesId;
88
- const dataLength = state.series.processedSeries[type].series[seriesId].data.length;
93
+ const dataLength = processedSeries[type].series[seriesId].data.length;
89
94
  return {
90
95
  type,
91
96
  seriesId,
@@ -4,18 +4,18 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.selectorChartsKeyboardYAxisIndex = exports.selectorChartsKeyboardXAxisIndex = exports.selectorChartsKeyboardItemIsDefined = exports.selectorChartsKeyboardItem = exports.selectorChartsItemIsFocused = exports.selectorChartsIsKeyboardNavigationEnabled = exports.selectorChartsHasFocusedItem = exports.selectorChartsFocusedSeriesType = exports.selectorChartsFocusedSeriesId = exports.selectorChartsFocusedDataIndex = void 0;
7
- var _selectors = require("../../utils/selectors");
7
+ var _store = require("@mui/x-internals/store");
8
8
  var _useChartSeries = require("../../corePlugins/useChartSeries");
9
9
  var _useChartCartesianAxisRendering = require("../useChartCartesianAxis/useChartCartesianAxisRendering.selectors");
10
10
  const selectKeyboardNavigation = state => state.keyboardNavigation;
11
- const selectorChartsItemIsFocused = exports.selectorChartsItemIsFocused = (0, _selectors.createSelector)([selectKeyboardNavigation], (keyboardNavigationState, item) => {
11
+ const selectorChartsItemIsFocused = exports.selectorChartsItemIsFocused = (0, _store.createSelector)(selectKeyboardNavigation, (keyboardNavigationState, item) => {
12
12
  return keyboardNavigationState?.item != null && keyboardNavigationState.item.type === item.seriesType && keyboardNavigationState.item.seriesId === item.seriesId && keyboardNavigationState.item.dataIndex === item.dataIndex;
13
13
  });
14
- const selectorChartsHasFocusedItem = exports.selectorChartsHasFocusedItem = (0, _selectors.createSelector)([selectKeyboardNavigation], keyboardNavigationState => keyboardNavigationState?.item != null);
15
- const selectorChartsFocusedSeriesType = exports.selectorChartsFocusedSeriesType = (0, _selectors.createSelector)([selectKeyboardNavigation], keyboardNavigationState => keyboardNavigationState?.item?.type);
16
- const selectorChartsFocusedSeriesId = exports.selectorChartsFocusedSeriesId = (0, _selectors.createSelector)([selectKeyboardNavigation], keyboardNavigationState => keyboardNavigationState?.item?.seriesId);
17
- const selectorChartsFocusedDataIndex = exports.selectorChartsFocusedDataIndex = (0, _selectors.createSelector)([selectKeyboardNavigation], keyboardNavigationState => keyboardNavigationState?.item?.dataIndex);
18
- const selectorChartsIsKeyboardNavigationEnabled = exports.selectorChartsIsKeyboardNavigationEnabled = (0, _selectors.createSelector)([selectKeyboardNavigation], keyboardNavigationState => !!keyboardNavigationState?.enableKeyboardNavigation);
14
+ const selectorChartsHasFocusedItem = exports.selectorChartsHasFocusedItem = (0, _store.createSelector)(selectKeyboardNavigation, keyboardNavigationState => keyboardNavigationState?.item != null);
15
+ const selectorChartsFocusedSeriesType = exports.selectorChartsFocusedSeriesType = (0, _store.createSelector)(selectKeyboardNavigation, keyboardNavigationState => keyboardNavigationState?.item?.type);
16
+ const selectorChartsFocusedSeriesId = exports.selectorChartsFocusedSeriesId = (0, _store.createSelector)(selectKeyboardNavigation, keyboardNavigationState => keyboardNavigationState?.item?.seriesId);
17
+ const selectorChartsFocusedDataIndex = exports.selectorChartsFocusedDataIndex = (0, _store.createSelector)(selectKeyboardNavigation, keyboardNavigationState => keyboardNavigationState?.item?.dataIndex);
18
+ const selectorChartsIsKeyboardNavigationEnabled = exports.selectorChartsIsKeyboardNavigationEnabled = (0, _store.createSelector)(selectKeyboardNavigation, keyboardNavigationState => !!keyboardNavigationState?.enableKeyboardNavigation);
19
19
 
20
20
  /**
21
21
  * Selectors to override highlight behavior.
@@ -38,9 +38,9 @@ const createSelectAxisHighlight = direction => (type, seriesId, dataIndex, axis,
38
38
  dataIndex
39
39
  };
40
40
  };
41
- const selectorChartsKeyboardXAxisIndex = exports.selectorChartsKeyboardXAxisIndex = (0, _selectors.createSelector)([selectorChartsFocusedSeriesType, selectorChartsFocusedSeriesId, selectorChartsFocusedDataIndex, _useChartCartesianAxisRendering.selectorChartXAxis, _useChartSeries.selectorChartSeriesProcessed], createSelectAxisHighlight('x'));
42
- const selectorChartsKeyboardYAxisIndex = exports.selectorChartsKeyboardYAxisIndex = (0, _selectors.createSelector)([selectorChartsFocusedSeriesType, selectorChartsFocusedSeriesId, selectorChartsFocusedDataIndex, _useChartCartesianAxisRendering.selectorChartYAxis, _useChartSeries.selectorChartSeriesProcessed], createSelectAxisHighlight('y'));
43
- const selectorChartsKeyboardItem = exports.selectorChartsKeyboardItem = (0, _selectors.createSelector)([selectKeyboardNavigation], function selectorChartsKeyboardItem(keyboardState) {
41
+ const selectorChartsKeyboardXAxisIndex = exports.selectorChartsKeyboardXAxisIndex = (0, _store.createSelector)(selectorChartsFocusedSeriesType, selectorChartsFocusedSeriesId, selectorChartsFocusedDataIndex, _useChartCartesianAxisRendering.selectorChartXAxis, _useChartSeries.selectorChartSeriesProcessed, createSelectAxisHighlight('x'));
42
+ const selectorChartsKeyboardYAxisIndex = exports.selectorChartsKeyboardYAxisIndex = (0, _store.createSelector)(selectorChartsFocusedSeriesType, selectorChartsFocusedSeriesId, selectorChartsFocusedDataIndex, _useChartCartesianAxisRendering.selectorChartYAxis, _useChartSeries.selectorChartSeriesProcessed, createSelectAxisHighlight('y'));
43
+ const selectorChartsKeyboardItem = exports.selectorChartsKeyboardItem = (0, _store.createSelector)(selectKeyboardNavigation, function selectorChartsKeyboardItem(keyboardState) {
44
44
  if (keyboardState?.item == null) {
45
45
  return null;
46
46
  }
@@ -53,6 +53,6 @@ const selectorChartsKeyboardItem = exports.selectorChartsKeyboardItem = (0, _sel
53
53
  }
54
54
  return keyboardState.item;
55
55
  });
56
- const selectorChartsKeyboardItemIsDefined = exports.selectorChartsKeyboardItemIsDefined = (0, _selectors.createSelector)([selectorChartsFocusedSeriesType, selectorChartsFocusedSeriesId, selectorChartsFocusedDataIndex], function selectorChartsKeyboardItemIsDefined(seriesType, seriesId, dataIndex) {
56
+ const selectorChartsKeyboardItemIsDefined = exports.selectorChartsKeyboardItemIsDefined = (0, _store.createSelector)(selectorChartsFocusedSeriesType, selectorChartsFocusedSeriesId, selectorChartsFocusedDataIndex, function selectorChartsKeyboardItemIsDefined(seriesType, seriesId, dataIndex) {
57
57
  return seriesId !== undefined && dataIndex !== undefined;
58
58
  });
@@ -4,34 +4,34 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.selectorChartRotationAxis = exports.selectorChartRawRotationAxis = exports.selectorChartRawRadiusAxis = exports.selectorChartRadiusAxis = exports.selectorChartPolarCenter = exports.selectorChartPolarAxisState = void 0;
7
+ var _store = require("@mui/x-internals/store");
7
8
  var _useChartDimensions = require("../../corePlugins/useChartDimensions");
8
9
  var _useChartSeries = require("../../corePlugins/useChartSeries");
9
- var _selectors = require("../../utils/selectors");
10
10
  var _computeAxisValue = require("./computeAxisValue");
11
11
  const selectorChartPolarAxisState = state => state.polarAxis;
12
12
  exports.selectorChartPolarAxisState = selectorChartPolarAxisState;
13
- const selectorChartRawRotationAxis = exports.selectorChartRawRotationAxis = (0, _selectors.createSelector)([selectorChartPolarAxisState], axis => axis?.rotation);
14
- const selectorChartRawRadiusAxis = exports.selectorChartRawRadiusAxis = (0, _selectors.createSelector)([selectorChartPolarAxisState], axis => axis?.radius);
13
+ const selectorChartRawRotationAxis = exports.selectorChartRawRotationAxis = (0, _store.createSelector)(selectorChartPolarAxisState, axis => axis?.rotation);
14
+ const selectorChartRawRadiusAxis = exports.selectorChartRawRadiusAxis = (0, _store.createSelector)(selectorChartPolarAxisState, axis => axis?.radius);
15
15
 
16
16
  /**
17
17
  * The only interesting selectors that merge axis data and zoom if provided.
18
18
  */
19
19
 
20
- const selectorChartRotationAxis = exports.selectorChartRotationAxis = (0, _selectors.createSelector)([selectorChartRawRotationAxis, _useChartDimensions.selectorChartDrawingArea, _useChartSeries.selectorChartSeriesProcessed, _useChartSeries.selectorChartSeriesConfig], (axis, drawingArea, formattedSeries, seriesConfig) => (0, _computeAxisValue.computeAxisValue)({
20
+ const selectorChartRotationAxis = exports.selectorChartRotationAxis = (0, _store.createSelector)(selectorChartRawRotationAxis, _useChartDimensions.selectorChartDrawingArea, _useChartSeries.selectorChartSeriesProcessed, _useChartSeries.selectorChartSeriesConfig, (axis, drawingArea, formattedSeries, seriesConfig) => (0, _computeAxisValue.computeAxisValue)({
21
21
  drawingArea,
22
22
  formattedSeries,
23
23
  axis,
24
24
  seriesConfig,
25
25
  axisDirection: 'rotation'
26
26
  }));
27
- const selectorChartRadiusAxis = exports.selectorChartRadiusAxis = (0, _selectors.createSelector)([selectorChartRawRadiusAxis, _useChartDimensions.selectorChartDrawingArea, _useChartSeries.selectorChartSeriesProcessed, _useChartSeries.selectorChartSeriesConfig], (axis, drawingArea, formattedSeries, seriesConfig) => (0, _computeAxisValue.computeAxisValue)({
27
+ const selectorChartRadiusAxis = exports.selectorChartRadiusAxis = (0, _store.createSelector)(selectorChartRawRadiusAxis, _useChartDimensions.selectorChartDrawingArea, _useChartSeries.selectorChartSeriesProcessed, _useChartSeries.selectorChartSeriesConfig, (axis, drawingArea, formattedSeries, seriesConfig) => (0, _computeAxisValue.computeAxisValue)({
28
28
  drawingArea,
29
29
  formattedSeries,
30
30
  axis,
31
31
  seriesConfig,
32
32
  axisDirection: 'radius'
33
33
  }));
34
- const selectorChartPolarCenter = exports.selectorChartPolarCenter = (0, _selectors.createSelector)([_useChartDimensions.selectorChartDrawingArea], drawingArea => ({
34
+ const selectorChartPolarCenter = exports.selectorChartPolarCenter = (0, _store.createSelector)(_useChartDimensions.selectorChartDrawingArea, drawingArea => ({
35
35
  cx: drawingArea.left + drawingArea.width / 2,
36
36
  cy: drawingArea.top + drawingArea.height / 2
37
37
  }));