@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
|
@@ -1,119 +1,68 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
3
|
import * as React from 'react';
|
|
3
|
-
import { unstable_debounce as debounce, unstable_ownerDocument as ownerDocument, unstable_useEnhancedEffect as useEnhancedEffect, unstable_ownerWindow as ownerWindow } from '@mui/utils';
|
|
4
|
+
import { unstable_debounce as debounce, unstable_ownerDocument as ownerDocument, unstable_useEnhancedEffect as useEnhancedEffect, unstable_useEventCallback as useEventCallback, unstable_ownerWindow as ownerWindow } from '@mui/utils';
|
|
4
5
|
import { useGridApiEventHandler, useGridApiOptionHandler } from '../../utils/useGridApiEventHandler';
|
|
5
6
|
import { useGridApiMethod } from '../../utils/useGridApiMethod';
|
|
6
7
|
import { useGridLogger } from '../../utils/useGridLogger';
|
|
7
|
-
import { gridColumnsTotalWidthSelector } from '../columns';
|
|
8
|
+
import { gridColumnsTotalWidthSelector, gridVisiblePinnedColumnDefinitionsSelector } from '../columns';
|
|
9
|
+
import { gridDimensionsSelector } from './gridDimensionsSelectors';
|
|
8
10
|
import { gridDensityFactorSelector } from '../density';
|
|
11
|
+
import { gridRenderContextSelector } from '../virtualization';
|
|
9
12
|
import { useGridSelector } from '../../utils';
|
|
10
13
|
import { getVisibleRows } from '../../utils/useGridVisibleRows';
|
|
11
14
|
import { gridRowsMetaSelector } from '../rows/gridRowsMetaSelector';
|
|
12
15
|
import { calculatePinnedRowsHeight } from '../rows/gridRowsUtils';
|
|
13
16
|
import { getTotalHeaderHeight } from '../columns/gridColumnsUtils';
|
|
14
|
-
var
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
17
|
+
var EMPTY_SIZE = {
|
|
18
|
+
width: 0,
|
|
19
|
+
height: 0
|
|
20
|
+
};
|
|
21
|
+
var EMPTY_DIMENSIONS = {
|
|
22
|
+
isReady: false,
|
|
23
|
+
root: EMPTY_SIZE,
|
|
24
|
+
viewportOuterSize: EMPTY_SIZE,
|
|
25
|
+
viewportInnerSize: EMPTY_SIZE,
|
|
26
|
+
contentSize: EMPTY_SIZE,
|
|
27
|
+
minimumSize: EMPTY_SIZE,
|
|
28
|
+
hasScrollX: false,
|
|
29
|
+
hasScrollY: false,
|
|
30
|
+
scrollbarSize: 0,
|
|
31
|
+
headerHeight: 0,
|
|
32
|
+
rowWidth: 0,
|
|
33
|
+
rowHeight: 0,
|
|
34
|
+
columnsTotalWidth: 0,
|
|
35
|
+
leftPinnedWidth: 0,
|
|
36
|
+
rightPinnedWidth: 0,
|
|
37
|
+
headersTotalHeight: 0,
|
|
38
|
+
topContainerHeight: 0,
|
|
39
|
+
bottomContainerHeight: 0
|
|
40
|
+
};
|
|
41
|
+
export var dimensionsStateInitializer = function dimensionsStateInitializer(state) {
|
|
42
|
+
var dimensions = EMPTY_DIMENSIONS;
|
|
43
|
+
return _extends({}, state, {
|
|
44
|
+
dimensions: dimensions
|
|
45
|
+
});
|
|
36
46
|
};
|
|
37
47
|
export function useGridDimensions(apiRef, props) {
|
|
38
48
|
var logger = useGridLogger(apiRef, 'useResizeContainer');
|
|
39
49
|
var errorShown = React.useRef(false);
|
|
40
|
-
var rootDimensionsRef = React.useRef(
|
|
41
|
-
var fullDimensionsRef = React.useRef(null);
|
|
50
|
+
var rootDimensionsRef = React.useRef(EMPTY_SIZE);
|
|
42
51
|
var rowsMeta = useGridSelector(apiRef, gridRowsMetaSelector);
|
|
52
|
+
var pinnedColumns = useGridSelector(apiRef, gridVisiblePinnedColumnDefinitionsSelector);
|
|
43
53
|
var densityFactor = useGridSelector(apiRef, gridDensityFactorSelector);
|
|
44
54
|
var rowHeight = Math.floor(props.rowHeight * densityFactor);
|
|
45
|
-
var
|
|
46
|
-
var
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
scrollBarSize = props.scrollbarSize;
|
|
57
|
-
} else if (!columnsTotalWidth || !rootElement) {
|
|
58
|
-
scrollBarSize = 0;
|
|
59
|
-
} else {
|
|
60
|
-
var doc = ownerDocument(rootElement);
|
|
61
|
-
var scrollDiv = doc.createElement('div');
|
|
62
|
-
scrollDiv.style.width = '99px';
|
|
63
|
-
scrollDiv.style.height = '99px';
|
|
64
|
-
scrollDiv.style.position = 'absolute';
|
|
65
|
-
scrollDiv.style.overflow = 'scroll';
|
|
66
|
-
scrollDiv.className = 'scrollDiv';
|
|
67
|
-
rootElement.appendChild(scrollDiv);
|
|
68
|
-
scrollBarSize = scrollDiv.offsetWidth - scrollDiv.clientWidth;
|
|
69
|
-
rootElement.removeChild(scrollDiv);
|
|
70
|
-
}
|
|
71
|
-
var viewportOuterSize;
|
|
72
|
-
var hasScrollX;
|
|
73
|
-
var hasScrollY;
|
|
74
|
-
if (props.autoHeight) {
|
|
75
|
-
hasScrollY = false;
|
|
76
|
-
hasScrollX = Math.round(columnsTotalWidth) > Math.round(rootDimensionsRef.current.width);
|
|
77
|
-
viewportOuterSize = {
|
|
78
|
-
width: rootDimensionsRef.current.width,
|
|
79
|
-
height: rowsMeta.currentPageTotalHeight + (hasScrollX ? scrollBarSize : 0)
|
|
80
|
-
};
|
|
81
|
-
} else {
|
|
82
|
-
viewportOuterSize = {
|
|
83
|
-
width: rootDimensionsRef.current.width,
|
|
84
|
-
height: Math.max(rootDimensionsRef.current.height - totalHeaderHeight, 0)
|
|
85
|
-
};
|
|
86
|
-
var scrollInformation = hasScroll({
|
|
87
|
-
content: {
|
|
88
|
-
width: Math.round(columnsTotalWidth),
|
|
89
|
-
height: rowsMeta.currentPageTotalHeight
|
|
90
|
-
},
|
|
91
|
-
container: {
|
|
92
|
-
width: Math.round(viewportOuterSize.width),
|
|
93
|
-
height: viewportOuterSize.height - pinnedRowsHeight.top - pinnedRowsHeight.bottom
|
|
94
|
-
},
|
|
95
|
-
scrollBarSize: scrollBarSize
|
|
96
|
-
});
|
|
97
|
-
hasScrollY = scrollInformation.hasScrollY;
|
|
98
|
-
hasScrollX = scrollInformation.hasScrollX;
|
|
99
|
-
}
|
|
100
|
-
var viewportInnerSize = {
|
|
101
|
-
width: viewportOuterSize.width - (hasScrollY ? scrollBarSize : 0),
|
|
102
|
-
height: viewportOuterSize.height - (hasScrollX ? scrollBarSize : 0)
|
|
103
|
-
};
|
|
104
|
-
var newFullDimensions = {
|
|
105
|
-
viewportOuterSize: viewportOuterSize,
|
|
106
|
-
viewportInnerSize: viewportInnerSize,
|
|
107
|
-
hasScrollX: hasScrollX,
|
|
108
|
-
hasScrollY: hasScrollY,
|
|
109
|
-
scrollBarSize: scrollBarSize
|
|
110
|
-
};
|
|
111
|
-
var prevDimensions = fullDimensionsRef.current;
|
|
112
|
-
fullDimensionsRef.current = newFullDimensions;
|
|
113
|
-
if (newFullDimensions.viewportInnerSize.width !== (prevDimensions == null ? void 0 : prevDimensions.viewportInnerSize.width) || newFullDimensions.viewportInnerSize.height !== (prevDimensions == null ? void 0 : prevDimensions.viewportInnerSize.height)) {
|
|
114
|
-
apiRef.current.publishEvent('viewportInnerSizeChange', newFullDimensions.viewportInnerSize);
|
|
115
|
-
}
|
|
116
|
-
}, [apiRef, props.scrollbarSize, props.autoHeight, rowsMeta.currentPageTotalHeight, totalHeaderHeight]);
|
|
55
|
+
var headerHeight = Math.floor(props.columnHeaderHeight * densityFactor);
|
|
56
|
+
var columnsTotalWidth = roundToDecimalPlaces(gridColumnsTotalWidthSelector(apiRef), 6);
|
|
57
|
+
// XXX: The `props as any` below is not resilient to change.
|
|
58
|
+
var hasHeaderFilters = Boolean(props.headerFilters);
|
|
59
|
+
var headersTotalHeight = getTotalHeaderHeight(apiRef, props.columnHeaderHeight) + Number(hasHeaderFilters) * headerHeight;
|
|
60
|
+
var leftPinnedWidth = pinnedColumns.left.reduce(function (w, col) {
|
|
61
|
+
return w + col.computedWidth;
|
|
62
|
+
}, 0);
|
|
63
|
+
var rightPinnedWidth = pinnedColumns.right.reduce(function (w, col) {
|
|
64
|
+
return w + col.computedWidth;
|
|
65
|
+
}, 0);
|
|
117
66
|
var _React$useState = React.useState(),
|
|
118
67
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
119
68
|
savedSize = _React$useState2[0],
|
|
@@ -122,23 +71,39 @@ export function useGridDimensions(apiRef, props) {
|
|
|
122
71
|
return debounce(setSavedSize, 60);
|
|
123
72
|
}, []);
|
|
124
73
|
var previousSize = React.useRef();
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
74
|
+
var getRootDimensions = function getRootDimensions() {
|
|
75
|
+
return apiRef.current.state.dimensions;
|
|
76
|
+
};
|
|
77
|
+
var setDimensions = useEventCallback(function (dimensions) {
|
|
78
|
+
apiRef.current.setState(function (state) {
|
|
79
|
+
return _extends({}, state, {
|
|
80
|
+
dimensions: dimensions
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
});
|
|
133
84
|
var resize = React.useCallback(function () {
|
|
134
|
-
|
|
85
|
+
var _previousSize$current, _previousSize$current2;
|
|
86
|
+
var element = apiRef.current.mainElementRef.current;
|
|
87
|
+
if (!element) {
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
var computedStyle = ownerWindow(element).getComputedStyle(element);
|
|
91
|
+
var height = parseFloat(computedStyle.height) || 0;
|
|
92
|
+
var width = parseFloat(computedStyle.width) || 0;
|
|
93
|
+
var hasHeightChanged = height !== ((_previousSize$current = previousSize.current) == null ? void 0 : _previousSize$current.height);
|
|
94
|
+
var hasWidthChanged = width !== ((_previousSize$current2 = previousSize.current) == null ? void 0 : _previousSize$current2.width);
|
|
95
|
+
if (!previousSize.current || hasHeightChanged || hasWidthChanged) {
|
|
96
|
+
var size = {
|
|
97
|
+
width: width,
|
|
98
|
+
height: height
|
|
99
|
+
};
|
|
100
|
+
apiRef.current.publishEvent('resize', size);
|
|
101
|
+
previousSize.current = size;
|
|
102
|
+
}
|
|
135
103
|
}, [apiRef]);
|
|
136
|
-
var getRootDimensions = React.useCallback(function () {
|
|
137
|
-
return fullDimensionsRef.current;
|
|
138
|
-
}, []);
|
|
139
104
|
var getViewportPageSize = React.useCallback(function () {
|
|
140
|
-
var dimensions = apiRef.current.
|
|
141
|
-
if (!dimensions) {
|
|
105
|
+
var dimensions = gridDimensionsSelector(apiRef.current.state);
|
|
106
|
+
if (!dimensions.isReady) {
|
|
142
107
|
return 0;
|
|
143
108
|
}
|
|
144
109
|
var currentPage = getVisibleRows(apiRef, {
|
|
@@ -149,45 +114,138 @@ export function useGridDimensions(apiRef, props) {
|
|
|
149
114
|
// TODO: Use a combination of scrollTop, dimensions.viewportInnerSize.height and rowsMeta.possitions
|
|
150
115
|
// to find out the maximum number of rows that can fit in the visible part of the grid
|
|
151
116
|
if (props.getRowHeight) {
|
|
152
|
-
var renderContext = apiRef
|
|
117
|
+
var renderContext = gridRenderContextSelector(apiRef);
|
|
153
118
|
var viewportPageSize = renderContext.lastRowIndex - renderContext.firstRowIndex;
|
|
154
119
|
return Math.min(viewportPageSize - 1, currentPage.rows.length);
|
|
155
120
|
}
|
|
156
121
|
var maximumPageSizeWithoutScrollBar = Math.floor(dimensions.viewportInnerSize.height / rowHeight);
|
|
157
122
|
return Math.min(maximumPageSizeWithoutScrollBar, currentPage.rows.length);
|
|
158
123
|
}, [apiRef, props.pagination, props.paginationMode, props.getRowHeight, rowHeight]);
|
|
159
|
-
var
|
|
160
|
-
var _apiRef$current$
|
|
161
|
-
var
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
var
|
|
166
|
-
var
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
var
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
124
|
+
var updateDimensions = React.useCallback(function () {
|
|
125
|
+
var _apiRef$current$updat, _apiRef$current;
|
|
126
|
+
var rootElement = apiRef.current.rootElementRef.current;
|
|
127
|
+
var pinnedRowsHeight = calculatePinnedRowsHeight(apiRef);
|
|
128
|
+
var scrollbarSize = measureScrollbarSize(rootElement, columnsTotalWidth, props.scrollbarSize);
|
|
129
|
+
var topContainerHeight = headersTotalHeight + pinnedRowsHeight.top;
|
|
130
|
+
var bottomContainerHeight = pinnedRowsHeight.bottom;
|
|
131
|
+
var contentSize = {
|
|
132
|
+
width: columnsTotalWidth,
|
|
133
|
+
height: rowsMeta.currentPageTotalHeight
|
|
134
|
+
};
|
|
135
|
+
var viewportOuterSize;
|
|
136
|
+
var viewportInnerSize;
|
|
137
|
+
var hasScrollX = false;
|
|
138
|
+
var hasScrollY = false;
|
|
139
|
+
if (props.autoHeight) {
|
|
140
|
+
hasScrollY = false;
|
|
141
|
+
hasScrollX = Math.round(columnsTotalWidth) > Math.round(rootDimensionsRef.current.width);
|
|
142
|
+
viewportOuterSize = {
|
|
143
|
+
width: rootDimensionsRef.current.width,
|
|
144
|
+
height: topContainerHeight + bottomContainerHeight + contentSize.height
|
|
175
145
|
};
|
|
176
|
-
|
|
177
|
-
|
|
146
|
+
viewportInnerSize = {
|
|
147
|
+
width: Math.max(0, viewportOuterSize.width - (hasScrollY ? scrollbarSize : 0)),
|
|
148
|
+
height: Math.max(0, viewportOuterSize.height - (hasScrollX ? scrollbarSize : 0))
|
|
149
|
+
};
|
|
150
|
+
} else {
|
|
151
|
+
viewportOuterSize = {
|
|
152
|
+
width: rootDimensionsRef.current.width,
|
|
153
|
+
height: rootDimensionsRef.current.height
|
|
154
|
+
};
|
|
155
|
+
viewportInnerSize = {
|
|
156
|
+
width: Math.max(0, viewportOuterSize.width - leftPinnedWidth - rightPinnedWidth),
|
|
157
|
+
height: Math.max(0, viewportOuterSize.height - topContainerHeight - bottomContainerHeight)
|
|
158
|
+
};
|
|
159
|
+
var content = contentSize;
|
|
160
|
+
var container = viewportInnerSize;
|
|
161
|
+
var hasScrollXIfNoYScrollBar = content.width > container.width;
|
|
162
|
+
var hasScrollYIfNoXScrollBar = content.height > container.height;
|
|
163
|
+
if (hasScrollXIfNoYScrollBar || hasScrollYIfNoXScrollBar) {
|
|
164
|
+
hasScrollY = hasScrollYIfNoXScrollBar;
|
|
165
|
+
hasScrollX = content.width + (hasScrollY ? scrollbarSize : 0) > container.width;
|
|
166
|
+
|
|
167
|
+
// We recalculate the scroll y to consider the size of the x scrollbar.
|
|
168
|
+
if (hasScrollX) {
|
|
169
|
+
hasScrollY = content.height + scrollbarSize > container.height;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
if (hasScrollY) {
|
|
173
|
+
viewportInnerSize.width -= scrollbarSize;
|
|
174
|
+
}
|
|
175
|
+
if (hasScrollX) {
|
|
176
|
+
viewportInnerSize.height -= scrollbarSize;
|
|
177
|
+
}
|
|
178
178
|
}
|
|
179
|
-
|
|
180
|
-
|
|
179
|
+
var rowWidth = Math.max(viewportOuterSize.width, columnsTotalWidth + (hasScrollY ? scrollbarSize : 0));
|
|
180
|
+
var minimumSize = {
|
|
181
|
+
width: contentSize.width,
|
|
182
|
+
height: topContainerHeight + contentSize.height + bottomContainerHeight
|
|
183
|
+
};
|
|
184
|
+
var newDimensions = {
|
|
185
|
+
isReady: true,
|
|
186
|
+
root: rootDimensionsRef.current,
|
|
187
|
+
viewportOuterSize: viewportOuterSize,
|
|
188
|
+
viewportInnerSize: viewportInnerSize,
|
|
189
|
+
contentSize: contentSize,
|
|
190
|
+
minimumSize: minimumSize,
|
|
191
|
+
hasScrollX: hasScrollX,
|
|
192
|
+
hasScrollY: hasScrollY,
|
|
193
|
+
scrollbarSize: scrollbarSize,
|
|
194
|
+
headerHeight: headerHeight,
|
|
195
|
+
rowWidth: rowWidth,
|
|
196
|
+
rowHeight: rowHeight,
|
|
197
|
+
columnsTotalWidth: columnsTotalWidth,
|
|
198
|
+
leftPinnedWidth: leftPinnedWidth,
|
|
199
|
+
rightPinnedWidth: rightPinnedWidth,
|
|
200
|
+
headersTotalHeight: headersTotalHeight,
|
|
201
|
+
topContainerHeight: topContainerHeight,
|
|
202
|
+
bottomContainerHeight: bottomContainerHeight
|
|
203
|
+
};
|
|
204
|
+
var prevDimensions = apiRef.current.state.dimensions;
|
|
205
|
+
setDimensions(newDimensions);
|
|
206
|
+
if (newDimensions.viewportInnerSize.width !== prevDimensions.viewportInnerSize.width || newDimensions.viewportInnerSize.height !== prevDimensions.viewportInnerSize.height) {
|
|
207
|
+
apiRef.current.publishEvent('viewportInnerSizeChange', newDimensions.viewportInnerSize);
|
|
208
|
+
}
|
|
209
|
+
(_apiRef$current$updat = (_apiRef$current = apiRef.current).updateRenderContext) == null || _apiRef$current$updat.call(_apiRef$current);
|
|
210
|
+
}, [apiRef, setDimensions, props.scrollbarSize, props.autoHeight, rowsMeta.currentPageTotalHeight, rowHeight, headerHeight, columnsTotalWidth, headersTotalHeight, leftPinnedWidth, rightPinnedWidth]);
|
|
211
|
+
var apiPublic = {
|
|
181
212
|
resize: resize,
|
|
182
213
|
getRootDimensions: getRootDimensions
|
|
183
214
|
};
|
|
184
|
-
var
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
computeSizeAndPublishResizeEvent: computeSizeAndPublishResizeEvent
|
|
215
|
+
var apiPrivate = {
|
|
216
|
+
updateDimensions: updateDimensions,
|
|
217
|
+
getViewportPageSize: getViewportPageSize
|
|
188
218
|
};
|
|
189
|
-
useGridApiMethod(apiRef,
|
|
190
|
-
useGridApiMethod(apiRef,
|
|
219
|
+
useGridApiMethod(apiRef, apiPublic, 'public');
|
|
220
|
+
useGridApiMethod(apiRef, apiPrivate, 'private');
|
|
221
|
+
useEnhancedEffect(function () {
|
|
222
|
+
if (savedSize) {
|
|
223
|
+
updateDimensions();
|
|
224
|
+
apiRef.current.publishEvent('debouncedResize', rootDimensionsRef.current);
|
|
225
|
+
}
|
|
226
|
+
}, [apiRef, savedSize, updateDimensions]);
|
|
227
|
+
var root = apiRef.current.rootElementRef.current;
|
|
228
|
+
var dimensions = apiRef.current.state.dimensions;
|
|
229
|
+
useEnhancedEffect(function () {
|
|
230
|
+
if (!root) {
|
|
231
|
+
return;
|
|
232
|
+
}
|
|
233
|
+
var set = function set(k, v) {
|
|
234
|
+
return root.style.setProperty(k, v);
|
|
235
|
+
};
|
|
236
|
+
set('--DataGrid-width', "".concat(dimensions.viewportOuterSize.width, "px"));
|
|
237
|
+
set('--DataGrid-hasScrollX', "".concat(Number(dimensions.hasScrollX)));
|
|
238
|
+
set('--DataGrid-hasScrollY', "".concat(Number(dimensions.hasScrollY)));
|
|
239
|
+
set('--DataGrid-scrollbarSize', "".concat(dimensions.scrollbarSize, "px"));
|
|
240
|
+
set('--DataGrid-rowWidth', "".concat(dimensions.rowWidth, "px"));
|
|
241
|
+
set('--DataGrid-columnsTotalWidth', "".concat(dimensions.columnsTotalWidth, "px"));
|
|
242
|
+
set('--DataGrid-leftPinnedWidth', "".concat(dimensions.leftPinnedWidth, "px"));
|
|
243
|
+
set('--DataGrid-rightPinnedWidth', "".concat(dimensions.rightPinnedWidth, "px"));
|
|
244
|
+
set('--DataGrid-headerHeight', "".concat(dimensions.headerHeight, "px"));
|
|
245
|
+
set('--DataGrid-headersTotalHeight', "".concat(dimensions.headersTotalHeight, "px"));
|
|
246
|
+
set('--DataGrid-topContainerHeight', "".concat(dimensions.topContainerHeight, "px"));
|
|
247
|
+
set('--DataGrid-bottomContainerHeight', "".concat(dimensions.bottomContainerHeight, "px"));
|
|
248
|
+
}, [root, dimensions]);
|
|
191
249
|
var isFirstSizing = React.useRef(true);
|
|
192
250
|
var handleResize = React.useCallback(function (size) {
|
|
193
251
|
rootDimensionsRef.current = size;
|
|
@@ -202,12 +260,6 @@ export function useGridDimensions(apiRef, props) {
|
|
|
202
260
|
logger.error(['The parent DOM element of the data grid has an empty width.', 'Please make sure that this element has an intrinsic width.', 'The grid displays with a width of 0px.', '', 'More details: https://mui.com/r/x-data-grid-no-dimensions.'].join('\n'));
|
|
203
261
|
errorShown.current = true;
|
|
204
262
|
}
|
|
205
|
-
if (isTestEnvironment) {
|
|
206
|
-
// We don't need to debounce the resize for tests.
|
|
207
|
-
setSavedSize(size);
|
|
208
|
-
isFirstSizing.current = false;
|
|
209
|
-
return;
|
|
210
|
-
}
|
|
211
263
|
if (isFirstSizing.current) {
|
|
212
264
|
// We want to initialize the grid dimensions as soon as possible to avoid flickering
|
|
213
265
|
setSavedSize(size);
|
|
@@ -216,12 +268,35 @@ export function useGridDimensions(apiRef, props) {
|
|
|
216
268
|
}
|
|
217
269
|
debouncedSetSavedSize(size);
|
|
218
270
|
}, [props.autoHeight, debouncedSetSavedSize, logger]);
|
|
219
|
-
useEnhancedEffect(
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
useGridApiOptionHandler(apiRef, '
|
|
223
|
-
useGridApiOptionHandler(apiRef, 'paginationModelChange', updateGridDimensionsRef);
|
|
224
|
-
useGridApiOptionHandler(apiRef, 'columnsChange', updateGridDimensionsRef);
|
|
271
|
+
useEnhancedEffect(updateDimensions, [updateDimensions]);
|
|
272
|
+
useGridApiOptionHandler(apiRef, 'sortedRowsSet', updateDimensions);
|
|
273
|
+
useGridApiOptionHandler(apiRef, 'paginationModelChange', updateDimensions);
|
|
274
|
+
useGridApiOptionHandler(apiRef, 'columnsChange', updateDimensions);
|
|
225
275
|
useGridApiEventHandler(apiRef, 'resize', handleResize);
|
|
226
276
|
useGridApiOptionHandler(apiRef, 'debouncedResize', props.onResize);
|
|
277
|
+
}
|
|
278
|
+
function measureScrollbarSize(rootElement, columnsTotalWidth, scrollbarSize) {
|
|
279
|
+
if (scrollbarSize !== undefined) {
|
|
280
|
+
return scrollbarSize;
|
|
281
|
+
}
|
|
282
|
+
if (rootElement === null || columnsTotalWidth === 0) {
|
|
283
|
+
return 0;
|
|
284
|
+
}
|
|
285
|
+
var doc = ownerDocument(rootElement);
|
|
286
|
+
var scrollDiv = doc.createElement('div');
|
|
287
|
+
scrollDiv.style.width = '99px';
|
|
288
|
+
scrollDiv.style.height = '99px';
|
|
289
|
+
scrollDiv.style.position = 'absolute';
|
|
290
|
+
scrollDiv.style.overflow = 'scroll';
|
|
291
|
+
scrollDiv.className = 'scrollDiv';
|
|
292
|
+
rootElement.appendChild(scrollDiv);
|
|
293
|
+
var size = scrollDiv.offsetWidth - scrollDiv.clientWidth;
|
|
294
|
+
rootElement.removeChild(scrollDiv);
|
|
295
|
+
return size;
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
// Get rid of floating point imprecision errors
|
|
299
|
+
// https://github.com/mui/mui-x/issues/9550#issuecomment-1619020477
|
|
300
|
+
function roundToDecimalPlaces(value, decimals) {
|
|
301
|
+
return Math.round(value * Math.pow(10, decimals)) / Math.pow(10, decimals);
|
|
227
302
|
}
|
|
@@ -18,7 +18,7 @@ import { buildWarning } from '../../../utils/warning';
|
|
|
18
18
|
import { gridRowsDataRowIdToIdLookupSelector } from '../rows/gridRowsSelector';
|
|
19
19
|
import { deepClone } from '../../../utils/utils';
|
|
20
20
|
import { GridCellEditStartReasons, GridCellEditStopReasons } from '../../../models/params/gridEditCellParams';
|
|
21
|
-
var missingOnProcessRowUpdateErrorWarning = buildWarning(['MUI: A call to `processRowUpdate` threw an error which was not handled because `onProcessRowUpdateError` is missing.', 'To handle the error pass a callback to the `onProcessRowUpdateError` prop, e.g. `<DataGrid onProcessRowUpdateError={(error) => ...} />`.', 'For more detail, see
|
|
21
|
+
var missingOnProcessRowUpdateErrorWarning = buildWarning(['MUI X: A call to `processRowUpdate` threw an error which was not handled because `onProcessRowUpdateError` is missing.', 'To handle the error pass a callback to the `onProcessRowUpdateError` prop, e.g. `<DataGrid onProcessRowUpdateError={(error) => ...} />`.', 'For more detail, see https://mui.com/x/react-data-grid/editing/#server-side-persistence.'], 'error');
|
|
22
22
|
export var useGridCellEditing = function useGridCellEditing(apiRef, props) {
|
|
23
23
|
var _React$useState = React.useState({}),
|
|
24
24
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
@@ -40,12 +40,12 @@ export var useGridCellEditing = function useGridCellEditing(apiRef, props) {
|
|
|
40
40
|
var throwIfNotEditable = React.useCallback(function (id, field) {
|
|
41
41
|
var params = apiRef.current.getCellParams(id, field);
|
|
42
42
|
if (!apiRef.current.isCellEditable(params)) {
|
|
43
|
-
throw new Error("MUI: The cell with id=".concat(id, " and field=").concat(field, " is not editable."));
|
|
43
|
+
throw new Error("MUI X: The cell with id=".concat(id, " and field=").concat(field, " is not editable."));
|
|
44
44
|
}
|
|
45
45
|
}, [apiRef]);
|
|
46
46
|
var throwIfNotInMode = React.useCallback(function (id, field, mode) {
|
|
47
47
|
if (apiRef.current.getCellMode(id, field) !== mode) {
|
|
48
|
-
throw new Error("MUI: The cell with id=".concat(id, " and field=").concat(field, " is not in ").concat(mode, " mode."));
|
|
48
|
+
throw new Error("MUI X: The cell with id=".concat(id, " and field=").concat(field, " is not in ").concat(mode, " mode."));
|
|
49
49
|
}
|
|
50
50
|
}, [apiRef]);
|
|
51
51
|
var handleCellDoubleClick = React.useCallback(function (params, event) {
|
|
@@ -299,7 +299,7 @@ export var useGridCellEditing = function useGridCellEditing(apiRef, props) {
|
|
|
299
299
|
});
|
|
300
300
|
if (onProcessRowUpdateError) {
|
|
301
301
|
onProcessRowUpdateError(errorThrown);
|
|
302
|
-
} else {
|
|
302
|
+
} else if (process.env.NODE_ENV !== 'production') {
|
|
303
303
|
missingOnProcessRowUpdateErrorWarning();
|
|
304
304
|
}
|
|
305
305
|
};
|
|
@@ -18,7 +18,7 @@ import { gridRowsDataRowIdToIdLookupSelector } from '../rows/gridRowsSelector';
|
|
|
18
18
|
import { deepClone } from '../../../utils/utils';
|
|
19
19
|
import { GridRowEditStopReasons, GridRowEditStartReasons } from '../../../models/params/gridRowParams';
|
|
20
20
|
import { GRID_ACTIONS_COLUMN_TYPE } from '../../../colDef';
|
|
21
|
-
var missingOnProcessRowUpdateErrorWarning = buildWarning(['MUI: A call to `processRowUpdate` threw an error which was not handled because `onProcessRowUpdateError` is missing.', 'To handle the error pass a callback to the `onProcessRowUpdateError` prop, e.g. `<DataGrid onProcessRowUpdateError={(error) => ...} />`.', 'For more detail, see
|
|
21
|
+
var missingOnProcessRowUpdateErrorWarning = buildWarning(['MUI X: A call to `processRowUpdate` threw an error which was not handled because `onProcessRowUpdateError` is missing.', 'To handle the error pass a callback to the `onProcessRowUpdateError` prop, e.g. `<DataGrid onProcessRowUpdateError={(error) => ...} />`.', 'For more detail, see https://mui.com/x/react-data-grid/editing/#server-side-persistence.'], 'error');
|
|
22
22
|
export var useGridRowEditing = function useGridRowEditing(apiRef, props) {
|
|
23
23
|
var _React$useState = React.useState({}),
|
|
24
24
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
@@ -42,12 +42,12 @@ export var useGridRowEditing = function useGridRowEditing(apiRef, props) {
|
|
|
42
42
|
var throwIfNotEditable = React.useCallback(function (id, field) {
|
|
43
43
|
var params = apiRef.current.getCellParams(id, field);
|
|
44
44
|
if (!apiRef.current.isCellEditable(params)) {
|
|
45
|
-
throw new Error("MUI: The cell with id=".concat(id, " and field=").concat(field, " is not editable."));
|
|
45
|
+
throw new Error("MUI X: The cell with id=".concat(id, " and field=").concat(field, " is not editable."));
|
|
46
46
|
}
|
|
47
47
|
}, [apiRef]);
|
|
48
48
|
var throwIfNotInMode = React.useCallback(function (id, mode) {
|
|
49
49
|
if (apiRef.current.getRowMode(id) !== mode) {
|
|
50
|
-
throw new Error("MUI: The row with id=".concat(id, " is not in ").concat(mode, " mode."));
|
|
50
|
+
throw new Error("MUI X: The row with id=".concat(id, " is not in ").concat(mode, " mode."));
|
|
51
51
|
}
|
|
52
52
|
}, [apiRef]);
|
|
53
53
|
var handleCellDoubleClick = React.useCallback(function (params, event) {
|
|
@@ -378,7 +378,7 @@ export var useGridRowEditing = function useGridRowEditing(apiRef, props) {
|
|
|
378
378
|
});
|
|
379
379
|
if (onProcessRowUpdateError) {
|
|
380
380
|
onProcessRowUpdateError(errorThrown);
|
|
381
|
-
} else {
|
|
381
|
+
} else if (process.env.NODE_ENV !== 'production') {
|
|
382
382
|
missingOnProcessRowUpdateErrorWarning();
|
|
383
383
|
}
|
|
384
384
|
};
|
|
@@ -36,7 +36,7 @@ export var serializeCellValue = function serializeCellValue(cellParams, options)
|
|
|
36
36
|
}
|
|
37
37
|
return sanitizeCellValue(value, delimiterCharacter);
|
|
38
38
|
};
|
|
39
|
-
var objectFormattedValueWarning = buildWarning(['MUI: When the value of a field is an object or a `renderCell` is provided, the CSV export might not display the value correctly.', 'You can provide a `valueFormatter` with a string representation to be used.']);
|
|
39
|
+
var objectFormattedValueWarning = buildWarning(['MUI X: When the value of a field is an object or a `renderCell` is provided, the CSV export might not display the value correctly.', 'You can provide a `valueFormatter` with a string representation to be used.']);
|
|
40
40
|
var CSVRow = /*#__PURE__*/function () {
|
|
41
41
|
function CSVRow(options) {
|
|
42
42
|
_classCallCheck(this, CSVRow);
|
|
@@ -116,10 +116,10 @@ export function buildCSV(options) {
|
|
|
116
116
|
});
|
|
117
117
|
var headerRows = [];
|
|
118
118
|
if (includeColumnGroupsHeaders) {
|
|
119
|
-
var columnGroupLookup = apiRef.current.
|
|
119
|
+
var columnGroupLookup = apiRef.current.getAllGroupDetails();
|
|
120
120
|
var maxColumnGroupsDepth = 0;
|
|
121
121
|
var columnGroupPathsLookup = filteredColumns.reduce(function (acc, column) {
|
|
122
|
-
var columnGroupPath = apiRef.current.
|
|
122
|
+
var columnGroupPath = apiRef.current.getColumnGroupPath(column.field);
|
|
123
123
|
acc[column.field] = columnGroupPath;
|
|
124
124
|
maxColumnGroupsDepth = Math.max(maxColumnGroupsDepth, columnGroupPath.length);
|
|
125
125
|
return acc;
|
|
@@ -234,7 +234,7 @@ export var useGridPrintExport = function useGridPrintExport(apiRef, props) {
|
|
|
234
234
|
_context.next = 3;
|
|
235
235
|
break;
|
|
236
236
|
}
|
|
237
|
-
throw new Error('MUI: No grid root element available.');
|
|
237
|
+
throw new Error('MUI X: No grid root element available.');
|
|
238
238
|
case 3:
|
|
239
239
|
previousGridState.current = apiRef.current.exportState();
|
|
240
240
|
// It appends that the visibility model is not exported, especially if columnVisibility is not controlled
|
|
@@ -36,9 +36,9 @@ export var cleanFilterItem = function cleanFilterItem(item, apiRef) {
|
|
|
36
36
|
}
|
|
37
37
|
return cleanItem;
|
|
38
38
|
};
|
|
39
|
-
var filterModelDisableMultiColumnsFilteringWarning = buildWarning(['MUI: The `filterModel` can only contain a single item when the `disableMultipleColumnsFiltering` prop is set to `true`.', 'If you are using the community version of the `DataGrid`, this prop is always `true`.'], 'error');
|
|
40
|
-
var filterModelMissingItemIdWarning = buildWarning('MUI: The `id` field is required on `filterModel.items` when you use multiple filters.', 'error');
|
|
41
|
-
var filterModelMissingItemOperatorWarning = buildWarning('MUI: The `operator` field is required on `filterModel.items`, one or more of your filtering item has no `operator` provided.', 'error');
|
|
39
|
+
var filterModelDisableMultiColumnsFilteringWarning = buildWarning(['MUI X: The `filterModel` can only contain a single item when the `disableMultipleColumnsFiltering` prop is set to `true`.', 'If you are using the community version of the `DataGrid`, this prop is always `true`.'], 'error');
|
|
40
|
+
var filterModelMissingItemIdWarning = buildWarning('MUI X: The `id` field is required on `filterModel.items` when you use multiple filters.', 'error');
|
|
41
|
+
var filterModelMissingItemOperatorWarning = buildWarning('MUI X: The `operator` field is required on `filterModel.items`, one or more of your filtering item has no `operator` provided.', 'error');
|
|
42
42
|
export var sanitizeFilterModel = function sanitizeFilterModel(model, disableMultipleColumnsFiltering, apiRef) {
|
|
43
43
|
var hasSeveralItems = model.items.length > 1;
|
|
44
44
|
var items;
|
|
@@ -114,13 +114,13 @@ var getFilterCallbackFromItem = function getFilterCallbackFromItem(filterItem, a
|
|
|
114
114
|
});
|
|
115
115
|
var filterOperators = column.filterOperators;
|
|
116
116
|
if (!(filterOperators != null && filterOperators.length)) {
|
|
117
|
-
throw new Error("MUI: No filter operators found for column '".concat(column.field, "'."));
|
|
117
|
+
throw new Error("MUI X: No filter operators found for column '".concat(column.field, "'."));
|
|
118
118
|
}
|
|
119
119
|
var filterOperator = filterOperators.find(function (operator) {
|
|
120
120
|
return operator.value === newFilterItem.operator;
|
|
121
121
|
});
|
|
122
122
|
if (!filterOperator) {
|
|
123
|
-
throw new Error("MUI: No filter operator found for column '".concat(column.field, "' and operator value '").concat(newFilterItem.operator, "'."));
|
|
123
|
+
throw new Error("MUI X: No filter operator found for column '".concat(column.field, "' and operator value '").concat(newFilterItem.operator, "'."));
|
|
124
124
|
}
|
|
125
125
|
var publicApiRef = getPublicApiRef(apiRef);
|
|
126
126
|
var applyFilterOnRow = filterOperator.getApplyFilterFn(newFilterItem, column);
|
|
@@ -7,7 +7,7 @@ import { useLazyRef } from '../../utils/useLazyRef';
|
|
|
7
7
|
import { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';
|
|
8
8
|
import { useGridApiMethod } from '../../utils/useGridApiMethod';
|
|
9
9
|
import { useGridLogger } from '../../utils/useGridLogger';
|
|
10
|
-
import {
|
|
10
|
+
import { gridColumnLookupSelector } from '../columns/gridColumnsSelector';
|
|
11
11
|
import { GridPreferencePanelsValue } from '../preferencesPanel/gridPreferencePanelsValue';
|
|
12
12
|
import { getDefaultGridFilterModel } from './gridFilterState';
|
|
13
13
|
import { gridFilterModelSelector } from './gridFilterSelector';
|
|
@@ -322,9 +322,9 @@ export var useGridFilter = function useGridFilter(apiRef, props) {
|
|
|
322
322
|
var handleColumnsChange = React.useCallback(function () {
|
|
323
323
|
logger.debug('onColUpdated - GridColumns changed, applying filters');
|
|
324
324
|
var filterModel = gridFilterModelSelector(apiRef);
|
|
325
|
-
var
|
|
325
|
+
var columnsLookup = gridColumnLookupSelector(apiRef);
|
|
326
326
|
var newFilterItems = filterModel.items.filter(function (item) {
|
|
327
|
-
return item.field &&
|
|
327
|
+
return item.field && columnsLookup[item.field];
|
|
328
328
|
});
|
|
329
329
|
if (newFilterItems.length < filterModel.items.length) {
|
|
330
330
|
apiRef.current.setFilterModel(_extends({}, filterModel, {
|
|
@@ -11,9 +11,7 @@ export var gridFocusColumnHeaderSelector = createSelector(gridFocusStateSelector
|
|
|
11
11
|
export var gridFocusColumnHeaderFilterSelector = createSelector(gridFocusStateSelector, function (focusState) {
|
|
12
12
|
return focusState.columnHeaderFilter;
|
|
13
13
|
});
|
|
14
|
-
|
|
15
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
16
|
-
export var unstable_gridFocusColumnGroupHeaderSelector = createSelector(gridFocusStateSelector, function (focusState) {
|
|
14
|
+
export var gridFocusColumnGroupHeaderSelector = createSelector(gridFocusStateSelector, function (focusState) {
|
|
17
15
|
return focusState.columnGroupHeader;
|
|
18
16
|
});
|
|
19
17
|
export var gridTabIndexStateSelector = function gridTabIndexStateSelector(state) {
|
|
@@ -28,8 +26,6 @@ export var gridTabIndexColumnHeaderSelector = createSelector(gridTabIndexStateSe
|
|
|
28
26
|
export var gridTabIndexColumnHeaderFilterSelector = createSelector(gridTabIndexStateSelector, function (state) {
|
|
29
27
|
return state.columnHeaderFilter;
|
|
30
28
|
});
|
|
31
|
-
|
|
32
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
33
|
-
export var unstable_gridTabIndexColumnGroupHeaderSelector = createSelector(gridTabIndexStateSelector, function (state) {
|
|
29
|
+
export var gridTabIndexColumnGroupHeaderSelector = createSelector(gridTabIndexStateSelector, function (state) {
|
|
34
30
|
return state.columnGroupHeader;
|
|
35
31
|
});
|
|
@@ -6,7 +6,7 @@ import { useGridApiMethod } from '../../utils/useGridApiMethod';
|
|
|
6
6
|
import { useGridLogger } from '../../utils/useGridLogger';
|
|
7
7
|
import { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';
|
|
8
8
|
import { isNavigationKey } from '../../../utils/keyboardUtils';
|
|
9
|
-
import { gridFocusCellSelector,
|
|
9
|
+
import { gridFocusCellSelector, gridFocusColumnGroupHeaderSelector } from './gridFocusStateSelector';
|
|
10
10
|
import { gridVisibleColumnDefinitionsSelector } from '../columns/gridColumnsSelector';
|
|
11
11
|
import { getVisibleRows } from '../../utils/useGridVisibleRows';
|
|
12
12
|
import { clamp } from '../../../utils/utils';
|
|
@@ -170,7 +170,7 @@ export var useGridFocus = function useGridFocus(apiRef, props) {
|
|
|
170
170
|
apiRef.current.forceUpdate();
|
|
171
171
|
}, [apiRef]);
|
|
172
172
|
var getColumnGroupHeaderFocus = React.useCallback(function () {
|
|
173
|
-
return
|
|
173
|
+
return gridFocusColumnGroupHeaderSelector(apiRef);
|
|
174
174
|
}, [apiRef]);
|
|
175
175
|
var moveFocusToRelativeCell = React.useCallback(function (id, field, direction) {
|
|
176
176
|
var columnIndexToFocus = apiRef.current.getColumnIndex(field);
|
|
@@ -250,7 +250,7 @@ export var useGridFocus = function useGridFocus(apiRef, props) {
|
|
|
250
250
|
if (event.target !== event.currentTarget) {
|
|
251
251
|
return;
|
|
252
252
|
}
|
|
253
|
-
var focusedColumnGroup =
|
|
253
|
+
var focusedColumnGroup = gridFocusColumnGroupHeaderSelector(apiRef);
|
|
254
254
|
if (focusedColumnGroup !== null && focusedColumnGroup.depth === depth && fields.includes(focusedColumnGroup.field)) {
|
|
255
255
|
// This group cell has already been focused
|
|
256
256
|
return;
|