@mui/x-charts 6.0.0-alpha.5 → 6.0.0-alpha.7

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 (163) hide show
  1. package/BarChart/BarChart.d.ts +18 -2
  2. package/BarChart/BarChart.js +74 -17
  3. package/BarChart/BarElement.d.ts +22 -0
  4. package/BarChart/BarElement.js +21 -10
  5. package/BarChart/BarPlot.d.ts +14 -1
  6. package/BarChart/BarPlot.js +23 -4
  7. package/BarChart/formatter.js +23 -12
  8. package/CHANGELOG.md +154 -0
  9. package/ChartContainer/index.js +3 -0
  10. package/ChartsAxis/ChartsAxis.d.ts +11 -1
  11. package/ChartsAxis/ChartsAxis.js +51 -6
  12. package/ChartsLegend/ChartsLegend.d.ts +25 -2
  13. package/ChartsLegend/ChartsLegend.js +49 -17
  14. package/ChartsTooltip/ChartsAxisTooltipContent.js +1 -1
  15. package/ChartsTooltip/ChartsTooltipTable.d.ts +2 -9
  16. package/ChartsXAxis/ChartsXAxis.js +44 -9
  17. package/ChartsYAxis/ChartsYAxis.js +44 -9
  18. package/LineChart/AreaElement.d.ts +22 -0
  19. package/LineChart/AreaElement.js +31 -11
  20. package/LineChart/AreaPlot.d.ts +14 -1
  21. package/LineChart/AreaPlot.js +32 -5
  22. package/LineChart/LineChart.d.ts +20 -2
  23. package/LineChart/LineChart.js +76 -16
  24. package/LineChart/LineElement.d.ts +22 -0
  25. package/LineChart/LineElement.js +31 -10
  26. package/LineChart/LinePlot.d.ts +14 -1
  27. package/LineChart/LinePlot.js +38 -6
  28. package/LineChart/MarkElement.js +1 -1
  29. package/LineChart/MarkPlot.d.ts +24 -1
  30. package/LineChart/MarkPlot.js +30 -6
  31. package/LineChart/formatter.js +23 -12
  32. package/PieChart/PieArcLabel.js +0 -1
  33. package/PieChart/PieChart.d.ts +14 -2
  34. package/PieChart/PieChart.js +60 -13
  35. package/PieChart/PiePlot.d.ts +27 -1
  36. package/PieChart/PiePlot.js +29 -6
  37. package/ScatterChart/ScatterChart.d.ts +18 -2
  38. package/ScatterChart/ScatterChart.js +64 -13
  39. package/ScatterChart/ScatterPlot.d.ts +24 -1
  40. package/ScatterChart/ScatterPlot.js +28 -4
  41. package/SparkLineChart/SparkLineChart.d.ts +73 -0
  42. package/SparkLineChart/SparkLineChart.js +218 -0
  43. package/SparkLineChart/index.d.ts +1 -0
  44. package/SparkLineChart/index.js +12 -0
  45. package/SparkLineChart/package.json +6 -0
  46. package/colorPalettes/colorPalettes.js +2 -2
  47. package/context/CartesianContextProvider.d.ts +3 -1
  48. package/context/CartesianContextProvider.js +50 -14
  49. package/context/SeriesContextProvider.d.ts +3 -2
  50. package/context/SeriesContextProvider.js +5 -3
  51. package/esm/BarChart/BarChart.js +77 -17
  52. package/esm/BarChart/BarElement.js +21 -11
  53. package/esm/BarChart/BarPlot.js +23 -4
  54. package/esm/BarChart/formatter.js +23 -12
  55. package/esm/ChartContainer/index.js +3 -0
  56. package/esm/ChartsAxis/ChartsAxis.js +51 -6
  57. package/esm/ChartsLegend/ChartsLegend.js +47 -14
  58. package/esm/ChartsTooltip/ChartsAxisTooltipContent.js +1 -1
  59. package/esm/ChartsXAxis/ChartsXAxis.js +45 -9
  60. package/esm/ChartsYAxis/ChartsYAxis.js +45 -9
  61. package/esm/LineChart/AreaElement.js +31 -11
  62. package/esm/LineChart/AreaPlot.js +33 -5
  63. package/esm/LineChart/LineChart.js +79 -16
  64. package/esm/LineChart/LineElement.js +31 -11
  65. package/esm/LineChart/LinePlot.js +45 -9
  66. package/esm/LineChart/MarkElement.js +1 -1
  67. package/esm/LineChart/MarkPlot.js +31 -6
  68. package/esm/LineChart/formatter.js +23 -13
  69. package/esm/PieChart/PieArcLabel.js +0 -1
  70. package/esm/PieChart/PieChart.js +60 -13
  71. package/esm/PieChart/PiePlot.js +31 -6
  72. package/esm/ScatterChart/ScatterChart.js +64 -13
  73. package/esm/ScatterChart/ScatterPlot.js +29 -4
  74. package/esm/SparkLineChart/SparkLineChart.js +210 -0
  75. package/esm/SparkLineChart/index.js +1 -0
  76. package/esm/colorPalettes/colorPalettes.js +2 -2
  77. package/esm/context/CartesianContextProvider.js +50 -14
  78. package/esm/context/SeriesContextProvider.js +5 -3
  79. package/esm/hooks/useTicks.js +9 -6
  80. package/esm/index.js +1 -0
  81. package/esm/internals/components/AxisSharedComponents.js +10 -10
  82. package/esm/models/index.js +3 -1
  83. package/hooks/useTicks.d.ts +20 -5
  84. package/hooks/useTicks.js +9 -6
  85. package/index.d.ts +1 -0
  86. package/index.js +12 -1
  87. package/internals/components/AxisSharedComponents.d.ts +4 -4
  88. package/internals/components/AxisSharedComponents.js +15 -15
  89. package/internals/defaultizeColor.d.ts +4 -2
  90. package/legacy/BarChart/BarChart.js +75 -17
  91. package/legacy/BarChart/BarElement.js +20 -10
  92. package/legacy/BarChart/BarPlot.js +23 -4
  93. package/legacy/BarChart/formatter.js +23 -10
  94. package/legacy/ChartContainer/index.js +3 -0
  95. package/legacy/ChartsAxis/ChartsAxis.js +51 -6
  96. package/legacy/ChartsLegend/ChartsLegend.js +46 -15
  97. package/legacy/ChartsTooltip/ChartsAxisTooltipContent.js +1 -1
  98. package/legacy/ChartsXAxis/ChartsXAxis.js +45 -9
  99. package/legacy/ChartsYAxis/ChartsYAxis.js +45 -9
  100. package/legacy/LineChart/AreaElement.js +30 -10
  101. package/legacy/LineChart/AreaPlot.js +31 -5
  102. package/legacy/LineChart/LineChart.js +77 -16
  103. package/legacy/LineChart/LineElement.js +30 -10
  104. package/legacy/LineChart/LinePlot.js +38 -6
  105. package/legacy/LineChart/MarkElement.js +1 -1
  106. package/legacy/LineChart/MarkPlot.js +29 -6
  107. package/legacy/LineChart/formatter.js +23 -11
  108. package/legacy/PieChart/PieArcLabel.js +0 -1
  109. package/legacy/PieChart/PieChart.js +60 -13
  110. package/legacy/PieChart/PiePlot.js +29 -6
  111. package/legacy/ScatterChart/ScatterChart.js +64 -13
  112. package/legacy/ScatterChart/ScatterPlot.js +27 -4
  113. package/legacy/SparkLineChart/SparkLineChart.js +214 -0
  114. package/legacy/SparkLineChart/index.js +1 -0
  115. package/legacy/colorPalettes/colorPalettes.js +2 -2
  116. package/legacy/context/CartesianContextProvider.js +59 -15
  117. package/legacy/context/SeriesContextProvider.js +6 -4
  118. package/legacy/hooks/useTicks.js +9 -9
  119. package/legacy/index.js +2 -1
  120. package/legacy/internals/components/AxisSharedComponents.js +10 -10
  121. package/legacy/models/index.js +3 -1
  122. package/models/axis.d.ts +34 -3
  123. package/models/index.d.ts +2 -0
  124. package/models/index.js +11 -0
  125. package/models/seriesType/bar.d.ts +8 -1
  126. package/models/seriesType/common.d.ts +2 -2
  127. package/models/seriesType/config.d.ts +4 -1
  128. package/models/seriesType/line.d.ts +8 -1
  129. package/modern/BarChart/BarChart.js +74 -17
  130. package/modern/BarChart/BarElement.js +20 -11
  131. package/modern/BarChart/BarPlot.js +23 -4
  132. package/modern/BarChart/formatter.js +23 -12
  133. package/modern/ChartContainer/index.js +3 -0
  134. package/modern/ChartsAxis/ChartsAxis.js +51 -6
  135. package/modern/ChartsLegend/ChartsLegend.js +46 -14
  136. package/modern/ChartsTooltip/ChartsAxisTooltipContent.js +1 -1
  137. package/modern/ChartsXAxis/ChartsXAxis.js +44 -9
  138. package/modern/ChartsYAxis/ChartsYAxis.js +44 -9
  139. package/modern/LineChart/AreaElement.js +30 -11
  140. package/modern/LineChart/AreaPlot.js +33 -5
  141. package/modern/LineChart/LineChart.js +76 -16
  142. package/modern/LineChart/LineElement.js +30 -11
  143. package/modern/LineChart/LinePlot.js +39 -6
  144. package/modern/LineChart/MarkElement.js +1 -1
  145. package/modern/LineChart/MarkPlot.js +30 -6
  146. package/modern/LineChart/formatter.js +23 -13
  147. package/modern/PieChart/PieArcLabel.js +0 -1
  148. package/modern/PieChart/PieChart.js +60 -13
  149. package/modern/PieChart/PiePlot.js +30 -6
  150. package/modern/ScatterChart/ScatterChart.js +64 -13
  151. package/modern/ScatterChart/ScatterPlot.js +28 -4
  152. package/modern/SparkLineChart/SparkLineChart.js +210 -0
  153. package/modern/SparkLineChart/index.js +1 -0
  154. package/modern/colorPalettes/colorPalettes.js +2 -2
  155. package/modern/context/CartesianContextProvider.js +50 -14
  156. package/modern/context/SeriesContextProvider.js +5 -3
  157. package/modern/hooks/useTicks.js +9 -6
  158. package/modern/index.js +2 -1
  159. package/modern/internals/components/AxisSharedComponents.js +10 -10
  160. package/modern/models/index.js +3 -1
  161. package/package.json +4 -2
  162. package/themeAugmentation/components.d.ts +0 -10
  163. package/themeAugmentation/overrides.d.ts +0 -2
@@ -50,7 +50,7 @@ const MarkElementPath = (0, _styles.styled)('path', {
50
50
  }) => ({
51
51
  transform: `translate(${ownerState.x}px, ${ownerState.y}px)`,
52
52
  transformOrigin: `${ownerState.x}px ${ownerState.y}px`,
53
- fill: (theme.vars || theme).palette.background.paper,
53
+ fill: theme.palette.background.paper,
54
54
  stroke: ownerState.color,
55
55
  strokeWidth: 2,
56
56
  '&.MuiMarkElement-highlighted': {
@@ -1,2 +1,25 @@
1
1
  import * as React from 'react';
2
- export declare function MarkPlot(): React.JSX.Element | null;
2
+ import { MarkElementProps } from './MarkElement';
3
+ export interface MarkPlotSlotsComponent {
4
+ mark?: React.JSXElementConstructor<MarkElementProps>;
5
+ }
6
+ export interface MarkPlotSlotComponentProps {
7
+ mark?: Partial<MarkElementProps>;
8
+ }
9
+ export interface MarkPlotProps extends React.SVGAttributes<SVGSVGElement> {
10
+ /**
11
+ * Overridable component slots.
12
+ * @default {}
13
+ */
14
+ slots?: MarkPlotSlotsComponent;
15
+ /**
16
+ * The props used for each component slot.
17
+ * @default {}
18
+ */
19
+ slotProps?: MarkPlotSlotComponentProps;
20
+ }
21
+ declare function MarkPlot(props: MarkPlotProps): React.JSX.Element | null;
22
+ declare namespace MarkPlot {
23
+ var propTypes: any;
24
+ }
25
+ export { MarkPlot };
@@ -1,10 +1,13 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
7
  exports.MarkPlot = MarkPlot;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
7
9
  var React = _interopRequireWildcard(require("react"));
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
8
11
  var _SeriesContextProvider = require("../context/SeriesContextProvider");
9
12
  var _CartesianContextProvider = require("../context/CartesianContextProvider");
10
13
  var _MarkElement = require("./MarkElement");
@@ -12,9 +15,14 @@ var _useScale = require("../hooks/useScale");
12
15
  var _jsxRuntime = require("react/jsx-runtime");
13
16
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
14
17
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
15
- function MarkPlot() {
18
+ function MarkPlot(props) {
19
+ const {
20
+ slots,
21
+ slotProps
22
+ } = props;
16
23
  const seriesData = React.useContext(_SeriesContextProvider.SeriesContext).line;
17
24
  const axisData = React.useContext(_CartesianContextProvider.CartesianContext);
25
+ const Mark = slots?.mark ?? _MarkElement.MarkElement;
18
26
  if (seriesData === undefined) {
19
27
  return null;
20
28
  }
@@ -30,7 +38,7 @@ function MarkPlot() {
30
38
  } = axisData;
31
39
  const defaultXAxisId = xAxisIds[0];
32
40
  const defaultYAxisId = yAxisIds[0];
33
- return /*#__PURE__*/(0, _jsxRuntime.jsx)("g", {
41
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("g", (0, _extends2.default)({}, props, {
34
42
  children: stackingGroups.flatMap(({
35
43
  ids: groupIds
36
44
  }) => {
@@ -71,7 +79,7 @@ function MarkPlot() {
71
79
  x,
72
80
  y,
73
81
  index
74
- }) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_MarkElement.MarkElement, {
82
+ }) => /*#__PURE__*/(0, _jsxRuntime.jsx)(Mark, (0, _extends2.default)({
75
83
  id: seriesId,
76
84
  dataIndex: index,
77
85
  shape: "circle",
@@ -79,8 +87,24 @@ function MarkPlot() {
79
87
  x: x,
80
88
  y: y,
81
89
  highlightScope: series[seriesId].highlightScope
82
- }, `${seriesId}-${index}`));
90
+ }, slotProps?.mark), `${seriesId}-${index}`));
83
91
  });
84
92
  })
85
- });
86
- }
93
+ }));
94
+ }
95
+ process.env.NODE_ENV !== "production" ? MarkPlot.propTypes = {
96
+ // ----------------------------- Warning --------------------------------
97
+ // | These PropTypes are generated from the TypeScript type definitions |
98
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
99
+ // ----------------------------------------------------------------------
100
+ /**
101
+ * The props used for each component slot.
102
+ * @default {}
103
+ */
104
+ slotProps: _propTypes.default.object,
105
+ /**
106
+ * Overridable component slots.
107
+ * @default {}
108
+ */
109
+ slots: _propTypes.default.object
110
+ } : void 0;
@@ -10,7 +10,7 @@ var _d3Shape = require("d3-shape");
10
10
  var _stackSeries = require("../internals/stackSeries");
11
11
  var _defaultizeValueFormatter = _interopRequireDefault(require("../internals/defaultizeValueFormatter"));
12
12
  // For now it's a copy past of bar charts formatter, but maybe will diverge later
13
- const formatter = params => {
13
+ const formatter = (params, dataset) => {
14
14
  const {
15
15
  seriesOrder,
16
16
  series
@@ -18,17 +18,22 @@ const formatter = params => {
18
18
  const stackingGroups = (0, _stackSeries.getStackingGroups)(params);
19
19
 
20
20
  // Create a data set with format adapted to d3
21
- const d3Dataset = [];
21
+ const d3Dataset = dataset ?? [];
22
22
  seriesOrder.forEach(id => {
23
- series[id].data.forEach((value, index) => {
24
- if (d3Dataset.length <= index) {
25
- d3Dataset.push({
26
- [id]: value
27
- });
28
- } else {
29
- d3Dataset[index][id] = value;
30
- }
31
- });
23
+ const data = series[id].data;
24
+ if (data !== undefined) {
25
+ data.forEach((value, index) => {
26
+ if (d3Dataset.length <= index) {
27
+ d3Dataset.push({
28
+ [id]: value
29
+ });
30
+ } else {
31
+ d3Dataset[index][id] = value;
32
+ }
33
+ });
34
+ } else if (dataset === undefined) {
35
+ throw new Error([`MUI: line series with id='${id}' has no data.`, 'Either provide a data property to the series or use the dataset prop.'].join('\n'));
36
+ }
32
37
  });
33
38
  const completedSeries = {};
34
39
  stackingGroups.forEach(stackingGroup => {
@@ -38,9 +43,15 @@ const formatter = params => {
38
43
  stackingOrder,
39
44
  stackingOffset
40
45
  } = stackingGroup;
41
- const stackedSeries = (0, _d3Shape.stack)().keys(ids).order(stackingOrder).offset(stackingOffset)(d3Dataset);
46
+ const stackedSeries = (0, _d3Shape.stack)().keys(ids.map(id => {
47
+ // Use dataKey if needed and available
48
+ const dataKey = series[id].dataKey;
49
+ return series[id].data === undefined && dataKey !== undefined ? dataKey : id;
50
+ })).order(stackingOrder).offset(stackingOffset)(d3Dataset);
42
51
  ids.forEach((id, index) => {
52
+ const dataKey = series[id].dataKey;
43
53
  completedSeries[id] = (0, _extends2.default)({}, series[id], {
54
+ data: dataKey ? dataset.map(d => d[dataKey]) : series[id].data,
44
55
  stackedData: stackedSeries[index].map(([a, b]) => [a, b])
45
56
  });
46
57
  });
@@ -47,7 +47,6 @@ const PieArcLabelRoot = (0, _styles.styled)('text', {
47
47
  theme
48
48
  }) => ({
49
49
  fill: theme.palette.text.primary,
50
- alignmentBaseline: 'baseline',
51
50
  textAnchor: 'middle'
52
51
  }));
53
52
  function PieArcLabel(props) {
@@ -4,14 +4,26 @@ import { ChartsAxisProps } from '../ChartsAxis/ChartsAxis';
4
4
  import { PieSeriesType } from '../models/seriesType';
5
5
  import { MakeOptional } from '../models/helpers';
6
6
  import { ChartsTooltipProps } from '../ChartsTooltip';
7
- import { ChartsLegendProps } from '../ChartsLegend';
7
+ import { ChartsLegendProps, ChartsLegendSlotComponentProps, ChartsLegendSlotsComponent } from '../ChartsLegend';
8
8
  import { ChartsAxisHighlightProps } from '../ChartsAxisHighlight';
9
+ import { PiePlotSlotComponentProps, PiePlotSlotsComponent } from './PiePlot';
9
10
  import { PieValueType } from '../models/seriesType/pie';
10
- export interface PieChartProps extends Omit<ResponsiveChartContainerProps, 'series'>, ChartsAxisProps {
11
+ import { ChartsAxisSlotsComponent, ChartsAxisSlotComponentProps } from '../models/axis';
12
+ export interface PieChartSlotsComponent extends ChartsAxisSlotsComponent, PiePlotSlotsComponent, ChartsLegendSlotsComponent {
13
+ }
14
+ export interface PieChartSlotComponentProps extends ChartsAxisSlotComponentProps, PiePlotSlotComponentProps, ChartsLegendSlotComponentProps {
15
+ }
16
+ export interface PieChartProps extends Omit<ResponsiveChartContainerProps, 'series'>, Omit<ChartsAxisProps, 'slots' | 'slotProps'> {
11
17
  series: MakeOptional<PieSeriesType<MakeOptional<PieValueType, 'id'>>, 'type'>[];
12
18
  tooltip?: ChartsTooltipProps;
13
19
  axisHighlight?: ChartsAxisHighlightProps;
14
20
  legend?: ChartsLegendProps;
21
+ slots?: PieChartSlotsComponent;
22
+ /**
23
+ * The props used for each component slot.
24
+ * @default {}
25
+ */
26
+ slotProps?: PieChartSlotComponentProps;
15
27
  }
16
28
  declare function PieChart(props: PieChartProps): React.JSX.Element;
17
29
  declare namespace PieChart {
@@ -52,7 +52,9 @@ function PieChart(props) {
52
52
  leftAxis = null,
53
53
  rightAxis = null,
54
54
  bottomAxis = null,
55
- children
55
+ children,
56
+ slots,
57
+ slotProps
56
58
  } = props;
57
59
  const margin = (0, _extends2.default)({}, defaultMargin, marginProps);
58
60
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_ResponsiveChartContainer.ResponsiveChartContainer, {
@@ -75,8 +77,16 @@ function PieChart(props) {
75
77
  topAxis: topAxis,
76
78
  leftAxis: leftAxis,
77
79
  rightAxis: rightAxis,
78
- bottomAxis: bottomAxis
79
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PiePlot.PiePlot, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsLegend.ChartsLegend, (0, _extends2.default)({}, legend)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsAxisHighlight.ChartsAxisHighlight, (0, _extends2.default)({}, axisHighlight)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsTooltip.ChartsTooltip, (0, _extends2.default)({}, tooltip)), children]
80
+ bottomAxis: bottomAxis,
81
+ slots: slots,
82
+ slotProps: slotProps
83
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PiePlot.PiePlot, {
84
+ slots: slots,
85
+ slotProps: slotProps
86
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsLegend.ChartsLegend, (0, _extends2.default)({}, legend, {
87
+ slots: slots,
88
+ slotProps: slotProps
89
+ })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsAxisHighlight.ChartsAxisHighlight, (0, _extends2.default)({}, axisHighlight)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsTooltip.ChartsTooltip, (0, _extends2.default)({}, tooltip)), children]
80
90
  });
81
91
  }
82
92
  process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
@@ -102,8 +112,13 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
102
112
  label: _propTypes.default.string,
103
113
  labelFontSize: _propTypes.default.number,
104
114
  position: _propTypes.default.oneOf(['bottom', 'top']),
115
+ slotProps: _propTypes.default.object,
116
+ slots: _propTypes.default.object,
105
117
  stroke: _propTypes.default.string,
106
118
  tickFontSize: _propTypes.default.number,
119
+ tickMaxStep: _propTypes.default.number,
120
+ tickMinStep: _propTypes.default.number,
121
+ tickNumber: _propTypes.default.number,
107
122
  tickSize: _propTypes.default.number
108
123
  }), _propTypes.default.string]),
109
124
  children: _propTypes.default.node,
@@ -112,6 +127,7 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
112
127
  * Color palette used to colorize multiple series.
113
128
  */
114
129
  colors: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.string), _propTypes.default.func]),
130
+ dataset: _propTypes.default.arrayOf(_propTypes.default.object),
115
131
  desc: _propTypes.default.string,
116
132
  disableAxisListener: _propTypes.default.bool,
117
133
  height: _propTypes.default.number,
@@ -129,8 +145,13 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
129
145
  label: _propTypes.default.string,
130
146
  labelFontSize: _propTypes.default.number,
131
147
  position: _propTypes.default.oneOf(['left', 'right']),
148
+ slotProps: _propTypes.default.object,
149
+ slots: _propTypes.default.object,
132
150
  stroke: _propTypes.default.string,
133
151
  tickFontSize: _propTypes.default.number,
152
+ tickMaxStep: _propTypes.default.number,
153
+ tickMinStep: _propTypes.default.number,
154
+ tickNumber: _propTypes.default.number,
134
155
  tickSize: _propTypes.default.number
135
156
  }), _propTypes.default.string]),
136
157
  legend: _propTypes.default.shape({
@@ -147,6 +168,8 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
147
168
  horizontal: _propTypes.default.oneOf(['left', 'middle', 'right']).isRequired,
148
169
  vertical: _propTypes.default.oneOf(['bottom', 'middle', 'top']).isRequired
149
170
  }),
171
+ slotProps: _propTypes.default.object,
172
+ slots: _propTypes.default.object,
150
173
  spacing: _propTypes.default.number
151
174
  }),
152
175
  margin: _propTypes.default.shape({
@@ -169,8 +192,13 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
169
192
  label: _propTypes.default.string,
170
193
  labelFontSize: _propTypes.default.number,
171
194
  position: _propTypes.default.oneOf(['left', 'right']),
195
+ slotProps: _propTypes.default.object,
196
+ slots: _propTypes.default.object,
172
197
  stroke: _propTypes.default.string,
173
198
  tickFontSize: _propTypes.default.number,
199
+ tickMaxStep: _propTypes.default.number,
200
+ tickMinStep: _propTypes.default.number,
201
+ tickNumber: _propTypes.default.number,
174
202
  tickSize: _propTypes.default.number
175
203
  }), _propTypes.default.string]),
176
204
  series: _propTypes.default.arrayOf(_propTypes.default.shape({
@@ -212,6 +240,12 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
212
240
  type: _propTypes.default.oneOf(['pie']),
213
241
  valueFormatter: _propTypes.default.func
214
242
  })).isRequired,
243
+ /**
244
+ * The props used for each component slot.
245
+ * @default {}
246
+ */
247
+ slotProps: _propTypes.default.object,
248
+ slots: _propTypes.default.object,
215
249
  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]),
216
250
  title: _propTypes.default.string,
217
251
  tooltip: _propTypes.default.shape({
@@ -234,8 +268,13 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
234
268
  label: _propTypes.default.string,
235
269
  labelFontSize: _propTypes.default.number,
236
270
  position: _propTypes.default.oneOf(['bottom', 'top']),
271
+ slotProps: _propTypes.default.object,
272
+ slots: _propTypes.default.object,
237
273
  stroke: _propTypes.default.string,
238
274
  tickFontSize: _propTypes.default.number,
275
+ tickMaxStep: _propTypes.default.number,
276
+ tickMinStep: _propTypes.default.number,
277
+ tickNumber: _propTypes.default.number,
239
278
  tickSize: _propTypes.default.number
240
279
  }), _propTypes.default.string]),
241
280
  viewBox: _propTypes.default.shape({
@@ -249,44 +288,52 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
249
288
  axisId: _propTypes.default.string,
250
289
  classes: _propTypes.default.object,
251
290
  data: _propTypes.default.array,
291
+ dataKey: _propTypes.default.string,
252
292
  disableLine: _propTypes.default.bool,
253
293
  disableTicks: _propTypes.default.bool,
254
294
  fill: _propTypes.default.string,
295
+ hideTooltip: _propTypes.default.bool,
255
296
  id: _propTypes.default.string,
256
297
  label: _propTypes.default.string,
257
298
  labelFontSize: _propTypes.default.number,
258
- max: _propTypes.default.number,
259
- maxTicks: _propTypes.default.number,
260
- min: _propTypes.default.number,
261
- minTicks: _propTypes.default.number,
299
+ max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
300
+ min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
262
301
  position: _propTypes.default.oneOf(['bottom', 'left', 'right', 'top']),
263
302
  scaleType: _propTypes.default.oneOf(['band', 'linear', 'log', 'point', 'pow', 'sqrt', 'time', 'utc']),
303
+ slotProps: _propTypes.default.object,
304
+ slots: _propTypes.default.object,
264
305
  stroke: _propTypes.default.string,
265
306
  tickFontSize: _propTypes.default.number,
307
+ tickMaxStep: _propTypes.default.number,
308
+ tickMinStep: _propTypes.default.number,
309
+ tickNumber: _propTypes.default.number,
266
310
  tickSize: _propTypes.default.number,
267
- tickSpacing: _propTypes.default.number,
268
311
  valueFormatter: _propTypes.default.func
269
312
  })),
270
313
  yAxis: _propTypes.default.arrayOf(_propTypes.default.shape({
271
314
  axisId: _propTypes.default.string,
272
315
  classes: _propTypes.default.object,
273
316
  data: _propTypes.default.array,
317
+ dataKey: _propTypes.default.string,
274
318
  disableLine: _propTypes.default.bool,
275
319
  disableTicks: _propTypes.default.bool,
276
320
  fill: _propTypes.default.string,
321
+ hideTooltip: _propTypes.default.bool,
277
322
  id: _propTypes.default.string,
278
323
  label: _propTypes.default.string,
279
324
  labelFontSize: _propTypes.default.number,
280
- max: _propTypes.default.number,
281
- maxTicks: _propTypes.default.number,
282
- min: _propTypes.default.number,
283
- minTicks: _propTypes.default.number,
325
+ max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
326
+ min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
284
327
  position: _propTypes.default.oneOf(['bottom', 'left', 'right', 'top']),
285
328
  scaleType: _propTypes.default.oneOf(['band', 'linear', 'log', 'point', 'pow', 'sqrt', 'time', 'utc']),
329
+ slotProps: _propTypes.default.object,
330
+ slots: _propTypes.default.object,
286
331
  stroke: _propTypes.default.string,
287
332
  tickFontSize: _propTypes.default.number,
333
+ tickMaxStep: _propTypes.default.number,
334
+ tickMinStep: _propTypes.default.number,
335
+ tickNumber: _propTypes.default.number,
288
336
  tickSize: _propTypes.default.number,
289
- tickSpacing: _propTypes.default.number,
290
337
  valueFormatter: _propTypes.default.func
291
338
  }))
292
339
  } : void 0;
@@ -1,2 +1,28 @@
1
1
  import * as React from 'react';
2
- export declare function PiePlot(): React.JSX.Element | null;
2
+ import { PieArcProps } from './PieArc';
3
+ import { PieArcLabelProps } from './PieArcLabel';
4
+ export interface PiePlotSlotsComponent {
5
+ pieArc?: React.JSXElementConstructor<PieArcProps>;
6
+ pieArcLabel?: React.JSXElementConstructor<PieArcLabelProps>;
7
+ }
8
+ export interface PiePlotSlotComponentProps {
9
+ pieArc?: Partial<PieArcProps>;
10
+ pieArcLabel?: Partial<PieArcLabelProps>;
11
+ }
12
+ export interface PiePlotProps {
13
+ /**
14
+ * Overridable component slots.
15
+ * @default {}
16
+ */
17
+ slots?: PiePlotSlotsComponent;
18
+ /**
19
+ * The props used for each component slot.
20
+ * @default {}
21
+ */
22
+ slotProps?: PiePlotSlotComponentProps;
23
+ }
24
+ declare function PiePlot(props: PiePlotProps): React.JSX.Element | null;
25
+ declare namespace PiePlot {
26
+ var propTypes: any;
27
+ }
28
+ export { PiePlot };
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.PiePlot = PiePlot;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var React = _interopRequireWildcard(require("react"));
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
10
11
  var _SeriesContextProvider = require("../context/SeriesContextProvider");
11
12
  var _PieArc = _interopRequireDefault(require("./PieArc"));
12
13
  var _PieArcLabel = _interopRequireDefault(require("./PieArcLabel"));
@@ -28,7 +29,11 @@ function getItemLabel(arcLabel, arcLabelMinAngle, item) {
28
29
  }
29
30
  return arcLabel(item);
30
31
  }
31
- function PiePlot() {
32
+ function PiePlot(props) {
33
+ const {
34
+ slots,
35
+ slotProps
36
+ } = props;
32
37
  const seriesData = React.useContext(_SeriesContextProvider.SeriesContext).pie;
33
38
  const {
34
39
  left,
@@ -48,6 +53,8 @@ function PiePlot() {
48
53
  series,
49
54
  seriesOrder
50
55
  } = seriesData;
56
+ const Arc = slots?.pieArc ?? _PieArc.default;
57
+ const ArcLabel = slots?.pieArcLabel ?? _PieArcLabel.default;
51
58
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("g", {
52
59
  children: seriesOrder.map(seriesId => {
53
60
  const {
@@ -66,7 +73,7 @@ function PiePlot() {
66
73
  transform: `translate(${cx === undefined ? center.x : left + cx}, ${cy === undefined ? center.y : top + cy})`,
67
74
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("g", {
68
75
  children: [data.map((item, index) => {
69
- return /*#__PURE__*/(0, React.createElement)(_PieArc.default, (0, _extends2.default)({}, item, {
76
+ return /*#__PURE__*/(0, React.createElement)(Arc, (0, _extends2.default)({}, item, {
70
77
  key: item.id,
71
78
  innerRadius: innerRadius,
72
79
  outerRadius: outerRadius ?? availableRadius,
@@ -77,9 +84,9 @@ function PiePlot() {
77
84
  highlightScope: series[seriesId].highlightScope,
78
85
  highlighted: highlighted,
79
86
  faded: faded
80
- }));
87
+ }, slotProps?.pieArc));
81
88
  }), data.map((item, index) => {
82
- return /*#__PURE__*/(0, React.createElement)(_PieArcLabel.default, (0, _extends2.default)({}, item, {
89
+ return /*#__PURE__*/(0, React.createElement)(ArcLabel, (0, _extends2.default)({}, item, {
83
90
  key: item.id,
84
91
  innerRadius: innerRadius,
85
92
  outerRadius: outerRadius ?? availableRadius,
@@ -89,10 +96,26 @@ function PiePlot() {
89
96
  dataIndex: index,
90
97
  highlightScope: series[seriesId].highlightScope,
91
98
  formattedArcLabel: getItemLabel(arcLabel, arcLabelMinAngle, item)
92
- }));
99
+ }, slotProps?.pieArcLabel));
93
100
  })]
94
101
  })
95
102
  }, seriesId);
96
103
  })
97
104
  });
98
- }
105
+ }
106
+ process.env.NODE_ENV !== "production" ? PiePlot.propTypes = {
107
+ // ----------------------------- Warning --------------------------------
108
+ // | These PropTypes are generated from the TypeScript type definitions |
109
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
110
+ // ----------------------------------------------------------------------
111
+ /**
112
+ * The props used for each component slot.
113
+ * @default {}
114
+ */
115
+ slotProps: _propTypes.default.object,
116
+ /**
117
+ * Overridable component slots.
118
+ * @default {}
119
+ */
120
+ slots: _propTypes.default.object
121
+ } : void 0;
@@ -1,16 +1,32 @@
1
1
  import * as React from 'react';
2
+ import { ScatterPlotSlotComponentProps, ScatterPlotSlotsComponent } from './ScatterPlot';
2
3
  import { ResponsiveChartContainerProps } from '../ResponsiveChartContainer';
3
4
  import { ChartsAxisProps } from '../ChartsAxis';
4
5
  import { ScatterSeriesType } from '../models/seriesType/scatter';
5
6
  import { MakeOptional } from '../models/helpers';
6
7
  import { ChartsTooltipProps } from '../ChartsTooltip';
7
- import { ChartsLegendProps } from '../ChartsLegend';
8
+ import { ChartsLegendProps, ChartsLegendSlotComponentProps, ChartsLegendSlotsComponent } from '../ChartsLegend';
8
9
  import { ChartsAxisHighlightProps } from '../ChartsAxisHighlight';
9
- export interface ScatterChartProps extends Omit<ResponsiveChartContainerProps, 'series'>, ChartsAxisProps {
10
+ import { ChartsAxisSlotsComponent, ChartsAxisSlotComponentProps } from '../models/axis';
11
+ export interface ScatterChartSlotsComponent extends ChartsAxisSlotsComponent, ScatterPlotSlotsComponent, ChartsLegendSlotsComponent {
12
+ }
13
+ export interface ScatterChartSlotComponentProps extends ChartsAxisSlotComponentProps, ScatterPlotSlotComponentProps, ChartsLegendSlotComponentProps {
14
+ }
15
+ export interface ScatterChartProps extends Omit<ResponsiveChartContainerProps, 'series'>, Omit<ChartsAxisProps, 'slots' | 'slotProps'> {
10
16
  series: MakeOptional<ScatterSeriesType, 'type'>[];
11
17
  tooltip?: ChartsTooltipProps;
12
18
  axisHighlight?: ChartsAxisHighlightProps;
13
19
  legend?: ChartsLegendProps;
20
+ /**
21
+ * Overridable component slots.
22
+ * @default {}
23
+ */
24
+ slots?: ScatterChartSlotsComponent;
25
+ /**
26
+ * The props used for each component slot.
27
+ * @default {}
28
+ */
29
+ slotProps?: ScatterChartSlotComponentProps;
14
30
  }
15
31
  declare const ScatterChart: React.ForwardRefExoticComponent<ScatterChartProps & React.RefAttributes<unknown>>;
16
32
  export { ScatterChart };