UNPKG

@mui/x-charts

Version:

The community edition of MUI X Charts components.

68 lines (67 loc) 2.31 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.useRadarSeriesData = useRadarSeriesData; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _useScale = require("../../hooks/useScale"); var _useRadarSeries = require("../../hooks/useRadarSeries"); var _useAxis = require("../../hooks/useAxis"); var _useItemHighlightedGetter = require("../../hooks/useItemHighlightedGetter"); var _useChartContext = require("../../context/ChartProvider/useChartContext"); /** * This hook provides all the data needed to display radar series. * @param querySeriesId The id of the series to display * @returns */ function useRadarSeriesData(querySeriesId) { const { instance } = (0, _useChartContext.useChartContext)(); const rotationScale = (0, _useScale.useRotationScale)(); const { radiusAxis } = (0, _useAxis.useRadiusAxes)(); const radarSeries = (0, _useRadarSeries.useRadarSeries)(querySeriesId === undefined ? undefined : [querySeriesId]); const { isFaded: isItemFaded, isHighlighted: isItemHighlighted } = (0, _useItemHighlightedGetter.useItemHighlightedGetter)(); const metrics = rotationScale?.domain() ?? []; const angles = metrics.map(key => rotationScale?.(key)); return radarSeries.map(series => { const seriesId = series.id; const isSeriesHighlighted = isItemHighlighted({ seriesId }); const isSeriesFaded = !isSeriesHighlighted && isItemFaded({ seriesId }); return (0, _extends2.default)({}, series, { seriesId: series.id, isSeriesHighlighted, isSeriesFaded, points: series.data.map((value, dataIndex) => { const highlighted = isItemHighlighted({ seriesId, dataIndex }); const faded = !highlighted && isItemFaded({ seriesId, dataIndex }); const r = radiusAxis[metrics[dataIndex]].scale(value); const angle = angles[dataIndex]; const [x, y] = instance.polar2svg(r, angle); return { x, y, isItemHighlighted: highlighted, isItemFaded: faded, dataIndex }; }) }); }); }