UNPKG

@mui/x-data-grid-premium

Version:

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

102 lines (101 loc) 4.18 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.GridPivotPanelHeader = GridPivotPanelHeader; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var React = _interopRequireWildcard(require("react")); var _styles = require("@mui/material/styles"); var _xDataGridPro = require("@mui/x-data-grid-pro"); var _internals = require("@mui/x-data-grid-pro/internals"); var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses")); var _sidebar = require("../sidebar"); var _useGridApiContext = require("../../hooks/utils/useGridApiContext"); var _useGridRootProps = require("../../hooks/utils/useGridRootProps"); var _gridPivotingSelectors = require("../../hooks/features/pivoting/gridPivotingSelectors"); var _GridPivotPanelSearch = require("./GridPivotPanelSearch"); var _jsxRuntime = require("react/jsx-runtime"); const useUtilityClasses = ownerState => { const { classes } = ownerState; const slots = { root: ['pivotPanelHeader'], switch: ['pivotPanelSwitch'], label: ['pivotPanelSwitchLabel'] }; return (0, _composeClasses.default)(slots, _xDataGridPro.getDataGridUtilityClass, classes); }; const GridPivotPanelHeaderRoot = (0, _styles.styled)('div', { name: 'MuiDataGrid', slot: 'PivotPanelHeader' })({ display: 'flex', alignItems: 'center', gap: _internals.vars.spacing(1), padding: _internals.vars.spacing(0, 0.75, 0, 1), boxSizing: 'border-box', height: 52 }); const GridPivotPanelSwitch = (0, _styles.styled)(_internals.NotRendered, { name: 'MuiDataGrid', slot: 'PivotPanelSwitch' })({ marginRight: 'auto' }); const GridPivotPanelSwitchLabel = (0, _styles.styled)('span', { name: 'MuiDataGrid', slot: 'PivotPanelSwitchLabel' })({ font: _internals.vars.typography.font.large, fontWeight: _internals.vars.typography.fontWeight.medium }); function GridPivotPanelHeader(props) { const { searchValue, onSearchValueChange } = props; const apiRef = (0, _useGridApiContext.useGridApiContext)(); const rootProps = (0, _useGridRootProps.useGridRootProps)(); const pivotActive = (0, _xDataGridPro.useGridSelector)(apiRef, _gridPivotingSelectors.gridPivotActiveSelector); const classes = useUtilityClasses(rootProps); const rows = (0, _xDataGridPro.useGridSelector)(apiRef, _xDataGridPro.gridRowCountSelector); const isEmptyPivot = pivotActive && rows === 0; return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_sidebar.SidebarHeader, { children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(GridPivotPanelHeaderRoot, { ownerState: rootProps, className: classes.root, children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(GridPivotPanelSwitch, (0, _extends2.default)({ as: rootProps.slots.baseSwitch, ownerState: rootProps, className: classes.switch, checked: pivotActive, onChange: event => apiRef.current.setPivotActive(event.target.checked), size: "small", label: /*#__PURE__*/(0, _jsxRuntime.jsx)(GridPivotPanelSwitchLabel, { ownerState: rootProps, className: classes.label, children: apiRef.current.getLocaleText('pivotToggleLabel') }) }, rootProps.slotProps?.baseSwitch)), /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseIconButton, (0, _extends2.default)({ onClick: () => { apiRef.current.hideSidebar(); if (isEmptyPivot) { apiRef.current.setPivotActive(false); } }, "aria-label": apiRef.current.getLocaleText('pivotCloseButton') }, rootProps.slotProps?.baseIconButton, { children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.sidebarCloseIcon, { fontSize: "small" }) }))] }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridPivotPanelSearch.GridPivotPanelSearch, { value: searchValue, onClear: () => onSearchValueChange(''), onChange: event => onSearchValueChange(event.target.value) })] }); }