UNPKG

@mui/x-data-grid-premium

Version:

The Premium plan edition of the MUI X Data Grid Components.

106 lines (105 loc) 3.77 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.CollapsibleTrigger = CollapsibleTrigger; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose")); var React = _interopRequireWildcard(require("react")); var _system = require("@mui/system"); var _internals = require("@mui/x-data-grid-pro/internals"); var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses")); var _xDataGridPro = require("@mui/x-data-grid-pro"); var _clsx = _interopRequireDefault(require("clsx")); var _useGridRootProps = require("../../hooks/utils/useGridRootProps"); var _CollapsibleContext = require("./CollapsibleContext"); var _jsxRuntime = require("react/jsx-runtime"); const _excluded = ["children", "className"]; const useUtilityClasses = ownerState => { const { classes } = ownerState; const slots = { root: ['collapsibleTrigger'], icon: ['collapsibleIcon'] }; return (0, _composeClasses.default)(slots, _xDataGridPro.getDataGridUtilityClass, classes); }; const CollapsibleTriggerRoot = (0, _system.styled)('button', { name: 'MuiDataGrid', slot: 'CollapsibleTrigger' })(({ ownerState }) => ({ position: 'relative', display: 'flex', alignItems: 'center', justifyContent: 'space-between', height: 40, padding: _internals.vars.spacing(0, 1.5), border: `1px solid ${_internals.vars.colors.border.base}`, background: 'none', outline: 'none', borderTopLeftRadius: _internals.vars.radius.base, borderTopRightRadius: _internals.vars.radius.base, borderBottomLeftRadius: ownerState.open ? 0 : _internals.vars.radius.base, borderBottomRightRadius: ownerState.open ? 0 : _internals.vars.radius.base, '&:hover': { backgroundColor: _internals.vars.colors.interactive.hover, cursor: 'pointer' }, '&:focus-visible': { outline: `2px solid ${_internals.vars.colors.interactive.selected}`, outlineOffset: -2 } })); const CollapsibleIcon = (0, _system.styled)('div', { name: 'MuiDataGrid', slot: 'CollapsibleIcon' })(({ ownerState }) => ({ display: 'flex', alignItems: 'center', justifyContent: 'center', color: _internals.vars.colors.foreground.muted, transform: ownerState.open ? 'none' : 'rotate(180deg)', transition: _internals.vars.transition(['transform'], { duration: _internals.vars.transitions.duration.short, easing: _internals.vars.transitions.easing.easeInOut }) })); function CollapsibleTrigger(props) { const { children, className } = props, other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded); const rootProps = (0, _useGridRootProps.useGridRootProps)(); const { open, onOpenChange, panelId } = (0, _CollapsibleContext.useCollapsibleContext)(); const ownerState = { classes: rootProps.classes, open }; const classes = useUtilityClasses(ownerState); return /*#__PURE__*/(0, _jsxRuntime.jsxs)(CollapsibleTriggerRoot, (0, _extends2.default)({ ownerState: ownerState, className: (0, _clsx.default)(classes.root, className), tabIndex: 0, "aria-controls": open ? panelId : undefined, "aria-expanded": !open, onClick: () => onOpenChange(!open) }, other, { children: [children, /*#__PURE__*/(0, _jsxRuntime.jsx)(CollapsibleIcon, { ownerState: ownerState, className: classes.icon, children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.collapsibleIcon, {}) })] })); }