UNPKG

@mui/x-data-grid-pro

Version:

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

84 lines (83 loc) 3.8 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.GridColumnMenuPinningItem = GridColumnMenuPinningItem; var React = _interopRequireWildcard(require("react")); var _RtlProvider = require("@mui/system/RtlProvider"); var _propTypes = _interopRequireDefault(require("prop-types")); var _xDataGrid = require("@mui/x-data-grid"); var _useGridApiContext = require("../hooks/utils/useGridApiContext"); var _useGridRootProps = require("../hooks/utils/useGridRootProps"); var _jsxRuntime = require("react/jsx-runtime"); function GridColumnMenuPinningItem(props) { const { colDef, onClick } = props; const apiRef = (0, _useGridApiContext.useGridApiContext)(); const rootProps = (0, _useGridRootProps.useGridRootProps)(); const isRtl = (0, _RtlProvider.useRtl)(); const pinColumn = React.useCallback(side => event => { apiRef.current.pinColumn(colDef.field, side); onClick(event); }, [apiRef, colDef.field, onClick]); const unpinColumn = event => { apiRef.current.unpinColumn(colDef.field); onClick(event); }; const pinToLeftMenuItem = /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseMenuItem, { onClick: pinColumn(_xDataGrid.GridPinnedColumnPosition.LEFT), iconStart: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.columnMenuPinLeftIcon, { fontSize: "small" }), children: apiRef.current.getLocaleText('pinToLeft') }); const pinToRightMenuItem = /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseMenuItem, { onClick: pinColumn(_xDataGrid.GridPinnedColumnPosition.RIGHT), iconStart: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.columnMenuPinRightIcon, { fontSize: "small" }), children: apiRef.current.getLocaleText('pinToRight') }); if (!colDef) { return null; } const side = apiRef.current.isColumnPinned(colDef.field); if (side) { const otherSide = side === _xDataGrid.GridPinnedColumnPosition.RIGHT ? _xDataGrid.GridPinnedColumnPosition.LEFT : _xDataGrid.GridPinnedColumnPosition.RIGHT; const label = otherSide === _xDataGrid.GridPinnedColumnPosition.RIGHT ? 'pinToRight' : 'pinToLeft'; const Icon = side === _xDataGrid.GridPinnedColumnPosition.RIGHT ? rootProps.slots.columnMenuPinLeftIcon : rootProps.slots.columnMenuPinRightIcon; return /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, { children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseMenuItem, { onClick: pinColumn(otherSide), iconStart: /*#__PURE__*/(0, _jsxRuntime.jsx)(Icon, { fontSize: "small" }), children: apiRef.current.getLocaleText(label) }), /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseMenuItem, { onClick: unpinColumn, iconStart: "", children: apiRef.current.getLocaleText('unpin') })] }); } if (isRtl) { return /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, { children: [pinToRightMenuItem, pinToLeftMenuItem] }); } return /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, { children: [pinToLeftMenuItem, pinToRightMenuItem] }); } process.env.NODE_ENV !== "production" ? GridColumnMenuPinningItem.propTypes = { // ----------------------------- Warning -------------------------------- // | These PropTypes are generated from the TypeScript type definitions | // | To update them edit the TypeScript types and run "pnpm proptypes" | // ---------------------------------------------------------------------- colDef: _propTypes.default.object.isRequired, onClick: _propTypes.default.func.isRequired } : void 0;