@mui/x-charts
Version:
The community edition of MUI X Charts components.
44 lines (43 loc) • 1.32 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useRadarGridData = useRadarGridData;
var _useScale = require("../../hooks/useScale");
var _useDrawingArea = require("../../hooks/useDrawingArea");
var _hooks = require("../../hooks");
var _useChartContext = require("../../context/ChartProvider/useChartContext");
function useRadarGridData() {
const {
instance
} = (0, _useChartContext.useChartContext)();
const rotationScale = (0, _useScale.useRotationScale)();
const {
radiusAxis
} = (0, _hooks.useRadiusAxes)();
const drawingArea = (0, _useDrawingArea.useDrawingArea)();
const cx = drawingArea.left + drawingArea.width / 2;
const cy = drawingArea.top + drawingArea.height / 2;
if (!rotationScale || rotationScale.domain().length === 0) {
return null;
}
const metrics = rotationScale.domain();
const angles = metrics.map(key => rotationScale(key));
return {
center: {
x: cx,
y: cy
},
corners: metrics.map((metric, dataIndex) => {
const radiusScale = radiusAxis[metric].scale;
const r = radiusScale.range()[1];
const angle = angles[dataIndex];
const [x, y] = instance.polar2svg(r, angle);
return {
x,
y
};
}),
radius: radiusAxis[metrics[0]].scale.range()[1]
};
}
;