@mui/x-charts 9.1.0 → 9.3.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 (132) hide show
  1. package/BarChart/BarChart.js +10 -10
  2. package/BarChart/BarChart.mjs +10 -10
  3. package/BarChart/seriesConfig/bar/getColor.js +7 -53
  4. package/BarChart/seriesConfig/bar/getColor.mjs +7 -53
  5. package/BarChart/seriesConfig/bar/seriesProcessor.js +3 -1
  6. package/BarChart/seriesConfig/bar/seriesProcessor.mjs +3 -1
  7. package/BarChart/seriesConfig/bar/tooltip.js +4 -27
  8. package/BarChart/seriesConfig/bar/tooltip.mjs +4 -27
  9. package/CHANGELOG.md +221 -0
  10. package/ChartsContainer/ChartsContainer.js +9 -9
  11. package/ChartsContainer/ChartsContainer.mjs +9 -9
  12. package/ChartsLabel/ChartsLabelMark.js +0 -2
  13. package/ChartsLabel/ChartsLabelMark.mjs +0 -2
  14. package/ChartsLabel/labelMarkClasses.d.mts +0 -1
  15. package/ChartsLabel/labelMarkClasses.d.ts +0 -1
  16. package/ChartsLabel/labelMarkClasses.js +1 -2
  17. package/ChartsLabel/labelMarkClasses.mjs +2 -2
  18. package/ChartsLayerContainer/ChartsLayerContainer.js +36 -30
  19. package/ChartsLayerContainer/ChartsLayerContainer.mjs +36 -30
  20. package/ChartsRadialAxisHighlight/ChartsRadialAxisHighlight.types.d.mts +1 -1
  21. package/ChartsRadialAxisHighlight/ChartsRadialAxisHighlight.types.d.ts +1 -1
  22. package/ChartsRadialAxisHighlight/ChartsRadiusAxisHighlight.js +31 -14
  23. package/ChartsRadialAxisHighlight/ChartsRadiusAxisHighlight.mjs +32 -15
  24. package/ChartsRadiusAxis/ChartsRadiusAxis.d.mts +1 -47
  25. package/ChartsRadiusAxis/ChartsRadiusAxis.d.ts +1 -47
  26. package/ChartsRadiusAxis/ChartsRadiusAxis.js +20 -16
  27. package/ChartsRadiusAxis/ChartsRadiusAxis.mjs +21 -15
  28. package/ChartsRotationAxis/ChartsRotationAxis.d.mts +1 -47
  29. package/ChartsRotationAxis/ChartsRotationAxis.d.ts +1 -47
  30. package/ChartsRotationAxis/ChartsRotationAxis.js +16 -19
  31. package/ChartsRotationAxis/ChartsRotationAxis.mjs +17 -18
  32. package/ChartsTooltip/useAxesTooltip.d.mts +1 -1
  33. package/ChartsTooltip/useAxesTooltip.d.ts +1 -1
  34. package/ChartsTooltip/useAxesTooltip.js +11 -2
  35. package/ChartsTooltip/useAxesTooltip.mjs +12 -3
  36. package/ChartsXAxis/ChartsXAxis.js +3 -1
  37. package/ChartsXAxis/ChartsXAxis.mjs +3 -1
  38. package/ChartsYAxis/ChartsYAxis.js +3 -1
  39. package/ChartsYAxis/ChartsYAxis.mjs +3 -1
  40. package/LineChart/LineChart.js +6 -6
  41. package/LineChart/LineChart.mjs +6 -6
  42. package/LineChart/seriesConfig/curveEvaluation.js +12 -1
  43. package/LineChart/seriesConfig/curveEvaluation.mjs +12 -1
  44. package/LineChart/seriesConfig/getColor.js +7 -54
  45. package/LineChart/seriesConfig/getColor.mjs +7 -54
  46. package/LineChart/seriesConfig/seriesProcessor.d.mts +2 -4
  47. package/LineChart/seriesConfig/seriesProcessor.d.ts +2 -4
  48. package/LineChart/seriesConfig/seriesProcessor.js +2 -139
  49. package/LineChart/seriesConfig/seriesProcessor.mjs +2 -138
  50. package/LineChart/seriesConfig/tooltip.js +4 -25
  51. package/LineChart/seriesConfig/tooltip.mjs +4 -25
  52. package/PieChart/PieChart.js +6 -6
  53. package/PieChart/PieChart.mjs +6 -6
  54. package/RadarChart/RadarAxis/useRadarAxis.js +1 -1
  55. package/RadarChart/RadarAxis/useRadarAxis.mjs +1 -1
  56. package/RadarChart/RadarChart.js +8 -8
  57. package/RadarChart/RadarChart.mjs +8 -8
  58. package/RadarChart/RadarGrid/CircularRadarStripes.js +2 -3
  59. package/RadarChart/RadarGrid/CircularRadarStripes.mjs +2 -3
  60. package/RadarChart/RadarSeriesPlot/RadarSeriesArea.js +3 -1
  61. package/RadarChart/RadarSeriesPlot/RadarSeriesArea.mjs +3 -1
  62. package/RadarChart/RadarSeriesPlot/RadarSeriesMarks.js +1 -0
  63. package/RadarChart/RadarSeriesPlot/RadarSeriesMarks.mjs +1 -0
  64. package/RadarChart/RadarSeriesPlot/RadarSeriesPlot.js +1 -0
  65. package/RadarChart/RadarSeriesPlot/RadarSeriesPlot.mjs +1 -0
  66. package/RadarChart/RadarSeriesPlot/useRadarRotationIndex.js +1 -1
  67. package/RadarChart/RadarSeriesPlot/useRadarRotationIndex.mjs +2 -2
  68. package/ScatterChart/ScatterChart.js +11 -11
  69. package/ScatterChart/ScatterChart.mjs +11 -11
  70. package/ScatterChart/seriesConfig/tooltip.js +2 -24
  71. package/ScatterChart/seriesConfig/tooltip.mjs +2 -24
  72. package/SparkLineChart/SparkLineChart.js +27 -27
  73. package/SparkLineChart/SparkLineChart.mjs +27 -27
  74. package/index.js +1 -1
  75. package/index.mjs +1 -1
  76. package/internals/components/ChartsAccessibilityProxy/ChartsAccessibilityProxy.js +1 -1
  77. package/internals/components/ChartsAccessibilityProxy/ChartsAccessibilityProxy.mjs +1 -1
  78. package/internals/getLineLikeTooltip.d.mts +9 -0
  79. package/internals/getLineLikeTooltip.d.ts +9 -0
  80. package/internals/getLineLikeTooltip.js +38 -0
  81. package/internals/getLineLikeTooltip.mjs +31 -0
  82. package/internals/getRingPath.d.mts +16 -0
  83. package/internals/getRingPath.d.ts +16 -0
  84. package/internals/getRingPath.js +39 -0
  85. package/internals/getRingPath.mjs +33 -0
  86. package/internals/index.d.mts +7 -2
  87. package/internals/index.d.ts +7 -2
  88. package/internals/index.js +46 -3
  89. package/internals/index.mjs +6 -2
  90. package/internals/plugins/corePlugins/useChartSeriesConfig/types/tooltipGetter.types.d.mts +4 -2
  91. package/internals/plugins/corePlugins/useChartSeriesConfig/types/tooltipGetter.types.d.ts +4 -2
  92. package/internals/plugins/featurePlugins/useChartCartesianAxis/createZoomLookup.d.mts +3 -3
  93. package/internals/plugins/featurePlugins/useChartCartesianAxis/createZoomLookup.d.ts +3 -3
  94. package/internals/plugins/featurePlugins/useChartCartesianAxis/index.d.mts +1 -0
  95. package/internals/plugins/featurePlugins/useChartCartesianAxis/index.d.ts +1 -0
  96. package/internals/plugins/featurePlugins/useChartCartesianAxis/index.js +8 -0
  97. package/internals/plugins/featurePlugins/useChartCartesianAxis/index.mjs +1 -0
  98. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisPosition.selectors.d.mts +6 -1
  99. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisPosition.selectors.d.ts +6 -1
  100. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisPosition.selectors.js +48 -36
  101. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisPosition.selectors.mjs +47 -36
  102. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.d.mts +74 -1
  103. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.d.ts +74 -1
  104. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianHighlight.selectors.d.mts +152 -2
  105. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianHighlight.selectors.d.ts +152 -2
  106. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.d.mts +2 -2
  107. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.d.ts +2 -2
  108. package/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.js +3 -0
  109. package/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.mjs +3 -0
  110. package/internals/plugins/featurePlugins/useChartPolarAxis/getAxisExtremum.d.mts +2 -2
  111. package/internals/plugins/featurePlugins/useChartPolarAxis/getAxisExtremum.d.ts +2 -2
  112. package/internals/plugins/featurePlugins/useChartPolarAxis/getAxisIndex.d.mts +6 -1
  113. package/internals/plugins/featurePlugins/useChartPolarAxis/getAxisIndex.d.ts +6 -1
  114. package/internals/plugins/featurePlugins/useChartPolarAxis/getAxisIndex.js +36 -2
  115. package/internals/plugins/featurePlugins/useChartPolarAxis/getAxisIndex.mjs +34 -1
  116. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.js +1 -1
  117. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.mjs +2 -2
  118. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarInteraction.selectors.d.mts +22 -2
  119. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarInteraction.selectors.d.ts +22 -2
  120. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarInteraction.selectors.js +73 -12
  121. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarInteraction.selectors.mjs +74 -12
  122. package/internals/processLineLikeSeries.d.mts +6 -0
  123. package/internals/processLineLikeSeries.d.ts +6 -0
  124. package/internals/processLineLikeSeries.js +145 -0
  125. package/internals/processLineLikeSeries.mjs +138 -0
  126. package/internals/resolveColorProcessor.d.mts +11 -0
  127. package/internals/resolveColorProcessor.d.ts +11 -0
  128. package/internals/resolveColorProcessor.js +62 -0
  129. package/internals/resolveColorProcessor.mjs +56 -0
  130. package/models/axis.d.mts +55 -7
  131. package/models/axis.d.ts +55 -7
  132. package/package.json +3 -3
@@ -172,11 +172,11 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
172
172
  hiddenItems: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.shape({
173
173
  dataIndex: _propTypes.default.number,
174
174
  seriesId: _propTypes.default.string.isRequired,
175
- type: _propTypes.default.oneOf(['bar'])
175
+ type: _propTypes.default.oneOf(['bar']).isRequired
176
176
  }), _propTypes.default.shape({
177
177
  dataIndex: _propTypes.default.number,
178
178
  seriesId: _propTypes.default.string.isRequired,
179
- type: _propTypes.default.oneOf(['bar']).isRequired
179
+ type: _propTypes.default.oneOf(['bar'])
180
180
  })]).isRequired),
181
181
  /**
182
182
  * If `true`, the legend is not rendered.
@@ -196,11 +196,11 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
196
196
  */
197
197
  highlightedItem: _propTypes.default.oneOfType([_propTypes.default.shape({
198
198
  dataIndex: _propTypes.default.number,
199
- seriesId: _propTypes.default.string.isRequired,
200
- type: _propTypes.default.oneOf(['bar']).isRequired
199
+ seriesId: _propTypes.default.string.isRequired
201
200
  }), _propTypes.default.shape({
202
201
  dataIndex: _propTypes.default.number,
203
- seriesId: _propTypes.default.string.isRequired
202
+ seriesId: _propTypes.default.string.isRequired,
203
+ type: _propTypes.default.oneOf(['bar']).isRequired
204
204
  })]),
205
205
  /**
206
206
  * This prop is used to help implement the accessibility logic.
@@ -231,11 +231,11 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
231
231
  initialHiddenItems: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.shape({
232
232
  dataIndex: _propTypes.default.number,
233
233
  seriesId: _propTypes.default.string.isRequired,
234
- type: _propTypes.default.oneOf(['bar'])
234
+ type: _propTypes.default.oneOf(['bar']).isRequired
235
235
  }), _propTypes.default.shape({
236
236
  dataIndex: _propTypes.default.number,
237
237
  seriesId: _propTypes.default.string.isRequired,
238
- type: _propTypes.default.oneOf(['bar']).isRequired
238
+ type: _propTypes.default.oneOf(['bar'])
239
239
  })]).isRequired),
240
240
  /**
241
241
  * The direction of the bar elements.
@@ -365,11 +365,11 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
365
365
  */
366
366
  tooltipItem: _propTypes.default.oneOfType([_propTypes.default.shape({
367
367
  dataIndex: _propTypes.default.number.isRequired,
368
- seriesId: _propTypes.default.string.isRequired,
369
- type: _propTypes.default.oneOf(['bar']).isRequired
368
+ seriesId: _propTypes.default.string.isRequired
370
369
  }), _propTypes.default.shape({
371
370
  dataIndex: _propTypes.default.number.isRequired,
372
- seriesId: _propTypes.default.string.isRequired
371
+ seriesId: _propTypes.default.string.isRequired,
372
+ type: _propTypes.default.oneOf(['bar']).isRequired
373
373
  })]),
374
374
  /**
375
375
  * The width of the chart in px. If not defined, it takes the width of the parent element.
@@ -165,11 +165,11 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
165
165
  hiddenItems: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.shape({
166
166
  dataIndex: PropTypes.number,
167
167
  seriesId: PropTypes.string.isRequired,
168
- type: PropTypes.oneOf(['bar'])
168
+ type: PropTypes.oneOf(['bar']).isRequired
169
169
  }), PropTypes.shape({
170
170
  dataIndex: PropTypes.number,
171
171
  seriesId: PropTypes.string.isRequired,
172
- type: PropTypes.oneOf(['bar']).isRequired
172
+ type: PropTypes.oneOf(['bar'])
173
173
  })]).isRequired),
174
174
  /**
175
175
  * If `true`, the legend is not rendered.
@@ -189,11 +189,11 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
189
189
  */
190
190
  highlightedItem: PropTypes.oneOfType([PropTypes.shape({
191
191
  dataIndex: PropTypes.number,
192
- seriesId: PropTypes.string.isRequired,
193
- type: PropTypes.oneOf(['bar']).isRequired
192
+ seriesId: PropTypes.string.isRequired
194
193
  }), PropTypes.shape({
195
194
  dataIndex: PropTypes.number,
196
- seriesId: PropTypes.string.isRequired
195
+ seriesId: PropTypes.string.isRequired,
196
+ type: PropTypes.oneOf(['bar']).isRequired
197
197
  })]),
198
198
  /**
199
199
  * This prop is used to help implement the accessibility logic.
@@ -224,11 +224,11 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
224
224
  initialHiddenItems: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.shape({
225
225
  dataIndex: PropTypes.number,
226
226
  seriesId: PropTypes.string.isRequired,
227
- type: PropTypes.oneOf(['bar'])
227
+ type: PropTypes.oneOf(['bar']).isRequired
228
228
  }), PropTypes.shape({
229
229
  dataIndex: PropTypes.number,
230
230
  seriesId: PropTypes.string.isRequired,
231
- type: PropTypes.oneOf(['bar']).isRequired
231
+ type: PropTypes.oneOf(['bar'])
232
232
  })]).isRequired),
233
233
  /**
234
234
  * The direction of the bar elements.
@@ -358,11 +358,11 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
358
358
  */
359
359
  tooltipItem: PropTypes.oneOfType([PropTypes.shape({
360
360
  dataIndex: PropTypes.number.isRequired,
361
- seriesId: PropTypes.string.isRequired,
362
- type: PropTypes.oneOf(['bar']).isRequired
361
+ seriesId: PropTypes.string.isRequired
363
362
  }), PropTypes.shape({
364
363
  dataIndex: PropTypes.number.isRequired,
365
- seriesId: PropTypes.string.isRequired
364
+ seriesId: PropTypes.string.isRequired,
365
+ type: PropTypes.oneOf(['bar']).isRequired
366
366
  })]),
367
367
  /**
368
368
  * The width of the chart in px. If not defined, it takes the width of the parent element.
@@ -4,60 +4,14 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _getSeriesColorFn = require("../../../internals/getSeriesColorFn");
7
+ var _resolveColorProcessor = require("../../../internals/resolveColorProcessor");
8
8
  const getColor = (series, xAxis, yAxis) => {
9
9
  const verticalLayout = series.layout === 'vertical';
10
- const bandColorScale = verticalLayout ? xAxis?.colorScale : yAxis?.colorScale;
11
- const valueColorScale = verticalLayout ? yAxis?.colorScale : xAxis?.colorScale;
12
- const bandValues = verticalLayout ? xAxis?.data : yAxis?.data;
13
- const getSeriesColor = (0, _getSeriesColorFn.getSeriesColorFn)(series);
14
- if (valueColorScale) {
15
- return dataIndex => {
16
- if (dataIndex === undefined) {
17
- return series.color;
18
- }
19
- const value = series.data[dataIndex];
20
- const color = value === null ? getSeriesColor({
21
- value,
22
- dataIndex
23
- }) : valueColorScale(value);
24
- if (color === null) {
25
- return getSeriesColor({
26
- value,
27
- dataIndex
28
- });
29
- }
30
- return color;
31
- };
32
- }
33
- if (bandColorScale && bandValues) {
34
- return dataIndex => {
35
- if (dataIndex === undefined) {
36
- return series.color;
37
- }
38
- const value = bandValues[dataIndex];
39
- const color = value === null ? getSeriesColor({
40
- value,
41
- dataIndex
42
- }) : bandColorScale(value);
43
- if (color === null) {
44
- return getSeriesColor({
45
- value,
46
- dataIndex
47
- });
48
- }
49
- return color;
50
- };
51
- }
52
- return dataIndex => {
53
- if (dataIndex === undefined) {
54
- return series.color;
55
- }
56
- const value = series.data[dataIndex];
57
- return getSeriesColor({
58
- value,
59
- dataIndex
60
- });
61
- };
10
+ return (0, _resolveColorProcessor.resolveColorProcessor)({
11
+ series,
12
+ valueColorScale: verticalLayout ? yAxis?.colorScale : xAxis?.colorScale,
13
+ categoryColorScale: verticalLayout ? xAxis?.colorScale : yAxis?.colorScale,
14
+ categoryValues: verticalLayout ? xAxis?.data : yAxis?.data
15
+ });
62
16
  };
63
17
  var _default = exports.default = getColor;
@@ -1,57 +1,11 @@
1
- import { getSeriesColorFn } from "../../../internals/getSeriesColorFn.mjs";
1
+ import { resolveColorProcessor } from "../../../internals/resolveColorProcessor.mjs";
2
2
  const getColor = (series, xAxis, yAxis) => {
3
3
  const verticalLayout = series.layout === 'vertical';
4
- const bandColorScale = verticalLayout ? xAxis?.colorScale : yAxis?.colorScale;
5
- const valueColorScale = verticalLayout ? yAxis?.colorScale : xAxis?.colorScale;
6
- const bandValues = verticalLayout ? xAxis?.data : yAxis?.data;
7
- const getSeriesColor = getSeriesColorFn(series);
8
- if (valueColorScale) {
9
- return dataIndex => {
10
- if (dataIndex === undefined) {
11
- return series.color;
12
- }
13
- const value = series.data[dataIndex];
14
- const color = value === null ? getSeriesColor({
15
- value,
16
- dataIndex
17
- }) : valueColorScale(value);
18
- if (color === null) {
19
- return getSeriesColor({
20
- value,
21
- dataIndex
22
- });
23
- }
24
- return color;
25
- };
26
- }
27
- if (bandColorScale && bandValues) {
28
- return dataIndex => {
29
- if (dataIndex === undefined) {
30
- return series.color;
31
- }
32
- const value = bandValues[dataIndex];
33
- const color = value === null ? getSeriesColor({
34
- value,
35
- dataIndex
36
- }) : bandColorScale(value);
37
- if (color === null) {
38
- return getSeriesColor({
39
- value,
40
- dataIndex
41
- });
42
- }
43
- return color;
44
- };
45
- }
46
- return dataIndex => {
47
- if (dataIndex === undefined) {
48
- return series.color;
49
- }
50
- const value = series.data[dataIndex];
51
- return getSeriesColor({
52
- value,
53
- dataIndex
54
- });
55
- };
4
+ return resolveColorProcessor({
5
+ series,
6
+ valueColorScale: verticalLayout ? yAxis?.colorScale : xAxis?.colorScale,
7
+ categoryColorScale: verticalLayout ? xAxis?.colorScale : yAxis?.colorScale,
8
+ categoryValues: verticalLayout ? xAxis?.data : yAxis?.data
9
+ });
56
10
  };
57
11
  export default getColor;
@@ -44,7 +44,9 @@ const seriesProcessor = (params, dataset, isItemVisible) => {
44
44
  d3Dataset[index][id] = value;
45
45
  }
46
46
  });
47
- } else if (dataset === undefined) {
47
+ } else if (dataset === undefined && process.env.NODE_ENV !== 'production') {
48
+ // TODO: fix mui/no-guarded-throw
49
+ // eslint-disable-next-line mui/no-guarded-throw
48
50
  throw new Error(process.env.NODE_ENV !== "production" ? `MUI X Charts: Bar series with id="${id}" has no data. ` + 'The chart cannot render this series without data. ' + 'Provide a data property to the series or use the dataset prop.' : (0, _formatErrorMessage2.default)(33, id));
49
51
  }
50
52
  if (process.env.NODE_ENV !== 'production') {
@@ -37,7 +37,9 @@ const seriesProcessor = (params, dataset, isItemVisible) => {
37
37
  d3Dataset[index][id] = value;
38
38
  }
39
39
  });
40
- } else if (dataset === undefined) {
40
+ } else if (dataset === undefined && process.env.NODE_ENV !== 'production') {
41
+ // TODO: fix mui/no-guarded-throw
42
+ // eslint-disable-next-line mui/no-guarded-throw
41
43
  throw new Error(process.env.NODE_ENV !== "production" ? `MUI X Charts: Bar series with id="${id}" has no data. ` + 'The chart cannot render this series without data. ' + 'Provide a data property to the series or use the dataset prop.' : _formatErrorMessage(33, id));
42
44
  }
43
45
  if (process.env.NODE_ENV !== 'production') {
@@ -4,33 +4,10 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = exports.axisTooltipGetter = void 0;
7
- var _getLabel = require("../../../internals/getLabel");
8
- const tooltipGetter = params => {
9
- const {
10
- series,
11
- getColor,
12
- identifier
13
- } = params;
14
- if (!identifier || identifier.dataIndex === undefined) {
15
- return null;
16
- }
17
- const label = (0, _getLabel.getLabel)(series.label, 'tooltip');
18
- const value = series.data[identifier.dataIndex];
19
- if (value == null) {
20
- return null;
21
- }
22
- const formattedValue = series.valueFormatter(value, {
23
- dataIndex: identifier.dataIndex
24
- });
25
- return {
26
- identifier,
27
- color: getColor(identifier.dataIndex),
28
- label,
29
- value,
30
- formattedValue,
31
- markType: series.labelMarkType
32
- };
33
- };
7
+ var _getLineLikeTooltip = require("../../../internals/getLineLikeTooltip");
8
+ const tooltipGetter = params => (0, _getLineLikeTooltip.getLineLikeTooltip)(params, {
9
+ skipNullValues: true
10
+ });
34
11
  const axisTooltipGetter = series => {
35
12
  return Object.values(series).map(s => s.layout === 'horizontal' ? {
36
13
  direction: 'y',
@@ -1,30 +1,7 @@
1
- import { getLabel } from "../../../internals/getLabel.mjs";
2
- const tooltipGetter = params => {
3
- const {
4
- series,
5
- getColor,
6
- identifier
7
- } = params;
8
- if (!identifier || identifier.dataIndex === undefined) {
9
- return null;
10
- }
11
- const label = getLabel(series.label, 'tooltip');
12
- const value = series.data[identifier.dataIndex];
13
- if (value == null) {
14
- return null;
15
- }
16
- const formattedValue = series.valueFormatter(value, {
17
- dataIndex: identifier.dataIndex
18
- });
19
- return {
20
- identifier,
21
- color: getColor(identifier.dataIndex),
22
- label,
23
- value,
24
- formattedValue,
25
- markType: series.labelMarkType
26
- };
27
- };
1
+ import { getLineLikeTooltip } from "../../../internals/getLineLikeTooltip.mjs";
2
+ const tooltipGetter = params => getLineLikeTooltip(params, {
3
+ skipNullValues: true
4
+ });
28
5
  export const axisTooltipGetter = series => {
29
6
  return Object.values(series).map(s => s.layout === 'horizontal' ? {
30
7
  direction: 'y',
package/CHANGELOG.md CHANGED
@@ -1,5 +1,226 @@
1
1
  # Changelog
2
2
 
3
+ ## 9.3.0
4
+
5
+ _May 21, 2026_
6
+
7
+ We'd like to extend a big thank you to the 16 contributors who made this release possible. Here are some highlights ✨:
8
+
9
+ - 📆 Refactor Calendar Range drag editing to use Pointer Events instead of drag and touch events combination (#22279)
10
+ - ✨ Apply lazy loading to `EventTimelinePremium` (#22308)
11
+ - 🐞 Bugfixes
12
+ - 📚 Documentation improvements
13
+ - 🌎 Added Norwegian bokmål (nb-NO) locale to the Scheduler
14
+ - 🌎 Improved Swedish (sv-SE) locale on the Data Grid
15
+
16
+ Special thanks go out to these community members for their valuable contributions:
17
+ @Anexus5919, @jvskriubakken, @oscar-b, @rin, @viktormelin
18
+
19
+ The following team members contributed to this release:
20
+ @aemartos, @alexfauquette, @arminmeh, @Janpot, @JCQuintas, @LukasTy, @mj12albert, @oliviertassinari, @rita-codes, @romgrk, @sai6855
21
+
22
+ ### Data Grid
23
+
24
+ #### `@mui/x-data-grid@9.3.0`
25
+
26
+ - [DataGrid] Fix scrollbar disappearing after multiple resizes (#22512) @LukasTy
27
+ - [DataGrid] Revert "Add support for pinned columns in `GridVirtualScroller`" (#22467) @oliviertassinari
28
+ - [l10n] Improve Swedish (svSE) locale (#21851) @viktormelin
29
+
30
+ #### `@mui/x-data-grid-pro@9.3.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
31
+
32
+ Same changes as in `@mui/x-data-grid@9.3.0`.
33
+
34
+ #### `@mui/x-data-grid-premium@9.3.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
35
+
36
+ Same changes as in `@mui/x-data-grid-pro@9.3.0`.
37
+
38
+ ### Date and Time Pickers
39
+
40
+ #### `@mui/x-date-pickers@9.3.0`
41
+
42
+ - [pickers] Fix disabled state styling for `PickersTextField` standard and filled variants (#22189) @LukasTy
43
+ - [pickers] Fix previous month disabled state calculation (#22524) @mj12albert
44
+ - [pickers] Merge `slotProps.sectionContent` in `PickersInputBase` (#22324) @rin
45
+
46
+ #### `@mui/x-date-pickers-pro@9.3.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
47
+
48
+ Same changes as in `@mui/x-date-pickers@9.3.0`, plus:
49
+
50
+ - [DateRangeCalendar] Use Pointer Events for drag editing (#22279) @LukasTy
51
+
52
+ ### Charts
53
+
54
+ #### `@mui/x-charts@9.3.0`
55
+
56
+ - [charts] Add `data-series` to elements of radar chart (#22523) @alexfauquette
57
+ - [charts] Add environment check for warning messages in axis and radar hooks (#22506) @sai6855
58
+ - [charts] Chart `seriesConfig` deduplication for lines and bars (#22257) @sai6855
59
+ - [charts] Fix highlighted item crash (#22539) @oscar-b
60
+ - [charts] Fix the line and mark class (#22526) @alexfauquette
61
+ - [charts] Fix use of deprecated API in docs (#22469) @oliviertassinari
62
+ - [charts] Improve performance of `evaluateCurveY` function (#22407) @sai6855
63
+
64
+ #### `@mui/x-charts-pro@9.3.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
65
+
66
+ Same changes as in `@mui/x-charts@9.3.0`.
67
+
68
+ #### `@mui/x-charts-premium@9.3.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
69
+
70
+ Same changes as in `@mui/x-charts-pro@9.3.0`, plus:
71
+
72
+ - [charts-premium] Add `closePath` option to the radial line series (#22517) @alexfauquette
73
+
74
+ ### Tree View
75
+
76
+ #### `@mui/x-tree-view-pro@9.3.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
77
+
78
+ Internal changes.
79
+
80
+ ### Scheduler
81
+
82
+ #### `@mui/x-scheduler@9.0.0-alpha.7`
83
+
84
+ - [I10n] Add Norwegian bokmål (nb-NO) locale (#22415) @jvskriubakken
85
+
86
+ #### `@mui/x-scheduler-premium@9.0.0-alpha.7` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
87
+
88
+ Same changes as in `@mui/x-scheduler@9.0.0-alpha.7`, plus:
89
+
90
+ - [scheduler] Apply lazy loading to `EventTimelinePremium` (#22308) @rita-codes
91
+ - [scheduler] Deduplicate staged ranges within the debounce window (#22476) @Anexus5919
92
+ - [scheduler] Pass full event objects to `dataSource.updateEvents` (#22462) @rita-codes
93
+
94
+ ### Docs
95
+
96
+ - [docs] Automatically update supported versions (#21850) @arminmeh
97
+ - [docs] Fix `New` label on bar charts docs (#22473) @oliviertassinari
98
+ - [docs] Improve premium page header for charts (#22474) @oliviertassinari
99
+ - [docs] Sync `README` with licensing/licensing.md in scheduler (#22468) @oliviertassinari
100
+
101
+ ### Core
102
+
103
+ - [code-infra] Cover docs overview composites with Argos (#22283) @LukasTy
104
+ - [code-infra] Enable `mui/no-presentation-role` lint rule (#22360) @Janpot
105
+ - [code-infra] Make generated `propTypes` union order deterministic (#22521) @JCQuintas
106
+ - [code-infra] Make screenshots stable across different ordering of the tests (#22449) @Janpot
107
+ - [code-infra] Optimize visual regression testing (#22447) @Janpot
108
+ - [code-infra] Replace markdownlint with remark from code-infra (#22255) @Janpot
109
+
110
+ ### Miscellaneous
111
+
112
+ - [virtualizer] Improve `controlled` mode performance (#22123) @romgrk
113
+ - [data-grid-generator] Include `tree-data` params in `useDemoData` cache key (#22456) @Janpot
114
+ - [test] Fix flaky browser tests and optimize (#22431) @Janpot
115
+ - [test] Speed up `test_types` job (#22442) @Janpot
116
+ - [test] Trim ffmpeg install in `test_regressions` (#22459) @Janpot
117
+ - [test] Add WebGL performance benchmarks for charts (#22471) @JCQuintas
118
+ - [test] Expand chart performance benchmarks for charts (#22472) @JCQuintas
119
+ - [x-license] use workspace dep for v9 in cross-major compat tests (#22504) @aemartos
120
+
121
+ ## 9.2.0
122
+
123
+ _May 13, 2026_
124
+
125
+ We'd like to extend a big thank you to the 9 contributors who made this release possible. Here are some highlights ✨:
126
+
127
+ - ⚡️ Add a WebGL renderer to the [Bar chart](https://mui.com/x/react-charts/bars/#webgl-renderer)
128
+ - 📊 Add a radial charts with the [radial line](https://mui.com/x/react-charts/radial-lines/), [radial bar](https://mui.com/x/react-charts/radial-bars/), and the [radial grid and axes](https://mui.com/x/react-charts/radial-axes/)
129
+ - 🐞 Bugfixes
130
+ - 📚 Documentation improvements
131
+
132
+ Special thanks go out to these community members for their valuable contributions:
133
+ @Anexus5919, @mustafajw07
134
+
135
+ The following team members contributed to this release:
136
+ @aemartos, @alexfauquette, @bernardobelchior, @JCQuintas, @oliviertassinari, @sai6855, @siriwatknp
137
+
138
+ ### Data Grid
139
+
140
+ #### `@mui/x-data-grid@9.2.0`
141
+
142
+ - [data grid] Add support for pinned columns in `GridVirtualScroller` (#22347) @sai6855
143
+ - [data grid] Remove unused CSS (#22390) @oliviertassinari
144
+
145
+ #### `@mui/x-data-grid-pro@9.2.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
146
+
147
+ Same changes as in `@mui/x-data-grid@9.2.0`.
148
+
149
+ #### `@mui/x-data-grid-premium@9.2.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
150
+
151
+ Same changes as in `@mui/x-data-grid-pro@9.2.0`.
152
+
153
+ ### Date and Time Pickers
154
+
155
+ #### `@mui/x-date-pickers@9.2.0`
156
+
157
+ - [pickers] Trim test helpers' default load graph (#22421) @JCQuintas
158
+
159
+ #### `@mui/x-date-pickers-pro@9.2.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
160
+
161
+ Same changes as in `@mui/x-date-pickers@9.2.0`.
162
+
163
+ ### Charts
164
+
165
+ #### `@mui/x-charts@9.2.0`
166
+
167
+ Internal changes.
168
+
169
+ #### `@mui/x-charts-pro@9.2.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
170
+
171
+ Same changes as in `@mui/x-charts@9.2.0`.
172
+
173
+ #### `@mui/x-charts-premium@9.2.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
174
+
175
+ Same changes as in `@mui/x-charts-pro@9.2.0`, plus:
176
+
177
+ - [charts-premium] Add `Highlight` support to `RadialBarChart` (#22322) @alexfauquette
178
+ - [charts-premium] Add `WebGL` renderer to `BarChartPremium` (#22354) @JCQuintas
179
+ - [charts-premium] Add mark shape support to the radial line (#22242) @alexfauquette
180
+ - [charts-premium] `RadialBarChart` support axis interaction with layout horizontal (#22319) @alexfauquette
181
+
182
+ ### Tree View
183
+
184
+ #### `@mui/x-tree-view@9.1.0`
185
+
186
+ Internal changes.
187
+
188
+ #### `@mui/x-tree-view-pro@9.1.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
189
+
190
+ Same changes as in `@mui/x-tree-view@9.1.0`.
191
+
192
+ ### Scheduler
193
+
194
+ #### `@mui/x-scheduler@9.0.0-alpha.6`
195
+
196
+ - [scheduler] Complete ARIA grid semantics on `EventTimeline` and `EventCalendar` (#22266) @Anexus5919
197
+ - [scheduler] Improve UX for recurrence tab (#22287) @mustafajw07
198
+
199
+ #### `@mui/x-scheduler-premium@9.0.0-alpha.6` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
200
+
201
+ Same changes as in `@mui/x-scheduler@9.0.0-alpha.6`.
202
+
203
+ ### Codemod
204
+
205
+ #### `@mui/x-codemod@9.1.0`
206
+
207
+ Internal changes.
208
+
209
+ ### Docs
210
+
211
+ - [docs] Document the `RadialBarChart` (#22320) @alexfauquette
212
+ - [docs] Add histogram demo to bar-demo page (#22373) @siriwatknp
213
+ - [docs] Add radial bar to the nav bar (#22429) @alexfauquette
214
+ - [docs] Split radial grid and radial line pages (#22238) @alexfauquette
215
+
216
+ ### Miscellaneous
217
+
218
+ - [test] Disable animations in chart benchmarks (#22433) @bernardobelchior
219
+ - [test] Move `x-internal-gestures` vitest isolate flag to test block (#22427) @JCQuintas
220
+ - [test] Reduce flakiness in `MobileTimeRangePicker` multi-input `describeValue` tests (#22422) @JCQuintas
221
+ - [x-license] Exclude compat test pins from Renovate major bumps (#22414) @aemartos
222
+ - [x-license] Add cross-major license format compatibility tests (#22335) @aemartos
223
+
3
224
  ## 9.1.0
4
225
 
5
226
  _May 8, 2026_
@@ -136,11 +136,11 @@ process.env.NODE_ENV !== "production" ? ChartsContainer.propTypes = {
136
136
  hiddenItems: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.shape({
137
137
  dataIndex: _propTypes.default.number,
138
138
  seriesId: _propTypes.default.string.isRequired,
139
- type: _propTypes.default.oneOf(['bar', 'line', 'pie', 'radar', 'scatter'])
139
+ type: _propTypes.default.oneOf(['bar', 'line', 'pie', 'radar', 'scatter']).isRequired
140
140
  }), _propTypes.default.shape({
141
141
  dataIndex: _propTypes.default.number,
142
142
  seriesId: _propTypes.default.string.isRequired,
143
- type: _propTypes.default.oneOf(['bar', 'line', 'pie', 'radar', 'scatter']).isRequired
143
+ type: _propTypes.default.oneOf(['bar', 'line', 'pie', 'radar', 'scatter'])
144
144
  })]).isRequired),
145
145
  /**
146
146
  * The controlled axis highlight.
@@ -197,11 +197,11 @@ process.env.NODE_ENV !== "production" ? ChartsContainer.propTypes = {
197
197
  initialHiddenItems: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.shape({
198
198
  dataIndex: _propTypes.default.number,
199
199
  seriesId: _propTypes.default.string.isRequired,
200
- type: _propTypes.default.oneOf(['bar', 'line', 'pie', 'radar', 'scatter'])
200
+ type: _propTypes.default.oneOf(['bar', 'line', 'pie', 'radar', 'scatter']).isRequired
201
201
  }), _propTypes.default.shape({
202
202
  dataIndex: _propTypes.default.number,
203
203
  seriesId: _propTypes.default.string.isRequired,
204
- type: _propTypes.default.oneOf(['bar', 'line', 'pie', 'radar', 'scatter']).isRequired
204
+ type: _propTypes.default.oneOf(['bar', 'line', 'pie', 'radar', 'scatter'])
205
205
  })]).isRequired),
206
206
  /**
207
207
  * Localized text for chart components.
@@ -345,11 +345,6 @@ process.env.NODE_ENV !== "production" ? ChartsContainer.propTypes = {
345
345
  */
346
346
  zAxis: _propTypes.default.arrayOf(_propTypes.default.shape({
347
347
  colorMap: _propTypes.default.oneOfType([_propTypes.default.shape({
348
- colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
349
- type: _propTypes.default.oneOf(['ordinal']).isRequired,
350
- unknownColor: _propTypes.default.string,
351
- values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
352
- }), _propTypes.default.shape({
353
348
  color: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.string.isRequired), _propTypes.default.func]).isRequired,
354
349
  max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
355
350
  min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
@@ -358,6 +353,11 @@ process.env.NODE_ENV !== "production" ? ChartsContainer.propTypes = {
358
353
  colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
359
354
  thresholds: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]).isRequired).isRequired,
360
355
  type: _propTypes.default.oneOf(['piecewise']).isRequired
356
+ }), _propTypes.default.shape({
357
+ colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
358
+ type: _propTypes.default.oneOf(['ordinal']).isRequired,
359
+ unknownColor: _propTypes.default.string,
360
+ values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
361
361
  })]),
362
362
  data: _propTypes.default.array,
363
363
  dataKey: _propTypes.default.string,