@mui/x-charts 8.7.0 → 8.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. package/BarChart/BarChart.d.ts +1 -1
  2. package/BarChart/BarChart.js +16 -0
  3. package/CHANGELOG.md +98 -0
  4. package/ChartContainer/ChartContainer.js +22 -0
  5. package/ChartContainer/useChartContainerProps.js +8 -2
  6. package/ChartDataProvider/ChartDataProvider.js +6 -0
  7. package/ChartDataProvider/useChartDataProviderProps.d.ts +1 -1
  8. package/ChartDataProvider/useChartDataProviderProps.js +6 -1
  9. package/ChartsAxisHighlight/ChartsXAxisHighlight.d.ts +1 -1
  10. package/ChartsAxisHighlight/ChartsXAxisHighlight.js +34 -24
  11. package/ChartsAxisHighlight/ChartsYAxisHighlight.d.ts +1 -1
  12. package/ChartsAxisHighlight/ChartsYAxisHighlight.js +34 -24
  13. package/Gauge/GaugeContainer.d.ts +1 -1
  14. package/LineChart/LineChart.js +22 -0
  15. package/LineChart/LineHighlightPlot.js +10 -4
  16. package/LineChart/MarkPlot.js +17 -3
  17. package/LineChart/useAreaPlotData.js +3 -2
  18. package/PieChart/PieChart.d.ts +1 -1
  19. package/RadarChart/RadarDataProvider/RadarDataProvider.d.ts +1 -1
  20. package/ScatterChart/ScatterChart.d.ts +1 -1
  21. package/ScatterChart/ScatterPlot.js +2 -2
  22. package/ScatterChart/seriesConfig/seriesProcessor.js +3 -0
  23. package/SparkLineChart/SparkLineChart.d.ts +1 -1
  24. package/SparkLineChart/SparkLineChart.js +16 -0
  25. package/esm/BarChart/BarChart.d.ts +1 -1
  26. package/esm/BarChart/BarChart.js +16 -0
  27. package/esm/ChartContainer/ChartContainer.js +22 -0
  28. package/esm/ChartContainer/useChartContainerProps.js +8 -2
  29. package/esm/ChartDataProvider/ChartDataProvider.js +6 -0
  30. package/esm/ChartDataProvider/useChartDataProviderProps.d.ts +1 -1
  31. package/esm/ChartDataProvider/useChartDataProviderProps.js +7 -2
  32. package/esm/ChartsAxisHighlight/ChartsXAxisHighlight.d.ts +1 -1
  33. package/esm/ChartsAxisHighlight/ChartsXAxisHighlight.js +36 -26
  34. package/esm/ChartsAxisHighlight/ChartsYAxisHighlight.d.ts +1 -1
  35. package/esm/ChartsAxisHighlight/ChartsYAxisHighlight.js +36 -26
  36. package/esm/Gauge/GaugeContainer.d.ts +1 -1
  37. package/esm/LineChart/LineChart.js +22 -0
  38. package/esm/LineChart/LineHighlightPlot.js +11 -5
  39. package/esm/LineChart/MarkPlot.js +17 -3
  40. package/esm/LineChart/useAreaPlotData.js +3 -2
  41. package/esm/PieChart/PieChart.d.ts +1 -1
  42. package/esm/RadarChart/RadarDataProvider/RadarDataProvider.d.ts +1 -1
  43. package/esm/ScatterChart/ScatterChart.d.ts +1 -1
  44. package/esm/ScatterChart/ScatterPlot.js +2 -2
  45. package/esm/ScatterChart/seriesConfig/seriesProcessor.js +3 -0
  46. package/esm/SparkLineChart/SparkLineChart.d.ts +1 -1
  47. package/esm/SparkLineChart/SparkLineChart.js +16 -0
  48. package/esm/hooks/useAxis.d.ts +2 -2
  49. package/esm/index.js +1 -1
  50. package/esm/internals/constants.d.ts +3 -0
  51. package/esm/internals/constants.js +4 -0
  52. package/esm/internals/getLabel.d.ts +1 -1
  53. package/esm/internals/index.d.ts +1 -0
  54. package/esm/internals/index.js +1 -0
  55. package/esm/internals/plugins/corePlugins/corePlugins.d.ts +3 -2
  56. package/esm/internals/plugins/corePlugins/corePlugins.js +2 -1
  57. package/esm/internals/plugins/corePlugins/useChartAnimation/useChartAnimation.selectors.d.ts +1 -1
  58. package/esm/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.selectors.d.ts +3 -3
  59. package/esm/internals/plugins/corePlugins/useChartExperimentalFeature/index.d.ts +3 -0
  60. package/esm/internals/plugins/corePlugins/useChartExperimentalFeature/index.js +2 -0
  61. package/esm/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.d.ts +3 -0
  62. package/esm/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.js +27 -0
  63. package/esm/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.selectors.d.ts +8 -0
  64. package/esm/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.selectors.js +3 -0
  65. package/esm/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.d.ts +21 -0
  66. package/esm/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.js +1 -0
  67. package/esm/internals/plugins/corePlugins/useChartId/useChartId.selectors.d.ts +1 -1
  68. package/esm/internals/plugins/corePlugins/useChartSeries/useChartSeries.selectors.d.ts +2 -2
  69. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.d.ts +5 -1
  70. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.js +4 -2
  71. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeZoom.d.ts +1 -0
  72. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeZoom.js +5 -2
  73. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisDomainLimit.d.ts +7 -0
  74. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisDomainLimit.js +14 -0
  75. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/index.d.ts +2 -0
  76. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/index.js +2 -0
  77. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartAxisSize.selectors.d.ts +4 -4
  78. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.js +46 -3
  79. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.types.d.ts +18 -1
  80. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisPreview.selectors.d.ts +3 -0
  81. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisPreview.selectors.js +76 -0
  82. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.d.ts +10 -5
  83. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.js +8 -5
  84. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianHighlight.selectors.d.ts +47 -0
  85. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianHighlight.selectors.js +48 -0
  86. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.d.ts +18 -12
  87. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.js +16 -2
  88. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/zoom.types.d.ts +6 -1
  89. package/esm/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.selectors.d.ts +5 -5
  90. package/esm/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.d.ts +6 -6
  91. package/esm/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.selectors.d.ts +5 -5
  92. package/esm/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarInteraction.selectors.d.ts +7 -8
  93. package/esm/internals/plugins/featurePlugins/useChartVoronoi/useChartVoronoi.selectors.d.ts +1 -1
  94. package/esm/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.selectors.d.ts +1 -1
  95. package/esm/internals/plugins/utils/useLazySelectorEffect.d.ts +7 -0
  96. package/esm/internals/plugins/utils/useLazySelectorEffect.js +70 -0
  97. package/esm/internals/store/useCharts.d.ts +1 -1
  98. package/esm/models/axis.d.ts +15 -0
  99. package/esm/models/axis.js +4 -0
  100. package/esm/models/index.d.ts +1 -1
  101. package/esm/models/seriesType/scatter.d.ts +11 -2
  102. package/esm/themeAugmentation/components.d.ts +3 -0
  103. package/esm/themeAugmentation/props.d.ts +2 -0
  104. package/hooks/useAxis.d.ts +2 -2
  105. package/index.js +1 -1
  106. package/internals/constants.d.ts +3 -0
  107. package/internals/constants.js +5 -1
  108. package/internals/getLabel.d.ts +1 -1
  109. package/internals/index.d.ts +1 -0
  110. package/internals/index.js +8 -0
  111. package/internals/plugins/corePlugins/corePlugins.d.ts +3 -2
  112. package/internals/plugins/corePlugins/corePlugins.js +2 -1
  113. package/internals/plugins/corePlugins/useChartAnimation/useChartAnimation.selectors.d.ts +1 -1
  114. package/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.selectors.d.ts +3 -3
  115. package/internals/plugins/corePlugins/useChartExperimentalFeature/index.d.ts +3 -0
  116. package/internals/plugins/corePlugins/useChartExperimentalFeature/index.js +27 -0
  117. package/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.d.ts +3 -0
  118. package/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.js +34 -0
  119. package/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.selectors.d.ts +8 -0
  120. package/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.selectors.js +10 -0
  121. package/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.d.ts +21 -0
  122. package/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.js +5 -0
  123. package/internals/plugins/corePlugins/useChartId/useChartId.selectors.d.ts +1 -1
  124. package/internals/plugins/corePlugins/useChartSeries/useChartSeries.selectors.d.ts +2 -2
  125. package/internals/plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.d.ts +5 -1
  126. package/internals/plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.js +4 -2
  127. package/internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeZoom.d.ts +1 -0
  128. package/internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeZoom.js +4 -1
  129. package/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisDomainLimit.d.ts +7 -0
  130. package/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisDomainLimit.js +21 -0
  131. package/internals/plugins/featurePlugins/useChartCartesianAxis/index.d.ts +2 -0
  132. package/internals/plugins/featurePlugins/useChartCartesianAxis/index.js +24 -0
  133. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartAxisSize.selectors.d.ts +4 -4
  134. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.js +46 -3
  135. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.types.d.ts +18 -1
  136. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisPreview.selectors.d.ts +3 -0
  137. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisPreview.selectors.js +82 -0
  138. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.d.ts +10 -5
  139. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.js +9 -6
  140. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianHighlight.selectors.d.ts +47 -0
  141. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianHighlight.selectors.js +55 -0
  142. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.d.ts +18 -12
  143. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.js +18 -3
  144. package/internals/plugins/featurePlugins/useChartCartesianAxis/zoom.types.d.ts +6 -1
  145. package/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.selectors.d.ts +5 -5
  146. package/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.d.ts +6 -6
  147. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.selectors.d.ts +5 -5
  148. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarInteraction.selectors.d.ts +7 -8
  149. package/internals/plugins/featurePlugins/useChartVoronoi/useChartVoronoi.selectors.d.ts +1 -1
  150. package/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.selectors.d.ts +1 -1
  151. package/internals/plugins/utils/useLazySelectorEffect.d.ts +7 -0
  152. package/internals/plugins/utils/useLazySelectorEffect.js +77 -0
  153. package/internals/store/useCharts.d.ts +1 -1
  154. package/models/axis.d.ts +15 -0
  155. package/models/axis.js +4 -0
  156. package/models/index.d.ts +1 -1
  157. package/models/seriesType/scatter.d.ts +11 -2
  158. package/package.json +4 -4
  159. package/themeAugmentation/components.d.ts +3 -0
  160. package/themeAugmentation/props.d.ts +2 -0
@@ -28,6 +28,9 @@ const seriesProcessor = ({
28
28
  labelMarkType: 'circle',
29
29
  markerSize: 4
30
30
  }, seriesData, {
31
+ preview: (0, _extends2.default)({
32
+ markerSize: 1
33
+ }, seriesData?.preview),
31
34
  data,
32
35
  valueFormatter: seriesData.valueFormatter ?? (v => v && `(${v.x}, ${v.y})`)
33
36
  })];
@@ -13,7 +13,7 @@ import { BarPlotSlots, BarPlotSlotProps } from "../BarChart/BarPlot.js";
13
13
  import { ChartMargin } from "../internals/plugins/corePlugins/useChartDimensions/useChartDimensions.types.js";
14
14
  export interface SparkLineChartSlots extends AreaPlotSlots, LinePlotSlots, MarkPlotSlots, LineHighlightPlotSlots, Omit<BarPlotSlots, 'barLabel'>, ChartsTooltipSlots {}
15
15
  export interface SparkLineChartSlotProps extends AreaPlotSlotProps, LinePlotSlotProps, MarkPlotSlotProps, LineHighlightPlotSlotProps, BarPlotSlotProps, ChartsTooltipSlotProps {}
16
- export interface SparkLineChartProps extends Omit<ChartContainerProps, 'series' | 'xAxis' | 'yAxis' | 'zAxis' | 'radiusAxis' | 'rotationAxis' | 'margin' | 'plugins' | 'colors' | 'slots' | 'slotProps'> {
16
+ export interface SparkLineChartProps extends Omit<ChartContainerProps, 'series' | 'xAxis' | 'yAxis' | 'zAxis' | 'radiusAxis' | 'rotationAxis' | 'margin' | 'plugins' | 'colors' | 'slots' | 'slotProps' | 'experimentalFeatures'> {
17
17
  /**
18
18
  * The xAxis configuration.
19
19
  * Notice it is a single [[AxisConfig]] object, not an array of configuration.
@@ -213,6 +213,14 @@ process.env.NODE_ENV !== "production" ? SparkLineChart.propTypes = {
213
213
  * The height of the chart in px. If not defined, it takes the height of the parent element.
214
214
  */
215
215
  height: _propTypes.default.number,
216
+ /**
217
+ * The controlled axis highlight.
218
+ * Identified by the axis id, and data index.
219
+ */
220
+ highlightedAxis: _propTypes.default.arrayOf(_propTypes.default.shape({
221
+ axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]).isRequired,
222
+ dataIndex: _propTypes.default.number.isRequired
223
+ })),
216
224
  /**
217
225
  * The highlighted item.
218
226
  * Used when the highlight is controlled.
@@ -256,6 +264,14 @@ process.env.NODE_ENV !== "production" ? SparkLineChart.propTypes = {
256
264
  * @param {HighlightItemData | null} highlightedItem The newly highlighted item.
257
265
  */
258
266
  onHighlightChange: _propTypes.default.func,
267
+ /**
268
+ * The function called when the pointer position corresponds to a new axis data item.
269
+ * This update can either be caused by a pointer movement, or an axis update.
270
+ * In case of multiple axes, the function is called if at least one axis is updated.
271
+ * The argument contains the identifier for all axes with a `data` property.
272
+ * @param {AxisItemIdentifier[]} axisItems The array of axes item identifiers.
273
+ */
274
+ onHighlightedAxisChange: _propTypes.default.func,
259
275
  /**
260
276
  * Callback fired when clicking close to an item.
261
277
  * This is only available for scatter plot for now.
@@ -15,7 +15,7 @@ import { ChartsOverlayProps, ChartsOverlaySlotProps, ChartsOverlaySlots } from "
15
15
  import { BarChartPluginsSignatures } from "./BarChart.plugins.js";
16
16
  export interface BarChartSlots extends ChartsAxisSlots, BarPlotSlots, ChartsLegendSlots, ChartsOverlaySlots, ChartsTooltipSlots, ChartsToolbarSlots, Partial<ChartsSlots> {}
17
17
  export interface BarChartSlotProps extends ChartsAxisSlotProps, BarPlotSlotProps, ChartsLegendSlotProps, ChartsOverlaySlotProps, ChartsTooltipSlotProps, ChartsToolbarSlotProps, Partial<ChartsSlotProps> {}
18
- export interface BarChartProps extends Omit<ChartContainerProps<'bar', BarChartPluginsSignatures>, 'series' | 'plugins' | 'zAxis'>, Omit<ChartsAxisProps, 'slots' | 'slotProps'>, Omit<BarPlotProps, 'slots' | 'slotProps'>, Omit<ChartsOverlayProps, 'slots' | 'slotProps'> {
18
+ export interface BarChartProps extends Omit<ChartContainerProps<'bar', BarChartPluginsSignatures>, 'series' | 'plugins' | 'zAxis' | 'experimentalFeatures'>, Omit<ChartsAxisProps, 'slots' | 'slotProps'>, Omit<BarPlotProps, 'slots' | 'slotProps'>, Omit<ChartsOverlayProps, 'slots' | 'slotProps'> {
19
19
  /**
20
20
  * The series to display in the bar chart.
21
21
  * An array of [[BarSeriesType]] objects.
@@ -127,6 +127,14 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
127
127
  * If `true`, the legend is not rendered.
128
128
  */
129
129
  hideLegend: PropTypes.bool,
130
+ /**
131
+ * The controlled axis highlight.
132
+ * Identified by the axis id, and data index.
133
+ */
134
+ highlightedAxis: PropTypes.arrayOf(PropTypes.shape({
135
+ axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
136
+ dataIndex: PropTypes.number.isRequired
137
+ })),
130
138
  /**
131
139
  * The highlighted item.
132
140
  * Used when the highlight is controlled.
@@ -179,6 +187,14 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
179
187
  * @param {HighlightItemData | null} highlightedItem The newly highlighted item.
180
188
  */
181
189
  onHighlightChange: PropTypes.func,
190
+ /**
191
+ * The function called when the pointer position corresponds to a new axis data item.
192
+ * This update can either be caused by a pointer movement, or an axis update.
193
+ * In case of multiple axes, the function is called if at least one axis is updated.
194
+ * The argument contains the identifier for all axes with a `data` property.
195
+ * @param {AxisItemIdentifier[]} axisItems The array of axes item identifiers.
196
+ */
197
+ onHighlightedAxisChange: PropTypes.func,
182
198
  /**
183
199
  * Callback fired when a bar item is clicked.
184
200
  * @param {React.MouseEvent<SVGElement, MouseEvent>} event The event source of the callback.
@@ -76,10 +76,24 @@ process.env.NODE_ENV !== "production" ? ChartContainer.propTypes = {
76
76
  * If true, the voronoi interaction are ignored.
77
77
  */
78
78
  disableVoronoi: PropTypes.bool,
79
+ /**
80
+ * Options to enable features planned for the next major.
81
+ */
82
+ experimentalFeatures: PropTypes.shape({
83
+ preferStrictDomainInLineCharts: PropTypes.bool
84
+ }),
79
85
  /**
80
86
  * The height of the chart in px. If not defined, it takes the height of the parent element.
81
87
  */
82
88
  height: PropTypes.number,
89
+ /**
90
+ * The controlled axis highlight.
91
+ * Identified by the axis id, and data index.
92
+ */
93
+ highlightedAxis: PropTypes.arrayOf(PropTypes.shape({
94
+ axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
95
+ dataIndex: PropTypes.number.isRequired
96
+ })),
83
97
  /**
84
98
  * The highlighted item.
85
99
  * Used when the highlight is controlled.
@@ -122,6 +136,14 @@ process.env.NODE_ENV !== "production" ? ChartContainer.propTypes = {
122
136
  * @param {HighlightItemData | null} highlightedItem The newly highlighted item.
123
137
  */
124
138
  onHighlightChange: PropTypes.func,
139
+ /**
140
+ * The function called when the pointer position corresponds to a new axis data item.
141
+ * This update can either be caused by a pointer movement, or an axis update.
142
+ * In case of multiple axes, the function is called if at least one axis is updated.
143
+ * The argument contains the identifier for all axes with a `data` property.
144
+ * @param {AxisItemIdentifier[]} axisItems The array of axes item identifiers.
145
+ */
146
+ onHighlightedAxisChange: PropTypes.func,
125
147
  /**
126
148
  * Callback fired when clicking close to an item.
127
149
  * This is only available for scatter plot for now.
@@ -2,7 +2,7 @@
2
2
 
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
5
- const _excluded = ["width", "height", "margin", "children", "series", "colors", "dataset", "desc", "onAxisClick", "disableVoronoi", "voronoiMaxRadius", "onItemClick", "disableAxisListener", "highlightedItem", "onHighlightChange", "sx", "title", "xAxis", "yAxis", "zAxis", "rotationAxis", "radiusAxis", "skipAnimation", "seriesConfig", "plugins", "localeText", "slots", "slotProps"];
5
+ const _excluded = ["width", "height", "margin", "children", "series", "colors", "dataset", "desc", "onAxisClick", "highlightedAxis", "onHighlightedAxisChange", "disableVoronoi", "voronoiMaxRadius", "onItemClick", "disableAxisListener", "highlightedItem", "onHighlightChange", "sx", "title", "xAxis", "yAxis", "zAxis", "rotationAxis", "radiusAxis", "skipAnimation", "seriesConfig", "plugins", "localeText", "slots", "slotProps", "experimentalFeatures"];
6
6
  import { DEFAULT_PLUGINS } from "../internals/plugins/allPlugins.js";
7
7
  export const useChartContainerProps = (props, ref) => {
8
8
  const _ref = props,
@@ -16,6 +16,8 @@ export const useChartContainerProps = (props, ref) => {
16
16
  dataset,
17
17
  desc,
18
18
  onAxisClick,
19
+ highlightedAxis,
20
+ onHighlightedAxisChange,
19
21
  disableVoronoi,
20
22
  voronoiMaxRadius,
21
23
  onItemClick,
@@ -34,7 +36,8 @@ export const useChartContainerProps = (props, ref) => {
34
36
  plugins,
35
37
  localeText,
36
38
  slots,
37
- slotProps
39
+ slotProps,
40
+ experimentalFeatures
38
41
  } = _ref,
39
42
  other = _objectWithoutPropertiesLoose(_ref, _excluded);
40
43
  const chartsSurfaceProps = _extends({
@@ -52,6 +55,8 @@ export const useChartContainerProps = (props, ref) => {
52
55
  highlightedItem,
53
56
  onHighlightChange,
54
57
  onAxisClick,
58
+ highlightedAxis,
59
+ onHighlightedAxisChange,
55
60
  disableVoronoi,
56
61
  voronoiMaxRadius,
57
62
  onItemClick,
@@ -65,6 +70,7 @@ export const useChartContainerProps = (props, ref) => {
65
70
  height,
66
71
  localeText,
67
72
  seriesConfig,
73
+ experimentalFeatures,
68
74
  plugins: plugins ?? DEFAULT_PLUGINS,
69
75
  slots,
70
76
  slotProps
@@ -73,6 +73,12 @@ process.env.NODE_ENV !== "production" ? ChartDataProvider.propTypes = {
73
73
  * An array of objects that can be used to populate series and axes data using their `dataKey` property.
74
74
  */
75
75
  dataset: PropTypes.arrayOf(PropTypes.object),
76
+ /**
77
+ * Options to enable features planned for the next major.
78
+ */
79
+ experimentalFeatures: PropTypes.shape({
80
+ preferStrictDomainInLineCharts: PropTypes.bool
81
+ }),
76
82
  /**
77
83
  * The height of the chart in px. If not defined, it takes the height of the parent element.
78
84
  */
@@ -4,7 +4,7 @@ import { ChartAnyPluginSignature } from "../internals/plugins/models/index.js";
4
4
  import { ChartSeriesType } from "../models/seriesType/config.js";
5
5
  import { AllPluginSignatures } from "../internals/plugins/allPlugins.js";
6
6
  import { ChartsLocalizationProviderProps } from "../ChartsLocalizationProvider/index.js";
7
- export declare const useChartDataProviderProps: <TSeries extends ChartSeriesType = ChartSeriesType, TSignatures extends readonly ChartAnyPluginSignature[] = AllPluginSignatures<TSeries>>(props: ChartDataProviderProps<TSeries, TSignatures> & ChartsLocalizationProviderProps) => {
7
+ export declare const useChartDataProviderProps: <TSeries extends ChartSeriesType = ChartSeriesType, TSignatures extends readonly ChartAnyPluginSignature[] = AllPluginSignatures<TSeries>>(inProps: ChartDataProviderProps<TSeries, TSignatures> & ChartsLocalizationProviderProps) => {
8
8
  children: import("react").ReactNode;
9
9
  localeText: Partial<import("../locales/index.js").ChartsLocaleText> | undefined;
10
10
  chartProviderProps: ChartProviderProps<TSeries, TSignatures>;
@@ -3,9 +3,14 @@
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
5
5
  const _excluded = ["children", "localeText", "plugins", "seriesConfig", "slots", "slotProps"];
6
- import { useTheme } from '@mui/material/styles';
6
+ import { useTheme, useThemeProps } from '@mui/material/styles';
7
7
  import { DEFAULT_PLUGINS } from "../internals/plugins/allPlugins.js";
8
- export const useChartDataProviderProps = props => {
8
+ export const useChartDataProviderProps = inProps => {
9
+ // eslint-disable-next-line material-ui/mui-name-matches-component-name
10
+ const props = useThemeProps({
11
+ props: inProps,
12
+ name: 'MuiChartDataProvider'
13
+ });
9
14
  const {
10
15
  children,
11
16
  localeText,
@@ -7,4 +7,4 @@ import { ChartsAxisHighlightClasses } from "./chartsAxisHighlightClasses.js";
7
7
  export default function ChartsXHighlight(props: {
8
8
  type: ChartsAxisHighlightType;
9
9
  classes: ChartsAxisHighlightClasses;
10
- }): React.JSX.Element;
10
+ }): React.JSX.Element[] | null;
@@ -1,11 +1,11 @@
1
1
  'use client';
2
2
 
3
3
  import * as React from 'react';
4
- import { getValueToPositionMapper, useXScale } from "../hooks/useScale.js";
4
+ import { getValueToPositionMapper } from "../hooks/useScale.js";
5
5
  import { isBandScale } from "../internals/isBandScale.js";
6
6
  import { useSelector } from "../internals/store/useSelector.js";
7
7
  import { useStore } from "../internals/store/useStore.js";
8
- import { selectorChartsInteractionXAxisValue } from "../internals/plugins/featurePlugins/useChartCartesianAxis/index.js";
8
+ import { selectorChartsHighlightXAxisValue, selectorChartXAxis } from "../internals/plugins/featurePlugins/useChartCartesianAxis/index.js";
9
9
  import { useDrawingArea } from "../hooks/index.js";
10
10
  import { ChartsAxisHighlightPath } from "./ChartsAxisHighlightPath.js";
11
11
 
@@ -22,32 +22,42 @@ export default function ChartsXHighlight(props) {
22
22
  top,
23
23
  height
24
24
  } = useDrawingArea();
25
- const xScale = useXScale();
26
25
  const store = useStore();
27
- const axisXValue = useSelector(store, selectorChartsInteractionXAxisValue);
28
- const getXPosition = getValueToPositionMapper(xScale);
29
- const isBandScaleX = type === 'band' && axisXValue !== null && isBandScale(xScale);
30
- if (process.env.NODE_ENV !== 'production') {
31
- const isError = isBandScaleX && xScale(axisXValue) === undefined;
32
- if (isError) {
33
- console.error([`MUI X Charts: The position value provided for the axis is not valid for the current scale.`, `This probably means something is wrong with the data passed to the chart.`, `The ChartsAxisHighlight component will not be displayed.`].join('\n'));
34
- }
26
+ const axisXValues = useSelector(store, selectorChartsHighlightXAxisValue);
27
+ const xAxes = useSelector(store, selectorChartXAxis);
28
+ if (axisXValues.length === 0) {
29
+ return null;
35
30
  }
36
- return /*#__PURE__*/_jsxs(React.Fragment, {
37
- children: [isBandScaleX && xScale(axisXValue) !== undefined && /*#__PURE__*/_jsx(ChartsAxisHighlightPath
38
- // @ts-expect-error, xScale value is checked in the statement above
39
- , {
40
- d: `M ${xScale(axisXValue) - (xScale.step() - xScale.bandwidth()) / 2} ${top} l ${xScale.step()} 0 l 0 ${height} l ${-xScale.step()} 0 Z`,
41
- className: classes.root,
42
- ownerState: {
43
- axisHighlight: 'band'
44
- }
45
- }), type === 'line' && axisXValue !== null && /*#__PURE__*/_jsx(ChartsAxisHighlightPath, {
46
- d: `M ${getXPosition(axisXValue)} ${top} L ${getXPosition(axisXValue)} ${top + height}`,
47
- className: classes.root,
48
- ownerState: {
49
- axisHighlight: 'line'
31
+ return axisXValues.map(({
32
+ axisId,
33
+ value
34
+ }) => {
35
+ const xAxis = xAxes.axis[axisId];
36
+ const xScale = xAxis.scale;
37
+ const getXPosition = getValueToPositionMapper(xScale);
38
+ const isBandScaleX = type === 'band' && value !== null && isBandScale(xScale);
39
+ if (process.env.NODE_ENV !== 'production') {
40
+ const isError = isBandScaleX && xScale(value) === undefined;
41
+ if (isError) {
42
+ console.error([`MUI X Charts: The position value provided for the axis is not valid for the current scale.`, `This probably means something is wrong with the data passed to the chart.`, `The ChartsAxisHighlight component will not be displayed.`].join('\n'));
50
43
  }
51
- })]
44
+ }
45
+ return /*#__PURE__*/_jsxs(React.Fragment, {
46
+ children: [isBandScaleX && xScale(value) !== undefined && /*#__PURE__*/_jsx(ChartsAxisHighlightPath
47
+ // @ts-expect-error, xScale value is checked in the statement above
48
+ , {
49
+ d: `M ${xScale(value) - (xScale.step() - xScale.bandwidth()) / 2} ${top} l ${xScale.step()} 0 l 0 ${height} l ${-xScale.step()} 0 Z`,
50
+ className: classes.root,
51
+ ownerState: {
52
+ axisHighlight: 'band'
53
+ }
54
+ }), type === 'line' && value !== null && /*#__PURE__*/_jsx(ChartsAxisHighlightPath, {
55
+ d: `M ${getXPosition(value)} ${top} L ${getXPosition(value)} ${top + height}`,
56
+ className: classes.root,
57
+ ownerState: {
58
+ axisHighlight: 'line'
59
+ }
60
+ })]
61
+ }, `${axisId}-${value}`);
52
62
  });
53
63
  }
@@ -7,4 +7,4 @@ import { ChartsAxisHighlightClasses } from "./chartsAxisHighlightClasses.js";
7
7
  export default function ChartsYHighlight(props: {
8
8
  type: ChartsAxisHighlightType;
9
9
  classes: ChartsAxisHighlightClasses;
10
- }): React.JSX.Element;
10
+ }): React.JSX.Element[] | null;
@@ -1,11 +1,11 @@
1
1
  'use client';
2
2
 
3
3
  import * as React from 'react';
4
- import { getValueToPositionMapper, useYScale } from "../hooks/useScale.js";
4
+ import { getValueToPositionMapper } from "../hooks/useScale.js";
5
5
  import { isBandScale } from "../internals/isBandScale.js";
6
6
  import { useSelector } from "../internals/store/useSelector.js";
7
7
  import { useStore } from "../internals/store/useStore.js";
8
- import { selectorChartsInteractionYAxisValue } from "../internals/plugins/featurePlugins/useChartCartesianAxis/index.js";
8
+ import { selectorChartsHighlightYAxisValue, selectorChartYAxis } from "../internals/plugins/featurePlugins/useChartCartesianAxis/index.js";
9
9
  import { useDrawingArea } from "../hooks/index.js";
10
10
  import { ChartsAxisHighlightPath } from "./ChartsAxisHighlightPath.js";
11
11
 
@@ -22,32 +22,42 @@ export default function ChartsYHighlight(props) {
22
22
  left,
23
23
  width
24
24
  } = useDrawingArea();
25
- const yScale = useYScale();
26
25
  const store = useStore();
27
- const axisYValue = useSelector(store, selectorChartsInteractionYAxisValue);
28
- const getYPosition = getValueToPositionMapper(yScale);
29
- const isBandScaleY = type === 'band' && axisYValue !== null && isBandScale(yScale);
30
- if (process.env.NODE_ENV !== 'production') {
31
- const isError = isBandScaleY && yScale(axisYValue) === undefined;
32
- if (isError) {
33
- console.error([`MUI X Charts: The position value provided for the axis is not valid for the current scale.`, `This probably means something is wrong with the data passed to the chart.`, `The ChartsAxisHighlight component will not be displayed.`].join('\n'));
34
- }
26
+ const axisYValues = useSelector(store, selectorChartsHighlightYAxisValue);
27
+ const yAxes = useSelector(store, selectorChartYAxis);
28
+ if (axisYValues.length === 0) {
29
+ return null;
35
30
  }
36
- return /*#__PURE__*/_jsxs(React.Fragment, {
37
- children: [isBandScaleY && yScale(axisYValue) !== undefined && /*#__PURE__*/_jsx(ChartsAxisHighlightPath, {
38
- d: `M ${left} ${
39
- // @ts-expect-error, yScale value is checked in the statement above
40
- yScale(axisYValue) - (yScale.step() - yScale.bandwidth()) / 2} l 0 ${yScale.step()} l ${width} 0 l 0 ${-yScale.step()} Z`,
41
- className: classes.root,
42
- ownerState: {
43
- axisHighlight: 'band'
44
- }
45
- }), type === 'line' && axisYValue !== null && /*#__PURE__*/_jsx(ChartsAxisHighlightPath, {
46
- d: `M ${left} ${getYPosition(axisYValue)} L ${left + width} ${getYPosition(axisYValue)}`,
47
- className: classes.root,
48
- ownerState: {
49
- axisHighlight: 'line'
31
+ return axisYValues.map(({
32
+ axisId,
33
+ value
34
+ }) => {
35
+ const yAxis = yAxes.axis[axisId];
36
+ const yScale = yAxis.scale;
37
+ const getYPosition = getValueToPositionMapper(yScale);
38
+ const isBandScaleY = type === 'band' && value !== null && isBandScale(yScale);
39
+ if (process.env.NODE_ENV !== 'production') {
40
+ const isError = isBandScaleY && yScale(value) === undefined;
41
+ if (isError) {
42
+ console.error([`MUI X Charts: The position value provided for the axis is not valid for the current scale.`, `This probably means something is wrong with the data passed to the chart.`, `The ChartsAxisHighlight component will not be displayed.`].join('\n'));
50
43
  }
51
- })]
44
+ }
45
+ return /*#__PURE__*/_jsxs(React.Fragment, {
46
+ children: [isBandScaleY && yScale(value) !== undefined && /*#__PURE__*/_jsx(ChartsAxisHighlightPath, {
47
+ d: `M ${left} ${
48
+ // @ts-expect-error, yScale value is checked in the statement above
49
+ yScale(value) - (yScale.step() - yScale.bandwidth()) / 2} l 0 ${yScale.step()} l ${width} 0 l 0 ${-yScale.step()} Z`,
50
+ className: classes.root,
51
+ ownerState: {
52
+ axisHighlight: 'band'
53
+ }
54
+ }), type === 'line' && value !== null && /*#__PURE__*/_jsx(ChartsAxisHighlightPath, {
55
+ d: `M ${left} ${getYPosition(value)} L ${left + width} ${getYPosition(value)}`,
56
+ className: classes.root,
57
+ ownerState: {
58
+ axisHighlight: 'line'
59
+ }
60
+ })]
61
+ }, `${axisId}-${value}`);
52
62
  });
53
63
  }
@@ -3,7 +3,7 @@ import { ChartsSurfaceProps } from "../ChartsSurface/index.js";
3
3
  import { GaugeProviderProps } from "./GaugeProvider.js";
4
4
  import { MergeSignaturesProperty } from "../internals/plugins/models/index.js";
5
5
  import { ChartCorePluginSignatures } from "../internals/plugins/corePlugins/index.js";
6
- export interface GaugeContainerProps extends Omit<ChartsSurfaceProps, 'children'>, Omit<MergeSignaturesProperty<ChartCorePluginSignatures, 'params'>, 'series' | 'dataset' | 'colors' | 'theme'>, Omit<GaugeProviderProps, 'children'>, Omit<React.SVGProps<SVGSVGElement>, 'width' | 'height'> {
6
+ export interface GaugeContainerProps extends Omit<ChartsSurfaceProps, 'children'>, Omit<MergeSignaturesProperty<ChartCorePluginSignatures, 'params'>, 'series' | 'dataset' | 'colors' | 'theme' | 'experimentalFeatures'>, Omit<GaugeProviderProps, 'children'>, Omit<React.SVGProps<SVGSVGElement>, 'width' | 'height'> {
7
7
  children?: React.ReactNode;
8
8
  }
9
9
  declare const GaugeContainer: React.ForwardRefExoticComponent<Omit<GaugeContainerProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
@@ -111,6 +111,12 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
111
111
  * If `true`, render the line highlight item.
112
112
  */
113
113
  disableLineItemHighlight: PropTypes.bool,
114
+ /**
115
+ * Options to enable features planned for the next major.
116
+ */
117
+ experimentalFeatures: PropTypes.shape({
118
+ preferStrictDomainInLineCharts: PropTypes.bool
119
+ }),
114
120
  /**
115
121
  * Option to display a cartesian grid in the background.
116
122
  */
@@ -126,6 +132,14 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
126
132
  * If `true`, the legend is not rendered.
127
133
  */
128
134
  hideLegend: PropTypes.bool,
135
+ /**
136
+ * The controlled axis highlight.
137
+ * Identified by the axis id, and data index.
138
+ */
139
+ highlightedAxis: PropTypes.arrayOf(PropTypes.shape({
140
+ axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
141
+ dataIndex: PropTypes.number.isRequired
142
+ })),
129
143
  /**
130
144
  * The highlighted item.
131
145
  * Used when the highlight is controlled.
@@ -177,6 +191,14 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
177
191
  * @param {HighlightItemData | null} highlightedItem The newly highlighted item.
178
192
  */
179
193
  onHighlightChange: PropTypes.func,
194
+ /**
195
+ * The function called when the pointer position corresponds to a new axis data item.
196
+ * This update can either be caused by a pointer movement, or an axis update.
197
+ * In case of multiple axes, the function is called if at least one axis is updated.
198
+ * The argument contains the identifier for all axes with a `data` property.
199
+ * @param {AxisItemIdentifier[]} axisItems The array of axes item identifiers.
200
+ */
201
+ onHighlightedAxisChange: PropTypes.func,
180
202
  /**
181
203
  * Callback fired when a line element is clicked.
182
204
  */
@@ -13,7 +13,7 @@ import { DEFAULT_X_AXIS_KEY } from "../constants/index.js";
13
13
  import { useLineSeriesContext } from "../hooks/useLineSeries.js";
14
14
  import getColor from "./seriesConfig/getColor.js";
15
15
  import { useChartContext } from "../context/ChartProvider/index.js";
16
- import { selectorChartsInteractionXAxisIndex } from "../internals/plugins/featurePlugins/useChartCartesianAxis/index.js";
16
+ import { selectorChartsHighlightXAxisIndex } from "../internals/plugins/featurePlugins/useChartCartesianAxis/index.js";
17
17
  import { useXAxes, useYAxes } from "../hooks/useAxis.js";
18
18
  import { jsx as _jsx } from "react/jsx-runtime";
19
19
  /**
@@ -45,8 +45,8 @@ function LineHighlightPlot(props) {
45
45
  instance
46
46
  } = useChartContext();
47
47
  const store = useStore();
48
- const highlightedIndex = useSelector(store, selectorChartsInteractionXAxisIndex);
49
- if (highlightedIndex === null) {
48
+ const highlightedIndexes = useSelector(store, selectorChartsHighlightXAxisIndex);
49
+ if (highlightedIndexes.length === 0) {
50
50
  return null;
51
51
  }
52
52
  if (seriesData === undefined) {
@@ -60,7 +60,10 @@ function LineHighlightPlot(props) {
60
60
  const defaultYAxisId = yAxisIds[0];
61
61
  const Element = slots?.lineHighlight ?? LineHighlightElement;
62
62
  return /*#__PURE__*/_jsx("g", _extends({}, other, {
63
- children: stackingGroups.flatMap(({
63
+ children: highlightedIndexes.flatMap(({
64
+ dataIndex: highlightedIndex,
65
+ axisId: highlightedAxisId
66
+ }) => stackingGroups.flatMap(({
64
67
  ids: groupIds
65
68
  }) => {
66
69
  return groupIds.flatMap(seriesId => {
@@ -75,6 +78,9 @@ function LineHighlightPlot(props) {
75
78
  if (disableHighlight || data[highlightedIndex] == null) {
76
79
  return null;
77
80
  }
81
+ if (highlightedAxisId !== xAxisId) {
82
+ return null;
83
+ }
78
84
  const xScale = getValueToPositionMapper(xAxis[xAxisId].scale);
79
85
  const yScale = yAxis[yAxisId].scale;
80
86
  const xData = xAxis[xAxisId].data;
@@ -96,7 +102,7 @@ function LineHighlightPlot(props) {
96
102
  shape: shape
97
103
  }, slotProps?.lineHighlight), `${seriesId}`);
98
104
  });
99
- })
105
+ }))
100
106
  }));
101
107
  }
102
108
  process.env.NODE_ENV !== "production" ? LineHighlightPlot.propTypes = {
@@ -5,7 +5,6 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
5
5
  const _excluded = ["slots", "slotProps", "skipAnimation", "onItemClick"];
6
6
  import PropTypes from 'prop-types';
7
7
  import * as React from 'react';
8
- import { selectorChartsInteractionXAxisIndex } from "../internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.js";
9
8
  import { DEFAULT_X_AXIS_KEY } from "../constants/index.js";
10
9
  import { useSkipAnimation } from "../hooks/useSkipAnimation.js";
11
10
  import { useChartId } from "../hooks/useChartId.js";
@@ -18,6 +17,7 @@ import { MarkElement } from "./MarkElement.js";
18
17
  import { useChartContext } from "../context/ChartProvider/index.js";
19
18
  import { useItemHighlightedGetter, useXAxes, useYAxes } from "../hooks/index.js";
20
19
  import { useInternalIsZoomInteracting } from "../internals/plugins/featurePlugins/useChartCartesianAxis/useInternalIsZoomInteracting.js";
20
+ import { selectorChartsHighlightXAxisIndex } from "../internals/plugins/featurePlugins/useChartCartesianAxis/index.js";
21
21
  import { useSelector } from "../internals/store/useSelector.js";
22
22
  import { jsx as _jsx } from "react/jsx-runtime";
23
23
  /**
@@ -58,7 +58,21 @@ function MarkPlot(props) {
58
58
  isFaded,
59
59
  isHighlighted
60
60
  } = useItemHighlightedGetter();
61
- const xAxisInteractionIndex = useSelector(store, selectorChartsInteractionXAxisIndex);
61
+ const xAxisHighlightIndexes = useSelector(store, selectorChartsHighlightXAxisIndex);
62
+ const highlightedItems = React.useMemo(() => {
63
+ const rep = {};
64
+ for (const {
65
+ dataIndex,
66
+ axisId
67
+ } of xAxisHighlightIndexes) {
68
+ if (rep[axisId] === undefined) {
69
+ rep[axisId] = new Set([dataIndex]);
70
+ } else {
71
+ rep[axisId].add(dataIndex);
72
+ }
73
+ }
74
+ return rep;
75
+ }, [xAxisHighlightIndexes]);
62
76
  if (seriesData === undefined) {
63
77
  return null;
64
78
  }
@@ -156,7 +170,7 @@ function MarkPlot(props) {
156
170
  seriesId,
157
171
  dataIndex: index
158
172
  })),
159
- isHighlighted: xAxisInteractionIndex === index || isSeriesHighlighted,
173
+ isHighlighted: highlightedItems[xAxisId]?.has(index) || isSeriesHighlighted,
160
174
  isFaded: isSeriesFaded
161
175
  }, slotProps?.mark), `${seriesId}-${index}`);
162
176
  })
@@ -33,9 +33,10 @@ export function useAreaPlotData(xAxes, yAxes) {
33
33
  connectNulls,
34
34
  baseline,
35
35
  curve,
36
- strictStepCurve
36
+ strictStepCurve,
37
+ area
37
38
  } = series[seriesId];
38
- if (!(xAxisId in xAxes) || !(yAxisId in yAxes)) {
39
+ if (!area || !(xAxisId in xAxes) || !(yAxisId in yAxes)) {
39
40
  continue;
40
41
  }
41
42
  const xScale = xAxes[xAxisId].scale;
@@ -12,7 +12,7 @@ import { ChartsOverlayProps, ChartsOverlaySlotProps, ChartsOverlaySlots } from "
12
12
  import { PieChartPluginSignatures } from "./PieChart.plugins.js";
13
13
  export interface PieChartSlots extends PiePlotSlots, ChartsLegendSlots, ChartsOverlaySlots, ChartsTooltipSlots, ChartsToolbarSlots, Partial<ChartsSlots> {}
14
14
  export interface PieChartSlotProps extends PiePlotSlotProps, ChartsLegendSlotProps, ChartsOverlaySlotProps, ChartsTooltipSlotProps, ChartsToolbarSlotProps, Partial<ChartsSlotProps> {}
15
- export interface PieChartProps extends Omit<ChartContainerProps<'pie', PieChartPluginSignatures>, 'series' | 'slots' | 'slotProps'>, Omit<ChartsOverlayProps, 'slots' | 'slotProps'>, Pick<PiePlotProps, 'skipAnimation'> {
15
+ export interface PieChartProps extends Omit<ChartContainerProps<'pie', PieChartPluginSignatures>, 'series' | 'slots' | 'slotProps' | 'experimentalFeatures'>, Omit<ChartsOverlayProps, 'slots' | 'slotProps'>, Pick<PiePlotProps, 'skipAnimation'> {
16
16
  /**
17
17
  * The series to display in the pie chart.
18
18
  * An array of [[PieSeriesType]] objects.
@@ -5,7 +5,7 @@ import { RadarSeriesType } from "../../models/seriesType/radar.js";
5
5
  import { ChartDataProviderProps } from "../../ChartDataProvider/index.js";
6
6
  import { RadarConfig } from "./radar.types.js";
7
7
  import { ChartAnyPluginSignature } from "../../internals/plugins/models/plugin.js";
8
- export type RadarDataProviderProps<TSignatures extends readonly ChartAnyPluginSignature[] = RadarChartPluginsSignatures> = Omit<ChartDataProviderProps<'radar', TSignatures>, 'series' | 'rotationAxis' | 'radiusAxis' | 'dataset'> & {
8
+ export type RadarDataProviderProps<TSignatures extends readonly ChartAnyPluginSignature[] = RadarChartPluginsSignatures> = Omit<ChartDataProviderProps<'radar', TSignatures>, 'series' | 'rotationAxis' | 'radiusAxis' | 'dataset' | 'experimentalFeatures'> & {
9
9
  /**
10
10
  * The series to display in the bar chart.
11
11
  * An array of [[RadarSeriesType]] objects.
@@ -16,7 +16,7 @@ import { UseChartVoronoiSignature } from "../internals/plugins/featurePlugins/us
16
16
  import { ScatterChartPluginsSignatures } from "./ScatterChart.plugins.js";
17
17
  export interface ScatterChartSlots extends ChartsAxisSlots, ScatterPlotSlots, ChartsLegendSlots, ChartsOverlaySlots, ChartsTooltipSlots, ChartsToolbarSlots, Partial<ChartsSlots> {}
18
18
  export interface ScatterChartSlotProps extends ChartsAxisSlotProps, ScatterPlotSlotProps, ChartsLegendSlotProps, ChartsOverlaySlotProps, ChartsTooltipSlotProps, ChartsToolbarSlotProps, Partial<ChartsSlotProps> {}
19
- export interface ScatterChartProps extends Omit<ChartContainerProps<'scatter', ScatterChartPluginsSignatures>, 'series' | 'plugins' | 'onItemClick'>, Omit<ChartsAxisProps, 'slots' | 'slotProps'>, Omit<ChartsOverlayProps, 'slots' | 'slotProps'> {
19
+ export interface ScatterChartProps extends Omit<ChartContainerProps<'scatter', ScatterChartPluginsSignatures>, 'series' | 'plugins' | 'onItemClick' | 'experimentalFeatures' | 'highlightedAxis' | 'onHighlightedAxisChange'>, Omit<ChartsAxisProps, 'slots' | 'slotProps'>, Omit<ChartsOverlayProps, 'slots' | 'slotProps'> {
20
20
  /**
21
21
  * The series to display in the scatter chart.
22
22
  * An array of [[ScatterSeriesType]] objects.
@@ -5,9 +5,9 @@ import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import { Scatter } from "./Scatter.js";
7
7
  import { useScatterSeriesContext } from "../hooks/useScatterSeries.js";
8
- import getColor from "./seriesConfig/getColor.js";
9
8
  import { useXAxes, useYAxes } from "../hooks/index.js";
10
9
  import { useZAxes } from "../hooks/useZAxis.js";
10
+ import { seriesConfig as scatterSeriesConfig } from "./seriesConfig/index.js";
11
11
  import { jsx as _jsx } from "react/jsx-runtime";
12
12
  /**
13
13
  * Demos:
@@ -58,7 +58,7 @@ function ScatterPlot(props) {
58
58
  zAxisId,
59
59
  color
60
60
  } = series[seriesId];
61
- const colorGetter = getColor(series[seriesId], xAxis[xAxisId ?? defaultXAxisId], yAxis[yAxisId ?? defaultYAxisId], zAxis[zAxisId ?? defaultZAxisId]);
61
+ const colorGetter = scatterSeriesConfig.colorProcessor(series[seriesId], xAxis[xAxisId ?? defaultXAxisId], yAxis[yAxisId ?? defaultYAxisId], zAxis[zAxisId ?? defaultZAxisId]);
62
62
  const xScale = xAxis[xAxisId ?? defaultXAxisId].scale;
63
63
  const yScale = yAxis[yAxisId ?? defaultYAxisId].scale;
64
64
  return /*#__PURE__*/_jsx(ScatterItems, _extends({
@@ -21,6 +21,9 @@ const seriesProcessor = ({
21
21
  labelMarkType: 'circle',
22
22
  markerSize: 4
23
23
  }, seriesData, {
24
+ preview: _extends({
25
+ markerSize: 1
26
+ }, seriesData?.preview),
24
27
  data,
25
28
  valueFormatter: seriesData.valueFormatter ?? (v => v && `(${v.x}, ${v.y})`)
26
29
  })];