UNPKG

@mui/x-charts

Version:

The community edition of MUI X Charts components.

53 lines (51 loc) 1.75 kB
'use client'; import _extends from "@babel/runtime/helpers/esm/extends"; import * as React from 'react'; import { useItemHighlightedGetter } from "../../hooks/useItemHighlightedGetter.js"; import { useIsItemFocusedGetter } from "../../hooks/useIsItemFocusedGetter.js"; import { getModifiedArcProperties } from "./getModifiedArcProperties.js"; export function useTransformData(series) { const { id: seriesId, data, faded, highlighted } = series; const { isFaded: isItemFaded, isHighlighted: isItemHighlighted } = useItemHighlightedGetter(); const isItemFocused = useIsItemFocusedGetter(); const dataWithHighlight = React.useMemo(() => data.map((item, itemIndex) => { const currentItem = { seriesId, dataIndex: itemIndex }; const isHighlighted = isItemHighlighted(currentItem); const isFaded = !isHighlighted && isItemFaded(currentItem); const isFocused = isItemFocused({ type: 'pie', seriesId, dataIndex: itemIndex }); // TODO v9: Replace the second argument with the result of useSeriesLayout const arcSizes = getModifiedArcProperties(series, { radius: { inner: series.innerRadius ?? 0, outer: series.outerRadius, label: series.arcLabelRadius ?? 0, available: 0 } }, isHighlighted, isFaded); const attributesOverride = _extends({ additionalRadius: 0 }, isFaded && faded || isHighlighted && highlighted || {}); return _extends({}, item, attributesOverride, { dataIndex: itemIndex, isFaded, isHighlighted, isFocused }, arcSizes); }), [data, seriesId, isItemHighlighted, isItemFaded, isItemFocused, series, faded, highlighted]); return dataWithHighlight; }