@mui/x-charts
Version:
The community edition of MUI X Charts components.
61 lines (60 loc) • 2.62 kB
JavaScript
;
'use client';
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.FocusedPieArc = FocusedPieArc;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
var React = _interopRequireWildcard(require("react"));
var _styles = require("@mui/material/styles");
var _useFocusedItem = require("../hooks/useFocusedItem");
var _usePieSeries = require("../hooks/usePieSeries");
var _PieArc = require("./PieArc");
var _useItemHighlighted = require("../hooks/useItemHighlighted");
var _getModifiedArcProperties = require("./dataTransform/getModifiedArcProperties");
var _jsxRuntime = require("react/jsx-runtime");
const _excluded = ["arcLabelRadius"];
function FocusedPieArc(props) {
const theme = (0, _styles.useTheme)();
const focusedItem = (0, _useFocusedItem.useFocusedItem)();
const pieSeriesLayout = (0, _usePieSeries.usePieSeriesLayout)();
const {
isHighlighted,
isFaded
} = (0, _useItemHighlighted.useItemHighlighted)(focusedItem);
const pieSeries = (0, _usePieSeries.usePieSeriesContext)();
if (focusedItem === null || focusedItem.type !== 'pie' || !pieSeries) {
return null;
}
const series = pieSeries?.series[focusedItem.seriesId];
const {
center,
radius
} = pieSeriesLayout[focusedItem.seriesId];
if (!series || !center || !radius) {
return null;
}
const item = series.data[focusedItem.dataIndex];
const _getModifiedArcProper = (0, _getModifiedArcProperties.getModifiedArcProperties)(series, pieSeriesLayout[focusedItem.seriesId], isHighlighted, isFaded),
arcSizes = (0, _objectWithoutPropertiesLoose2.default)(_getModifiedArcProper, _excluded);
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_PieArc.PieArc, (0, _extends2.default)({
transform: `translate(${pieSeriesLayout[series.id].center.x}, ${pieSeriesLayout[series.id].center.y})`,
startAngle: item.startAngle,
endAngle: item.endAngle,
color: "transparent",
pointerEvents: "none",
skipInteraction: true,
skipAnimation: true,
stroke: (theme.vars ?? theme).palette.text.primary,
id: series.id,
className: _PieArc.pieArcClasses.focusIndicator,
dataIndex: focusedItem.dataIndex,
isFaded: false,
isHighlighted: false,
isFocused: false,
strokeWidth: 3
}, arcSizes, props));
}