UNPKG

@mui/x-charts

Version:

The community edition of MUI X Charts components.

105 lines (104 loc) 4.11 kB
"use strict"; '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.AreaElement = AreaElement; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose")); var React = _interopRequireWildcard(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _useSlotProps = _interopRequireDefault(require("@mui/utils/useSlotProps")); var _useInteractionItemProps = require("../hooks/useInteractionItemProps"); var _useItemHighlightState = require("../hooks/useItemHighlightState"); var _useChartExperimentalFeature = require("../internals/plugins/corePlugins/useChartExperimentalFeature"); var _useStore = require("../internals/store/useStore"); var _AnimatedArea = require("./AnimatedArea"); var _lineClasses = require("./lineClasses"); var _jsxRuntime = require("react/jsx-runtime"); const _excluded = ["seriesId", "classes", "color", "gradientId", "slots", "slotProps", "onClick"]; /** * Demos: * * - [Lines](https://mui.com/x/react-charts/lines/) * - [Areas demonstration](https://mui.com/x/react-charts/areas-demo/) * * API: * * - [AreaElement API](https://mui.com/x/api/charts/area-element/) */ function AreaElement(props) { const { seriesId, classes: innerClasses, color, gradientId, slots, slotProps, onClick } = props, other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded); const store = (0, _useStore.useStore)(); const enablePositionBasedPointerInteraction = store.use(_useChartExperimentalFeature.selectorChartExperimentalFeaturesState)?.enablePositionBasedPointerInteraction; const identifier = React.useMemo(() => ({ type: 'line', seriesId }), [seriesId]); const interactionProps = (0, _useInteractionItemProps.useInteractionItemProps)(identifier); const highlightState = (0, _useItemHighlightState.useItemHighlightState)(identifier); const isHighlighted = highlightState === 'highlighted'; const isFaded = highlightState === 'faded'; const ownerState = { seriesId, classes: innerClasses, color, gradientId, isFaded, isHighlighted }; const classes = (0, _lineClasses.useUtilityClasses)(); const Area = slots?.area ?? _AnimatedArea.AnimatedArea; const areaProps = (0, _useSlotProps.default)({ elementType: Area, externalSlotProps: slotProps?.area, additionalProps: (0, _extends2.default)({}, enablePositionBasedPointerInteraction ? {} : interactionProps, { onClick, cursor: onClick ? 'pointer' : 'unset', 'data-highlighted': isHighlighted || undefined, 'data-faded': isFaded || undefined, 'data-series-id': seriesId, 'data-series': seriesId }), className: classes.area, ownerState }); return /*#__PURE__*/(0, _jsxRuntime.jsx)(Area, (0, _extends2.default)({}, other, areaProps)); } process.env.NODE_ENV !== "production" ? AreaElement.propTypes = { // ----------------------------- Warning -------------------------------- // | These PropTypes are generated from the TypeScript type definitions | // | To update them edit the TypeScript types and run "pnpm proptypes" | // ---------------------------------------------------------------------- classes: _propTypes.default.object, color: _propTypes.default.string.isRequired, d: _propTypes.default.string.isRequired, gradientId: _propTypes.default.string, seriesId: _propTypes.default.string.isRequired, /** * If `true`, animations are skipped. * @default false */ skipAnimation: _propTypes.default.bool, /** * The props used for each component slot. * @default {} */ slotProps: _propTypes.default.object, /** * Overridable component slots. * @default {} */ slots: _propTypes.default.object } : void 0;