@mui/x-data-grid 7.2.0 → 7.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +204 -2
- package/DataGrid/DataGrid.js +20 -2
- package/colDef/gridDateOperators.js +7 -0
- package/components/GridFooter.js +1 -2
- package/components/GridHeader.js +1 -2
- package/components/GridHeaders.js +3 -2
- package/components/GridPagination.d.ts +4 -1
- package/components/GridPagination.js +60 -9
- package/components/GridRow.js +2 -2
- package/components/GridScrollArea.js +1 -1
- package/components/cell/GridActionsCell.js +1 -2
- package/components/cell/GridActionsCellItem.js +1 -2
- package/components/columnHeaders/GridColumnHeaderFilterIconButton.js +1 -2
- package/components/columnHeaders/GridColumnHeaderItem.d.ts +1 -0
- package/components/columnHeaders/GridColumnHeaderItem.js +6 -4
- package/components/columnHeaders/GridColumnHeaderSeparator.js +1 -1
- package/components/columnHeaders/GridColumnHeaderSortIcon.js +1 -2
- package/components/columnHeaders/GridGenericColumnHeaderItem.js +1 -2
- package/components/columnsManagement/GridColumnsManagement.js +1 -2
- package/components/containers/GridRoot.js +1 -2
- package/components/containers/GridRootStyles.js +3 -1
- package/components/index.d.ts +1 -1
- package/components/index.js +1 -1
- package/components/menu/columnMenu/menuItems/GridColumnMenuColumnsItem.js +1 -2
- package/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +1 -2
- package/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +1 -2
- package/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +1 -2
- package/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -2
- package/components/panel/GridPanel.d.ts +1 -1
- package/components/panel/GridPanel.js +3 -1
- package/components/panel/filterPanel/GridFilterForm.js +1 -2
- package/components/panel/filterPanel/GridFilterInputBoolean.js +1 -2
- package/components/panel/filterPanel/GridFilterInputDate.js +4 -4
- package/components/panel/filterPanel/GridFilterInputSingleSelect.js +1 -2
- package/components/panel/filterPanel/GridFilterPanel.js +1 -2
- package/components/toolbar/GridToolbar.js +1 -2
- package/components/toolbar/GridToolbarDensitySelector.js +1 -2
- package/components/toolbar/GridToolbarExportContainer.js +1 -2
- package/components/toolbar/GridToolbarFilterButton.js +1 -2
- package/components/virtualization/GridVirtualScroller.js +1 -2
- package/components/virtualization/GridVirtualScrollerFiller.js +1 -2
- package/constants/gridClasses.d.ts +6 -2
- package/constants/gridClasses.js +1 -1
- package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +1 -1
- package/hooks/features/columnHeaders/useGridColumnHeaders.js +3 -4
- package/hooks/features/columnResize/useGridColumnResize.js +91 -62
- package/hooks/features/columns/gridColumnsUtils.d.ts +5 -3
- package/hooks/features/columns/gridColumnsUtils.js +9 -7
- package/hooks/features/columns/useGridColumns.js +5 -4
- package/hooks/features/density/useGridDensity.d.ts +1 -1
- package/hooks/features/density/useGridDensity.js +30 -4
- package/hooks/features/dimensions/gridDimensionsApi.d.ts +5 -1
- package/hooks/features/dimensions/useGridDimensions.d.ts +1 -1
- package/hooks/features/dimensions/useGridDimensions.js +5 -2
- package/hooks/features/editing/useGridCellEditing.js +14 -1
- package/hooks/features/export/useGridPrintExport.d.ts +1 -1
- package/hooks/features/export/useGridPrintExport.js +2 -2
- package/hooks/features/headerFiltering/useGridHeaderFiltering.d.ts +2 -2
- package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.d.ts +2 -2
- package/hooks/features/pagination/gridPaginationInterfaces.d.ts +14 -2
- package/hooks/features/pagination/gridPaginationSelector.d.ts +5 -0
- package/hooks/features/pagination/gridPaginationSelector.js +7 -1
- package/hooks/features/pagination/gridPaginationUtils.d.ts +1 -2
- package/hooks/features/pagination/gridPaginationUtils.js +5 -3
- package/hooks/features/pagination/useGridPagination.d.ts +1 -1
- package/hooks/features/pagination/useGridPagination.js +5 -1
- package/hooks/features/pagination/useGridPaginationMeta.d.ts +4 -0
- package/hooks/features/pagination/useGridPaginationMeta.js +77 -0
- package/hooks/features/pagination/useGridPaginationModel.js +2 -1
- package/hooks/features/pagination/useGridRowCount.d.ts +0 -4
- package/hooks/features/pagination/useGridRowCount.js +32 -18
- package/hooks/features/rows/gridRowsUtils.d.ts +1 -1
- package/hooks/features/virtualization/useGridVirtualScroller.d.ts +3 -3
- package/hooks/utils/useGridApiEventHandler.d.ts +2 -2
- package/hooks/utils/useGridNativeEventListener.d.ts +1 -1
- package/hooks/utils/useGridSelector.d.ts +2 -2
- package/index.js +1 -1
- package/internals/index.d.ts +1 -1
- package/internals/utils/propValidation.js +1 -1
- package/joy/icons.js +1 -2
- package/joy/joySlots.js +1 -2
- package/locales/daDK.js +3 -4
- package/models/api/gridApiCommon.d.ts +1 -1
- package/models/api/gridLocaleTextApi.d.ts +7 -3
- package/models/api/index.d.ts +1 -1
- package/models/api/index.js +0 -1
- package/models/events/gridEventLookup.d.ts +7 -1
- package/models/gridPaginationProps.d.ts +3 -0
- package/models/props/DataGridProps.d.ts +26 -8
- package/modern/DataGrid/DataGrid.js +20 -2
- package/modern/colDef/gridDateOperators.js +7 -0
- package/modern/components/GridFooter.js +1 -2
- package/modern/components/GridHeader.js +1 -2
- package/modern/components/GridHeaders.js +3 -2
- package/modern/components/GridPagination.js +60 -9
- package/modern/components/GridRow.js +2 -2
- package/modern/components/GridScrollArea.js +1 -1
- package/modern/components/cell/GridActionsCell.js +1 -2
- package/modern/components/cell/GridActionsCellItem.js +1 -2
- package/modern/components/columnHeaders/GridColumnHeaderFilterIconButton.js +1 -2
- package/modern/components/columnHeaders/GridColumnHeaderItem.js +6 -4
- package/modern/components/columnHeaders/GridColumnHeaderSeparator.js +1 -1
- package/modern/components/columnHeaders/GridColumnHeaderSortIcon.js +1 -2
- package/modern/components/columnHeaders/GridGenericColumnHeaderItem.js +1 -2
- package/modern/components/columnsManagement/GridColumnsManagement.js +1 -2
- package/modern/components/containers/GridRoot.js +1 -2
- package/modern/components/containers/GridRootStyles.js +3 -1
- package/modern/components/index.js +1 -1
- package/modern/components/menu/columnMenu/menuItems/GridColumnMenuColumnsItem.js +1 -2
- package/modern/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +1 -2
- package/modern/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +1 -2
- package/modern/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +1 -2
- package/modern/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -2
- package/modern/components/panel/GridPanel.js +3 -1
- package/modern/components/panel/filterPanel/GridFilterForm.js +1 -2
- package/modern/components/panel/filterPanel/GridFilterInputBoolean.js +1 -2
- package/modern/components/panel/filterPanel/GridFilterInputDate.js +4 -4
- package/modern/components/panel/filterPanel/GridFilterInputSingleSelect.js +1 -2
- package/modern/components/panel/filterPanel/GridFilterPanel.js +1 -2
- package/modern/components/toolbar/GridToolbar.js +1 -2
- package/modern/components/toolbar/GridToolbarDensitySelector.js +1 -2
- package/modern/components/toolbar/GridToolbarExportContainer.js +1 -2
- package/modern/components/toolbar/GridToolbarFilterButton.js +1 -2
- package/modern/components/virtualization/GridVirtualScroller.js +1 -2
- package/modern/components/virtualization/GridVirtualScrollerFiller.js +1 -2
- package/modern/constants/gridClasses.js +1 -1
- package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +3 -4
- package/modern/hooks/features/columnResize/useGridColumnResize.js +91 -62
- package/modern/hooks/features/columns/gridColumnsUtils.js +9 -7
- package/modern/hooks/features/columns/useGridColumns.js +5 -4
- package/modern/hooks/features/density/useGridDensity.js +30 -4
- package/modern/hooks/features/dimensions/useGridDimensions.js +5 -2
- package/modern/hooks/features/editing/useGridCellEditing.js +14 -1
- package/modern/hooks/features/export/useGridPrintExport.js +2 -2
- package/modern/hooks/features/pagination/gridPaginationSelector.js +7 -1
- package/modern/hooks/features/pagination/gridPaginationUtils.js +5 -3
- package/modern/hooks/features/pagination/useGridPagination.js +5 -1
- package/modern/hooks/features/pagination/useGridPaginationMeta.js +77 -0
- package/modern/hooks/features/pagination/useGridPaginationModel.js +2 -1
- package/modern/hooks/features/pagination/useGridRowCount.js +32 -18
- package/modern/index.js +1 -1
- package/modern/internals/utils/propValidation.js +1 -1
- package/modern/joy/icons.js +1 -2
- package/modern/joy/joySlots.js +1 -2
- package/modern/locales/daDK.js +3 -4
- package/modern/models/api/index.js +0 -1
- package/modern/utils/domUtils.js +4 -0
- package/node/DataGrid/DataGrid.js +20 -1
- package/node/DataGrid/useDataGridProps.js +1 -1
- package/node/colDef/gridCheckboxSelectionColDef.js +1 -1
- package/node/colDef/gridDateOperators.js +7 -0
- package/node/components/GridApiContext.js +1 -1
- package/node/components/GridColumnHeaders.js +1 -1
- package/node/components/GridFooter.js +1 -1
- package/node/components/GridHeader.js +1 -1
- package/node/components/GridHeaders.js +5 -3
- package/node/components/GridLoadingOverlay.js +1 -1
- package/node/components/GridNoResultsOverlay.js +1 -1
- package/node/components/GridNoRowsOverlay.js +1 -1
- package/node/components/GridPagination.js +60 -9
- package/node/components/GridRow.js +2 -1
- package/node/components/GridRowCount.js +1 -1
- package/node/components/GridScrollArea.js +2 -2
- package/node/components/GridScrollbarFillerCell.js +1 -1
- package/node/components/GridSelectedRowCount.js +1 -1
- package/node/components/base/GridFooterPlaceholder.js +1 -1
- package/node/components/base/GridOverlays.js +1 -1
- package/node/components/cell/GridActionsCell.js +1 -1
- package/node/components/cell/GridActionsCellItem.js +1 -1
- package/node/components/cell/GridBooleanCell.js +1 -1
- package/node/components/cell/GridCell.js +1 -1
- package/node/components/cell/GridEditBooleanCell.js +1 -1
- package/node/components/cell/GridEditDateCell.js +1 -1
- package/node/components/cell/GridEditInputCell.js +1 -1
- package/node/components/cell/GridEditSingleSelectCell.js +1 -1
- package/node/components/cell/GridSkeletonCell.js +1 -1
- package/node/components/columnHeaders/ColumnHeaderMenuIcon.js +1 -1
- package/node/components/columnHeaders/GridBaseColumnHeaders.js +1 -1
- package/node/components/columnHeaders/GridColumnGroupHeader.js +1 -1
- package/node/components/columnHeaders/GridColumnHeaderFilterIconButton.js +1 -1
- package/node/components/columnHeaders/GridColumnHeaderItem.js +5 -2
- package/node/components/columnHeaders/GridColumnHeaderSeparator.js +2 -2
- package/node/components/columnHeaders/GridColumnHeaderSortIcon.js +1 -1
- package/node/components/columnHeaders/GridColumnHeaderTitle.js +1 -1
- package/node/components/columnHeaders/GridGenericColumnHeaderItem.js +1 -1
- package/node/components/columnHeaders/GridIconButtonContainer.js +1 -1
- package/node/components/columnSelection/GridCellCheckboxRenderer.js +1 -1
- package/node/components/columnSelection/GridHeaderCheckbox.js +1 -1
- package/node/components/columnsManagement/GridColumnsManagement.js +1 -1
- package/node/components/containers/GridFooterContainer.js +1 -1
- package/node/components/containers/GridOverlay.js +1 -1
- package/node/components/containers/GridRoot.js +1 -1
- package/node/components/containers/GridRootStyles.js +3 -1
- package/node/components/containers/GridToolbarContainer.js +1 -1
- package/node/components/index.js +27 -10
- package/node/components/menu/GridMenu.js +1 -1
- package/node/components/menu/columnMenu/GridColumnHeaderMenu.js +1 -1
- package/node/components/menu/columnMenu/GridColumnMenu.js +1 -1
- package/node/components/menu/columnMenu/GridColumnMenuContainer.js +1 -1
- package/node/components/menu/columnMenu/menuItems/GridColumnMenuColumnsItem.js +1 -1
- package/node/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +1 -1
- package/node/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +1 -1
- package/node/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +1 -1
- package/node/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
- package/node/components/panel/GridColumnsPanel.js +1 -1
- package/node/components/panel/GridPanel.js +4 -2
- package/node/components/panel/GridPanelContent.js +1 -1
- package/node/components/panel/GridPanelFooter.js +1 -1
- package/node/components/panel/GridPanelHeader.js +1 -1
- package/node/components/panel/GridPanelWrapper.js +1 -1
- package/node/components/panel/GridPreferencesPanel.js +1 -1
- package/node/components/panel/filterPanel/GridFilterForm.js +1 -1
- package/node/components/panel/filterPanel/GridFilterInputBoolean.js +1 -1
- package/node/components/panel/filterPanel/GridFilterInputDate.js +5 -5
- package/node/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +1 -1
- package/node/components/panel/filterPanel/GridFilterInputMultipleValue.js +1 -1
- package/node/components/panel/filterPanel/GridFilterInputSingleSelect.js +1 -1
- package/node/components/panel/filterPanel/GridFilterInputValue.js +1 -1
- package/node/components/panel/filterPanel/GridFilterPanel.js +1 -1
- package/node/components/toolbar/GridToolbar.js +1 -1
- package/node/components/toolbar/GridToolbarColumnsButton.js +1 -1
- package/node/components/toolbar/GridToolbarDensitySelector.js +1 -1
- package/node/components/toolbar/GridToolbarExport.js +1 -1
- package/node/components/toolbar/GridToolbarExportContainer.js +1 -1
- package/node/components/toolbar/GridToolbarFilterButton.js +1 -1
- package/node/components/toolbar/GridToolbarQuickFilter.js +1 -1
- package/node/components/virtualization/GridBottomContainer.js +1 -1
- package/node/components/virtualization/GridMainContainer.js +1 -1
- package/node/components/virtualization/GridTopContainer.js +1 -1
- package/node/components/virtualization/GridVirtualScrollbar.js +1 -1
- package/node/components/virtualization/GridVirtualScroller.js +1 -1
- package/node/components/virtualization/GridVirtualScrollerContent.js +1 -1
- package/node/components/virtualization/GridVirtualScrollerFiller.js +1 -1
- package/node/components/virtualization/GridVirtualScrollerRenderZone.js +1 -1
- package/node/constants/gridClasses.js +1 -1
- package/node/context/GridContextProvider.js +1 -1
- package/node/context/GridRootPropsContext.js +1 -1
- package/node/hooks/core/pipeProcessing/useGridPipeProcessing.js +1 -1
- package/node/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +1 -1
- package/node/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +1 -1
- package/node/hooks/core/strategyProcessing/useGridRegisterStrategyProcessor.js +1 -1
- package/node/hooks/core/strategyProcessing/useGridStrategyProcessing.js +1 -1
- package/node/hooks/core/useGridApiInitialization.js +1 -1
- package/node/hooks/core/useGridLocaleText.js +1 -1
- package/node/hooks/core/useGridLoggerFactory.js +1 -1
- package/node/hooks/core/useGridRefs.js +1 -1
- package/node/hooks/core/useGridStateInitialization.js +1 -1
- package/node/hooks/core/useGridTheme.js +1 -1
- package/node/hooks/features/clipboard/useGridClipboard.js +1 -1
- package/node/hooks/features/columnGrouping/useGridColumnGrouping.js +1 -1
- package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +3 -3
- package/node/hooks/features/columnMenu/useGridColumnMenu.js +1 -1
- package/node/hooks/features/columnMenu/useGridColumnMenuSlots.js +1 -1
- package/node/hooks/features/columnResize/useGridColumnResize.js +92 -63
- package/node/hooks/features/columns/gridColumnsUtils.js +9 -7
- package/node/hooks/features/columns/useGridColumnSpanning.js +1 -1
- package/node/hooks/features/columns/useGridColumns.js +6 -5
- package/node/hooks/features/density/useGridDensity.js +31 -5
- package/node/hooks/features/dimensions/useGridDimensions.js +6 -3
- package/node/hooks/features/editing/useGridCellEditing.js +15 -2
- package/node/hooks/features/editing/useGridEditing.js +1 -1
- package/node/hooks/features/editing/useGridRowEditing.js +1 -1
- package/node/hooks/features/export/useGridCsvExport.js +1 -1
- package/node/hooks/features/export/useGridPrintExport.js +3 -3
- package/node/hooks/features/filter/useGridFilter.js +1 -1
- package/node/hooks/features/focus/useGridFocus.js +1 -1
- package/node/hooks/features/headerFiltering/useGridHeaderFiltering.js +1 -1
- package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +1 -1
- package/node/hooks/features/pagination/gridPaginationSelector.js +8 -2
- package/node/hooks/features/pagination/gridPaginationUtils.js +6 -4
- package/node/hooks/features/pagination/useGridPagination.js +5 -1
- package/node/hooks/features/pagination/useGridPaginationMeta.js +87 -0
- package/node/hooks/features/pagination/useGridPaginationModel.js +3 -2
- package/node/hooks/features/pagination/useGridRowCount.js +31 -16
- package/node/hooks/features/preferencesPanel/useGridPreferencesPanel.js +1 -1
- package/node/hooks/features/rowSelection/useGridRowSelection.js +1 -1
- package/node/hooks/features/rowSelection/useGridRowSelectionPreProcessors.js +1 -1
- package/node/hooks/features/rows/useGridParamsApi.js +1 -1
- package/node/hooks/features/rows/useGridRows.js +1 -1
- package/node/hooks/features/rows/useGridRowsMeta.js +1 -1
- package/node/hooks/features/scroll/useGridScroll.js +1 -1
- package/node/hooks/features/sorting/useGridSorting.js +1 -1
- package/node/hooks/features/statePersistence/useGridStatePersistence.js +1 -1
- package/node/hooks/features/virtualization/useGridVirtualScroller.js +1 -1
- package/node/hooks/features/virtualization/useGridVirtualization.js +1 -1
- package/node/hooks/utils/useFirstRender.js +1 -1
- package/node/hooks/utils/useGridApiContext.js +1 -1
- package/node/hooks/utils/useGridApiEventHandler.js +1 -1
- package/node/hooks/utils/useGridApiMethod.js +1 -1
- package/node/hooks/utils/useGridApiRef.js +1 -1
- package/node/hooks/utils/useGridInitializeState.js +1 -1
- package/node/hooks/utils/useGridLogger.js +1 -1
- package/node/hooks/utils/useGridNativeEventListener.js +1 -1
- package/node/hooks/utils/useGridPrivateApiContext.js +1 -1
- package/node/hooks/utils/useGridRootProps.js +1 -1
- package/node/hooks/utils/useGridSelector.js +1 -1
- package/node/hooks/utils/useGridVisibleRows.js +1 -1
- package/node/hooks/utils/useResizeObserver.js +1 -1
- package/node/hooks/utils/useRunOnce.js +1 -1
- package/node/index.js +1 -1
- package/node/internals/utils/propValidation.js +1 -1
- package/node/internals/utils/useProps.js +1 -1
- package/node/joy/icons.js +1 -1
- package/node/joy/joySlots.js +1 -1
- package/node/locales/daDK.js +3 -4
- package/node/material/components/MUISelectOption.js +1 -1
- package/node/material/icons/GridColumnUnsortedIcon.js +1 -1
- package/node/material/icons/index.js +1 -1
- package/node/models/api/index.js +0 -11
- package/node/utils/domUtils.js +5 -0
- package/node/utils/fastMemo.js +1 -1
- package/package.json +3 -5
- package/utils/domUtils.d.ts +1 -0
- package/utils/domUtils.js +4 -0
- package/utils/getGridLocalization.d.ts +1 -1
|
@@ -14,6 +14,11 @@ export declare const gridPaginationModelSelector: import("../../../utils/createS
|
|
|
14
14
|
* @category Pagination
|
|
15
15
|
*/
|
|
16
16
|
export declare const gridPaginationRowCountSelector: import("../../../utils/createSelector").OutputSelector<GridStateCommunity, number>;
|
|
17
|
+
/**
|
|
18
|
+
* Get the pagination meta
|
|
19
|
+
* @category Pagination
|
|
20
|
+
*/
|
|
21
|
+
export declare const gridPaginationMetaSelector: import("../../../utils/createSelector").OutputSelector<GridStateCommunity, import("../../..").GridPaginationMeta>;
|
|
17
22
|
/**
|
|
18
23
|
* Get the index of the page to render if the pagination is enabled
|
|
19
24
|
* @category Pagination
|
|
@@ -21,6 +21,12 @@ export const gridPaginationModelSelector = createSelector(gridPaginationSelector
|
|
|
21
21
|
*/
|
|
22
22
|
export const gridPaginationRowCountSelector = createSelector(gridPaginationSelector, pagination => pagination.rowCount);
|
|
23
23
|
|
|
24
|
+
/**
|
|
25
|
+
* Get the pagination meta
|
|
26
|
+
* @category Pagination
|
|
27
|
+
*/
|
|
28
|
+
export const gridPaginationMetaSelector = createSelector(gridPaginationSelector, pagination => pagination.meta);
|
|
29
|
+
|
|
24
30
|
/**
|
|
25
31
|
* Get the index of the page to render if the pagination is enabled
|
|
26
32
|
* @category Pagination
|
|
@@ -37,7 +43,7 @@ export const gridPageSizeSelector = createSelector(gridPaginationModelSelector,
|
|
|
37
43
|
* Get the amount of pages needed to display all the rows if the pagination is enabled
|
|
38
44
|
* @category Pagination
|
|
39
45
|
*/
|
|
40
|
-
export const gridPageCountSelector = createSelector(
|
|
46
|
+
export const gridPageCountSelector = createSelector(gridPaginationModelSelector, gridPaginationRowCountSelector, (paginationModel, rowCount) => getPageCount(rowCount, paginationModel.pageSize, paginationModel.page));
|
|
41
47
|
|
|
42
48
|
/**
|
|
43
49
|
* Get the index of the first and the last row to include in the current page if the pagination is enabled.
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { DataGridProcessedProps } from '../../../models/props/DataGridProps';
|
|
2
2
|
export declare const defaultPageSize: (autoPageSize: boolean) => 0 | 100;
|
|
3
|
-
export declare const getPageCount: (rowCount: number, pageSize: number) => number;
|
|
4
|
-
export declare const noRowCountInServerMode: () => void;
|
|
3
|
+
export declare const getPageCount: (rowCount: number, pageSize: number, page: number) => number;
|
|
5
4
|
export declare const getDefaultGridPaginationModel: (autoPageSize: boolean) => {
|
|
6
5
|
page: number;
|
|
7
6
|
pageSize: number;
|
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
import { buildWarning } from '../../../utils/warning';
|
|
2
1
|
import { GridSignature } from '../../utils';
|
|
3
2
|
const MAX_PAGE_SIZE = 100;
|
|
4
3
|
export const defaultPageSize = autoPageSize => autoPageSize ? 0 : 100;
|
|
5
|
-
export const getPageCount = (rowCount, pageSize) => {
|
|
4
|
+
export const getPageCount = (rowCount, pageSize, page) => {
|
|
6
5
|
if (pageSize > 0 && rowCount > 0) {
|
|
7
6
|
return Math.ceil(rowCount / pageSize);
|
|
8
7
|
}
|
|
8
|
+
if (rowCount === -1) {
|
|
9
|
+
// With unknown row-count, we can assume a page after the current one
|
|
10
|
+
return page + 2;
|
|
11
|
+
}
|
|
9
12
|
return 0;
|
|
10
13
|
};
|
|
11
|
-
export const noRowCountInServerMode = buildWarning(["MUI X: the 'rowCount' prop is undefined while using paginationMode='server'", 'For more detail, see http://mui.com/components/data-grid/pagination/#basic-implementation'], 'error');
|
|
12
14
|
export const getDefaultGridPaginationModel = autoPageSize => ({
|
|
13
15
|
page: 0,
|
|
14
16
|
pageSize: autoPageSize ? 0 : 100
|
|
@@ -2,7 +2,7 @@ import * as React from 'react';
|
|
|
2
2
|
import { GridPrivateApiCommunity } from '../../../models/api/gridApiCommunity';
|
|
3
3
|
import { DataGridProcessedProps } from '../../../models/props/DataGridProps';
|
|
4
4
|
import { GridStateInitializer } from '../../utils/useGridInitializeState';
|
|
5
|
-
export declare const paginationStateInitializer: GridStateInitializer<Pick<DataGridProcessedProps, 'paginationModel' | 'rowCount' | 'initialState' | 'autoPageSize' | 'signature'>>;
|
|
5
|
+
export declare const paginationStateInitializer: GridStateInitializer<Pick<DataGridProcessedProps, 'paginationModel' | 'rowCount' | 'initialState' | 'autoPageSize' | 'signature' | 'paginationMeta'>>;
|
|
6
6
|
/**
|
|
7
7
|
* @requires useGridFilter (state)
|
|
8
8
|
* @requires useGridDimensions (event) - can be after
|
|
@@ -2,14 +2,17 @@ import _extends from "@babel/runtime/helpers/esm/extends";
|
|
|
2
2
|
import { throwIfPageSizeExceedsTheLimit, getDefaultGridPaginationModel } from './gridPaginationUtils';
|
|
3
3
|
import { useGridPaginationModel } from './useGridPaginationModel';
|
|
4
4
|
import { useGridRowCount } from './useGridRowCount';
|
|
5
|
+
import { useGridPaginationMeta } from './useGridPaginationMeta';
|
|
5
6
|
export const paginationStateInitializer = (state, props) => {
|
|
6
7
|
const paginationModel = _extends({}, getDefaultGridPaginationModel(props.autoPageSize), props.paginationModel ?? props.initialState?.pagination?.paginationModel);
|
|
7
8
|
throwIfPageSizeExceedsTheLimit(paginationModel.pageSize, props.signature);
|
|
8
9
|
const rowCount = props.rowCount ?? props.initialState?.pagination?.rowCount;
|
|
10
|
+
const meta = props.paginationMeta ?? props.initialState?.pagination?.meta ?? {};
|
|
9
11
|
return _extends({}, state, {
|
|
10
12
|
pagination: {
|
|
11
13
|
paginationModel,
|
|
12
|
-
rowCount
|
|
14
|
+
rowCount,
|
|
15
|
+
meta
|
|
13
16
|
}
|
|
14
17
|
});
|
|
15
18
|
};
|
|
@@ -19,6 +22,7 @@ export const paginationStateInitializer = (state, props) => {
|
|
|
19
22
|
* @requires useGridDimensions (event) - can be after
|
|
20
23
|
*/
|
|
21
24
|
export const useGridPagination = (apiRef, props) => {
|
|
25
|
+
useGridPaginationMeta(apiRef, props);
|
|
22
26
|
useGridPaginationModel(apiRef, props);
|
|
23
27
|
useGridRowCount(apiRef, props);
|
|
24
28
|
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { GridPrivateApiCommunity } from '../../../models/api/gridApiCommunity';
|
|
3
|
+
import { DataGridProcessedProps } from '../../../models/props/DataGridProps';
|
|
4
|
+
export declare const useGridPaginationMeta: (apiRef: React.MutableRefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, 'paginationMeta' | 'initialState' | 'paginationMode' | 'onPaginationMetaChange'>) => void;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { useGridLogger, useGridSelector, useGridApiMethod } from '../../utils';
|
|
4
|
+
import { useGridRegisterPipeProcessor } from '../../core/pipeProcessing';
|
|
5
|
+
import { gridPaginationMetaSelector } from './gridPaginationSelector';
|
|
6
|
+
export const useGridPaginationMeta = (apiRef, props) => {
|
|
7
|
+
const logger = useGridLogger(apiRef, 'useGridPaginationMeta');
|
|
8
|
+
const paginationMeta = useGridSelector(apiRef, gridPaginationMetaSelector);
|
|
9
|
+
apiRef.current.registerControlState({
|
|
10
|
+
stateId: 'paginationMeta',
|
|
11
|
+
propModel: props.paginationMeta,
|
|
12
|
+
propOnChange: props.onPaginationMetaChange,
|
|
13
|
+
stateSelector: gridPaginationMetaSelector,
|
|
14
|
+
changeEvent: 'paginationMetaChange'
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* API METHODS
|
|
19
|
+
*/
|
|
20
|
+
const setPaginationMeta = React.useCallback(newPaginationMeta => {
|
|
21
|
+
if (paginationMeta === newPaginationMeta) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
logger.debug("Setting 'paginationMeta' to", newPaginationMeta);
|
|
25
|
+
apiRef.current.setState(state => _extends({}, state, {
|
|
26
|
+
pagination: _extends({}, state.pagination, {
|
|
27
|
+
meta: newPaginationMeta
|
|
28
|
+
})
|
|
29
|
+
}));
|
|
30
|
+
}, [apiRef, logger, paginationMeta]);
|
|
31
|
+
const paginationMetaApi = {
|
|
32
|
+
setPaginationMeta
|
|
33
|
+
};
|
|
34
|
+
useGridApiMethod(apiRef, paginationMetaApi, 'public');
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* PRE-PROCESSING
|
|
38
|
+
*/
|
|
39
|
+
const stateExportPreProcessing = React.useCallback((prevState, context) => {
|
|
40
|
+
const exportedPaginationMeta = gridPaginationMetaSelector(apiRef);
|
|
41
|
+
const shouldExportRowCount =
|
|
42
|
+
// Always export if the `exportOnlyDirtyModels` property is not activated
|
|
43
|
+
!context.exportOnlyDirtyModels ||
|
|
44
|
+
// Always export if the `paginationMeta` is controlled
|
|
45
|
+
props.paginationMeta != null ||
|
|
46
|
+
// Always export if the `paginationMeta` has been initialized
|
|
47
|
+
props.initialState?.pagination?.meta != null;
|
|
48
|
+
if (!shouldExportRowCount) {
|
|
49
|
+
return prevState;
|
|
50
|
+
}
|
|
51
|
+
return _extends({}, prevState, {
|
|
52
|
+
pagination: _extends({}, prevState.pagination, {
|
|
53
|
+
meta: exportedPaginationMeta
|
|
54
|
+
})
|
|
55
|
+
});
|
|
56
|
+
}, [apiRef, props.paginationMeta, props.initialState?.pagination?.meta]);
|
|
57
|
+
const stateRestorePreProcessing = React.useCallback((params, context) => {
|
|
58
|
+
const restoredPaginationMeta = context.stateToRestore.pagination?.meta ? context.stateToRestore.pagination.meta : gridPaginationMetaSelector(apiRef);
|
|
59
|
+
apiRef.current.setState(state => _extends({}, state, {
|
|
60
|
+
pagination: _extends({}, state.pagination, {
|
|
61
|
+
meta: restoredPaginationMeta
|
|
62
|
+
})
|
|
63
|
+
}));
|
|
64
|
+
return params;
|
|
65
|
+
}, [apiRef]);
|
|
66
|
+
useGridRegisterPipeProcessor(apiRef, 'exportState', stateExportPreProcessing);
|
|
67
|
+
useGridRegisterPipeProcessor(apiRef, 'restoreState', stateRestorePreProcessing);
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* EFFECTS
|
|
71
|
+
*/
|
|
72
|
+
React.useEffect(() => {
|
|
73
|
+
if (props.paginationMeta) {
|
|
74
|
+
apiRef.current.setPaginationMeta(props.paginationMeta);
|
|
75
|
+
}
|
|
76
|
+
}, [apiRef, props.paginationMeta]);
|
|
77
|
+
};
|
|
@@ -9,7 +9,8 @@ export const getDerivedPaginationModel = (paginationState, signature, pagination
|
|
|
9
9
|
let paginationModel = paginationState.paginationModel;
|
|
10
10
|
const rowCount = paginationState.rowCount;
|
|
11
11
|
const pageSize = paginationModelProp?.pageSize ?? paginationModel.pageSize;
|
|
12
|
-
const
|
|
12
|
+
const page = paginationModelProp?.page ?? paginationModel.page;
|
|
13
|
+
const pageCount = getPageCount(rowCount, pageSize, page);
|
|
13
14
|
if (paginationModelProp && (paginationModelProp?.page !== paginationModel.page || paginationModelProp?.pageSize !== paginationModel.pageSize)) {
|
|
14
15
|
paginationModel = paginationModelProp;
|
|
15
16
|
}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { GridPrivateApiCommunity } from '../../../models/api/gridApiCommunity';
|
|
3
3
|
import { DataGridProcessedProps } from '../../../models/props/DataGridProps';
|
|
4
|
-
/**
|
|
5
|
-
* @requires useGridFilter (state)
|
|
6
|
-
* @requires useGridDimensions (event) - can be after
|
|
7
|
-
*/
|
|
8
4
|
export declare const useGridRowCount: (apiRef: React.MutableRefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, 'rowCount' | 'initialState' | 'paginationMode' | 'onRowCountChange'>) => void;
|
|
@@ -1,19 +1,17 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import * as React from 'react';
|
|
3
|
+
import useLazyRef from '@mui/utils/useLazyRef';
|
|
3
4
|
import { gridFilteredTopLevelRowCountSelector } from '../filter';
|
|
4
|
-
import { useGridLogger, useGridSelector, useGridApiMethod } from '../../utils';
|
|
5
|
+
import { useGridLogger, useGridSelector, useGridApiMethod, useGridApiEventHandler } from '../../utils';
|
|
5
6
|
import { useGridRegisterPipeProcessor } from '../../core/pipeProcessing';
|
|
6
|
-
import { gridPaginationRowCountSelector } from './gridPaginationSelector';
|
|
7
|
-
import { noRowCountInServerMode } from './gridPaginationUtils';
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* @requires useGridFilter (state)
|
|
11
|
-
* @requires useGridDimensions (event) - can be after
|
|
12
|
-
*/
|
|
7
|
+
import { gridPaginationRowCountSelector, gridPaginationMetaSelector, gridPaginationModelSelector } from './gridPaginationSelector';
|
|
13
8
|
export const useGridRowCount = (apiRef, props) => {
|
|
14
9
|
const logger = useGridLogger(apiRef, 'useGridRowCount');
|
|
15
10
|
const visibleTopLevelRowCount = useGridSelector(apiRef, gridFilteredTopLevelRowCountSelector);
|
|
16
|
-
const
|
|
11
|
+
const rowCountState = useGridSelector(apiRef, gridPaginationRowCountSelector);
|
|
12
|
+
const paginationMeta = useGridSelector(apiRef, gridPaginationMetaSelector);
|
|
13
|
+
const paginationModel = useGridSelector(apiRef, gridPaginationModelSelector);
|
|
14
|
+
const previousPageSize = useLazyRef(() => gridPaginationModelSelector(apiRef).pageSize);
|
|
17
15
|
apiRef.current.registerControlState({
|
|
18
16
|
stateId: 'paginationRowCount',
|
|
19
17
|
propModel: props.rowCount,
|
|
@@ -26,7 +24,7 @@ export const useGridRowCount = (apiRef, props) => {
|
|
|
26
24
|
* API METHODS
|
|
27
25
|
*/
|
|
28
26
|
const setRowCount = React.useCallback(newRowCount => {
|
|
29
|
-
if (
|
|
27
|
+
if (rowCountState === newRowCount) {
|
|
30
28
|
return;
|
|
31
29
|
}
|
|
32
30
|
logger.debug("Setting 'rowCount' to", newRowCount);
|
|
@@ -35,7 +33,7 @@ export const useGridRowCount = (apiRef, props) => {
|
|
|
35
33
|
rowCount: newRowCount
|
|
36
34
|
})
|
|
37
35
|
}));
|
|
38
|
-
}, [apiRef, logger,
|
|
36
|
+
}, [apiRef, logger, rowCountState]);
|
|
39
37
|
const paginationRowCountApi = {
|
|
40
38
|
setRowCount
|
|
41
39
|
};
|
|
@@ -75,20 +73,36 @@ export const useGridRowCount = (apiRef, props) => {
|
|
|
75
73
|
useGridRegisterPipeProcessor(apiRef, 'restoreState', stateRestorePreProcessing);
|
|
76
74
|
|
|
77
75
|
/**
|
|
78
|
-
*
|
|
76
|
+
* EVENTS
|
|
79
77
|
*/
|
|
80
|
-
React.
|
|
81
|
-
if (
|
|
82
|
-
|
|
83
|
-
|
|
78
|
+
const handlePaginationModelChange = React.useCallback(model => {
|
|
79
|
+
if (props.paginationMode === 'client' || !previousPageSize.current) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
if (model.pageSize !== previousPageSize.current) {
|
|
83
|
+
previousPageSize.current = model.pageSize;
|
|
84
|
+
if (rowCountState === -1) {
|
|
85
|
+
// Row count unknown and page size changed, reset the page
|
|
86
|
+
apiRef.current.setPage(0);
|
|
84
87
|
}
|
|
85
88
|
}
|
|
86
|
-
}, [props.
|
|
89
|
+
}, [props.paginationMode, previousPageSize, rowCountState, apiRef]);
|
|
90
|
+
useGridApiEventHandler(apiRef, 'paginationModelChange', handlePaginationModelChange);
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* EFFECTS
|
|
94
|
+
*/
|
|
87
95
|
React.useEffect(() => {
|
|
88
96
|
if (props.paginationMode === 'client') {
|
|
89
97
|
apiRef.current.setRowCount(visibleTopLevelRowCount);
|
|
90
98
|
} else if (props.rowCount != null) {
|
|
91
99
|
apiRef.current.setRowCount(props.rowCount);
|
|
92
100
|
}
|
|
93
|
-
}, [apiRef,
|
|
101
|
+
}, [apiRef, props.paginationMode, visibleTopLevelRowCount, props.rowCount]);
|
|
102
|
+
const isLastPage = paginationMeta.hasNextPage === false;
|
|
103
|
+
React.useEffect(() => {
|
|
104
|
+
if (isLastPage && rowCountState === -1) {
|
|
105
|
+
apiRef.current.setRowCount(paginationModel.pageSize * paginationModel.page + visibleTopLevelRowCount);
|
|
106
|
+
}
|
|
107
|
+
}, [apiRef, visibleTopLevelRowCount, isLastPage, rowCountState, paginationModel]);
|
|
94
108
|
};
|
|
@@ -19,7 +19,7 @@ export declare const getTopLevelRowCount: ({ tree, rowCountProp, }: {
|
|
|
19
19
|
tree: GridRowTreeConfig;
|
|
20
20
|
rowCountProp: DataGridProcessedProps['rowCount'];
|
|
21
21
|
}) => number;
|
|
22
|
-
export declare const getRowsStateFromCache: ({ apiRef, rowCountProp, loadingProp, previousTree, previousTreeDepths, }: Pick<GridRowTreeCreationParams,
|
|
22
|
+
export declare const getRowsStateFromCache: ({ apiRef, rowCountProp, loadingProp, previousTree, previousTreeDepths, }: Pick<GridRowTreeCreationParams, 'previousTree' | 'previousTreeDepths'> & {
|
|
23
23
|
apiRef: React.MutableRefObject<GridPrivateApiCommunity>;
|
|
24
24
|
rowCountProp: number | undefined;
|
|
25
25
|
loadingProp: boolean | undefined;
|
|
@@ -8,9 +8,9 @@ export declare const useGridVirtualScroller: () => {
|
|
|
8
8
|
renderContext: GridRenderContext;
|
|
9
9
|
setPanels: React.Dispatch<React.SetStateAction<Readonly<Map<GridRowId, React.ReactNode>>>>;
|
|
10
10
|
getRows: (params?: {
|
|
11
|
-
rows?: GridRowEntry
|
|
12
|
-
position?:
|
|
13
|
-
renderContext?: GridRenderContext
|
|
11
|
+
rows?: GridRowEntry[];
|
|
12
|
+
position?: GridPinnedRowsPosition;
|
|
13
|
+
renderContext?: GridRenderContext;
|
|
14
14
|
}) => React.ReactNode[];
|
|
15
15
|
getContainerProps: () => {
|
|
16
16
|
ref: React.RefObject<HTMLDivElement>;
|
|
@@ -14,8 +14,8 @@ declare enum GridSignature {
|
|
|
14
14
|
interface RegistryContainer {
|
|
15
15
|
registry: CleanupTracking | null;
|
|
16
16
|
}
|
|
17
|
-
export declare function createUseGridApiEventHandler(registryContainer: RegistryContainer): <Api extends GridApiCommon<any, any>, E extends keyof import("../../models").GridEventLookup>(apiRef: React.MutableRefObject<Api>, eventName: E, handler?: GridEventListener<E
|
|
17
|
+
export declare function createUseGridApiEventHandler(registryContainer: RegistryContainer): <Api extends GridApiCommon<any, any>, E extends keyof import("../../models").GridEventLookup>(apiRef: React.MutableRefObject<Api>, eventName: E, handler?: GridEventListener<E>, options?: EventListenerOptions) => void;
|
|
18
18
|
export declare const unstable_resetCleanupTracking: () => void;
|
|
19
|
-
export declare const useGridApiEventHandler: <Api extends GridApiCommon<any, any>, E extends keyof import("../../models").GridEventLookup>(apiRef: React.MutableRefObject<Api>, eventName: E, handler?: GridEventListener<E
|
|
19
|
+
export declare const useGridApiEventHandler: <Api extends GridApiCommon<any, any>, E extends keyof import("../../models").GridEventLookup>(apiRef: React.MutableRefObject<Api>, eventName: E, handler?: GridEventListener<E>, options?: EventListenerOptions) => void;
|
|
20
20
|
export declare function useGridApiOptionHandler<Api extends GridApiCommon, E extends GridEvents>(apiRef: React.MutableRefObject<Api>, eventName: E, handler?: GridEventListener<E>): void;
|
|
21
21
|
export { GridSignature };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { GridPrivateApiCommon } from '../../models/api/gridApiCommon';
|
|
3
|
-
export declare const useGridNativeEventListener: <PrivateApi extends GridPrivateApiCommon, K extends keyof HTMLElementEventMap>(apiRef: React.MutableRefObject<PrivateApi>, ref: React.MutableRefObject<HTMLDivElement | null> | (() => HTMLElement | undefined | null), eventName: K, handler?: (
|
|
3
|
+
export declare const useGridNativeEventListener: <PrivateApi extends GridPrivateApiCommon, K extends keyof HTMLElementEventMap>(apiRef: React.MutableRefObject<PrivateApi>, ref: React.MutableRefObject<HTMLDivElement | null> | (() => HTMLElement | undefined | null), eventName: K, handler?: (event: HTMLElementEventMap[K]) => any, options?: AddEventListenerOptions) => void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { GridApiCommon } from '../../models/api/gridApiCommon';
|
|
2
|
+
import type { GridApiCommon } from '../../models/api/gridApiCommon';
|
|
3
3
|
import { OutputSelector } from '../../utils/createSelector';
|
|
4
4
|
import { fastObjectShallowCompare } from '../../utils/fastObjectShallowCompare';
|
|
5
5
|
export declare const objectShallowCompare: typeof fastObjectShallowCompare;
|
|
6
|
-
export declare const useGridSelector: <Api extends GridApiCommon<any, any>, T>(apiRef: React.MutableRefObject<Api>, selector:
|
|
6
|
+
export declare const useGridSelector: <Api extends GridApiCommon<any, any>, T>(apiRef: React.MutableRefObject<Api>, selector: ((state: Api['state']) => T) | OutputSelector<Api['state'], T>, equals?: (a: T, b: T) => boolean) => T;
|
package/index.js
CHANGED
package/internals/index.d.ts
CHANGED
|
@@ -65,7 +65,7 @@ export { useTimeout } from '../hooks/utils/useTimeout';
|
|
|
65
65
|
export { useGridVisibleRows, getVisibleRows } from '../hooks/utils/useGridVisibleRows';
|
|
66
66
|
export { useGridInitializeState } from '../hooks/utils/useGridInitializeState';
|
|
67
67
|
export type { GridStateInitializer } from '../hooks/utils/useGridInitializeState';
|
|
68
|
-
export type
|
|
68
|
+
export type * from '../models/props/DataGridProps';
|
|
69
69
|
export { getColumnsToExport, defaultGetRowsToExport } from '../hooks/features/export/utils';
|
|
70
70
|
export * from '../utils/createControllablePromise';
|
|
71
71
|
export { createSelector, createSelectorMemoized } from '../utils/createSelector';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { isNumber } from '../../utils/utils';
|
|
2
2
|
import { GridSignature } from '../../hooks/utils/useGridApiEventHandler';
|
|
3
|
-
export const propValidatorsDataGrid = [props => props.autoPageSize && props.autoHeight && ['MUI X: `<DataGrid autoPageSize={true} autoHeight={true} />` are not valid props.', 'You cannot use both the `autoPageSize` and `autoHeight` props at the same time because `autoHeight` scales the height of the Data Grid according to the `pageSize`.', '', 'Please remove one of these two props.'].join('\n') || undefined, props => props.signature === GridSignature.DataGrid && props.paginationMode === 'client' && isNumber(props.rowCount) && 'MUI X: Usage of the `rowCount` prop with client side pagination (`paginationMode="client"`) has no effect. `rowCount` is only meant to be used with `paginationMode="server"`.' || undefined];
|
|
3
|
+
export const propValidatorsDataGrid = [props => props.autoPageSize && props.autoHeight && ['MUI X: `<DataGrid autoPageSize={true} autoHeight={true} />` are not valid props.', 'You cannot use both the `autoPageSize` and `autoHeight` props at the same time because `autoHeight` scales the height of the Data Grid according to the `pageSize`.', '', 'Please remove one of these two props.'].join('\n') || undefined, props => props.paginationMode === 'client' && props.paginationMeta != null && ['MUI X: Usage of the `paginationMeta` prop with client-side pagination (`paginationMode="client"`) has no effect.', '`paginationMeta` is only meant to be used with `paginationMode="server"`.'].join('\n') || undefined, props => props.signature === GridSignature.DataGrid && props.paginationMode === 'client' && isNumber(props.rowCount) && ['MUI X: Usage of the `rowCount` prop with client side pagination (`paginationMode="client"`) has no effect.', '`rowCount` is only meant to be used with `paginationMode="server"`.'].join('\n') || undefined, props => props.paginationMode === 'server' && props.rowCount == null && ["MUI X: The `rowCount` prop must be passed using `paginationMode='server'`", 'For more detail, see http://mui.com/components/data-grid/pagination/#index-based-pagination'].join('\n') || undefined];
|
|
4
4
|
const warnedOnceCache = new Set();
|
|
5
5
|
const warnOnce = message => {
|
|
6
6
|
if (!warnedOnceCache.has(message)) {
|
package/joy/icons.js
CHANGED
|
@@ -18,8 +18,7 @@ const _excluded = ["sx", "fontSize"],
|
|
|
18
18
|
import * as React from 'react';
|
|
19
19
|
import SvgIcon from '@mui/joy/SvgIcon';
|
|
20
20
|
import { useGridRootProps } from '../hooks/utils/useGridRootProps';
|
|
21
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
22
|
-
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
21
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
23
22
|
function createSvgIcon(path, displayName) {
|
|
24
23
|
const fontSizeMap = {
|
|
25
24
|
small: 'lg',
|
package/joy/joySlots.js
CHANGED
|
@@ -26,8 +26,7 @@ import { useGridApiContext } from '../hooks/utils/useGridApiContext';
|
|
|
26
26
|
import { useGridRootProps } from '../hooks/utils/useGridRootProps';
|
|
27
27
|
import { gridFilteredTopLevelRowCountSelector, gridPaginationModelSelector } from '../hooks';
|
|
28
28
|
import { GridOverlay } from '../components/containers/GridOverlay';
|
|
29
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
30
|
-
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
29
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
31
30
|
function convertColor(color) {
|
|
32
31
|
if (color === 'secondary') {
|
|
33
32
|
return 'primary';
|
package/locales/daDK.js
CHANGED
|
@@ -30,10 +30,9 @@ const daDKGrid = {
|
|
|
30
30
|
toolbarExportPrint: 'Print',
|
|
31
31
|
toolbarExportExcel: 'Download som Excel',
|
|
32
32
|
// Columns management text
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
33
|
+
columnsManagementSearchTitle: 'Søg',
|
|
34
|
+
columnsManagementNoColumns: 'Ingen søjler',
|
|
35
|
+
columnsManagementShowHideAllText: 'Vis/Shjul Alle',
|
|
37
36
|
// Filter panel text
|
|
38
37
|
filterPanelAddFilter: 'Tilføj filter',
|
|
39
38
|
filterPanelRemoveAll: 'Fjern alle',
|
|
@@ -6,7 +6,7 @@ import { GridDensityApi } from './gridDensityApi';
|
|
|
6
6
|
import { GridEditingApi, GridEditingPrivateApi } from './gridEditingApi';
|
|
7
7
|
import type { GridFilterApi } from './gridFilterApi';
|
|
8
8
|
import { GridFocusApi, GridFocusPrivateApi } from './gridFocusApi';
|
|
9
|
-
import { GridLocaleTextApi } from './gridLocaleTextApi';
|
|
9
|
+
import type { GridLocaleTextApi } from './gridLocaleTextApi';
|
|
10
10
|
import type { GridParamsApi } from './gridParamsApi';
|
|
11
11
|
import { GridPreferencesPanelApi } from './gridPreferencesPanelApi';
|
|
12
12
|
import { GridPrintExportApi } from './gridPrintExportApi';
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { ComponentsPropsList } from '@mui/material/styles';
|
|
3
|
-
import {
|
|
2
|
+
import type { ComponentsPropsList } from '@mui/material/styles';
|
|
3
|
+
import type { WrappedLabelDisplayedRows } from '../../components/GridPagination';
|
|
4
|
+
import type { GridColDef } from '../colDef';
|
|
5
|
+
export type MuiTablePaginationLocalizedProps = Omit<ComponentsPropsList['MuiTablePagination'], 'page' | 'count' | 'onChangePage' | 'rowsPerPage' | 'onPageChange' | 'labelDisplayedRows'> & {
|
|
6
|
+
labelDisplayedRows?: WrappedLabelDisplayedRows;
|
|
7
|
+
};
|
|
4
8
|
/**
|
|
5
9
|
* Set the types of the texts in the grid.
|
|
6
10
|
*/
|
|
@@ -122,7 +126,7 @@ export interface GridLocaleText {
|
|
|
122
126
|
aggregationFunctionLabelMin: string;
|
|
123
127
|
aggregationFunctionLabelMax: string;
|
|
124
128
|
aggregationFunctionLabelSize: string;
|
|
125
|
-
MuiTablePagination:
|
|
129
|
+
MuiTablePagination: MuiTablePaginationLocalizedProps;
|
|
126
130
|
}
|
|
127
131
|
export type GridTranslationKeys = keyof GridLocaleText;
|
|
128
132
|
/**
|
package/models/api/index.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export type { GridRowsMetaApi } from './gridRowsMetaApi';
|
|
|
8
8
|
export * from './gridRowSelectionApi';
|
|
9
9
|
export * from './gridSortApi';
|
|
10
10
|
export type { GridStateApi } from './gridStateApi';
|
|
11
|
-
export
|
|
11
|
+
export type { GridLocaleText, GridLocaleTextApi, GridTranslationKeys } from './gridLocaleTextApi';
|
|
12
12
|
export * from './gridCsvExportApi';
|
|
13
13
|
export type { GridFocusApi } from './gridFocusApi';
|
|
14
14
|
export * from './gridFilterApi';
|
package/models/api/index.js
CHANGED
|
@@ -4,7 +4,6 @@ export * from './gridDensityApi';
|
|
|
4
4
|
export * from './gridRowApi';
|
|
5
5
|
export * from './gridRowSelectionApi';
|
|
6
6
|
export * from './gridSortApi';
|
|
7
|
-
export * from './gridLocaleTextApi';
|
|
8
7
|
export * from './gridCsvExportApi';
|
|
9
8
|
export * from './gridFilterApi';
|
|
10
9
|
export * from './gridColumnMenuApi';
|
|
@@ -12,7 +12,7 @@ import type { GridColumnVisibilityModel } from '../../hooks/features/columns';
|
|
|
12
12
|
import type { GridStrategyProcessorName } from '../../hooks/core/strategyProcessing';
|
|
13
13
|
import { GridRowEditStartParams, GridRowEditStopParams } from '../params/gridRowParams';
|
|
14
14
|
import { GridCellModesModel, GridRowModesModel } from '../api/gridEditingApi';
|
|
15
|
-
import { GridPaginationModel } from '../gridPaginationProps';
|
|
15
|
+
import { GridPaginationMeta, GridPaginationModel } from '../gridPaginationProps';
|
|
16
16
|
import { GridDensity } from '../gridDensity';
|
|
17
17
|
export interface GridRowEventLookup {
|
|
18
18
|
/**
|
|
@@ -382,6 +382,12 @@ export interface GridControlledStateEventLookup {
|
|
|
382
382
|
densityChange: {
|
|
383
383
|
params: GridDensity;
|
|
384
384
|
};
|
|
385
|
+
/**
|
|
386
|
+
* Fired when the pagination meta change.
|
|
387
|
+
*/
|
|
388
|
+
paginationMetaChange: {
|
|
389
|
+
params: GridPaginationMeta;
|
|
390
|
+
};
|
|
385
391
|
}
|
|
386
392
|
export interface GridControlledStateReasonLookup {
|
|
387
393
|
filter: 'upsertFilterItem' | 'upsertFilterItems' | 'deleteFilterItem' | 'changeLogicOperator' | 'restoreState' | 'removeAllFilterItems';
|
|
@@ -23,7 +23,7 @@ import { GridSlotsComponentsProps } from '../gridSlotsComponentsProps';
|
|
|
23
23
|
import { GridColumnVisibilityModel } from '../../hooks/features/columns/gridColumnsInterfaces';
|
|
24
24
|
import { GridCellModesModel, GridRowModesModel } from '../api/gridEditingApi';
|
|
25
25
|
import { GridColumnGroupingModel } from '../gridColumnGrouping';
|
|
26
|
-
import { GridPaginationModel } from '../gridPaginationProps';
|
|
26
|
+
import { GridPaginationMeta, GridPaginationModel } from '../gridPaginationProps';
|
|
27
27
|
import type { GridAutosizeOptions } from '../../hooks/features/columnResize';
|
|
28
28
|
export interface GridExperimentalFeatures {
|
|
29
29
|
/**
|
|
@@ -38,11 +38,6 @@ export interface GridExperimentalFeatures {
|
|
|
38
38
|
export type DataGridProps<R extends GridValidRowModel = any> = Omit<Partial<DataGridPropsWithDefaultValues<R>> & DataGridPropsWithComplexDefaultValueBeforeProcessing & DataGridPropsWithoutDefaultValue<R>, DataGridForcedPropsKey> & {
|
|
39
39
|
pagination?: true;
|
|
40
40
|
};
|
|
41
|
-
/**
|
|
42
|
-
* The props of the `DataGrid` component after the pre-processing phase.
|
|
43
|
-
*/
|
|
44
|
-
export interface DataGridProcessedProps<R extends GridValidRowModel = any> extends DataGridPropsWithDefaultValues, DataGridPropsWithComplexDefaultValueAfterProcessing, DataGridPropsWithoutDefaultValue<R> {
|
|
45
|
-
}
|
|
46
41
|
/**
|
|
47
42
|
* The props of the `DataGrid` component after the pre-processing phase that the user should not be able to override.
|
|
48
43
|
* Those are usually used in feature-hook for which the pro-plan has more advanced features (eg: multi-sorting, multi-filtering, ...).
|
|
@@ -380,8 +375,15 @@ export interface DataGridPropsWithoutDefaultValue<R extends GridValidRowModel =
|
|
|
380
375
|
/**
|
|
381
376
|
* Set the total number of rows, if it is different from the length of the value `rows` prop.
|
|
382
377
|
* If some rows have children (for instance in the tree data), this number represents the amount of top level rows.
|
|
378
|
+
* Only works with `paginationMode="server"`, ignored when `paginationMode="client"`.
|
|
383
379
|
*/
|
|
384
380
|
rowCount?: number;
|
|
381
|
+
/**
|
|
382
|
+
* Use if the actual rowCount is not known upfront, but an estimation is available.
|
|
383
|
+
* If some rows have children (for instance in the tree data), this number represents the amount of top level rows.
|
|
384
|
+
* Applicable only with `paginationMode="server"` and when `rowCount="-1"`
|
|
385
|
+
*/
|
|
386
|
+
estimatedRowCount?: number;
|
|
385
387
|
/**
|
|
386
388
|
* Override the height/width of the Data Grid inner scrollbar.
|
|
387
389
|
*/
|
|
@@ -569,6 +571,11 @@ export interface DataGridPropsWithoutDefaultValue<R extends GridValidRowModel =
|
|
|
569
571
|
* The pagination model of type [[GridPaginationModel]] which refers to current `page` and `pageSize`.
|
|
570
572
|
*/
|
|
571
573
|
paginationModel?: GridPaginationModel;
|
|
574
|
+
/**
|
|
575
|
+
* The extra information about the pagination state of the Data Grid.
|
|
576
|
+
* Only applicable with `paginationMode="server"`.
|
|
577
|
+
*/
|
|
578
|
+
paginationMeta?: GridPaginationMeta;
|
|
572
579
|
/**
|
|
573
580
|
* Callback fired when the pagination model has changed.
|
|
574
581
|
* @param {GridPaginationModel} model Updated pagination model.
|
|
@@ -580,6 +587,11 @@ export interface DataGridPropsWithoutDefaultValue<R extends GridValidRowModel =
|
|
|
580
587
|
* @param {number} count Updated row count.
|
|
581
588
|
*/
|
|
582
589
|
onRowCountChange?: (count: number) => void;
|
|
590
|
+
/**
|
|
591
|
+
* Callback fired when the pagination meta has changed.
|
|
592
|
+
* @param {GridPaginationMeta} paginationMeta Updated pagination meta.
|
|
593
|
+
*/
|
|
594
|
+
onPaginationMetaChange?: (paginationMeta: GridPaginationMeta) => void;
|
|
583
595
|
/**
|
|
584
596
|
* Callback fired when the preferences panel is closed.
|
|
585
597
|
* @param {GridPreferencePanelParams} params With all properties from [[GridPreferencePanelParams]].
|
|
@@ -757,6 +769,12 @@ export interface DataGridProSharedPropsWithDefaultValue {
|
|
|
757
769
|
*/
|
|
758
770
|
headerFilters: boolean;
|
|
759
771
|
}
|
|
772
|
+
export interface DataGridProSharedPropsWithoutDefaultValue {
|
|
773
|
+
/**
|
|
774
|
+
* Override the height of the header filters.
|
|
775
|
+
*/
|
|
776
|
+
headerFilterHeight?: number;
|
|
777
|
+
}
|
|
760
778
|
export interface DataGridPremiumSharedPropsWithDefaultValue {
|
|
761
779
|
/**
|
|
762
780
|
* If `true`, the cell selection mode is enabled.
|
|
@@ -765,7 +783,7 @@ export interface DataGridPremiumSharedPropsWithDefaultValue {
|
|
|
765
783
|
cellSelection: boolean;
|
|
766
784
|
}
|
|
767
785
|
/**
|
|
768
|
-
*
|
|
786
|
+
* The props of the `DataGrid` component after the pre-processing phase.
|
|
769
787
|
*/
|
|
770
|
-
export interface
|
|
788
|
+
export interface DataGridProcessedProps<R extends GridValidRowModel = any> extends DataGridPropsWithDefaultValues, DataGridPropsWithComplexDefaultValueAfterProcessing, DataGridPropsWithoutDefaultValue<R>, DataGridProSharedPropsWithoutDefaultValue, Partial<DataGridProSharedPropsWithDefaultValue>, Partial<DataGridPremiumSharedPropsWithDefaultValue> {
|
|
771
789
|
}
|