@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
|
@@ -11,7 +11,7 @@ import { GridCellModes } from '../../../models/gridEditRowModel';
|
|
|
11
11
|
import { isNavigationKey } from '../../../utils/keyboardUtils';
|
|
12
12
|
import { GRID_DETAIL_PANEL_TOGGLE_FIELD } from '../../../constants/gridDetailPanelToggleField';
|
|
13
13
|
import { gridPinnedRowsSelector } from '../rows/gridRowsSelector';
|
|
14
|
-
import {
|
|
14
|
+
import { gridFocusColumnGroupHeaderSelector } from '../focus';
|
|
15
15
|
import { gridColumnGroupsHeaderMaxDepthSelector } from '../columnGrouping/gridColumnGroupsSelector';
|
|
16
16
|
import { gridHeaderFilteringEditFieldSelector, gridHeaderFilteringMenuSelector } from '../headerFiltering/gridHeaderFilteringSelectors';
|
|
17
17
|
import { useGridRegisterPipeProcessor } from '../../core/pipeProcessing';
|
|
@@ -138,10 +138,6 @@ export const useGridKeyboardNavigation = (apiRef, props) => {
|
|
|
138
138
|
// There is one exception for the checkBoxHeader
|
|
139
139
|
return;
|
|
140
140
|
}
|
|
141
|
-
const dimensions = apiRef.current.getRootDimensions();
|
|
142
|
-
if (!dimensions) {
|
|
143
|
-
return;
|
|
144
|
-
}
|
|
145
141
|
const viewportPageSize = apiRef.current.getViewportPageSize();
|
|
146
142
|
const colIndexBefore = params.field ? apiRef.current.getColumnIndex(params.field) : 0;
|
|
147
143
|
const firstRowIndexInPage = currentPageRows.length > 0 ? 0 : null;
|
|
@@ -234,10 +230,6 @@ export const useGridKeyboardNavigation = (apiRef, props) => {
|
|
|
234
230
|
}
|
|
235
231
|
}, [apiRef, currentPageRows.length, headerFilteringEnabled, goToHeaderFilter, goToCell, getRowIdFromIndex, theme.direction, goToHeader, goToGroupHeader]);
|
|
236
232
|
const handleHeaderFilterKeyDown = React.useCallback((params, event) => {
|
|
237
|
-
const dimensions = apiRef.current.getRootDimensions();
|
|
238
|
-
if (!dimensions) {
|
|
239
|
-
return;
|
|
240
|
-
}
|
|
241
233
|
const isEditing = gridHeaderFilteringEditFieldSelector(apiRef) === params.field;
|
|
242
234
|
const isHeaderMenuOpen = gridHeaderFilteringMenuSelector(apiRef) === params.field;
|
|
243
235
|
if (isEditing || isHeaderMenuOpen || !isNavigationKey(event.key)) {
|
|
@@ -324,11 +316,7 @@ export const useGridKeyboardNavigation = (apiRef, props) => {
|
|
|
324
316
|
}
|
|
325
317
|
}, [apiRef, currentPageRows.length, goToHeaderFilter, theme.direction, goToHeader, goToCell, getRowIdFromIndex]);
|
|
326
318
|
const handleColumnGroupHeaderKeyDown = React.useCallback((params, event) => {
|
|
327
|
-
const
|
|
328
|
-
if (!dimensions) {
|
|
329
|
-
return;
|
|
330
|
-
}
|
|
331
|
-
const focusedColumnGroup = unstable_gridFocusColumnGroupHeaderSelector(apiRef);
|
|
319
|
+
const focusedColumnGroup = gridFocusColumnGroupHeaderSelector(apiRef);
|
|
332
320
|
if (focusedColumnGroup === null) {
|
|
333
321
|
return;
|
|
334
322
|
}
|
|
@@ -431,8 +419,7 @@ export const useGridKeyboardNavigation = (apiRef, props) => {
|
|
|
431
419
|
if (!canUpdateFocus) {
|
|
432
420
|
return;
|
|
433
421
|
}
|
|
434
|
-
|
|
435
|
-
if (currentPageRows.length === 0 || !dimensions) {
|
|
422
|
+
if (currentPageRows.length === 0) {
|
|
436
423
|
return;
|
|
437
424
|
}
|
|
438
425
|
const direction = theme.direction;
|
|
@@ -8,7 +8,7 @@ export const getPageCount = (rowCount, pageSize) => {
|
|
|
8
8
|
}
|
|
9
9
|
return 0;
|
|
10
10
|
};
|
|
11
|
-
export const noRowCountInServerMode = 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');
|
|
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
12
|
export const getDefaultGridPaginationModel = autoPageSize => ({
|
|
13
13
|
page: 0,
|
|
14
14
|
pageSize: autoPageSize ? 0 : 100
|
|
@@ -21,6 +21,6 @@ export const getValidPage = (page, pageCount = 0) => {
|
|
|
21
21
|
};
|
|
22
22
|
export const throwIfPageSizeExceedsTheLimit = (pageSize, signatureProp) => {
|
|
23
23
|
if (signatureProp === GridSignature.DataGrid && pageSize > MAX_PAGE_SIZE) {
|
|
24
|
-
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'));
|
|
24
|
+
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'));
|
|
25
25
|
}
|
|
26
26
|
};
|
|
@@ -5,7 +5,6 @@ import { gridDensityFactorSelector } from '../density';
|
|
|
5
5
|
import { useGridLogger, useGridSelector, useGridApiMethod, useGridApiEventHandler } from '../../utils';
|
|
6
6
|
import { useGridRegisterPipeProcessor } from '../../core/pipeProcessing';
|
|
7
7
|
import { gridPaginationModelSelector } from './gridPaginationSelector';
|
|
8
|
-
import { calculatePinnedRowsHeight } from '../rows/gridRowsUtils';
|
|
9
8
|
import { getPageCount, noRowCountInServerMode, defaultPageSize, throwIfPageSizeExceedsTheLimit, getDefaultGridPaginationModel, getValidPage } from './gridPaginationUtils';
|
|
10
9
|
export const paginationStateInitializer = (state, props) => {
|
|
11
10
|
var _props$paginationMode, _props$initialState;
|
|
@@ -144,12 +143,11 @@ export const useGridPagination = (apiRef, props) => {
|
|
|
144
143
|
apiRef.current.forceUpdate();
|
|
145
144
|
};
|
|
146
145
|
const handleUpdateAutoPageSize = React.useCallback(() => {
|
|
147
|
-
|
|
148
|
-
if (!props.autoPageSize || !dimensions) {
|
|
146
|
+
if (!props.autoPageSize) {
|
|
149
147
|
return;
|
|
150
148
|
}
|
|
151
|
-
const
|
|
152
|
-
const maximumPageSizeWithoutScrollBar = Math.floor(
|
|
149
|
+
const dimensions = apiRef.current.getRootDimensions();
|
|
150
|
+
const maximumPageSizeWithoutScrollBar = Math.floor(dimensions.viewportInnerSize.height / rowHeight);
|
|
153
151
|
apiRef.current.setPageSize(maximumPageSizeWithoutScrollBar);
|
|
154
152
|
}, [apiRef, props.autoPageSize, rowHeight]);
|
|
155
153
|
useGridApiEventHandler(apiRef, 'viewportInnerSizeChange', handleUpdateAutoPageSize);
|
|
@@ -96,7 +96,7 @@ export const useGridRowSelection = (apiRef, props) => {
|
|
|
96
96
|
*/
|
|
97
97
|
const setRowSelectionModel = React.useCallback(model => {
|
|
98
98
|
if (props.signature === GridSignature.DataGrid && !canHaveMultipleSelection && Array.isArray(model) && model.length > 1) {
|
|
99
|
-
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'));
|
|
99
|
+
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'));
|
|
100
100
|
}
|
|
101
101
|
const currentModel = gridRowSelectionStateSelector(apiRef.current.state);
|
|
102
102
|
if (currentModel !== model) {
|
|
@@ -22,11 +22,11 @@ export declare const gridPinnedRowsSelector: import("../../../utils/createSelect
|
|
|
22
22
|
bottom: {
|
|
23
23
|
id: import("../../..").GridRowId;
|
|
24
24
|
model: import("../../..").GridValidRowModel;
|
|
25
|
-
}[]
|
|
25
|
+
}[];
|
|
26
26
|
top: {
|
|
27
27
|
id: import("../../..").GridRowId;
|
|
28
28
|
model: import("../../..").GridValidRowModel;
|
|
29
|
-
}[]
|
|
29
|
+
}[];
|
|
30
30
|
}>;
|
|
31
31
|
/**
|
|
32
32
|
* @ignore - do not document.
|
|
@@ -28,23 +28,23 @@ export const gridAdditionalRowGroupsSelector = createSelector(gridRowsStateSelec
|
|
|
28
28
|
* @ignore - do not document.
|
|
29
29
|
*/
|
|
30
30
|
export const gridPinnedRowsSelector = createSelectorMemoized(gridAdditionalRowGroupsSelector, additionalRowGroups => {
|
|
31
|
-
var _rawPinnedRows$bottom, _rawPinnedRows$top;
|
|
31
|
+
var _rawPinnedRows$bottom, _rawPinnedRows$bottom2, _rawPinnedRows$top$ma, _rawPinnedRows$top;
|
|
32
32
|
const rawPinnedRows = additionalRowGroups == null ? void 0 : additionalRowGroups.pinnedRows;
|
|
33
33
|
return {
|
|
34
|
-
bottom: rawPinnedRows == null || (_rawPinnedRows$
|
|
34
|
+
bottom: (_rawPinnedRows$bottom = rawPinnedRows == null || (_rawPinnedRows$bottom2 = rawPinnedRows.bottom) == null ? void 0 : _rawPinnedRows$bottom2.map(rowEntry => {
|
|
35
35
|
var _rowEntry$model;
|
|
36
36
|
return {
|
|
37
37
|
id: rowEntry.id,
|
|
38
38
|
model: (_rowEntry$model = rowEntry.model) != null ? _rowEntry$model : {}
|
|
39
39
|
};
|
|
40
|
-
}),
|
|
41
|
-
top: rawPinnedRows == null || (_rawPinnedRows$top = rawPinnedRows.top) == null ? void 0 : _rawPinnedRows$top.map(rowEntry => {
|
|
40
|
+
})) != null ? _rawPinnedRows$bottom : [],
|
|
41
|
+
top: (_rawPinnedRows$top$ma = rawPinnedRows == null || (_rawPinnedRows$top = rawPinnedRows.top) == null ? void 0 : _rawPinnedRows$top.map(rowEntry => {
|
|
42
42
|
var _rowEntry$model2;
|
|
43
43
|
return {
|
|
44
44
|
id: rowEntry.id,
|
|
45
45
|
model: (_rowEntry$model2 = rowEntry.model) != null ? _rowEntry$model2 : {}
|
|
46
46
|
};
|
|
47
|
-
})
|
|
47
|
+
})) != null ? _rawPinnedRows$top$ma : []
|
|
48
48
|
};
|
|
49
49
|
});
|
|
50
50
|
|
|
@@ -35,4 +35,4 @@ export declare function calculatePinnedRowsHeight(apiRef: React.MutableRefObject
|
|
|
35
35
|
top: number;
|
|
36
36
|
bottom: number;
|
|
37
37
|
};
|
|
38
|
-
export declare function getMinimalContentHeight(apiRef: React.MutableRefObject<GridApiCommunity
|
|
38
|
+
export declare function getMinimalContentHeight(apiRef: React.MutableRefObject<GridApiCommunity>): string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import { gridPinnedRowsSelector } from './gridRowsSelector';
|
|
3
|
-
import {
|
|
3
|
+
import { gridDimensionsSelector } from '../dimensions';
|
|
4
4
|
export const GRID_ROOT_GROUP_ID = `auto-generated-group-node-root`;
|
|
5
5
|
export const GRID_ID_AUTOGENERATED = Symbol('mui.id_autogenerated');
|
|
6
6
|
export const buildRootGroup = () => ({
|
|
@@ -24,7 +24,7 @@ export const buildRootGroup = () => ({
|
|
|
24
24
|
*/
|
|
25
25
|
export function checkGridRowIdIsValid(id, row, detailErrorMessage = 'A row was provided without id in the rows prop:') {
|
|
26
26
|
if (id == null) {
|
|
27
|
-
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'));
|
|
27
|
+
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'));
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
export const getRowIdFromRowModel = (rowModel, getRowId, detailErrorMessage) => {
|
|
@@ -145,7 +145,7 @@ export const updateCacheWithNewRows = ({
|
|
|
145
145
|
}) => {
|
|
146
146
|
var _previousCache$update, _previousCache$update2, _previousCache$update3;
|
|
147
147
|
if (previousCache.updates.type === 'full') {
|
|
148
|
-
throw new Error('MUI: Unable to prepare a partial update if a full update is not applied yet');
|
|
148
|
+
throw new Error('MUI X: Unable to prepare a partial update if a full update is not applied yet.');
|
|
149
149
|
}
|
|
150
150
|
|
|
151
151
|
// Remove duplicate updates.
|
|
@@ -277,7 +277,7 @@ export function calculatePinnedRowsHeight(apiRef) {
|
|
|
277
277
|
bottom: bottomPinnedRowsHeight
|
|
278
278
|
};
|
|
279
279
|
}
|
|
280
|
-
export function getMinimalContentHeight(apiRef
|
|
281
|
-
const
|
|
282
|
-
return `var(--DataGrid-overlayHeight, ${2 *
|
|
280
|
+
export function getMinimalContentHeight(apiRef) {
|
|
281
|
+
const dimensions = gridDimensionsSelector(apiRef.current.state);
|
|
282
|
+
return `var(--DataGrid-overlayHeight, ${2 * dimensions.rowHeight}px)`;
|
|
283
283
|
}
|
|
@@ -121,7 +121,7 @@ export const useGridRows = (apiRef, props) => {
|
|
|
121
121
|
}, [logger, props.getRowId, props.loading, props.rowCount, throttledRowsChange, apiRef]);
|
|
122
122
|
const updateRows = React.useCallback(updates => {
|
|
123
123
|
if (props.signature === GridSignature.DataGrid && updates.length > 1) {
|
|
124
|
-
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'));
|
|
124
|
+
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'));
|
|
125
125
|
}
|
|
126
126
|
const nonPinnedRowsUpdates = [];
|
|
127
127
|
updates.forEach(update => {
|
|
@@ -162,10 +162,10 @@ export const useGridRows = (apiRef, props) => {
|
|
|
162
162
|
const setRowChildrenExpansion = React.useCallback((id, isExpanded) => {
|
|
163
163
|
const currentNode = apiRef.current.getRowNode(id);
|
|
164
164
|
if (!currentNode) {
|
|
165
|
-
throw new Error(`MUI: No row with id #${id} found
|
|
165
|
+
throw new Error(`MUI X: No row with id #${id} found.`);
|
|
166
166
|
}
|
|
167
167
|
if (currentNode.type !== 'group') {
|
|
168
|
-
throw new Error('MUI: Only group nodes can be expanded or collapsed');
|
|
168
|
+
throw new Error('MUI X: Only group nodes can be expanded or collapsed.');
|
|
169
169
|
}
|
|
170
170
|
const newNode = _extends({}, currentNode, {
|
|
171
171
|
childrenExpanded: isExpanded
|
|
@@ -220,13 +220,13 @@ export const useGridRows = (apiRef, props) => {
|
|
|
220
220
|
const setRowIndex = React.useCallback((rowId, targetIndex) => {
|
|
221
221
|
const node = apiRef.current.getRowNode(rowId);
|
|
222
222
|
if (!node) {
|
|
223
|
-
throw new Error(`MUI: No row with id #${rowId} found
|
|
223
|
+
throw new Error(`MUI X: No row with id #${rowId} found.`);
|
|
224
224
|
}
|
|
225
225
|
if (node.parent !== GRID_ROOT_GROUP_ID) {
|
|
226
|
-
throw new Error(`MUI: The row reordering do not support reordering of grouped rows yet
|
|
226
|
+
throw new Error(`MUI X: The row reordering do not support reordering of grouped rows yet.`);
|
|
227
227
|
}
|
|
228
228
|
if (node.type !== 'leaf') {
|
|
229
|
-
throw new Error(`MUI: The row reordering do not support reordering of footer or grouping rows
|
|
229
|
+
throw new Error(`MUI X: The row reordering do not support reordering of footer or grouping rows.`);
|
|
230
230
|
}
|
|
231
231
|
apiRef.current.setState(state => {
|
|
232
232
|
const group = gridRowTreeSelector(state, apiRef.current.instanceId)[GRID_ROOT_GROUP_ID];
|
|
@@ -252,7 +252,7 @@ export const useGridRows = (apiRef, props) => {
|
|
|
252
252
|
}, [apiRef, logger]);
|
|
253
253
|
const replaceRows = React.useCallback((firstRowToRender, newRows) => {
|
|
254
254
|
if (props.signature === GridSignature.DataGrid && newRows.length > 1) {
|
|
255
|
-
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'));
|
|
255
|
+
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'));
|
|
256
256
|
}
|
|
257
257
|
if (newRows.length === 0) {
|
|
258
258
|
return;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import { unstable_debounce as debounce
|
|
3
|
+
import { unstable_debounce as debounce } from '@mui/utils';
|
|
4
4
|
import { useGridVisibleRows } from '../../utils/useGridVisibleRows';
|
|
5
5
|
import { useGridApiMethod } from '../../utils/useGridApiMethod';
|
|
6
6
|
import { useGridSelector } from '../../utils/useGridSelector';
|
|
@@ -11,6 +11,9 @@ import { gridSortModelSelector } from '../sorting/gridSortingSelector';
|
|
|
11
11
|
import { useGridRegisterPipeApplier } from '../../core/pipeProcessing';
|
|
12
12
|
import { gridPinnedRowsSelector } from './gridRowsSelector';
|
|
13
13
|
import { DATA_GRID_PROPS_DEFAULT_VALUES } from '../../../DataGrid/useDataGridProps';
|
|
14
|
+
|
|
15
|
+
// TODO: I think the row heights can now be encoded as a single `size` instead of `sizes.baseXxxx`
|
|
16
|
+
|
|
14
17
|
export const rowsMetaStateInitializer = state => _extends({}, state, {
|
|
15
18
|
rowsMeta: {
|
|
16
19
|
currentPageTotalHeight: 0,
|
|
@@ -28,8 +31,8 @@ const getValidRowHeight = (rowHeightProp, defaultRowHeight, warningMessage) => {
|
|
|
28
31
|
}
|
|
29
32
|
return defaultRowHeight;
|
|
30
33
|
};
|
|
31
|
-
const rowHeightWarning = [`MUI: The \`rowHeight\` prop should be a number greater than 0.`, `The default value will be used instead.`].join('\n');
|
|
32
|
-
const getRowHeightWarning = [`MUI: The \`getRowHeight\` prop should return a number greater than 0 or 'auto'.`, `The default value will be used instead.`].join('\n');
|
|
34
|
+
const rowHeightWarning = [`MUI X: The \`rowHeight\` prop should be a number greater than 0.`, `The default value will be used instead.`].join('\n');
|
|
35
|
+
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');
|
|
33
36
|
|
|
34
37
|
/**
|
|
35
38
|
* @requires useGridPageSize (method)
|
|
@@ -179,15 +182,15 @@ export const useGridRowsMeta = (apiRef, props) => {
|
|
|
179
182
|
hydrateRowsMeta();
|
|
180
183
|
}, [hydrateRowsMeta]);
|
|
181
184
|
const debouncedHydrateRowsMeta = React.useMemo(() => debounce(hydrateRowsMeta, props.rowPositionsDebounceMs), [hydrateRowsMeta, props.rowPositionsDebounceMs]);
|
|
182
|
-
const storeMeasuredRowHeight = React.useCallback((id, height
|
|
185
|
+
const storeMeasuredRowHeight = React.useCallback((id, height) => {
|
|
183
186
|
if (!rowsHeightLookup.current[id] || !rowsHeightLookup.current[id].autoHeight) {
|
|
184
187
|
return;
|
|
185
188
|
}
|
|
186
189
|
|
|
187
190
|
// Only trigger hydration if the value is different, otherwise we trigger a loop
|
|
188
|
-
const needsHydration = rowsHeightLookup.current[id].sizes
|
|
191
|
+
const needsHydration = rowsHeightLookup.current[id].sizes.baseCenter !== height;
|
|
189
192
|
rowsHeightLookup.current[id].needsFirstMeasurement = false;
|
|
190
|
-
rowsHeightLookup.current[id].sizes
|
|
193
|
+
rowsHeightLookup.current[id].sizes.baseCenter = height;
|
|
191
194
|
if (needsHydration) {
|
|
192
195
|
debouncedHydrateRowsMeta();
|
|
193
196
|
}
|
|
@@ -8,7 +8,7 @@ import { gridRowCountSelector } from '../rows/gridRowsSelector';
|
|
|
8
8
|
import { gridRowsMetaSelector } from '../rows/gridRowsMetaSelector';
|
|
9
9
|
import { useGridApiMethod } from '../../utils/useGridApiMethod';
|
|
10
10
|
import { gridExpandedSortedRowEntriesSelector } from '../filter/gridFilterSelector';
|
|
11
|
-
import {
|
|
11
|
+
import { gridDimensionsSelector } from '../dimensions';
|
|
12
12
|
|
|
13
13
|
// Logic copied from https://www.w3.org/TR/wai-aria-practices/examples/listbox/js/listbox.js
|
|
14
14
|
// Similar to https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView
|
|
@@ -49,6 +49,7 @@ export const useGridScroll = (apiRef, props) => {
|
|
|
49
49
|
const virtualScrollerRef = apiRef.current.virtualScrollerRef;
|
|
50
50
|
const visibleSortedRows = useGridSelector(apiRef, gridExpandedSortedRowEntriesSelector);
|
|
51
51
|
const scrollToIndexes = React.useCallback(params => {
|
|
52
|
+
const dimensions = gridDimensionsSelector(apiRef.current.state);
|
|
52
53
|
const totalRowCount = gridRowCountSelector(apiRef);
|
|
53
54
|
const visibleColumns = gridVisibleColumnDefinitionsSelector(apiRef);
|
|
54
55
|
const scrollToHeader = params.rowIndex == null;
|
|
@@ -57,7 +58,7 @@ export const useGridScroll = (apiRef, props) => {
|
|
|
57
58
|
}
|
|
58
59
|
logger.debug(`Scrolling to cell at row ${params.rowIndex}, col: ${params.colIndex} `);
|
|
59
60
|
let scrollCoordinates = {};
|
|
60
|
-
if (params.colIndex
|
|
61
|
+
if (params.colIndex !== undefined) {
|
|
61
62
|
const columnPositions = gridColumnPositionsSelector(apiRef);
|
|
62
63
|
let cellWidth;
|
|
63
64
|
if (typeof params.rowIndex !== 'undefined') {
|
|
@@ -73,23 +74,20 @@ export const useGridScroll = (apiRef, props) => {
|
|
|
73
74
|
}
|
|
74
75
|
// When using RTL, `scrollLeft` becomes negative, so we must ensure that we only compare values.
|
|
75
76
|
scrollCoordinates.left = scrollIntoView({
|
|
76
|
-
clientHeight:
|
|
77
|
+
clientHeight: dimensions.viewportInnerSize.width,
|
|
77
78
|
scrollTop: Math.abs(virtualScrollerRef.current.scrollLeft),
|
|
78
79
|
offsetHeight: cellWidth,
|
|
79
80
|
offsetTop: columnPositions[params.colIndex]
|
|
80
81
|
});
|
|
81
82
|
}
|
|
82
|
-
if (params.rowIndex
|
|
83
|
-
var _querySelector, _querySelector2;
|
|
83
|
+
if (params.rowIndex !== undefined) {
|
|
84
84
|
const rowsMeta = gridRowsMetaSelector(apiRef.current.state);
|
|
85
85
|
const page = gridPageSelector(apiRef);
|
|
86
86
|
const pageSize = gridPageSizeSelector(apiRef);
|
|
87
87
|
const elementIndex = !props.pagination ? params.rowIndex : params.rowIndex - page * pageSize;
|
|
88
88
|
const targetOffsetHeight = rowsMeta.positions[elementIndex + 1] ? rowsMeta.positions[elementIndex + 1] - rowsMeta.positions[elementIndex] : rowsMeta.currentPageTotalHeight - rowsMeta.positions[elementIndex];
|
|
89
|
-
const topPinnedRowsHeight = ((_querySelector = virtualScrollerRef.current.querySelector(`.${gridClasses['pinnedRows--top']}`)) == null ? void 0 : _querySelector.clientHeight) || 0;
|
|
90
|
-
const bottomPinnedRowsHeight = ((_querySelector2 = virtualScrollerRef.current.querySelector(`.${gridClasses['pinnedRows--bottom']}`)) == null ? void 0 : _querySelector2.clientHeight) || 0;
|
|
91
89
|
scrollCoordinates.top = scrollIntoView({
|
|
92
|
-
clientHeight:
|
|
90
|
+
clientHeight: dimensions.viewportInnerSize.height,
|
|
93
91
|
scrollTop: virtualScrollerRef.current.scrollTop,
|
|
94
92
|
offsetHeight: targetOffsetHeight,
|
|
95
93
|
offsetTop: rowsMeta.positions[elementIndex]
|
|
@@ -103,13 +101,13 @@ export const useGridScroll = (apiRef, props) => {
|
|
|
103
101
|
return false;
|
|
104
102
|
}, [logger, apiRef, virtualScrollerRef, props.pagination, visibleSortedRows]);
|
|
105
103
|
const scroll = React.useCallback(params => {
|
|
106
|
-
if (virtualScrollerRef.current && params.left
|
|
104
|
+
if (virtualScrollerRef.current && params.left !== undefined && colRef.current) {
|
|
107
105
|
const direction = theme.direction === 'rtl' ? -1 : 1;
|
|
108
106
|
colRef.current.scrollLeft = params.left;
|
|
109
107
|
virtualScrollerRef.current.scrollLeft = direction * params.left;
|
|
110
108
|
logger.debug(`Scrolling left: ${params.left}`);
|
|
111
109
|
}
|
|
112
|
-
if (virtualScrollerRef.current && params.top
|
|
110
|
+
if (virtualScrollerRef.current && params.top !== undefined) {
|
|
113
111
|
virtualScrollerRef.current.scrollTop = params.top;
|
|
114
112
|
logger.debug(`Scrolling top: ${params.top}`);
|
|
115
113
|
}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import { buildWarning } from '../../../utils/warning';
|
|
3
|
-
const sortModelDisableMultiColumnsSortingWarning = 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');
|
|
3
|
+
const sortModelDisableMultiColumnsSortingWarning = 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');
|
|
4
4
|
export const sanitizeSortModel = (model, disableMultipleColumnsSorting) => {
|
|
5
5
|
if (disableMultipleColumnsSorting && model.length > 1) {
|
|
6
|
-
|
|
6
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
7
|
+
sortModelDisableMultiColumnsSortingWarning();
|
|
8
|
+
}
|
|
7
9
|
return [model[0]];
|
|
8
10
|
}
|
|
9
11
|
return model;
|
|
@@ -23,7 +25,7 @@ const isDesc = direction => direction === 'desc';
|
|
|
23
25
|
*/
|
|
24
26
|
const parseSortItem = (sortItem, apiRef) => {
|
|
25
27
|
const column = apiRef.current.getColumn(sortItem.field);
|
|
26
|
-
if (!column) {
|
|
28
|
+
if (!column || sortItem.sort === null) {
|
|
27
29
|
return null;
|
|
28
30
|
}
|
|
29
31
|
const comparator = isDesc(sortItem.sort) ? (...args) => -1 * column.sortComparator(...args) : column.sortComparator;
|
|
@@ -7,4 +7,4 @@ export declare const sortingStateInitializer: GridStateInitializer<Pick<DataGrid
|
|
|
7
7
|
* @requires useGridRows (event)
|
|
8
8
|
* @requires useGridColumns (event)
|
|
9
9
|
*/
|
|
10
|
-
export declare const useGridSorting: (apiRef: React.MutableRefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, 'initialState' | 'sortModel' | 'onSortModelChange' | 'sortingOrder' | 'sortingMode' | 'disableMultipleColumnsSorting'>) => void;
|
|
10
|
+
export declare const useGridSorting: (apiRef: React.MutableRefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, 'initialState' | 'sortModel' | 'onSortModelChange' | 'sortingOrder' | 'sortingMode' | 'disableColumnSorting' | 'disableMultipleColumnsSorting'>) => void;
|
|
@@ -60,7 +60,7 @@ export const useGridSorting = (apiRef, props) => {
|
|
|
60
60
|
if (existing) {
|
|
61
61
|
var _col$sortingOrder;
|
|
62
62
|
const nextSort = directionOverride === undefined ? getNextGridSortDirection((_col$sortingOrder = col.sortingOrder) != null ? _col$sortingOrder : props.sortingOrder, existing.sort) : directionOverride;
|
|
63
|
-
return nextSort
|
|
63
|
+
return nextSort === undefined ? undefined : _extends({}, existing, {
|
|
64
64
|
sort: nextSort
|
|
65
65
|
});
|
|
66
66
|
}
|
|
@@ -70,7 +70,7 @@ export const useGridSorting = (apiRef, props) => {
|
|
|
70
70
|
};
|
|
71
71
|
}, [apiRef, props.sortingOrder]);
|
|
72
72
|
const addColumnMenuItem = React.useCallback((columnMenuItems, colDef) => {
|
|
73
|
-
if (colDef == null || colDef.sortable === false) {
|
|
73
|
+
if (colDef == null || colDef.sortable === false || props.disableColumnSorting) {
|
|
74
74
|
return columnMenuItems;
|
|
75
75
|
}
|
|
76
76
|
const sortingOrder = colDef.sortingOrder || props.sortingOrder;
|
|
@@ -78,7 +78,7 @@ export const useGridSorting = (apiRef, props) => {
|
|
|
78
78
|
return [...columnMenuItems, 'columnMenuSortItem'];
|
|
79
79
|
}
|
|
80
80
|
return columnMenuItems;
|
|
81
|
-
}, [props.sortingOrder]);
|
|
81
|
+
}, [props.sortingOrder, props.disableColumnSorting]);
|
|
82
82
|
|
|
83
83
|
/**
|
|
84
84
|
* API METHODS
|
|
@@ -118,9 +118,6 @@ export const useGridSorting = (apiRef, props) => {
|
|
|
118
118
|
}, [apiRef, logger, props.disableMultipleColumnsSorting]);
|
|
119
119
|
const sortColumn = React.useCallback((field, direction, allowMultipleSorting) => {
|
|
120
120
|
const column = apiRef.current.getColumn(field);
|
|
121
|
-
if (!column.sortable) {
|
|
122
|
-
return;
|
|
123
|
-
}
|
|
124
121
|
const sortItem = createSortItem(column, direction);
|
|
125
122
|
let sortModel;
|
|
126
123
|
if (!allowMultipleSorting || props.disableMultipleColumnsSorting) {
|
|
@@ -200,19 +197,27 @@ export const useGridSorting = (apiRef, props) => {
|
|
|
200
197
|
* EVENTS
|
|
201
198
|
*/
|
|
202
199
|
const handleColumnHeaderClick = React.useCallback(({
|
|
203
|
-
field
|
|
200
|
+
field,
|
|
201
|
+
colDef
|
|
204
202
|
}, event) => {
|
|
203
|
+
if (!colDef.sortable || props.disableColumnSorting) {
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
205
206
|
const allowMultipleSorting = event.shiftKey || event.metaKey || event.ctrlKey;
|
|
206
207
|
sortColumn(field, undefined, allowMultipleSorting);
|
|
207
|
-
}, [sortColumn]);
|
|
208
|
+
}, [sortColumn, props.disableColumnSorting]);
|
|
208
209
|
const handleColumnHeaderKeyDown = React.useCallback(({
|
|
209
|
-
field
|
|
210
|
+
field,
|
|
211
|
+
colDef
|
|
210
212
|
}, event) => {
|
|
213
|
+
if (!colDef.sortable || props.disableColumnSorting) {
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
211
216
|
// Ctrl + Enter opens the column menu
|
|
212
217
|
if (isEnterKey(event.key) && !event.ctrlKey && !event.metaKey) {
|
|
213
218
|
sortColumn(field, undefined, event.shiftKey);
|
|
214
219
|
}
|
|
215
|
-
}, [sortColumn]);
|
|
220
|
+
}, [sortColumn, props.disableColumnSorting]);
|
|
216
221
|
const handleColumnsChange = React.useCallback(() => {
|
|
217
222
|
// When the columns change we check that the sorted columns are still part of the dataset
|
|
218
223
|
const sortModel = gridSortModelSelector(apiRef);
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { GridRenderContext } from '../../../models/params/gridScrollParams';
|
|
1
2
|
import { GridStateCommunity } from '../../../models/gridStateCommunity';
|
|
2
3
|
/**
|
|
3
4
|
* Get the columns state
|
|
@@ -14,3 +15,16 @@ export declare const gridVirtualizationEnabledSelector: import("../../../utils/c
|
|
|
14
15
|
* @category Virtualization
|
|
15
16
|
*/
|
|
16
17
|
export declare const gridVirtualizationColumnEnabledSelector: import("../../../utils/createSelector").OutputSelector<GridStateCommunity, boolean>;
|
|
18
|
+
/**
|
|
19
|
+
* Get the render context
|
|
20
|
+
* @category Virtualization
|
|
21
|
+
* @ignore - do not document.
|
|
22
|
+
*/
|
|
23
|
+
export declare const gridRenderContextSelector: import("../../../utils/createSelector").OutputSelector<GridStateCommunity, GridRenderContext>;
|
|
24
|
+
/**
|
|
25
|
+
* Get the render context, with only columns filled in.
|
|
26
|
+
* This is cached, so it can be used to only re-render when the column interval changes.
|
|
27
|
+
* @category Virtualization
|
|
28
|
+
* @ignore - do not document.
|
|
29
|
+
*/
|
|
30
|
+
export declare const gridRenderContextColumnsSelector: import("../../../utils/createSelector").OutputSelector<GridStateCommunity, GridRenderContext>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createSelector } from '../../../utils/createSelector';
|
|
1
|
+
import { createSelector, createSelectorMemoized } from '../../../utils/createSelector';
|
|
2
2
|
/**
|
|
3
3
|
* Get the columns state
|
|
4
4
|
* @category Virtualization
|
|
@@ -15,4 +15,24 @@ export const gridVirtualizationEnabledSelector = createSelector(gridVirtualizati
|
|
|
15
15
|
* Get the enabled state for virtualization
|
|
16
16
|
* @category Virtualization
|
|
17
17
|
*/
|
|
18
|
-
export const gridVirtualizationColumnEnabledSelector = createSelector(gridVirtualizationSelector, state => state.enabledForColumns);
|
|
18
|
+
export const gridVirtualizationColumnEnabledSelector = createSelector(gridVirtualizationSelector, state => state.enabledForColumns);
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Get the render context
|
|
22
|
+
* @category Virtualization
|
|
23
|
+
* @ignore - do not document.
|
|
24
|
+
*/
|
|
25
|
+
export const gridRenderContextSelector = createSelector(gridVirtualizationSelector, state => state.renderContext);
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Get the render context, with only columns filled in.
|
|
29
|
+
* This is cached, so it can be used to only re-render when the column interval changes.
|
|
30
|
+
* @category Virtualization
|
|
31
|
+
* @ignore - do not document.
|
|
32
|
+
*/
|
|
33
|
+
export const gridRenderContextColumnsSelector = createSelectorMemoized(state => state.virtualization.renderContext.firstColumnIndex, state => state.virtualization.renderContext.lastColumnIndex, (firstColumnIndex, lastColumnIndex) => ({
|
|
34
|
+
firstRowIndex: -1,
|
|
35
|
+
lastRowIndex: -1,
|
|
36
|
+
firstColumnIndex,
|
|
37
|
+
lastColumnIndex
|
|
38
|
+
}));
|
|
@@ -1,51 +1,28 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
export declare
|
|
5
|
-
export
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
minFirstIndex: number;
|
|
10
|
-
maxLastIndex: number;
|
|
11
|
-
}) => number[];
|
|
12
|
-
export declare const areRenderContextsEqual: (context1: GridRenderContext, context2: GridRenderContext) => boolean;
|
|
13
|
-
interface UseGridVirtualScrollerProps {
|
|
14
|
-
ref: React.Ref<HTMLDivElement>;
|
|
15
|
-
renderZoneMinColumnIndex?: number;
|
|
16
|
-
renderZoneMaxColumnIndex?: number;
|
|
17
|
-
onRenderZonePositioning?: (params: {
|
|
18
|
-
top: number;
|
|
19
|
-
left: number;
|
|
20
|
-
}) => void;
|
|
21
|
-
getRowProps?: (id: GridRowId, model: GridRowModel) => any;
|
|
22
|
-
}
|
|
23
|
-
export declare const useGridVirtualScroller: (props: UseGridVirtualScrollerProps) => {
|
|
24
|
-
renderContext: GridRenderContext | null;
|
|
25
|
-
updateRenderZonePosition: (nextRenderContext: GridRenderContext) => void;
|
|
2
|
+
import { GridPinnedRowsPosition } from '../rows/gridRowsInterfaces';
|
|
3
|
+
import { GridRenderContext, GridRowEntry, GridRowId } from '../../../models';
|
|
4
|
+
export declare const EMPTY_DETAIL_PANELS: Readonly<Map<GridRowId, React.ReactNode>>;
|
|
5
|
+
export type VirtualScroller = ReturnType<typeof useGridVirtualScroller>;
|
|
6
|
+
export declare const useGridVirtualScroller: () => {
|
|
7
|
+
renderContext: GridRenderContext;
|
|
8
|
+
setPanels: React.Dispatch<React.SetStateAction<Readonly<Map<GridRowId, React.ReactNode>>>>;
|
|
26
9
|
getRows: (params?: {
|
|
27
|
-
renderContext: GridRenderContext | null;
|
|
28
|
-
position?: string | undefined;
|
|
29
|
-
minFirstColumn?: number | undefined;
|
|
30
|
-
maxLastColumn?: number | undefined;
|
|
31
|
-
availableSpace?: number | null | undefined;
|
|
32
10
|
rows?: GridRowEntry<import("../../../models").GridValidRowModel>[] | undefined;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
ref: ((instance: HTMLDivElement | null) => void) | null;
|
|
11
|
+
position?: keyof import("../rows/gridRowsInterfaces").GridPinnedRowsState | undefined;
|
|
12
|
+
}) => React.ReactNode[];
|
|
13
|
+
getContainerProps: () => {
|
|
14
|
+
ref: React.RefObject<HTMLDivElement>;
|
|
15
|
+
};
|
|
16
|
+
getScrollerProps: () => {
|
|
17
|
+
ref: React.RefObject<HTMLDivElement>;
|
|
18
|
+
tabIndex: number;
|
|
42
19
|
onScroll: (event: React.UIEvent) => void;
|
|
43
20
|
onWheel: (event: React.WheelEvent) => void;
|
|
44
21
|
onTouchMove: (event: React.TouchEvent) => void;
|
|
22
|
+
style: React.CSSProperties;
|
|
23
|
+
role: string;
|
|
45
24
|
};
|
|
46
|
-
getContentProps: (
|
|
47
|
-
style?: object | undefined;
|
|
48
|
-
}) => {
|
|
25
|
+
getContentProps: () => {
|
|
49
26
|
style: React.CSSProperties;
|
|
50
27
|
role: string;
|
|
51
28
|
};
|
|
@@ -53,5 +30,13 @@ export declare const useGridVirtualScroller: (props: UseGridVirtualScrollerProps
|
|
|
53
30
|
ref: React.RefObject<HTMLDivElement>;
|
|
54
31
|
role: string;
|
|
55
32
|
};
|
|
33
|
+
getScrollbarVerticalProps: () => {
|
|
34
|
+
ref: React.RefObject<HTMLDivElement>;
|
|
35
|
+
role: string;
|
|
36
|
+
};
|
|
37
|
+
getScrollbarHorizontalProps: () => {
|
|
38
|
+
ref: React.RefObject<HTMLDivElement>;
|
|
39
|
+
role: string;
|
|
40
|
+
};
|
|
56
41
|
};
|
|
57
|
-
export
|
|
42
|
+
export declare function areRenderContextsEqual(context1: GridRenderContext, context2: GridRenderContext): boolean;
|