@mui/x-charts 6.0.0-alpha.1 → 6.0.0-alpha.2
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.js +1 -0
- package/BarChart/legend.d.ts +3 -0
- package/BarChart/legend.js +20 -0
- package/CHANGELOG.md +62 -0
- 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.js +1 -0
- 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.js +14 -3
- package/ScatterChart/Scatter.js +1 -1
- package/ScatterChart/ScatterChart.js +1 -0
- package/ScatterChart/legend.d.ts +3 -0
- package/ScatterChart/legend.js +20 -0
- package/context/SeriesContextProvider.js +11 -1
- package/esm/BarChart/BarChart.js +1 -0
- package/esm/BarChart/legend.js +13 -0
- 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 +1 -0
- 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 +14 -3
- package/esm/ScatterChart/Scatter.js +1 -1
- package/esm/ScatterChart/ScatterChart.js +1 -0
- package/esm/ScatterChart/legend.js +13 -0
- package/esm/context/SeriesContextProvider.js +11 -1
- package/esm/index.js +1 -0
- package/esm/internals/defaultizeColor.js +7 -0
- package/esm/models/seriesType/index.js +1 -8
- package/index.d.ts +1 -0
- package/index.js +12 -1
- package/internals/defaultizeColor.d.ts +35 -0
- package/internals/defaultizeColor.js +7 -0
- package/legacy/BarChart/BarChart.js +1 -0
- package/legacy/BarChart/legend.js +15 -0
- 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 +1 -0
- 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 +12 -3
- package/legacy/ScatterChart/Scatter.js +1 -1
- package/legacy/ScatterChart/ScatterChart.js +1 -0
- package/legacy/ScatterChart/legend.js +15 -0
- package/legacy/context/SeriesContextProvider.js +11 -1
- package/legacy/index.js +2 -1
- package/legacy/internals/defaultizeColor.js +9 -0
- package/legacy/models/seriesType/index.js +1 -8
- 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 +1 -0
- package/modern/BarChart/legend.js +13 -0
- 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 +1 -0
- 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 +14 -3
- package/modern/ScatterChart/Scatter.js +1 -1
- package/modern/ScatterChart/ScatterChart.js +1 -0
- package/modern/ScatterChart/legend.js +13 -0
- package/modern/context/SeriesContextProvider.js +11 -1
- package/modern/index.js +2 -1
- package/modern/internals/defaultizeColor.js +7 -0
- package/modern/models/seriesType/index.js +1 -8
- package/package.json +1 -1
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.PieChart = PieChart;
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
var React = _interopRequireWildcard(require("react"));
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
var _ResponsiveChartContainer = require("../ResponsiveChartContainer");
|
|
12
|
+
var _ChartsAxis = require("../ChartsAxis/ChartsAxis");
|
|
13
|
+
var _constants = require("../constants");
|
|
14
|
+
var _ChartsTooltip = require("../ChartsTooltip");
|
|
15
|
+
var _ChartsLegend = require("../ChartsLegend");
|
|
16
|
+
var _ChartsAxisHighlight = require("../ChartsAxisHighlight");
|
|
17
|
+
var _PiePlot = require("./PiePlot");
|
|
18
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
19
|
+
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); }
|
|
20
|
+
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; }
|
|
21
|
+
const defaultMargin = {
|
|
22
|
+
top: 5,
|
|
23
|
+
bottom: 5,
|
|
24
|
+
left: 5,
|
|
25
|
+
right: 100
|
|
26
|
+
};
|
|
27
|
+
function PieChart(props) {
|
|
28
|
+
const {
|
|
29
|
+
xAxis,
|
|
30
|
+
yAxis,
|
|
31
|
+
series,
|
|
32
|
+
width,
|
|
33
|
+
height,
|
|
34
|
+
margin: marginProps,
|
|
35
|
+
colors,
|
|
36
|
+
sx,
|
|
37
|
+
tooltip = {
|
|
38
|
+
trigger: 'item'
|
|
39
|
+
},
|
|
40
|
+
axisHighlight = {
|
|
41
|
+
x: 'none',
|
|
42
|
+
y: 'none'
|
|
43
|
+
},
|
|
44
|
+
legend = {
|
|
45
|
+
direction: 'column',
|
|
46
|
+
position: {
|
|
47
|
+
vertical: 'middle',
|
|
48
|
+
horizontal: 'right'
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
topAxis = null,
|
|
52
|
+
leftAxis = null,
|
|
53
|
+
rightAxis = null,
|
|
54
|
+
bottomAxis = null,
|
|
55
|
+
children
|
|
56
|
+
} = props;
|
|
57
|
+
const margin = (0, _extends2.default)({}, defaultMargin, marginProps);
|
|
58
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_ResponsiveChartContainer.ResponsiveChartContainer, {
|
|
59
|
+
series: series.map(s => (0, _extends2.default)({
|
|
60
|
+
type: 'pie'
|
|
61
|
+
}, s)),
|
|
62
|
+
width: width,
|
|
63
|
+
height: height,
|
|
64
|
+
margin: margin,
|
|
65
|
+
xAxis: xAxis ?? [{
|
|
66
|
+
id: _constants.DEFAULT_X_AXIS_KEY,
|
|
67
|
+
scaleType: 'point',
|
|
68
|
+
data: [...new Array(Math.max(...series.map(s => s.data.length)))].map((_, index) => index)
|
|
69
|
+
}],
|
|
70
|
+
yAxis: yAxis,
|
|
71
|
+
colors: colors,
|
|
72
|
+
sx: sx,
|
|
73
|
+
disableAxisListener: tooltip?.trigger !== 'axis' && axisHighlight?.x === 'none' && axisHighlight?.y === 'none',
|
|
74
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsAxis.ChartsAxis, {
|
|
75
|
+
topAxis: topAxis,
|
|
76
|
+
leftAxis: leftAxis,
|
|
77
|
+
rightAxis: rightAxis,
|
|
78
|
+
bottomAxis: bottomAxis
|
|
79
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PiePlot.PiePlot, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsLegend.ChartsLegend, (0, _extends2.default)({}, legend)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsAxisHighlight.ChartsAxisHighlight, (0, _extends2.default)({}, axisHighlight)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsTooltip.ChartsTooltip, (0, _extends2.default)({}, tooltip)), children]
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
|
|
83
|
+
// ----------------------------- Warning --------------------------------
|
|
84
|
+
// | These PropTypes are generated from the TypeScript type definitions |
|
|
85
|
+
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
86
|
+
// ----------------------------------------------------------------------
|
|
87
|
+
axisHighlight: _propTypes.default.shape({
|
|
88
|
+
x: _propTypes.default.oneOf(['band', 'line', 'none']),
|
|
89
|
+
y: _propTypes.default.oneOf(['line', 'none'])
|
|
90
|
+
}),
|
|
91
|
+
/**
|
|
92
|
+
* Indicate which axis to display the bottom of the charts.
|
|
93
|
+
* Can be a string (the id of the axis) or an object `ChartsXAxisProps`
|
|
94
|
+
* @default xAxisIds[0] The id of the first provided axis
|
|
95
|
+
*/
|
|
96
|
+
bottomAxis: _propTypes.default.oneOfType([_propTypes.default.shape({
|
|
97
|
+
axisId: _propTypes.default.string.isRequired,
|
|
98
|
+
classes: _propTypes.default.object,
|
|
99
|
+
disableLine: _propTypes.default.bool,
|
|
100
|
+
disableTicks: _propTypes.default.bool,
|
|
101
|
+
fill: _propTypes.default.string,
|
|
102
|
+
label: _propTypes.default.string,
|
|
103
|
+
labelFontSize: _propTypes.default.number,
|
|
104
|
+
position: _propTypes.default.oneOf(['bottom', 'top']),
|
|
105
|
+
stroke: _propTypes.default.string,
|
|
106
|
+
tickFontSize: _propTypes.default.number,
|
|
107
|
+
tickSize: _propTypes.default.number
|
|
108
|
+
}), _propTypes.default.string]),
|
|
109
|
+
children: _propTypes.default.node,
|
|
110
|
+
className: _propTypes.default.string,
|
|
111
|
+
/**
|
|
112
|
+
* Color palette used to colorize multiple series.
|
|
113
|
+
*/
|
|
114
|
+
colors: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.string), _propTypes.default.func]),
|
|
115
|
+
desc: _propTypes.default.string,
|
|
116
|
+
disableAxisListener: _propTypes.default.bool,
|
|
117
|
+
height: _propTypes.default.number,
|
|
118
|
+
/**
|
|
119
|
+
* Indicate which axis to display the left of the charts.
|
|
120
|
+
* Can be a string (the id of the axis) or an object `ChartsYAxisProps`
|
|
121
|
+
* @default yAxisIds[0] The id of the first provided axis
|
|
122
|
+
*/
|
|
123
|
+
leftAxis: _propTypes.default.oneOfType([_propTypes.default.shape({
|
|
124
|
+
axisId: _propTypes.default.string.isRequired,
|
|
125
|
+
classes: _propTypes.default.object,
|
|
126
|
+
disableLine: _propTypes.default.bool,
|
|
127
|
+
disableTicks: _propTypes.default.bool,
|
|
128
|
+
fill: _propTypes.default.string,
|
|
129
|
+
label: _propTypes.default.string,
|
|
130
|
+
labelFontSize: _propTypes.default.number,
|
|
131
|
+
position: _propTypes.default.oneOf(['left', 'right']),
|
|
132
|
+
stroke: _propTypes.default.string,
|
|
133
|
+
tickFontSize: _propTypes.default.number,
|
|
134
|
+
tickSize: _propTypes.default.number
|
|
135
|
+
}), _propTypes.default.string]),
|
|
136
|
+
legend: _propTypes.default.shape({
|
|
137
|
+
classes: _propTypes.default.object,
|
|
138
|
+
direction: _propTypes.default.oneOf(['column', 'row']),
|
|
139
|
+
hidden: _propTypes.default.bool,
|
|
140
|
+
itemWidth: _propTypes.default.number,
|
|
141
|
+
markSize: _propTypes.default.number,
|
|
142
|
+
offset: _propTypes.default.shape({
|
|
143
|
+
x: _propTypes.default.number,
|
|
144
|
+
y: _propTypes.default.number
|
|
145
|
+
}),
|
|
146
|
+
position: _propTypes.default.shape({
|
|
147
|
+
horizontal: _propTypes.default.oneOf(['left', 'middle', 'right']).isRequired,
|
|
148
|
+
vertical: _propTypes.default.oneOf(['bottom', 'middle', 'top']).isRequired
|
|
149
|
+
}),
|
|
150
|
+
spacing: _propTypes.default.number
|
|
151
|
+
}),
|
|
152
|
+
margin: _propTypes.default.shape({
|
|
153
|
+
bottom: _propTypes.default.number,
|
|
154
|
+
left: _propTypes.default.number,
|
|
155
|
+
right: _propTypes.default.number,
|
|
156
|
+
top: _propTypes.default.number
|
|
157
|
+
}),
|
|
158
|
+
/**
|
|
159
|
+
* Indicate which axis to display the right of the charts.
|
|
160
|
+
* Can be a string (the id of the axis) or an object `ChartsYAxisProps`
|
|
161
|
+
* @default null
|
|
162
|
+
*/
|
|
163
|
+
rightAxis: _propTypes.default.oneOfType([_propTypes.default.shape({
|
|
164
|
+
axisId: _propTypes.default.string.isRequired,
|
|
165
|
+
classes: _propTypes.default.object,
|
|
166
|
+
disableLine: _propTypes.default.bool,
|
|
167
|
+
disableTicks: _propTypes.default.bool,
|
|
168
|
+
fill: _propTypes.default.string,
|
|
169
|
+
label: _propTypes.default.string,
|
|
170
|
+
labelFontSize: _propTypes.default.number,
|
|
171
|
+
position: _propTypes.default.oneOf(['left', 'right']),
|
|
172
|
+
stroke: _propTypes.default.string,
|
|
173
|
+
tickFontSize: _propTypes.default.number,
|
|
174
|
+
tickSize: _propTypes.default.number
|
|
175
|
+
}), _propTypes.default.string]),
|
|
176
|
+
series: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
177
|
+
arcLabel: _propTypes.default.oneOfType([_propTypes.default.oneOf(['formattedValue', 'label', 'value']), _propTypes.default.func]),
|
|
178
|
+
arcLabelMinAngle: _propTypes.default.number,
|
|
179
|
+
color: _propTypes.default.string,
|
|
180
|
+
cornerRadius: _propTypes.default.number,
|
|
181
|
+
cx: _propTypes.default.number,
|
|
182
|
+
cy: _propTypes.default.number,
|
|
183
|
+
data: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
184
|
+
color: _propTypes.default.string,
|
|
185
|
+
id: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
|
|
186
|
+
label: _propTypes.default.string,
|
|
187
|
+
value: _propTypes.default.number.isRequired
|
|
188
|
+
})).isRequired,
|
|
189
|
+
endAngle: _propTypes.default.number,
|
|
190
|
+
faded: _propTypes.default.shape({
|
|
191
|
+
additionalRadius: _propTypes.default.number,
|
|
192
|
+
cornerRadius: _propTypes.default.number,
|
|
193
|
+
innerRadius: _propTypes.default.number,
|
|
194
|
+
outerRadius: _propTypes.default.number
|
|
195
|
+
}),
|
|
196
|
+
highlighted: _propTypes.default.shape({
|
|
197
|
+
additionalRadius: _propTypes.default.number,
|
|
198
|
+
cornerRadius: _propTypes.default.number,
|
|
199
|
+
innerRadius: _propTypes.default.number,
|
|
200
|
+
outerRadius: _propTypes.default.number
|
|
201
|
+
}),
|
|
202
|
+
highlightScope: _propTypes.default.shape({
|
|
203
|
+
faded: _propTypes.default.oneOf(['global', 'none', 'series']),
|
|
204
|
+
highlighted: _propTypes.default.oneOf(['item', 'none', 'series'])
|
|
205
|
+
}),
|
|
206
|
+
id: _propTypes.default.string,
|
|
207
|
+
innerRadius: _propTypes.default.number,
|
|
208
|
+
outerRadius: _propTypes.default.number,
|
|
209
|
+
paddingAngle: _propTypes.default.number,
|
|
210
|
+
sortingValues: _propTypes.default.oneOfType([_propTypes.default.oneOf(['asc', 'desc', 'none']), _propTypes.default.func]),
|
|
211
|
+
startAngle: _propTypes.default.number,
|
|
212
|
+
type: _propTypes.default.oneOf(['pie']),
|
|
213
|
+
valueFormatter: _propTypes.default.func
|
|
214
|
+
})).isRequired,
|
|
215
|
+
sx: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object, _propTypes.default.bool])), _propTypes.default.func, _propTypes.default.object]),
|
|
216
|
+
title: _propTypes.default.string,
|
|
217
|
+
tooltip: _propTypes.default.shape({
|
|
218
|
+
axisContent: _propTypes.default.elementType,
|
|
219
|
+
classes: _propTypes.default.object,
|
|
220
|
+
itemContent: _propTypes.default.elementType,
|
|
221
|
+
trigger: _propTypes.default.oneOf(['axis', 'item', 'none'])
|
|
222
|
+
}),
|
|
223
|
+
/**
|
|
224
|
+
* Indicate which axis to display the top of the charts.
|
|
225
|
+
* Can be a string (the id of the axis) or an object `ChartsXAxisProps`
|
|
226
|
+
* @default null
|
|
227
|
+
*/
|
|
228
|
+
topAxis: _propTypes.default.oneOfType([_propTypes.default.shape({
|
|
229
|
+
axisId: _propTypes.default.string.isRequired,
|
|
230
|
+
classes: _propTypes.default.object,
|
|
231
|
+
disableLine: _propTypes.default.bool,
|
|
232
|
+
disableTicks: _propTypes.default.bool,
|
|
233
|
+
fill: _propTypes.default.string,
|
|
234
|
+
label: _propTypes.default.string,
|
|
235
|
+
labelFontSize: _propTypes.default.number,
|
|
236
|
+
position: _propTypes.default.oneOf(['bottom', 'top']),
|
|
237
|
+
stroke: _propTypes.default.string,
|
|
238
|
+
tickFontSize: _propTypes.default.number,
|
|
239
|
+
tickSize: _propTypes.default.number
|
|
240
|
+
}), _propTypes.default.string]),
|
|
241
|
+
viewBox: _propTypes.default.shape({
|
|
242
|
+
height: _propTypes.default.number,
|
|
243
|
+
width: _propTypes.default.number,
|
|
244
|
+
x: _propTypes.default.number,
|
|
245
|
+
y: _propTypes.default.number
|
|
246
|
+
}),
|
|
247
|
+
width: _propTypes.default.number,
|
|
248
|
+
xAxis: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
249
|
+
axisId: _propTypes.default.string,
|
|
250
|
+
classes: _propTypes.default.object,
|
|
251
|
+
data: _propTypes.default.array,
|
|
252
|
+
disableLine: _propTypes.default.bool,
|
|
253
|
+
disableTicks: _propTypes.default.bool,
|
|
254
|
+
fill: _propTypes.default.string,
|
|
255
|
+
id: _propTypes.default.string,
|
|
256
|
+
label: _propTypes.default.string,
|
|
257
|
+
labelFontSize: _propTypes.default.number,
|
|
258
|
+
max: _propTypes.default.number,
|
|
259
|
+
maxTicks: _propTypes.default.number,
|
|
260
|
+
min: _propTypes.default.number,
|
|
261
|
+
minTicks: _propTypes.default.number,
|
|
262
|
+
position: _propTypes.default.oneOf(['bottom', 'left', 'right', 'top']),
|
|
263
|
+
scaleType: _propTypes.default.oneOf(['band', 'linear', 'log', 'point', 'pow', 'sqrt', 'time', 'utc']),
|
|
264
|
+
stroke: _propTypes.default.string,
|
|
265
|
+
tickFontSize: _propTypes.default.number,
|
|
266
|
+
tickSize: _propTypes.default.number,
|
|
267
|
+
tickSpacing: _propTypes.default.number,
|
|
268
|
+
valueFormatter: _propTypes.default.func
|
|
269
|
+
})),
|
|
270
|
+
yAxis: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
271
|
+
axisId: _propTypes.default.string,
|
|
272
|
+
classes: _propTypes.default.object,
|
|
273
|
+
data: _propTypes.default.array,
|
|
274
|
+
disableLine: _propTypes.default.bool,
|
|
275
|
+
disableTicks: _propTypes.default.bool,
|
|
276
|
+
fill: _propTypes.default.string,
|
|
277
|
+
id: _propTypes.default.string,
|
|
278
|
+
label: _propTypes.default.string,
|
|
279
|
+
labelFontSize: _propTypes.default.number,
|
|
280
|
+
max: _propTypes.default.number,
|
|
281
|
+
maxTicks: _propTypes.default.number,
|
|
282
|
+
min: _propTypes.default.number,
|
|
283
|
+
minTicks: _propTypes.default.number,
|
|
284
|
+
position: _propTypes.default.oneOf(['bottom', 'left', 'right', 'top']),
|
|
285
|
+
scaleType: _propTypes.default.oneOf(['band', 'linear', 'log', 'point', 'pow', 'sqrt', 'time', 'utc']),
|
|
286
|
+
stroke: _propTypes.default.string,
|
|
287
|
+
tickFontSize: _propTypes.default.number,
|
|
288
|
+
tickSize: _propTypes.default.number,
|
|
289
|
+
tickSpacing: _propTypes.default.number,
|
|
290
|
+
valueFormatter: _propTypes.default.func
|
|
291
|
+
}))
|
|
292
|
+
} : void 0;
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.PiePlot = PiePlot;
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
var React = _interopRequireWildcard(require("react"));
|
|
10
|
+
var _SeriesContextProvider = require("../context/SeriesContextProvider");
|
|
11
|
+
var _PieArc = _interopRequireDefault(require("./PieArc"));
|
|
12
|
+
var _PieArcLabel = _interopRequireDefault(require("./PieArcLabel"));
|
|
13
|
+
var _DrawingProvider = require("../context/DrawingProvider");
|
|
14
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
|
+
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); }
|
|
16
|
+
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; }
|
|
17
|
+
const RATIO = 180 / Math.PI;
|
|
18
|
+
function getItemLabel(arcLabel, arcLabelMinAngle, item) {
|
|
19
|
+
if (!arcLabel) {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
const angle = (item.endAngle - item.startAngle) * RATIO;
|
|
23
|
+
if (angle < arcLabelMinAngle) {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
if (typeof arcLabel === 'string') {
|
|
27
|
+
return item[arcLabel]?.toString();
|
|
28
|
+
}
|
|
29
|
+
return arcLabel(item);
|
|
30
|
+
}
|
|
31
|
+
function PiePlot() {
|
|
32
|
+
const seriesData = React.useContext(_SeriesContextProvider.SeriesContext).pie;
|
|
33
|
+
const {
|
|
34
|
+
left,
|
|
35
|
+
top,
|
|
36
|
+
width,
|
|
37
|
+
height
|
|
38
|
+
} = React.useContext(_DrawingProvider.DrawingContext);
|
|
39
|
+
if (seriesData === undefined) {
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
const availableRadius = Math.min(width, height) / 2;
|
|
43
|
+
const center = {
|
|
44
|
+
x: left + width / 2,
|
|
45
|
+
y: top + height / 2
|
|
46
|
+
};
|
|
47
|
+
const {
|
|
48
|
+
series,
|
|
49
|
+
seriesOrder
|
|
50
|
+
} = seriesData;
|
|
51
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("g", {
|
|
52
|
+
children: seriesOrder.map(seriesId => {
|
|
53
|
+
const {
|
|
54
|
+
innerRadius,
|
|
55
|
+
outerRadius,
|
|
56
|
+
cornerRadius,
|
|
57
|
+
arcLabel,
|
|
58
|
+
arcLabelMinAngle = 0,
|
|
59
|
+
data,
|
|
60
|
+
cx,
|
|
61
|
+
cy,
|
|
62
|
+
highlighted,
|
|
63
|
+
faded
|
|
64
|
+
} = series[seriesId];
|
|
65
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("g", {
|
|
66
|
+
transform: `translate(${cx === undefined ? center.x : left + cx}, ${cy === undefined ? center.y : top + cy})`,
|
|
67
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("g", {
|
|
68
|
+
children: [data.map((item, index) => {
|
|
69
|
+
return /*#__PURE__*/(0, React.createElement)(_PieArc.default, (0, _extends2.default)({}, item, {
|
|
70
|
+
key: item.id,
|
|
71
|
+
innerRadius: innerRadius,
|
|
72
|
+
outerRadius: outerRadius ?? availableRadius,
|
|
73
|
+
cornerRadius: cornerRadius,
|
|
74
|
+
id: seriesId,
|
|
75
|
+
color: item.color,
|
|
76
|
+
dataIndex: index,
|
|
77
|
+
highlightScope: series[seriesId].highlightScope,
|
|
78
|
+
highlighted: highlighted,
|
|
79
|
+
faded: faded
|
|
80
|
+
}));
|
|
81
|
+
}), data.map((item, index) => {
|
|
82
|
+
return /*#__PURE__*/(0, React.createElement)(_PieArcLabel.default, (0, _extends2.default)({}, item, {
|
|
83
|
+
key: item.id,
|
|
84
|
+
innerRadius: innerRadius,
|
|
85
|
+
outerRadius: outerRadius ?? availableRadius,
|
|
86
|
+
cornerRadius: cornerRadius,
|
|
87
|
+
id: seriesId,
|
|
88
|
+
color: item.color,
|
|
89
|
+
dataIndex: index,
|
|
90
|
+
highlightScope: series[seriesId].highlightScope,
|
|
91
|
+
formattedArcLabel: getItemLabel(arcLabel, arcLabelMinAngle, item)
|
|
92
|
+
}));
|
|
93
|
+
})]
|
|
94
|
+
})
|
|
95
|
+
}, seriesId);
|
|
96
|
+
})
|
|
97
|
+
});
|
|
98
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
var _d3Shape = require("d3-shape");
|
|
10
|
+
const getSortingComparator = (comparator = 'none') => {
|
|
11
|
+
if (typeof comparator === 'function') {
|
|
12
|
+
return comparator;
|
|
13
|
+
}
|
|
14
|
+
switch (comparator) {
|
|
15
|
+
case 'none':
|
|
16
|
+
return null;
|
|
17
|
+
case 'desc':
|
|
18
|
+
return (a, b) => b - a;
|
|
19
|
+
case 'asc':
|
|
20
|
+
return (a, b) => a - b;
|
|
21
|
+
default:
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
const formatter = params => {
|
|
26
|
+
const {
|
|
27
|
+
seriesOrder,
|
|
28
|
+
series
|
|
29
|
+
} = params;
|
|
30
|
+
const defaultizedSeries = {};
|
|
31
|
+
seriesOrder.forEach(seriesId => {
|
|
32
|
+
const arcs = (0, _d3Shape.pie)().startAngle(2 * Math.PI * (series[seriesId].startAngle ?? 0) / 360).endAngle(2 * Math.PI * (series[seriesId].endAngle ?? 360) / 360).padAngle(2 * Math.PI * (series[seriesId].paddingAngle ?? 0) / 360).sortValues(getSortingComparator(series[seriesId].sortingValues ?? 'none'))(series[seriesId].data.map(piePoint => piePoint.value));
|
|
33
|
+
defaultizedSeries[seriesId] = (0, _extends2.default)({
|
|
34
|
+
valueFormatter: item => item.value.toLocaleString()
|
|
35
|
+
}, series[seriesId], {
|
|
36
|
+
data: series[seriesId].data.map((item, index) => (0, _extends2.default)({}, item, {
|
|
37
|
+
id: item.id ?? `auto-generated-pie-id-${seriesId}-${index}`
|
|
38
|
+
}, arcs[index])).map(item => (0, _extends2.default)({}, item, {
|
|
39
|
+
formattedValue: series[seriesId].valueFormatter?.(item) ?? item.value.toLocaleString()
|
|
40
|
+
}))
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
return {
|
|
44
|
+
seriesOrder,
|
|
45
|
+
series: defaultizedSeries
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
var _default = formatter;
|
|
49
|
+
exports.default = _default;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _exportNames = {
|
|
7
|
+
PiePlot: true,
|
|
8
|
+
PieChart: true
|
|
9
|
+
};
|
|
10
|
+
Object.defineProperty(exports, "PieChart", {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _PieChart.PieChart;
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
Object.defineProperty(exports, "PiePlot", {
|
|
17
|
+
enumerable: true,
|
|
18
|
+
get: function () {
|
|
19
|
+
return _PiePlot.PiePlot;
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
var _PiePlot = require("./PiePlot");
|
|
23
|
+
var _PieChart = require("./PieChart");
|
|
24
|
+
var _PieArc = require("./PieArc");
|
|
25
|
+
Object.keys(_PieArc).forEach(function (key) {
|
|
26
|
+
if (key === "default" || key === "__esModule") return;
|
|
27
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
28
|
+
if (key in exports && exports[key] === _PieArc[key]) return;
|
|
29
|
+
Object.defineProperty(exports, key, {
|
|
30
|
+
enumerable: true,
|
|
31
|
+
get: function () {
|
|
32
|
+
return _PieArc[key];
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
var _PieArcLabel = require("./PieArcLabel");
|
|
37
|
+
Object.keys(_PieArcLabel).forEach(function (key) {
|
|
38
|
+
if (key === "default" || key === "__esModule") return;
|
|
39
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
40
|
+
if (key in exports && exports[key] === _PieArcLabel[key]) return;
|
|
41
|
+
Object.defineProperty(exports, key, {
|
|
42
|
+
enumerable: true,
|
|
43
|
+
get: function () {
|
|
44
|
+
return _PieArcLabel[key];
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
});
|
|
@@ -0,0 +1,19 @@
|
|
|
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
|
+
return seriesOrder.flatMap(seriesId => series[seriesId].data.map(item => ({
|
|
13
|
+
color: item.color,
|
|
14
|
+
label: item.label,
|
|
15
|
+
id: item.id
|
|
16
|
+
})).filter(item => item.label !== undefined));
|
|
17
|
+
};
|
|
18
|
+
var _default = legendGetter;
|
|
19
|
+
exports.default = _default;
|
package/README.md
CHANGED
|
@@ -7,13 +7,13 @@ It's part of MUI X, an open-core extension of MUI, with advanced components.
|
|
|
7
7
|
|
|
8
8
|
Install the package in your project directory with:
|
|
9
9
|
|
|
10
|
-
```
|
|
10
|
+
```bash
|
|
11
11
|
npm install @mui/x-charts
|
|
12
12
|
```
|
|
13
13
|
|
|
14
14
|
or
|
|
15
15
|
|
|
16
|
-
```
|
|
16
|
+
```bash
|
|
17
17
|
yarn add @mui/x-charts
|
|
18
18
|
```
|
|
19
19
|
|
|
@@ -6,12 +6,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.ResponsiveChartContainer = ResponsiveChartContainer;
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
9
10
|
var React = _interopRequireWildcard(require("react"));
|
|
10
11
|
var _useEnhancedEffect = _interopRequireDefault(require("@mui/utils/useEnhancedEffect"));
|
|
11
12
|
var _ownerWindow = _interopRequireDefault(require("@mui/utils/ownerWindow"));
|
|
12
13
|
var _styles = require("@mui/material/styles");
|
|
13
14
|
var _ChartContainer = require("../ChartContainer");
|
|
14
15
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
16
|
+
const _excluded = ["width", "height"];
|
|
15
17
|
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); }
|
|
16
18
|
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; }
|
|
17
19
|
const useChartDimensions = (inWidth, inHeight) => {
|
|
@@ -91,17 +93,26 @@ const ResizableContainer = (0, _styles.styled)('div', {
|
|
|
91
93
|
flexDirection: 'column',
|
|
92
94
|
alignItems: 'center',
|
|
93
95
|
justifyContent: 'center',
|
|
94
|
-
overflow: 'hidden'
|
|
96
|
+
overflow: 'hidden',
|
|
97
|
+
'&>svg': {
|
|
98
|
+
width: '100%',
|
|
99
|
+
height: '100%'
|
|
100
|
+
}
|
|
95
101
|
}));
|
|
96
102
|
function ResponsiveChartContainer(props) {
|
|
97
|
-
const
|
|
103
|
+
const {
|
|
104
|
+
width: propsWidth,
|
|
105
|
+
height: propsHeight
|
|
106
|
+
} = props,
|
|
107
|
+
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
108
|
+
const [containerRef, width, height] = useChartDimensions(propsWidth, propsHeight);
|
|
98
109
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(ResizableContainer, {
|
|
99
110
|
ref: containerRef,
|
|
100
111
|
ownerState: {
|
|
101
112
|
width: props.width,
|
|
102
113
|
height: props.height
|
|
103
114
|
},
|
|
104
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartContainer.ChartContainer, (0, _extends2.default)({},
|
|
115
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartContainer.ChartContainer, (0, _extends2.default)({}, other, {
|
|
105
116
|
width: width,
|
|
106
117
|
height: height
|
|
107
118
|
}))
|
package/ScatterChart/Scatter.js
CHANGED
|
@@ -91,7 +91,7 @@ process.env.NODE_ENV !== "production" ? Scatter.propTypes = {
|
|
|
91
91
|
color: _propTypes.default.string.isRequired,
|
|
92
92
|
markerSize: _propTypes.default.number.isRequired,
|
|
93
93
|
series: _propTypes.default.shape({
|
|
94
|
-
color: _propTypes.default.string
|
|
94
|
+
color: _propTypes.default.string,
|
|
95
95
|
data: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
96
96
|
id: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]).isRequired,
|
|
97
97
|
x: _propTypes.default.number.isRequired,
|
|
@@ -117,6 +117,7 @@ process.env.NODE_ENV !== "production" ? ScatterChart.propTypes = {
|
|
|
117
117
|
legend: _propTypes.default.shape({
|
|
118
118
|
classes: _propTypes.default.object,
|
|
119
119
|
direction: _propTypes.default.oneOf(['column', 'row']),
|
|
120
|
+
hidden: _propTypes.default.bool,
|
|
120
121
|
itemWidth: _propTypes.default.number,
|
|
121
122
|
markSize: _propTypes.default.number,
|
|
122
123
|
offset: _propTypes.default.shape({
|
|
@@ -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;
|
|
@@ -12,6 +12,7 @@ var _styles = require("@mui/material/styles");
|
|
|
12
12
|
var _formatter = _interopRequireDefault(require("../BarChart/formatter"));
|
|
13
13
|
var _formatter2 = _interopRequireDefault(require("../ScatterChart/formatter"));
|
|
14
14
|
var _formatter3 = _interopRequireDefault(require("../LineChart/formatter"));
|
|
15
|
+
var _formatter4 = _interopRequireDefault(require("../PieChart/formatter"));
|
|
15
16
|
var _defaultizeColor = require("../internals/defaultizeColor");
|
|
16
17
|
var _colorPalettes = require("../colorPalettes");
|
|
17
18
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
@@ -22,8 +23,17 @@ exports.SeriesContext = SeriesContext;
|
|
|
22
23
|
const seriesTypeFormatter = {
|
|
23
24
|
bar: _formatter.default,
|
|
24
25
|
scatter: _formatter2.default,
|
|
25
|
-
line: _formatter3.default
|
|
26
|
+
line: _formatter3.default,
|
|
27
|
+
pie: _formatter4.default
|
|
26
28
|
};
|
|
29
|
+
/**
|
|
30
|
+
* This methods is the interface between what the developper is providing and what compoenents receives
|
|
31
|
+
* To simplify the components behaviors, it groups series by type, such that LinePlots props are not updated if soe line data are modified
|
|
32
|
+
* It also add defaultized values such as the ids, colors
|
|
33
|
+
* @param series The array of series provided by devs
|
|
34
|
+
* @param colors The color palette used to defaultize series colors
|
|
35
|
+
* @returns An object structuring all the series by type.
|
|
36
|
+
*/
|
|
27
37
|
const formatSeries = (series, colors) => {
|
|
28
38
|
// Group series by type
|
|
29
39
|
const seriesGroups = {};
|