UNPKG

@mui/x-charts

Version:

The community edition of MUI X Charts components.

104 lines (103 loc) 3.59 kB
'use client'; import _extends from "@babel/runtime/helpers/esm/extends"; import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose"; const _excluded = ["seriesId", "classes", "color", "startAngle", "endAngle", "paddingAngle", "arcLabelRadius", "cornerRadius", "formattedArcLabel", "isHighlighted", "isFaded", "skipAnimation", "hidden", "className"]; import * as React from 'react'; import PropTypes from 'prop-types'; import clsx from 'clsx'; import { styled } from '@mui/material/styles'; import { ANIMATION_DURATION_MS, ANIMATION_TIMING_FUNCTION } from "../internals/animation/animation.mjs"; import { useAnimatePieArcLabel } from "../hooks/animation/useAnimatePieArcLabel.mjs"; import { pieClasses, useUtilityClasses } from "./pieClasses.mjs"; import { jsx as _jsx } from "react/jsx-runtime"; const PieArcLabelRoot = styled('text', { name: 'MuiPieArcLabel', slot: 'Root' })(({ theme }) => ({ fill: (theme.vars || theme).palette.text.primary, textAnchor: 'middle', dominantBaseline: 'middle', pointerEvents: 'none', animationName: 'animate-opacity', animationDuration: '0s', animationTimingFunction: ANIMATION_TIMING_FUNCTION, transitionDuration: `${ANIMATION_DURATION_MS}ms`, transitionProperty: 'opacity', transitionTimingFunction: ANIMATION_TIMING_FUNCTION, [`&.${pieClasses.animate}`]: { animationDuration: `${ANIMATION_DURATION_MS}ms` }, '@keyframes animate-opacity': { from: { opacity: 0 } } })); const PieArcLabel = /*#__PURE__*/React.forwardRef(function PieArcLabel(props, ref) { const { seriesId, classes: innerClasses, color, startAngle, endAngle, paddingAngle, arcLabelRadius, cornerRadius, formattedArcLabel, isHighlighted, isFaded, skipAnimation, hidden, className } = props, other = _objectWithoutPropertiesLoose(props, _excluded); const ownerState = { seriesId, classes: innerClasses, color, isFaded, isHighlighted, skipAnimation }; const classes = useUtilityClasses(ownerState); const animatedProps = useAnimatePieArcLabel({ cornerRadius, startAngle, endAngle, arcLabelRadius, paddingAngle, skipAnimation, ref }); return /*#__PURE__*/_jsx(PieArcLabelRoot, _extends({ className: clsx(classes.arcLabel, className), "data-highlighted": isHighlighted || undefined, "data-faded": isFaded || undefined }, other, animatedProps, { opacity: hidden ? 0 : 1, children: formattedArcLabel })); }); if (process.env.NODE_ENV !== "production") PieArcLabel.displayName = "PieArcLabel"; process.env.NODE_ENV !== "production" ? PieArcLabel.propTypes = { // ----------------------------- Warning -------------------------------- // | These PropTypes are generated from the TypeScript type definitions | // | To update them edit the TypeScript types and run "pnpm proptypes" | // ---------------------------------------------------------------------- arcLabelRadius: PropTypes.number.isRequired, classes: PropTypes.object, color: PropTypes.string.isRequired, cornerRadius: PropTypes.number.isRequired, endAngle: PropTypes.number.isRequired, formattedArcLabel: PropTypes.string, hidden: PropTypes.bool, isFaded: PropTypes.bool.isRequired, isHighlighted: PropTypes.bool.isRequired, paddingAngle: PropTypes.number.isRequired, seriesId: PropTypes.string.isRequired, skipAnimation: PropTypes.bool.isRequired, startAngle: PropTypes.number.isRequired } : void 0; export { PieArcLabel };