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

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 (221) hide show
  1. package/BarChart/BarChart.js +0 -2
  2. package/CHANGELOG.md +357 -22
  3. package/ChartsGrid/ChartsGrid.js +2 -2
  4. package/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +1 -1
  5. package/ChartsTooltip/utils.js +1 -1
  6. package/ChartsVoronoiHandler/ChartsVoronoiHandler.d.ts +0 -1
  7. package/ChartsVoronoiHandler/ChartsVoronoiHandler.js +1 -2
  8. package/ChartsXAxis/ChartsXAxis.js +1 -1
  9. package/ChartsYAxis/ChartsYAxis.js +1 -1
  10. package/Gauge/Gauge.js +0 -2
  11. package/Gauge/GaugeContainer.d.ts +0 -2
  12. package/Gauge/GaugeContainer.js +0 -2
  13. package/Gauge/GaugeProvider.js +3 -0
  14. package/Gauge/GaugeValueText.js +1 -1
  15. package/LineChart/LineChart.js +0 -2
  16. package/PieChart/PieChart.js +0 -2
  17. package/ResponsiveChartContainer/ResponsiveChartContainer.d.ts +0 -2
  18. package/ResponsiveChartContainer/ResponsiveChartContainer.js +0 -2
  19. package/ScatterChart/ScatterChart.js +0 -3
  20. package/SparkLineChart/SparkLineChart.js +0 -2
  21. package/context/CartesianContextProvider.d.ts +0 -8
  22. package/context/CartesianContextProvider.js +4 -89
  23. package/context/DrawingProvider.d.ts +2 -11
  24. package/context/DrawingProvider.js +10 -35
  25. package/context/HighlightProvider.js +3 -0
  26. package/context/InteractionProvider.js +3 -0
  27. package/context/SeriesContextProvider.js +3 -0
  28. package/context/index.d.ts +0 -2
  29. package/context/index.js +1 -15
  30. package/esm/BarChart/BarChart.js +0 -2
  31. package/esm/ChartsGrid/ChartsGrid.js +2 -2
  32. package/esm/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +2 -2
  33. package/esm/ChartsTooltip/utils.js +2 -2
  34. package/esm/ChartsVoronoiHandler/ChartsVoronoiHandler.js +2 -3
  35. package/esm/ChartsXAxis/ChartsXAxis.js +1 -1
  36. package/esm/ChartsYAxis/ChartsYAxis.js +1 -1
  37. package/esm/Gauge/Gauge.js +0 -2
  38. package/esm/Gauge/GaugeContainer.js +0 -2
  39. package/esm/Gauge/GaugeProvider.js +3 -0
  40. package/esm/Gauge/GaugeValueText.js +1 -1
  41. package/esm/LineChart/LineChart.js +0 -2
  42. package/esm/PieChart/PieChart.js +0 -2
  43. package/esm/ResponsiveChartContainer/ResponsiveChartContainer.js +0 -2
  44. package/esm/ScatterChart/ScatterChart.js +0 -3
  45. package/esm/SparkLineChart/SparkLineChart.js +0 -2
  46. package/esm/context/CartesianContextProvider.js +3 -88
  47. package/esm/context/DrawingProvider.js +10 -36
  48. package/esm/context/HighlightProvider.js +3 -0
  49. package/esm/context/InteractionProvider.js +3 -0
  50. package/esm/context/SeriesContextProvider.js +3 -0
  51. package/esm/context/index.js +1 -2
  52. package/esm/hooks/useAxisEvents.js +2 -2
  53. package/hooks/useAxisEvents.js +1 -1
  54. package/hooks/useTicks.d.ts +1 -1
  55. package/index.js +1 -1
  56. package/modern/BarChart/BarChart.js +0 -2
  57. package/modern/ChartsGrid/ChartsGrid.js +2 -2
  58. package/modern/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +2 -2
  59. package/modern/ChartsTooltip/utils.js +2 -2
  60. package/modern/ChartsVoronoiHandler/ChartsVoronoiHandler.js +2 -3
  61. package/modern/ChartsXAxis/ChartsXAxis.js +1 -1
  62. package/modern/ChartsYAxis/ChartsYAxis.js +1 -1
  63. package/modern/Gauge/Gauge.js +0 -2
  64. package/modern/Gauge/GaugeContainer.js +0 -2
  65. package/modern/Gauge/GaugeProvider.js +3 -0
  66. package/modern/Gauge/GaugeValueText.js +1 -1
  67. package/modern/LineChart/LineChart.js +0 -2
  68. package/modern/PieChart/PieChart.js +0 -2
  69. package/modern/ResponsiveChartContainer/ResponsiveChartContainer.js +0 -2
  70. package/modern/ScatterChart/ScatterChart.js +0 -3
  71. package/modern/SparkLineChart/SparkLineChart.js +0 -2
  72. package/modern/context/CartesianContextProvider.js +3 -88
  73. package/modern/context/DrawingProvider.js +10 -36
  74. package/modern/context/HighlightProvider.js +3 -0
  75. package/modern/context/InteractionProvider.js +3 -0
  76. package/modern/context/SeriesContextProvider.js +3 -0
  77. package/modern/context/index.js +1 -2
  78. package/modern/hooks/useAxisEvents.js +2 -2
  79. package/modern/index.js +1 -1
  80. package/package.json +1 -1
  81. package/legacy/BarChart/BarChart.js +0 -440
  82. package/legacy/BarChart/BarElement.js +0 -119
  83. package/legacy/BarChart/BarPlot.js +0 -232
  84. package/legacy/BarChart/extremums.js +0 -45
  85. package/legacy/BarChart/formatter.js +0 -78
  86. package/legacy/BarChart/index.js +0 -3
  87. package/legacy/BarChart/legend.js +0 -15
  88. package/legacy/ChartContainer/ChartContainer.js +0 -189
  89. package/legacy/ChartContainer/index.js +0 -1
  90. package/legacy/ChartsAxis/ChartsAxis.js +0 -215
  91. package/legacy/ChartsAxis/axisClasses.js +0 -5
  92. package/legacy/ChartsAxis/index.js +0 -2
  93. package/legacy/ChartsAxisHighlight/ChartsAxisHighlight.js +0 -105
  94. package/legacy/ChartsAxisHighlight/index.js +0 -1
  95. package/legacy/ChartsClipPath/ChartsClipPath.js +0 -48
  96. package/legacy/ChartsClipPath/index.js +0 -1
  97. package/legacy/ChartsGrid/ChartsGrid.js +0 -119
  98. package/legacy/ChartsGrid/chartsGridClasses.js +0 -6
  99. package/legacy/ChartsGrid/index.js +0 -2
  100. package/legacy/ChartsLegend/ChartsLegend.js +0 -100
  101. package/legacy/ChartsLegend/DefaultChartsLegend.js +0 -302
  102. package/legacy/ChartsLegend/chartsLegendClasses.js +0 -5
  103. package/legacy/ChartsLegend/index.js +0 -4
  104. package/legacy/ChartsLegend/utils.js +0 -15
  105. package/legacy/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +0 -75
  106. package/legacy/ChartsOnAxisClickHandler/index.js +0 -1
  107. package/legacy/ChartsReferenceLine/ChartsReferenceLine.js +0 -72
  108. package/legacy/ChartsReferenceLine/ChartsXReferenceLine.js +0 -105
  109. package/legacy/ChartsReferenceLine/ChartsYReferenceLine.js +0 -105
  110. package/legacy/ChartsReferenceLine/chartsReferenceLineClasses.js +0 -6
  111. package/legacy/ChartsReferenceLine/common.js +0 -19
  112. package/legacy/ChartsReferenceLine/index.js +0 -2
  113. package/legacy/ChartsSurface.js +0 -78
  114. package/legacy/ChartsText/ChartsText.js +0 -95
  115. package/legacy/ChartsText/index.js +0 -1
  116. package/legacy/ChartsTooltip/ChartsAxisTooltipContent.js +0 -96
  117. package/legacy/ChartsTooltip/ChartsItemTooltipContent.js +0 -53
  118. package/legacy/ChartsTooltip/ChartsTooltip.js +0 -148
  119. package/legacy/ChartsTooltip/ChartsTooltipTable.js +0 -80
  120. package/legacy/ChartsTooltip/DefaultChartsAxisTooltipContent.js +0 -118
  121. package/legacy/ChartsTooltip/DefaultChartsItemTooltipContent.js +0 -78
  122. package/legacy/ChartsTooltip/chartsTooltipClasses.js +0 -5
  123. package/legacy/ChartsTooltip/index.js +0 -6
  124. package/legacy/ChartsTooltip/utils.js +0 -103
  125. package/legacy/ChartsVoronoiHandler/ChartsVoronoiHandler.js +0 -206
  126. package/legacy/ChartsVoronoiHandler/index.js +0 -1
  127. package/legacy/ChartsXAxis/ChartsXAxis.js +0 -339
  128. package/legacy/ChartsXAxis/index.js +0 -1
  129. package/legacy/ChartsYAxis/ChartsYAxis.js +0 -267
  130. package/legacy/ChartsYAxis/index.js +0 -1
  131. package/legacy/Gauge/Gauge.js +0 -146
  132. package/legacy/Gauge/GaugeContainer.js +0 -215
  133. package/legacy/Gauge/GaugeProvider.js +0 -87
  134. package/legacy/Gauge/GaugeReferenceArc.js +0 -37
  135. package/legacy/Gauge/GaugeValueArc.js +0 -44
  136. package/legacy/Gauge/GaugeValueText.js +0 -66
  137. package/legacy/Gauge/gaugeClasses.js +0 -7
  138. package/legacy/Gauge/index.js +0 -7
  139. package/legacy/Gauge/utils.js +0 -84
  140. package/legacy/LineChart/AnimatedArea.js +0 -102
  141. package/legacy/LineChart/AnimatedLine.js +0 -104
  142. package/legacy/LineChart/AreaElement.js +0 -112
  143. package/legacy/LineChart/AreaPlot.js +0 -149
  144. package/legacy/LineChart/LineChart.js +0 -452
  145. package/legacy/LineChart/LineElement.js +0 -112
  146. package/legacy/LineChart/LineHighlightElement.js +0 -79
  147. package/legacy/LineChart/LineHighlightPlot.js +0 -97
  148. package/legacy/LineChart/LinePlot.js +0 -144
  149. package/legacy/LineChart/MarkElement.js +0 -153
  150. package/legacy/LineChart/MarkPlot.js +0 -178
  151. package/legacy/LineChart/extremums.js +0 -54
  152. package/legacy/LineChart/formatter.js +0 -82
  153. package/legacy/LineChart/index.js +0 -11
  154. package/legacy/LineChart/legend.js +0 -15
  155. package/legacy/PieChart/PieArc.js +0 -103
  156. package/legacy/PieChart/PieArcLabel.js +0 -112
  157. package/legacy/PieChart/PieArcLabelPlot.js +0 -193
  158. package/legacy/PieChart/PieArcPlot.js +0 -180
  159. package/legacy/PieChart/PieChart.js +0 -404
  160. package/legacy/PieChart/PiePlot.js +0 -137
  161. package/legacy/PieChart/dataTransform/transition.js +0 -149
  162. package/legacy/PieChart/dataTransform/useTransformData.js +0 -63
  163. package/legacy/PieChart/formatter.js +0 -55
  164. package/legacy/PieChart/index.js +0 -6
  165. package/legacy/PieChart/legend.js +0 -16
  166. package/legacy/ResponsiveChartContainer/ResponsiveChartContainer.js +0 -185
  167. package/legacy/ResponsiveChartContainer/index.js +0 -1
  168. package/legacy/ResponsiveChartContainer/useChartContainerDimensions.js +0 -73
  169. package/legacy/ScatterChart/Scatter.js +0 -110
  170. package/legacy/ScatterChart/ScatterChart.js +0 -395
  171. package/legacy/ScatterChart/ScatterPlot.js +0 -80
  172. package/legacy/ScatterChart/extremums.js +0 -39
  173. package/legacy/ScatterChart/formatter.js +0 -12
  174. package/legacy/ScatterChart/index.js +0 -3
  175. package/legacy/ScatterChart/legend.js +0 -15
  176. package/legacy/SparkLineChart/SparkLineChart.js +0 -266
  177. package/legacy/SparkLineChart/index.js +0 -1
  178. package/legacy/colorPalettes/colorPalettes.js +0 -15
  179. package/legacy/colorPalettes/index.js +0 -1
  180. package/legacy/constants.js +0 -8
  181. package/legacy/context/CartesianContextProvider.js +0 -327
  182. package/legacy/context/DrawingProvider.js +0 -74
  183. package/legacy/context/HighlightProvider.js +0 -56
  184. package/legacy/context/InteractionProvider.js +0 -81
  185. package/legacy/context/SeriesContextProvider.js +0 -74
  186. package/legacy/context/index.js +0 -2
  187. package/legacy/hooks/index.js +0 -2
  188. package/legacy/hooks/useAxisEvents.js +0 -120
  189. package/legacy/hooks/useChartDimensions.js +0 -18
  190. package/legacy/hooks/useDrawingArea.js +0 -21
  191. package/legacy/hooks/useInteractionItemProps.js +0 -71
  192. package/legacy/hooks/useMounted.js +0 -21
  193. package/legacy/hooks/useReducedMotion.js +0 -27
  194. package/legacy/hooks/useScale.js +0 -33
  195. package/legacy/hooks/useTicks.js +0 -65
  196. package/legacy/index.js +0 -33
  197. package/legacy/internals/components/AxisSharedComponents.js +0 -25
  198. package/legacy/internals/defaultizeColor.js +0 -17
  199. package/legacy/internals/defaultizeValueFormatter.js +0 -12
  200. package/legacy/internals/domUtils.js +0 -121
  201. package/legacy/internals/geometry.js +0 -37
  202. package/legacy/internals/getCurve.js +0 -39
  203. package/legacy/internals/getScale.js +0 -17
  204. package/legacy/internals/getWordsByLines.js +0 -15
  205. package/legacy/internals/isBandScale.js +0 -3
  206. package/legacy/internals/stackSeries.js +0 -92
  207. package/legacy/internals/useAnimatedPath.js +0 -32
  208. package/legacy/internals/utils.js +0 -52
  209. package/legacy/models/axis.js +0 -6
  210. package/legacy/models/helpers.js +0 -1
  211. package/legacy/models/index.js +0 -4
  212. package/legacy/models/layout.js +0 -1
  213. package/legacy/models/seriesType/bar.js +0 -1
  214. package/legacy/models/seriesType/common.js +0 -1
  215. package/legacy/models/seriesType/config.js +0 -1
  216. package/legacy/models/seriesType/index.js +0 -5
  217. package/legacy/models/seriesType/line.js +0 -1
  218. package/legacy/models/seriesType/pie.js +0 -1
  219. package/legacy/models/seriesType/scatter.js +0 -1
  220. package/legacy/models/stacking.js +0 -1
  221. package/legacy/themeAugmentation/index.js +0 -3
@@ -1,119 +0,0 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
- import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
- var _excluded = ["id", "dataIndex", "classes", "color", "highlightScope", "slots", "slotProps", "style", "onClick"];
4
- import * as React from 'react';
5
- import PropTypes from 'prop-types';
6
- import composeClasses from '@mui/utils/composeClasses';
7
- import { useSlotProps } from '@mui/base/utils';
8
- import generateUtilityClass from '@mui/utils/generateUtilityClass';
9
- import { styled } from '@mui/material/styles';
10
- import { color as d3Color } from 'd3-color';
11
- import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
12
- import { animated } from '@react-spring/web';
13
- import { getIsFaded, getIsHighlighted, useInteractionItemProps } from '../hooks/useInteractionItemProps';
14
- import { InteractionContext } from '../context/InteractionProvider';
15
- import { jsx as _jsx } from "react/jsx-runtime";
16
- export function getBarElementUtilityClass(slot) {
17
- return generateUtilityClass('MuiBarElement', slot);
18
- }
19
- export var barElementClasses = generateUtilityClasses('MuiBarElement', ['root']);
20
- var useUtilityClasses = function useUtilityClasses(ownerState) {
21
- var classes = ownerState.classes,
22
- id = ownerState.id;
23
- var slots = {
24
- root: ['root', "series-".concat(id)]
25
- };
26
- return composeClasses(slots, getBarElementUtilityClass, classes);
27
- };
28
- export var BarElementPath = styled(animated.rect, {
29
- name: 'MuiBarElement',
30
- slot: 'Root',
31
- overridesResolver: function overridesResolver(_, styles) {
32
- return styles.root;
33
- }
34
- })(function (_ref) {
35
- var ownerState = _ref.ownerState;
36
- return {
37
- stroke: 'none',
38
- shapeRendering: 'crispEdges',
39
- fill: ownerState.isHighlighted ? d3Color(ownerState.color).brighter(0.5).formatHex() : ownerState.color,
40
- transition: 'opacity 0.2s ease-in, fill 0.2s ease-in',
41
- opacity: ownerState.isFaded && 0.3 || 1
42
- };
43
- });
44
- function BarElement(props) {
45
- var _slots$bar;
46
- var id = props.id,
47
- dataIndex = props.dataIndex,
48
- innerClasses = props.classes,
49
- color = props.color,
50
- highlightScope = props.highlightScope,
51
- slots = props.slots,
52
- slotProps = props.slotProps,
53
- style = props.style,
54
- onClick = props.onClick,
55
- other = _objectWithoutProperties(props, _excluded);
56
- var getInteractionItemProps = useInteractionItemProps(highlightScope);
57
- var _React$useContext = React.useContext(InteractionContext),
58
- item = _React$useContext.item;
59
- var isHighlighted = getIsHighlighted(item, {
60
- type: 'bar',
61
- seriesId: id,
62
- dataIndex: dataIndex
63
- }, highlightScope);
64
- var isFaded = !isHighlighted && getIsFaded(item, {
65
- type: 'bar',
66
- seriesId: id,
67
- dataIndex: dataIndex
68
- }, highlightScope);
69
- var ownerState = {
70
- id: id,
71
- dataIndex: dataIndex,
72
- classes: innerClasses,
73
- color: color,
74
- isFaded: isFaded,
75
- isHighlighted: isHighlighted
76
- };
77
- var classes = useUtilityClasses(ownerState);
78
- var Bar = (_slots$bar = slots == null ? void 0 : slots.bar) != null ? _slots$bar : BarElementPath;
79
- var barProps = useSlotProps({
80
- elementType: Bar,
81
- externalSlotProps: slotProps == null ? void 0 : slotProps.bar,
82
- additionalProps: _extends({}, other, getInteractionItemProps({
83
- type: 'bar',
84
- seriesId: id,
85
- dataIndex: dataIndex
86
- }), {
87
- style: style,
88
- className: classes.root,
89
- onClick: onClick,
90
- cursor: onClick ? 'pointer' : 'unset'
91
- }),
92
- ownerState: ownerState
93
- });
94
- return /*#__PURE__*/_jsx(Bar, _extends({}, barProps));
95
- }
96
- process.env.NODE_ENV !== "production" ? BarElement.propTypes = {
97
- // ----------------------------- Warning --------------------------------
98
- // | These PropTypes are generated from the TypeScript type definitions |
99
- // | To update them edit the TypeScript types and run "yarn proptypes" |
100
- // ----------------------------------------------------------------------
101
- classes: PropTypes.object,
102
- dataIndex: PropTypes.number.isRequired,
103
- highlightScope: PropTypes.shape({
104
- faded: PropTypes.oneOf(['global', 'none', 'series']),
105
- highlighted: PropTypes.oneOf(['item', 'none', 'series'])
106
- }),
107
- id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
108
- /**
109
- * The props used for each component slot.
110
- * @default {}
111
- */
112
- slotProps: PropTypes.object,
113
- /**
114
- * Overridable component slots.
115
- * @default {}
116
- */
117
- slots: PropTypes.object
118
- } : void 0;
119
- export { BarElement };
@@ -1,232 +0,0 @@
1
- import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
2
- import _extends from "@babel/runtime/helpers/esm/extends";
3
- import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
4
- var _excluded = ["skipAnimation", "onItemClick"];
5
- import * as React from 'react';
6
- import PropTypes from 'prop-types';
7
- import { useTransition } from '@react-spring/web';
8
- import { SeriesContext } from '../context/SeriesContextProvider';
9
- import { CartesianContext } from '../context/CartesianContextProvider';
10
- import { BarElement } from './BarElement';
11
- import { isBandScaleConfig } from '../models/axis';
12
- import { DEFAULT_X_AXIS_KEY, DEFAULT_Y_AXIS_KEY } from '../constants';
13
- import { jsx as _jsx } from "react/jsx-runtime";
14
- /**
15
- * Solution of the equations
16
- * W = barWidth * N + offset * (N-1)
17
- * offset / (offset + barWidth) = r
18
- * @param bandWidth The width available to place bars.
19
- * @param numberOfGroups The number of bars to place in that space.
20
- * @param gapRatio The ratio of the gap between bars over the bar width.
21
- * @returns The bar width and the offset between bars.
22
- */
23
- function getBandSize(_ref) {
24
- var W = _ref.bandWidth,
25
- N = _ref.numberOfGroups,
26
- r = _ref.gapRatio;
27
- if (r === 0) {
28
- return {
29
- barWidth: W / N,
30
- offset: 0
31
- };
32
- }
33
- var barWidth = W / (N + (N - 1) * r);
34
- var offset = r * barWidth;
35
- return {
36
- barWidth: barWidth,
37
- offset: offset
38
- };
39
- }
40
- var useAggregatedData = function useAggregatedData() {
41
- var _React$useContext$bar;
42
- var seriesData = (_React$useContext$bar = React.useContext(SeriesContext).bar) != null ? _React$useContext$bar : {
43
- series: {},
44
- stackingGroups: [],
45
- seriesOrder: []
46
- };
47
- var axisData = React.useContext(CartesianContext);
48
- var series = seriesData.series,
49
- stackingGroups = seriesData.stackingGroups;
50
- var xAxis = axisData.xAxis,
51
- yAxis = axisData.yAxis,
52
- xAxisIds = axisData.xAxisIds,
53
- yAxisIds = axisData.yAxisIds;
54
- var defaultXAxisId = xAxisIds[0];
55
- var defaultYAxisId = yAxisIds[0];
56
- var data = stackingGroups.flatMap(function (_ref2, groupIndex) {
57
- var groupIds = _ref2.ids;
58
- return groupIds.flatMap(function (seriesId) {
59
- var _series$seriesId$xAxi, _series$seriesId$yAxi;
60
- var xAxisKey = (_series$seriesId$xAxi = series[seriesId].xAxisKey) != null ? _series$seriesId$xAxi : defaultXAxisId;
61
- var yAxisKey = (_series$seriesId$yAxi = series[seriesId].yAxisKey) != null ? _series$seriesId$yAxi : defaultYAxisId;
62
- var xAxisConfig = xAxis[xAxisKey];
63
- var yAxisConfig = yAxis[yAxisKey];
64
- var verticalLayout = series[seriesId].layout === 'vertical';
65
- var baseScaleConfig;
66
- if (verticalLayout) {
67
- if (!isBandScaleConfig(xAxisConfig)) {
68
- throw new Error("MUI X Charts: ".concat(xAxisKey === DEFAULT_X_AXIS_KEY ? 'The first `xAxis`' : "The x-axis with id \"".concat(xAxisKey, "\""), " shoud be of type \"band\" to display the bar series of id \"").concat(seriesId, "\"."));
69
- }
70
- if (xAxis[xAxisKey].data === undefined) {
71
- throw new Error("MUI X Charts: ".concat(xAxisKey === DEFAULT_X_AXIS_KEY ? 'The first `xAxis`' : "The x-axis with id \"".concat(xAxisKey, "\""), " shoud have data property."));
72
- }
73
- baseScaleConfig = xAxisConfig;
74
- } else {
75
- if (!isBandScaleConfig(yAxisConfig)) {
76
- throw new Error("MUI X Charts: ".concat(yAxisKey === DEFAULT_Y_AXIS_KEY ? 'The first `yAxis`' : "The y-axis with id \"".concat(yAxisKey, "\""), " shoud be of type \"band\" to display the bar series of id \"").concat(seriesId, "\"."));
77
- }
78
- if (yAxis[yAxisKey].data === undefined) {
79
- throw new Error("MUI X Charts: ".concat(yAxisKey === DEFAULT_Y_AXIS_KEY ? 'The first `yAxis`' : "The y-axis with id \"".concat(yAxisKey, "\""), " shoud have data property."));
80
- }
81
- baseScaleConfig = yAxisConfig;
82
- }
83
- var xScale = xAxisConfig.scale;
84
- var yScale = yAxisConfig.scale;
85
- var bandWidth = baseScaleConfig.scale.bandwidth();
86
- var _getBandSize = getBandSize({
87
- bandWidth: bandWidth,
88
- numberOfGroups: stackingGroups.length,
89
- gapRatio: baseScaleConfig.barGapRatio
90
- }),
91
- barWidth = _getBandSize.barWidth,
92
- offset = _getBandSize.offset;
93
- var barOffset = groupIndex * (barWidth + offset);
94
- var _series$seriesId = series[seriesId],
95
- stackedData = _series$seriesId.stackedData,
96
- color = _series$seriesId.color;
97
- return stackedData.map(function (values, dataIndex) {
98
- var _xAxis$xAxisKey$data, _yAxis$yAxisKey$data;
99
- var valueCoordinates = values.map(function (v) {
100
- return verticalLayout ? yScale(v) : xScale(v);
101
- });
102
- var minValueCoord = Math.min.apply(Math, _toConsumableArray(valueCoordinates));
103
- var maxValueCoord = Math.max.apply(Math, _toConsumableArray(valueCoordinates));
104
- return {
105
- seriesId: seriesId,
106
- dataIndex: dataIndex,
107
- layout: series[seriesId].layout,
108
- x: verticalLayout ? xScale((_xAxis$xAxisKey$data = xAxis[xAxisKey].data) == null ? void 0 : _xAxis$xAxisKey$data[dataIndex]) + barOffset : minValueCoord,
109
- y: verticalLayout ? minValueCoord : yScale((_yAxis$yAxisKey$data = yAxis[yAxisKey].data) == null ? void 0 : _yAxis$yAxisKey$data[dataIndex]) + barOffset,
110
- xOrigin: xScale(0),
111
- yOrigin: yScale(0),
112
- height: verticalLayout ? maxValueCoord - minValueCoord : barWidth,
113
- width: verticalLayout ? barWidth : maxValueCoord - minValueCoord,
114
- color: color,
115
- highlightScope: series[seriesId].highlightScope
116
- };
117
- });
118
- });
119
- });
120
- return data;
121
- };
122
- var getOutStyle = function getOutStyle(_ref3) {
123
- var layout = _ref3.layout,
124
- yOrigin = _ref3.yOrigin,
125
- x = _ref3.x,
126
- width = _ref3.width,
127
- y = _ref3.y,
128
- xOrigin = _ref3.xOrigin,
129
- height = _ref3.height;
130
- return _extends({}, layout === 'vertical' ? {
131
- y: yOrigin,
132
- x: x,
133
- height: 0,
134
- width: width
135
- } : {
136
- y: y,
137
- x: xOrigin,
138
- height: height,
139
- width: 0
140
- });
141
- };
142
- var getInStyle = function getInStyle(_ref4) {
143
- var x = _ref4.x,
144
- width = _ref4.width,
145
- y = _ref4.y,
146
- height = _ref4.height;
147
- return {
148
- y: y,
149
- x: x,
150
- height: height,
151
- width: width
152
- };
153
- };
154
-
155
- /**
156
- * Demos:
157
- *
158
- * - [Bars](https://mui.com/x/react-charts/bars/)
159
- * - [Bar demonstration](https://mui.com/x/react-charts/bar-demo/)
160
- * - [Stacking](https://mui.com/x/react-charts/stacking/)
161
- *
162
- * API:
163
- *
164
- * - [BarPlot API](https://mui.com/x/api/charts/bar-plot/)
165
- */
166
- function BarPlot(props) {
167
- var completedData = useAggregatedData();
168
- var skipAnimation = props.skipAnimation,
169
- onItemClick = props.onItemClick,
170
- other = _objectWithoutProperties(props, _excluded);
171
- var transition = useTransition(completedData, {
172
- keys: function keys(bar) {
173
- return "".concat(bar.seriesId, "-").concat(bar.dataIndex);
174
- },
175
- from: getOutStyle,
176
- leave: getOutStyle,
177
- enter: getInStyle,
178
- update: getInStyle,
179
- immediate: skipAnimation
180
- });
181
- return /*#__PURE__*/_jsx(React.Fragment, {
182
- children: transition(function (style, _ref5) {
183
- var seriesId = _ref5.seriesId,
184
- dataIndex = _ref5.dataIndex,
185
- color = _ref5.color,
186
- highlightScope = _ref5.highlightScope;
187
- return /*#__PURE__*/_jsx(BarElement, _extends({
188
- id: seriesId,
189
- dataIndex: dataIndex,
190
- highlightScope: highlightScope,
191
- color: color
192
- }, other, {
193
- onClick: onItemClick && function (event) {
194
- onItemClick(event, {
195
- type: 'bar',
196
- seriesId: seriesId,
197
- dataIndex: dataIndex
198
- });
199
- },
200
- style: style
201
- }));
202
- })
203
- });
204
- }
205
- process.env.NODE_ENV !== "production" ? BarPlot.propTypes = {
206
- // ----------------------------- Warning --------------------------------
207
- // | These PropTypes are generated from the TypeScript type definitions |
208
- // | To update them edit the TypeScript types and run "yarn proptypes" |
209
- // ----------------------------------------------------------------------
210
- /**
211
- * Callback fired when a bar item is clicked.
212
- * @param {React.MouseEvent<SVGElement, MouseEvent>} event The event source of the callback.
213
- * @param {BarItemIdentifier} barItemIdentifier The bar item identifier.
214
- */
215
- onItemClick: PropTypes.func,
216
- /**
217
- * If `true`, animations are skipped.
218
- * @default false
219
- */
220
- skipAnimation: PropTypes.bool,
221
- /**
222
- * The props used for each component slot.
223
- * @default {}
224
- */
225
- slotProps: PropTypes.object,
226
- /**
227
- * Overridable component slots.
228
- * @default {}
229
- */
230
- slots: PropTypes.object
231
- } : void 0;
232
- export { BarPlot };
@@ -1,45 +0,0 @@
1
- import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
- import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
3
- var getBaseExtremum = function getBaseExtremum(params) {
4
- var _axis$data, _axis$data2;
5
- var axis = params.axis;
6
- var minX = Math.min.apply(Math, _toConsumableArray((_axis$data = axis.data) != null ? _axis$data : []));
7
- var maxX = Math.max.apply(Math, _toConsumableArray((_axis$data2 = axis.data) != null ? _axis$data2 : []));
8
- return [minX, maxX];
9
- };
10
- var getValueExtremum = function getValueExtremum(params) {
11
- var series = params.series,
12
- axis = params.axis,
13
- isDefaultAxis = params.isDefaultAxis;
14
- return Object.keys(series).filter(function (seriesId) {
15
- return series[seriesId].yAxisKey === axis.id || isDefaultAxis && series[seriesId].yAxisKey === undefined;
16
- }).reduce(function (acc, seriesId) {
17
- var _series$seriesId$stac = series[seriesId].stackedData.reduce(function (seriesAcc, values) {
18
- return [Math.min.apply(Math, _toConsumableArray(values).concat(_toConsumableArray(seriesAcc[0] === null ? [] : [seriesAcc[0]]))), Math.max.apply(Math, _toConsumableArray(values).concat(_toConsumableArray(seriesAcc[1] === null ? [] : [seriesAcc[1]])))];
19
- }, series[seriesId].stackedData[0]),
20
- _series$seriesId$stac2 = _slicedToArray(_series$seriesId$stac, 2),
21
- seriesMin = _series$seriesId$stac2[0],
22
- seriesMax = _series$seriesId$stac2[1];
23
- return [acc[0] === null ? seriesMin : Math.min(seriesMin, acc[0]), acc[1] === null ? seriesMax : Math.max(seriesMax, acc[1])];
24
- }, [null, null]);
25
- };
26
- export var getExtremumX = function getExtremumX(params) {
27
- // Notice that bar should be all horizontal or all vertical.
28
- // Don't think it's a problem for now
29
- var isHorizontal = Object.keys(params.series).some(function (seriesId) {
30
- return params.series[seriesId].layout === 'horizontal';
31
- });
32
- if (isHorizontal) {
33
- return getValueExtremum(params);
34
- }
35
- return getBaseExtremum(params);
36
- };
37
- export var getExtremumY = function getExtremumY(params) {
38
- var isHorizontal = Object.keys(params.series).some(function (seriesId) {
39
- return params.series[seriesId].layout === 'horizontal';
40
- });
41
- if (isHorizontal) {
42
- return getBaseExtremum(params);
43
- }
44
- return getValueExtremum(params);
45
- };
@@ -1,78 +0,0 @@
1
- import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
- import _extends from "@babel/runtime/helpers/esm/extends";
3
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
- import { stack as d3Stack } from 'd3-shape';
5
- import { getStackingGroups } from '../internals/stackSeries';
6
- import defaultizeValueFormatter from '../internals/defaultizeValueFormatter';
7
- var warnOnce = false;
8
- var formatter = function formatter(params, dataset) {
9
- var _ref;
10
- var seriesOrder = params.seriesOrder,
11
- series = params.series;
12
- var stackingGroups = getStackingGroups(params);
13
-
14
- // Create a data set with format adapted to d3
15
- var d3Dataset = (_ref = dataset) != null ? _ref : [];
16
- seriesOrder.forEach(function (id) {
17
- var data = series[id].data;
18
- if (data !== undefined) {
19
- data.forEach(function (value, index) {
20
- if (d3Dataset.length <= index) {
21
- d3Dataset.push(_defineProperty({}, id, value));
22
- } else {
23
- d3Dataset[index][id] = value;
24
- }
25
- });
26
- } else if (dataset === undefined) {
27
- throw new Error(["MUI X Charts: bar series with id='".concat(id, "' has no data."), 'Either provide a data property to the series or use the dataset prop.'].join('\n'));
28
- }
29
- });
30
- var completedSeries = {};
31
- stackingGroups.forEach(function (stackingGroup) {
32
- var ids = stackingGroup.ids,
33
- stackingOffset = stackingGroup.stackingOffset,
34
- stackingOrder = stackingGroup.stackingOrder;
35
- // Get stacked values, and derive the domain
36
- var stackedSeries = d3Stack().keys(ids.map(function (id) {
37
- // Use dataKey if needed and available
38
- var dataKey = series[id].dataKey;
39
- return series[id].data === undefined && dataKey !== undefined ? dataKey : id;
40
- })).value(function (d, key) {
41
- var _d$key;
42
- return (_d$key = d[key]) != null ? _d$key : 0;
43
- }) // defaultize null value to 0
44
- .order(stackingOrder).offset(stackingOffset)(d3Dataset);
45
- ids.forEach(function (id, index) {
46
- var dataKey = series[id].dataKey;
47
- completedSeries[id] = _extends({
48
- layout: 'vertical'
49
- }, series[id], {
50
- data: dataKey ? dataset.map(function (data) {
51
- var value = data[dataKey];
52
- if (typeof value !== 'number') {
53
- if (process.env.NODE_ENV !== 'production' && !warnOnce && value !== null) {
54
- warnOnce = true;
55
- console.error(["MUI-X charts: your dataset key \"".concat(dataKey, "\" is used for plotting bars, but contains nonnumerical elements."), 'Bar plots only support numbers and null values.']);
56
- }
57
- return 0;
58
- }
59
- return value;
60
- }) : series[id].data,
61
- stackedData: stackedSeries[index].map(function (_ref2) {
62
- var _ref3 = _slicedToArray(_ref2, 2),
63
- a = _ref3[0],
64
- b = _ref3[1];
65
- return [a, b];
66
- })
67
- });
68
- });
69
- });
70
- return {
71
- seriesOrder: seriesOrder,
72
- stackingGroups: stackingGroups,
73
- series: defaultizeValueFormatter(completedSeries, function (v) {
74
- return v == null ? '' : v.toLocaleString();
75
- })
76
- };
77
- };
78
- export default formatter;
@@ -1,3 +0,0 @@
1
- export * from './BarChart';
2
- export * from './BarPlot';
3
- export * from './BarElement';
@@ -1,15 +0,0 @@
1
- var legendGetter = function legendGetter(params) {
2
- var seriesOrder = params.seriesOrder,
3
- series = params.series;
4
- var data = seriesOrder.map(function (seriesId) {
5
- return {
6
- color: series[seriesId].color,
7
- label: series[seriesId].label,
8
- id: seriesId
9
- };
10
- });
11
- return data.filter(function (item) {
12
- return item.label !== undefined;
13
- });
14
- };
15
- export default legendGetter;
@@ -1,189 +0,0 @@
1
- import * as React from 'react';
2
- import PropTypes from 'prop-types';
3
- import useForkRef from '@mui/utils/useForkRef';
4
- import { DrawingProvider } from '../context/DrawingProvider';
5
- import { SeriesContextProvider } from '../context/SeriesContextProvider';
6
- import { InteractionProvider } from '../context/InteractionProvider';
7
- import { useReducedMotion } from '../hooks/useReducedMotion';
8
- import { ChartsSurface } from '../ChartsSurface';
9
- import { CartesianContextProvider } from '../context/CartesianContextProvider';
10
- import { HighlightProvider } from '../context/HighlightProvider';
11
- import { jsx as _jsx } from "react/jsx-runtime";
12
- var ChartContainer = /*#__PURE__*/React.forwardRef(function ChartContainer(props, ref) {
13
- var width = props.width,
14
- height = props.height,
15
- series = props.series,
16
- margin = props.margin,
17
- xAxis = props.xAxis,
18
- yAxis = props.yAxis,
19
- colors = props.colors,
20
- dataset = props.dataset,
21
- sx = props.sx,
22
- title = props.title,
23
- desc = props.desc,
24
- disableAxisListener = props.disableAxisListener,
25
- children = props.children;
26
- var svgRef = React.useRef(null);
27
- var handleRef = useForkRef(ref, svgRef);
28
- useReducedMotion(); // a11y reduce motion (see: https://react-spring.dev/docs/utilities/use-reduced-motion)
29
-
30
- return /*#__PURE__*/_jsx(DrawingProvider, {
31
- width: width,
32
- height: height,
33
- margin: margin,
34
- svgRef: svgRef,
35
- children: /*#__PURE__*/_jsx(SeriesContextProvider, {
36
- series: series,
37
- colors: colors,
38
- dataset: dataset,
39
- children: /*#__PURE__*/_jsx(CartesianContextProvider, {
40
- xAxis: xAxis,
41
- yAxis: yAxis,
42
- dataset: dataset,
43
- children: /*#__PURE__*/_jsx(InteractionProvider, {
44
- children: /*#__PURE__*/_jsx(HighlightProvider, {
45
- children: /*#__PURE__*/_jsx(ChartsSurface, {
46
- width: width,
47
- height: height,
48
- ref: handleRef,
49
- sx: sx,
50
- title: title,
51
- desc: desc,
52
- disableAxisListener: disableAxisListener,
53
- children: children
54
- })
55
- })
56
- })
57
- })
58
- })
59
- });
60
- });
61
- process.env.NODE_ENV !== "production" ? ChartContainer.propTypes = {
62
- // ----------------------------- Warning --------------------------------
63
- // | These PropTypes are generated from the TypeScript type definitions |
64
- // | To update them edit the TypeScript types and run "yarn proptypes" |
65
- // ----------------------------------------------------------------------
66
- children: PropTypes.node,
67
- className: PropTypes.string,
68
- /**
69
- * Color palette used to colorize multiple series.
70
- * @default blueberryTwilightPalette
71
- */
72
- colors: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.func]),
73
- /**
74
- * An array of objects that can be used to populate series and axes data using their `dataKey` property.
75
- */
76
- dataset: PropTypes.arrayOf(PropTypes.object),
77
- desc: PropTypes.string,
78
- /**
79
- * If `true`, the charts will not listen to the mouse move event.
80
- * It might break interactive features, but will improve performance.
81
- * @default false
82
- */
83
- disableAxisListener: PropTypes.bool,
84
- /**
85
- * The height of the chart in px.
86
- */
87
- height: PropTypes.number.isRequired,
88
- /**
89
- * The margin between the SVG and the drawing area.
90
- * It's used for leaving some space for extra information such as the x- and y-axis or legend.
91
- * Accepts an object with the optional properties: `top`, `bottom`, `left`, and `right`.
92
- * @default object Depends on the charts type.
93
- */
94
- margin: PropTypes.shape({
95
- bottom: PropTypes.number,
96
- left: PropTypes.number,
97
- right: PropTypes.number,
98
- top: PropTypes.number
99
- }),
100
- /**
101
- * The array of series to display.
102
- * Each type of series has its own specificity.
103
- * Please refer to the appropriate docs page to learn more about it.
104
- */
105
- series: PropTypes.arrayOf(PropTypes.object).isRequired,
106
- sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
107
- title: PropTypes.string,
108
- viewBox: PropTypes.shape({
109
- height: PropTypes.number,
110
- width: PropTypes.number,
111
- x: PropTypes.number,
112
- y: PropTypes.number
113
- }),
114
- /**
115
- * The width of the chart in px.
116
- */
117
- width: PropTypes.number.isRequired,
118
- /**
119
- * The configuration of the x-axes.
120
- * If not provided, a default axis config is used with id set to `DEFAULT_X_AXIS_KEY`.
121
- */
122
- xAxis: PropTypes.arrayOf(PropTypes.shape({
123
- axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
124
- classes: PropTypes.object,
125
- data: PropTypes.array,
126
- dataKey: PropTypes.string,
127
- disableLine: PropTypes.bool,
128
- disableTicks: PropTypes.bool,
129
- fill: PropTypes.string,
130
- hideTooltip: PropTypes.bool,
131
- id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
132
- label: PropTypes.string,
133
- labelFontSize: PropTypes.number,
134
- labelStyle: PropTypes.object,
135
- max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
136
- min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
137
- position: PropTypes.oneOf(['bottom', 'left', 'right', 'top']),
138
- reverse: PropTypes.bool,
139
- scaleType: PropTypes.oneOf(['band', 'linear', 'log', 'point', 'pow', 'sqrt', 'time', 'utc']),
140
- slotProps: PropTypes.object,
141
- slots: PropTypes.object,
142
- stroke: PropTypes.string,
143
- tickFontSize: PropTypes.number,
144
- tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
145
- tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
146
- tickLabelStyle: PropTypes.object,
147
- tickMaxStep: PropTypes.number,
148
- tickMinStep: PropTypes.number,
149
- tickNumber: PropTypes.number,
150
- tickSize: PropTypes.number,
151
- valueFormatter: PropTypes.func
152
- })),
153
- /**
154
- * The configuration of the y-axes.
155
- * If not provided, a default axis config is used with id set to `DEFAULT_Y_AXIS_KEY`.
156
- */
157
- yAxis: PropTypes.arrayOf(PropTypes.shape({
158
- axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
159
- classes: PropTypes.object,
160
- data: PropTypes.array,
161
- dataKey: PropTypes.string,
162
- disableLine: PropTypes.bool,
163
- disableTicks: PropTypes.bool,
164
- fill: PropTypes.string,
165
- hideTooltip: PropTypes.bool,
166
- id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
167
- label: PropTypes.string,
168
- labelFontSize: PropTypes.number,
169
- labelStyle: PropTypes.object,
170
- max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
171
- min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
172
- position: PropTypes.oneOf(['bottom', 'left', 'right', 'top']),
173
- reverse: PropTypes.bool,
174
- scaleType: PropTypes.oneOf(['band', 'linear', 'log', 'point', 'pow', 'sqrt', 'time', 'utc']),
175
- slotProps: PropTypes.object,
176
- slots: PropTypes.object,
177
- stroke: PropTypes.string,
178
- tickFontSize: PropTypes.number,
179
- tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
180
- tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
181
- tickLabelStyle: PropTypes.object,
182
- tickMaxStep: PropTypes.number,
183
- tickMinStep: PropTypes.number,
184
- tickNumber: PropTypes.number,
185
- tickSize: PropTypes.number,
186
- valueFormatter: PropTypes.func
187
- }))
188
- } : void 0;
189
- export { ChartContainer };
@@ -1 +0,0 @@
1
- export * from './ChartContainer';