@mui/x-charts 7.0.0-beta.1 → 7.0.0-beta.3

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 (234) hide show
  1. package/BarChart/BarChart.d.ts +21 -5
  2. package/BarChart/BarChart.js +37 -13
  3. package/BarChart/BarElement.d.ts +20 -13
  4. package/BarChart/BarElement.js +1 -0
  5. package/BarChart/BarPlot.d.ts +3 -5
  6. package/BarChart/BarPlot.js +9 -10
  7. package/CHANGELOG.md +223 -1
  8. package/ChartContainer/ChartContainer.js +6 -4
  9. package/ChartsAxis/ChartsAxis.js +4 -4
  10. package/ChartsGrid/ChartsGrid.d.ts +30 -0
  11. package/ChartsGrid/ChartsGrid.js +128 -0
  12. package/ChartsGrid/chartsGridClasses.d.ts +13 -0
  13. package/ChartsGrid/chartsGridClasses.js +14 -0
  14. package/ChartsGrid/index.d.ts +2 -0
  15. package/ChartsGrid/index.js +27 -0
  16. package/ChartsGrid/package.json +6 -0
  17. package/ChartsLegend/ChartsLegend.d.ts +5 -54
  18. package/ChartsLegend/ChartsLegend.js +2 -307
  19. package/ChartsLegend/DefaultChartsLegend.d.ts +60 -0
  20. package/ChartsLegend/DefaultChartsLegend.js +294 -0
  21. package/ChartsLegend/index.d.ts +1 -0
  22. package/ChartsLegend/index.js +11 -0
  23. package/ChartsReferenceLine/ChartsReferenceLine.js +2 -2
  24. package/ChartsReferenceLine/common.d.ts +2 -1
  25. package/ChartsSurface.js +6 -4
  26. package/ChartsTooltip/ChartsItemTooltipContent.js +2 -2
  27. package/ChartsTooltip/DefaultChartsAxisTooltipContent.js +1 -1
  28. package/ChartsTooltip/DefaultChartsItemTooltipContent.js +1 -1
  29. package/ChartsTooltip/utils.d.ts +1 -0
  30. package/ChartsTooltip/utils.js +7 -0
  31. package/ChartsXAxis/ChartsXAxis.js +15 -11
  32. package/ChartsYAxis/ChartsYAxis.js +3 -3
  33. package/Gauge/Gauge.d.ts +13 -0
  34. package/Gauge/Gauge.js +156 -0
  35. package/Gauge/GaugeContainer.d.ts +19 -0
  36. package/Gauge/GaugeContainer.js +216 -0
  37. package/Gauge/GaugeProvider.d.ts +117 -0
  38. package/Gauge/GaugeProvider.js +96 -0
  39. package/Gauge/GaugeReferenceArc.d.ts +2 -0
  40. package/Gauge/GaugeReferenceArc.js +44 -0
  41. package/Gauge/GaugeValueArc.d.ts +2 -0
  42. package/Gauge/GaugeValueArc.js +51 -0
  43. package/Gauge/GaugeValueText.d.ts +15 -0
  44. package/Gauge/GaugeValueText.js +77 -0
  45. package/Gauge/gaugeClasses.d.ts +14 -0
  46. package/Gauge/gaugeClasses.js +15 -0
  47. package/Gauge/index.d.ts +7 -0
  48. package/Gauge/index.js +87 -0
  49. package/Gauge/package.json +6 -0
  50. package/Gauge/utils.d.ts +19 -0
  51. package/Gauge/utils.js +75 -0
  52. package/LineChart/AnimatedArea.js +1 -1
  53. package/LineChart/AnimatedLine.js +1 -1
  54. package/LineChart/AreaElement.d.ts +2 -1
  55. package/LineChart/AreaElement.js +1 -1
  56. package/LineChart/LineChart.d.ts +24 -5
  57. package/LineChart/LineChart.js +41 -13
  58. package/LineChart/LineElement.d.ts +2 -1
  59. package/LineChart/LineElement.js +1 -1
  60. package/LineChart/LineHighlightElement.d.ts +3 -2
  61. package/LineChart/LineHighlightElement.js +2 -1
  62. package/LineChart/MarkElement.d.ts +3 -2
  63. package/LineChart/MarkElement.js +1 -0
  64. package/PieChart/PieArc.d.ts +7 -6
  65. package/PieChart/PieArc.js +10 -9
  66. package/PieChart/PieArcLabel.d.ts +3 -2
  67. package/PieChart/PieArcLabel.js +1 -0
  68. package/PieChart/PieArcLabelPlot.js +14 -14
  69. package/PieChart/PieArcPlot.js +1 -1
  70. package/PieChart/PieChart.d.ts +22 -0
  71. package/PieChart/PieChart.js +32 -8
  72. package/ResponsiveChartContainer/ResponsiveChartContainer.js +8 -70
  73. package/ResponsiveChartContainer/useChartContainerDimensions.d.ts +2 -0
  74. package/ResponsiveChartContainer/useChartContainerDimensions.js +76 -0
  75. package/ScatterChart/ScatterChart.d.ts +18 -0
  76. package/ScatterChart/ScatterChart.js +35 -8
  77. package/SparkLineChart/SparkLineChart.d.ts +1 -1
  78. package/SparkLineChart/SparkLineChart.js +5 -4
  79. package/context/CartesianContextProvider.js +8 -6
  80. package/esm/BarChart/BarChart.js +37 -13
  81. package/esm/BarChart/BarElement.js +1 -0
  82. package/esm/BarChart/BarPlot.js +8 -10
  83. package/esm/ChartContainer/ChartContainer.js +6 -4
  84. package/esm/ChartsAxis/ChartsAxis.js +4 -4
  85. package/esm/ChartsGrid/ChartsGrid.js +121 -0
  86. package/esm/ChartsGrid/chartsGridClasses.js +6 -0
  87. package/esm/ChartsGrid/index.js +2 -0
  88. package/esm/ChartsLegend/ChartsLegend.js +2 -307
  89. package/esm/ChartsLegend/DefaultChartsLegend.js +286 -0
  90. package/esm/ChartsLegend/index.js +1 -0
  91. package/esm/ChartsReferenceLine/ChartsReferenceLine.js +2 -2
  92. package/esm/ChartsSurface.js +6 -4
  93. package/esm/ChartsTooltip/ChartsItemTooltipContent.js +2 -2
  94. package/esm/ChartsTooltip/DefaultChartsAxisTooltipContent.js +2 -2
  95. package/esm/ChartsTooltip/DefaultChartsItemTooltipContent.js +1 -1
  96. package/esm/ChartsTooltip/utils.js +6 -0
  97. package/esm/ChartsXAxis/ChartsXAxis.js +14 -10
  98. package/esm/ChartsYAxis/ChartsYAxis.js +2 -2
  99. package/esm/Gauge/Gauge.js +149 -0
  100. package/esm/Gauge/GaugeContainer.js +211 -0
  101. package/esm/Gauge/GaugeProvider.js +85 -0
  102. package/esm/Gauge/GaugeReferenceArc.js +35 -0
  103. package/esm/Gauge/GaugeValueArc.js +42 -0
  104. package/esm/Gauge/GaugeValueText.js +69 -0
  105. package/esm/Gauge/gaugeClasses.js +7 -0
  106. package/esm/Gauge/index.js +7 -0
  107. package/esm/Gauge/utils.js +68 -0
  108. package/esm/LineChart/AnimatedArea.js +1 -1
  109. package/esm/LineChart/AnimatedLine.js +1 -1
  110. package/esm/LineChart/AreaElement.js +1 -1
  111. package/esm/LineChart/LineChart.js +41 -13
  112. package/esm/LineChart/LineElement.js +1 -1
  113. package/esm/LineChart/LineHighlightElement.js +2 -1
  114. package/esm/LineChart/MarkElement.js +1 -0
  115. package/esm/PieChart/PieArc.js +10 -9
  116. package/esm/PieChart/PieArcLabel.js +1 -0
  117. package/esm/PieChart/PieArcLabelPlot.js +14 -14
  118. package/esm/PieChart/PieArcPlot.js +1 -1
  119. package/esm/PieChart/PieChart.js +32 -8
  120. package/esm/ResponsiveChartContainer/ResponsiveChartContainer.js +8 -70
  121. package/esm/ResponsiveChartContainer/useChartContainerDimensions.js +66 -0
  122. package/esm/ScatterChart/ScatterChart.js +35 -8
  123. package/esm/SparkLineChart/SparkLineChart.js +5 -4
  124. package/esm/context/CartesianContextProvider.js +8 -6
  125. package/esm/hooks/useTicks.js +2 -3
  126. package/esm/index.js +2 -0
  127. package/hooks/useTicks.d.ts +1 -2
  128. package/hooks/useTicks.js +2 -3
  129. package/index.d.ts +2 -0
  130. package/index.js +23 -1
  131. package/internals/defaultizeColor.d.ts +16 -16
  132. package/internals/defaultizeValueFormatter.d.ts +4 -7
  133. package/internals/stackSeries.d.ts +4 -7
  134. package/legacy/BarChart/BarChart.js +37 -13
  135. package/legacy/BarChart/BarElement.js +1 -0
  136. package/legacy/BarChart/BarPlot.js +10 -10
  137. package/legacy/ChartContainer/ChartContainer.js +6 -4
  138. package/legacy/ChartsAxis/ChartsAxis.js +4 -4
  139. package/legacy/ChartsGrid/ChartsGrid.js +119 -0
  140. package/legacy/ChartsGrid/chartsGridClasses.js +6 -0
  141. package/legacy/ChartsGrid/index.js +2 -0
  142. package/legacy/ChartsLegend/ChartsLegend.js +2 -323
  143. package/legacy/ChartsLegend/DefaultChartsLegend.js +302 -0
  144. package/legacy/ChartsLegend/index.js +1 -0
  145. package/legacy/ChartsReferenceLine/ChartsReferenceLine.js +2 -2
  146. package/legacy/ChartsSurface.js +5 -3
  147. package/legacy/ChartsTooltip/ChartsItemTooltipContent.js +2 -2
  148. package/legacy/ChartsTooltip/DefaultChartsAxisTooltipContent.js +2 -2
  149. package/legacy/ChartsTooltip/DefaultChartsItemTooltipContent.js +1 -1
  150. package/legacy/ChartsTooltip/utils.js +6 -0
  151. package/legacy/ChartsXAxis/ChartsXAxis.js +13 -9
  152. package/legacy/ChartsYAxis/ChartsYAxis.js +2 -2
  153. package/legacy/Gauge/Gauge.js +146 -0
  154. package/legacy/Gauge/GaugeContainer.js +215 -0
  155. package/legacy/Gauge/GaugeProvider.js +87 -0
  156. package/legacy/Gauge/GaugeReferenceArc.js +37 -0
  157. package/legacy/Gauge/GaugeValueArc.js +44 -0
  158. package/legacy/Gauge/GaugeValueText.js +66 -0
  159. package/legacy/Gauge/gaugeClasses.js +7 -0
  160. package/legacy/Gauge/index.js +7 -0
  161. package/legacy/Gauge/utils.js +84 -0
  162. package/legacy/LineChart/AnimatedArea.js +1 -1
  163. package/legacy/LineChart/AnimatedLine.js +1 -1
  164. package/legacy/LineChart/AreaElement.js +1 -1
  165. package/legacy/LineChart/LineChart.js +41 -13
  166. package/legacy/LineChart/LineElement.js +1 -1
  167. package/legacy/LineChart/LineHighlightElement.js +2 -1
  168. package/legacy/LineChart/MarkElement.js +1 -0
  169. package/legacy/PieChart/PieArc.js +11 -10
  170. package/legacy/PieChart/PieArcLabel.js +1 -0
  171. package/legacy/PieChart/PieArcLabelPlot.js +15 -15
  172. package/legacy/PieChart/PieArcPlot.js +1 -1
  173. package/legacy/PieChart/PieChart.js +32 -8
  174. package/legacy/ResponsiveChartContainer/ResponsiveChartContainer.js +13 -81
  175. package/legacy/ResponsiveChartContainer/useChartContainerDimensions.js +73 -0
  176. package/legacy/ScatterChart/ScatterChart.js +35 -8
  177. package/legacy/SparkLineChart/SparkLineChart.js +6 -5
  178. package/legacy/context/CartesianContextProvider.js +8 -6
  179. package/legacy/hooks/useTicks.js +2 -3
  180. package/legacy/index.js +3 -1
  181. package/models/axis.d.ts +7 -2
  182. package/models/seriesType/common.d.ts +2 -1
  183. package/models/seriesType/config.d.ts +7 -12
  184. package/models/seriesType/line.d.ts +2 -2
  185. package/models/seriesType/pie.d.ts +7 -3
  186. package/models/seriesType/scatter.d.ts +5 -2
  187. package/modern/BarChart/BarChart.js +37 -13
  188. package/modern/BarChart/BarElement.js +1 -0
  189. package/modern/BarChart/BarPlot.js +8 -10
  190. package/modern/ChartContainer/ChartContainer.js +6 -4
  191. package/modern/ChartsAxis/ChartsAxis.js +4 -4
  192. package/modern/ChartsGrid/ChartsGrid.js +121 -0
  193. package/modern/ChartsGrid/chartsGridClasses.js +6 -0
  194. package/modern/ChartsGrid/index.js +2 -0
  195. package/modern/ChartsLegend/ChartsLegend.js +2 -307
  196. package/modern/ChartsLegend/DefaultChartsLegend.js +286 -0
  197. package/modern/ChartsLegend/index.js +1 -0
  198. package/modern/ChartsReferenceLine/ChartsReferenceLine.js +2 -2
  199. package/modern/ChartsSurface.js +6 -4
  200. package/modern/ChartsTooltip/ChartsItemTooltipContent.js +2 -2
  201. package/modern/ChartsTooltip/DefaultChartsAxisTooltipContent.js +2 -2
  202. package/modern/ChartsTooltip/DefaultChartsItemTooltipContent.js +1 -1
  203. package/modern/ChartsTooltip/utils.js +6 -0
  204. package/modern/ChartsXAxis/ChartsXAxis.js +14 -10
  205. package/modern/ChartsYAxis/ChartsYAxis.js +2 -2
  206. package/modern/Gauge/Gauge.js +149 -0
  207. package/modern/Gauge/GaugeContainer.js +208 -0
  208. package/modern/Gauge/GaugeProvider.js +85 -0
  209. package/modern/Gauge/GaugeReferenceArc.js +35 -0
  210. package/modern/Gauge/GaugeValueArc.js +42 -0
  211. package/modern/Gauge/GaugeValueText.js +69 -0
  212. package/modern/Gauge/gaugeClasses.js +7 -0
  213. package/modern/Gauge/index.js +7 -0
  214. package/modern/Gauge/utils.js +68 -0
  215. package/modern/LineChart/AnimatedArea.js +1 -1
  216. package/modern/LineChart/AnimatedLine.js +1 -1
  217. package/modern/LineChart/AreaElement.js +1 -1
  218. package/modern/LineChart/LineChart.js +41 -13
  219. package/modern/LineChart/LineElement.js +1 -1
  220. package/modern/LineChart/LineHighlightElement.js +2 -1
  221. package/modern/LineChart/MarkElement.js +1 -0
  222. package/modern/PieChart/PieArc.js +10 -9
  223. package/modern/PieChart/PieArcLabel.js +1 -0
  224. package/modern/PieChart/PieArcLabelPlot.js +14 -14
  225. package/modern/PieChart/PieArcPlot.js +1 -1
  226. package/modern/PieChart/PieChart.js +32 -8
  227. package/modern/ResponsiveChartContainer/ResponsiveChartContainer.js +8 -70
  228. package/modern/ResponsiveChartContainer/useChartContainerDimensions.js +66 -0
  229. package/modern/ScatterChart/ScatterChart.js +35 -8
  230. package/modern/SparkLineChart/SparkLineChart.js +5 -4
  231. package/modern/context/CartesianContextProvider.js +8 -6
  232. package/modern/hooks/useTicks.js +2 -3
  233. package/modern/index.js +3 -1
  234. package/package.json +4 -4
@@ -1,5 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { SpringValue } from '@react-spring/web';
3
+ import { PieItemId } from '../models/seriesType/pie';
3
4
  export interface PieArcLabelClasses {
4
5
  /** Styles applied to the root element. */
5
6
  root: string;
@@ -10,7 +11,7 @@ export interface PieArcLabelClasses {
10
11
  }
11
12
  export type PieArcLabelClassKey = keyof PieArcLabelClasses;
12
13
  interface PieArcLabelOwnerState {
13
- id: string;
14
+ id: PieItemId;
14
15
  color: string;
15
16
  isFaded: boolean;
16
17
  isHighlighted: boolean;
@@ -18,7 +19,7 @@ interface PieArcLabelOwnerState {
18
19
  }
19
20
  export declare function getPieArcLabelUtilityClass(slot: string): string;
20
21
  export declare const pieArcLabelClasses: PieArcLabelClasses;
21
- export type PieArcLabelProps = PieArcLabelOwnerState & React.ComponentPropsWithoutRef<'text'> & {
22
+ export type PieArcLabelProps = PieArcLabelOwnerState & Omit<React.ComponentPropsWithoutRef<'text'>, 'id'> & {
22
23
  startAngle: SpringValue<number>;
23
24
  endAngle: SpringValue<number>;
24
25
  innerRadius: SpringValue<number>;
@@ -109,6 +109,7 @@ process.env.NODE_ENV !== "production" ? PieArcLabel.propTypes = {
109
109
  // ----------------------------------------------------------------------
110
110
  classes: _propTypes.default.object,
111
111
  formattedArcLabel: _propTypes.default.string,
112
+ id: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]).isRequired,
112
113
  isFaded: _propTypes.default.bool.isRequired,
113
114
  isHighlighted: _propTypes.default.bool.isRequired
114
115
  } : void 0;
@@ -14,7 +14,7 @@ var _transition = require("./dataTransform/transition");
14
14
  var _useTransformData = require("./dataTransform/useTransformData");
15
15
  var _PieArcLabel = require("./PieArcLabel");
16
16
  var _jsxRuntime = require("react/jsx-runtime");
17
- const _excluded = ["slots", "slotProps", "innerRadius", "outerRadius", "arcLabelRadius", "cornerRadius", "paddingAngle", "id", "highlightScope", "highlighted", "faded", "data", "arcLabel", "arcLabelMinAngle", "skipAnimation"],
17
+ const _excluded = ["arcLabel", "arcLabelMinAngle", "arcLabelRadius", "cornerRadius", "data", "faded", "highlighted", "highlightScope", "id", "innerRadius", "outerRadius", "paddingAngle", "skipAnimation", "slotProps", "slots"],
18
18
  _excluded2 = ["startAngle", "endAngle", "paddingAngle", "innerRadius", "outerRadius", "arcLabelRadius", "cornerRadius"];
19
19
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
20
20
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
@@ -34,23 +34,23 @@ function getItemLabel(arcLabel, arcLabelMinAngle, item) {
34
34
  }
35
35
  function PieArcLabelPlot(props) {
36
36
  const {
37
- slots,
38
- slotProps,
39
- innerRadius,
40
- outerRadius,
37
+ arcLabel,
38
+ arcLabelMinAngle = 0,
41
39
  arcLabelRadius,
42
40
  cornerRadius = 0,
43
- paddingAngle = 0,
44
- id,
45
- highlightScope,
46
- highlighted,
41
+ data,
47
42
  faded = {
48
43
  additionalRadius: -5
49
44
  },
50
- data,
51
- arcLabel,
52
- arcLabelMinAngle = 0,
53
- skipAnimation
45
+ highlighted,
46
+ highlightScope,
47
+ id,
48
+ innerRadius,
49
+ outerRadius,
50
+ paddingAngle = 0,
51
+ skipAnimation,
52
+ slotProps,
53
+ slots
54
54
  } = props,
55
55
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
56
56
  const transformedData = (0, _useTransformData.useTransformData)({
@@ -166,7 +166,7 @@ process.env.NODE_ENV !== "production" ? PieArcLabelPlot.propTypes = {
166
166
  faded: _propTypes.default.oneOf(['global', 'none', 'series']),
167
167
  highlighted: _propTypes.default.oneOf(['item', 'none', 'series'])
168
168
  }),
169
- id: _propTypes.default.string.isRequired,
169
+ id: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]).isRequired,
170
170
  /**
171
171
  * The radius between circle center and the begining of the arc.
172
172
  * @default 0
@@ -146,7 +146,7 @@ process.env.NODE_ENV !== "production" ? PieArcPlot.propTypes = {
146
146
  faded: _propTypes.default.oneOf(['global', 'none', 'series']),
147
147
  highlighted: _propTypes.default.oneOf(['item', 'none', 'series'])
148
148
  }),
149
- id: _propTypes.default.string.isRequired,
149
+ id: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]).isRequired,
150
150
  /**
151
151
  * The radius between circle center and the begining of the arc.
152
152
  * @default 0
@@ -26,14 +26,36 @@ export interface PieChartProps extends Omit<ResponsiveChartContainerProps, 'seri
26
26
  * @default null
27
27
  */
28
28
  leftAxis?: null | string | ChartsYAxisProps;
29
+ /**
30
+ * The series to display in the pie chart.
31
+ */
29
32
  series: MakeOptional<PieSeriesType<MakeOptional<PieValueType, 'id'>>, 'type'>[];
33
+ /**
34
+ * The configuration of the tooltip.
35
+ * @see See {@link https://mui.com/x/react-charts/tooltip/ tooltip docs} for more details.
36
+ * @default { trigger: 'item' }
37
+ */
30
38
  tooltip?: ChartsTooltipProps;
39
+ /**
40
+ * The configuration of axes highlight.
41
+ * @see See {@link https://mui.com/x/react-charts/tooltip/#highlights highlight docs} for more details.
42
+ * @default { x: 'none', y: 'none' }
43
+ */
31
44
  axisHighlight?: ChartsAxisHighlightProps;
32
45
  /**
46
+ * The props of the legend.
47
+ * @default { direction: 'column', position: { vertical: 'middle', horizontal: 'right' } }
33
48
  * @deprecated Consider using `slotProps.legend` instead.
34
49
  */
35
50
  legend?: ChartsLegendProps;
51
+ /**
52
+ * Callback fired when a pie arc is clicked.
53
+ */
36
54
  onItemClick?: PiePlotProps['onItemClick'];
55
+ /**
56
+ * Overridable component slots.
57
+ * @default {}
58
+ */
37
59
  slots?: PieChartSlots;
38
60
  /**
39
61
  * The props used for each component slot.
@@ -109,6 +109,11 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
109
109
  // | These PropTypes are generated from the TypeScript type definitions |
110
110
  // | To update them edit the TypeScript types and run "yarn proptypes" |
111
111
  // ----------------------------------------------------------------------
112
+ /**
113
+ * The configuration of axes highlight.
114
+ * @see See {@link https://mui.com/x/react-charts/tooltip/#highlights highlight docs} for more details.
115
+ * @default { x: 'none', y: 'none' }
116
+ */
112
117
  axisHighlight: _propTypes.default.shape({
113
118
  x: _propTypes.default.oneOf(['band', 'line', 'none']),
114
119
  y: _propTypes.default.oneOf(['band', 'line', 'none'])
@@ -119,7 +124,7 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
119
124
  * @default null
120
125
  */
121
126
  bottomAxis: _propTypes.default.oneOfType([_propTypes.default.shape({
122
- axisId: _propTypes.default.string,
127
+ axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
123
128
  classes: _propTypes.default.object,
124
129
  disableLine: _propTypes.default.bool,
125
130
  disableTicks: _propTypes.default.bool,
@@ -169,7 +174,7 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
169
174
  * @default null
170
175
  */
171
176
  leftAxis: _propTypes.default.oneOfType([_propTypes.default.shape({
172
- axisId: _propTypes.default.string,
177
+ axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
173
178
  classes: _propTypes.default.object,
174
179
  disableLine: _propTypes.default.bool,
175
180
  disableTicks: _propTypes.default.bool,
@@ -191,6 +196,8 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
191
196
  tickSize: _propTypes.default.number
192
197
  }), _propTypes.default.string]),
193
198
  /**
199
+ * The props of the legend.
200
+ * @default { direction: 'column', position: { vertical: 'middle', horizontal: 'right' } }
194
201
  * @deprecated Consider using `slotProps.legend` instead.
195
202
  */
196
203
  legend: _propTypes.default.shape({
@@ -216,6 +223,9 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
216
223
  right: _propTypes.default.number,
217
224
  top: _propTypes.default.number
218
225
  }),
226
+ /**
227
+ * Callback fired when a pie arc is clicked.
228
+ */
219
229
  onItemClick: _propTypes.default.func,
220
230
  /**
221
231
  * Indicate which axis to display the right of the charts.
@@ -223,7 +233,7 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
223
233
  * @default null
224
234
  */
225
235
  rightAxis: _propTypes.default.oneOfType([_propTypes.default.shape({
226
- axisId: _propTypes.default.string,
236
+ axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
227
237
  classes: _propTypes.default.object,
228
238
  disableLine: _propTypes.default.bool,
229
239
  disableTicks: _propTypes.default.bool,
@@ -244,6 +254,9 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
244
254
  tickNumber: _propTypes.default.number,
245
255
  tickSize: _propTypes.default.number
246
256
  }), _propTypes.default.string]),
257
+ /**
258
+ * The series to display in the pie chart.
259
+ */
247
260
  series: _propTypes.default.arrayOf(_propTypes.default.object).isRequired,
248
261
  /**
249
262
  * If `true`, animations are skipped.
@@ -255,9 +268,18 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
255
268
  * @default {}
256
269
  */
257
270
  slotProps: _propTypes.default.object,
271
+ /**
272
+ * Overridable component slots.
273
+ * @default {}
274
+ */
258
275
  slots: _propTypes.default.object,
259
276
  sx: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object, _propTypes.default.bool])), _propTypes.default.func, _propTypes.default.object]),
260
277
  title: _propTypes.default.string,
278
+ /**
279
+ * The configuration of the tooltip.
280
+ * @see See {@link https://mui.com/x/react-charts/tooltip/ tooltip docs} for more details.
281
+ * @default { trigger: 'item' }
282
+ */
261
283
  tooltip: _propTypes.default.shape({
262
284
  axisContent: _propTypes.default.elementType,
263
285
  classes: _propTypes.default.object,
@@ -272,7 +294,7 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
272
294
  * @default null
273
295
  */
274
296
  topAxis: _propTypes.default.oneOfType([_propTypes.default.shape({
275
- axisId: _propTypes.default.string,
297
+ axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
276
298
  classes: _propTypes.default.object,
277
299
  disableLine: _propTypes.default.bool,
278
300
  disableTicks: _propTypes.default.bool,
@@ -309,7 +331,7 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
309
331
  * If not provided, a default axis config is used with id set to `DEFAULT_X_AXIS_KEY`.
310
332
  */
311
333
  xAxis: _propTypes.default.arrayOf(_propTypes.default.shape({
312
- axisId: _propTypes.default.string,
334
+ axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
313
335
  classes: _propTypes.default.object,
314
336
  data: _propTypes.default.array,
315
337
  dataKey: _propTypes.default.string,
@@ -317,13 +339,14 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
317
339
  disableTicks: _propTypes.default.bool,
318
340
  fill: _propTypes.default.string,
319
341
  hideTooltip: _propTypes.default.bool,
320
- id: _propTypes.default.string,
342
+ id: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
321
343
  label: _propTypes.default.string,
322
344
  labelFontSize: _propTypes.default.number,
323
345
  labelStyle: _propTypes.default.object,
324
346
  max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
325
347
  min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
326
348
  position: _propTypes.default.oneOf(['bottom', 'left', 'right', 'top']),
349
+ reverse: _propTypes.default.bool,
327
350
  scaleType: _propTypes.default.oneOf(['band', 'linear', 'log', 'point', 'pow', 'sqrt', 'time', 'utc']),
328
351
  slotProps: _propTypes.default.object,
329
352
  slots: _propTypes.default.object,
@@ -343,7 +366,7 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
343
366
  * If not provided, a default axis config is used with id set to `DEFAULT_Y_AXIS_KEY`.
344
367
  */
345
368
  yAxis: _propTypes.default.arrayOf(_propTypes.default.shape({
346
- axisId: _propTypes.default.string,
369
+ axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
347
370
  classes: _propTypes.default.object,
348
371
  data: _propTypes.default.array,
349
372
  dataKey: _propTypes.default.string,
@@ -351,13 +374,14 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
351
374
  disableTicks: _propTypes.default.bool,
352
375
  fill: _propTypes.default.string,
353
376
  hideTooltip: _propTypes.default.bool,
354
- id: _propTypes.default.string,
377
+ id: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
355
378
  label: _propTypes.default.string,
356
379
  labelFontSize: _propTypes.default.number,
357
380
  labelStyle: _propTypes.default.object,
358
381
  max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
359
382
  min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
360
383
  position: _propTypes.default.oneOf(['bottom', 'left', 'right', 'top']),
384
+ reverse: _propTypes.default.bool,
361
385
  scaleType: _propTypes.default.oneOf(['band', 'linear', 'log', 'point', 'pow', 'sqrt', 'time', 'utc']),
362
386
  slotProps: _propTypes.default.object,
363
387
  slots: _propTypes.default.object,
@@ -9,77 +9,13 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
9
9
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
10
  var React = _interopRequireWildcard(require("react"));
11
11
  var _propTypes = _interopRequireDefault(require("prop-types"));
12
- var _useEnhancedEffect = _interopRequireDefault(require("@mui/utils/useEnhancedEffect"));
13
- var _ownerWindow = _interopRequireDefault(require("@mui/utils/ownerWindow"));
14
12
  var _styles = require("@mui/material/styles");
15
13
  var _ChartContainer = require("../ChartContainer");
14
+ var _useChartContainerDimensions = require("./useChartContainerDimensions");
16
15
  var _jsxRuntime = require("react/jsx-runtime");
17
16
  const _excluded = ["width", "height"];
18
17
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
19
18
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
20
- const useChartDimensions = (inWidth, inHeight) => {
21
- const rootRef = React.useRef(null);
22
- const displayError = React.useRef(false);
23
- const [width, setWidth] = React.useState(0);
24
- const [height, setHeight] = React.useState(0);
25
-
26
- // Adaptation of the `computeSizeAndPublishResizeEvent` from the grid.
27
- const computeSize = React.useCallback(() => {
28
- const mainEl = rootRef?.current;
29
- if (!mainEl) {
30
- return;
31
- }
32
- const win = (0, _ownerWindow.default)(mainEl);
33
- const computedStyle = win.getComputedStyle(mainEl);
34
- const newHeight = Math.floor(parseFloat(computedStyle.height)) || 0;
35
- const newWidth = Math.floor(parseFloat(computedStyle.width)) || 0;
36
- setWidth(newWidth);
37
- setHeight(newHeight);
38
- }, []);
39
- React.useEffect(() => {
40
- // Ensure the error detection occurs after the first rendering.
41
- displayError.current = true;
42
- }, []);
43
- (0, _useEnhancedEffect.default)(() => {
44
- if (inWidth !== undefined && inHeight !== undefined) {
45
- return () => {};
46
- }
47
- computeSize();
48
- const elementToObserve = rootRef.current;
49
- if (typeof ResizeObserver === 'undefined') {
50
- return () => {};
51
- }
52
- let animationFrame;
53
- const observer = new ResizeObserver(() => {
54
- // See https://github.com/mui/mui-x/issues/8733
55
- animationFrame = requestAnimationFrame(() => {
56
- computeSize();
57
- });
58
- });
59
- if (elementToObserve) {
60
- observer.observe(elementToObserve);
61
- }
62
- return () => {
63
- if (animationFrame) {
64
- window.cancelAnimationFrame(animationFrame);
65
- }
66
- if (elementToObserve) {
67
- observer.unobserve(elementToObserve);
68
- }
69
- };
70
- }, [computeSize, inHeight, inWidth]);
71
- if (process.env.NODE_ENV !== 'production') {
72
- if (displayError.current && inWidth === undefined && width === 0) {
73
- console.error(`MUI X Charts: ChartContainer does not have \`width\` prop, and its container has no \`width\` defined.`);
74
- displayError.current = false;
75
- }
76
- if (displayError.current && inHeight === undefined && height === 0) {
77
- console.error(`MUI X Charts: ChartContainer does not have \`height\` prop, and its container has no \`height\` defined.`);
78
- displayError.current = false;
79
- }
80
- }
81
- return [rootRef, inWidth ?? width, inHeight ?? height];
82
- };
83
19
  const ResizableContainer = (0, _styles.styled)('div', {
84
20
  name: 'MuiResponsiveChart',
85
21
  slot: 'Container'
@@ -106,7 +42,7 @@ const ResponsiveChartContainer = exports.ResponsiveChartContainer = /*#__PURE__*
106
42
  height: inHeight
107
43
  } = props,
108
44
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
109
- const [containerRef, width, height] = useChartDimensions(inWidth, inHeight);
45
+ const [containerRef, width, height] = (0, _useChartContainerDimensions.useChartContainerDimensions)(inWidth, inHeight);
110
46
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(ResizableContainer, {
111
47
  ref: containerRef,
112
48
  ownerState: {
@@ -184,7 +120,7 @@ process.env.NODE_ENV !== "production" ? ResponsiveChartContainer.propTypes = {
184
120
  * If not provided, a default axis config is used with id set to `DEFAULT_X_AXIS_KEY`.
185
121
  */
186
122
  xAxis: _propTypes.default.arrayOf(_propTypes.default.shape({
187
- axisId: _propTypes.default.string,
123
+ axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
188
124
  classes: _propTypes.default.object,
189
125
  data: _propTypes.default.array,
190
126
  dataKey: _propTypes.default.string,
@@ -192,13 +128,14 @@ process.env.NODE_ENV !== "production" ? ResponsiveChartContainer.propTypes = {
192
128
  disableTicks: _propTypes.default.bool,
193
129
  fill: _propTypes.default.string,
194
130
  hideTooltip: _propTypes.default.bool,
195
- id: _propTypes.default.string,
131
+ id: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
196
132
  label: _propTypes.default.string,
197
133
  labelFontSize: _propTypes.default.number,
198
134
  labelStyle: _propTypes.default.object,
199
135
  max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
200
136
  min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
201
137
  position: _propTypes.default.oneOf(['bottom', 'left', 'right', 'top']),
138
+ reverse: _propTypes.default.bool,
202
139
  scaleType: _propTypes.default.oneOf(['band', 'linear', 'log', 'point', 'pow', 'sqrt', 'time', 'utc']),
203
140
  slotProps: _propTypes.default.object,
204
141
  slots: _propTypes.default.object,
@@ -218,7 +155,7 @@ process.env.NODE_ENV !== "production" ? ResponsiveChartContainer.propTypes = {
218
155
  * If not provided, a default axis config is used with id set to `DEFAULT_Y_AXIS_KEY`.
219
156
  */
220
157
  yAxis: _propTypes.default.arrayOf(_propTypes.default.shape({
221
- axisId: _propTypes.default.string,
158
+ axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
222
159
  classes: _propTypes.default.object,
223
160
  data: _propTypes.default.array,
224
161
  dataKey: _propTypes.default.string,
@@ -226,13 +163,14 @@ process.env.NODE_ENV !== "production" ? ResponsiveChartContainer.propTypes = {
226
163
  disableTicks: _propTypes.default.bool,
227
164
  fill: _propTypes.default.string,
228
165
  hideTooltip: _propTypes.default.bool,
229
- id: _propTypes.default.string,
166
+ id: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
230
167
  label: _propTypes.default.string,
231
168
  labelFontSize: _propTypes.default.number,
232
169
  labelStyle: _propTypes.default.object,
233
170
  max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
234
171
  min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
235
172
  position: _propTypes.default.oneOf(['bottom', 'left', 'right', 'top']),
173
+ reverse: _propTypes.default.bool,
236
174
  scaleType: _propTypes.default.oneOf(['band', 'linear', 'log', 'point', 'pow', 'sqrt', 'time', 'utc']),
237
175
  slotProps: _propTypes.default.object,
238
176
  slots: _propTypes.default.object,
@@ -0,0 +1,2 @@
1
+ import * as React from 'react';
2
+ export declare const useChartContainerDimensions: (inWidth?: number, inHeight?: number) => [React.RefObject<HTMLDivElement>, number, number];
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useChartContainerDimensions = void 0;
8
+ var React = _interopRequireWildcard(require("react"));
9
+ var _useEnhancedEffect = _interopRequireDefault(require("@mui/utils/useEnhancedEffect"));
10
+ var _ownerWindow = _interopRequireDefault(require("@mui/utils/ownerWindow"));
11
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
12
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
13
+ const useChartContainerDimensions = (inWidth, inHeight) => {
14
+ const rootRef = React.useRef(null);
15
+ const displayError = React.useRef(false);
16
+ const [width, setWidth] = React.useState(0);
17
+ const [height, setHeight] = React.useState(0);
18
+
19
+ // Adaptation of the `computeSizeAndPublishResizeEvent` from the grid.
20
+ const computeSize = React.useCallback(() => {
21
+ const mainEl = rootRef?.current;
22
+ if (!mainEl) {
23
+ return;
24
+ }
25
+ const win = (0, _ownerWindow.default)(mainEl);
26
+ const computedStyle = win.getComputedStyle(mainEl);
27
+ const newHeight = Math.floor(parseFloat(computedStyle.height)) || 0;
28
+ const newWidth = Math.floor(parseFloat(computedStyle.width)) || 0;
29
+ setWidth(newWidth);
30
+ setHeight(newHeight);
31
+ }, []);
32
+ React.useEffect(() => {
33
+ // Ensure the error detection occurs after the first rendering.
34
+ displayError.current = true;
35
+ }, []);
36
+ (0, _useEnhancedEffect.default)(() => {
37
+ if (inWidth !== undefined && inHeight !== undefined) {
38
+ return () => {};
39
+ }
40
+ computeSize();
41
+ const elementToObserve = rootRef.current;
42
+ if (typeof ResizeObserver === 'undefined') {
43
+ return () => {};
44
+ }
45
+ let animationFrame;
46
+ const observer = new ResizeObserver(() => {
47
+ // See https://github.com/mui/mui-x/issues/8733
48
+ animationFrame = requestAnimationFrame(() => {
49
+ computeSize();
50
+ });
51
+ });
52
+ if (elementToObserve) {
53
+ observer.observe(elementToObserve);
54
+ }
55
+ return () => {
56
+ if (animationFrame) {
57
+ window.cancelAnimationFrame(animationFrame);
58
+ }
59
+ if (elementToObserve) {
60
+ observer.unobserve(elementToObserve);
61
+ }
62
+ };
63
+ }, [computeSize, inHeight, inWidth]);
64
+ if (process.env.NODE_ENV !== 'production') {
65
+ if (displayError.current && inWidth === undefined && width === 0) {
66
+ console.error(`MUI X Charts: ChartContainer does not have \`width\` prop, and its container has no \`width\` defined.`);
67
+ displayError.current = false;
68
+ }
69
+ if (displayError.current && inHeight === undefined && height === 0) {
70
+ console.error(`MUI X Charts: ChartContainer does not have \`height\` prop, and its container has no \`height\` defined.`);
71
+ displayError.current = false;
72
+ }
73
+ }
74
+ return [rootRef, inWidth ?? width, inHeight ?? height];
75
+ };
76
+ exports.useChartContainerDimensions = useChartContainerDimensions;
@@ -9,14 +9,32 @@ import { ChartsLegendProps, ChartsLegendSlotProps, ChartsLegendSlots } from '../
9
9
  import { ChartsAxisHighlightProps } from '../ChartsAxisHighlight';
10
10
  import { ChartsAxisSlots, ChartsAxisSlotProps } from '../models/axis';
11
11
  import { ChartsVoronoiHandlerProps } from '../ChartsVoronoiHandler/ChartsVoronoiHandler';
12
+ import { ChartsGridProps } from '../ChartsGrid';
12
13
  export interface ScatterChartSlots extends ChartsAxisSlots, ScatterPlotSlots, ChartsLegendSlots, ChartsTooltipSlots {
13
14
  }
14
15
  export interface ScatterChartSlotProps extends ChartsAxisSlotProps, ScatterPlotSlotProps, ChartsLegendSlotProps, ChartsTooltipSlotProps {
15
16
  }
16
17
  export interface ScatterChartProps extends Omit<ResponsiveChartContainerProps, 'series'>, Omit<ChartsAxisProps, 'slots' | 'slotProps'>, Omit<ChartsVoronoiHandlerProps, 'onItemClick'> {
18
+ /**
19
+ * The series to display in the scatter chart.
20
+ */
17
21
  series: MakeOptional<ScatterSeriesType, 'type'>[];
22
+ /**
23
+ * The configuration of the tooltip.
24
+ * @see See {@link https://mui.com/x/react-charts/tooltip/ tooltip docs} for more details.
25
+ * @default { trigger: 'item' }
26
+ */
18
27
  tooltip?: ChartsTooltipProps;
28
+ /**
29
+ * The configuration of axes highlight.
30
+ * @see See {@link https://mui.com/x/react-charts/tooltip/#highlights highlight docs} for more details.
31
+ * @default { x: 'none', y: 'none' }
32
+ */
19
33
  axisHighlight?: ChartsAxisHighlightProps;
34
+ /**
35
+ * Option to display a cartesian grid in the background.
36
+ */
37
+ grid?: Pick<ChartsGridProps, 'vertical' | 'horizontal'>;
20
38
  /**
21
39
  * If true, the interaction will not use the Voronoi cell and fall back to hover events.
22
40
  * @default false