UNPKG

@mui/x-charts

Version:

The community edition of MUI X Charts components.

57 lines (56 loc) 2.45 kB
"use strict"; 'use client'; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.useTransformData = useTransformData; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var React = _interopRequireWildcard(require("react")); var _useItemHighlightedGetter = require("../../hooks/useItemHighlightedGetter"); var _angleConversion = require("../../internals/angleConversion"); function useTransformData(series) { const { id: seriesId, data, faded, highlighted, paddingAngle: basePaddingAngle = 0, innerRadius: baseInnerRadius = 0, arcLabelRadius: baseArcLabelRadius, outerRadius: baseOuterRadius, cornerRadius: baseCornerRadius = 0 } = series; const { isFaded: isItemFaded, isHighlighted: isItemHighlighted } = (0, _useItemHighlightedGetter.useItemHighlightedGetter)(); const dataWithHighlight = React.useMemo(() => data.map((item, itemIndex) => { const currentItem = { seriesId, dataIndex: itemIndex }; const isHighlighted = isItemHighlighted(currentItem); const isFaded = !isHighlighted && isItemFaded(currentItem); const attributesOverride = (0, _extends2.default)({ additionalRadius: 0 }, isFaded && faded || isHighlighted && highlighted || {}); const paddingAngle = Math.max(0, (0, _angleConversion.deg2rad)(attributesOverride.paddingAngle ?? basePaddingAngle)); const innerRadius = Math.max(0, attributesOverride.innerRadius ?? baseInnerRadius); const outerRadius = Math.max(0, attributesOverride.outerRadius ?? baseOuterRadius + attributesOverride.additionalRadius); const cornerRadius = attributesOverride.cornerRadius ?? baseCornerRadius; const arcLabelRadius = attributesOverride.arcLabelRadius ?? baseArcLabelRadius ?? (innerRadius + outerRadius) / 2; return (0, _extends2.default)({}, item, attributesOverride, { dataIndex: itemIndex, isFaded, isHighlighted, paddingAngle, innerRadius, outerRadius, cornerRadius, arcLabelRadius }); }), [baseCornerRadius, baseInnerRadius, baseOuterRadius, basePaddingAngle, baseArcLabelRadius, data, faded, highlighted, isItemFaded, isItemHighlighted, seriesId]); return dataWithHighlight; }