@mui/x-charts 6.0.0-alpha.1 → 6.0.0-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BarChart/BarChart.d.ts +1 -4
- package/BarChart/BarChart.js +6 -3
- package/BarChart/BarPlot.js +42 -8
- package/BarChart/legend.d.ts +3 -0
- package/BarChart/legend.js +20 -0
- package/CHANGELOG.md +287 -107
- package/ChartContainer/index.d.ts +3 -1
- package/ChartContainer/index.js +10 -6
- package/ChartsAxisHighlight/ChartsAxisHighlight.js +3 -2
- package/ChartsLegend/ChartsLegend.d.ts +5 -1
- package/ChartsLegend/ChartsLegend.js +5 -1
- package/ChartsLegend/utils.d.ts +1 -1
- package/ChartsLegend/utils.js +12 -1
- package/ChartsTooltip/ChartsAxisTooltipContent.js +1 -1
- package/ChartsTooltip/ChartsItemTooltipContent.js +11 -2
- package/LineChart/LineChart.d.ts +1 -4
- package/LineChart/LineChart.js +6 -3
- package/LineChart/legend.d.ts +3 -0
- package/LineChart/legend.js +20 -0
- package/PieChart/PieArc.d.ts +36 -0
- package/PieChart/PieArc.js +128 -0
- package/PieChart/PieArcLabel.d.ts +36 -0
- package/PieChart/PieArcLabel.js +113 -0
- package/PieChart/PieChart.d.ts +20 -0
- package/PieChart/PieChart.js +292 -0
- package/PieChart/PiePlot.d.ts +2 -0
- package/PieChart/PiePlot.js +98 -0
- package/PieChart/formatter.d.ts +3 -0
- package/PieChart/formatter.js +49 -0
- package/PieChart/index.d.ts +4 -0
- package/PieChart/index.js +47 -0
- package/PieChart/legend.d.ts +3 -0
- package/PieChart/legend.js +19 -0
- package/PieChart/package.json +6 -0
- package/README.md +2 -2
- package/ResponsiveChartContainer/index.d.ts +1 -1
- package/ResponsiveChartContainer/index.js +22 -9
- package/ScatterChart/Scatter.d.ts +1 -1
- package/ScatterChart/Scatter.js +1 -1
- package/ScatterChart/ScatterChart.d.ts +1 -4
- package/ScatterChart/ScatterChart.js +6 -3
- package/ScatterChart/legend.d.ts +3 -0
- package/ScatterChart/legend.js +20 -0
- package/context/CartesianContextProvider.js +31 -20
- package/context/SeriesContextProvider.js +11 -1
- package/esm/BarChart/BarChart.js +4 -2
- package/esm/BarChart/BarPlot.js +44 -8
- package/esm/BarChart/legend.js +13 -0
- package/esm/ChartContainer/index.js +7 -5
- package/esm/ChartsAxisHighlight/ChartsAxisHighlight.js +3 -2
- package/esm/ChartsLegend/ChartsLegend.js +5 -1
- package/esm/ChartsLegend/utils.js +11 -1
- package/esm/ChartsTooltip/ChartsAxisTooltipContent.js +1 -1
- package/esm/ChartsTooltip/ChartsItemTooltipContent.js +11 -3
- package/esm/LineChart/LineChart.js +4 -2
- package/esm/LineChart/legend.js +13 -0
- package/esm/PieChart/PieArc.js +117 -0
- package/esm/PieChart/PieArcLabel.js +101 -0
- package/esm/PieChart/PieChart.js +285 -0
- package/esm/PieChart/PiePlot.js +92 -0
- package/esm/PieChart/formatter.js +48 -0
- package/esm/PieChart/index.js +4 -0
- package/esm/PieChart/legend.js +12 -0
- package/esm/ResponsiveChartContainer/index.js +20 -8
- package/esm/ScatterChart/Scatter.js +1 -1
- package/esm/ScatterChart/ScatterChart.js +4 -2
- package/esm/ScatterChart/legend.js +13 -0
- package/esm/context/CartesianContextProvider.js +31 -18
- package/esm/context/SeriesContextProvider.js +11 -1
- package/esm/hooks/index.js +2 -0
- package/esm/hooks/useAxisEvents.js +12 -7
- package/esm/hooks/useDrawingArea.js +16 -0
- package/esm/hooks/useScale.js +19 -21
- package/esm/hooks/useTicks.js +26 -13
- package/esm/index.js +2 -0
- package/esm/internals/defaultizeColor.js +7 -0
- package/esm/internals/getScale.js +17 -0
- package/esm/internals/isBandScale.js +3 -0
- package/esm/models/axis.js +6 -1
- package/esm/models/seriesType/index.js +1 -8
- package/hooks/index.d.ts +2 -0
- package/hooks/index.js +27 -0
- package/hooks/package.json +6 -0
- package/hooks/useAxisEvents.js +14 -9
- package/hooks/useDrawingArea.d.ts +6 -0
- package/hooks/useDrawingArea.js +24 -0
- package/hooks/useScale.d.ts +3 -6
- package/hooks/useScale.js +24 -24
- package/hooks/useTicks.d.ts +1 -1
- package/hooks/useTicks.js +19 -9
- package/index.d.ts +2 -0
- package/index.js +23 -1
- package/internals/defaultizeColor.d.ts +35 -0
- package/internals/defaultizeColor.js +7 -0
- package/internals/getScale.d.ts +2 -0
- package/internals/getScale.js +23 -0
- package/internals/isBandScale.d.ts +3 -0
- package/internals/isBandScale.js +9 -0
- package/legacy/BarChart/BarChart.js +4 -2
- package/legacy/BarChart/BarPlot.js +44 -10
- package/legacy/BarChart/legend.js +15 -0
- package/legacy/ChartContainer/index.js +7 -5
- package/legacy/ChartsAxisHighlight/ChartsAxisHighlight.js +3 -2
- package/legacy/ChartsLegend/ChartsLegend.js +5 -1
- package/legacy/ChartsLegend/utils.js +12 -6
- package/legacy/ChartsTooltip/ChartsAxisTooltipContent.js +3 -1
- package/legacy/ChartsTooltip/ChartsItemTooltipContent.js +10 -3
- package/legacy/LineChart/LineChart.js +4 -2
- package/legacy/LineChart/legend.js +15 -0
- package/legacy/PieChart/PieArc.js +118 -0
- package/legacy/PieChart/PieArcLabel.js +101 -0
- package/legacy/PieChart/PieChart.js +297 -0
- package/legacy/PieChart/PiePlot.js +89 -0
- package/legacy/PieChart/formatter.js +55 -0
- package/legacy/PieChart/index.js +4 -0
- package/legacy/PieChart/legend.js +16 -0
- package/legacy/ResponsiveChartContainer/index.js +18 -8
- package/legacy/ScatterChart/Scatter.js +1 -1
- package/legacy/ScatterChart/ScatterChart.js +4 -2
- package/legacy/ScatterChart/legend.js +15 -0
- package/legacy/context/CartesianContextProvider.js +31 -18
- package/legacy/context/SeriesContextProvider.js +11 -1
- package/legacy/hooks/index.js +2 -0
- package/legacy/hooks/useAxisEvents.js +12 -7
- package/legacy/hooks/useDrawingArea.js +17 -0
- package/legacy/hooks/useScale.js +17 -21
- package/legacy/hooks/useTicks.js +26 -13
- package/legacy/index.js +3 -1
- package/legacy/internals/defaultizeColor.js +9 -0
- package/legacy/internals/getScale.js +17 -0
- package/legacy/internals/isBandScale.js +3 -0
- package/legacy/models/axis.js +6 -1
- package/legacy/models/seriesType/index.js +1 -8
- package/models/axis.d.ts +25 -12
- package/models/axis.js +9 -1
- package/models/seriesType/bar.d.ts +1 -1
- package/models/seriesType/common.d.ts +1 -1
- package/models/seriesType/config.d.ts +29 -2
- package/models/seriesType/index.d.ts +7 -3
- package/models/seriesType/index.js +11 -0
- package/models/seriesType/line.d.ts +1 -1
- package/models/seriesType/pie.d.ts +103 -3
- package/models/seriesType/scatter.d.ts +1 -1
- package/modern/BarChart/BarChart.js +4 -2
- package/modern/BarChart/BarPlot.js +44 -8
- package/modern/BarChart/legend.js +13 -0
- package/modern/ChartContainer/index.js +7 -5
- package/modern/ChartsAxisHighlight/ChartsAxisHighlight.js +3 -2
- package/modern/ChartsLegend/ChartsLegend.js +5 -1
- package/modern/ChartsLegend/utils.js +11 -1
- package/modern/ChartsTooltip/ChartsAxisTooltipContent.js +1 -1
- package/modern/ChartsTooltip/ChartsItemTooltipContent.js +11 -2
- package/modern/LineChart/LineChart.js +4 -2
- package/modern/LineChart/legend.js +13 -0
- package/modern/PieChart/PieArc.js +116 -0
- package/modern/PieChart/PieArcLabel.js +101 -0
- package/modern/PieChart/PieChart.js +285 -0
- package/modern/PieChart/PiePlot.js +91 -0
- package/modern/PieChart/formatter.js +41 -0
- package/modern/PieChart/index.js +4 -0
- package/modern/PieChart/legend.js +12 -0
- package/modern/ResponsiveChartContainer/index.js +20 -8
- package/modern/ScatterChart/Scatter.js +1 -1
- package/modern/ScatterChart/ScatterChart.js +4 -2
- package/modern/ScatterChart/legend.js +13 -0
- package/modern/context/CartesianContextProvider.js +29 -18
- package/modern/context/SeriesContextProvider.js +11 -1
- package/modern/hooks/index.js +2 -0
- package/modern/hooks/useAxisEvents.js +12 -7
- package/modern/hooks/useDrawingArea.js +16 -0
- package/modern/hooks/useScale.js +19 -21
- package/modern/hooks/useTicks.js +18 -8
- package/modern/index.js +3 -1
- package/modern/internals/defaultizeColor.js +7 -0
- package/modern/internals/getScale.js +17 -0
- package/modern/internals/isBandScale.js +3 -0
- package/modern/models/axis.js +6 -1
- package/modern/models/seriesType/index.js +1 -8
- package/package.json +1 -1
package/BarChart/BarChart.d.ts
CHANGED
|
@@ -12,8 +12,5 @@ export interface BarChartProps extends Omit<ResponsiveChartContainerProps, 'seri
|
|
|
12
12
|
axisHighlight?: ChartsAxisHighlightProps;
|
|
13
13
|
legend?: ChartsLegendProps;
|
|
14
14
|
}
|
|
15
|
-
declare
|
|
16
|
-
declare namespace BarChart {
|
|
17
|
-
var propTypes: any;
|
|
18
|
-
}
|
|
15
|
+
declare const BarChart: React.ForwardRefExoticComponent<BarChartProps & React.RefAttributes<unknown>>;
|
|
19
16
|
export { BarChart };
|
package/BarChart/BarChart.js
CHANGED
|
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.BarChart =
|
|
7
|
+
exports.BarChart = void 0;
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var React = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _useId = _interopRequireDefault(require("@mui/utils/useId"));
|
|
@@ -20,7 +20,7 @@ var _ChartsClipPath = require("../ChartsClipPath");
|
|
|
20
20
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
21
21
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
22
22
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
23
|
-
function BarChart(props) {
|
|
23
|
+
const BarChart = /*#__PURE__*/React.forwardRef(function BarChart(props, ref) {
|
|
24
24
|
const {
|
|
25
25
|
xAxis,
|
|
26
26
|
yAxis,
|
|
@@ -42,6 +42,7 @@ function BarChart(props) {
|
|
|
42
42
|
const id = (0, _useId.default)();
|
|
43
43
|
const clipPathId = `${id}-clip-path`;
|
|
44
44
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_ResponsiveChartContainer.ResponsiveChartContainer, {
|
|
45
|
+
ref: ref,
|
|
45
46
|
series: series.map(s => (0, _extends2.default)({
|
|
46
47
|
type: 'bar'
|
|
47
48
|
}, s)),
|
|
@@ -73,7 +74,8 @@ function BarChart(props) {
|
|
|
73
74
|
id: clipPathId
|
|
74
75
|
}), children]
|
|
75
76
|
});
|
|
76
|
-
}
|
|
77
|
+
});
|
|
78
|
+
exports.BarChart = BarChart;
|
|
77
79
|
process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
|
|
78
80
|
// ----------------------------- Warning --------------------------------
|
|
79
81
|
// | These PropTypes are generated from the TypeScript type definitions |
|
|
@@ -131,6 +133,7 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
|
|
|
131
133
|
legend: _propTypes.default.shape({
|
|
132
134
|
classes: _propTypes.default.object,
|
|
133
135
|
direction: _propTypes.default.oneOf(['column', 'row']),
|
|
136
|
+
hidden: _propTypes.default.bool,
|
|
134
137
|
itemWidth: _propTypes.default.number,
|
|
135
138
|
markSize: _propTypes.default.number,
|
|
136
139
|
offset: _propTypes.default.shape({
|
package/BarChart/BarPlot.js
CHANGED
|
@@ -7,11 +7,37 @@ exports.BarPlot = BarPlot;
|
|
|
7
7
|
var React = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _SeriesContextProvider = require("../context/SeriesContextProvider");
|
|
9
9
|
var _CartesianContextProvider = require("../context/CartesianContextProvider");
|
|
10
|
-
var _useScale = require("../hooks/useScale");
|
|
11
10
|
var _BarElement = require("./BarElement");
|
|
11
|
+
var _axis = require("../models/axis");
|
|
12
12
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
13
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
14
14
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
15
|
+
/**
|
|
16
|
+
* Solution of the equations
|
|
17
|
+
* W = barWidth * N + offset * (N-1)
|
|
18
|
+
* offset / (offset + barWidth) = r
|
|
19
|
+
* @param bandWidth The width available to place bars.
|
|
20
|
+
* @param numberOfGroups The number of bars to place in that space.
|
|
21
|
+
* @param gapRatio The ratio of the gap between bars over the bar width.
|
|
22
|
+
* @returns The bar width and the offset between bars.
|
|
23
|
+
*/function getBandSize({
|
|
24
|
+
bandWidth: W,
|
|
25
|
+
numberOfGroups: N,
|
|
26
|
+
gapRatio: r
|
|
27
|
+
}) {
|
|
28
|
+
if (r === 0) {
|
|
29
|
+
return {
|
|
30
|
+
barWidth: W / N,
|
|
31
|
+
offset: 0
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
const barWidth = W / (N + (N - 1) * r);
|
|
35
|
+
const offset = r * barWidth;
|
|
36
|
+
return {
|
|
37
|
+
barWidth,
|
|
38
|
+
offset
|
|
39
|
+
};
|
|
40
|
+
}
|
|
15
41
|
function BarPlot() {
|
|
16
42
|
const seriesData = React.useContext(_SeriesContextProvider.SeriesContext).bar;
|
|
17
43
|
const axisData = React.useContext(_CartesianContextProvider.CartesianContext);
|
|
@@ -37,19 +63,27 @@ function BarPlot() {
|
|
|
37
63
|
return groupIds.flatMap(seriesId => {
|
|
38
64
|
const xAxisKey = series[seriesId].xAxisKey ?? defaultXAxisId;
|
|
39
65
|
const yAxisKey = series[seriesId].yAxisKey ?? defaultYAxisId;
|
|
40
|
-
const
|
|
41
|
-
const
|
|
42
|
-
if (!(0,
|
|
43
|
-
throw new Error(`Axis with id "${xAxisKey}" shoud be of type "band" to display the bar series ${
|
|
66
|
+
const xAxisConfig = xAxis[xAxisKey];
|
|
67
|
+
const yAxisConfig = yAxis[yAxisKey];
|
|
68
|
+
if (!(0, _axis.isBandScaleConfig)(xAxisConfig)) {
|
|
69
|
+
throw new Error(`Axis with id "${xAxisKey}" shoud be of type "band" to display the bar series of id "${seriesId}"`);
|
|
44
70
|
}
|
|
45
71
|
if (xAxis[xAxisKey].data === undefined) {
|
|
46
72
|
throw new Error(`Axis with id "${xAxisKey}" shoud have data property`);
|
|
47
73
|
}
|
|
74
|
+
const xScale = xAxisConfig.scale;
|
|
75
|
+
const yScale = yAxisConfig.scale;
|
|
48
76
|
|
|
49
77
|
// Currently assuming all bars are vertical
|
|
50
78
|
const bandWidth = xScale.bandwidth();
|
|
51
|
-
const
|
|
52
|
-
|
|
79
|
+
const {
|
|
80
|
+
barWidth,
|
|
81
|
+
offset
|
|
82
|
+
} = getBandSize({
|
|
83
|
+
bandWidth,
|
|
84
|
+
numberOfGroups: stackingGroups.length,
|
|
85
|
+
gapRatio: xAxisConfig.barGapRatio
|
|
86
|
+
});
|
|
53
87
|
|
|
54
88
|
// @ts-ignore TODO: fix when adding a correct API for customisation
|
|
55
89
|
const {
|
|
@@ -62,7 +96,7 @@ function BarPlot() {
|
|
|
62
96
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_BarElement.BarElement, {
|
|
63
97
|
id: seriesId,
|
|
64
98
|
dataIndex: dataIndex,
|
|
65
|
-
x: xScale(xAxis[xAxisKey].data?.[dataIndex]) + groupIndex * barWidth + offset,
|
|
99
|
+
x: xScale(xAxis[xAxisKey].data?.[dataIndex]) + groupIndex * (barWidth + offset),
|
|
66
100
|
y: yScale(value),
|
|
67
101
|
height: yScale(baseline) - yScale(value),
|
|
68
102
|
width: barWidth,
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
const legendGetter = params => {
|
|
8
|
+
const {
|
|
9
|
+
seriesOrder,
|
|
10
|
+
series
|
|
11
|
+
} = params;
|
|
12
|
+
const data = seriesOrder.map(seriesId => ({
|
|
13
|
+
color: series[seriesId].color,
|
|
14
|
+
label: series[seriesId].label,
|
|
15
|
+
id: seriesId
|
|
16
|
+
}));
|
|
17
|
+
return data.filter(item => item.label !== undefined);
|
|
18
|
+
};
|
|
19
|
+
var _default = legendGetter;
|
|
20
|
+
exports.default = _default;
|