@mui/x-charts
Version:
The community edition of MUI X Charts components.
60 lines (58 loc) • 2.21 kB
JavaScript
;
'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;
}