@mui/x-charts
Version:
The community edition of MUI X Charts components.
57 lines (56 loc) • 2.45 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 _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;
}
;