@mui/x-data-grid 7.0.0-alpha.7 → 7.0.0-alpha.9
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 +554 -51
- package/DataGrid/DataGrid.js +15 -27
- package/DataGrid/useDataGridComponent.js +2 -1
- package/DataGrid/useDataGridProps.js +1 -0
- package/README.md +1 -1
- package/colDef/gridDateColDef.js +1 -1
- package/components/GridColumnHeaders.d.ts +3 -2
- package/components/GridColumnHeaders.js +3 -11
- package/components/GridDetailPanels.d.ts +5 -0
- package/components/GridDetailPanels.js +4 -0
- package/components/GridHeaders.d.ts +4 -0
- package/components/GridHeaders.js +53 -0
- package/components/GridPagination.d.ts +4 -4
- package/components/GridPagination.js +1 -1
- package/components/GridPinnedRows.d.ts +7 -0
- package/components/GridPinnedRows.js +4 -0
- package/components/GridRow.d.ts +7 -4
- package/components/GridRow.js +260 -97
- package/components/GridScrollbarFillerCell.d.ts +7 -0
- package/components/GridScrollbarFillerCell.js +39 -0
- package/components/base/GridBody.d.ts +2 -13
- package/components/base/GridBody.js +2 -116
- package/components/base/GridOverlays.js +10 -21
- package/components/cell/GridActionsCell.js +1 -1
- package/components/cell/GridActionsCellItem.d.ts +6 -6
- package/components/cell/GridCell.d.ts +15 -21
- package/components/cell/GridCell.js +68 -373
- package/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
- package/components/columnHeaders/GridColumnHeaderItem.d.ts +2 -1
- package/components/columnHeaders/GridColumnHeaderItem.js +7 -3
- package/components/columnHeaders/GridColumnHeaderSortIcon.d.ts +1 -0
- package/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
- package/components/columnHeaders/GridColumnHeadersInner.js +1 -2
- package/components/containers/GridRoot.js +18 -15
- package/components/containers/GridRootStyles.js +307 -204
- package/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
- package/components/panel/GridPanel.d.ts +3 -3
- package/components/panel/GridPanel.js +3 -4
- package/components/panel/filterPanel/GridFilterForm.d.ts +6 -4
- package/components/panel/filterPanel/GridFilterForm.js +32 -15
- package/components/panel/filterPanel/GridFilterPanel.js +46 -20
- package/components/toolbar/GridToolbarColumnsButton.d.ts +13 -1
- package/components/toolbar/GridToolbarColumnsButton.js +40 -22
- package/components/toolbar/GridToolbarDensitySelector.d.ts +13 -1
- package/components/toolbar/GridToolbarDensitySelector.js +40 -22
- package/components/toolbar/GridToolbarExport.d.ts +10 -1
- package/components/toolbar/GridToolbarExport.js +6 -1
- package/components/toolbar/GridToolbarExportContainer.d.ts +15 -1
- package/components/toolbar/GridToolbarExportContainer.js +41 -23
- package/components/toolbar/GridToolbarFilterButton.d.ts +5 -4
- package/components/toolbar/GridToolbarFilterButton.js +6 -10
- package/components/toolbar/GridToolbarQuickFilter.d.ts +4 -0
- package/components/toolbar/GridToolbarQuickFilter.js +4 -0
- package/components/virtualization/GridBottomContainer.d.ts +2 -0
- package/components/virtualization/GridBottomContainer.js +25 -0
- package/components/{containers → virtualization}/GridMainContainer.d.ts +2 -0
- package/components/virtualization/GridMainContainer.js +20 -0
- package/components/virtualization/GridTopContainer.d.ts +2 -0
- package/components/virtualization/GridTopContainer.js +35 -0
- package/components/virtualization/GridVirtualScrollbar.d.ts +7 -0
- package/components/virtualization/GridVirtualScrollbar.js +131 -0
- package/components/virtualization/GridVirtualScroller.d.ts +4 -4
- package/components/virtualization/GridVirtualScroller.js +69 -16
- package/components/virtualization/GridVirtualScrollerFiller.d.ts +4 -0
- package/components/virtualization/GridVirtualScrollerFiller.js +71 -0
- package/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
- package/constants/defaultGridSlotsComponents.js +6 -2
- package/constants/gridClasses.d.ts +60 -8
- package/constants/gridClasses.js +1 -1
- package/hooks/core/gridCoreSelector.d.ts +6 -0
- package/hooks/core/gridCoreSelector.js +5 -0
- package/hooks/core/useGridInitialization.js +4 -0
- package/hooks/core/useGridLoggerFactory.js +2 -2
- package/hooks/core/useGridRefs.d.ts +3 -0
- package/hooks/core/useGridRefs.js +13 -0
- package/hooks/core/useGridTheme.d.ts +3 -0
- package/hooks/core/useGridTheme.js +19 -0
- package/hooks/features/columnGrouping/gridColumnGroupsUtils.js +1 -1
- package/hooks/features/columnGrouping/useGridColumnGrouping.d.ts +1 -1
- package/hooks/features/columnGrouping/useGridColumnGrouping.js +13 -18
- package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +13 -18
- package/hooks/features/columnHeaders/useGridColumnHeaders.js +68 -162
- package/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
- package/hooks/features/columns/gridColumnsInterfaces.d.ts +17 -0
- package/hooks/features/columns/gridColumnsInterfaces.js +9 -1
- package/hooks/features/columns/gridColumnsSelector.d.ts +14 -1
- package/hooks/features/columns/gridColumnsSelector.js +52 -0
- package/hooks/features/columns/gridColumnsUtils.d.ts +1 -5
- package/hooks/features/columns/gridColumnsUtils.js +10 -12
- package/hooks/features/columns/index.d.ts +2 -2
- package/hooks/features/columns/index.js +2 -1
- package/hooks/features/columns/useGridColumnSpanning.js +62 -61
- package/hooks/features/columns/useGridColumns.js +20 -23
- package/hooks/features/dimensions/gridDimensionsApi.d.ts +60 -11
- package/hooks/features/dimensions/gridDimensionsSelectors.d.ts +2 -0
- package/hooks/features/dimensions/gridDimensionsSelectors.js +1 -0
- package/hooks/features/dimensions/index.d.ts +2 -0
- package/hooks/features/dimensions/index.js +1 -0
- package/hooks/features/dimensions/useGridDimensions.d.ts +7 -1
- package/hooks/features/dimensions/useGridDimensions.js +216 -148
- package/hooks/features/editing/useGridCellEditing.js +4 -4
- package/hooks/features/editing/useGridRowEditing.js +4 -4
- package/hooks/features/export/serializers/csvSerializer.js +3 -3
- package/hooks/features/export/useGridPrintExport.js +1 -1
- package/hooks/features/filter/gridFilterUtils.js +5 -5
- package/hooks/features/filter/useGridFilter.js +3 -3
- package/hooks/features/focus/gridFocusStateSelector.d.ts +2 -2
- package/hooks/features/focus/gridFocusStateSelector.js +2 -6
- package/hooks/features/focus/useGridFocus.js +3 -3
- package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +3 -16
- package/hooks/features/pagination/gridPaginationUtils.js +2 -2
- package/hooks/features/pagination/useGridPagination.js +3 -5
- package/hooks/features/rowSelection/useGridRowSelection.js +1 -1
- package/hooks/features/rows/gridRowsInterfaces.d.ts +1 -0
- package/hooks/features/rows/gridRowsSelector.d.ts +2 -2
- package/hooks/features/rows/gridRowsSelector.js +5 -5
- package/hooks/features/rows/gridRowsUtils.d.ts +1 -1
- package/hooks/features/rows/gridRowsUtils.js +6 -6
- package/hooks/features/rows/useGridRows.js +7 -7
- package/hooks/features/rows/useGridRowsMeta.js +9 -6
- package/hooks/features/scroll/useGridScroll.js +8 -10
- package/hooks/features/sorting/gridSortingUtils.js +5 -3
- package/hooks/features/sorting/useGridSorting.d.ts +1 -1
- package/hooks/features/sorting/useGridSorting.js +15 -10
- package/hooks/features/virtualization/gridVirtualizationSelectors.d.ts +14 -0
- package/hooks/features/virtualization/gridVirtualizationSelectors.js +22 -2
- package/hooks/features/virtualization/useGridVirtualScroller.d.ts +27 -42
- package/hooks/features/virtualization/useGridVirtualScroller.js +441 -438
- package/hooks/features/virtualization/useGridVirtualization.d.ts +8 -0
- package/hooks/features/virtualization/useGridVirtualization.js +8 -1
- package/hooks/utils/index.d.ts +3 -0
- package/hooks/utils/index.js +4 -1
- package/hooks/utils/useGridApiContext.js +1 -1
- package/hooks/utils/useGridAriaAttributes.js +1 -2
- package/hooks/utils/useGridNativeEventListener.js +4 -9
- package/hooks/utils/useGridPrivateApiContext.js +1 -1
- package/hooks/utils/useGridRootProps.js +1 -1
- package/hooks/utils/useGridSelector.js +1 -1
- package/hooks/utils/useResizeObserver.d.ts +2 -0
- package/hooks/utils/useResizeObserver.js +36 -0
- package/hooks/utils/useRunOnce.d.ts +5 -0
- package/hooks/utils/useRunOnce.js +18 -0
- package/index.d.ts +0 -1
- package/index.js +1 -2
- package/internals/index.d.ts +13 -9
- package/internals/index.js +9 -7
- package/internals/utils/index.d.ts +1 -0
- package/internals/utils/index.js +2 -1
- package/internals/utils/propValidation.d.ts +4 -0
- package/internals/utils/propValidation.js +19 -0
- package/legacy/DataGrid/DataGrid.js +20 -29
- package/legacy/DataGrid/useDataGridComponent.js +2 -1
- package/legacy/DataGrid/useDataGridProps.js +1 -0
- package/legacy/colDef/gridDateColDef.js +1 -1
- package/legacy/components/GridColumnHeaders.js +3 -11
- package/legacy/components/GridDetailPanels.js +4 -0
- package/legacy/components/GridHeaders.js +53 -0
- package/legacy/components/GridPagination.js +1 -1
- package/legacy/components/GridPinnedRows.js +4 -0
- package/legacy/components/GridRow.js +258 -98
- package/legacy/components/GridScrollbarFillerCell.js +36 -0
- package/legacy/components/base/GridBody.js +2 -114
- package/legacy/components/base/GridOverlays.js +10 -25
- package/legacy/components/cell/GridActionsCell.js +1 -1
- package/legacy/components/cell/GridCell.js +70 -378
- package/legacy/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
- package/legacy/components/columnHeaders/GridColumnHeaderItem.js +7 -3
- package/legacy/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
- package/legacy/components/columnHeaders/GridColumnHeadersInner.js +1 -2
- package/legacy/components/containers/GridRoot.js +18 -15
- package/legacy/components/containers/GridRootStyles.js +215 -137
- package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
- package/legacy/components/panel/GridPanel.js +3 -4
- package/legacy/components/panel/filterPanel/GridFilterForm.js +31 -14
- package/legacy/components/panel/filterPanel/GridFilterPanel.js +49 -20
- package/legacy/components/toolbar/GridToolbarColumnsButton.js +40 -21
- package/legacy/components/toolbar/GridToolbarDensitySelector.js +40 -21
- package/legacy/components/toolbar/GridToolbarExport.js +6 -1
- package/legacy/components/toolbar/GridToolbarExportContainer.js +40 -21
- package/legacy/components/toolbar/GridToolbarFilterButton.js +6 -10
- package/legacy/components/toolbar/GridToolbarQuickFilter.js +4 -0
- package/legacy/components/virtualization/GridBottomContainer.js +25 -0
- package/legacy/components/virtualization/GridMainContainer.js +20 -0
- package/legacy/components/virtualization/GridTopContainer.js +35 -0
- package/legacy/components/virtualization/GridVirtualScrollbar.js +129 -0
- package/legacy/components/virtualization/GridVirtualScroller.js +67 -16
- package/legacy/components/virtualization/GridVirtualScrollerFiller.js +70 -0
- package/legacy/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
- package/legacy/constants/defaultGridSlotsComponents.js +6 -2
- package/legacy/constants/gridClasses.js +1 -1
- package/legacy/hooks/core/gridCoreSelector.js +7 -0
- package/legacy/hooks/core/useGridInitialization.js +4 -0
- package/legacy/hooks/core/useGridLoggerFactory.js +2 -2
- package/legacy/hooks/core/useGridRefs.js +13 -0
- package/legacy/hooks/core/useGridTheme.js +21 -0
- package/legacy/hooks/features/columnGrouping/gridColumnGroupsUtils.js +1 -1
- package/legacy/hooks/features/columnGrouping/useGridColumnGrouping.js +13 -18
- package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +69 -181
- package/legacy/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
- package/legacy/hooks/features/columns/gridColumnsInterfaces.js +9 -1
- package/legacy/hooks/features/columns/gridColumnsSelector.js +62 -0
- package/legacy/hooks/features/columns/gridColumnsUtils.js +10 -16
- package/legacy/hooks/features/columns/index.js +2 -1
- package/legacy/hooks/features/columns/useGridColumnSpanning.js +60 -59
- package/legacy/hooks/features/columns/useGridColumns.js +22 -23
- package/legacy/hooks/features/dimensions/gridDimensionsSelectors.js +3 -0
- package/legacy/hooks/features/dimensions/index.js +1 -0
- package/legacy/hooks/features/dimensions/useGridDimensions.js +226 -151
- package/legacy/hooks/features/editing/useGridCellEditing.js +4 -4
- package/legacy/hooks/features/editing/useGridRowEditing.js +4 -4
- package/legacy/hooks/features/export/serializers/csvSerializer.js +3 -3
- package/legacy/hooks/features/export/useGridPrintExport.js +1 -1
- package/legacy/hooks/features/filter/gridFilterUtils.js +5 -5
- package/legacy/hooks/features/filter/useGridFilter.js +3 -3
- package/legacy/hooks/features/focus/gridFocusStateSelector.js +2 -6
- package/legacy/hooks/features/focus/useGridFocus.js +3 -3
- package/legacy/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +3 -16
- package/legacy/hooks/features/pagination/gridPaginationUtils.js +2 -2
- package/legacy/hooks/features/pagination/useGridPagination.js +3 -5
- package/legacy/hooks/features/rowSelection/useGridRowSelection.js +1 -1
- package/legacy/hooks/features/rows/gridRowsSelector.js +5 -5
- package/legacy/hooks/features/rows/gridRowsUtils.js +6 -6
- package/legacy/hooks/features/rows/useGridParamsApi.js +4 -5
- package/legacy/hooks/features/rows/useGridRows.js +7 -7
- package/legacy/hooks/features/rows/useGridRowsMeta.js +9 -6
- package/legacy/hooks/features/scroll/useGridScroll.js +8 -10
- package/legacy/hooks/features/sorting/gridSortingUtils.js +5 -3
- package/legacy/hooks/features/sorting/useGridSorting.js +15 -10
- package/legacy/hooks/features/virtualization/gridVirtualizationSelectors.js +29 -1
- package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +490 -483
- package/legacy/hooks/features/virtualization/useGridVirtualization.js +8 -1
- package/legacy/hooks/utils/index.js +4 -1
- package/legacy/hooks/utils/useGridApiContext.js +1 -1
- package/legacy/hooks/utils/useGridAriaAttributes.js +1 -2
- package/legacy/hooks/utils/useGridNativeEventListener.js +4 -9
- package/legacy/hooks/utils/useGridPrivateApiContext.js +1 -1
- package/legacy/hooks/utils/useGridRootProps.js +1 -1
- package/legacy/hooks/utils/useGridSelector.js +1 -1
- package/legacy/hooks/utils/useResizeObserver.js +36 -0
- package/legacy/hooks/utils/useRunOnce.js +18 -0
- package/legacy/index.js +1 -2
- package/legacy/internals/index.js +9 -7
- package/legacy/internals/utils/index.js +2 -1
- package/legacy/internals/utils/propValidation.js +21 -0
- package/legacy/locales/hrHR.js +161 -0
- package/legacy/locales/index.js +4 -1
- package/legacy/locales/ptPT.js +161 -0
- package/legacy/locales/zhHK.js +161 -0
- package/legacy/models/index.js +0 -1
- package/legacy/models/params/index.js +1 -2
- package/legacy/utils/createSelector.js +1 -1
- package/legacy/utils/exportAs.js +1 -1
- package/legacy/utils/utils.js +10 -1
- package/locales/hrHR.d.ts +1 -0
- package/locales/hrHR.js +149 -0
- package/locales/index.d.ts +3 -0
- package/locales/index.js +4 -1
- package/locales/ptPT.d.ts +1 -0
- package/locales/ptPT.js +149 -0
- package/locales/zhHK.d.ts +1 -0
- package/locales/zhHK.js +149 -0
- package/models/api/gridColumnGroupingApi.d.ts +2 -2
- package/models/api/gridCoreApi.d.ts +16 -16
- package/models/api/gridRowsMetaApi.d.ts +1 -1
- package/models/api/gridVirtualizationApi.d.ts +2 -3
- package/models/events/gridEventLookup.d.ts +3 -3
- package/models/gridFilterModel.d.ts +1 -1
- package/models/gridSlotsComponent.d.ts +16 -2
- package/models/gridStateCommunity.d.ts +5 -1
- package/models/index.d.ts +0 -1
- package/models/index.js +0 -1
- package/models/params/index.d.ts +0 -1
- package/models/params/index.js +1 -2
- package/models/props/DataGridProps.d.ts +7 -12
- package/modern/DataGrid/DataGrid.js +15 -27
- package/modern/DataGrid/useDataGridComponent.js +2 -1
- package/modern/DataGrid/useDataGridProps.js +1 -0
- package/modern/colDef/gridDateColDef.js +1 -1
- package/modern/components/GridColumnHeaders.js +3 -11
- package/modern/components/GridDetailPanels.js +4 -0
- package/modern/components/GridHeaders.js +53 -0
- package/modern/components/GridPagination.js +1 -1
- package/modern/components/GridPinnedRows.js +4 -0
- package/modern/components/GridRow.js +258 -96
- package/modern/components/GridScrollbarFillerCell.js +39 -0
- package/modern/components/base/GridBody.js +2 -116
- package/modern/components/base/GridOverlays.js +10 -16
- package/modern/components/cell/GridActionsCell.js +1 -1
- package/modern/components/cell/GridCell.js +66 -370
- package/modern/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
- package/modern/components/columnHeaders/GridColumnHeaderItem.js +7 -3
- package/modern/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
- package/modern/components/columnHeaders/GridColumnHeadersInner.js +1 -1
- package/modern/components/containers/GridRoot.js +18 -14
- package/modern/components/containers/GridRootStyles.js +307 -204
- package/modern/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
- package/modern/components/panel/GridPanel.js +3 -4
- package/modern/components/panel/filterPanel/GridFilterForm.js +31 -14
- package/modern/components/panel/filterPanel/GridFilterPanel.js +46 -20
- package/modern/components/toolbar/GridToolbarColumnsButton.js +38 -21
- package/modern/components/toolbar/GridToolbarDensitySelector.js +38 -21
- package/modern/components/toolbar/GridToolbarExport.js +6 -1
- package/modern/components/toolbar/GridToolbarExportContainer.js +39 -22
- package/modern/components/toolbar/GridToolbarFilterButton.js +6 -10
- package/modern/components/toolbar/GridToolbarQuickFilter.js +4 -0
- package/modern/components/virtualization/GridBottomContainer.js +25 -0
- package/modern/components/virtualization/GridMainContainer.js +20 -0
- package/modern/components/virtualization/GridTopContainer.js +35 -0
- package/modern/components/virtualization/GridVirtualScrollbar.js +131 -0
- package/modern/components/virtualization/GridVirtualScroller.js +69 -16
- package/modern/components/virtualization/GridVirtualScrollerFiller.js +71 -0
- package/modern/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
- package/modern/constants/defaultGridSlotsComponents.js +6 -2
- package/modern/constants/gridClasses.js +1 -1
- package/modern/hooks/core/gridCoreSelector.js +5 -0
- package/modern/hooks/core/useGridInitialization.js +4 -0
- package/modern/hooks/core/useGridLoggerFactory.js +2 -2
- package/modern/hooks/core/useGridRefs.js +13 -0
- package/modern/hooks/core/useGridTheme.js +19 -0
- package/modern/hooks/features/columnGrouping/gridColumnGroupsUtils.js +1 -1
- package/modern/hooks/features/columnGrouping/useGridColumnGrouping.js +11 -16
- package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +67 -160
- package/modern/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
- package/modern/hooks/features/columns/gridColumnsInterfaces.js +9 -1
- package/modern/hooks/features/columns/gridColumnsSelector.js +51 -0
- package/modern/hooks/features/columns/gridColumnsUtils.js +10 -12
- package/modern/hooks/features/columns/index.js +2 -1
- package/modern/hooks/features/columns/useGridColumnSpanning.js +62 -61
- package/modern/hooks/features/columns/useGridColumns.js +19 -21
- package/modern/hooks/features/dimensions/gridDimensionsSelectors.js +1 -0
- package/modern/hooks/features/dimensions/index.js +1 -0
- package/modern/hooks/features/dimensions/useGridDimensions.js +214 -146
- package/modern/hooks/features/editing/useGridCellEditing.js +4 -4
- package/modern/hooks/features/editing/useGridRowEditing.js +4 -4
- package/modern/hooks/features/export/serializers/csvSerializer.js +3 -3
- package/modern/hooks/features/export/useGridPrintExport.js +1 -1
- package/modern/hooks/features/filter/gridFilterUtils.js +5 -5
- package/modern/hooks/features/filter/useGridFilter.js +3 -3
- package/modern/hooks/features/focus/gridFocusStateSelector.js +2 -6
- package/modern/hooks/features/focus/useGridFocus.js +3 -3
- package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +3 -16
- package/modern/hooks/features/pagination/gridPaginationUtils.js +2 -2
- package/modern/hooks/features/pagination/useGridPagination.js +3 -5
- package/modern/hooks/features/rowSelection/useGridRowSelection.js +1 -1
- package/modern/hooks/features/rows/gridRowsSelector.js +2 -2
- package/modern/hooks/features/rows/gridRowsUtils.js +6 -6
- package/modern/hooks/features/rows/useGridRows.js +7 -7
- package/modern/hooks/features/rows/useGridRowsMeta.js +9 -6
- package/modern/hooks/features/scroll/useGridScroll.js +8 -9
- package/modern/hooks/features/sorting/gridSortingUtils.js +5 -3
- package/modern/hooks/features/sorting/useGridSorting.js +15 -10
- package/modern/hooks/features/virtualization/gridVirtualizationSelectors.js +22 -2
- package/modern/hooks/features/virtualization/useGridVirtualScroller.js +435 -432
- package/modern/hooks/features/virtualization/useGridVirtualization.js +8 -1
- package/modern/hooks/utils/index.js +4 -1
- package/modern/hooks/utils/useGridApiContext.js +1 -1
- package/modern/hooks/utils/useGridAriaAttributes.js +1 -1
- package/modern/hooks/utils/useGridNativeEventListener.js +3 -9
- package/modern/hooks/utils/useGridPrivateApiContext.js +1 -1
- package/modern/hooks/utils/useGridRootProps.js +1 -1
- package/modern/hooks/utils/useGridSelector.js +1 -1
- package/modern/hooks/utils/useResizeObserver.js +36 -0
- package/modern/hooks/utils/useRunOnce.js +18 -0
- package/modern/index.js +1 -2
- package/modern/internals/index.js +9 -7
- package/modern/internals/utils/index.js +2 -1
- package/modern/internals/utils/propValidation.js +19 -0
- package/modern/locales/hrHR.js +149 -0
- package/modern/locales/index.js +4 -1
- package/modern/locales/ptPT.js +149 -0
- package/modern/locales/zhHK.js +149 -0
- package/modern/models/index.js +0 -1
- package/modern/models/params/index.js +1 -2
- package/modern/utils/createSelector.js +1 -1
- package/modern/utils/exportAs.js +1 -1
- package/modern/utils/utils.js +10 -1
- package/node/DataGrid/DataGrid.js +15 -27
- package/node/DataGrid/useDataGridComponent.js +1 -0
- package/node/DataGrid/useDataGridProps.js +1 -0
- package/node/colDef/gridDateColDef.js +1 -1
- package/node/components/GridColumnHeaders.js +3 -11
- package/node/components/GridDetailPanels.js +10 -0
- package/node/components/GridHeaders.js +60 -0
- package/node/components/GridPagination.js +1 -1
- package/node/components/GridPinnedRows.js +10 -0
- package/node/components/GridRow.js +256 -94
- package/node/components/GridScrollbarFillerCell.js +47 -0
- package/node/components/base/GridBody.js +7 -118
- package/node/components/base/GridOverlays.js +9 -15
- package/node/components/cell/GridActionsCell.js +1 -1
- package/node/components/cell/GridCell.js +67 -370
- package/node/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
- package/node/components/columnHeaders/GridColumnHeaderItem.js +8 -4
- package/node/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
- package/node/components/columnHeaders/GridColumnHeadersInner.js +1 -1
- package/node/components/containers/GridRoot.js +17 -14
- package/node/components/containers/GridRootStyles.js +175 -72
- package/node/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
- package/node/components/panel/GridPanel.js +3 -4
- package/node/components/panel/filterPanel/GridFilterForm.js +30 -13
- package/node/components/panel/filterPanel/GridFilterPanel.js +45 -19
- package/node/components/toolbar/GridToolbarColumnsButton.js +36 -20
- package/node/components/toolbar/GridToolbarDensitySelector.js +36 -20
- package/node/components/toolbar/GridToolbarExport.js +6 -1
- package/node/components/toolbar/GridToolbarExportContainer.js +37 -21
- package/node/components/toolbar/GridToolbarFilterButton.js +6 -10
- package/node/components/toolbar/GridToolbarQuickFilter.js +4 -0
- package/node/components/virtualization/GridBottomContainer.js +34 -0
- package/node/components/{containers → virtualization}/GridMainContainer.js +7 -29
- package/node/components/virtualization/GridTopContainer.js +44 -0
- package/node/components/virtualization/GridVirtualScrollbar.js +138 -0
- package/node/components/virtualization/GridVirtualScroller.js +69 -17
- package/node/components/virtualization/GridVirtualScrollerFiller.js +77 -0
- package/node/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
- package/node/constants/defaultGridSlotsComponents.js +5 -1
- package/node/constants/gridClasses.js +1 -1
- package/node/hooks/core/gridCoreSelector.js +12 -0
- package/node/hooks/core/useGridInitialization.js +4 -0
- package/node/hooks/core/useGridLoggerFactory.js +2 -2
- package/node/hooks/core/useGridRefs.js +22 -0
- package/node/hooks/core/useGridTheme.js +29 -0
- package/node/hooks/features/columnGrouping/gridColumnGroupsUtils.js +1 -1
- package/node/hooks/features/columnGrouping/useGridColumnGrouping.js +11 -16
- package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +65 -159
- package/node/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
- package/node/hooks/features/columns/gridColumnsInterfaces.js +11 -1
- package/node/hooks/features/columns/gridColumnsSelector.js +52 -1
- package/node/hooks/features/columns/gridColumnsUtils.js +10 -13
- package/node/hooks/features/columns/index.js +22 -61
- package/node/hooks/features/columns/useGridColumnSpanning.js +62 -61
- package/node/hooks/features/columns/useGridColumns.js +20 -22
- package/node/hooks/features/dimensions/gridDimensionsSelectors.js +8 -0
- package/node/hooks/features/dimensions/index.js +11 -0
- package/node/hooks/features/dimensions/useGridDimensions.js +215 -144
- package/node/hooks/features/editing/useGridCellEditing.js +4 -4
- package/node/hooks/features/editing/useGridRowEditing.js +4 -4
- package/node/hooks/features/export/serializers/csvSerializer.js +3 -3
- package/node/hooks/features/export/useGridPrintExport.js +1 -1
- package/node/hooks/features/filter/gridFilterUtils.js +5 -5
- package/node/hooks/features/filter/useGridFilter.js +2 -2
- package/node/hooks/features/focus/gridFocusStateSelector.js +3 -7
- package/node/hooks/features/focus/useGridFocus.js +2 -2
- package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +2 -15
- package/node/hooks/features/pagination/gridPaginationUtils.js +2 -2
- package/node/hooks/features/pagination/useGridPagination.js +3 -5
- package/node/hooks/features/rowSelection/useGridRowSelection.js +1 -1
- package/node/hooks/features/rows/gridRowsSelector.js +2 -2
- package/node/hooks/features/rows/gridRowsUtils.js +6 -6
- package/node/hooks/features/rows/useGridRows.js +7 -7
- package/node/hooks/features/rows/useGridRowsMeta.js +7 -5
- package/node/hooks/features/scroll/useGridScroll.js +8 -9
- package/node/hooks/features/sorting/gridSortingUtils.js +5 -3
- package/node/hooks/features/sorting/useGridSorting.js +15 -10
- package/node/hooks/features/virtualization/gridVirtualizationSelectors.js +22 -2
- package/node/hooks/features/virtualization/useGridVirtualScroller.js +434 -431
- package/node/hooks/features/virtualization/useGridVirtualization.js +9 -1
- package/node/hooks/utils/index.js +36 -0
- package/node/hooks/utils/useGridApiContext.js +1 -1
- package/node/hooks/utils/useGridAriaAttributes.js +1 -1
- package/node/hooks/utils/useGridNativeEventListener.js +3 -9
- 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/useResizeObserver.js +44 -0
- package/node/hooks/utils/useRunOnce.js +27 -0
- package/node/index.js +1 -13
- package/node/internals/index.js +86 -71
- package/node/internals/utils/index.js +11 -0
- package/node/internals/utils/propValidation.js +26 -0
- package/node/locales/hrHR.js +155 -0
- package/node/locales/index.js +33 -0
- package/node/locales/ptPT.js +155 -0
- package/node/locales/zhHK.js +155 -0
- package/node/models/index.js +0 -11
- package/node/models/params/index.js +0 -11
- package/node/utils/createSelector.js +1 -1
- package/node/utils/exportAs.js +1 -1
- package/node/utils/utils.js +11 -1
- package/package.json +6 -6
- package/utils/createSelector.js +1 -1
- package/utils/exportAs.js +1 -1
- package/utils/utils.d.ts +6 -0
- package/utils/utils.js +10 -1
- package/components/DataGridVirtualScroller.d.ts +0 -3
- package/components/DataGridVirtualScroller.js +0 -35
- package/components/containers/GridMainContainer.js +0 -43
- package/legacy/components/DataGridVirtualScroller.js +0 -32
- package/legacy/components/containers/GridMainContainer.js +0 -45
- package/legacy/models/gridRootContainerRef.js +0 -1
- package/legacy/models/params/gridRenderedRowsIntervalChangeParams.js +0 -1
- package/models/gridRootContainerRef.d.ts +0 -5
- package/models/gridRootContainerRef.js +0 -1
- package/models/params/gridRenderedRowsIntervalChangeParams.d.ts +0 -10
- package/models/params/gridRenderedRowsIntervalChangeParams.js +0 -1
- package/modern/components/DataGridVirtualScroller.js +0 -35
- package/modern/components/containers/GridMainContainer.js +0 -42
- package/modern/models/gridRootContainerRef.js +0 -1
- package/modern/models/params/gridRenderedRowsIntervalChangeParams.js +0 -1
- package/node/components/DataGridVirtualScroller.js +0 -42
- package/node/models/gridRootContainerRef.js +0 -5
- package/node/models/params/gridRenderedRowsIntervalChangeParams.js +0 -5
|
@@ -145,10 +145,6 @@ const useGridKeyboardNavigation = (apiRef, props) => {
|
|
|
145
145
|
// There is one exception for the checkBoxHeader
|
|
146
146
|
return;
|
|
147
147
|
}
|
|
148
|
-
const dimensions = apiRef.current.getRootDimensions();
|
|
149
|
-
if (!dimensions) {
|
|
150
|
-
return;
|
|
151
|
-
}
|
|
152
148
|
const viewportPageSize = apiRef.current.getViewportPageSize();
|
|
153
149
|
const colIndexBefore = params.field ? apiRef.current.getColumnIndex(params.field) : 0;
|
|
154
150
|
const firstRowIndexInPage = currentPageRows.length > 0 ? 0 : null;
|
|
@@ -241,10 +237,6 @@ const useGridKeyboardNavigation = (apiRef, props) => {
|
|
|
241
237
|
}
|
|
242
238
|
}, [apiRef, currentPageRows.length, headerFilteringEnabled, goToHeaderFilter, goToCell, getRowIdFromIndex, theme.direction, goToHeader, goToGroupHeader]);
|
|
243
239
|
const handleHeaderFilterKeyDown = React.useCallback((params, event) => {
|
|
244
|
-
const dimensions = apiRef.current.getRootDimensions();
|
|
245
|
-
if (!dimensions) {
|
|
246
|
-
return;
|
|
247
|
-
}
|
|
248
240
|
const isEditing = (0, _gridHeaderFilteringSelectors.gridHeaderFilteringEditFieldSelector)(apiRef) === params.field;
|
|
249
241
|
const isHeaderMenuOpen = (0, _gridHeaderFilteringSelectors.gridHeaderFilteringMenuSelector)(apiRef) === params.field;
|
|
250
242
|
if (isEditing || isHeaderMenuOpen || !(0, _keyboardUtils.isNavigationKey)(event.key)) {
|
|
@@ -331,11 +323,7 @@ const useGridKeyboardNavigation = (apiRef, props) => {
|
|
|
331
323
|
}
|
|
332
324
|
}, [apiRef, currentPageRows.length, goToHeaderFilter, theme.direction, goToHeader, goToCell, getRowIdFromIndex]);
|
|
333
325
|
const handleColumnGroupHeaderKeyDown = React.useCallback((params, event) => {
|
|
334
|
-
const
|
|
335
|
-
if (!dimensions) {
|
|
336
|
-
return;
|
|
337
|
-
}
|
|
338
|
-
const focusedColumnGroup = (0, _focus.unstable_gridFocusColumnGroupHeaderSelector)(apiRef);
|
|
326
|
+
const focusedColumnGroup = (0, _focus.gridFocusColumnGroupHeaderSelector)(apiRef);
|
|
339
327
|
if (focusedColumnGroup === null) {
|
|
340
328
|
return;
|
|
341
329
|
}
|
|
@@ -438,8 +426,7 @@ const useGridKeyboardNavigation = (apiRef, props) => {
|
|
|
438
426
|
if (!canUpdateFocus) {
|
|
439
427
|
return;
|
|
440
428
|
}
|
|
441
|
-
|
|
442
|
-
if (currentPageRows.length === 0 || !dimensions) {
|
|
429
|
+
if (currentPageRows.length === 0) {
|
|
443
430
|
return;
|
|
444
431
|
}
|
|
445
432
|
const direction = theme.direction;
|
|
@@ -16,7 +16,7 @@ const getPageCount = (rowCount, pageSize) => {
|
|
|
16
16
|
return 0;
|
|
17
17
|
};
|
|
18
18
|
exports.getPageCount = getPageCount;
|
|
19
|
-
const noRowCountInServerMode = exports.noRowCountInServerMode = (0, _warning.buildWarning)(["MUI: the 'rowCount' prop is undefined while using paginationMode='server'", 'For more detail, see http://mui.com/components/data-grid/pagination/#basic-implementation'], 'error');
|
|
19
|
+
const noRowCountInServerMode = exports.noRowCountInServerMode = (0, _warning.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');
|
|
20
20
|
const getDefaultGridPaginationModel = autoPageSize => ({
|
|
21
21
|
page: 0,
|
|
22
22
|
pageSize: autoPageSize ? 0 : 100
|
|
@@ -31,7 +31,7 @@ const getValidPage = (page, pageCount = 0) => {
|
|
|
31
31
|
exports.getValidPage = getValidPage;
|
|
32
32
|
const throwIfPageSizeExceedsTheLimit = (pageSize, signatureProp) => {
|
|
33
33
|
if (signatureProp === _utils.GridSignature.DataGrid && pageSize > MAX_PAGE_SIZE) {
|
|
34
|
-
throw new Error(['MUI: `pageSize` cannot exceed 100 in the MIT version of the DataGrid.', 'You need to upgrade to DataGridPro or DataGridPremium component to unlock this feature.'].join('\n'));
|
|
34
|
+
throw new Error(['MUI X: `pageSize` cannot exceed 100 in the MIT version of the DataGrid.', 'You need to upgrade to DataGridPro or DataGridPremium component to unlock this feature.'].join('\n'));
|
|
35
35
|
}
|
|
36
36
|
};
|
|
37
37
|
exports.throwIfPageSizeExceedsTheLimit = throwIfPageSizeExceedsTheLimit;
|
|
@@ -12,7 +12,6 @@ var _density = require("../density");
|
|
|
12
12
|
var _utils = require("../../utils");
|
|
13
13
|
var _pipeProcessing = require("../../core/pipeProcessing");
|
|
14
14
|
var _gridPaginationSelector = require("./gridPaginationSelector");
|
|
15
|
-
var _gridRowsUtils = require("../rows/gridRowsUtils");
|
|
16
15
|
var _gridPaginationUtils = require("./gridPaginationUtils");
|
|
17
16
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
18
17
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
@@ -148,12 +147,11 @@ const useGridPagination = (apiRef, props) => {
|
|
|
148
147
|
apiRef.current.forceUpdate();
|
|
149
148
|
};
|
|
150
149
|
const handleUpdateAutoPageSize = React.useCallback(() => {
|
|
151
|
-
|
|
152
|
-
if (!props.autoPageSize || !dimensions) {
|
|
150
|
+
if (!props.autoPageSize) {
|
|
153
151
|
return;
|
|
154
152
|
}
|
|
155
|
-
const
|
|
156
|
-
const maximumPageSizeWithoutScrollBar = Math.floor(
|
|
153
|
+
const dimensions = apiRef.current.getRootDimensions();
|
|
154
|
+
const maximumPageSizeWithoutScrollBar = Math.floor(dimensions.viewportInnerSize.height / rowHeight);
|
|
157
155
|
apiRef.current.setPageSize(maximumPageSizeWithoutScrollBar);
|
|
158
156
|
}, [apiRef, props.autoPageSize, rowHeight]);
|
|
159
157
|
(0, _utils.useGridApiEventHandler)(apiRef, 'viewportInnerSizeChange', handleUpdateAutoPageSize);
|
|
@@ -102,7 +102,7 @@ const useGridRowSelection = (apiRef, props) => {
|
|
|
102
102
|
*/
|
|
103
103
|
const setRowSelectionModel = React.useCallback(model => {
|
|
104
104
|
if (props.signature === _useGridApiEventHandler.GridSignature.DataGrid && !canHaveMultipleSelection && Array.isArray(model) && model.length > 1) {
|
|
105
|
-
throw new Error(['MUI: `rowSelectionModel` can only contain 1 item in DataGrid.', 'You need to upgrade to DataGridPro or DataGridPremium component to unlock multiple selection.'].join('\n'));
|
|
105
|
+
throw new Error(['MUI X: `rowSelectionModel` can only contain 1 item in DataGrid.', 'You need to upgrade to DataGridPro or DataGridPremium component to unlock multiple selection.'].join('\n'));
|
|
106
106
|
}
|
|
107
107
|
const currentModel = (0, _gridRowSelectionSelector.gridRowSelectionStateSelector)(apiRef.current.state);
|
|
108
108
|
if (currentModel !== model) {
|
|
@@ -39,11 +39,11 @@ const gridPinnedRowsSelector = exports.gridPinnedRowsSelector = (0, _createSelec
|
|
|
39
39
|
bottom: rawPinnedRows?.bottom?.map(rowEntry => ({
|
|
40
40
|
id: rowEntry.id,
|
|
41
41
|
model: rowEntry.model ?? {}
|
|
42
|
-
})),
|
|
42
|
+
})) ?? [],
|
|
43
43
|
top: rawPinnedRows?.top?.map(rowEntry => ({
|
|
44
44
|
id: rowEntry.id,
|
|
45
45
|
model: rowEntry.model ?? {}
|
|
46
|
-
}))
|
|
46
|
+
})) ?? []
|
|
47
47
|
};
|
|
48
48
|
});
|
|
49
49
|
|
|
@@ -12,7 +12,7 @@ exports.getMinimalContentHeight = getMinimalContentHeight;
|
|
|
12
12
|
exports.updateCacheWithNewRows = exports.isAutoGeneratedRow = exports.getTreeNodeDescendants = exports.getTopLevelRowCount = exports.getRowsStateFromCache = exports.getRowIdFromRowModel = void 0;
|
|
13
13
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
14
14
|
var _gridRowsSelector = require("./gridRowsSelector");
|
|
15
|
-
var
|
|
15
|
+
var _dimensions = require("../dimensions");
|
|
16
16
|
const GRID_ROOT_GROUP_ID = exports.GRID_ROOT_GROUP_ID = `auto-generated-group-node-root`;
|
|
17
17
|
const GRID_ID_AUTOGENERATED = exports.GRID_ID_AUTOGENERATED = Symbol('mui.id_autogenerated');
|
|
18
18
|
const buildRootGroup = () => ({
|
|
@@ -37,7 +37,7 @@ const buildRootGroup = () => ({
|
|
|
37
37
|
exports.buildRootGroup = buildRootGroup;
|
|
38
38
|
function checkGridRowIdIsValid(id, row, detailErrorMessage = 'A row was provided without id in the rows prop:') {
|
|
39
39
|
if (id == null) {
|
|
40
|
-
throw new Error(['MUI: The data grid component requires all rows to have a unique `id` property.', 'Alternatively, you can use the `getRowId` prop to specify a custom id for each row.', detailErrorMessage, JSON.stringify(row)].join('\n'));
|
|
40
|
+
throw new Error(['MUI X: The data grid component requires all rows to have a unique `id` property.', 'Alternatively, you can use the `getRowId` prop to specify a custom id for each row.', detailErrorMessage, JSON.stringify(row)].join('\n'));
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
43
|
const getRowIdFromRowModel = (rowModel, getRowId, detailErrorMessage) => {
|
|
@@ -163,7 +163,7 @@ const updateCacheWithNewRows = ({
|
|
|
163
163
|
updates
|
|
164
164
|
}) => {
|
|
165
165
|
if (previousCache.updates.type === 'full') {
|
|
166
|
-
throw new Error('MUI: Unable to prepare a partial update if a full update is not applied yet');
|
|
166
|
+
throw new Error('MUI X: Unable to prepare a partial update if a full update is not applied yet.');
|
|
167
167
|
}
|
|
168
168
|
|
|
169
169
|
// Remove duplicate updates.
|
|
@@ -295,7 +295,7 @@ function calculatePinnedRowsHeight(apiRef) {
|
|
|
295
295
|
bottom: bottomPinnedRowsHeight
|
|
296
296
|
};
|
|
297
297
|
}
|
|
298
|
-
function getMinimalContentHeight(apiRef
|
|
299
|
-
const
|
|
300
|
-
return `var(--DataGrid-overlayHeight, ${2 *
|
|
298
|
+
function getMinimalContentHeight(apiRef) {
|
|
299
|
+
const dimensions = (0, _dimensions.gridDimensionsSelector)(apiRef.current.state);
|
|
300
|
+
return `var(--DataGrid-overlayHeight, ${2 * dimensions.rowHeight}px)`;
|
|
301
301
|
}
|
|
@@ -131,7 +131,7 @@ const useGridRows = (apiRef, props) => {
|
|
|
131
131
|
}, [logger, props.getRowId, props.loading, props.rowCount, throttledRowsChange, apiRef]);
|
|
132
132
|
const updateRows = React.useCallback(updates => {
|
|
133
133
|
if (props.signature === _useGridApiEventHandler.GridSignature.DataGrid && updates.length > 1) {
|
|
134
|
-
throw new Error(["MUI: You can't update several rows at once in `apiRef.current.updateRows` on the DataGrid.", 'You need to upgrade to DataGridPro or DataGridPremium component to unlock this feature.'].join('\n'));
|
|
134
|
+
throw new Error(["MUI X: You can't update several rows at once in `apiRef.current.updateRows` on the DataGrid.", 'You need to upgrade to DataGridPro or DataGridPremium component to unlock this feature.'].join('\n'));
|
|
135
135
|
}
|
|
136
136
|
const nonPinnedRowsUpdates = [];
|
|
137
137
|
updates.forEach(update => {
|
|
@@ -169,10 +169,10 @@ const useGridRows = (apiRef, props) => {
|
|
|
169
169
|
const setRowChildrenExpansion = React.useCallback((id, isExpanded) => {
|
|
170
170
|
const currentNode = apiRef.current.getRowNode(id);
|
|
171
171
|
if (!currentNode) {
|
|
172
|
-
throw new Error(`MUI: No row with id #${id} found
|
|
172
|
+
throw new Error(`MUI X: No row with id #${id} found.`);
|
|
173
173
|
}
|
|
174
174
|
if (currentNode.type !== 'group') {
|
|
175
|
-
throw new Error('MUI: Only group nodes can be expanded or collapsed');
|
|
175
|
+
throw new Error('MUI X: Only group nodes can be expanded or collapsed.');
|
|
176
176
|
}
|
|
177
177
|
const newNode = (0, _extends2.default)({}, currentNode, {
|
|
178
178
|
childrenExpanded: isExpanded
|
|
@@ -224,13 +224,13 @@ const useGridRows = (apiRef, props) => {
|
|
|
224
224
|
const setRowIndex = React.useCallback((rowId, targetIndex) => {
|
|
225
225
|
const node = apiRef.current.getRowNode(rowId);
|
|
226
226
|
if (!node) {
|
|
227
|
-
throw new Error(`MUI: No row with id #${rowId} found
|
|
227
|
+
throw new Error(`MUI X: No row with id #${rowId} found.`);
|
|
228
228
|
}
|
|
229
229
|
if (node.parent !== _gridRowsUtils.GRID_ROOT_GROUP_ID) {
|
|
230
|
-
throw new Error(`MUI: The row reordering do not support reordering of grouped rows yet
|
|
230
|
+
throw new Error(`MUI X: The row reordering do not support reordering of grouped rows yet.`);
|
|
231
231
|
}
|
|
232
232
|
if (node.type !== 'leaf') {
|
|
233
|
-
throw new Error(`MUI: The row reordering do not support reordering of footer or grouping rows
|
|
233
|
+
throw new Error(`MUI X: The row reordering do not support reordering of footer or grouping rows.`);
|
|
234
234
|
}
|
|
235
235
|
apiRef.current.setState(state => {
|
|
236
236
|
const group = (0, _gridRowsSelector.gridRowTreeSelector)(state, apiRef.current.instanceId)[_gridRowsUtils.GRID_ROOT_GROUP_ID];
|
|
@@ -256,7 +256,7 @@ const useGridRows = (apiRef, props) => {
|
|
|
256
256
|
}, [apiRef, logger]);
|
|
257
257
|
const replaceRows = React.useCallback((firstRowToRender, newRows) => {
|
|
258
258
|
if (props.signature === _useGridApiEventHandler.GridSignature.DataGrid && newRows.length > 1) {
|
|
259
|
-
throw new Error(["MUI: You can't replace rows using `apiRef.current.unstable_replaceRows` on the DataGrid.", 'You need to upgrade to DataGridPro or DataGridPremium component to unlock this feature.'].join('\n'));
|
|
259
|
+
throw new Error(["MUI X: You can't replace rows using `apiRef.current.unstable_replaceRows` on the DataGrid.", 'You need to upgrade to DataGridPro or DataGridPremium component to unlock this feature.'].join('\n'));
|
|
260
260
|
}
|
|
261
261
|
if (newRows.length === 0) {
|
|
262
262
|
return;
|
|
@@ -20,6 +20,8 @@ var _gridRowsSelector = require("./gridRowsSelector");
|
|
|
20
20
|
var _useDataGridProps = require("../../../DataGrid/useDataGridProps");
|
|
21
21
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
22
22
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
23
|
+
// TODO: I think the row heights can now be encoded as a single `size` instead of `sizes.baseXxxx`
|
|
24
|
+
|
|
23
25
|
const rowsMetaStateInitializer = state => (0, _extends2.default)({}, state, {
|
|
24
26
|
rowsMeta: {
|
|
25
27
|
currentPageTotalHeight: 0,
|
|
@@ -38,8 +40,8 @@ const getValidRowHeight = (rowHeightProp, defaultRowHeight, warningMessage) => {
|
|
|
38
40
|
}
|
|
39
41
|
return defaultRowHeight;
|
|
40
42
|
};
|
|
41
|
-
const rowHeightWarning = [`MUI: The \`rowHeight\` prop should be a number greater than 0.`, `The default value will be used instead.`].join('\n');
|
|
42
|
-
const getRowHeightWarning = [`MUI: The \`getRowHeight\` prop should return a number greater than 0 or 'auto'.`, `The default value will be used instead.`].join('\n');
|
|
43
|
+
const rowHeightWarning = [`MUI X: The \`rowHeight\` prop should be a number greater than 0.`, `The default value will be used instead.`].join('\n');
|
|
44
|
+
const getRowHeightWarning = [`MUI X: The \`getRowHeight\` prop should return a number greater than 0 or 'auto'.`, `The default value will be used instead.`].join('\n');
|
|
43
45
|
|
|
44
46
|
/**
|
|
45
47
|
* @requires useGridPageSize (method)
|
|
@@ -184,15 +186,15 @@ const useGridRowsMeta = (apiRef, props) => {
|
|
|
184
186
|
hydrateRowsMeta();
|
|
185
187
|
}, [hydrateRowsMeta]);
|
|
186
188
|
const debouncedHydrateRowsMeta = React.useMemo(() => (0, _utils.unstable_debounce)(hydrateRowsMeta, props.rowPositionsDebounceMs), [hydrateRowsMeta, props.rowPositionsDebounceMs]);
|
|
187
|
-
const storeMeasuredRowHeight = React.useCallback((id, height
|
|
189
|
+
const storeMeasuredRowHeight = React.useCallback((id, height) => {
|
|
188
190
|
if (!rowsHeightLookup.current[id] || !rowsHeightLookup.current[id].autoHeight) {
|
|
189
191
|
return;
|
|
190
192
|
}
|
|
191
193
|
|
|
192
194
|
// Only trigger hydration if the value is different, otherwise we trigger a loop
|
|
193
|
-
const needsHydration = rowsHeightLookup.current[id].sizes
|
|
195
|
+
const needsHydration = rowsHeightLookup.current[id].sizes.baseCenter !== height;
|
|
194
196
|
rowsHeightLookup.current[id].needsFirstMeasurement = false;
|
|
195
|
-
rowsHeightLookup.current[id].sizes
|
|
197
|
+
rowsHeightLookup.current[id].sizes.baseCenter = height;
|
|
196
198
|
if (needsHydration) {
|
|
197
199
|
debouncedHydrateRowsMeta();
|
|
198
200
|
}
|
|
@@ -14,7 +14,7 @@ var _gridRowsSelector = require("../rows/gridRowsSelector");
|
|
|
14
14
|
var _gridRowsMetaSelector = require("../rows/gridRowsMetaSelector");
|
|
15
15
|
var _useGridApiMethod = require("../../utils/useGridApiMethod");
|
|
16
16
|
var _gridFilterSelector = require("../filter/gridFilterSelector");
|
|
17
|
-
var
|
|
17
|
+
var _dimensions = require("../dimensions");
|
|
18
18
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
19
19
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
20
20
|
// Logic copied from https://www.w3.org/TR/wai-aria-practices/examples/listbox/js/listbox.js
|
|
@@ -56,6 +56,7 @@ const useGridScroll = (apiRef, props) => {
|
|
|
56
56
|
const virtualScrollerRef = apiRef.current.virtualScrollerRef;
|
|
57
57
|
const visibleSortedRows = (0, _useGridSelector.useGridSelector)(apiRef, _gridFilterSelector.gridExpandedSortedRowEntriesSelector);
|
|
58
58
|
const scrollToIndexes = React.useCallback(params => {
|
|
59
|
+
const dimensions = (0, _dimensions.gridDimensionsSelector)(apiRef.current.state);
|
|
59
60
|
const totalRowCount = (0, _gridRowsSelector.gridRowCountSelector)(apiRef);
|
|
60
61
|
const visibleColumns = (0, _gridColumnsSelector.gridVisibleColumnDefinitionsSelector)(apiRef);
|
|
61
62
|
const scrollToHeader = params.rowIndex == null;
|
|
@@ -64,7 +65,7 @@ const useGridScroll = (apiRef, props) => {
|
|
|
64
65
|
}
|
|
65
66
|
logger.debug(`Scrolling to cell at row ${params.rowIndex}, col: ${params.colIndex} `);
|
|
66
67
|
let scrollCoordinates = {};
|
|
67
|
-
if (params.colIndex
|
|
68
|
+
if (params.colIndex !== undefined) {
|
|
68
69
|
const columnPositions = (0, _gridColumnsSelector.gridColumnPositionsSelector)(apiRef);
|
|
69
70
|
let cellWidth;
|
|
70
71
|
if (typeof params.rowIndex !== 'undefined') {
|
|
@@ -79,22 +80,20 @@ const useGridScroll = (apiRef, props) => {
|
|
|
79
80
|
}
|
|
80
81
|
// When using RTL, `scrollLeft` becomes negative, so we must ensure that we only compare values.
|
|
81
82
|
scrollCoordinates.left = scrollIntoView({
|
|
82
|
-
clientHeight:
|
|
83
|
+
clientHeight: dimensions.viewportInnerSize.width,
|
|
83
84
|
scrollTop: Math.abs(virtualScrollerRef.current.scrollLeft),
|
|
84
85
|
offsetHeight: cellWidth,
|
|
85
86
|
offsetTop: columnPositions[params.colIndex]
|
|
86
87
|
});
|
|
87
88
|
}
|
|
88
|
-
if (params.rowIndex
|
|
89
|
+
if (params.rowIndex !== undefined) {
|
|
89
90
|
const rowsMeta = (0, _gridRowsMetaSelector.gridRowsMetaSelector)(apiRef.current.state);
|
|
90
91
|
const page = (0, _gridPaginationSelector.gridPageSelector)(apiRef);
|
|
91
92
|
const pageSize = (0, _gridPaginationSelector.gridPageSizeSelector)(apiRef);
|
|
92
93
|
const elementIndex = !props.pagination ? params.rowIndex : params.rowIndex - page * pageSize;
|
|
93
94
|
const targetOffsetHeight = rowsMeta.positions[elementIndex + 1] ? rowsMeta.positions[elementIndex + 1] - rowsMeta.positions[elementIndex] : rowsMeta.currentPageTotalHeight - rowsMeta.positions[elementIndex];
|
|
94
|
-
const topPinnedRowsHeight = virtualScrollerRef.current.querySelector(`.${_gridClasses.gridClasses['pinnedRows--top']}`)?.clientHeight || 0;
|
|
95
|
-
const bottomPinnedRowsHeight = virtualScrollerRef.current.querySelector(`.${_gridClasses.gridClasses['pinnedRows--bottom']}`)?.clientHeight || 0;
|
|
96
95
|
scrollCoordinates.top = scrollIntoView({
|
|
97
|
-
clientHeight:
|
|
96
|
+
clientHeight: dimensions.viewportInnerSize.height,
|
|
98
97
|
scrollTop: virtualScrollerRef.current.scrollTop,
|
|
99
98
|
offsetHeight: targetOffsetHeight,
|
|
100
99
|
offsetTop: rowsMeta.positions[elementIndex]
|
|
@@ -108,13 +107,13 @@ const useGridScroll = (apiRef, props) => {
|
|
|
108
107
|
return false;
|
|
109
108
|
}, [logger, apiRef, virtualScrollerRef, props.pagination, visibleSortedRows]);
|
|
110
109
|
const scroll = React.useCallback(params => {
|
|
111
|
-
if (virtualScrollerRef.current && params.left
|
|
110
|
+
if (virtualScrollerRef.current && params.left !== undefined && colRef.current) {
|
|
112
111
|
const direction = theme.direction === 'rtl' ? -1 : 1;
|
|
113
112
|
colRef.current.scrollLeft = params.left;
|
|
114
113
|
virtualScrollerRef.current.scrollLeft = direction * params.left;
|
|
115
114
|
logger.debug(`Scrolling left: ${params.left}`);
|
|
116
115
|
}
|
|
117
|
-
if (virtualScrollerRef.current && params.top
|
|
116
|
+
if (virtualScrollerRef.current && params.top !== undefined) {
|
|
118
117
|
virtualScrollerRef.current.scrollTop = params.top;
|
|
119
118
|
logger.debug(`Scrolling top: ${params.top}`);
|
|
120
119
|
}
|
|
@@ -7,10 +7,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.sanitizeSortModel = exports.mergeStateWithSortModel = exports.gridStringOrNumberComparator = exports.gridNumberComparator = exports.gridDateComparator = exports.getNextGridSortDirection = exports.buildAggregatedSortingApplier = void 0;
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var _warning = require("../../../utils/warning");
|
|
10
|
-
const sortModelDisableMultiColumnsSortingWarning = (0, _warning.buildWarning)(['MUI: The `sortModel` can only contain a single item when the `disableMultipleColumnsSorting` prop is set to `true`.', 'If you are using the community version of the `DataGrid`, this prop is always `true`.'], 'error');
|
|
10
|
+
const sortModelDisableMultiColumnsSortingWarning = (0, _warning.buildWarning)(['MUI X: The `sortModel` can only contain a single item when the `disableMultipleColumnsSorting` prop is set to `true`.', 'If you are using the community version of the `DataGrid`, this prop is always `true`.'], 'error');
|
|
11
11
|
const sanitizeSortModel = (model, disableMultipleColumnsSorting) => {
|
|
12
12
|
if (disableMultipleColumnsSorting && model.length > 1) {
|
|
13
|
-
|
|
13
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
14
|
+
sortModelDisableMultiColumnsSortingWarning();
|
|
15
|
+
}
|
|
14
16
|
return [model[0]];
|
|
15
17
|
}
|
|
16
18
|
return model;
|
|
@@ -32,7 +34,7 @@ const isDesc = direction => direction === 'desc';
|
|
|
32
34
|
*/
|
|
33
35
|
const parseSortItem = (sortItem, apiRef) => {
|
|
34
36
|
const column = apiRef.current.getColumn(sortItem.field);
|
|
35
|
-
if (!column) {
|
|
37
|
+
if (!column || sortItem.sort === null) {
|
|
36
38
|
return null;
|
|
37
39
|
}
|
|
38
40
|
const comparator = isDesc(sortItem.sort) ? (...args) => -1 * column.sortComparator(...args) : column.sortComparator;
|
|
@@ -66,7 +66,7 @@ const useGridSorting = (apiRef, props) => {
|
|
|
66
66
|
const existing = sortModel.find(c => c.field === col.field);
|
|
67
67
|
if (existing) {
|
|
68
68
|
const nextSort = directionOverride === undefined ? (0, _gridSortingUtils.getNextGridSortDirection)(col.sortingOrder ?? props.sortingOrder, existing.sort) : directionOverride;
|
|
69
|
-
return nextSort
|
|
69
|
+
return nextSort === undefined ? undefined : (0, _extends2.default)({}, existing, {
|
|
70
70
|
sort: nextSort
|
|
71
71
|
});
|
|
72
72
|
}
|
|
@@ -76,7 +76,7 @@ const useGridSorting = (apiRef, props) => {
|
|
|
76
76
|
};
|
|
77
77
|
}, [apiRef, props.sortingOrder]);
|
|
78
78
|
const addColumnMenuItem = React.useCallback((columnMenuItems, colDef) => {
|
|
79
|
-
if (colDef == null || colDef.sortable === false) {
|
|
79
|
+
if (colDef == null || colDef.sortable === false || props.disableColumnSorting) {
|
|
80
80
|
return columnMenuItems;
|
|
81
81
|
}
|
|
82
82
|
const sortingOrder = colDef.sortingOrder || props.sortingOrder;
|
|
@@ -84,7 +84,7 @@ const useGridSorting = (apiRef, props) => {
|
|
|
84
84
|
return [...columnMenuItems, 'columnMenuSortItem'];
|
|
85
85
|
}
|
|
86
86
|
return columnMenuItems;
|
|
87
|
-
}, [props.sortingOrder]);
|
|
87
|
+
}, [props.sortingOrder, props.disableColumnSorting]);
|
|
88
88
|
|
|
89
89
|
/**
|
|
90
90
|
* API METHODS
|
|
@@ -124,9 +124,6 @@ const useGridSorting = (apiRef, props) => {
|
|
|
124
124
|
}, [apiRef, logger, props.disableMultipleColumnsSorting]);
|
|
125
125
|
const sortColumn = React.useCallback((field, direction, allowMultipleSorting) => {
|
|
126
126
|
const column = apiRef.current.getColumn(field);
|
|
127
|
-
if (!column.sortable) {
|
|
128
|
-
return;
|
|
129
|
-
}
|
|
130
127
|
const sortItem = createSortItem(column, direction);
|
|
131
128
|
let sortModel;
|
|
132
129
|
if (!allowMultipleSorting || props.disableMultipleColumnsSorting) {
|
|
@@ -204,19 +201,27 @@ const useGridSorting = (apiRef, props) => {
|
|
|
204
201
|
* EVENTS
|
|
205
202
|
*/
|
|
206
203
|
const handleColumnHeaderClick = React.useCallback(({
|
|
207
|
-
field
|
|
204
|
+
field,
|
|
205
|
+
colDef
|
|
208
206
|
}, event) => {
|
|
207
|
+
if (!colDef.sortable || props.disableColumnSorting) {
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
209
210
|
const allowMultipleSorting = event.shiftKey || event.metaKey || event.ctrlKey;
|
|
210
211
|
sortColumn(field, undefined, allowMultipleSorting);
|
|
211
|
-
}, [sortColumn]);
|
|
212
|
+
}, [sortColumn, props.disableColumnSorting]);
|
|
212
213
|
const handleColumnHeaderKeyDown = React.useCallback(({
|
|
213
|
-
field
|
|
214
|
+
field,
|
|
215
|
+
colDef
|
|
214
216
|
}, event) => {
|
|
217
|
+
if (!colDef.sortable || props.disableColumnSorting) {
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
215
220
|
// Ctrl + Enter opens the column menu
|
|
216
221
|
if ((0, _keyboardUtils.isEnterKey)(event.key) && !event.ctrlKey && !event.metaKey) {
|
|
217
222
|
sortColumn(field, undefined, event.shiftKey);
|
|
218
223
|
}
|
|
219
|
-
}, [sortColumn]);
|
|
224
|
+
}, [sortColumn, props.disableColumnSorting]);
|
|
220
225
|
const handleColumnsChange = React.useCallback(() => {
|
|
221
226
|
// When the columns change we check that the sorted columns are still part of the dataset
|
|
222
227
|
const sortModel = (0, _gridSortingSelector.gridSortModelSelector)(apiRef);
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.gridVirtualizationSelector = exports.gridVirtualizationEnabledSelector = exports.gridVirtualizationColumnEnabledSelector = void 0;
|
|
6
|
+
exports.gridVirtualizationSelector = exports.gridVirtualizationEnabledSelector = exports.gridVirtualizationColumnEnabledSelector = exports.gridRenderContextSelector = exports.gridRenderContextColumnsSelector = void 0;
|
|
7
7
|
var _createSelector = require("../../../utils/createSelector");
|
|
8
8
|
/**
|
|
9
9
|
* Get the columns state
|
|
@@ -22,4 +22,24 @@ const gridVirtualizationEnabledSelector = exports.gridVirtualizationEnabledSelec
|
|
|
22
22
|
* Get the enabled state for virtualization
|
|
23
23
|
* @category Virtualization
|
|
24
24
|
*/
|
|
25
|
-
const gridVirtualizationColumnEnabledSelector = exports.gridVirtualizationColumnEnabledSelector = (0, _createSelector.createSelector)(gridVirtualizationSelector, state => state.enabledForColumns);
|
|
25
|
+
const gridVirtualizationColumnEnabledSelector = exports.gridVirtualizationColumnEnabledSelector = (0, _createSelector.createSelector)(gridVirtualizationSelector, state => state.enabledForColumns);
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Get the render context
|
|
29
|
+
* @category Virtualization
|
|
30
|
+
* @ignore - do not document.
|
|
31
|
+
*/
|
|
32
|
+
const gridRenderContextSelector = exports.gridRenderContextSelector = (0, _createSelector.createSelector)(gridVirtualizationSelector, state => state.renderContext);
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Get the render context, with only columns filled in.
|
|
36
|
+
* This is cached, so it can be used to only re-render when the column interval changes.
|
|
37
|
+
* @category Virtualization
|
|
38
|
+
* @ignore - do not document.
|
|
39
|
+
*/
|
|
40
|
+
const gridRenderContextColumnsSelector = exports.gridRenderContextColumnsSelector = (0, _createSelector.createSelectorMemoized)(state => state.virtualization.renderContext.firstColumnIndex, state => state.virtualization.renderContext.lastColumnIndex, (firstColumnIndex, lastColumnIndex) => ({
|
|
41
|
+
firstRowIndex: -1,
|
|
42
|
+
lastRowIndex: -1,
|
|
43
|
+
firstColumnIndex,
|
|
44
|
+
lastColumnIndex
|
|
45
|
+
}));
|