@mui/x-charts
Version:
The community edition of MUI X Charts components.
41 lines (40 loc) • 1.31 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useRadarMetricData = useRadarMetricData;
var _useDrawingArea = require("../../hooks/useDrawingArea");
var _useAxis = require("../../hooks/useAxis");
var _angleConversion = require("../../internals/angleConversion");
function useRadarMetricData() {
const rotationAxis = (0, _useAxis.useRotationAxis)();
const {
scale: rotationScale,
valueFormatter,
labelGap = 10
} = rotationAxis;
const {
radiusAxis
} = (0, _useAxis.useRadiusAxes)();
const drawingArea = (0, _useDrawingArea.useDrawingArea)();
const cx = drawingArea.left + drawingArea.width / 2;
const cy = drawingArea.top + drawingArea.height / 2;
const metrics = rotationScale.domain();
const angles = metrics.map(key => rotationScale(key));
return {
corners: metrics.map((metric, dataIndex) => {
const radiusScale = radiusAxis[metric].scale;
const r = radiusScale.range()[1] + labelGap;
const angle = angles[dataIndex];
return {
x: cx + r * Math.sin(angle),
y: cy - r * Math.cos(angle),
angle: (0, _angleConversion.rad2deg)(angle),
label: valueFormatter?.(metric, {
location: 'tick',
scale: rotationScale
}) ?? metric
};
})
};
}
;