UNPKG

@mui/x-data-grid

Version:

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

72 lines (71 loc) 2.9 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.ColumnHeaderMenuIcon = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var React = _interopRequireWildcard(require("react")); var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses")); var _useGridApiContext = require("../../hooks/utils/useGridApiContext"); var _gridClasses = require("../../constants/gridClasses"); var _useGridRootProps = require("../../hooks/utils/useGridRootProps"); var _jsxRuntime = require("react/jsx-runtime"); const useUtilityClasses = ownerState => { const { classes, open } = ownerState; const slots = { root: ['menuIcon', open && 'menuOpen'], button: ['menuIconButton'] }; return (0, _composeClasses.default)(slots, _gridClasses.getDataGridUtilityClass, classes); }; const ColumnHeaderMenuIcon = exports.ColumnHeaderMenuIcon = /*#__PURE__*/React.memo(props => { const { colDef, open, columnMenuId, columnMenuButtonId, iconButtonRef } = props; const apiRef = (0, _useGridApiContext.useGridApiContext)(); const rootProps = (0, _useGridRootProps.useGridRootProps)(); const ownerState = (0, _extends2.default)({}, props, { classes: rootProps.classes }); const classes = useUtilityClasses(ownerState); const handleMenuIconClick = React.useCallback(event => { event.preventDefault(); event.stopPropagation(); apiRef.current.toggleColumnMenu(colDef.field); }, [apiRef, colDef.field]); const columnName = colDef.headerName ?? colDef.field; return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { className: classes.root, children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseTooltip, (0, _extends2.default)({ title: apiRef.current.getLocaleText('columnMenuLabel'), enterDelay: 1000 }, rootProps.slotProps?.baseTooltip, { children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseIconButton, (0, _extends2.default)({ ref: iconButtonRef, tabIndex: -1, className: classes.button, "aria-label": apiRef.current.getLocaleText('columnMenuAriaLabel')(columnName), size: "small", onClick: handleMenuIconClick, "aria-haspopup": "menu", "aria-expanded": open, "aria-controls": open ? columnMenuId : undefined, id: columnMenuButtonId }, rootProps.slotProps?.baseIconButton, { children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.columnMenuIcon, { fontSize: "inherit" }) })) })) }); }); if (process.env.NODE_ENV !== "production") ColumnHeaderMenuIcon.displayName = "ColumnHeaderMenuIcon";