@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
package/BarChart/BarChart.js
CHANGED
|
@@ -131,6 +131,7 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
|
|
|
131
131
|
legend: _propTypes.default.shape({
|
|
132
132
|
classes: _propTypes.default.object,
|
|
133
133
|
direction: _propTypes.default.oneOf(['column', 'row']),
|
|
134
|
+
hidden: _propTypes.default.bool,
|
|
134
135
|
itemWidth: _propTypes.default.number,
|
|
135
136
|
markSize: _propTypes.default.number,
|
|
136
137
|
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;
|
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,68 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## 6.9.2
|
|
7
|
+
|
|
8
|
+
_Jul 6, 2023_
|
|
9
|
+
|
|
10
|
+
We'd like to offer a big thanks to the 11 contributors who made this release possible. Here are some highlights ✨:
|
|
11
|
+
|
|
12
|
+
- 🚀 Auto-scroll when making range selection (#8661) @m4theushw
|
|
13
|
+
|
|
14
|
+
- 📚 New page: Components lifecycle (#8372) @flaviendelangle
|
|
15
|
+
|
|
16
|
+
Clarify pickers events and value updates in a [single docs page](https://mui.com/x/react-date-pickers/lifecycle/).
|
|
17
|
+
|
|
18
|
+
- 🥧 Add pie chart component
|
|
19
|
+
|
|
20
|
+
They are fresh from the code editor. You can visit [pie charts docs](https://mui.com/x/react-charts/pie/) or their [demo page](https://mui.com/x/react-charts/pie-demo/).
|
|
21
|
+
|
|
22
|
+
<img width="380" alt="pie-charts" src="https://github.com/mui/mui-x/assets/13808724/fe908c45-803c-4316-b913-dbd2f9f0551e">
|
|
23
|
+
|
|
24
|
+
- 🐞 Bugfixes
|
|
25
|
+
|
|
26
|
+
- 📚 Documentation improvements
|
|
27
|
+
|
|
28
|
+
### `@mui/x-data-grid@v6.9.2` / `@mui/x-data-grid-pro@v6.9.2` / `@mui/x-data-grid-premium@v6.9.2`
|
|
29
|
+
|
|
30
|
+
#### Changes
|
|
31
|
+
|
|
32
|
+
- [DataGrid] Fix `RangeError` when using flex columns (#9554) @cherniavskii
|
|
33
|
+
- [DataGrid] Fix React 17 editing bug (#9530) @romgrk
|
|
34
|
+
- [DataGrid] Use `getRowId` in filtering (#9564) @romgrk
|
|
35
|
+
- [DataGrid] Correctly reflect `TablePagination`'s `rowsPerPageOptions` shape to `pageSizeOptions` (#9438) @burakkgunduzz
|
|
36
|
+
- [DataGridPremium] Auto-scroll when making range selection (#8661) @m4theushw
|
|
37
|
+
- [l10n] Improve Spanish (es-ES) locale (#9500) @fufex
|
|
38
|
+
|
|
39
|
+
### `@mui/x-date-pickers@v6.9.2` / `@mui/x-date-pickers-pro@v6.9.2`
|
|
40
|
+
|
|
41
|
+
#### Changes
|
|
42
|
+
|
|
43
|
+
- [pickers] Forward digital clock classes (#9555) @YoonjiJang
|
|
44
|
+
- [pickers] Rename `internal` folder to `internals` on `@mui/x-date-picker-pro` (#9571) @flaviendelangle
|
|
45
|
+
|
|
46
|
+
### `@mui/x-charts@6.0.0-alpha.2`
|
|
47
|
+
|
|
48
|
+
#### Changes
|
|
49
|
+
|
|
50
|
+
- [charts] Add pie chart component (#9395) @alexfauquette
|
|
51
|
+
|
|
52
|
+
### Docs
|
|
53
|
+
|
|
54
|
+
- [docs] Add pickers playground (#9164) @LukasTy
|
|
55
|
+
- [docs] Fix API links for pickers (#9573) @alexfauquette
|
|
56
|
+
- [docs] Fix demos with `ToggleButtonGroup` (#9548) @flaviendelangle
|
|
57
|
+
- [docs] Fix typos in pagination documentation page (#9332) @RatherBeLunar
|
|
58
|
+
- [docs] Hide ads on paid content @oliviertassinari
|
|
59
|
+
- [docs] Move the charts in the sidebar (#9437) @flaviendelangle
|
|
60
|
+
- [docs] New page: Components lifecycle (#8372) @flaviendelangle
|
|
61
|
+
- [docs] Remove outdated header tag @oliviertassinari
|
|
62
|
+
|
|
63
|
+
### Core
|
|
64
|
+
|
|
65
|
+
- [core] Fix typo in priority support @oliviertassinari
|
|
66
|
+
- [core] Remove mention of Crowdin @oliviertassinari
|
|
67
|
+
|
|
6
68
|
## 6.9.1
|
|
7
69
|
|
|
8
70
|
_Jun 30, 2023_
|
|
@@ -15,6 +15,10 @@ export type ChartsLegendProps = {
|
|
|
15
15
|
* Override or extend the styles applied to the component.
|
|
16
16
|
*/
|
|
17
17
|
classes?: Partial<ChartsLegendClasses>;
|
|
18
|
+
/**
|
|
19
|
+
* Set to true to hide the legend.
|
|
20
|
+
*/
|
|
21
|
+
hidden?: boolean;
|
|
18
22
|
} & SizingParams;
|
|
19
23
|
type DefaultizedChartsLegendProps = DefaultizedProps<ChartsLegendProps, 'direction' | 'position'>;
|
|
20
24
|
type SeriesLegendOwnerState = ChartSeriesDefaultized<any> & Pick<DefaultizedChartsLegendProps, 'direction'> & {
|
|
@@ -40,5 +44,5 @@ export declare const ChartsLegendMark: import("@emotion/styled").StyledComponent
|
|
|
40
44
|
};
|
|
41
45
|
}, Pick<React.SVGProps<SVGRectElement>, keyof React.SVGProps<SVGRectElement>>, {}>;
|
|
42
46
|
export declare const ChartsLegendLabel: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<Theme>, Pick<React.SVGTextElementAttributes<SVGTextElement>, keyof React.SVGTextElementAttributes<SVGTextElement>>, {}>;
|
|
43
|
-
export declare function ChartsLegend(inProps: ChartsLegendProps): React.JSX.Element;
|
|
47
|
+
export declare function ChartsLegend(inProps: ChartsLegendProps): React.JSX.Element | null;
|
|
44
48
|
export {};
|
|
@@ -159,7 +159,8 @@ function ChartsLegend(inProps) {
|
|
|
159
159
|
const {
|
|
160
160
|
position,
|
|
161
161
|
direction,
|
|
162
|
-
offset
|
|
162
|
+
offset,
|
|
163
|
+
hidden
|
|
163
164
|
} = props;
|
|
164
165
|
const theme = (0, _styles.useTheme)();
|
|
165
166
|
const classes = useUtilityClasses((0, _extends2.default)({}, props, {
|
|
@@ -167,6 +168,9 @@ function ChartsLegend(inProps) {
|
|
|
167
168
|
}));
|
|
168
169
|
const drawingArea = React.useContext(_DrawingProvider.DrawingContext);
|
|
169
170
|
const series = React.useContext(_SeriesContextProvider.SeriesContext);
|
|
171
|
+
if (hidden) {
|
|
172
|
+
return null;
|
|
173
|
+
}
|
|
170
174
|
const seriesToDisplay = (0, _utils2.getSeriesToDisplay)(series);
|
|
171
175
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(ChartsLegendRoot, {
|
|
172
176
|
ownerState: {
|
package/ChartsLegend/utils.d.ts
CHANGED
|
@@ -11,4 +11,4 @@ export type SizingParams = {
|
|
|
11
11
|
itemWidth?: number;
|
|
12
12
|
spacing?: number;
|
|
13
13
|
};
|
|
14
|
-
export declare function getSeriesToDisplay(series: FormattedSeries):
|
|
14
|
+
export declare function getSeriesToDisplay(series: FormattedSeries): import("../models/seriesType/config").LegendParams[];
|
package/ChartsLegend/utils.js
CHANGED
|
@@ -1,9 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
6
7
|
exports.getSeriesToDisplay = getSeriesToDisplay;
|
|
8
|
+
var _legend = _interopRequireDefault(require("../BarChart/legend"));
|
|
9
|
+
var _legend2 = _interopRequireDefault(require("../ScatterChart/legend"));
|
|
10
|
+
var _legend3 = _interopRequireDefault(require("../LineChart/legend"));
|
|
11
|
+
var _legend4 = _interopRequireDefault(require("../PieChart/legend"));
|
|
12
|
+
const legendGetter = {
|
|
13
|
+
bar: _legend.default,
|
|
14
|
+
scatter: _legend2.default,
|
|
15
|
+
line: _legend3.default,
|
|
16
|
+
pie: _legend4.default
|
|
17
|
+
};
|
|
7
18
|
function getSeriesToDisplay(series) {
|
|
8
|
-
return Object.
|
|
19
|
+
return Object.keys(series).flatMap(seriesType => legendGetter[seriesType](series[seriesType]));
|
|
9
20
|
}
|
|
@@ -90,7 +90,7 @@ function ChartsAxisTooltipContent(props) {
|
|
|
90
90
|
const USED_X_AXIS_ID = xAxisIds[0];
|
|
91
91
|
const relevantSeries = React.useMemo(() => {
|
|
92
92
|
const rep = [];
|
|
93
|
-
Object.keys(series).forEach(seriesType => {
|
|
93
|
+
Object.keys(series).filter(seriesType => ['bar', 'line', 'scatter'].includes(seriesType)).forEach(seriesType => {
|
|
94
94
|
series[seriesType].seriesOrder.forEach(seriesId => {
|
|
95
95
|
const axisKey = series[seriesType].series[seriesId].xAxisKey;
|
|
96
96
|
if (axisKey === undefined || axisKey === USED_X_AXIS_ID) {
|
|
@@ -21,8 +21,17 @@ function DefaultChartsItemContent(props) {
|
|
|
21
21
|
if (itemData.dataIndex === undefined) {
|
|
22
22
|
return null;
|
|
23
23
|
}
|
|
24
|
-
const
|
|
25
|
-
|
|
24
|
+
const {
|
|
25
|
+
displayedLabel,
|
|
26
|
+
color
|
|
27
|
+
} = series.type === 'pie' ? {
|
|
28
|
+
color: series.data[itemData.dataIndex].color,
|
|
29
|
+
displayedLabel: series.data[itemData.dataIndex].label
|
|
30
|
+
} : {
|
|
31
|
+
color: series.color,
|
|
32
|
+
displayedLabel: series.label
|
|
33
|
+
};
|
|
34
|
+
|
|
26
35
|
// TODO: Manage to let TS understand series.data and series.valueFormatter are coherent
|
|
27
36
|
// @ts-ignore
|
|
28
37
|
const formattedValue = series.valueFormatter(series.data[itemData.dataIndex]);
|
package/LineChart/LineChart.js
CHANGED
|
@@ -133,6 +133,7 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
|
|
|
133
133
|
legend: _propTypes.default.shape({
|
|
134
134
|
classes: _propTypes.default.object,
|
|
135
135
|
direction: _propTypes.default.oneOf(['column', 'row']),
|
|
136
|
+
hidden: _propTypes.default.bool,
|
|
136
137
|
itemWidth: _propTypes.default.number,
|
|
137
138
|
markSize: _propTypes.default.number,
|
|
138
139
|
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;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { PieArcDatum as D3PieArcDatum } from 'd3-shape';
|
|
3
|
+
import { HighlightScope } from '../context/HighlightProvider';
|
|
4
|
+
import { PieSeriesType } from '../models/seriesType/pie';
|
|
5
|
+
export interface PieArcClasses {
|
|
6
|
+
/** Styles applied to the root element. */
|
|
7
|
+
root: string;
|
|
8
|
+
/** Styles applied to the root element when higlighted. */
|
|
9
|
+
highlighted: string;
|
|
10
|
+
/** Styles applied to the root element when faded. */
|
|
11
|
+
faded: string;
|
|
12
|
+
}
|
|
13
|
+
export type PieArcClassKey = keyof PieArcClasses;
|
|
14
|
+
export interface PieArcOwnerState {
|
|
15
|
+
id: string;
|
|
16
|
+
dataIndex: number;
|
|
17
|
+
color: string;
|
|
18
|
+
isFaded: boolean;
|
|
19
|
+
isHighlighted: boolean;
|
|
20
|
+
classes?: Partial<PieArcClasses>;
|
|
21
|
+
}
|
|
22
|
+
export declare function getPieArcUtilityClass(slot: string): string;
|
|
23
|
+
export declare const pieArcClasses: PieArcClasses;
|
|
24
|
+
export type PieArcProps = Omit<PieArcOwnerState, 'isFaded' | 'isHighlighted'> & React.ComponentPropsWithoutRef<'path'> & D3PieArcDatum<any> & {
|
|
25
|
+
highlightScope?: Partial<HighlightScope>;
|
|
26
|
+
innerRadius: PieSeriesType['innerRadius'];
|
|
27
|
+
outerRadius: number;
|
|
28
|
+
cornerRadius: PieSeriesType['cornerRadius'];
|
|
29
|
+
highlighted: PieSeriesType['highlighted'];
|
|
30
|
+
faded: PieSeriesType['faded'];
|
|
31
|
+
};
|
|
32
|
+
declare function PieArc(props: PieArcProps): React.JSX.Element;
|
|
33
|
+
declare namespace PieArc {
|
|
34
|
+
var propTypes: any;
|
|
35
|
+
}
|
|
36
|
+
export default PieArc;
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = PieArc;
|
|
8
|
+
exports.getPieArcUtilityClass = getPieArcUtilityClass;
|
|
9
|
+
exports.pieArcClasses = void 0;
|
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
12
|
+
var React = _interopRequireWildcard(require("react"));
|
|
13
|
+
var _d3Shape = require("d3-shape");
|
|
14
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
15
|
+
var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
|
|
16
|
+
var _generateUtilityClass = _interopRequireDefault(require("@mui/utils/generateUtilityClass"));
|
|
17
|
+
var _styles = require("@mui/material/styles");
|
|
18
|
+
var _generateUtilityClasses = _interopRequireDefault(require("@mui/utils/generateUtilityClasses"));
|
|
19
|
+
var _InteractionProvider = require("../context/InteractionProvider");
|
|
20
|
+
var _useInteractionItemProps = require("../hooks/useInteractionItemProps");
|
|
21
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
22
|
+
const _excluded = ["id", "dataIndex", "classes", "color", "highlightScope", "innerRadius", "outerRadius", "cornerRadius", "highlighted", "faded"];
|
|
23
|
+
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); }
|
|
24
|
+
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; }
|
|
25
|
+
function getPieArcUtilityClass(slot) {
|
|
26
|
+
return (0, _generateUtilityClass.default)('MuiPieArc', slot);
|
|
27
|
+
}
|
|
28
|
+
const pieArcClasses = (0, _generateUtilityClasses.default)('MuiPieArc', ['root', 'highlighted', 'faded']);
|
|
29
|
+
exports.pieArcClasses = pieArcClasses;
|
|
30
|
+
const useUtilityClasses = ownerState => {
|
|
31
|
+
const {
|
|
32
|
+
classes,
|
|
33
|
+
id,
|
|
34
|
+
isFaded,
|
|
35
|
+
isHighlighted
|
|
36
|
+
} = ownerState;
|
|
37
|
+
const slots = {
|
|
38
|
+
root: ['root', `series-${id}`, isHighlighted && 'highlighted', isFaded && 'faded']
|
|
39
|
+
};
|
|
40
|
+
return (0, _composeClasses.default)(slots, getPieArcUtilityClass, classes);
|
|
41
|
+
};
|
|
42
|
+
const PieArcRoot = (0, _styles.styled)('path', {
|
|
43
|
+
name: 'MuiPieArc',
|
|
44
|
+
slot: 'Root',
|
|
45
|
+
overridesResolver: (_, styles) => styles.arc
|
|
46
|
+
})(({
|
|
47
|
+
ownerState,
|
|
48
|
+
theme
|
|
49
|
+
}) => ({
|
|
50
|
+
stroke: theme.palette.background.paper,
|
|
51
|
+
strokeWidth: 1,
|
|
52
|
+
strokeLinejoin: 'round',
|
|
53
|
+
fill: ownerState.color,
|
|
54
|
+
opacity: ownerState.isFaded ? 0.3 : 1
|
|
55
|
+
}));
|
|
56
|
+
function PieArc(props) {
|
|
57
|
+
const {
|
|
58
|
+
id,
|
|
59
|
+
dataIndex,
|
|
60
|
+
classes: innerClasses,
|
|
61
|
+
color,
|
|
62
|
+
highlightScope,
|
|
63
|
+
innerRadius: baseInnerRadius = 0,
|
|
64
|
+
outerRadius: baseOuterRadius,
|
|
65
|
+
cornerRadius: baseCornerRadius = 0,
|
|
66
|
+
highlighted,
|
|
67
|
+
faded = {
|
|
68
|
+
additionalRadius: -5
|
|
69
|
+
}
|
|
70
|
+
} = props,
|
|
71
|
+
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
72
|
+
const getInteractionItemProps = (0, _useInteractionItemProps.useInteractionItemProps)(highlightScope);
|
|
73
|
+
const {
|
|
74
|
+
item
|
|
75
|
+
} = React.useContext(_InteractionProvider.InteractionContext);
|
|
76
|
+
const isHighlighted = (0, _useInteractionItemProps.getIsHighlighted)(item, {
|
|
77
|
+
type: 'pie',
|
|
78
|
+
seriesId: id,
|
|
79
|
+
dataIndex
|
|
80
|
+
}, highlightScope);
|
|
81
|
+
const isFaded = !isHighlighted && (0, _useInteractionItemProps.getIsFaded)(item, {
|
|
82
|
+
type: 'pie',
|
|
83
|
+
seriesId: id,
|
|
84
|
+
dataIndex
|
|
85
|
+
}, highlightScope);
|
|
86
|
+
const ownerState = {
|
|
87
|
+
id,
|
|
88
|
+
dataIndex,
|
|
89
|
+
classes: innerClasses,
|
|
90
|
+
color,
|
|
91
|
+
isFaded,
|
|
92
|
+
isHighlighted
|
|
93
|
+
};
|
|
94
|
+
const classes = useUtilityClasses(ownerState);
|
|
95
|
+
const attibuesOverride = (0, _extends2.default)({
|
|
96
|
+
additionalRadius: 0
|
|
97
|
+
}, isFaded && faded || isHighlighted && highlighted || {});
|
|
98
|
+
const innerRadius = Math.max(0, attibuesOverride.innerRadius ?? baseInnerRadius);
|
|
99
|
+
const outerRadius = Math.max(0, attibuesOverride.outerRadius ?? baseOuterRadius + attibuesOverride.additionalRadius);
|
|
100
|
+
const cornerRadius = attibuesOverride.cornerRadius ?? baseCornerRadius;
|
|
101
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(PieArcRoot, (0, _extends2.default)({
|
|
102
|
+
d: (0, _d3Shape.arc)().cornerRadius(cornerRadius)((0, _extends2.default)({}, other, {
|
|
103
|
+
innerRadius,
|
|
104
|
+
outerRadius
|
|
105
|
+
})),
|
|
106
|
+
ownerState: ownerState,
|
|
107
|
+
className: classes.root
|
|
108
|
+
}, getInteractionItemProps({
|
|
109
|
+
type: 'pie',
|
|
110
|
+
seriesId: id,
|
|
111
|
+
dataIndex
|
|
112
|
+
})));
|
|
113
|
+
}
|
|
114
|
+
process.env.NODE_ENV !== "production" ? PieArc.propTypes = {
|
|
115
|
+
// ----------------------------- Warning --------------------------------
|
|
116
|
+
// | These PropTypes are generated from the TypeScript type definitions |
|
|
117
|
+
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
118
|
+
// ----------------------------------------------------------------------
|
|
119
|
+
classes: _propTypes.default.object,
|
|
120
|
+
cornerRadius: _propTypes.default.number,
|
|
121
|
+
dataIndex: _propTypes.default.number.isRequired,
|
|
122
|
+
highlightScope: _propTypes.default.shape({
|
|
123
|
+
faded: _propTypes.default.oneOf(['global', 'none', 'series']),
|
|
124
|
+
highlighted: _propTypes.default.oneOf(['item', 'none', 'series'])
|
|
125
|
+
}),
|
|
126
|
+
innerRadius: _propTypes.default.number,
|
|
127
|
+
outerRadius: _propTypes.default.number.isRequired
|
|
128
|
+
} : void 0;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { PieArcDatum as D3PieArcDatum } from 'd3-shape';
|
|
3
|
+
import { HighlightScope } from '../context/HighlightProvider';
|
|
4
|
+
import { PieSeriesType } from '../models/seriesType/pie';
|
|
5
|
+
export interface PieArcLabelClasses {
|
|
6
|
+
/** Styles applied to the root element. */
|
|
7
|
+
root: string;
|
|
8
|
+
/** Styles applied to the root element when higlighted. */
|
|
9
|
+
highlighted: string;
|
|
10
|
+
/** Styles applied to the root element when faded. */
|
|
11
|
+
faded: string;
|
|
12
|
+
}
|
|
13
|
+
export type PieArcLabelClassKey = keyof PieArcLabelClasses;
|
|
14
|
+
export interface PieArcLabelOwnerState {
|
|
15
|
+
id: string;
|
|
16
|
+
dataIndex: number;
|
|
17
|
+
color: string;
|
|
18
|
+
isFaded: boolean;
|
|
19
|
+
isHighlighted: boolean;
|
|
20
|
+
classes?: Partial<PieArcLabelClasses>;
|
|
21
|
+
}
|
|
22
|
+
export declare function getPieArcLabelUtilityClass(slot: string): string;
|
|
23
|
+
export declare const pieArcLabelClasses: PieArcLabelClasses;
|
|
24
|
+
export type PieArcLabelProps = Omit<PieArcLabelOwnerState, 'isFaded' | 'isHighlighted'> & React.ComponentPropsWithoutRef<'path'> & D3PieArcDatum<any> & {
|
|
25
|
+
highlightScope?: Partial<HighlightScope>;
|
|
26
|
+
innerRadius: PieSeriesType['innerRadius'];
|
|
27
|
+
outerRadius: number;
|
|
28
|
+
cornerRadius: PieSeriesType['cornerRadius'];
|
|
29
|
+
} & {
|
|
30
|
+
formattedArcLabel?: string | null;
|
|
31
|
+
};
|
|
32
|
+
declare function PieArcLabel(props: PieArcLabelProps): React.JSX.Element;
|
|
33
|
+
declare namespace PieArcLabel {
|
|
34
|
+
var propTypes: any;
|
|
35
|
+
}
|
|
36
|
+
export default PieArcLabel;
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = PieArcLabel;
|
|
8
|
+
exports.getPieArcLabelUtilityClass = getPieArcLabelUtilityClass;
|
|
9
|
+
exports.pieArcLabelClasses = void 0;
|
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
12
|
+
var React = _interopRequireWildcard(require("react"));
|
|
13
|
+
var _d3Shape = require("d3-shape");
|
|
14
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
15
|
+
var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
|
|
16
|
+
var _generateUtilityClass = _interopRequireDefault(require("@mui/utils/generateUtilityClass"));
|
|
17
|
+
var _styles = require("@mui/material/styles");
|
|
18
|
+
var _generateUtilityClasses = _interopRequireDefault(require("@mui/utils/generateUtilityClasses"));
|
|
19
|
+
var _InteractionProvider = require("../context/InteractionProvider");
|
|
20
|
+
var _useInteractionItemProps = require("../hooks/useInteractionItemProps");
|
|
21
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
22
|
+
const _excluded = ["id", "dataIndex", "classes", "color", "highlightScope", "innerRadius", "outerRadius", "cornerRadius", "formattedArcLabel"];
|
|
23
|
+
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); }
|
|
24
|
+
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; }
|
|
25
|
+
function getPieArcLabelUtilityClass(slot) {
|
|
26
|
+
return (0, _generateUtilityClass.default)('MuiPieArcLabel', slot);
|
|
27
|
+
}
|
|
28
|
+
const pieArcLabelClasses = (0, _generateUtilityClasses.default)('MuiPieArcLabel', ['root', 'highlighted', 'faded']);
|
|
29
|
+
exports.pieArcLabelClasses = pieArcLabelClasses;
|
|
30
|
+
const useUtilityClasses = ownerState => {
|
|
31
|
+
const {
|
|
32
|
+
classes,
|
|
33
|
+
id,
|
|
34
|
+
isFaded,
|
|
35
|
+
isHighlighted
|
|
36
|
+
} = ownerState;
|
|
37
|
+
const slots = {
|
|
38
|
+
root: ['root', `series-${id}`, isHighlighted && 'highlighted', isFaded && 'faded']
|
|
39
|
+
};
|
|
40
|
+
return (0, _composeClasses.default)(slots, getPieArcLabelUtilityClass, classes);
|
|
41
|
+
};
|
|
42
|
+
const PieArcLabelRoot = (0, _styles.styled)('text', {
|
|
43
|
+
name: 'MuiPieArcLabel',
|
|
44
|
+
slot: 'Root',
|
|
45
|
+
overridesResolver: (_, styles) => styles.root
|
|
46
|
+
})(({
|
|
47
|
+
theme
|
|
48
|
+
}) => ({
|
|
49
|
+
fill: theme.palette.text.primary,
|
|
50
|
+
alignmentBaseline: 'baseline',
|
|
51
|
+
textAnchor: 'middle'
|
|
52
|
+
}));
|
|
53
|
+
function PieArcLabel(props) {
|
|
54
|
+
const {
|
|
55
|
+
id,
|
|
56
|
+
dataIndex,
|
|
57
|
+
classes: innerClasses,
|
|
58
|
+
color,
|
|
59
|
+
highlightScope,
|
|
60
|
+
innerRadius = 0,
|
|
61
|
+
outerRadius,
|
|
62
|
+
cornerRadius = 0,
|
|
63
|
+
formattedArcLabel
|
|
64
|
+
} = props,
|
|
65
|
+
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
66
|
+
const {
|
|
67
|
+
item
|
|
68
|
+
} = React.useContext(_InteractionProvider.InteractionContext);
|
|
69
|
+
const isHighlighted = (0, _useInteractionItemProps.getIsHighlighted)(item, {
|
|
70
|
+
type: 'pie',
|
|
71
|
+
seriesId: id,
|
|
72
|
+
dataIndex
|
|
73
|
+
}, highlightScope);
|
|
74
|
+
const isFaded = !isHighlighted && (0, _useInteractionItemProps.getIsFaded)(item, {
|
|
75
|
+
type: 'pie',
|
|
76
|
+
seriesId: id,
|
|
77
|
+
dataIndex
|
|
78
|
+
}, highlightScope);
|
|
79
|
+
const ownerState = {
|
|
80
|
+
id,
|
|
81
|
+
dataIndex,
|
|
82
|
+
classes: innerClasses,
|
|
83
|
+
color,
|
|
84
|
+
isFaded,
|
|
85
|
+
isHighlighted
|
|
86
|
+
};
|
|
87
|
+
const classes = useUtilityClasses(ownerState);
|
|
88
|
+
const arcLabelPosition = formattedArcLabel ? (0, _d3Shape.arc)().cornerRadius(cornerRadius).centroid((0, _extends2.default)({}, other, {
|
|
89
|
+
innerRadius,
|
|
90
|
+
outerRadius
|
|
91
|
+
})) : [0, 0];
|
|
92
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(PieArcLabelRoot, {
|
|
93
|
+
className: classes.root,
|
|
94
|
+
x: arcLabelPosition[0],
|
|
95
|
+
y: arcLabelPosition[1],
|
|
96
|
+
children: formattedArcLabel
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
process.env.NODE_ENV !== "production" ? PieArcLabel.propTypes = {
|
|
100
|
+
// ----------------------------- Warning --------------------------------
|
|
101
|
+
// | These PropTypes are generated from the TypeScript type definitions |
|
|
102
|
+
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
103
|
+
// ----------------------------------------------------------------------
|
|
104
|
+
classes: _propTypes.default.object,
|
|
105
|
+
cornerRadius: _propTypes.default.number,
|
|
106
|
+
dataIndex: _propTypes.default.number.isRequired,
|
|
107
|
+
highlightScope: _propTypes.default.shape({
|
|
108
|
+
faded: _propTypes.default.oneOf(['global', 'none', 'series']),
|
|
109
|
+
highlighted: _propTypes.default.oneOf(['item', 'none', 'series'])
|
|
110
|
+
}),
|
|
111
|
+
innerRadius: _propTypes.default.number,
|
|
112
|
+
outerRadius: _propTypes.default.number.isRequired
|
|
113
|
+
} : void 0;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { ResponsiveChartContainerProps } from '../ResponsiveChartContainer';
|
|
3
|
+
import { ChartsAxisProps } from '../ChartsAxis/ChartsAxis';
|
|
4
|
+
import { PieSeriesType } from '../models/seriesType';
|
|
5
|
+
import { MakeOptional } from '../models/helpers';
|
|
6
|
+
import { ChartsTooltipProps } from '../ChartsTooltip';
|
|
7
|
+
import { ChartsLegendProps } from '../ChartsLegend';
|
|
8
|
+
import { ChartsAxisHighlightProps } from '../ChartsAxisHighlight';
|
|
9
|
+
import { PieValueType } from '../models/seriesType/pie';
|
|
10
|
+
export interface PieChartProps extends Omit<ResponsiveChartContainerProps, 'series'>, ChartsAxisProps {
|
|
11
|
+
series: MakeOptional<PieSeriesType<MakeOptional<PieValueType, 'id'>>, 'type'>[];
|
|
12
|
+
tooltip?: ChartsTooltipProps;
|
|
13
|
+
axisHighlight?: ChartsAxisHighlightProps;
|
|
14
|
+
legend?: ChartsLegendProps;
|
|
15
|
+
}
|
|
16
|
+
declare function PieChart(props: PieChartProps): React.JSX.Element;
|
|
17
|
+
declare namespace PieChart {
|
|
18
|
+
var propTypes: any;
|
|
19
|
+
}
|
|
20
|
+
export { PieChart };
|