UNPKG

@mui/x-data-grid-pro

Version:

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

52 lines (49 loc) 2.83 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.useGridDetailPanelPreProcessors = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var React = _interopRequireWildcard(require("react")); var _xDataGrid = require("@mui/x-data-grid"); var _internals = require("@mui/x-data-grid/internals"); var _gridDetailPanelToggleColDef = require("./gridDetailPanelToggleColDef"); var _gridDetailPanelSelector = require("./gridDetailPanelSelector"); const useGridDetailPanelPreProcessors = (privateApiRef, props) => { const addToggleColumn = React.useCallback(columnsState => { if (props.getDetailPanelContent == null) { // Remove the toggle column, when it exists if (columnsState.lookup[_gridDetailPanelToggleColDef.GRID_DETAIL_PANEL_TOGGLE_FIELD]) { delete columnsState.lookup[_gridDetailPanelToggleColDef.GRID_DETAIL_PANEL_TOGGLE_FIELD]; columnsState.orderedFields = columnsState.orderedFields.filter(field => field !== _gridDetailPanelToggleColDef.GRID_DETAIL_PANEL_TOGGLE_FIELD); } return columnsState; } // Don't add the toggle column if there's already one // The user might have manually added it to have it in a custom position if (columnsState.lookup[_gridDetailPanelToggleColDef.GRID_DETAIL_PANEL_TOGGLE_FIELD]) { return columnsState; } // Otherwise, add the toggle column at the beginning columnsState.orderedFields = [_gridDetailPanelToggleColDef.GRID_DETAIL_PANEL_TOGGLE_FIELD, ...columnsState.orderedFields]; columnsState.lookup[_gridDetailPanelToggleColDef.GRID_DETAIL_PANEL_TOGGLE_FIELD] = (0, _extends2.default)({}, _gridDetailPanelToggleColDef.GRID_DETAIL_PANEL_TOGGLE_COL_DEF, { headerName: privateApiRef.current.getLocaleText('detailPanelToggle') }); return columnsState; }, [privateApiRef, props.getDetailPanelContent]); const addExpandedClassToRow = React.useCallback((classes, id) => { if (props.getDetailPanelContent == null) { return classes; } const expandedRowIds = (0, _gridDetailPanelSelector.gridDetailPanelExpandedRowIdsSelector)(privateApiRef); if (!expandedRowIds.has(id)) { return classes; } return [...classes, _xDataGrid.gridClasses['row--detailPanelExpanded']]; }, [privateApiRef, props.getDetailPanelContent]); (0, _internals.useGridRegisterPipeProcessor)(privateApiRef, 'hydrateColumns', addToggleColumn); (0, _internals.useGridRegisterPipeProcessor)(privateApiRef, 'rowClassName', addExpandedClassToRow); }; exports.useGridDetailPanelPreProcessors = useGridDetailPanelPreProcessors;