UNPKG

@mui/x-charts

Version:

The community edition of MUI X Charts components.

41 lines (40 loc) 1.31 kB
"use strict"; 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 }; }) }; }