@mui/x-data-grid
Version:
The Community plan edition of the Data Grid components (MUI X).
92 lines (91 loc) • 3.11 kB
JavaScript
import _extends from "@babel/runtime/helpers/esm/extends";
import * as React from 'react';
import { useThemeProps } from '@mui/material/styles';
import { GRID_DEFAULT_LOCALE_TEXT } from '../constants';
import { DATA_GRID_DEFAULT_SLOTS_COMPONENTS } from '../constants/defaultGridSlotsComponents';
import { GridEditModes } from '../models';
import { computeSlots, useProps } from '../internals/utils';
const DATA_GRID_FORCED_PROPS = {
disableMultipleColumnsFiltering: true,
disableMultipleColumnsSorting: true,
throttleRowsMs: undefined,
hideFooterRowCount: false,
pagination: true,
checkboxSelectionVisibleOnly: false,
disableColumnReorder: true,
keepColumnPositionIfDraggedOutside: false,
signature: 'DataGrid'
};
/**
* The default values of `DataGridPropsWithDefaultValues` to inject in the props of DataGrid.
*/
export const DATA_GRID_PROPS_DEFAULT_VALUES = {
autoHeight: false,
autoPageSize: false,
checkboxSelection: false,
checkboxSelectionVisibleOnly: false,
columnBufferPx: 150,
rowBufferPx: 150,
rows: [],
rowSelection: true,
disableColumnFilter: false,
disableColumnMenu: false,
disableColumnSelector: false,
disableDensitySelector: false,
disableEval: false,
disableMultipleColumnsFiltering: false,
disableMultipleRowSelection: false,
disableColumnSorting: false,
disableMultipleColumnsSorting: false,
disableRowSelectionOnClick: false,
disableVirtualization: false,
editMode: GridEditModes.Cell,
filterMode: 'client',
filterDebounceMs: 150,
columnHeaderHeight: 56,
hideFooter: false,
hideFooterPagination: false,
hideFooterRowCount: false,
hideFooterSelectedRowCount: false,
ignoreDiacritics: false,
logger: console,
logLevel: process.env.NODE_ENV === 'production' ? 'error' : 'warn',
pagination: false,
paginationMode: 'client',
rowHeight: 52,
resizeThrottleMs: 60,
pageSizeOptions: [25, 50, 100],
rowSpacingType: 'margin',
showCellVerticalBorder: false,
showColumnVerticalBorder: false,
sortingOrder: ['asc', 'desc', null],
sortingMode: 'client',
throttleRowsMs: 0,
disableColumnReorder: false,
disableColumnResize: false,
keepNonExistentRowsSelected: false,
keepColumnPositionIfDraggedOutside: false,
ignoreValueFormatterDuringExport: false,
clipboardCopyCellDelimiter: '\t',
rowPositionsDebounceMs: 166,
autosizeOnMount: false,
disableAutosize: false
};
const defaultSlots = DATA_GRID_DEFAULT_SLOTS_COMPONENTS;
export const useDataGridProps = inProps => {
const themedProps = useProps(
// eslint-disable-next-line material-ui/mui-name-matches-component-name
useThemeProps({
props: inProps,
name: 'MuiDataGrid'
}));
const localeText = React.useMemo(() => _extends({}, GRID_DEFAULT_LOCALE_TEXT, themedProps.localeText), [themedProps.localeText]);
const slots = React.useMemo(() => computeSlots({
defaultSlots,
slots: themedProps.slots
}), [themedProps.slots]);
return React.useMemo(() => _extends({}, DATA_GRID_PROPS_DEFAULT_VALUES, themedProps, {
localeText,
slots
}, DATA_GRID_FORCED_PROPS), [themedProps, localeText, slots]);
};