@mui/x-charts 6.0.0-alpha.9 → 6.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (281) hide show
  1. package/BarChart/BarChart.d.ts +19 -5
  2. package/BarChart/BarChart.js +52 -13
  3. package/BarChart/BarElement.d.ts +1319 -4
  4. package/BarChart/BarElement.js +10 -10
  5. package/BarChart/BarPlot.d.ts +17 -1
  6. package/BarChart/BarPlot.js +152 -66
  7. package/BarChart/formatter.js +2 -3
  8. package/BarChart/legend.js +1 -2
  9. package/CHANGELOG.md +735 -55
  10. package/ChartContainer/index.js +7 -5
  11. package/ChartsAxis/ChartsAxis.d.ts +9 -0
  12. package/ChartsAxis/ChartsAxis.js +28 -2
  13. package/ChartsAxis/axisClasses.d.ts +1 -1
  14. package/ChartsAxis/axisClasses.js +1 -2
  15. package/ChartsAxisHighlight/ChartsAxisHighlight.d.ts +21 -0
  16. package/ChartsAxisHighlight/ChartsAxisHighlight.js +61 -22
  17. package/ChartsClipPath/ChartsClipPath.d.ts +5 -0
  18. package/ChartsClipPath/ChartsClipPath.js +7 -2
  19. package/ChartsLegend/ChartsLegend.d.ts +44 -24
  20. package/ChartsLegend/ChartsLegend.js +192 -150
  21. package/ChartsLegend/chartsLegendClasses.js +1 -2
  22. package/ChartsLegend/utils.d.ts +1 -6
  23. package/ChartsSurface.d.ts +1 -1
  24. package/ChartsSurface.js +9 -18
  25. package/ChartsTooltip/ChartsAxisTooltipContent.d.ts +1 -0
  26. package/ChartsTooltip/ChartsAxisTooltipContent.js +46 -32
  27. package/ChartsTooltip/ChartsItemTooltipContent.d.ts +3 -2
  28. package/ChartsTooltip/ChartsItemTooltipContent.js +18 -9
  29. package/ChartsTooltip/ChartsTooltip.d.ts +32 -0
  30. package/ChartsTooltip/ChartsTooltip.js +62 -18
  31. package/ChartsTooltip/ChartsTooltipTable.d.ts +3 -10
  32. package/ChartsTooltip/ChartsTooltipTable.js +22 -20
  33. package/ChartsTooltip/tooltipClasses.js +1 -2
  34. package/ChartsTooltip/utils.js +2 -2
  35. package/ChartsXAxis/ChartsXAxis.d.ts +9 -0
  36. package/ChartsXAxis/ChartsXAxis.js +161 -40
  37. package/ChartsYAxis/ChartsYAxis.d.ts +9 -0
  38. package/ChartsYAxis/ChartsYAxis.js +86 -33
  39. package/LineChart/AreaElement.d.ts +11 -1
  40. package/LineChart/AreaElement.js +14 -6
  41. package/LineChart/AreaPlot.d.ts +11 -0
  42. package/LineChart/AreaPlot.js +27 -8
  43. package/LineChart/LineChart.d.ts +16 -3
  44. package/LineChart/LineChart.js +48 -13
  45. package/LineChart/LineElement.d.ts +11 -1
  46. package/LineChart/LineElement.js +14 -6
  47. package/LineChart/LineHighlightElement.d.ts +10 -0
  48. package/LineChart/LineHighlightElement.js +13 -4
  49. package/LineChart/LineHighlightPlot.d.ts +10 -0
  50. package/LineChart/LineHighlightPlot.js +14 -3
  51. package/LineChart/LinePlot.d.ts +10 -0
  52. package/LineChart/LinePlot.js +25 -12
  53. package/LineChart/MarkElement.d.ts +10 -0
  54. package/LineChart/MarkElement.js +14 -5
  55. package/LineChart/MarkPlot.d.ts +10 -0
  56. package/LineChart/MarkPlot.js +40 -9
  57. package/LineChart/formatter.js +5 -5
  58. package/LineChart/legend.js +1 -2
  59. package/PieChart/PieArc.d.ts +11 -13
  60. package/PieChart/PieArc.js +28 -60
  61. package/PieChart/PieArcLabel.d.ts +8 -9
  62. package/PieChart/PieArcLabel.js +46 -38
  63. package/PieChart/PieArcLabelPlot.d.ts +28 -0
  64. package/PieChart/PieArcLabelPlot.js +99 -0
  65. package/PieChart/PieArcPlot.d.ts +35 -0
  66. package/PieChart/PieArcPlot.js +92 -0
  67. package/PieChart/PieChart.d.ts +19 -5
  68. package/PieChart/PieChart.js +61 -14
  69. package/PieChart/PiePlot.d.ts +15 -9
  70. package/PieChart/PiePlot.js +77 -55
  71. package/PieChart/dataTransform/transition.d.ts +4 -0
  72. package/PieChart/dataTransform/transition.js +136 -0
  73. package/PieChart/dataTransform/useTransformData.d.ts +15 -0
  74. package/PieChart/dataTransform/useTransformData.js +67 -0
  75. package/PieChart/formatter.js +1 -2
  76. package/PieChart/legend.js +1 -2
  77. package/README.md +8 -14
  78. package/ResponsiveChartContainer/index.js +7 -8
  79. package/ScatterChart/Scatter.d.ts +10 -0
  80. package/ScatterChart/Scatter.js +12 -2
  81. package/ScatterChart/ScatterChart.d.ts +16 -3
  82. package/ScatterChart/ScatterChart.js +43 -12
  83. package/ScatterChart/ScatterPlot.d.ts +10 -0
  84. package/ScatterChart/ScatterPlot.js +12 -2
  85. package/ScatterChart/formatter.js +1 -2
  86. package/ScatterChart/legend.js +1 -2
  87. package/SparkLineChart/SparkLineChart.d.ts +12 -3
  88. package/SparkLineChart/SparkLineChart.js +28 -7
  89. package/colorPalettes/colorPalettes.js +6 -12
  90. package/constants.js +5 -8
  91. package/context/CartesianContextProvider.d.ts +5 -0
  92. package/context/CartesianContextProvider.js +31 -16
  93. package/context/DrawingProvider.d.ts +7 -0
  94. package/context/DrawingProvider.js +12 -6
  95. package/context/HighlightProvider.js +3 -4
  96. package/context/InteractionProvider.js +3 -4
  97. package/context/SeriesContextProvider.js +3 -4
  98. package/esm/BarChart/BarChart.js +49 -9
  99. package/esm/BarChart/BarElement.js +7 -4
  100. package/esm/BarChart/BarPlot.js +152 -67
  101. package/esm/BarChart/formatter.js +1 -1
  102. package/esm/ChartContainer/index.js +3 -0
  103. package/esm/ChartsAxis/ChartsAxis.js +26 -0
  104. package/esm/ChartsAxisHighlight/ChartsAxisHighlight.js +57 -20
  105. package/esm/ChartsClipPath/ChartsClipPath.js +5 -0
  106. package/esm/ChartsLegend/ChartsLegend.js +188 -142
  107. package/esm/ChartsSurface.js +4 -12
  108. package/esm/ChartsTooltip/ChartsAxisTooltipContent.js +44 -30
  109. package/esm/ChartsTooltip/ChartsItemTooltipContent.js +15 -7
  110. package/esm/ChartsTooltip/ChartsTooltip.js +59 -14
  111. package/esm/ChartsTooltip/ChartsTooltipTable.js +17 -10
  112. package/esm/ChartsXAxis/ChartsXAxis.js +158 -37
  113. package/esm/ChartsYAxis/ChartsYAxis.js +83 -30
  114. package/esm/LineChart/AreaElement.js +10 -0
  115. package/esm/LineChart/AreaPlot.js +26 -6
  116. package/esm/LineChart/LineChart.js +45 -9
  117. package/esm/LineChart/LineElement.js +10 -0
  118. package/esm/LineChart/LineHighlightElement.js +10 -0
  119. package/esm/LineChart/LineHighlightPlot.js +12 -1
  120. package/esm/LineChart/LinePlot.js +25 -14
  121. package/esm/LineChart/MarkElement.js +11 -1
  122. package/esm/LineChart/MarkPlot.js +38 -7
  123. package/esm/LineChart/formatter.js +7 -3
  124. package/esm/PieChart/PieArc.js +26 -58
  125. package/esm/PieChart/PieArcLabel.js +43 -34
  126. package/esm/PieChart/PieArcLabelPlot.js +92 -0
  127. package/esm/PieChart/PieArcPlot.js +84 -0
  128. package/esm/PieChart/PieChart.js +59 -12
  129. package/esm/PieChart/PiePlot.js +76 -57
  130. package/esm/PieChart/dataTransform/transition.js +130 -0
  131. package/esm/PieChart/dataTransform/useTransformData.js +59 -0
  132. package/esm/ResponsiveChartContainer/index.js +3 -3
  133. package/esm/ScatterChart/Scatter.js +10 -0
  134. package/esm/ScatterChart/ScatterChart.js +40 -8
  135. package/esm/ScatterChart/ScatterPlot.js +10 -0
  136. package/esm/SparkLineChart/SparkLineChart.js +25 -3
  137. package/esm/constants.js +1 -1
  138. package/esm/context/CartesianContextProvider.js +30 -14
  139. package/esm/context/DrawingProvider.js +8 -0
  140. package/esm/hooks/useChartDimensions.js +2 -0
  141. package/esm/hooks/useMounted.js +16 -0
  142. package/esm/hooks/useReducedMotion.js +27 -0
  143. package/esm/hooks/useTicks.js +15 -9
  144. package/esm/internals/components/AxisSharedComponents.js +15 -70
  145. package/esm/internals/components/ChartsText.js +77 -0
  146. package/esm/internals/domUtils.js +113 -0
  147. package/esm/internals/geometry.js +36 -0
  148. package/hooks/useAxisEvents.js +2 -2
  149. package/hooks/useChartDimensions.d.ts +2 -0
  150. package/hooks/useChartDimensions.js +5 -4
  151. package/hooks/useDrawingArea.js +2 -2
  152. package/hooks/useInteractionItemProps.js +2 -2
  153. package/hooks/useMounted.d.ts +1 -0
  154. package/hooks/useMounted.js +25 -0
  155. package/hooks/useReducedMotion.d.ts +8 -0
  156. package/hooks/useReducedMotion.js +33 -0
  157. package/hooks/useScale.d.ts +2 -2
  158. package/hooks/useScale.js +2 -2
  159. package/hooks/useTicks.d.ts +19 -11
  160. package/hooks/useTicks.js +19 -14
  161. package/index.js +1 -1
  162. package/internals/components/AxisSharedComponents.d.ts +0 -4
  163. package/internals/components/AxisSharedComponents.js +18 -78
  164. package/internals/components/ChartsText.d.ts +35 -0
  165. package/internals/components/ChartsText.js +87 -0
  166. package/internals/defaultizeColor.d.ts +7 -2
  167. package/internals/defaultizeValueFormatter.js +1 -2
  168. package/internals/domUtils.d.ts +13 -0
  169. package/internals/domUtils.js +122 -0
  170. package/internals/geometry.d.ts +9 -0
  171. package/internals/geometry.js +42 -0
  172. package/internals/stackSeries.js +2 -4
  173. package/legacy/BarChart/BarChart.js +49 -9
  174. package/legacy/BarChart/BarElement.js +6 -3
  175. package/legacy/BarChart/BarPlot.js +151 -63
  176. package/legacy/BarChart/formatter.js +1 -1
  177. package/legacy/ChartContainer/index.js +3 -0
  178. package/legacy/ChartsAxis/ChartsAxis.js +26 -0
  179. package/legacy/ChartsAxisHighlight/ChartsAxisHighlight.js +60 -20
  180. package/legacy/ChartsClipPath/ChartsClipPath.js +5 -0
  181. package/legacy/ChartsLegend/ChartsLegend.js +203 -140
  182. package/legacy/ChartsSurface.js +3 -12
  183. package/legacy/ChartsTooltip/ChartsAxisTooltipContent.js +22 -10
  184. package/legacy/ChartsTooltip/ChartsItemTooltipContent.js +15 -7
  185. package/legacy/ChartsTooltip/ChartsTooltip.js +62 -14
  186. package/legacy/ChartsTooltip/ChartsTooltipTable.js +34 -26
  187. package/legacy/ChartsXAxis/ChartsXAxis.js +162 -39
  188. package/legacy/ChartsYAxis/ChartsYAxis.js +83 -30
  189. package/legacy/LineChart/AreaElement.js +10 -0
  190. package/legacy/LineChart/AreaPlot.js +31 -7
  191. package/legacy/LineChart/LineChart.js +45 -9
  192. package/legacy/LineChart/LineElement.js +10 -0
  193. package/legacy/LineChart/LineHighlightElement.js +10 -0
  194. package/legacy/LineChart/LineHighlightPlot.js +12 -1
  195. package/legacy/LineChart/LinePlot.js +29 -12
  196. package/legacy/LineChart/MarkElement.js +11 -1
  197. package/legacy/LineChart/MarkPlot.js +37 -7
  198. package/legacy/LineChart/formatter.js +7 -3
  199. package/legacy/PieChart/PieArc.js +30 -62
  200. package/legacy/PieChart/PieArcLabel.js +48 -34
  201. package/legacy/PieChart/PieArcLabelPlot.js +93 -0
  202. package/legacy/PieChart/PieArcPlot.js +84 -0
  203. package/legacy/PieChart/PieChart.js +59 -12
  204. package/legacy/PieChart/PiePlot.js +76 -59
  205. package/legacy/PieChart/dataTransform/transition.js +142 -0
  206. package/legacy/PieChart/dataTransform/useTransformData.js +60 -0
  207. package/legacy/ResponsiveChartContainer/index.js +3 -3
  208. package/legacy/ScatterChart/Scatter.js +10 -0
  209. package/legacy/ScatterChart/ScatterChart.js +40 -8
  210. package/legacy/ScatterChart/ScatterPlot.js +10 -0
  211. package/legacy/SparkLineChart/SparkLineChart.js +25 -3
  212. package/legacy/constants.js +1 -1
  213. package/legacy/context/CartesianContextProvider.js +30 -14
  214. package/legacy/context/DrawingProvider.js +8 -0
  215. package/legacy/hooks/useChartDimensions.js +2 -0
  216. package/legacy/hooks/useMounted.js +21 -0
  217. package/legacy/hooks/useReducedMotion.js +27 -0
  218. package/legacy/hooks/useTicks.js +16 -9
  219. package/legacy/index.js +1 -1
  220. package/legacy/internals/components/AxisSharedComponents.js +11 -65
  221. package/legacy/internals/components/ChartsText.js +79 -0
  222. package/legacy/internals/domUtils.js +121 -0
  223. package/legacy/internals/geometry.js +37 -0
  224. package/models/axis.d.ts +27 -9
  225. package/models/layout.d.ts +7 -6
  226. package/models/seriesType/line.d.ts +8 -3
  227. package/models/seriesType/pie.d.ts +5 -1
  228. package/modern/BarChart/BarChart.js +49 -9
  229. package/modern/BarChart/BarElement.js +7 -4
  230. package/modern/BarChart/BarPlot.js +149 -65
  231. package/modern/BarChart/formatter.js +1 -1
  232. package/modern/ChartContainer/index.js +3 -0
  233. package/modern/ChartsAxis/ChartsAxis.js +26 -0
  234. package/modern/ChartsAxisHighlight/ChartsAxisHighlight.js +57 -20
  235. package/modern/ChartsClipPath/ChartsClipPath.js +5 -0
  236. package/modern/ChartsLegend/ChartsLegend.js +188 -142
  237. package/modern/ChartsSurface.js +4 -12
  238. package/modern/ChartsTooltip/ChartsAxisTooltipContent.js +44 -30
  239. package/modern/ChartsTooltip/ChartsItemTooltipContent.js +15 -7
  240. package/modern/ChartsTooltip/ChartsTooltip.js +58 -14
  241. package/modern/ChartsTooltip/ChartsTooltipTable.js +17 -10
  242. package/modern/ChartsXAxis/ChartsXAxis.js +158 -37
  243. package/modern/ChartsYAxis/ChartsYAxis.js +83 -30
  244. package/modern/LineChart/AreaElement.js +10 -0
  245. package/modern/LineChart/AreaPlot.js +25 -6
  246. package/modern/LineChart/LineChart.js +45 -9
  247. package/modern/LineChart/LineElement.js +10 -0
  248. package/modern/LineChart/LineHighlightElement.js +10 -0
  249. package/modern/LineChart/LineHighlightPlot.js +12 -1
  250. package/modern/LineChart/LinePlot.js +23 -10
  251. package/modern/LineChart/MarkElement.js +11 -1
  252. package/modern/LineChart/MarkPlot.js +38 -7
  253. package/modern/LineChart/formatter.js +4 -3
  254. package/modern/PieChart/PieArc.js +26 -57
  255. package/modern/PieChart/PieArcLabel.js +43 -34
  256. package/modern/PieChart/PieArcLabelPlot.js +90 -0
  257. package/modern/PieChart/PieArcPlot.js +83 -0
  258. package/modern/PieChart/PieChart.js +59 -12
  259. package/modern/PieChart/PiePlot.js +76 -55
  260. package/modern/PieChart/dataTransform/transition.js +130 -0
  261. package/modern/PieChart/dataTransform/useTransformData.js +58 -0
  262. package/modern/ResponsiveChartContainer/index.js +3 -3
  263. package/modern/ScatterChart/Scatter.js +10 -0
  264. package/modern/ScatterChart/ScatterChart.js +40 -8
  265. package/modern/ScatterChart/ScatterPlot.js +10 -0
  266. package/modern/SparkLineChart/SparkLineChart.js +25 -3
  267. package/modern/constants.js +1 -1
  268. package/modern/context/CartesianContextProvider.js +29 -13
  269. package/modern/context/DrawingProvider.js +8 -0
  270. package/modern/hooks/useChartDimensions.js +2 -0
  271. package/modern/hooks/useMounted.js +16 -0
  272. package/modern/hooks/useReducedMotion.js +27 -0
  273. package/modern/hooks/useTicks.js +15 -9
  274. package/modern/index.js +1 -1
  275. package/modern/internals/components/AxisSharedComponents.js +15 -70
  276. package/modern/internals/components/ChartsText.js +77 -0
  277. package/modern/internals/domUtils.js +113 -0
  278. package/modern/internals/geometry.js +36 -0
  279. package/package.json +9 -6
  280. package/themeAugmentation/components.d.ts +1 -0
  281. package/themeAugmentation/overrides.d.ts +2 -0
@@ -1,12 +1,15 @@
1
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
1
2
  import _extends from "@babel/runtime/helpers/esm/extends";
2
3
  import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
4
+ var _excluded = ["skipAnimation"];
3
5
  import * as React from 'react';
4
6
  import PropTypes from 'prop-types';
7
+ import { useTransition } from '@react-spring/web';
5
8
  import { SeriesContext } from '../context/SeriesContextProvider';
6
9
  import { CartesianContext } from '../context/CartesianContextProvider';
7
10
  import { BarElement } from './BarElement';
8
11
  import { isBandScaleConfig } from '../models/axis';
9
-
12
+ import { jsx as _jsx } from "react/jsx-runtime";
10
13
  /**
11
14
  * Solution of the equations
12
15
  * W = barWidth * N + offset * (N-1)
@@ -16,7 +19,6 @@ import { isBandScaleConfig } from '../models/axis';
16
19
  * @param gapRatio The ratio of the gap between bars over the bar width.
17
20
  * @returns The bar width and the offset between bars.
18
21
  */
19
- import { jsx as _jsx } from "react/jsx-runtime";
20
22
  function getBandSize(_ref) {
21
23
  var W = _ref.bandWidth,
22
24
  N = _ref.numberOfGroups,
@@ -34,12 +36,14 @@ function getBandSize(_ref) {
34
36
  offset: offset
35
37
  };
36
38
  }
37
- function BarPlot(props) {
38
- var seriesData = React.useContext(SeriesContext).bar;
39
+ var useCompletedData = function useCompletedData() {
40
+ var _React$useContext$bar;
41
+ var seriesData = (_React$useContext$bar = React.useContext(SeriesContext).bar) != null ? _React$useContext$bar : {
42
+ series: {},
43
+ stackingGroups: [],
44
+ seriesOrder: []
45
+ };
39
46
  var axisData = React.useContext(CartesianContext);
40
- if (seriesData === undefined) {
41
- return null;
42
- }
43
47
  var series = seriesData.series,
44
48
  stackingGroups = seriesData.stackingGroups;
45
49
  var xAxis = axisData.xAxis,
@@ -48,64 +52,143 @@ function BarPlot(props) {
48
52
  yAxisIds = axisData.yAxisIds;
49
53
  var defaultXAxisId = xAxisIds[0];
50
54
  var defaultYAxisId = yAxisIds[0];
51
- return /*#__PURE__*/_jsx(React.Fragment, {
52
- children: stackingGroups.flatMap(function (_ref2, groupIndex) {
53
- var groupIds = _ref2.ids;
54
- return groupIds.flatMap(function (seriesId) {
55
- var _series$seriesId$xAxi, _series$seriesId$yAxi;
56
- var xAxisKey = (_series$seriesId$xAxi = series[seriesId].xAxisKey) != null ? _series$seriesId$xAxi : defaultXAxisId;
57
- var yAxisKey = (_series$seriesId$yAxi = series[seriesId].yAxisKey) != null ? _series$seriesId$yAxi : defaultYAxisId;
58
- var xAxisConfig = xAxis[xAxisKey];
59
- var yAxisConfig = yAxis[yAxisKey];
60
- var verticalLayout = series[seriesId].layout === 'vertical';
61
- var baseScaleConfig;
62
- if (verticalLayout) {
63
- if (!isBandScaleConfig(xAxisConfig)) {
64
- throw new Error("Axis with id \"".concat(xAxisKey, "\" shoud be of type \"band\" to display the bar series of id \"").concat(seriesId, "\""));
65
- }
66
- if (xAxis[xAxisKey].data === undefined) {
67
- throw new Error("Axis with id \"".concat(xAxisKey, "\" shoud have data property"));
68
- }
69
- baseScaleConfig = xAxisConfig;
70
- } else {
71
- if (!isBandScaleConfig(yAxisConfig)) {
72
- throw new Error("Axis with id \"".concat(yAxisKey, "\" shoud be of type \"band\" to display the bar series of id \"").concat(seriesId, "\""));
73
- }
74
- if (yAxis[yAxisKey].data === undefined) {
75
- throw new Error("Axis with id \"".concat(xAxisKey, "\" shoud have data property"));
76
- }
77
- baseScaleConfig = yAxisConfig;
55
+ var data = stackingGroups.flatMap(function (_ref2, groupIndex) {
56
+ var groupIds = _ref2.ids;
57
+ return groupIds.flatMap(function (seriesId) {
58
+ var _series$seriesId$xAxi, _series$seriesId$yAxi;
59
+ var xAxisKey = (_series$seriesId$xAxi = series[seriesId].xAxisKey) != null ? _series$seriesId$xAxi : defaultXAxisId;
60
+ var yAxisKey = (_series$seriesId$yAxi = series[seriesId].yAxisKey) != null ? _series$seriesId$yAxi : defaultYAxisId;
61
+ var xAxisConfig = xAxis[xAxisKey];
62
+ var yAxisConfig = yAxis[yAxisKey];
63
+ var verticalLayout = series[seriesId].layout === 'vertical';
64
+ var baseScaleConfig;
65
+ if (verticalLayout) {
66
+ if (!isBandScaleConfig(xAxisConfig)) {
67
+ throw new Error("Axis with id \"".concat(xAxisKey, "\" shoud be of type \"band\" to display the bar series of id \"").concat(seriesId, "\""));
68
+ }
69
+ if (xAxis[xAxisKey].data === undefined) {
70
+ throw new Error("Axis with id \"".concat(xAxisKey, "\" shoud have data property"));
71
+ }
72
+ baseScaleConfig = xAxisConfig;
73
+ } else {
74
+ if (!isBandScaleConfig(yAxisConfig)) {
75
+ throw new Error("Axis with id \"".concat(yAxisKey, "\" shoud be of type \"band\" to display the bar series of id \"").concat(seriesId, "\""));
78
76
  }
79
- var xScale = xAxisConfig.scale;
80
- var yScale = yAxisConfig.scale;
81
- var bandWidth = baseScaleConfig.scale.bandwidth();
82
- var _getBandSize = getBandSize({
83
- bandWidth: bandWidth,
84
- numberOfGroups: stackingGroups.length,
85
- gapRatio: baseScaleConfig.barGapRatio
86
- }),
87
- barWidth = _getBandSize.barWidth,
88
- offset = _getBandSize.offset;
89
- var barOffset = groupIndex * (barWidth + offset);
90
- var _series$seriesId = series[seriesId],
91
- stackedData = _series$seriesId.stackedData,
92
- color = _series$seriesId.color;
93
- return stackedData.map(function (values, dataIndex) {
94
- var _xAxis$xAxisKey$data, _yAxis$yAxisKey$data;
95
- var baseline = Math.min.apply(Math, _toConsumableArray(values));
96
- var value = Math.max.apply(Math, _toConsumableArray(values));
97
- return /*#__PURE__*/_jsx(BarElement, _extends({
98
- id: seriesId,
99
- dataIndex: dataIndex,
100
- x: verticalLayout ? xScale((_xAxis$xAxisKey$data = xAxis[xAxisKey].data) == null ? void 0 : _xAxis$xAxisKey$data[dataIndex]) + barOffset : xScale(baseline),
101
- y: verticalLayout ? yScale(value) : yScale((_yAxis$yAxisKey$data = yAxis[yAxisKey].data) == null ? void 0 : _yAxis$yAxisKey$data[dataIndex]) + barOffset,
102
- height: verticalLayout ? Math.abs(yScale(baseline) - yScale(value)) : barWidth,
103
- width: verticalLayout ? barWidth : Math.abs(xScale(baseline) - xScale(value)),
104
- color: color,
105
- highlightScope: series[seriesId].highlightScope
106
- }, props), "".concat(seriesId, "-").concat(dataIndex));
107
- });
77
+ if (yAxis[yAxisKey].data === undefined) {
78
+ throw new Error("Axis with id \"".concat(xAxisKey, "\" shoud have data property"));
79
+ }
80
+ baseScaleConfig = yAxisConfig;
81
+ }
82
+ var xScale = xAxisConfig.scale;
83
+ var yScale = yAxisConfig.scale;
84
+ var bandWidth = baseScaleConfig.scale.bandwidth();
85
+ var _getBandSize = getBandSize({
86
+ bandWidth: bandWidth,
87
+ numberOfGroups: stackingGroups.length,
88
+ gapRatio: baseScaleConfig.barGapRatio
89
+ }),
90
+ barWidth = _getBandSize.barWidth,
91
+ offset = _getBandSize.offset;
92
+ var barOffset = groupIndex * (barWidth + offset);
93
+ var _series$seriesId = series[seriesId],
94
+ stackedData = _series$seriesId.stackedData,
95
+ color = _series$seriesId.color;
96
+ return stackedData.map(function (values, dataIndex) {
97
+ var _xAxis$xAxisKey$data, _yAxis$yAxisKey$data;
98
+ var bottom = Math.min.apply(Math, _toConsumableArray(values));
99
+ var top = Math.max.apply(Math, _toConsumableArray(values));
100
+ return {
101
+ bottom: bottom,
102
+ top: top,
103
+ seriesId: seriesId,
104
+ dataIndex: dataIndex,
105
+ layout: series[seriesId].layout,
106
+ x: verticalLayout ? xScale((_xAxis$xAxisKey$data = xAxis[xAxisKey].data) == null ? void 0 : _xAxis$xAxisKey$data[dataIndex]) + barOffset : xScale(bottom),
107
+ y: verticalLayout ? yScale(top) : yScale((_yAxis$yAxisKey$data = yAxis[yAxisKey].data) == null ? void 0 : _yAxis$yAxisKey$data[dataIndex]) + barOffset,
108
+ xOrigin: xScale(0),
109
+ yOrigin: yScale(0),
110
+ height: verticalLayout ? Math.abs(yScale(bottom) - yScale(top)) : barWidth,
111
+ width: verticalLayout ? barWidth : Math.abs(xScale(bottom) - xScale(top)),
112
+ color: color,
113
+ highlightScope: series[seriesId].highlightScope
114
+ };
108
115
  });
116
+ });
117
+ });
118
+ return data;
119
+ };
120
+ var getOutStyle = function getOutStyle(_ref3) {
121
+ var layout = _ref3.layout,
122
+ yOrigin = _ref3.yOrigin,
123
+ x = _ref3.x,
124
+ width = _ref3.width,
125
+ y = _ref3.y,
126
+ xOrigin = _ref3.xOrigin,
127
+ height = _ref3.height;
128
+ return _extends({}, layout === 'vertical' ? {
129
+ y: yOrigin,
130
+ x: x,
131
+ height: 0,
132
+ width: width
133
+ } : {
134
+ y: y,
135
+ x: xOrigin,
136
+ height: height,
137
+ width: 0
138
+ });
139
+ };
140
+ var getInStyle = function getInStyle(_ref4) {
141
+ var x = _ref4.x,
142
+ width = _ref4.width,
143
+ y = _ref4.y,
144
+ height = _ref4.height;
145
+ return {
146
+ y: y,
147
+ x: x,
148
+ height: height,
149
+ width: width
150
+ };
151
+ };
152
+
153
+ /**
154
+ * Demos:
155
+ *
156
+ * - [Bars](https://mui.com/x/react-charts/bars/)
157
+ * - [Bar demonstration](https://mui.com/x/react-charts/bar-demo/)
158
+ * - [Stacking](https://mui.com/x/react-charts/stacking/)
159
+ *
160
+ * API:
161
+ *
162
+ * - [BarPlot API](https://mui.com/x/api/charts/bar-plot/)
163
+ */
164
+ function BarPlot(props) {
165
+ var completedData = useCompletedData();
166
+ var skipAnimation = props.skipAnimation,
167
+ other = _objectWithoutProperties(props, _excluded);
168
+ var transition = useTransition(completedData, {
169
+ keys: function keys(bar) {
170
+ return "".concat(bar.seriesId, "-").concat(bar.dataIndex);
171
+ },
172
+ from: getOutStyle,
173
+ leave: getOutStyle,
174
+ enter: getInStyle,
175
+ update: getInStyle,
176
+ immediate: skipAnimation
177
+ });
178
+ return /*#__PURE__*/_jsx(React.Fragment, {
179
+ children: transition(function (style, _ref5) {
180
+ var seriesId = _ref5.seriesId,
181
+ dataIndex = _ref5.dataIndex,
182
+ color = _ref5.color,
183
+ highlightScope = _ref5.highlightScope;
184
+ return /*#__PURE__*/_jsx(BarElement, _extends({
185
+ id: seriesId,
186
+ dataIndex: dataIndex,
187
+ highlightScope: highlightScope,
188
+ color: color
189
+ }, other, {
190
+ style: style
191
+ }));
109
192
  })
110
193
  });
111
194
  }
@@ -114,6 +197,11 @@ process.env.NODE_ENV !== "production" ? BarPlot.propTypes = {
114
197
  // | These PropTypes are generated from the TypeScript type definitions |
115
198
  // | To update them edit the TypeScript types and run "yarn proptypes" |
116
199
  // ----------------------------------------------------------------------
200
+ /**
201
+ * If `true`, animations are skiped.
202
+ * @default false
203
+ */
204
+ skipAnimation: PropTypes.bool,
117
205
  /**
118
206
  * The props used for each component slot.
119
207
  * @default {}
@@ -57,7 +57,7 @@ var formatter = function formatter(params, dataset) {
57
57
  seriesOrder: seriesOrder,
58
58
  stackingGroups: stackingGroups,
59
59
  series: defaultizeValueFormatter(completedSeries, function (v) {
60
- return v.toLocaleString();
60
+ return v == null ? void 0 : v.toLocaleString();
61
61
  })
62
62
  };
63
63
  };
@@ -3,6 +3,7 @@ import useForkRef from '@mui/utils/useForkRef';
3
3
  import { DrawingProvider } from '../context/DrawingProvider';
4
4
  import { SeriesContextProvider } from '../context/SeriesContextProvider';
5
5
  import { InteractionProvider } from '../context/InteractionProvider';
6
+ import { useReducedMotion } from '../hooks/useReducedMotion';
6
7
  import { ChartsSurface } from '../ChartsSurface';
7
8
  import { CartesianContextProvider } from '../context/CartesianContextProvider';
8
9
  import { HighlightProvider } from '../context/HighlightProvider';
@@ -23,6 +24,8 @@ export var ChartContainer = /*#__PURE__*/React.forwardRef(function ChartContaine
23
24
  children = props.children;
24
25
  var svgRef = React.useRef(null);
25
26
  var handleRef = useForkRef(ref, svgRef);
27
+ useReducedMotion(); // a11y reduce motion (see: https://react-spring.dev/docs/utilities/use-reduced-motion)
28
+
26
29
  return /*#__PURE__*/_jsx(DrawingProvider, {
27
30
  width: width,
28
31
  height: height,
@@ -25,6 +25,16 @@ var mergeProps = function mergeProps(axisConfig, slots, slotProps) {
25
25
  slotProps: slotProps
26
26
  };
27
27
  };
28
+
29
+ /**
30
+ * Demos:
31
+ *
32
+ * - [Axis](https://mui.com/x/react-charts/axis/)
33
+ *
34
+ * API:
35
+ *
36
+ * - [ChartsAxis API](https://mui.com/x/api/charts/charts-axis/)
37
+ */
28
38
  function ChartsAxis(props) {
29
39
  var topAxis = props.topAxis,
30
40
  leftAxis = props.leftAxis,
@@ -95,11 +105,15 @@ process.env.NODE_ENV !== "production" ? ChartsAxis.propTypes = {
95
105
  fill: PropTypes.string,
96
106
  label: PropTypes.string,
97
107
  labelFontSize: PropTypes.number,
108
+ labelStyle: PropTypes.object,
98
109
  position: PropTypes.oneOf(['bottom', 'top']),
99
110
  slotProps: PropTypes.object,
100
111
  slots: PropTypes.object,
101
112
  stroke: PropTypes.string,
102
113
  tickFontSize: PropTypes.number,
114
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
115
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
116
+ tickLabelStyle: PropTypes.object,
103
117
  tickMaxStep: PropTypes.number,
104
118
  tickMinStep: PropTypes.number,
105
119
  tickNumber: PropTypes.number,
@@ -118,11 +132,15 @@ process.env.NODE_ENV !== "production" ? ChartsAxis.propTypes = {
118
132
  fill: PropTypes.string,
119
133
  label: PropTypes.string,
120
134
  labelFontSize: PropTypes.number,
135
+ labelStyle: PropTypes.object,
121
136
  position: PropTypes.oneOf(['left', 'right']),
122
137
  slotProps: PropTypes.object,
123
138
  slots: PropTypes.object,
124
139
  stroke: PropTypes.string,
125
140
  tickFontSize: PropTypes.number,
141
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
142
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
143
+ tickLabelStyle: PropTypes.object,
126
144
  tickMaxStep: PropTypes.number,
127
145
  tickMinStep: PropTypes.number,
128
146
  tickNumber: PropTypes.number,
@@ -141,11 +159,15 @@ process.env.NODE_ENV !== "production" ? ChartsAxis.propTypes = {
141
159
  fill: PropTypes.string,
142
160
  label: PropTypes.string,
143
161
  labelFontSize: PropTypes.number,
162
+ labelStyle: PropTypes.object,
144
163
  position: PropTypes.oneOf(['left', 'right']),
145
164
  slotProps: PropTypes.object,
146
165
  slots: PropTypes.object,
147
166
  stroke: PropTypes.string,
148
167
  tickFontSize: PropTypes.number,
168
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
169
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
170
+ tickLabelStyle: PropTypes.object,
149
171
  tickMaxStep: PropTypes.number,
150
172
  tickMinStep: PropTypes.number,
151
173
  tickNumber: PropTypes.number,
@@ -174,11 +196,15 @@ process.env.NODE_ENV !== "production" ? ChartsAxis.propTypes = {
174
196
  fill: PropTypes.string,
175
197
  label: PropTypes.string,
176
198
  labelFontSize: PropTypes.number,
199
+ labelStyle: PropTypes.object,
177
200
  position: PropTypes.oneOf(['bottom', 'top']),
178
201
  slotProps: PropTypes.object,
179
202
  slots: PropTypes.object,
180
203
  stroke: PropTypes.string,
181
204
  tickFontSize: PropTypes.number,
205
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
206
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
207
+ tickLabelStyle: PropTypes.object,
182
208
  tickMaxStep: PropTypes.number,
183
209
  tickMinStep: PropTypes.number,
184
210
  tickNumber: PropTypes.number,
@@ -1,11 +1,54 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
1
2
  import * as React from 'react';
2
3
  import PropTypes from 'prop-types';
4
+ import composeClasses from '@mui/utils/composeClasses';
5
+ import generateUtilityClass from '@mui/utils/generateUtilityClass';
6
+ import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
7
+ import { styled } from '@mui/material/styles';
3
8
  import { InteractionContext } from '../context/InteractionProvider';
4
9
  import { CartesianContext } from '../context/CartesianContextProvider';
5
10
  import { getValueToPositionMapper } from '../hooks/useScale';
6
11
  import { isBandScale } from '../internals/isBandScale';
7
12
  import { jsx as _jsx } from "react/jsx-runtime";
8
13
  import { jsxs as _jsxs } from "react/jsx-runtime";
14
+ export function getAxisHighlightUtilityClass(slot) {
15
+ return generateUtilityClass('MuiChartsAxisHighlight', slot);
16
+ }
17
+ export var chartsAxisHighlightClasses = generateUtilityClasses('MuiChartsAxisHighlight', ['root']);
18
+ var useUtilityClasses = function useUtilityClasses() {
19
+ var slots = {
20
+ root: ['root']
21
+ };
22
+ return composeClasses(slots, getAxisHighlightUtilityClass);
23
+ };
24
+ export var ChartsAxisHighlightPath = styled('path', {
25
+ name: 'MuiChartsAxisHighlight',
26
+ slot: 'Root',
27
+ overridesResolver: function overridesResolver(_, styles) {
28
+ return styles.root;
29
+ }
30
+ })(function (_ref) {
31
+ var ownerState = _ref.ownerState,
32
+ theme = _ref.theme;
33
+ return _extends({
34
+ pointerEvents: 'none'
35
+ }, ownerState.axisHighlight === 'band' && {
36
+ fill: theme.palette.mode === 'light' ? 'gray' : 'white',
37
+ fillOpacity: 0.1
38
+ }, ownerState.axisHighlight === 'line' && {
39
+ strokeDasharray: '5 2',
40
+ stroke: theme.palette.mode === 'light' ? '#000000' : '#ffffff'
41
+ });
42
+ });
43
+ /**
44
+ * Demos:
45
+ *
46
+ * - [Custom components](https://mui.com/x/react-charts/components/)
47
+ *
48
+ * API:
49
+ *
50
+ * - [ChartsAxisHighlight API](https://mui.com/x/api/charts/charts-axis-highlight/)
51
+ */
9
52
  function ChartsAxisHighlight(props) {
10
53
  var xAxisHighlight = props.x,
11
54
  yAxisHighlight = props.y;
@@ -14,6 +57,7 @@ function ChartsAxisHighlight(props) {
14
57
  xAxis = _React$useContext.xAxis,
15
58
  yAxisIds = _React$useContext.yAxisIds,
16
59
  yAxis = _React$useContext.yAxis;
60
+ var classes = useUtilityClasses();
17
61
  var USED_X_AXIS_ID = xAxisIds[0];
18
62
  var USED_Y_AXIS_ID = yAxisIds[0];
19
63
  var xScale = xAxis[USED_X_AXIS_ID].scale;
@@ -23,33 +67,29 @@ function ChartsAxisHighlight(props) {
23
67
  var getXPosition = getValueToPositionMapper(xScale);
24
68
  var getYPosition = getValueToPositionMapper(yScale);
25
69
  return /*#__PURE__*/_jsxs(React.Fragment, {
26
- children: [xAxisHighlight === 'band' && axis.x !== null && isBandScale(xScale) && /*#__PURE__*/_jsx("path", {
70
+ children: [xAxisHighlight === 'band' && axis.x !== null && isBandScale(xScale) && /*#__PURE__*/_jsx(ChartsAxisHighlightPath, {
27
71
  d: "M ".concat(xScale(axis.x.value) - (xScale.step() - xScale.bandwidth()) / 2, " ").concat(yScale.range()[0], " l ").concat(xScale.step(), " 0 l 0 ").concat(yScale.range()[1] - yScale.range()[0], " l ").concat(-xScale.step(), " 0 Z"),
28
- fill: "gray",
29
- fillOpacity: 0.1,
30
- style: {
31
- pointerEvents: 'none'
72
+ className: classes.root,
73
+ ownerState: {
74
+ axisHighlight: 'band'
32
75
  }
33
- }), yAxisHighlight === 'band' && axis.y !== null && isBandScale(yScale) && /*#__PURE__*/_jsx("path", {
76
+ }), yAxisHighlight === 'band' && axis.y !== null && isBandScale(yScale) && /*#__PURE__*/_jsx(ChartsAxisHighlightPath, {
34
77
  d: "M ".concat(xScale.range()[0], " ").concat(yScale(axis.y.value) - (yScale.step() - yScale.bandwidth()) / 2, " l 0 ").concat(yScale.step(), " l ").concat(xScale.range()[1] - xScale.range()[0], " 0 l 0 ").concat(-yScale.step(), " Z"),
35
- fill: "gray",
36
- fillOpacity: 0.1,
37
- style: {
38
- pointerEvents: 'none'
78
+ className: classes.root,
79
+ ownerState: {
80
+ axisHighlight: 'band'
39
81
  }
40
- }), xAxisHighlight === 'line' && axis.x !== null && /*#__PURE__*/_jsx("path", {
82
+ }), xAxisHighlight === 'line' && axis.x !== null && /*#__PURE__*/_jsx(ChartsAxisHighlightPath, {
41
83
  d: "M ".concat(getXPosition(axis.x.value), " ").concat(yScale.range()[0], " L ").concat(getXPosition(axis.x.value), " ").concat(yScale.range()[1]),
42
- stroke: "black",
43
- strokeDasharray: "5 2",
44
- style: {
45
- pointerEvents: 'none'
84
+ className: classes.root,
85
+ ownerState: {
86
+ axisHighlight: 'line'
46
87
  }
47
- }), yAxisHighlight === 'line' && axis.y !== null && /*#__PURE__*/_jsx("path", {
88
+ }), yAxisHighlight === 'line' && axis.y !== null && /*#__PURE__*/_jsx(ChartsAxisHighlightPath, {
48
89
  d: "M ".concat(xScale.range()[0], " ").concat(getYPosition(axis.y.value), " L ").concat(xScale.range()[1], " ").concat(getYPosition(axis.y.value)),
49
- stroke: "black",
50
- strokeDasharray: "5 2",
51
- style: {
52
- pointerEvents: 'none'
90
+ className: classes.root,
91
+ ownerState: {
92
+ axisHighlight: 'line'
53
93
  }
54
94
  })]
55
95
  });
@@ -3,6 +3,11 @@ import * as React from 'react';
3
3
  import PropTypes from 'prop-types';
4
4
  import { DrawingContext } from '../context/DrawingProvider';
5
5
  import { jsx as _jsx } from "react/jsx-runtime";
6
+ /**
7
+ * API:
8
+ *
9
+ * - [ChartsClipPath API](https://mui.com/x/api/charts/charts-clip-path/)
10
+ */
6
11
  function ChartsClipPath(props) {
7
12
  var id = props.id,
8
13
  offsetProps = props.offset;