@mui/x-charts 6.18.2 → 6.18.4

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 (190) hide show
  1. package/BarChart/BarElement.d.ts +5 -1
  2. package/BarChart/BarElement.js +24 -1
  3. package/BarChart/BarPlot.js +7 -6
  4. package/BarChart/formatter.js +15 -3
  5. package/BarChart/index.d.ts +3 -2
  6. package/BarChart/index.js +31 -12
  7. package/CHANGELOG.md +192 -1
  8. package/ChartsAxis/ChartsAxis.js +4 -4
  9. package/ChartsLegend/ChartsLegend.d.ts +1 -1
  10. package/ChartsLegend/ChartsLegend.js +3 -2
  11. package/ChartsLegend/index.d.ts +1 -0
  12. package/ChartsLegend/index.js +11 -0
  13. package/ChartsReferenceLine/ChartsReferenceLine.js +2 -2
  14. package/ChartsReferenceLine/ChartsXReferenceLine.js +1 -1
  15. package/ChartsReferenceLine/ChartsYReferenceLine.js +1 -1
  16. package/ChartsReferenceLine/common.d.ts +1 -1
  17. package/ChartsText/ChartsText.d.ts +17 -0
  18. package/{internals/components → ChartsText}/ChartsText.js +32 -17
  19. package/ChartsText/index.d.ts +3 -0
  20. package/ChartsText/index.js +12 -0
  21. package/ChartsText/package.json +6 -0
  22. package/ChartsTooltip/ChartsAxisTooltipContent.d.ts +5 -2
  23. package/ChartsTooltip/ChartsAxisTooltipContent.js +93 -73
  24. package/ChartsTooltip/ChartsItemTooltipContent.d.ts +5 -2
  25. package/ChartsTooltip/ChartsItemTooltipContent.js +38 -57
  26. package/ChartsTooltip/DefaultChartsAxisTooltipContent.d.ts +7 -0
  27. package/ChartsTooltip/DefaultChartsAxisTooltipContent.js +174 -0
  28. package/ChartsTooltip/DefaultChartsItemTooltipContent.d.ts +8 -0
  29. package/ChartsTooltip/DefaultChartsItemTooltipContent.js +99 -0
  30. package/ChartsTooltip/index.d.ts +4 -0
  31. package/ChartsTooltip/index.js +44 -0
  32. package/ChartsXAxis/ChartsXAxis.js +3 -2
  33. package/ChartsYAxis/ChartsYAxis.js +7 -5
  34. package/LineChart/AreaPlot.js +3 -2
  35. package/LineChart/LineHighlightPlot.js +2 -1
  36. package/LineChart/LinePlot.js +3 -2
  37. package/LineChart/MarkPlot.js +2 -1
  38. package/LineChart/extremums.js +25 -8
  39. package/LineChart/formatter.js +14 -2
  40. package/LineChart/index.d.ts +5 -5
  41. package/LineChart/index.js +50 -41
  42. package/PieChart/PieArcLabelPlot.d.ts +7 -4
  43. package/PieChart/PieArcLabelPlot.js +88 -1
  44. package/PieChart/PieArcPlot.d.ts +7 -4
  45. package/PieChart/PieArcPlot.js +87 -1
  46. package/PieChart/PieChart.js +4 -4
  47. package/PieChart/PiePlot.js +20 -15
  48. package/PieChart/dataTransform/useTransformData.d.ts +2 -3
  49. package/PieChart/index.d.ts +6 -6
  50. package/PieChart/index.js +60 -46
  51. package/ResponsiveChartContainer/index.js +2 -2
  52. package/ScatterChart/Scatter.js +1 -1
  53. package/ScatterChart/index.d.ts +3 -3
  54. package/ScatterChart/index.js +31 -19
  55. package/context/CartesianContextProvider.js +2 -2
  56. package/context/SeriesContextProvider.js +1 -1
  57. package/esm/BarChart/BarElement.js +26 -2
  58. package/esm/BarChart/BarPlot.js +7 -5
  59. package/esm/BarChart/formatter.js +20 -4
  60. package/esm/BarChart/index.js +3 -2
  61. package/esm/ChartsAxis/ChartsAxis.js +4 -4
  62. package/esm/ChartsLegend/ChartsLegend.js +2 -1
  63. package/esm/ChartsLegend/index.js +2 -1
  64. package/esm/ChartsReferenceLine/ChartsReferenceLine.js +2 -2
  65. package/esm/ChartsReferenceLine/ChartsXReferenceLine.js +1 -1
  66. package/esm/ChartsReferenceLine/ChartsYReferenceLine.js +1 -1
  67. package/esm/{internals/components → ChartsText}/ChartsText.js +33 -16
  68. package/esm/ChartsText/index.js +1 -0
  69. package/esm/ChartsTooltip/ChartsAxisTooltipContent.js +95 -75
  70. package/esm/ChartsTooltip/ChartsItemTooltipContent.js +40 -58
  71. package/esm/ChartsTooltip/DefaultChartsAxisTooltipContent.js +168 -0
  72. package/esm/ChartsTooltip/DefaultChartsItemTooltipContent.js +92 -0
  73. package/esm/ChartsTooltip/index.js +5 -1
  74. package/esm/ChartsXAxis/ChartsXAxis.js +2 -1
  75. package/esm/ChartsYAxis/ChartsYAxis.js +7 -5
  76. package/esm/LineChart/AreaPlot.js +3 -2
  77. package/esm/LineChart/LineHighlightPlot.js +2 -1
  78. package/esm/LineChart/LinePlot.js +3 -2
  79. package/esm/LineChart/MarkPlot.js +2 -1
  80. package/esm/LineChart/extremums.js +25 -8
  81. package/esm/LineChart/formatter.js +16 -3
  82. package/esm/LineChart/index.js +5 -5
  83. package/esm/PieChart/PieArcLabelPlot.js +90 -2
  84. package/esm/PieChart/PieArcPlot.js +89 -2
  85. package/esm/PieChart/PieChart.js +4 -4
  86. package/esm/PieChart/PiePlot.js +20 -15
  87. package/esm/PieChart/index.js +6 -4
  88. package/esm/ResponsiveChartContainer/index.js +2 -2
  89. package/esm/ScatterChart/Scatter.js +1 -1
  90. package/esm/ScatterChart/index.js +3 -3
  91. package/esm/context/CartesianContextProvider.js +2 -2
  92. package/esm/context/SeriesContextProvider.js +1 -1
  93. package/esm/index.js +1 -0
  94. package/esm/internals/defaultizeValueFormatter.js +4 -3
  95. package/esm/internals/getWordsByLines.js +14 -0
  96. package/esm/internals/utils.js +40 -0
  97. package/index.d.ts +1 -0
  98. package/index.js +12 -1
  99. package/internals/defaultizeColor.d.ts +4 -4
  100. package/internals/defaultizeValueFormatter.d.ts +3 -1
  101. package/internals/defaultizeValueFormatter.js +3 -3
  102. package/internals/{components/ChartsText.d.ts → getWordsByLines.d.ts} +2 -11
  103. package/internals/getWordsByLines.js +21 -0
  104. package/internals/utils.d.ts +13 -0
  105. package/internals/utils.js +42 -0
  106. package/legacy/BarChart/BarElement.js +26 -2
  107. package/legacy/BarChart/BarPlot.js +7 -5
  108. package/legacy/BarChart/formatter.js +23 -9
  109. package/legacy/BarChart/index.js +3 -2
  110. package/legacy/ChartsAxis/ChartsAxis.js +4 -4
  111. package/legacy/ChartsLegend/ChartsLegend.js +2 -1
  112. package/legacy/ChartsLegend/index.js +2 -1
  113. package/legacy/ChartsReferenceLine/ChartsReferenceLine.js +2 -2
  114. package/legacy/ChartsReferenceLine/ChartsXReferenceLine.js +1 -1
  115. package/legacy/ChartsReferenceLine/ChartsYReferenceLine.js +1 -1
  116. package/legacy/{internals/components → ChartsText}/ChartsText.js +38 -22
  117. package/legacy/ChartsText/index.js +1 -0
  118. package/legacy/ChartsTooltip/ChartsAxisTooltipContent.js +95 -74
  119. package/legacy/ChartsTooltip/ChartsItemTooltipContent.js +40 -55
  120. package/legacy/ChartsTooltip/DefaultChartsAxisTooltipContent.js +167 -0
  121. package/legacy/ChartsTooltip/DefaultChartsItemTooltipContent.js +89 -0
  122. package/legacy/ChartsTooltip/index.js +5 -1
  123. package/legacy/ChartsXAxis/ChartsXAxis.js +2 -1
  124. package/legacy/ChartsYAxis/ChartsYAxis.js +7 -5
  125. package/legacy/LineChart/AreaPlot.js +3 -2
  126. package/legacy/LineChart/LineHighlightPlot.js +2 -1
  127. package/legacy/LineChart/LinePlot.js +3 -2
  128. package/legacy/LineChart/MarkPlot.js +2 -1
  129. package/legacy/LineChart/extremums.js +29 -14
  130. package/legacy/LineChart/formatter.js +19 -8
  131. package/legacy/LineChart/index.js +5 -5
  132. package/legacy/PieChart/PieArcLabelPlot.js +90 -2
  133. package/legacy/PieChart/PieArcPlot.js +89 -2
  134. package/legacy/PieChart/PieChart.js +4 -4
  135. package/legacy/PieChart/PiePlot.js +20 -15
  136. package/legacy/PieChart/index.js +6 -4
  137. package/legacy/ResponsiveChartContainer/index.js +2 -2
  138. package/legacy/ScatterChart/Scatter.js +1 -1
  139. package/legacy/ScatterChart/index.js +3 -3
  140. package/legacy/context/CartesianContextProvider.js +2 -2
  141. package/legacy/context/SeriesContextProvider.js +1 -1
  142. package/legacy/index.js +2 -1
  143. package/legacy/internals/defaultizeValueFormatter.js +4 -3
  144. package/legacy/internals/getWordsByLines.js +15 -0
  145. package/legacy/internals/utils.js +40 -0
  146. package/models/axis.d.ts +1 -1
  147. package/models/seriesType/config.d.ts +9 -4
  148. package/models/seriesType/pie.d.ts +29 -7
  149. package/models/seriesType/scatter.d.ts +1 -1
  150. package/modern/BarChart/BarElement.js +26 -2
  151. package/modern/BarChart/BarPlot.js +7 -5
  152. package/modern/BarChart/formatter.js +15 -3
  153. package/modern/BarChart/index.js +3 -2
  154. package/modern/ChartsAxis/ChartsAxis.js +4 -4
  155. package/modern/ChartsLegend/ChartsLegend.js +2 -1
  156. package/modern/ChartsLegend/index.js +2 -1
  157. package/modern/ChartsReferenceLine/ChartsReferenceLine.js +2 -2
  158. package/modern/ChartsReferenceLine/ChartsXReferenceLine.js +1 -1
  159. package/modern/ChartsReferenceLine/ChartsYReferenceLine.js +1 -1
  160. package/modern/{internals/components → ChartsText}/ChartsText.js +33 -16
  161. package/modern/ChartsText/index.js +1 -0
  162. package/modern/ChartsTooltip/ChartsAxisTooltipContent.js +95 -74
  163. package/modern/ChartsTooltip/ChartsItemTooltipContent.js +40 -58
  164. package/modern/ChartsTooltip/DefaultChartsAxisTooltipContent.js +167 -0
  165. package/modern/ChartsTooltip/DefaultChartsItemTooltipContent.js +92 -0
  166. package/modern/ChartsTooltip/index.js +5 -1
  167. package/modern/ChartsXAxis/ChartsXAxis.js +2 -1
  168. package/modern/ChartsYAxis/ChartsYAxis.js +7 -5
  169. package/modern/LineChart/AreaPlot.js +3 -2
  170. package/modern/LineChart/LineHighlightPlot.js +2 -1
  171. package/modern/LineChart/LinePlot.js +3 -2
  172. package/modern/LineChart/MarkPlot.js +2 -1
  173. package/modern/LineChart/extremums.js +25 -8
  174. package/modern/LineChart/formatter.js +14 -2
  175. package/modern/LineChart/index.js +5 -5
  176. package/modern/PieChart/PieArcLabelPlot.js +90 -2
  177. package/modern/PieChart/PieArcPlot.js +89 -2
  178. package/modern/PieChart/PieChart.js +4 -4
  179. package/modern/PieChart/PiePlot.js +20 -15
  180. package/modern/PieChart/index.js +6 -4
  181. package/modern/ResponsiveChartContainer/index.js +2 -2
  182. package/modern/ScatterChart/Scatter.js +1 -1
  183. package/modern/ScatterChart/index.js +3 -3
  184. package/modern/context/CartesianContextProvider.js +2 -2
  185. package/modern/context/SeriesContextProvider.js +1 -1
  186. package/modern/index.js +2 -1
  187. package/modern/internals/defaultizeValueFormatter.js +3 -3
  188. package/modern/internals/getWordsByLines.js +14 -0
  189. package/modern/internals/utils.js +40 -0
  190. package/package.json +1 -1
@@ -24,4 +24,48 @@ Object.keys(_chartsTooltipClasses).forEach(function (key) {
24
24
  return _chartsTooltipClasses[key];
25
25
  }
26
26
  });
27
+ });
28
+ var _ChartsAxisTooltipContent = require("./ChartsAxisTooltipContent");
29
+ Object.keys(_ChartsAxisTooltipContent).forEach(function (key) {
30
+ if (key === "default" || key === "__esModule") return;
31
+ if (key in exports && exports[key] === _ChartsAxisTooltipContent[key]) return;
32
+ Object.defineProperty(exports, key, {
33
+ enumerable: true,
34
+ get: function () {
35
+ return _ChartsAxisTooltipContent[key];
36
+ }
37
+ });
38
+ });
39
+ var _ChartsItemTooltipContent = require("./ChartsItemTooltipContent");
40
+ Object.keys(_ChartsItemTooltipContent).forEach(function (key) {
41
+ if (key === "default" || key === "__esModule") return;
42
+ if (key in exports && exports[key] === _ChartsItemTooltipContent[key]) return;
43
+ Object.defineProperty(exports, key, {
44
+ enumerable: true,
45
+ get: function () {
46
+ return _ChartsItemTooltipContent[key];
47
+ }
48
+ });
49
+ });
50
+ var _DefaultChartsAxisTooltipContent = require("./DefaultChartsAxisTooltipContent");
51
+ Object.keys(_DefaultChartsAxisTooltipContent).forEach(function (key) {
52
+ if (key === "default" || key === "__esModule") return;
53
+ if (key in exports && exports[key] === _DefaultChartsAxisTooltipContent[key]) return;
54
+ Object.defineProperty(exports, key, {
55
+ enumerable: true,
56
+ get: function () {
57
+ return _DefaultChartsAxisTooltipContent[key];
58
+ }
59
+ });
60
+ });
61
+ var _DefaultChartsItemTooltipContent = require("./DefaultChartsItemTooltipContent");
62
+ Object.keys(_DefaultChartsItemTooltipContent).forEach(function (key) {
63
+ if (key === "default" || key === "__esModule") return;
64
+ if (key in exports && exports[key] === _DefaultChartsItemTooltipContent[key]) return;
65
+ Object.defineProperty(exports, key, {
66
+ enumerable: true,
67
+ get: function () {
68
+ return _DefaultChartsItemTooltipContent[key];
69
+ }
70
+ });
27
71
  });
@@ -17,9 +17,10 @@ var _DrawingProvider = require("../context/DrawingProvider");
17
17
  var _useTicks = _interopRequireDefault(require("../hooks/useTicks"));
18
18
  var _axisClasses = require("../ChartsAxis/axisClasses");
19
19
  var _AxisSharedComponents = require("../internals/components/AxisSharedComponents");
20
- var _ChartsText = require("../internals/components/ChartsText");
20
+ var _ChartsText = require("../ChartsText");
21
21
  var _geometry = require("../internals/geometry");
22
22
  var _useMounted = require("../hooks/useMounted");
23
+ var _getWordsByLines = require("../internals/getWordsByLines");
23
24
  var _jsxRuntime = require("react/jsx-runtime");
24
25
  const _excluded = ["scale", "tickNumber"];
25
26
  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); }
@@ -51,7 +52,7 @@ function addLabelDimension(xTicks, {
51
52
  height: 0
52
53
  });
53
54
  }
54
- const tickSizes = (0, _ChartsText.getWordsByLines)({
55
+ const tickSizes = (0, _getWordsByLines.getWordsByLines)({
55
56
  style,
56
57
  needsComputation: true,
57
58
  text: tick.formattedValue
@@ -16,7 +16,7 @@ var _CartesianContextProvider = require("../context/CartesianContextProvider");
16
16
  var _DrawingProvider = require("../context/DrawingProvider");
17
17
  var _useTicks = _interopRequireDefault(require("../hooks/useTicks"));
18
18
  var _AxisSharedComponents = require("../internals/components/AxisSharedComponents");
19
- var _ChartsText = require("../internals/components/ChartsText");
19
+ var _ChartsText = require("../ChartsText");
20
20
  var _axisClasses = require("../ChartsAxis/axisClasses");
21
21
  var _jsxRuntime = require("react/jsx-runtime");
22
22
  const _excluded = ["scale", "tickNumber"];
@@ -82,6 +82,8 @@ function ChartsYAxis(inProps) {
82
82
  tickFontSize,
83
83
  label,
84
84
  labelFontSize,
85
+ labelStyle,
86
+ tickLabelStyle,
85
87
  tickSize: tickSizeProp,
86
88
  valueFormatter,
87
89
  slots,
@@ -116,11 +118,11 @@ function ChartsYAxis(inProps) {
116
118
  elementType: TickLabel,
117
119
  externalSlotProps: slotProps?.axisTickLabel,
118
120
  additionalProps: {
119
- style: {
121
+ style: (0, _extends2.default)({
120
122
  fontSize: tickFontSize,
121
123
  textAnchor: position === 'right' ? 'start' : 'end',
122
124
  dominantBaseline: 'central'
123
- },
125
+ }, tickLabelStyle),
124
126
  className: classes.tickLabel
125
127
  },
126
128
  ownerState: {}
@@ -129,12 +131,12 @@ function ChartsYAxis(inProps) {
129
131
  elementType: Label,
130
132
  externalSlotProps: slotProps?.axisLabel,
131
133
  additionalProps: {
132
- style: {
134
+ style: (0, _extends2.default)({
133
135
  fontSize: labelFontSize,
134
136
  angle: positionSign * 90,
135
137
  textAnchor: 'middle',
136
138
  dominantBaseline: 'auto'
137
- }
139
+ }, labelStyle)
138
140
  },
139
141
  ownerState: {}
140
142
  });
@@ -15,6 +15,7 @@ var _CartesianContextProvider = require("../context/CartesianContextProvider");
15
15
  var _AreaElement = require("./AreaElement");
16
16
  var _useScale = require("../hooks/useScale");
17
17
  var _getCurve = _interopRequireDefault(require("../internals/getCurve"));
18
+ var _constants = require("../constants");
18
19
  var _jsxRuntime = require("react/jsx-runtime");
19
20
  const _excluded = ["slots", "slotProps"];
20
21
  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); }
@@ -70,10 +71,10 @@ function AreaPlot(props) {
70
71
  const xData = xAxis[xAxisKey].data;
71
72
  if (process.env.NODE_ENV !== 'production') {
72
73
  if (xData === undefined) {
73
- throw new Error(`Axis of id "${xAxisKey}" should have data property to be able to display a line plot.`);
74
+ throw new Error(`MUI-X-Charts: ${xAxisKey === _constants.DEFAULT_X_AXIS_KEY ? 'The first `xAxis`' : `The x-axis with id "${xAxisKey}"`} should have data property to be able to display a line plot.`);
74
75
  }
75
76
  if (xData.length < stackedData.length) {
76
- throw new Error(`MUI: data length of the x axis (${xData.length} items) is lower than the length of series (${stackedData.length} items)`);
77
+ throw new Error(`MUI-X-Charts: The data length of the x axis (${xData.length} items) is lower than the length of series (${stackedData.length} items)`);
77
78
  }
78
79
  }
79
80
  const areaPath = (0, _d3Shape.area)().x(d => xScale(d.x)).defined((_, i) => connectNulls || data[i] != null).y0(d => d.y && yScale(d.y[0])).y1(d => d.y && yScale(d.y[1]));
@@ -14,6 +14,7 @@ var _CartesianContextProvider = require("../context/CartesianContextProvider");
14
14
  var _LineHighlightElement = require("./LineHighlightElement");
15
15
  var _useScale = require("../hooks/useScale");
16
16
  var _InteractionProvider = require("../context/InteractionProvider");
17
+ var _constants = require("../constants");
17
18
  var _jsxRuntime = require("react/jsx-runtime");
18
19
  const _excluded = ["slots", "slotProps"];
19
20
  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); }
@@ -78,7 +79,7 @@ function LineHighlightPlot(props) {
78
79
  const yScale = yAxis[yAxisKey].scale;
79
80
  const xData = xAxis[xAxisKey].data;
80
81
  if (xData === undefined) {
81
- throw new Error(`Axis of id "${xAxisKey}" should have data property to be able to display a line plot.`);
82
+ throw new Error(`MUI-X-Charts: ${xAxisKey === _constants.DEFAULT_X_AXIS_KEY ? 'The first `xAxis`' : `The x-axis with id "${xAxisKey}"`} should have data property to be able to display a line plot.`);
82
83
  }
83
84
  const x = xScale(xData[highlightedIndex]);
84
85
  const y = yScale(stackedData[highlightedIndex][1]); // This should not be undefined since y should not be a band scale
@@ -15,6 +15,7 @@ var _CartesianContextProvider = require("../context/CartesianContextProvider");
15
15
  var _LineElement = require("./LineElement");
16
16
  var _useScale = require("../hooks/useScale");
17
17
  var _getCurve = _interopRequireDefault(require("../internals/getCurve"));
18
+ var _constants = require("../constants");
18
19
  var _jsxRuntime = require("react/jsx-runtime");
19
20
  const _excluded = ["slots", "slotProps"];
20
21
  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); }
@@ -69,10 +70,10 @@ function LinePlot(props) {
69
70
  const xData = xAxis[xAxisKey].data;
70
71
  if (process.env.NODE_ENV !== 'production') {
71
72
  if (xData === undefined) {
72
- throw new Error(`Axis of id "${xAxisKey}" should have data property to be able to display a line plot`);
73
+ throw new Error(`MUI-X-Charts: ${xAxisKey === _constants.DEFAULT_X_AXIS_KEY ? 'The first `xAxis`' : `The x-axis with id "${xAxisKey}"`} should have data property to be able to display a line plot`);
73
74
  }
74
75
  if (xData.length < stackedData.length) {
75
- throw new Error(`MUI: data length of the x axis (${xData.length} items) is lower than the length of series (${stackedData.length} items)`);
76
+ throw new Error(`MUI-X-Charts: The data length of the x axis (${xData.length} items) is lower than the length of series (${stackedData.length} items)`);
76
77
  }
77
78
  }
78
79
  const linePath = (0, _d3Shape.line)().x(d => xScale(d.x)).defined((_, i) => connectNulls || data[i] != null).y(d => yScale(d.y[1]));
@@ -13,6 +13,7 @@ var _SeriesContextProvider = require("../context/SeriesContextProvider");
13
13
  var _CartesianContextProvider = require("../context/CartesianContextProvider");
14
14
  var _MarkElement = require("./MarkElement");
15
15
  var _useScale = require("../hooks/useScale");
16
+ var _constants = require("../constants");
16
17
  var _jsxRuntime = require("react/jsx-runtime");
17
18
  const _excluded = ["slots", "slotProps"];
18
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); }
@@ -84,7 +85,7 @@ function MarkPlot(props) {
84
85
  return true;
85
86
  };
86
87
  if (xData === undefined) {
87
- throw new Error(`Axis of id "${xAxisKey}" should have data property to be able to display a line plot`);
88
+ throw new Error(`MUI-X-Charts: ${xAxisKey === _constants.DEFAULT_X_AXIS_KEY ? 'The first `xAxis`' : `The x-axis with id "${xAxisKey}"`} should have data property to be able to display a line plot`);
88
89
  }
89
90
  return xData?.map((x, index) => {
90
91
  const value = data[index] == null ? null : stackedData[index][1];
@@ -13,6 +13,18 @@ const getExtremumX = params => {
13
13
  return [minX, maxX];
14
14
  };
15
15
  exports.getExtremumX = getExtremumX;
16
+ function getSeriesExtremums(getValues, stackedData) {
17
+ if (stackedData.length === 0) {
18
+ return [null, null];
19
+ }
20
+ return stackedData.reduce((seriesAcc, stackedValue) => {
21
+ const [base, value] = getValues(stackedValue);
22
+ if (seriesAcc[0] === null) {
23
+ return [Math.min(base, value), Math.max(base, value)];
24
+ }
25
+ return [Math.min(base, value, seriesAcc[0]), Math.max(base, value, seriesAcc[1])];
26
+ }, getValues(stackedData[0]));
27
+ }
16
28
  const getExtremumY = params => {
17
29
  const {
18
30
  series,
@@ -20,16 +32,21 @@ const getExtremumY = params => {
20
32
  isDefaultAxis
21
33
  } = params;
22
34
  return Object.keys(series).filter(seriesId => series[seriesId].yAxisKey === axis.id || isDefaultAxis && series[seriesId].yAxisKey === undefined).reduce((acc, seriesId) => {
23
- const isArea = series[seriesId].area !== undefined;
24
- const getValues = isArea ? d => d : d => [d[1], d[1]]; // Id area should go from bottom to top, without area should only consider the top
35
+ const {
36
+ area,
37
+ stackedData
38
+ } = series[seriesId];
39
+ const isArea = area !== undefined;
40
+ const getValues = isArea ? d => d : d => [d[1], d[1]]; // Since this series is not used to display an area, we do not consider the base (the d[0]).
25
41
 
26
- const [seriesMin, seriesMax] = series[seriesId].stackedData.reduce((seriesAcc, stackedValue) => {
27
- const [base, value] = getValues(stackedValue);
28
- return [Math.min(base, value, seriesAcc[0]), Math.max(base, value, seriesAcc[1])];
29
- }, getValues(series[seriesId].stackedData[0]));
30
- if (acc[0] === null || acc[1] === null) {
31
- return [seriesMin, seriesMax];
42
+ const seriesExtremums = getSeriesExtremums(getValues, stackedData);
43
+ if (acc[0] === null) {
44
+ return seriesExtremums;
45
+ }
46
+ if (seriesExtremums[0] === null) {
47
+ return acc;
32
48
  }
49
+ const [seriesMin, seriesMax] = seriesExtremums;
33
50
  return [Math.min(seriesMin, acc[0]), Math.max(seriesMax, acc[1])];
34
51
  }, [null, null]);
35
52
  };
@@ -9,6 +9,8 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
9
9
  var _d3Shape = require("d3-shape");
10
10
  var _stackSeries = require("../internals/stackSeries");
11
11
  var _defaultizeValueFormatter = _interopRequireDefault(require("../internals/defaultizeValueFormatter"));
12
+ let warnedOnce = false;
13
+
12
14
  // For now it's a copy past of bar charts formatter, but maybe will diverge later
13
15
  const formatter = (params, dataset) => {
14
16
  const {
@@ -32,7 +34,7 @@ const formatter = (params, dataset) => {
32
34
  }
33
35
  });
34
36
  } else if (dataset === undefined && process.env.NODE_ENV !== 'production') {
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'));
37
+ throw new Error([`MUI-X-Charts: line series with id='${id}' has no data.`, 'Either provide a data property to the series or use the dataset prop.'].join('\n'));
36
38
  }
37
39
  });
38
40
  const completedSeries = {};
@@ -52,7 +54,17 @@ const formatter = (params, dataset) => {
52
54
  ids.forEach((id, index) => {
53
55
  const dataKey = series[id].dataKey;
54
56
  completedSeries[id] = (0, _extends2.default)({}, series[id], {
55
- data: dataKey ? dataset.map(d => d[dataKey]) : series[id].data,
57
+ data: dataKey ? dataset.map(data => {
58
+ const value = data[dataKey];
59
+ if (typeof value !== 'number') {
60
+ if (process.env.NODE_ENV !== 'production' && !warnedOnce && value !== null) {
61
+ warnedOnce = true;
62
+ console.error([`MUI-X charts: your dataset key "${dataKey}" is used for plotting line, but contains nonnumerical elements.`, 'Line plots only support numbers and null values.']);
63
+ }
64
+ return 0;
65
+ }
66
+ return value;
67
+ }) : series[id].data,
56
68
  stackedData: stackedSeries[index].map(([a, b]) => [a, b])
57
69
  });
58
70
  });
@@ -1,8 +1,8 @@
1
- export { LinePlot } from './LinePlot';
2
- export { AreaPlot } from './AreaPlot';
3
- export { MarkPlot } from './MarkPlot';
4
- export { LineHighlightPlot } from './LineHighlightPlot';
5
- export { LineChart } from './LineChart';
1
+ export * from './LineChart';
2
+ export * from './LinePlot';
3
+ export * from './AreaPlot';
4
+ export * from './MarkPlot';
5
+ export * from './LineHighlightPlot';
6
6
  export * from './AreaElement';
7
7
  export * from './LineElement';
8
8
  export * from './MarkElement';
@@ -3,52 +3,64 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- var _exportNames = {
7
- LinePlot: true,
8
- AreaPlot: true,
9
- MarkPlot: true,
10
- LineHighlightPlot: true,
11
- LineChart: true
12
- };
13
- Object.defineProperty(exports, "AreaPlot", {
14
- enumerable: true,
15
- get: function () {
16
- return _AreaPlot.AreaPlot;
17
- }
18
- });
19
- Object.defineProperty(exports, "LineChart", {
20
- enumerable: true,
21
- get: function () {
22
- return _LineChart.LineChart;
23
- }
24
- });
25
- Object.defineProperty(exports, "LineHighlightPlot", {
26
- enumerable: true,
27
- get: function () {
28
- return _LineHighlightPlot.LineHighlightPlot;
29
- }
30
- });
31
- Object.defineProperty(exports, "LinePlot", {
32
- enumerable: true,
33
- get: function () {
34
- return _LinePlot.LinePlot;
35
- }
36
- });
37
- Object.defineProperty(exports, "MarkPlot", {
38
- enumerable: true,
39
- get: function () {
40
- return _MarkPlot.MarkPlot;
41
- }
6
+ var _LineChart = require("./LineChart");
7
+ Object.keys(_LineChart).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _LineChart[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _LineChart[key];
14
+ }
15
+ });
42
16
  });
43
17
  var _LinePlot = require("./LinePlot");
18
+ Object.keys(_LinePlot).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _LinePlot[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function () {
24
+ return _LinePlot[key];
25
+ }
26
+ });
27
+ });
44
28
  var _AreaPlot = require("./AreaPlot");
29
+ Object.keys(_AreaPlot).forEach(function (key) {
30
+ if (key === "default" || key === "__esModule") return;
31
+ if (key in exports && exports[key] === _AreaPlot[key]) return;
32
+ Object.defineProperty(exports, key, {
33
+ enumerable: true,
34
+ get: function () {
35
+ return _AreaPlot[key];
36
+ }
37
+ });
38
+ });
45
39
  var _MarkPlot = require("./MarkPlot");
40
+ Object.keys(_MarkPlot).forEach(function (key) {
41
+ if (key === "default" || key === "__esModule") return;
42
+ if (key in exports && exports[key] === _MarkPlot[key]) return;
43
+ Object.defineProperty(exports, key, {
44
+ enumerable: true,
45
+ get: function () {
46
+ return _MarkPlot[key];
47
+ }
48
+ });
49
+ });
46
50
  var _LineHighlightPlot = require("./LineHighlightPlot");
47
- var _LineChart = require("./LineChart");
51
+ Object.keys(_LineHighlightPlot).forEach(function (key) {
52
+ if (key === "default" || key === "__esModule") return;
53
+ if (key in exports && exports[key] === _LineHighlightPlot[key]) return;
54
+ Object.defineProperty(exports, key, {
55
+ enumerable: true,
56
+ get: function () {
57
+ return _LineHighlightPlot[key];
58
+ }
59
+ });
60
+ });
48
61
  var _AreaElement = require("./AreaElement");
49
62
  Object.keys(_AreaElement).forEach(function (key) {
50
63
  if (key === "default" || key === "__esModule") return;
51
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
52
64
  if (key in exports && exports[key] === _AreaElement[key]) return;
53
65
  Object.defineProperty(exports, key, {
54
66
  enumerable: true,
@@ -60,7 +72,6 @@ Object.keys(_AreaElement).forEach(function (key) {
60
72
  var _LineElement = require("./LineElement");
61
73
  Object.keys(_LineElement).forEach(function (key) {
62
74
  if (key === "default" || key === "__esModule") return;
63
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
64
75
  if (key in exports && exports[key] === _LineElement[key]) return;
65
76
  Object.defineProperty(exports, key, {
66
77
  enumerable: true,
@@ -72,7 +83,6 @@ Object.keys(_LineElement).forEach(function (key) {
72
83
  var _MarkElement = require("./MarkElement");
73
84
  Object.keys(_MarkElement).forEach(function (key) {
74
85
  if (key === "default" || key === "__esModule") return;
75
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
76
86
  if (key in exports && exports[key] === _MarkElement[key]) return;
77
87
  Object.defineProperty(exports, key, {
78
88
  enumerable: true,
@@ -84,7 +94,6 @@ Object.keys(_MarkElement).forEach(function (key) {
84
94
  var _LineHighlightElement = require("./LineHighlightElement");
85
95
  Object.keys(_LineHighlightElement).forEach(function (key) {
86
96
  if (key === "default" || key === "__esModule") return;
87
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
88
97
  if (key in exports && exports[key] === _LineHighlightElement[key]) return;
89
98
  Object.defineProperty(exports, key, {
90
99
  enumerable: true,
@@ -1,14 +1,13 @@
1
1
  import * as React from 'react';
2
- import { DefaultizedPieSeriesType } from '../models/seriesType/pie';
2
+ import { ComputedPieRadius, DefaultizedPieSeriesType } from '../models/seriesType/pie';
3
3
  import { PieArcLabelProps } from './PieArcLabel';
4
- import { DefaultizedProps } from '../models/helpers';
5
4
  export interface PieArcLabelPlotSlotsComponent {
6
5
  pieArcLabel?: React.JSXElementConstructor<PieArcLabelProps>;
7
6
  }
8
7
  export interface PieArcLabelPlotSlotComponentProps {
9
8
  pieArcLabel?: Partial<PieArcLabelProps>;
10
9
  }
11
- export interface PieArcLabelPlotProps extends DefaultizedProps<Pick<DefaultizedPieSeriesType, 'data' | 'faded' | 'highlighted' | 'innerRadius' | 'outerRadius' | 'cornerRadius' | 'paddingAngle' | 'arcLabel' | 'arcLabelMinAngle' | 'id' | 'highlightScope'>, 'outerRadius'> {
10
+ export interface PieArcLabelPlotProps extends Pick<DefaultizedPieSeriesType, 'data' | 'faded' | 'highlighted' | 'cornerRadius' | 'paddingAngle' | 'arcLabel' | 'arcLabelMinAngle' | 'id' | 'highlightScope'>, ComputedPieRadius {
12
11
  /**
13
12
  * Overridable component slots.
14
13
  * @default {}
@@ -25,4 +24,8 @@ export interface PieArcLabelPlotProps extends DefaultizedProps<Pick<DefaultizedP
25
24
  */
26
25
  skipAnimation?: boolean;
27
26
  }
28
- export declare function PieArcLabelPlot(props: PieArcLabelPlotProps): React.JSX.Element | null;
27
+ declare function PieArcLabelPlot(props: PieArcLabelPlotProps): React.JSX.Element | null;
28
+ declare namespace PieArcLabelPlot {
29
+ var propTypes: any;
30
+ }
31
+ export { PieArcLabelPlot };
@@ -8,6 +8,7 @@ exports.PieArcLabelPlot = PieArcLabelPlot;
8
8
  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
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
12
  var _web = require("@react-spring/web");
12
13
  var _transition = require("./dataTransform/transition");
13
14
  var _useTransformData = require("./dataTransform/useTransformData");
@@ -96,4 +97,90 @@ function PieArcLabelPlot(props) {
96
97
  }, slotProps?.pieArcLabel));
97
98
  })
98
99
  }));
99
- }
100
+ }
101
+ process.env.NODE_ENV !== "production" ? PieArcLabelPlot.propTypes = {
102
+ // ----------------------------- Warning --------------------------------
103
+ // | These PropTypes are generated from the TypeScript type definitions |
104
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
105
+ // ----------------------------------------------------------------------
106
+ /**
107
+ * The label displayed into the arc.
108
+ */
109
+ arcLabel: _propTypes.default.oneOfType([_propTypes.default.oneOf(['formattedValue', 'label', 'value']), _propTypes.default.func]),
110
+ /**
111
+ * The minimal angle required to display the arc label.
112
+ */
113
+ arcLabelMinAngle: _propTypes.default.number,
114
+ /**
115
+ * The radius applied to arc corners (similar to border radius).
116
+ * @default 0
117
+ */
118
+ cornerRadius: _propTypes.default.number,
119
+ data: _propTypes.default.arrayOf(_propTypes.default.shape({
120
+ color: _propTypes.default.string.isRequired,
121
+ endAngle: _propTypes.default.number.isRequired,
122
+ formattedValue: _propTypes.default.string.isRequired,
123
+ id: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]).isRequired,
124
+ index: _propTypes.default.number.isRequired,
125
+ label: _propTypes.default.string,
126
+ padAngle: _propTypes.default.number.isRequired,
127
+ startAngle: _propTypes.default.number.isRequired,
128
+ value: _propTypes.default.number.isRequired
129
+ })).isRequired,
130
+ /**
131
+ * Override the arc attibutes when it is faded.
132
+ */
133
+ faded: _propTypes.default.shape({
134
+ additionalRadius: _propTypes.default.number,
135
+ color: _propTypes.default.string,
136
+ cornerRadius: _propTypes.default.number,
137
+ innerRadius: _propTypes.default.number,
138
+ outerRadius: _propTypes.default.number,
139
+ paddingAngle: _propTypes.default.number
140
+ }),
141
+ /**
142
+ * Override the arc attibutes when it is highlighted.
143
+ */
144
+ highlighted: _propTypes.default.shape({
145
+ additionalRadius: _propTypes.default.number,
146
+ color: _propTypes.default.string,
147
+ cornerRadius: _propTypes.default.number,
148
+ innerRadius: _propTypes.default.number,
149
+ outerRadius: _propTypes.default.number,
150
+ paddingAngle: _propTypes.default.number
151
+ }),
152
+ highlightScope: _propTypes.default.shape({
153
+ faded: _propTypes.default.oneOf(['global', 'none', 'series']),
154
+ highlighted: _propTypes.default.oneOf(['item', 'none', 'series'])
155
+ }),
156
+ id: _propTypes.default.string.isRequired,
157
+ /**
158
+ * The radius between circle center and the begining of the arc.
159
+ * @default 0
160
+ */
161
+ innerRadius: _propTypes.default.number,
162
+ /**
163
+ * The radius between circle center and the end of the arc.
164
+ */
165
+ outerRadius: _propTypes.default.number.isRequired,
166
+ /**
167
+ * The padding angle (deg) between two arcs.
168
+ * @default 0
169
+ */
170
+ paddingAngle: _propTypes.default.number,
171
+ /**
172
+ * If `true`, animations are skiped.
173
+ * @default false
174
+ */
175
+ skipAnimation: _propTypes.default.bool,
176
+ /**
177
+ * The props used for each component slot.
178
+ * @default {}
179
+ */
180
+ slotProps: _propTypes.default.object,
181
+ /**
182
+ * Overridable component slots.
183
+ * @default {}
184
+ */
185
+ slots: _propTypes.default.object
186
+ } : void 0;
@@ -1,14 +1,13 @@
1
1
  import * as React from 'react';
2
2
  import { PieArcProps } from './PieArc';
3
- import { DefaultizedPieSeriesType, DefaultizedPieValueType, PieItemIdentifier } from '../models/seriesType/pie';
4
- import { DefaultizedProps } from '../models/helpers';
3
+ import { ComputedPieRadius, DefaultizedPieSeriesType, DefaultizedPieValueType, PieItemIdentifier } from '../models/seriesType/pie';
5
4
  export interface PieArcPlotSlotsComponent {
6
5
  pieArc?: React.JSXElementConstructor<PieArcProps>;
7
6
  }
8
7
  export interface PieArcPlotSlotComponentProps {
9
8
  pieArc?: Partial<PieArcProps>;
10
9
  }
11
- export interface PieArcPlotProps extends DefaultizedProps<Pick<DefaultizedPieSeriesType, 'data' | 'faded' | 'highlighted' | 'innerRadius' | 'outerRadius' | 'cornerRadius' | 'paddingAngle' | 'id' | 'highlightScope'>, 'outerRadius'> {
10
+ export interface PieArcPlotProps extends Pick<DefaultizedPieSeriesType, 'data' | 'faded' | 'highlighted' | 'cornerRadius' | 'paddingAngle' | 'id' | 'highlightScope'>, ComputedPieRadius {
12
11
  /**
13
12
  * Overridable component slots.
14
13
  * @default {}
@@ -32,4 +31,8 @@ export interface PieArcPlotProps extends DefaultizedProps<Pick<DefaultizedPieSer
32
31
  */
33
32
  skipAnimation?: boolean;
34
33
  }
35
- export declare function PieArcPlot(props: PieArcPlotProps): React.JSX.Element | null;
34
+ declare function PieArcPlot(props: PieArcPlotProps): React.JSX.Element | null;
35
+ declare namespace PieArcPlot {
36
+ var propTypes: any;
37
+ }
38
+ export { PieArcPlot };