UNPKG

@mui/x-data-grid-pro

Version:

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

56 lines (55 loc) 2.2 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import * as React from 'react'; import { useTheme } from '@mui/material/styles'; import { getThemeProps } from '@mui/system'; import { GRID_DEFAULT_LOCALE_TEXT, DATA_GRID_PROPS_DEFAULT_VALUES } from '@mui/x-data-grid'; import { computeSlots, ROW_SELECTION_PROPAGATION_DEFAULT } from '@mui/x-data-grid/internals'; import { DATA_GRID_PRO_DEFAULT_SLOTS_COMPONENTS } from "../constants/dataGridProDefaultSlotsComponents.js"; const getDataGridProForcedProps = themedProps => _extends({ signature: 'DataGridPro' }, themedProps.dataSource ? { filterMode: 'server', sortingMode: 'server', paginationMode: 'server' } : {}); /** * The default values of `DataGridProPropsWithDefaultValue` to inject in the props of DataGridPro. */ export const DATA_GRID_PRO_PROPS_DEFAULT_VALUES = _extends({}, DATA_GRID_PROPS_DEFAULT_VALUES, { autosizeOnMount: false, defaultGroupingExpansionDepth: 0, disableAutosize: false, disableChildrenFiltering: false, disableChildrenSorting: false, disableColumnPinning: false, getDetailPanelHeight: () => 500, headerFilters: false, keepColumnPositionIfDraggedOutside: false, rowSelectionPropagation: ROW_SELECTION_PROPAGATION_DEFAULT, rowReordering: false, rowsLoadingMode: 'client', scrollEndThreshold: 80, treeData: false, lazyLoading: false, lazyLoadingRequestThrottleMs: 500, listView: false, multipleColumnsSortingMode: 'withModifierKey' }); const defaultSlots = DATA_GRID_PRO_DEFAULT_SLOTS_COMPONENTS; export const useDataGridProProps = inProps => { const theme = useTheme(); const themedProps = React.useMemo(() => getThemeProps({ props: inProps, theme, name: 'MuiDataGrid' }), [theme, inProps]); 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_PRO_PROPS_DEFAULT_VALUES, themedProps, { localeText, slots }, getDataGridProForcedProps(themedProps)), [themedProps, localeText, slots]); };