UNPKG

@mui/x-data-grid-premium

Version:

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

63 lines 2.07 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose"; const _excluded = ["className", "children"]; import * as React from 'react'; import clsx from 'clsx'; import { styled } from '@mui/material/styles'; import { getDataGridUtilityClass, useGridSelector } from '@mui/x-data-grid-pro'; import composeClasses from '@mui/utils/composeClasses'; import { useGridApiContext } from "../../hooks/utils/useGridApiContext.mjs"; import { ResizablePanel, ResizablePanelHandle } from "../resizablePanel/index.mjs"; import { useGridRootProps } from "../../hooks/utils/useGridRootProps.mjs"; import { gridSidebarContentSelector } from "../../hooks/features/sidebar/index.mjs"; import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; const useUtilityClasses = ownerState => { const { classes } = ownerState; const slots = { root: ['sidebar'] }; return composeClasses(slots, getDataGridUtilityClass, classes); }; const SidebarRoot = styled(ResizablePanel, { name: 'MuiDataGrid', slot: 'Sidebar' })({ display: 'flex', flexDirection: 'column', width: 300, minWidth: 260, maxWidth: 400, overflow: 'hidden' }); function Sidebar(props) { const { className } = props, other = _objectWithoutPropertiesLoose(props, _excluded); const apiRef = useGridApiContext(); const rootProps = useGridRootProps(); const classes = useUtilityClasses(rootProps); const { value, sidebarId, labelId } = useGridSelector(apiRef, gridSidebarContentSelector); if (!value) { return null; } const sidebarContent = apiRef.current.unstable_applyPipeProcessors('sidebar', null, value); if (!sidebarContent) { return null; } return /*#__PURE__*/_jsxs(SidebarRoot, _extends({ id: sidebarId, className: clsx(className, classes.root), ownerState: rootProps, "aria-labelledby": labelId }, other, { children: [/*#__PURE__*/_jsx(ResizablePanelHandle, {}), sidebarContent] })); } export { Sidebar };