UNPKG

@mui/x-charts

Version:

The community edition of MUI X Charts components.

55 lines (53 loc) 2.17 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 _useItemHighlightStateGetter = require("../../hooks/useItemHighlightStateGetter"); var _useIsItemFocusedGetter = require("../../hooks/useIsItemFocusedGetter"); var _getModifiedArcProperties = require("./getModifiedArcProperties"); function useTransformData(series) { const { id: seriesId, data, faded, highlighted } = series; const getHighlightState = (0, _useItemHighlightStateGetter.useItemHighlightStateGetter)(); const isItemFocused = (0, _useIsItemFocusedGetter.useIsItemFocusedGetter)(); const dataWithHighlight = React.useMemo(() => data.map((item, itemIndex) => { const identifier = { type: 'pie', seriesId, dataIndex: itemIndex }; const highlightState = getHighlightState(identifier); const isHighlighted = highlightState === 'highlighted'; const isFaded = highlightState === 'faded'; const isFocused = isItemFocused(identifier); // TODO v9: Replace the second argument with the result of useSeriesLayout const arcSizes = (0, _getModifiedArcProperties.getModifiedArcProperties)(series, { radius: { inner: series.innerRadius ?? 0, outer: series.outerRadius, label: series.arcLabelRadius ?? 0, available: 0 } }, isHighlighted, isFaded); const attributesOverride = (0, _extends2.default)({ additionalRadius: 0 }, isFaded && faded || isHighlighted && highlighted || {}); return (0, _extends2.default)({}, item, attributesOverride, { dataIndex: itemIndex, isFaded, isHighlighted, isFocused }, arcSizes); }), [data, seriesId, getHighlightState, isItemFocused, series, faded, highlighted]); return dataWithHighlight; }