@mui/x-charts 9.0.1 → 9.0.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.js +29 -10
- package/BarChart/BarChart.mjs +29 -10
- package/BarChart/BarElement.js +1 -5
- package/BarChart/BarElement.mjs +1 -5
- package/BarChart/BarPlot.js +2 -1
- package/BarChart/BarPlot.mjs +2 -1
- package/BarChart/seriesConfig/bar/getSeriesWithDefaultValues.d.mts +8 -7
- package/BarChart/seriesConfig/bar/getSeriesWithDefaultValues.d.ts +8 -7
- package/BarChart/seriesConfig/bar/seriesProcessor.js +37 -13
- package/BarChart/seriesConfig/bar/seriesProcessor.mjs +37 -13
- package/CHANGELOG.md +257 -0
- package/ChartsContainer/ChartsContainer.js +59 -30
- package/ChartsContainer/ChartsContainer.mjs +59 -30
- package/ChartsDataProvider/useChartsDataProviderProps.js +1 -6
- package/ChartsDataProvider/useChartsDataProviderProps.mjs +1 -6
- package/ChartsGrid/styledComponents.js +2 -2
- package/ChartsGrid/styledComponents.mjs +2 -2
- package/ChartsRadialDataProvider/ChartsRadialDataProvider.d.mts +38 -0
- package/ChartsRadialDataProvider/ChartsRadialDataProvider.d.ts +38 -0
- package/ChartsRadialDataProvider/ChartsRadialDataProvider.js +115 -0
- package/ChartsRadialDataProvider/ChartsRadialDataProvider.mjs +109 -0
- package/ChartsRadialDataProvider/ChartsRadialDataProvider.plugins.d.mts +9 -0
- package/ChartsRadialDataProvider/ChartsRadialDataProvider.plugins.d.ts +9 -0
- package/ChartsRadialDataProvider/ChartsRadialDataProvider.plugins.js +13 -0
- package/ChartsRadialDataProvider/ChartsRadialDataProvider.plugins.mjs +7 -0
- package/ChartsRadialDataProvider/index.d.mts +2 -0
- package/ChartsRadialDataProvider/index.d.ts +2 -0
- package/ChartsRadialDataProvider/index.js +27 -0
- package/ChartsRadialDataProvider/index.mjs +2 -0
- package/ChartsRadialDataProvider/useChartsRadialDataProviderProps.d.mts +13 -0
- package/ChartsRadialDataProvider/useChartsRadialDataProviderProps.d.ts +13 -0
- package/ChartsRadialDataProvider/useChartsRadialDataProviderProps.js +46 -0
- package/ChartsRadialDataProvider/useChartsRadialDataProviderProps.mjs +39 -0
- package/ChartsRadialGrid/ChartsRadialGrid.d.mts +33 -0
- package/ChartsRadialGrid/ChartsRadialGrid.d.ts +33 -0
- package/ChartsRadialGrid/ChartsRadialGrid.js +101 -0
- package/ChartsRadialGrid/ChartsRadialGrid.mjs +96 -0
- package/ChartsRadialGrid/ChartsRadiusGrid.d.mts +14 -0
- package/ChartsRadialGrid/ChartsRadiusGrid.d.ts +14 -0
- package/ChartsRadialGrid/ChartsRadiusGrid.js +72 -0
- package/ChartsRadialGrid/ChartsRadiusGrid.mjs +65 -0
- package/ChartsRadialGrid/ChartsRotationGrid.d.mts +13 -0
- package/ChartsRadialGrid/ChartsRotationGrid.d.ts +13 -0
- package/ChartsRadialGrid/ChartsRotationGrid.js +65 -0
- package/ChartsRadialGrid/ChartsRotationGrid.mjs +58 -0
- package/ChartsRadialGrid/chartsRadialGridClasses.d.mts +13 -0
- package/ChartsRadialGrid/chartsRadialGridClasses.d.ts +13 -0
- package/ChartsRadialGrid/chartsRadialGridClasses.js +14 -0
- package/ChartsRadialGrid/chartsRadialGridClasses.mjs +6 -0
- package/ChartsRadialGrid/index.d.mts +3 -0
- package/ChartsRadialGrid/index.d.ts +3 -0
- package/ChartsRadialGrid/index.js +19 -0
- package/ChartsRadialGrid/index.mjs +2 -0
- package/ChartsRadialGrid/styledComponents.d.mts +4 -0
- package/ChartsRadialGrid/styledComponents.d.ts +4 -0
- package/ChartsRadialGrid/styledComponents.js +50 -0
- package/ChartsRadialGrid/styledComponents.mjs +44 -0
- package/ChartsRadiusAxis/ChartsRadiusAxis.d.mts +48 -0
- package/ChartsRadiusAxis/ChartsRadiusAxis.d.ts +48 -0
- package/ChartsRadiusAxis/ChartsRadiusAxis.js +147 -0
- package/ChartsRadiusAxis/ChartsRadiusAxis.mjs +141 -0
- package/ChartsRadiusAxis/chartsRadiusAxisClasses.d.mts +6 -0
- package/ChartsRadiusAxis/chartsRadiusAxisClasses.d.ts +6 -0
- package/ChartsRadiusAxis/chartsRadiusAxisClasses.js +30 -0
- package/ChartsRadiusAxis/chartsRadiusAxisClasses.mjs +17 -0
- package/ChartsRadiusAxis/createGetLabelTextAnchors.d.mts +10 -0
- package/ChartsRadiusAxis/createGetLabelTextAnchors.d.ts +10 -0
- package/ChartsRadiusAxis/createGetLabelTextAnchors.js +46 -0
- package/ChartsRadiusAxis/createGetLabelTextAnchors.mjs +39 -0
- package/ChartsRadiusAxis/getLabelTransform.d.mts +11 -0
- package/ChartsRadiusAxis/getLabelTransform.d.ts +11 -0
- package/ChartsRadiusAxis/getLabelTransform.js +37 -0
- package/ChartsRadiusAxis/getLabelTransform.mjs +31 -0
- package/ChartsRadiusAxis/index.d.mts +3 -0
- package/ChartsRadiusAxis/index.d.ts +3 -0
- package/ChartsRadiusAxis/index.js +19 -0
- package/ChartsRadiusAxis/index.mjs +2 -0
- package/ChartsRadiusAxis/sharedRadialAxisClasses.d.mts +21 -0
- package/ChartsRadiusAxis/sharedRadialAxisClasses.d.ts +21 -0
- package/ChartsRadiusAxis/sharedRadialAxisClasses.js +14 -0
- package/ChartsRadiusAxis/sharedRadialAxisClasses.mjs +6 -0
- package/ChartsRotationAxis/ChartsRotationAxis.d.mts +48 -0
- package/ChartsRotationAxis/ChartsRotationAxis.d.ts +48 -0
- package/ChartsRotationAxis/ChartsRotationAxis.js +141 -0
- package/ChartsRotationAxis/ChartsRotationAxis.mjs +135 -0
- package/ChartsRotationAxis/chartsRotationAxisClasses.d.mts +5 -0
- package/ChartsRotationAxis/chartsRotationAxisClasses.d.ts +5 -0
- package/ChartsRotationAxis/chartsRotationAxisClasses.js +29 -0
- package/ChartsRotationAxis/chartsRotationAxisClasses.mjs +16 -0
- package/ChartsRotationAxis/getLabelTransform.d.mts +11 -0
- package/ChartsRotationAxis/getLabelTransform.d.ts +11 -0
- package/ChartsRotationAxis/getLabelTransform.js +37 -0
- package/ChartsRotationAxis/getLabelTransform.mjs +31 -0
- package/ChartsRotationAxis/index.d.mts +2 -0
- package/ChartsRotationAxis/index.d.ts +2 -0
- package/ChartsRotationAxis/index.js +19 -0
- package/ChartsRotationAxis/index.mjs +2 -0
- package/ChartsTooltip/useAxesTooltip.js +7 -4
- package/ChartsTooltip/useAxesTooltip.mjs +8 -5
- package/ChartsTooltip/useItemTooltip.d.mts +1 -1
- package/ChartsTooltip/useItemTooltip.d.ts +1 -1
- package/ChartsTooltip/useItemTooltip.js +17 -2
- package/ChartsTooltip/useItemTooltip.mjs +18 -3
- package/ChartsXAxis/useAxisTicksProps.d.mts +652 -490
- package/ChartsXAxis/useAxisTicksProps.d.ts +652 -490
- package/ChartsYAxis/useAxisTicksProps.d.mts +652 -490
- package/ChartsYAxis/useAxisTicksProps.d.ts +652 -490
- package/LineChart/LineChart.js +27 -9
- package/LineChart/LineChart.mjs +27 -9
- package/LineChart/seriesConfig/curveEvaluation.js +24 -19
- package/LineChart/seriesConfig/curveEvaluation.mjs +24 -19
- package/LineChart/seriesConfig/getItemAtPosition.js +14 -3
- package/LineChart/seriesConfig/getItemAtPosition.mjs +14 -3
- package/LineChart/seriesConfig/getSeriesWithDefaultValues.js +4 -6
- package/LineChart/seriesConfig/getSeriesWithDefaultValues.mjs +4 -6
- package/LineChart/seriesConfig/seriesProcessor.d.mts +4 -2
- package/LineChart/seriesConfig/seriesProcessor.d.ts +4 -2
- package/LineChart/seriesConfig/seriesProcessor.js +39 -15
- package/LineChart/seriesConfig/seriesProcessor.mjs +39 -15
- package/RadarChart/RadarSeriesPlot/useRadarSeriesData.d.mts +2 -2
- package/RadarChart/RadarSeriesPlot/useRadarSeriesData.d.ts +2 -2
- package/ScatterChart/Scatter.d.mts +11 -0
- package/ScatterChart/Scatter.d.ts +11 -0
- package/ScatterChart/Scatter.js +11 -0
- package/ScatterChart/Scatter.mjs +14 -0
- package/ScatterChart/ScatterChart.js +29 -10
- package/ScatterChart/ScatterChart.mjs +29 -10
- package/ScatterChart/seriesConfig/seriesProcessor.js +9 -4
- package/ScatterChart/seriesConfig/seriesProcessor.mjs +9 -4
- package/SparkLineChart/SparkLineChart.js +27 -9
- package/SparkLineChart/SparkLineChart.mjs +27 -9
- package/hooks/useAxis.d.mts +2 -2
- package/hooks/useAxis.d.ts +2 -2
- package/hooks/useTicks.d.mts +1 -1
- package/hooks/useTicks.d.ts +1 -1
- package/hooks/useTicks.js +21 -3
- package/hooks/useTicks.mjs +21 -3
- package/index.d.mts +4 -0
- package/index.d.ts +4 -0
- package/index.js +46 -2
- package/index.mjs +5 -1
- package/internals/cubiqSolver.d.mts +5 -0
- package/internals/cubiqSolver.d.ts +5 -0
- package/internals/cubiqSolver.js +62 -0
- package/internals/cubiqSolver.mjs +56 -0
- package/internals/index.d.mts +5 -1
- package/internals/index.d.ts +5 -1
- package/internals/index.js +47 -2
- package/internals/index.mjs +5 -1
- package/internals/isPolar.d.mts +3 -2
- package/internals/isPolar.d.ts +3 -2
- package/internals/isPolar.js +4 -0
- package/internals/isPolar.mjs +3 -0
- package/internals/material/index.js +6 -1
- package/internals/material/index.mjs +6 -1
- package/internals/plugins/corePlugins/useChartSeriesConfig/types/colorProcessor.types.d.mts +8 -9
- package/internals/plugins/corePlugins/useChartSeriesConfig/types/colorProcessor.types.d.ts +8 -9
- package/internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeAxis.js +8 -12
- package/internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeAxis.mjs +8 -12
- package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.d.mts +1 -0
- package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.d.ts +1 -0
- package/internals/plugins/featurePlugins/useChartPolarAxis/computeAxisValue.d.mts +3 -2
- package/internals/plugins/featurePlugins/useChartPolarAxis/computeAxisValue.d.ts +3 -2
- package/internals/plugins/featurePlugins/useChartPolarAxis/computeAxisValue.js +29 -16
- package/internals/plugins/featurePlugins/useChartPolarAxis/computeAxisValue.mjs +30 -17
- package/internals/plugins/featurePlugins/useChartPolarAxis/defaultizeAxis.js +3 -3
- package/internals/plugins/featurePlugins/useChartPolarAxis/defaultizeAxis.mjs +3 -3
- package/internals/plugins/featurePlugins/useChartTooltip/useChartTooltip.selectors.d.mts +2 -2
- package/internals/plugins/featurePlugins/useChartTooltip/useChartTooltip.selectors.d.ts +2 -2
- package/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.js +3 -3
- package/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.mjs +3 -3
- package/models/axis.d.mts +13 -2
- package/models/axis.d.ts +13 -2
- package/models/seriesType/bar.d.mts +21 -7
- package/models/seriesType/bar.d.ts +21 -7
- package/models/seriesType/common.d.mts +10 -0
- package/models/seriesType/common.d.ts +10 -0
- package/models/seriesType/composition.d.mts +3 -1
- package/models/seriesType/composition.d.ts +3 -1
- package/models/seriesType/composition.js +6 -2
- package/models/seriesType/composition.mjs +5 -1
- package/models/seriesType/index.d.mts +3 -3
- package/models/seriesType/index.d.ts +3 -3
- package/models/seriesType/index.js +0 -22
- package/models/seriesType/index.mjs +0 -2
- package/models/seriesType/line.d.mts +22 -8
- package/models/seriesType/line.d.ts +22 -8
- package/models/seriesType/scatter.d.mts +9 -0
- package/models/seriesType/scatter.d.ts +9 -0
- package/models/slots/chartsBaseSlotProps.d.mts +17 -0
- package/models/slots/chartsBaseSlotProps.d.ts +17 -0
- package/models/slots/chartsBaseSlots.d.mts +7 -1
- package/models/slots/chartsBaseSlots.d.ts +7 -1
- package/models/z-axis.d.mts +9 -0
- package/models/z-axis.d.ts +9 -0
- package/package.json +182 -126
- package/themeAugmentation/components.d.mts +4 -0
- package/themeAugmentation/components.d.ts +4 -0
- package/themeAugmentation/overrides.d.mts +2 -0
- package/themeAugmentation/overrides.d.ts +2 -0
- package/themeAugmentation/props.d.mts +2 -0
- package/themeAugmentation/props.d.ts +2 -0
- package/utils/epsilon.d.mts +1 -0
- package/utils/epsilon.d.ts +1 -0
- package/utils/epsilon.js +7 -0
- package/utils/epsilon.mjs +1 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.ChartsRadiusGrid = ChartsRadiusGrid;
|
|
8
|
+
var React = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _useTicks = require("../hooks/useTicks");
|
|
10
|
+
var _styledComponents = require("./styledComponents");
|
|
11
|
+
var _ChartsProvider = require("../context/ChartsProvider");
|
|
12
|
+
var _useChartPolarAxis = require("../internals/plugins/featurePlugins/useChartPolarAxis");
|
|
13
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
|
+
/**
|
|
15
|
+
* @ignore - internal component.
|
|
16
|
+
*/
|
|
17
|
+
function ChartsRadiusGrid(props) {
|
|
18
|
+
const {
|
|
19
|
+
store
|
|
20
|
+
} = (0, _ChartsProvider.useChartsContext)();
|
|
21
|
+
const {
|
|
22
|
+
axis,
|
|
23
|
+
startAngle,
|
|
24
|
+
endAngle,
|
|
25
|
+
isFullCircle,
|
|
26
|
+
classes
|
|
27
|
+
} = props;
|
|
28
|
+
const {
|
|
29
|
+
cx,
|
|
30
|
+
cy
|
|
31
|
+
} = store.use(_useChartPolarAxis.selectorChartPolarCenter);
|
|
32
|
+
const {
|
|
33
|
+
scale,
|
|
34
|
+
tickNumber,
|
|
35
|
+
tickInterval,
|
|
36
|
+
tickSpacing
|
|
37
|
+
} = axis;
|
|
38
|
+
const ticks = (0, _useTicks.useTicks)({
|
|
39
|
+
scale,
|
|
40
|
+
tickNumber,
|
|
41
|
+
tickInterval,
|
|
42
|
+
tickSpacing,
|
|
43
|
+
direction: 'radius'
|
|
44
|
+
});
|
|
45
|
+
if (isFullCircle) {
|
|
46
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(React.Fragment, {
|
|
47
|
+
children: ticks.map(({
|
|
48
|
+
offset: radius
|
|
49
|
+
}) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_styledComponents.GridCircle, {
|
|
50
|
+
cx: cx,
|
|
51
|
+
cy: cy,
|
|
52
|
+
r: radius,
|
|
53
|
+
className: classes.radiusLine
|
|
54
|
+
}, `radius-${radius}`))
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
const startDx = Math.cos(startAngle - Math.PI / 2);
|
|
58
|
+
const startDy = Math.sin(startAngle - Math.PI / 2);
|
|
59
|
+
const endDx = Math.cos(endAngle - Math.PI / 2);
|
|
60
|
+
const endDy = Math.sin(endAngle - Math.PI / 2);
|
|
61
|
+
const isLargeArc = Math.abs(endAngle - startAngle) >= Math.PI;
|
|
62
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(React.Fragment, {
|
|
63
|
+
children: ticks.map(({
|
|
64
|
+
offset: radius
|
|
65
|
+
}) => {
|
|
66
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_styledComponents.GridPath, {
|
|
67
|
+
d: `M${cx + startDx * radius},${cy + startDy * radius} A ${radius} ${radius} 0 ${isLargeArc ? 1 : 0} 1 ${cx + endDx * radius},${cy + endDy * radius}`,
|
|
68
|
+
className: classes.radiusLine
|
|
69
|
+
}, `radius-${radius}`);
|
|
70
|
+
})
|
|
71
|
+
});
|
|
72
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { useTicks } from "../hooks/useTicks.mjs";
|
|
3
|
+
import { GridCircle, GridPath } from "./styledComponents.mjs";
|
|
4
|
+
import { useChartsContext } from "../context/ChartsProvider/index.mjs";
|
|
5
|
+
import { selectorChartPolarCenter } from "../internals/plugins/featurePlugins/useChartPolarAxis/index.mjs";
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
/**
|
|
8
|
+
* @ignore - internal component.
|
|
9
|
+
*/
|
|
10
|
+
export function ChartsRadiusGrid(props) {
|
|
11
|
+
const {
|
|
12
|
+
store
|
|
13
|
+
} = useChartsContext();
|
|
14
|
+
const {
|
|
15
|
+
axis,
|
|
16
|
+
startAngle,
|
|
17
|
+
endAngle,
|
|
18
|
+
isFullCircle,
|
|
19
|
+
classes
|
|
20
|
+
} = props;
|
|
21
|
+
const {
|
|
22
|
+
cx,
|
|
23
|
+
cy
|
|
24
|
+
} = store.use(selectorChartPolarCenter);
|
|
25
|
+
const {
|
|
26
|
+
scale,
|
|
27
|
+
tickNumber,
|
|
28
|
+
tickInterval,
|
|
29
|
+
tickSpacing
|
|
30
|
+
} = axis;
|
|
31
|
+
const ticks = useTicks({
|
|
32
|
+
scale,
|
|
33
|
+
tickNumber,
|
|
34
|
+
tickInterval,
|
|
35
|
+
tickSpacing,
|
|
36
|
+
direction: 'radius'
|
|
37
|
+
});
|
|
38
|
+
if (isFullCircle) {
|
|
39
|
+
return /*#__PURE__*/_jsx(React.Fragment, {
|
|
40
|
+
children: ticks.map(({
|
|
41
|
+
offset: radius
|
|
42
|
+
}) => /*#__PURE__*/_jsx(GridCircle, {
|
|
43
|
+
cx: cx,
|
|
44
|
+
cy: cy,
|
|
45
|
+
r: radius,
|
|
46
|
+
className: classes.radiusLine
|
|
47
|
+
}, `radius-${radius}`))
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
const startDx = Math.cos(startAngle - Math.PI / 2);
|
|
51
|
+
const startDy = Math.sin(startAngle - Math.PI / 2);
|
|
52
|
+
const endDx = Math.cos(endAngle - Math.PI / 2);
|
|
53
|
+
const endDy = Math.sin(endAngle - Math.PI / 2);
|
|
54
|
+
const isLargeArc = Math.abs(endAngle - startAngle) >= Math.PI;
|
|
55
|
+
return /*#__PURE__*/_jsx(React.Fragment, {
|
|
56
|
+
children: ticks.map(({
|
|
57
|
+
offset: radius
|
|
58
|
+
}) => {
|
|
59
|
+
return /*#__PURE__*/_jsx(GridPath, {
|
|
60
|
+
d: `M${cx + startDx * radius},${cy + startDy * radius} A ${radius} ${radius} 0 ${isLargeArc ? 1 : 0} 1 ${cx + endDx * radius},${cy + endDy * radius}`,
|
|
61
|
+
className: classes.radiusLine
|
|
62
|
+
}, `radius-${radius}`);
|
|
63
|
+
})
|
|
64
|
+
});
|
|
65
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type ChartsRadialGridClasses } from "./chartsRadialGridClasses.mjs";
|
|
2
|
+
import { type PolarAxisDefaultized } from "../models/axis.mjs";
|
|
3
|
+
interface ChartsRotationGridProps {
|
|
4
|
+
axis: PolarAxisDefaultized<any, any, any>;
|
|
5
|
+
innerRadius: number;
|
|
6
|
+
outerRadius: number;
|
|
7
|
+
classes: Partial<ChartsRadialGridClasses>;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* @ignore - internal component.
|
|
11
|
+
*/
|
|
12
|
+
export declare function ChartsRotationGrid(props: ChartsRotationGridProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type ChartsRadialGridClasses } from "./chartsRadialGridClasses.js";
|
|
2
|
+
import { type PolarAxisDefaultized } from "../models/axis.js";
|
|
3
|
+
interface ChartsRotationGridProps {
|
|
4
|
+
axis: PolarAxisDefaultized<any, any, any>;
|
|
5
|
+
innerRadius: number;
|
|
6
|
+
outerRadius: number;
|
|
7
|
+
classes: Partial<ChartsRadialGridClasses>;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* @ignore - internal component.
|
|
11
|
+
*/
|
|
12
|
+
export declare function ChartsRotationGrid(props: ChartsRotationGridProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.ChartsRotationGrid = ChartsRotationGrid;
|
|
8
|
+
var React = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _useTicks = require("../hooks/useTicks");
|
|
10
|
+
var _styledComponents = require("./styledComponents");
|
|
11
|
+
var _ChartsProvider = require("../context/ChartsProvider");
|
|
12
|
+
var _useChartPolarAxis = require("../internals/plugins/featurePlugins/useChartPolarAxis");
|
|
13
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
|
+
/**
|
|
15
|
+
* @ignore - internal component.
|
|
16
|
+
*/
|
|
17
|
+
function ChartsRotationGrid(props) {
|
|
18
|
+
const {
|
|
19
|
+
store
|
|
20
|
+
} = (0, _ChartsProvider.useChartsContext)();
|
|
21
|
+
const {
|
|
22
|
+
axis,
|
|
23
|
+
innerRadius,
|
|
24
|
+
outerRadius,
|
|
25
|
+
classes
|
|
26
|
+
} = props;
|
|
27
|
+
const {
|
|
28
|
+
cx,
|
|
29
|
+
cy
|
|
30
|
+
} = store.use(_useChartPolarAxis.selectorChartPolarCenter);
|
|
31
|
+
const {
|
|
32
|
+
scale,
|
|
33
|
+
tickNumber,
|
|
34
|
+
tickInterval,
|
|
35
|
+
tickSpacing
|
|
36
|
+
} = axis;
|
|
37
|
+
const ticks = (0, _useTicks.useTicks)({
|
|
38
|
+
scale,
|
|
39
|
+
tickNumber,
|
|
40
|
+
tickInterval,
|
|
41
|
+
tickSpacing,
|
|
42
|
+
direction: 'rotation'
|
|
43
|
+
});
|
|
44
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(React.Fragment, {
|
|
45
|
+
children: ticks.map(({
|
|
46
|
+
value,
|
|
47
|
+
offset
|
|
48
|
+
}) => {
|
|
49
|
+
const angle = offset - Math.PI / 2;
|
|
50
|
+
const dx = Math.cos(angle);
|
|
51
|
+
const dy = Math.sin(angle);
|
|
52
|
+
const x1 = cx + innerRadius * dx;
|
|
53
|
+
const y1 = cy + innerRadius * dy;
|
|
54
|
+
const x2 = cx + outerRadius * dx;
|
|
55
|
+
const y2 = cy + outerRadius * dy;
|
|
56
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_styledComponents.GridLine, {
|
|
57
|
+
x1: x1,
|
|
58
|
+
y1: y1,
|
|
59
|
+
x2: x2,
|
|
60
|
+
y2: y2,
|
|
61
|
+
className: classes.rotationLine
|
|
62
|
+
}, `rotation-${value?.getTime?.() ?? value}`);
|
|
63
|
+
})
|
|
64
|
+
});
|
|
65
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { useTicks } from "../hooks/useTicks.mjs";
|
|
3
|
+
import { GridLine } from "./styledComponents.mjs";
|
|
4
|
+
import { useChartsContext } from "../context/ChartsProvider/index.mjs";
|
|
5
|
+
import { selectorChartPolarCenter } from "../internals/plugins/featurePlugins/useChartPolarAxis/index.mjs";
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
/**
|
|
8
|
+
* @ignore - internal component.
|
|
9
|
+
*/
|
|
10
|
+
export function ChartsRotationGrid(props) {
|
|
11
|
+
const {
|
|
12
|
+
store
|
|
13
|
+
} = useChartsContext();
|
|
14
|
+
const {
|
|
15
|
+
axis,
|
|
16
|
+
innerRadius,
|
|
17
|
+
outerRadius,
|
|
18
|
+
classes
|
|
19
|
+
} = props;
|
|
20
|
+
const {
|
|
21
|
+
cx,
|
|
22
|
+
cy
|
|
23
|
+
} = store.use(selectorChartPolarCenter);
|
|
24
|
+
const {
|
|
25
|
+
scale,
|
|
26
|
+
tickNumber,
|
|
27
|
+
tickInterval,
|
|
28
|
+
tickSpacing
|
|
29
|
+
} = axis;
|
|
30
|
+
const ticks = useTicks({
|
|
31
|
+
scale,
|
|
32
|
+
tickNumber,
|
|
33
|
+
tickInterval,
|
|
34
|
+
tickSpacing,
|
|
35
|
+
direction: 'rotation'
|
|
36
|
+
});
|
|
37
|
+
return /*#__PURE__*/_jsx(React.Fragment, {
|
|
38
|
+
children: ticks.map(({
|
|
39
|
+
value,
|
|
40
|
+
offset
|
|
41
|
+
}) => {
|
|
42
|
+
const angle = offset - Math.PI / 2;
|
|
43
|
+
const dx = Math.cos(angle);
|
|
44
|
+
const dy = Math.sin(angle);
|
|
45
|
+
const x1 = cx + innerRadius * dx;
|
|
46
|
+
const y1 = cy + innerRadius * dy;
|
|
47
|
+
const x2 = cx + outerRadius * dx;
|
|
48
|
+
const y2 = cy + outerRadius * dy;
|
|
49
|
+
return /*#__PURE__*/_jsx(GridLine, {
|
|
50
|
+
x1: x1,
|
|
51
|
+
y1: y1,
|
|
52
|
+
x2: x2,
|
|
53
|
+
y2: y2,
|
|
54
|
+
className: classes.rotationLine
|
|
55
|
+
}, `rotation-${value?.getTime?.() ?? value}`);
|
|
56
|
+
})
|
|
57
|
+
});
|
|
58
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface ChartsRadialGridClasses {
|
|
2
|
+
/** Styles applied to the root element. */
|
|
3
|
+
root: string;
|
|
4
|
+
/** Styles applied to every line element. */
|
|
5
|
+
line: string;
|
|
6
|
+
/** Styles applied to rotation (spoke) lines. */
|
|
7
|
+
rotationLine: string;
|
|
8
|
+
/** Styles applied to radius (circular) lines. */
|
|
9
|
+
radiusLine: string;
|
|
10
|
+
}
|
|
11
|
+
export type ChartsRadialGridClassKey = keyof ChartsRadialGridClasses;
|
|
12
|
+
export declare function getChartsRadialGridUtilityClass(slot: string): string;
|
|
13
|
+
export declare const chartsRadialGridClasses: ChartsRadialGridClasses;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface ChartsRadialGridClasses {
|
|
2
|
+
/** Styles applied to the root element. */
|
|
3
|
+
root: string;
|
|
4
|
+
/** Styles applied to every line element. */
|
|
5
|
+
line: string;
|
|
6
|
+
/** Styles applied to rotation (spoke) lines. */
|
|
7
|
+
rotationLine: string;
|
|
8
|
+
/** Styles applied to radius (circular) lines. */
|
|
9
|
+
radiusLine: string;
|
|
10
|
+
}
|
|
11
|
+
export type ChartsRadialGridClassKey = keyof ChartsRadialGridClasses;
|
|
12
|
+
export declare function getChartsRadialGridUtilityClass(slot: string): string;
|
|
13
|
+
export declare const chartsRadialGridClasses: ChartsRadialGridClasses;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.chartsRadialGridClasses = void 0;
|
|
8
|
+
exports.getChartsRadialGridUtilityClass = getChartsRadialGridUtilityClass;
|
|
9
|
+
var _generateUtilityClass = _interopRequireDefault(require("@mui/utils/generateUtilityClass"));
|
|
10
|
+
var _generateUtilityClasses = _interopRequireDefault(require("@mui/utils/generateUtilityClasses"));
|
|
11
|
+
function getChartsRadialGridUtilityClass(slot) {
|
|
12
|
+
return (0, _generateUtilityClass.default)('MuiChartsRadialGrid', slot);
|
|
13
|
+
}
|
|
14
|
+
const chartsRadialGridClasses = exports.chartsRadialGridClasses = (0, _generateUtilityClasses.default)('MuiChartsRadialGrid', ['root', 'line', 'rotationLine', 'radiusLine']);
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import generateUtilityClass from '@mui/utils/generateUtilityClass';
|
|
2
|
+
import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
|
|
3
|
+
export function getChartsRadialGridUtilityClass(slot) {
|
|
4
|
+
return generateUtilityClass('MuiChartsRadialGrid', slot);
|
|
5
|
+
}
|
|
6
|
+
export const chartsRadialGridClasses = generateUtilityClasses('MuiChartsRadialGrid', ['root', 'line', 'rotationLine', 'radiusLine']);
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { type ChartsRadialGridProps, ChartsRadialGrid as Unstable_ChartsRadialGrid } from "./ChartsRadialGrid.mjs";
|
|
2
|
+
export { chartsRadialGridClasses } from "./chartsRadialGridClasses.mjs";
|
|
3
|
+
export type { ChartsRadialGridClasses, ChartsRadialGridClassKey } from "./chartsRadialGridClasses.mjs";
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { type ChartsRadialGridProps, ChartsRadialGrid as Unstable_ChartsRadialGrid } from "./ChartsRadialGrid.js";
|
|
2
|
+
export { chartsRadialGridClasses } from "./chartsRadialGridClasses.js";
|
|
3
|
+
export type { ChartsRadialGridClasses, ChartsRadialGridClassKey } from "./chartsRadialGridClasses.js";
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "Unstable_ChartsRadialGrid", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _ChartsRadialGrid.ChartsRadialGrid;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "chartsRadialGridClasses", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _chartsRadialGridClasses.chartsRadialGridClasses;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
var _ChartsRadialGrid = require("./ChartsRadialGrid");
|
|
19
|
+
var _chartsRadialGridClasses = require("./chartsRadialGridClasses");
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const GridRoot: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme>, Pick<import("react").SVGProps<SVGGElement>, keyof import("react").SVGProps<SVGGElement>>, {}>;
|
|
2
|
+
export declare const GridLine: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme>, Pick<import("react").SVGLineElementAttributes<SVGLineElement>, keyof import("react").SVGLineElementAttributes<SVGLineElement>>, {}>;
|
|
3
|
+
export declare const GridPath: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme>, Pick<import("react").SVGProps<SVGPathElement>, keyof import("react").SVGProps<SVGPathElement>>, {}>;
|
|
4
|
+
export declare const GridCircle: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme>, Pick<import("react").SVGProps<SVGCircleElement>, keyof import("react").SVGProps<SVGCircleElement>>, {}>;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const GridRoot: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme>, Pick<import("react").SVGProps<SVGGElement>, keyof import("react").SVGProps<SVGGElement>>, {}>;
|
|
2
|
+
export declare const GridLine: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme>, Pick<import("react").SVGLineElementAttributes<SVGLineElement>, keyof import("react").SVGLineElementAttributes<SVGLineElement>>, {}>;
|
|
3
|
+
export declare const GridPath: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme>, Pick<import("react").SVGProps<SVGPathElement>, keyof import("react").SVGProps<SVGPathElement>>, {}>;
|
|
4
|
+
export declare const GridCircle: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme>, Pick<import("react").SVGProps<SVGCircleElement>, keyof import("react").SVGProps<SVGCircleElement>>, {}>;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.GridRoot = exports.GridPath = exports.GridLine = exports.GridCircle = void 0;
|
|
7
|
+
var _styles = require("@mui/material/styles");
|
|
8
|
+
var _chartsRadialGridClasses = require("./chartsRadialGridClasses");
|
|
9
|
+
const GridRoot = exports.GridRoot = (0, _styles.styled)('g', {
|
|
10
|
+
name: 'MuiChartsRadialGrid',
|
|
11
|
+
slot: 'Root',
|
|
12
|
+
overridesResolver: (props, styles) => [{
|
|
13
|
+
[`& .${_chartsRadialGridClasses.chartsRadialGridClasses.rotationLine}`]: styles.rotationLine
|
|
14
|
+
}, {
|
|
15
|
+
[`& .${_chartsRadialGridClasses.chartsRadialGridClasses.radiusLine}`]: styles.radiusLine
|
|
16
|
+
}, styles.root]
|
|
17
|
+
})({});
|
|
18
|
+
const GridLine = exports.GridLine = (0, _styles.styled)('line', {
|
|
19
|
+
slot: 'internal',
|
|
20
|
+
shouldForwardProp: undefined
|
|
21
|
+
})(({
|
|
22
|
+
theme
|
|
23
|
+
}) => ({
|
|
24
|
+
stroke: (theme.vars || theme).palette.divider,
|
|
25
|
+
shapeRendering: 'crispEdges',
|
|
26
|
+
strokeWidth: 1,
|
|
27
|
+
fill: 'none'
|
|
28
|
+
}));
|
|
29
|
+
const GridPath = exports.GridPath = (0, _styles.styled)('path', {
|
|
30
|
+
slot: 'internal',
|
|
31
|
+
shouldForwardProp: undefined
|
|
32
|
+
})(({
|
|
33
|
+
theme
|
|
34
|
+
}) => ({
|
|
35
|
+
stroke: (theme.vars || theme).palette.divider,
|
|
36
|
+
shapeRendering: 'crispEdges',
|
|
37
|
+
strokeWidth: 1,
|
|
38
|
+
fill: 'none'
|
|
39
|
+
}));
|
|
40
|
+
const GridCircle = exports.GridCircle = (0, _styles.styled)('circle', {
|
|
41
|
+
slot: 'internal',
|
|
42
|
+
shouldForwardProp: undefined
|
|
43
|
+
})(({
|
|
44
|
+
theme
|
|
45
|
+
}) => ({
|
|
46
|
+
stroke: (theme.vars || theme).palette.divider,
|
|
47
|
+
shapeRendering: 'crispEdges',
|
|
48
|
+
strokeWidth: 1,
|
|
49
|
+
fill: 'none'
|
|
50
|
+
}));
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { styled } from '@mui/material/styles';
|
|
2
|
+
import { chartsRadialGridClasses } from "./chartsRadialGridClasses.mjs";
|
|
3
|
+
export const GridRoot = styled('g', {
|
|
4
|
+
name: 'MuiChartsRadialGrid',
|
|
5
|
+
slot: 'Root',
|
|
6
|
+
overridesResolver: (props, styles) => [{
|
|
7
|
+
[`& .${chartsRadialGridClasses.rotationLine}`]: styles.rotationLine
|
|
8
|
+
}, {
|
|
9
|
+
[`& .${chartsRadialGridClasses.radiusLine}`]: styles.radiusLine
|
|
10
|
+
}, styles.root]
|
|
11
|
+
})({});
|
|
12
|
+
export const GridLine = styled('line', {
|
|
13
|
+
slot: 'internal',
|
|
14
|
+
shouldForwardProp: undefined
|
|
15
|
+
})(({
|
|
16
|
+
theme
|
|
17
|
+
}) => ({
|
|
18
|
+
stroke: (theme.vars || theme).palette.divider,
|
|
19
|
+
shapeRendering: 'crispEdges',
|
|
20
|
+
strokeWidth: 1,
|
|
21
|
+
fill: 'none'
|
|
22
|
+
}));
|
|
23
|
+
export const GridPath = styled('path', {
|
|
24
|
+
slot: 'internal',
|
|
25
|
+
shouldForwardProp: undefined
|
|
26
|
+
})(({
|
|
27
|
+
theme
|
|
28
|
+
}) => ({
|
|
29
|
+
stroke: (theme.vars || theme).palette.divider,
|
|
30
|
+
shapeRendering: 'crispEdges',
|
|
31
|
+
strokeWidth: 1,
|
|
32
|
+
fill: 'none'
|
|
33
|
+
}));
|
|
34
|
+
export const GridCircle = styled('circle', {
|
|
35
|
+
slot: 'internal',
|
|
36
|
+
shouldForwardProp: undefined
|
|
37
|
+
})(({
|
|
38
|
+
theme
|
|
39
|
+
}) => ({
|
|
40
|
+
stroke: (theme.vars || theme).palette.divider,
|
|
41
|
+
shapeRendering: 'crispEdges',
|
|
42
|
+
strokeWidth: 1,
|
|
43
|
+
fill: 'none'
|
|
44
|
+
}));
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { AxisId } from "../models/axis.mjs";
|
|
2
|
+
import { type ChartsRadialAxisClasses } from "./chartsRadiusAxisClasses.mjs";
|
|
3
|
+
export interface ChartsRadiusAxisProps {
|
|
4
|
+
/**
|
|
5
|
+
* Id of the radius axis to render.
|
|
6
|
+
* If not provided, it will use the first defined radius axis.
|
|
7
|
+
*/
|
|
8
|
+
axisId?: AxisId;
|
|
9
|
+
/**
|
|
10
|
+
* The position of the axis in polar coordinates.
|
|
11
|
+
* It can be 'start', 'end', or a specific angle in degrees.
|
|
12
|
+
* @default 'start'
|
|
13
|
+
*/
|
|
14
|
+
position?: 'start' | 'end' | number;
|
|
15
|
+
/**
|
|
16
|
+
* If `true`, the axis line is not rendered.
|
|
17
|
+
* @default false
|
|
18
|
+
*/
|
|
19
|
+
disableLine?: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* If `true`, the ticks are not rendered.
|
|
22
|
+
* @default false
|
|
23
|
+
*/
|
|
24
|
+
disableTicks?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* The size (in pixels) of the tick marks.
|
|
27
|
+
* @default 6
|
|
28
|
+
*/
|
|
29
|
+
tickSize?: number;
|
|
30
|
+
/**
|
|
31
|
+
* Set the position of the tick labels relative to the axis line.
|
|
32
|
+
* The before/after is defined based on clockwise direction.
|
|
33
|
+
* @default 'after'
|
|
34
|
+
*/
|
|
35
|
+
tickLabelPosition?: 'center' | 'after' | 'before';
|
|
36
|
+
/**
|
|
37
|
+
* Set the position of the tick relative to the axis line.
|
|
38
|
+
* The before/after is defined based on clockwise direction.
|
|
39
|
+
* @default 'after'
|
|
40
|
+
*/
|
|
41
|
+
tickPosition?: 'after' | 'before';
|
|
42
|
+
/**
|
|
43
|
+
* A CSS class name applied to the root element.
|
|
44
|
+
*/
|
|
45
|
+
className?: string;
|
|
46
|
+
classes?: Partial<ChartsRadialAxisClasses>;
|
|
47
|
+
}
|
|
48
|
+
export declare function ChartsRadiusAxis(props: ChartsRadiusAxisProps): import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { AxisId } from "../models/axis.js";
|
|
2
|
+
import { type ChartsRadialAxisClasses } from "./chartsRadiusAxisClasses.js";
|
|
3
|
+
export interface ChartsRadiusAxisProps {
|
|
4
|
+
/**
|
|
5
|
+
* Id of the radius axis to render.
|
|
6
|
+
* If not provided, it will use the first defined radius axis.
|
|
7
|
+
*/
|
|
8
|
+
axisId?: AxisId;
|
|
9
|
+
/**
|
|
10
|
+
* The position of the axis in polar coordinates.
|
|
11
|
+
* It can be 'start', 'end', or a specific angle in degrees.
|
|
12
|
+
* @default 'start'
|
|
13
|
+
*/
|
|
14
|
+
position?: 'start' | 'end' | number;
|
|
15
|
+
/**
|
|
16
|
+
* If `true`, the axis line is not rendered.
|
|
17
|
+
* @default false
|
|
18
|
+
*/
|
|
19
|
+
disableLine?: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* If `true`, the ticks are not rendered.
|
|
22
|
+
* @default false
|
|
23
|
+
*/
|
|
24
|
+
disableTicks?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* The size (in pixels) of the tick marks.
|
|
27
|
+
* @default 6
|
|
28
|
+
*/
|
|
29
|
+
tickSize?: number;
|
|
30
|
+
/**
|
|
31
|
+
* Set the position of the tick labels relative to the axis line.
|
|
32
|
+
* The before/after is defined based on clockwise direction.
|
|
33
|
+
* @default 'after'
|
|
34
|
+
*/
|
|
35
|
+
tickLabelPosition?: 'center' | 'after' | 'before';
|
|
36
|
+
/**
|
|
37
|
+
* Set the position of the tick relative to the axis line.
|
|
38
|
+
* The before/after is defined based on clockwise direction.
|
|
39
|
+
* @default 'after'
|
|
40
|
+
*/
|
|
41
|
+
tickPosition?: 'after' | 'before';
|
|
42
|
+
/**
|
|
43
|
+
* A CSS class name applied to the root element.
|
|
44
|
+
*/
|
|
45
|
+
className?: string;
|
|
46
|
+
classes?: Partial<ChartsRadialAxisClasses>;
|
|
47
|
+
}
|
|
48
|
+
export declare function ChartsRadiusAxis(props: ChartsRadiusAxisProps): import("react/jsx-runtime").JSX.Element | null;
|