UNPKG

@mui/x-data-grid-premium

Version:

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

66 lines (65 loc) 2.02 kB
'use client'; import _extends from "@babel/runtime/helpers/esm/extends"; import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose"; const _excluded = ["className", "children", "initiallyOpen"]; import * as React from 'react'; import { styled } from '@mui/system'; import { vars } from '@mui/x-data-grid-pro/internals'; import useId from '@mui/utils/useId'; import { getDataGridUtilityClass } from '@mui/x-data-grid-pro'; import composeClasses from '@mui/utils/composeClasses'; import clsx from 'clsx'; import { CollapsibleContext } from "./CollapsibleContext.js"; import { useGridRootProps } from "../../hooks/utils/useGridRootProps.js"; import { jsx as _jsx } from "react/jsx-runtime"; const useUtilityClasses = ownerState => { const { classes } = ownerState; const slots = { root: ['collapsible'] }; return composeClasses(slots, getDataGridUtilityClass, classes); }; const CollapsibleRoot = styled('div', { name: 'MuiDataGrid', slot: 'Collapsible' })(({ ownerState }) => ({ display: 'flex', flexDirection: 'column', flex: ownerState.open ? '1 0 auto' : '0 0 auto', borderRadius: vars.radius.base })); function Collapsible(props) { const { className, children, initiallyOpen = true } = props, other = _objectWithoutPropertiesLoose(props, _excluded); const [open, setOpen] = React.useState(initiallyOpen); const panelId = useId(); const rootProps = useGridRootProps(); const ownerState = { classes: rootProps.classes, open }; const classes = useUtilityClasses(ownerState); const contextValue = React.useMemo(() => ({ open, onOpenChange: setOpen, panelId }), [open, setOpen, panelId]); return /*#__PURE__*/_jsx(CollapsibleContext.Provider, { value: contextValue, children: /*#__PURE__*/_jsx(CollapsibleRoot, _extends({ ownerState: ownerState, className: clsx(classes.root, className) }, other, { children: children })) }); } export { Collapsible };