UNPKG

@mui/x-data-grid

Version:

The Community plan edition of the Data Grid components (MUI X).

80 lines (78 loc) 3.87 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.GridToolbarColumnsButton = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var React = _interopRequireWildcard(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _utils = require("@mui/material/utils"); var _forwardRef = require("@mui/x-internals/forwardRef"); var _useGridSelector = require("../../hooks/utils/useGridSelector"); var _gridPreferencePanelSelector = require("../../hooks/features/preferencesPanel/gridPreferencePanelSelector"); var _gridPreferencePanelsValue = require("../../hooks/features/preferencesPanel/gridPreferencePanelsValue"); var _useGridApiContext = require("../../hooks/utils/useGridApiContext"); var _useGridRootProps = require("../../hooks/utils/useGridRootProps"); var _jsxRuntime = require("react/jsx-runtime"); const GridToolbarColumnsButton = exports.GridToolbarColumnsButton = (0, _forwardRef.forwardRef)(function GridToolbarColumnsButton(props, ref) { const { slotProps = {} } = props; const buttonProps = slotProps.button || {}; const tooltipProps = slotProps.tooltip || {}; const columnButtonId = (0, _utils.unstable_useId)(); const columnPanelId = (0, _utils.unstable_useId)(); const apiRef = (0, _useGridApiContext.useGridApiContext)(); const rootProps = (0, _useGridRootProps.useGridRootProps)(); const preferencePanel = (0, _useGridSelector.useGridSelector)(apiRef, _gridPreferencePanelSelector.gridPreferencePanelStateSelector); const showColumns = event => { if (preferencePanel.open && preferencePanel.openedPanelValue === _gridPreferencePanelsValue.GridPreferencePanelsValue.columns) { apiRef.current.hidePreferences(); } else { apiRef.current.showPreferences(_gridPreferencePanelsValue.GridPreferencePanelsValue.columns, columnPanelId, columnButtonId); } buttonProps.onClick?.(event); }; // Disable the button if the corresponding is disabled if (rootProps.disableColumnSelector) { return null; } const isOpen = preferencePanel.open && preferencePanel.panelId === columnPanelId; return /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseTooltip, (0, _extends2.default)({ title: apiRef.current.getLocaleText('toolbarColumnsLabel'), enterDelay: 1000 }, rootProps.slotProps?.baseTooltip, tooltipProps, { children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseButton, (0, _extends2.default)({ id: columnButtonId, size: "small", "aria-label": apiRef.current.getLocaleText('toolbarColumnsLabel'), "aria-haspopup": "menu", "aria-expanded": isOpen, "aria-controls": isOpen ? columnPanelId : undefined, startIcon: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.columnSelectorIcon, {}) }, rootProps.slotProps?.baseButton, buttonProps, { onPointerUp: event => { if (preferencePanel.open) { event.stopPropagation(); } buttonProps.onPointerUp?.(event); }, onClick: showColumns, ref: ref, children: apiRef.current.getLocaleText('toolbarColumns') })) })); }); process.env.NODE_ENV !== "production" ? GridToolbarColumnsButton.propTypes = { // ----------------------------- Warning -------------------------------- // | These PropTypes are generated from the TypeScript type definitions | // | To update them edit the TypeScript types and run "pnpm proptypes" | // ---------------------------------------------------------------------- /** * The props used for each slot inside. * @default {} */ slotProps: _propTypes.default.object } : void 0;