UNPKG

@mui/x-charts

Version:

The community edition of MUI X Charts components.

60 lines (58 loc) 2.21 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 _useIsItemFocusedGetter = require("../../hooks/useIsItemFocusedGetter"); var _getModifiedArcProperties = require("./getModifiedArcProperties"); function useTransformData(series) { const { id: seriesId, data, faded, highlighted } = series; const { isFaded: isItemFaded, isHighlighted: isItemHighlighted } = (0, _useItemHighlightedGetter.useItemHighlightedGetter)(); const isItemFocused = (0, _useIsItemFocusedGetter.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 = (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, isItemHighlighted, isItemFaded, isItemFocused, series, faded, highlighted]); return dataWithHighlight; }