@mui/x-data-grid 7.0.0-alpha.8 → 7.0.0-beta.0
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 +508 -30
- package/DataGrid/DataGrid.js +6 -6
- package/DataGrid/useDataGridComponent.js +2 -1
- package/DataGrid/useDataGridProps.js +1 -0
- package/README.md +3 -3
- 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/GridPinnedRows.d.ts +7 -0
- package/components/GridPinnedRows.js +4 -0
- package/components/GridRow.d.ts +7 -4
- package/components/GridRow.js +161 -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/GridActionsCellItem.d.ts +2 -2
- package/components/cell/GridCell.d.ts +15 -21
- package/components/cell/GridCell.js +67 -372
- 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/columnsManagement/GridColumnsManagement.d.ts +36 -0
- package/components/columnsManagement/GridColumnsManagement.js +260 -0
- package/components/columnsManagement/index.d.ts +1 -0
- package/components/columnsManagement/index.js +1 -0
- package/components/columnsManagement/utils.d.ts +4 -0
- package/components/columnsManagement/utils.js +16 -0
- package/components/containers/GridRoot.js +18 -15
- package/components/containers/GridRootStyles.js +307 -204
- package/components/index.d.ts +1 -0
- package/components/index.js +1 -0
- package/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
- package/components/panel/GridColumnsPanel.d.ts +0 -28
- package/components/panel/GridColumnsPanel.js +5 -213
- package/components/panel/GridPanel.js +3 -4
- package/components/panel/filterPanel/GridFilterForm.d.ts +6 -4
- package/components/panel/filterPanel/GridFilterForm.js +31 -14
- 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/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 +8 -3
- package/constants/gridClasses.d.ts +72 -12
- package/constants/gridClasses.js +1 -1
- package/constants/localeTextConstants.js +4 -6
- package/hooks/core/gridCoreSelector.d.ts +6 -0
- package/hooks/core/gridCoreSelector.js +5 -0
- package/hooks/core/useGridApiInitialization.js +4 -0
- package/hooks/core/useGridInitialization.js +4 -0
- 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/useGridColumnGrouping.d.ts +1 -1
- package/hooks/features/columnGrouping/useGridColumnGrouping.js +7 -14
- 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/export/serializers/csvSerializer.js +2 -2
- 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/useGridPagination.js +3 -5
- 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 +8 -5
- package/hooks/features/rows/useGridRowsMeta.js +7 -4
- package/hooks/features/scroll/useGridScroll.js +8 -10
- package/hooks/features/sorting/gridSortingUtils.js +1 -1
- 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/useGridAriaAttributes.js +1 -2
- package/hooks/utils/useGridNativeEventListener.js +4 -9
- 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.js +1 -1
- package/internals/index.d.ts +12 -9
- package/internals/index.js +9 -7
- package/legacy/DataGrid/DataGrid.js +6 -6
- package/legacy/DataGrid/useDataGridComponent.js +2 -1
- package/legacy/DataGrid/useDataGridProps.js +1 -0
- package/legacy/components/GridColumnHeaders.js +3 -11
- package/legacy/components/GridDetailPanels.js +4 -0
- package/legacy/components/GridHeaders.js +53 -0
- package/legacy/components/GridPinnedRows.js +4 -0
- package/legacy/components/GridRow.js +159 -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/GridCell.js +69 -377
- 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/columnsManagement/GridColumnsManagement.js +300 -0
- package/legacy/components/columnsManagement/index.js +1 -0
- package/legacy/components/columnsManagement/utils.js +22 -0
- package/legacy/components/containers/GridRoot.js +18 -15
- package/legacy/components/containers/GridRootStyles.js +215 -137
- package/legacy/components/index.js +1 -0
- package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
- package/legacy/components/panel/GridColumnsPanel.js +5 -233
- package/legacy/components/panel/GridPanel.js +3 -4
- package/legacy/components/panel/filterPanel/GridFilterForm.js +30 -13
- 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/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 +8 -3
- package/legacy/constants/gridClasses.js +1 -1
- package/legacy/constants/localeTextConstants.js +4 -6
- package/legacy/hooks/core/gridCoreSelector.js +7 -0
- package/legacy/hooks/core/useGridApiInitialization.js +4 -0
- package/legacy/hooks/core/useGridInitialization.js +4 -0
- package/legacy/hooks/core/useGridRefs.js +13 -0
- package/legacy/hooks/core/useGridTheme.js +21 -0
- package/legacy/hooks/features/columnGrouping/useGridColumnGrouping.js +7 -14
- 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/export/serializers/csvSerializer.js +2 -2
- 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/useGridPagination.js +3 -5
- package/legacy/hooks/features/rows/gridRowsSelector.js +5 -5
- package/legacy/hooks/features/rows/gridRowsUtils.js +8 -5
- package/legacy/hooks/features/rows/useGridRowsMeta.js +7 -4
- package/legacy/hooks/features/scroll/useGridScroll.js +8 -10
- package/legacy/hooks/features/sorting/gridSortingUtils.js +1 -1
- 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/useGridAriaAttributes.js +1 -2
- package/legacy/hooks/utils/useGridNativeEventListener.js +4 -9
- package/legacy/hooks/utils/useResizeObserver.js +36 -0
- package/legacy/hooks/utils/useRunOnce.js +18 -0
- package/legacy/index.js +1 -1
- package/legacy/internals/index.js +9 -7
- package/legacy/locales/arSD.js +5 -6
- package/legacy/locales/beBY.js +5 -6
- package/legacy/locales/bgBG.js +5 -6
- package/legacy/locales/csCZ.js +5 -6
- package/legacy/locales/daDK.js +5 -6
- package/legacy/locales/deDE.js +5 -6
- package/legacy/locales/elGR.js +5 -6
- package/legacy/locales/esES.js +5 -6
- package/legacy/locales/faIR.js +5 -6
- package/legacy/locales/fiFI.js +5 -6
- package/legacy/locales/frFR.js +5 -6
- package/legacy/locales/heIL.js +5 -6
- package/legacy/locales/hrHR.js +160 -0
- package/legacy/locales/huHU.js +5 -6
- package/legacy/locales/index.js +4 -1
- package/legacy/locales/itIT.js +5 -6
- package/legacy/locales/jaJP.js +5 -6
- package/legacy/locales/koKR.js +5 -6
- package/legacy/locales/nbNO.js +5 -6
- package/legacy/locales/nlNL.js +5 -6
- package/legacy/locales/plPL.js +5 -6
- package/legacy/locales/ptBR.js +5 -6
- package/legacy/locales/ptPT.js +160 -0
- package/legacy/locales/roRO.js +5 -6
- package/legacy/locales/ruRU.js +5 -6
- package/legacy/locales/skSK.js +5 -6
- package/legacy/locales/svSE.js +5 -6
- package/legacy/locales/trTR.js +5 -6
- package/legacy/locales/ukUA.js +5 -6
- package/legacy/locales/urPK.js +5 -6
- package/legacy/locales/viVN.js +5 -6
- package/legacy/locales/zhCN.js +5 -6
- package/legacy/locales/zhHK.js +160 -0
- package/legacy/locales/zhTW.js +5 -6
- package/legacy/models/index.js +0 -1
- package/legacy/models/params/index.js +1 -2
- package/legacy/utils/utils.js +10 -1
- package/locales/arSD.js +5 -6
- package/locales/beBY.js +5 -6
- package/locales/bgBG.js +5 -6
- package/locales/csCZ.js +5 -6
- package/locales/daDK.js +5 -6
- package/locales/deDE.js +5 -6
- package/locales/elGR.js +5 -6
- package/locales/esES.js +5 -6
- package/locales/faIR.js +5 -6
- package/locales/fiFI.js +5 -6
- package/locales/frFR.js +5 -6
- package/locales/heIL.js +5 -6
- package/locales/hrHR.d.ts +1 -0
- package/locales/hrHR.js +148 -0
- package/locales/huHU.js +5 -6
- package/locales/index.d.ts +3 -0
- package/locales/index.js +4 -1
- package/locales/itIT.js +5 -6
- package/locales/jaJP.js +5 -6
- package/locales/koKR.js +5 -6
- package/locales/nbNO.js +5 -6
- package/locales/nlNL.js +5 -6
- package/locales/plPL.js +5 -6
- package/locales/ptBR.js +5 -6
- package/locales/ptPT.d.ts +1 -0
- package/locales/ptPT.js +148 -0
- package/locales/roRO.js +5 -6
- package/locales/ruRU.js +5 -6
- package/locales/skSK.js +5 -6
- package/locales/svSE.js +5 -6
- package/locales/trTR.js +5 -6
- package/locales/ukUA.js +5 -6
- package/locales/urPK.js +5 -6
- package/locales/viVN.js +5 -6
- package/locales/zhCN.js +5 -6
- package/locales/zhHK.d.ts +1 -0
- package/locales/zhHK.js +148 -0
- package/locales/zhTW.js +5 -6
- package/models/api/gridColumnGroupingApi.d.ts +2 -2
- package/models/api/gridCoreApi.d.ts +16 -16
- package/models/api/gridLocaleTextApi.d.ts +3 -5
- package/models/api/gridRowsMetaApi.d.ts +1 -1
- package/models/api/gridVirtualizationApi.d.ts +2 -3
- package/models/colDef/gridColType.d.ts +11 -2
- package/models/events/gridEventLookup.d.ts +3 -3
- package/models/gridFilterModel.d.ts +1 -1
- package/models/gridSlotsComponent.d.ts +21 -2
- package/models/gridSlotsComponentsProps.d.ts +4 -0
- 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 +6 -11
- package/modern/DataGrid/DataGrid.js +6 -6
- package/modern/DataGrid/useDataGridComponent.js +2 -1
- package/modern/DataGrid/useDataGridProps.js +1 -0
- package/modern/components/GridColumnHeaders.js +3 -11
- package/modern/components/GridDetailPanels.js +4 -0
- package/modern/components/GridHeaders.js +53 -0
- package/modern/components/GridPinnedRows.js +4 -0
- package/modern/components/GridRow.js +159 -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/GridCell.js +65 -369
- 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/columnsManagement/GridColumnsManagement.js +256 -0
- package/modern/components/columnsManagement/index.js +1 -0
- package/modern/components/columnsManagement/utils.js +16 -0
- package/modern/components/containers/GridRoot.js +18 -14
- package/modern/components/containers/GridRootStyles.js +307 -204
- package/modern/components/index.js +1 -0
- package/modern/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
- package/modern/components/panel/GridColumnsPanel.js +4 -209
- package/modern/components/panel/GridPanel.js +3 -4
- package/modern/components/panel/filterPanel/GridFilterForm.js +30 -13
- 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/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 +8 -3
- package/modern/constants/gridClasses.js +1 -1
- package/modern/constants/localeTextConstants.js +4 -6
- package/modern/hooks/core/gridCoreSelector.js +5 -0
- package/modern/hooks/core/useGridApiInitialization.js +3 -0
- package/modern/hooks/core/useGridInitialization.js +4 -0
- package/modern/hooks/core/useGridRefs.js +13 -0
- package/modern/hooks/core/useGridTheme.js +19 -0
- package/modern/hooks/features/columnGrouping/useGridColumnGrouping.js +5 -12
- 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/export/serializers/csvSerializer.js +2 -2
- 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/useGridPagination.js +3 -5
- package/modern/hooks/features/rows/gridRowsSelector.js +2 -2
- package/modern/hooks/features/rows/gridRowsUtils.js +8 -5
- package/modern/hooks/features/rows/useGridRowsMeta.js +7 -4
- package/modern/hooks/features/scroll/useGridScroll.js +8 -9
- package/modern/hooks/features/sorting/gridSortingUtils.js +1 -1
- 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/useGridAriaAttributes.js +1 -1
- package/modern/hooks/utils/useGridNativeEventListener.js +3 -9
- package/modern/hooks/utils/useResizeObserver.js +36 -0
- package/modern/hooks/utils/useRunOnce.js +18 -0
- package/modern/index.js +1 -1
- package/modern/internals/index.js +9 -7
- package/modern/locales/arSD.js +5 -6
- package/modern/locales/beBY.js +5 -6
- package/modern/locales/bgBG.js +5 -6
- package/modern/locales/csCZ.js +5 -6
- package/modern/locales/daDK.js +5 -6
- package/modern/locales/deDE.js +5 -6
- package/modern/locales/elGR.js +5 -6
- package/modern/locales/esES.js +5 -6
- package/modern/locales/faIR.js +5 -6
- package/modern/locales/fiFI.js +5 -6
- package/modern/locales/frFR.js +5 -6
- package/modern/locales/heIL.js +5 -6
- package/modern/locales/hrHR.js +148 -0
- package/modern/locales/huHU.js +5 -6
- package/modern/locales/index.js +4 -1
- package/modern/locales/itIT.js +5 -6
- package/modern/locales/jaJP.js +5 -6
- package/modern/locales/koKR.js +5 -6
- package/modern/locales/nbNO.js +5 -6
- package/modern/locales/nlNL.js +5 -6
- package/modern/locales/plPL.js +5 -6
- package/modern/locales/ptBR.js +5 -6
- package/modern/locales/ptPT.js +148 -0
- package/modern/locales/roRO.js +5 -6
- package/modern/locales/ruRU.js +5 -6
- package/modern/locales/skSK.js +5 -6
- package/modern/locales/svSE.js +5 -6
- package/modern/locales/trTR.js +5 -6
- package/modern/locales/ukUA.js +5 -6
- package/modern/locales/urPK.js +5 -6
- package/modern/locales/viVN.js +5 -6
- package/modern/locales/zhCN.js +5 -6
- package/modern/locales/zhHK.js +148 -0
- package/modern/locales/zhTW.js +5 -6
- package/modern/models/index.js +0 -1
- package/modern/models/params/index.js +1 -2
- package/modern/utils/utils.js +10 -1
- package/node/DataGrid/DataGrid.js +6 -6
- package/node/DataGrid/useDataGridComponent.js +1 -0
- package/node/DataGrid/useDataGridProps.js +1 -0
- package/node/components/GridColumnHeaders.js +3 -11
- package/node/components/GridDetailPanels.js +10 -0
- package/node/components/GridHeaders.js +60 -0
- package/node/components/GridPinnedRows.js +10 -0
- package/node/components/GridRow.js +157 -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/GridCell.js +66 -369
- 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/columnsManagement/GridColumnsManagement.js +264 -0
- package/node/components/columnsManagement/index.js +16 -0
- package/node/components/columnsManagement/utils.js +24 -0
- package/node/components/containers/GridRoot.js +17 -14
- package/node/components/containers/GridRootStyles.js +175 -72
- package/node/components/index.js +11 -0
- package/node/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
- package/node/components/panel/GridColumnsPanel.js +4 -208
- package/node/components/panel/GridPanel.js +3 -4
- package/node/components/panel/filterPanel/GridFilterForm.js +29 -12
- 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/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 +6 -1
- package/node/constants/gridClasses.js +1 -1
- package/node/constants/localeTextConstants.js +4 -6
- package/node/hooks/core/gridCoreSelector.js +12 -0
- package/node/hooks/core/useGridApiInitialization.js +3 -0
- package/node/hooks/core/useGridInitialization.js +4 -0
- package/node/hooks/core/useGridRefs.js +22 -0
- package/node/hooks/core/useGridTheme.js +29 -0
- package/node/hooks/features/columnGrouping/useGridColumnGrouping.js +5 -12
- 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/export/serializers/csvSerializer.js +2 -2
- 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/useGridPagination.js +3 -5
- package/node/hooks/features/rows/gridRowsSelector.js +2 -2
- package/node/hooks/features/rows/gridRowsUtils.js +8 -5
- package/node/hooks/features/rows/useGridRowsMeta.js +5 -3
- package/node/hooks/features/scroll/useGridScroll.js +8 -9
- package/node/hooks/features/sorting/gridSortingUtils.js +1 -1
- 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/useGridAriaAttributes.js +1 -1
- package/node/hooks/utils/useGridNativeEventListener.js +3 -9
- package/node/hooks/utils/useResizeObserver.js +44 -0
- package/node/hooks/utils/useRunOnce.js +27 -0
- package/node/index.js +1 -1
- package/node/internals/index.js +86 -71
- package/node/locales/arSD.js +5 -6
- package/node/locales/beBY.js +5 -6
- package/node/locales/bgBG.js +5 -6
- package/node/locales/csCZ.js +5 -6
- package/node/locales/daDK.js +5 -6
- package/node/locales/deDE.js +5 -6
- package/node/locales/elGR.js +5 -6
- package/node/locales/esES.js +5 -6
- package/node/locales/faIR.js +5 -6
- package/node/locales/fiFI.js +5 -6
- package/node/locales/frFR.js +5 -6
- package/node/locales/heIL.js +5 -6
- package/node/locales/hrHR.js +154 -0
- package/node/locales/huHU.js +5 -6
- package/node/locales/index.js +33 -0
- package/node/locales/itIT.js +5 -6
- package/node/locales/jaJP.js +5 -6
- package/node/locales/koKR.js +5 -6
- package/node/locales/nbNO.js +5 -6
- package/node/locales/nlNL.js +5 -6
- package/node/locales/plPL.js +5 -6
- package/node/locales/ptBR.js +5 -6
- package/node/locales/ptPT.js +154 -0
- package/node/locales/roRO.js +5 -6
- package/node/locales/ruRU.js +5 -6
- package/node/locales/skSK.js +5 -6
- package/node/locales/svSE.js +5 -6
- package/node/locales/trTR.js +5 -6
- package/node/locales/ukUA.js +5 -6
- package/node/locales/urPK.js +5 -6
- package/node/locales/viVN.js +5 -6
- package/node/locales/zhCN.js +5 -6
- package/node/locales/zhHK.js +154 -0
- package/node/locales/zhTW.js +5 -6
- package/node/models/index.js +0 -11
- package/node/models/params/index.js +0 -11
- package/node/utils/utils.js +11 -1
- package/package.json +6 -6
- 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
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { styled } from '@mui/system';
|
|
3
|
+
import { unstable_composeClasses as composeClasses, unstable_useForkRef as useForkRef, unstable_useEventCallback as useEventCallback } from '@mui/utils';
|
|
4
|
+
import { useOnMount } from '../../hooks/utils/useOnMount';
|
|
5
|
+
import { useGridPrivateApiContext } from '../../hooks/utils/useGridPrivateApiContext';
|
|
6
|
+
import { gridDimensionsSelector, useGridSelector } from '../../hooks';
|
|
7
|
+
import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
|
|
8
|
+
import { getDataGridUtilityClass } from '../../constants/gridClasses';
|
|
9
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
|
+
const useUtilityClasses = (ownerState, position) => {
|
|
11
|
+
const {
|
|
12
|
+
classes
|
|
13
|
+
} = ownerState;
|
|
14
|
+
const slots = {
|
|
15
|
+
root: ['scrollbar', `scrollbar--${position}`],
|
|
16
|
+
content: ['scrollbarContent']
|
|
17
|
+
};
|
|
18
|
+
return composeClasses(slots, getDataGridUtilityClass, classes);
|
|
19
|
+
};
|
|
20
|
+
const Scrollbar = styled('div')({
|
|
21
|
+
position: 'absolute',
|
|
22
|
+
display: 'inline-block',
|
|
23
|
+
zIndex: 6,
|
|
24
|
+
'& > div': {
|
|
25
|
+
display: 'inline-block'
|
|
26
|
+
},
|
|
27
|
+
// In macOS Safari and Gnome Web, scrollbars are overlaid and don't affect the layout. So we consider
|
|
28
|
+
// their size to be 0px throughout all the calculations, but the floating scrollbar container does need
|
|
29
|
+
// to appear and have a real size. We set it to 14px because it seems like an acceptable value and we
|
|
30
|
+
// don't have a method to find the required size for scrollbars on those platforms.
|
|
31
|
+
'--size': 'calc(max(var(--DataGrid-scrollbarSize), 14px))'
|
|
32
|
+
});
|
|
33
|
+
const ScrollbarVertical = styled(Scrollbar)({
|
|
34
|
+
width: 'var(--size)',
|
|
35
|
+
height: 'calc(var(--DataGrid-hasScrollY) * (100% - var(--DataGrid-topContainerHeight) - var(--DataGrid-bottomContainerHeight) - var(--DataGrid-hasScrollX) * var(--DataGrid-scrollbarSize)))',
|
|
36
|
+
overflowY: 'auto',
|
|
37
|
+
overflowX: 'hidden',
|
|
38
|
+
'& > div': {
|
|
39
|
+
width: 'var(--size)'
|
|
40
|
+
},
|
|
41
|
+
top: 'var(--DataGrid-topContainerHeight)',
|
|
42
|
+
right: '0px'
|
|
43
|
+
});
|
|
44
|
+
const ScrollbarHorizontal = styled(Scrollbar)({
|
|
45
|
+
width: '100%',
|
|
46
|
+
height: 'var(--size)',
|
|
47
|
+
overflowY: 'hidden',
|
|
48
|
+
overflowX: 'auto',
|
|
49
|
+
'& > div': {
|
|
50
|
+
height: 'var(--size)'
|
|
51
|
+
},
|
|
52
|
+
bottom: '0px'
|
|
53
|
+
});
|
|
54
|
+
const Content = styled('div')({
|
|
55
|
+
display: 'inline-block'
|
|
56
|
+
});
|
|
57
|
+
const GridVirtualScrollbar = /*#__PURE__*/React.forwardRef(function GridVirtualScrollbar(props, ref) {
|
|
58
|
+
const apiRef = useGridPrivateApiContext();
|
|
59
|
+
const rootProps = useGridRootProps();
|
|
60
|
+
const isLocked = React.useRef(false);
|
|
61
|
+
const lastPosition = React.useRef(0);
|
|
62
|
+
const scrollbarRef = React.useRef(null);
|
|
63
|
+
const contentRef = React.useRef(null);
|
|
64
|
+
const classes = useUtilityClasses(rootProps, props.position);
|
|
65
|
+
const dimensions = useGridSelector(apiRef, gridDimensionsSelector);
|
|
66
|
+
const propertyDimension = props.position === 'vertical' ? 'height' : 'width';
|
|
67
|
+
const propertyScroll = props.position === 'vertical' ? 'scrollTop' : 'scrollLeft';
|
|
68
|
+
const hasScroll = props.position === 'vertical' ? dimensions.hasScrollX : dimensions.hasScrollY;
|
|
69
|
+
const contentSize = dimensions.minimumSize[propertyDimension] + (hasScroll ? dimensions.scrollbarSize : 0);
|
|
70
|
+
const scrollbarSize = props.position === 'vertical' ? dimensions.viewportInnerSize.height : dimensions.viewportOuterSize.width;
|
|
71
|
+
const scrollbarInnerSize = scrollbarSize * (contentSize / dimensions.viewportOuterSize[propertyDimension]);
|
|
72
|
+
const onScrollerScroll = useEventCallback(() => {
|
|
73
|
+
const scroller = apiRef.current.virtualScrollerRef.current;
|
|
74
|
+
const scrollbar = scrollbarRef.current;
|
|
75
|
+
if (scroller[propertyScroll] === lastPosition.current) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
if (isLocked.current) {
|
|
79
|
+
isLocked.current = false;
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
isLocked.current = true;
|
|
83
|
+
const value = scroller[propertyScroll] / contentSize;
|
|
84
|
+
scrollbar[propertyScroll] = value * scrollbarInnerSize;
|
|
85
|
+
lastPosition.current = scroller[propertyScroll];
|
|
86
|
+
});
|
|
87
|
+
const onScrollbarScroll = useEventCallback(() => {
|
|
88
|
+
const scroller = apiRef.current.virtualScrollerRef.current;
|
|
89
|
+
const scrollbar = scrollbarRef.current;
|
|
90
|
+
if (isLocked.current) {
|
|
91
|
+
isLocked.current = false;
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
isLocked.current = true;
|
|
95
|
+
const value = scrollbar[propertyScroll] / scrollbarInnerSize;
|
|
96
|
+
scroller[propertyScroll] = value * contentSize;
|
|
97
|
+
});
|
|
98
|
+
useOnMount(() => {
|
|
99
|
+
const scroller = apiRef.current.virtualScrollerRef.current;
|
|
100
|
+
const scrollbar = scrollbarRef.current;
|
|
101
|
+
scroller.addEventListener('scroll', onScrollerScroll, {
|
|
102
|
+
capture: true
|
|
103
|
+
});
|
|
104
|
+
scrollbar.addEventListener('scroll', onScrollbarScroll, {
|
|
105
|
+
capture: true
|
|
106
|
+
});
|
|
107
|
+
return () => {
|
|
108
|
+
scroller.removeEventListener('scroll', onScrollerScroll, {
|
|
109
|
+
capture: true
|
|
110
|
+
});
|
|
111
|
+
scrollbar.removeEventListener('scroll', onScrollbarScroll, {
|
|
112
|
+
capture: true
|
|
113
|
+
});
|
|
114
|
+
};
|
|
115
|
+
});
|
|
116
|
+
React.useEffect(() => {
|
|
117
|
+
const content = contentRef.current;
|
|
118
|
+
content.style.setProperty(propertyDimension, `${scrollbarInnerSize}px`);
|
|
119
|
+
}, [scrollbarInnerSize, propertyDimension]);
|
|
120
|
+
const Container = props.position === 'vertical' ? ScrollbarVertical : ScrollbarHorizontal;
|
|
121
|
+
return /*#__PURE__*/_jsx(Container, {
|
|
122
|
+
ref: useForkRef(ref, scrollbarRef),
|
|
123
|
+
className: classes.root,
|
|
124
|
+
tabIndex: -1,
|
|
125
|
+
children: /*#__PURE__*/_jsx(Content, {
|
|
126
|
+
ref: contentRef,
|
|
127
|
+
className: classes.content
|
|
128
|
+
})
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
export { GridVirtualScrollbar };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
export interface GridVirtualScrollerProps {
|
|
3
|
+
children?: React.ReactNode;
|
|
4
|
+
}
|
|
5
|
+
declare function GridVirtualScroller(props: GridVirtualScrollerProps): React.JSX.Element;
|
|
6
6
|
export { GridVirtualScroller };
|
|
@@ -1,42 +1,95 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import clsx from 'clsx';
|
|
4
3
|
import { styled } from '@mui/system';
|
|
5
4
|
import { unstable_composeClasses as composeClasses } from '@mui/utils';
|
|
6
5
|
import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
|
|
6
|
+
import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
|
|
7
|
+
import { useGridSelector } from '../../hooks/utils/useGridSelector';
|
|
7
8
|
import { getDataGridUtilityClass } from '../../constants/gridClasses';
|
|
9
|
+
import { gridDimensionsSelector } from '../../hooks/features/dimensions';
|
|
10
|
+
import { useGridVirtualScroller } from '../../hooks/features/virtualization/useGridVirtualScroller';
|
|
11
|
+
import { GridOverlays } from '../base/GridOverlays';
|
|
12
|
+
import { GridHeaders } from '../GridHeaders';
|
|
13
|
+
import { GridMainContainer as Container } from './GridMainContainer';
|
|
14
|
+
import { GridTopContainer as TopContainer } from './GridTopContainer';
|
|
15
|
+
import { GridBottomContainer as BottomContainer } from './GridBottomContainer';
|
|
16
|
+
import { GridVirtualScrollerContent as Content } from './GridVirtualScrollerContent';
|
|
17
|
+
import { GridVirtualScrollerFiller as SpaceFiller } from './GridVirtualScrollerFiller';
|
|
18
|
+
import { GridVirtualScrollerRenderZone as RenderZone } from './GridVirtualScrollerRenderZone';
|
|
19
|
+
import { GridVirtualScrollbar as Scrollbar } from './GridVirtualScrollbar';
|
|
8
20
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
9
|
-
|
|
21
|
+
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
22
|
+
const useUtilityClasses = (ownerState, dimensions) => {
|
|
10
23
|
const {
|
|
11
24
|
classes
|
|
12
25
|
} = ownerState;
|
|
13
26
|
const slots = {
|
|
14
|
-
root: ['
|
|
27
|
+
root: ['main', dimensions.rightPinnedWidth > 0 && 'main--hasPinnedRight'],
|
|
28
|
+
scroller: ['virtualScroller']
|
|
15
29
|
};
|
|
16
30
|
return composeClasses(slots, getDataGridUtilityClass, classes);
|
|
17
31
|
};
|
|
18
|
-
const
|
|
32
|
+
const Scroller = styled('div', {
|
|
19
33
|
name: 'MuiDataGrid',
|
|
20
34
|
slot: 'VirtualScroller',
|
|
21
35
|
overridesResolver: (props, styles) => styles.virtualScroller
|
|
22
36
|
})({
|
|
23
|
-
overflow: 'auto',
|
|
24
|
-
height: '100%',
|
|
25
|
-
// See https://github.com/mui/mui-x/issues/4360
|
|
26
37
|
position: 'relative',
|
|
38
|
+
height: '100%',
|
|
39
|
+
overflow: 'scroll',
|
|
40
|
+
scrollbarWidth: 'none' /* Firefox */,
|
|
41
|
+
'&::-webkit-scrollbar': {
|
|
42
|
+
display: 'none' /* Safari and Chrome */
|
|
43
|
+
},
|
|
27
44
|
'@media print': {
|
|
28
45
|
overflow: 'hidden'
|
|
29
46
|
},
|
|
30
|
-
|
|
47
|
+
// See https://github.com/mui/mui-x/issues/10547
|
|
48
|
+
zIndex: 0
|
|
31
49
|
});
|
|
32
|
-
|
|
50
|
+
function GridVirtualScroller(props) {
|
|
51
|
+
const apiRef = useGridApiContext();
|
|
33
52
|
const rootProps = useGridRootProps();
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
53
|
+
const dimensions = useGridSelector(apiRef, gridDimensionsSelector);
|
|
54
|
+
const classes = useUtilityClasses(rootProps, dimensions);
|
|
55
|
+
const virtualScroller = useGridVirtualScroller();
|
|
56
|
+
const {
|
|
57
|
+
getContainerProps,
|
|
58
|
+
getScrollerProps,
|
|
59
|
+
getContentProps,
|
|
60
|
+
getRenderZoneProps,
|
|
61
|
+
getScrollbarVerticalProps,
|
|
62
|
+
getScrollbarHorizontalProps
|
|
63
|
+
} = virtualScroller;
|
|
64
|
+
return /*#__PURE__*/_jsxs(Container, _extends({
|
|
65
|
+
className: classes.root
|
|
66
|
+
}, getContainerProps(), {
|
|
67
|
+
children: [/*#__PURE__*/_jsxs(Scroller, _extends({
|
|
68
|
+
className: classes.scroller
|
|
69
|
+
}, getScrollerProps(), {
|
|
70
|
+
ownerState: rootProps,
|
|
71
|
+
children: [/*#__PURE__*/_jsxs(TopContainer, {
|
|
72
|
+
children: [/*#__PURE__*/_jsx(GridHeaders, {}), /*#__PURE__*/_jsx(rootProps.slots.pinnedRows, {
|
|
73
|
+
position: "top",
|
|
74
|
+
virtualScroller: virtualScroller
|
|
75
|
+
})]
|
|
76
|
+
}), /*#__PURE__*/_jsx(GridOverlays, {}), /*#__PURE__*/_jsx(Content, _extends({}, getContentProps(), {
|
|
77
|
+
children: /*#__PURE__*/_jsxs(RenderZone, _extends({}, getRenderZoneProps(), {
|
|
78
|
+
children: [virtualScroller.getRows(), /*#__PURE__*/_jsx(rootProps.slots.detailPanels, {
|
|
79
|
+
virtualScroller: virtualScroller
|
|
80
|
+
})]
|
|
81
|
+
}))
|
|
82
|
+
})), /*#__PURE__*/_jsx(SpaceFiller, {}), /*#__PURE__*/_jsx(BottomContainer, {
|
|
83
|
+
children: /*#__PURE__*/_jsx(rootProps.slots.pinnedRows, {
|
|
84
|
+
position: "bottom",
|
|
85
|
+
virtualScroller: virtualScroller
|
|
86
|
+
})
|
|
87
|
+
})]
|
|
88
|
+
})), /*#__PURE__*/_jsx(Scrollbar, _extends({
|
|
89
|
+
position: "vertical"
|
|
90
|
+
}, getScrollbarVerticalProps())), /*#__PURE__*/_jsx(Scrollbar, _extends({
|
|
91
|
+
position: "horizontal"
|
|
92
|
+
}, getScrollbarHorizontalProps())), props.children]
|
|
40
93
|
}));
|
|
41
|
-
}
|
|
94
|
+
}
|
|
42
95
|
export { GridVirtualScroller };
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { styled } from '@mui/system';
|
|
3
|
+
import { fastMemo } from '../../utils/fastMemo';
|
|
4
|
+
import { useGridSelector } from '../../hooks/utils/useGridSelector';
|
|
5
|
+
import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
|
|
6
|
+
import { gridDimensionsSelector } from '../../hooks/features/dimensions';
|
|
7
|
+
import { gridClasses } from '../../constants';
|
|
8
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
9
|
+
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
10
|
+
const Filler = styled('div')({
|
|
11
|
+
display: 'flex',
|
|
12
|
+
flexDirection: 'row',
|
|
13
|
+
width: 'var(--DataGrid-rowWidth)',
|
|
14
|
+
boxSizing: 'border-box'
|
|
15
|
+
});
|
|
16
|
+
const Pinned = styled('div')({
|
|
17
|
+
position: 'sticky',
|
|
18
|
+
height: '100%',
|
|
19
|
+
boxSizing: 'border-box',
|
|
20
|
+
borderTop: '1px solid var(--DataGrid-rowBorderColor)',
|
|
21
|
+
backgroundColor: 'var(--DataGrid-pinnedBackground)'
|
|
22
|
+
});
|
|
23
|
+
const PinnedLeft = styled(Pinned)({
|
|
24
|
+
left: 0,
|
|
25
|
+
borderRight: '1px solid var(--DataGrid-rowBorderColor)'
|
|
26
|
+
});
|
|
27
|
+
const PinnedRight = styled(Pinned)({
|
|
28
|
+
right: 0,
|
|
29
|
+
borderLeft: '1px solid var(--DataGrid-rowBorderColor)'
|
|
30
|
+
});
|
|
31
|
+
const Main = styled('div')({
|
|
32
|
+
flexGrow: 1,
|
|
33
|
+
borderTop: '1px solid var(--DataGrid-rowBorderColor)'
|
|
34
|
+
});
|
|
35
|
+
function GridVirtualScrollerFiller() {
|
|
36
|
+
const apiRef = useGridApiContext();
|
|
37
|
+
const {
|
|
38
|
+
viewportOuterSize,
|
|
39
|
+
minimumSize,
|
|
40
|
+
hasScrollX,
|
|
41
|
+
scrollbarSize,
|
|
42
|
+
leftPinnedWidth,
|
|
43
|
+
rightPinnedWidth
|
|
44
|
+
} = useGridSelector(apiRef, gridDimensionsSelector);
|
|
45
|
+
const scrollbarHeight = hasScrollX ? scrollbarSize : 0;
|
|
46
|
+
const expandedHeight = viewportOuterSize.height - minimumSize.height - scrollbarHeight;
|
|
47
|
+
const height = Math.max(scrollbarHeight, expandedHeight);
|
|
48
|
+
if (height === 0) {
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
return /*#__PURE__*/_jsxs(Filler, {
|
|
52
|
+
className: gridClasses.filler,
|
|
53
|
+
role: "presentation",
|
|
54
|
+
style: {
|
|
55
|
+
height
|
|
56
|
+
},
|
|
57
|
+
children: [leftPinnedWidth > 0 && /*#__PURE__*/_jsx(PinnedLeft, {
|
|
58
|
+
className: gridClasses['filler--pinnedLeft'],
|
|
59
|
+
style: {
|
|
60
|
+
width: leftPinnedWidth
|
|
61
|
+
}
|
|
62
|
+
}), /*#__PURE__*/_jsx(Main, {}), rightPinnedWidth > 0 && /*#__PURE__*/_jsx(PinnedRight, {
|
|
63
|
+
className: gridClasses['filler--pinnedRight'],
|
|
64
|
+
style: {
|
|
65
|
+
width: rightPinnedWidth
|
|
66
|
+
}
|
|
67
|
+
})]
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
const Memoized = fastMemo(GridVirtualScrollerFiller);
|
|
71
|
+
export { Memoized as GridVirtualScrollerFiller };
|
|
@@ -25,7 +25,8 @@ const VirtualScrollerRenderZoneRoot = styled('div', {
|
|
|
25
25
|
position: 'absolute',
|
|
26
26
|
display: 'flex',
|
|
27
27
|
// Prevents margin collapsing when using `getRowSpacing`
|
|
28
|
-
flexDirection: 'column'
|
|
28
|
+
flexDirection: 'column',
|
|
29
|
+
transform: 'translate3d(0, var(--DataGrid-offsetTop), 0)'
|
|
29
30
|
});
|
|
30
31
|
const GridVirtualScrollerRenderZone = /*#__PURE__*/React.forwardRef(function GridVirtualScrollerRenderZone(props, ref) {
|
|
31
32
|
const {
|
|
@@ -1,28 +1,33 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
-
import { GridSkeletonCell, GridColumnsPanel, GridFilterPanel, GridFooter, GridLoadingOverlay, GridNoRowsOverlay, GridPagination, GridPanel, GridRow, GridColumnHeaderFilterIconButton, GridRowCount } from '../components';
|
|
3
|
-
import {
|
|
2
|
+
import { GridSkeletonCell, GridColumnsPanel, GridFilterPanel, GridFooter, GridLoadingOverlay, GridNoRowsOverlay, GridPagination, GridPanel, GridRow, GridColumnHeaderFilterIconButton, GridRowCount, GridColumnsManagement } from '../components';
|
|
3
|
+
import { GridCell } from '../components/cell/GridCell';
|
|
4
4
|
import { GridColumnHeaders } from '../components/GridColumnHeaders';
|
|
5
5
|
import { GridColumnMenu } from '../components/menu/columnMenu/GridColumnMenu';
|
|
6
|
+
import { GridDetailPanels } from '../components/GridDetailPanels';
|
|
7
|
+
import { GridPinnedRows } from '../components/GridPinnedRows';
|
|
6
8
|
import { GridNoResultsOverlay } from '../components/GridNoResultsOverlay';
|
|
7
9
|
import materialSlots from '../material';
|
|
8
10
|
|
|
9
11
|
// TODO: camelCase these key. It's a private helper now.
|
|
10
12
|
// Remove then need to call `uncapitalizeObjectKeys`.
|
|
11
13
|
export const DATA_GRID_DEFAULT_SLOTS_COMPONENTS = _extends({}, materialSlots, {
|
|
12
|
-
cell:
|
|
14
|
+
cell: GridCell,
|
|
13
15
|
skeletonCell: GridSkeletonCell,
|
|
14
16
|
columnHeaderFilterIconButton: GridColumnHeaderFilterIconButton,
|
|
15
17
|
columnMenu: GridColumnMenu,
|
|
16
18
|
columnHeaders: GridColumnHeaders,
|
|
19
|
+
detailPanels: GridDetailPanels,
|
|
17
20
|
footer: GridFooter,
|
|
18
21
|
footerRowCount: GridRowCount,
|
|
19
22
|
toolbar: null,
|
|
23
|
+
pinnedRows: GridPinnedRows,
|
|
20
24
|
loadingOverlay: GridLoadingOverlay,
|
|
21
25
|
noResultsOverlay: GridNoResultsOverlay,
|
|
22
26
|
noRowsOverlay: GridNoRowsOverlay,
|
|
23
27
|
pagination: GridPagination,
|
|
24
28
|
filterPanel: GridFilterPanel,
|
|
25
29
|
columnsPanel: GridColumnsPanel,
|
|
30
|
+
columnsManagement: GridColumnsManagement,
|
|
26
31
|
panel: GridPanel,
|
|
27
32
|
row: GridRow
|
|
28
33
|
});
|
|
@@ -75,6 +75,14 @@ export interface GridClasses {
|
|
|
75
75
|
* Styles applied to the cell element if it is at the right edge of a cell selection range.
|
|
76
76
|
*/
|
|
77
77
|
'cell--rangeRight': string;
|
|
78
|
+
/**
|
|
79
|
+
* Styles applied to the cell element if it is pinned to the left.
|
|
80
|
+
*/
|
|
81
|
+
'cell--pinnedLeft': string;
|
|
82
|
+
/**
|
|
83
|
+
* Styles applied to the cell element if it is pinned to the right.
|
|
84
|
+
*/
|
|
85
|
+
'cell--pinnedRight': string;
|
|
78
86
|
/**
|
|
79
87
|
* Styles applied to the cell element if it is in a cell selection range.
|
|
80
88
|
*/
|
|
@@ -91,6 +99,10 @@ export interface GridClasses {
|
|
|
91
99
|
* Styles applied to the cell checkbox element.
|
|
92
100
|
*/
|
|
93
101
|
cellCheckbox: string;
|
|
102
|
+
/**
|
|
103
|
+
* Styles applied to the empty cell element.
|
|
104
|
+
*/
|
|
105
|
+
cellEmpty: string;
|
|
94
106
|
/**
|
|
95
107
|
* Styles applied to the skeleton cell element.
|
|
96
108
|
*/
|
|
@@ -216,13 +228,29 @@ export interface GridClasses {
|
|
|
216
228
|
*/
|
|
217
229
|
columnSeparator: string;
|
|
218
230
|
/**
|
|
219
|
-
* Styles applied to the columns
|
|
231
|
+
* Styles applied to the columns management body.
|
|
232
|
+
*/
|
|
233
|
+
columnsManagement: string;
|
|
234
|
+
/**
|
|
235
|
+
* Styles applied to the columns management row element.
|
|
236
|
+
*/
|
|
237
|
+
columnsManagementRow: string;
|
|
238
|
+
/**
|
|
239
|
+
* Styles applied to the columns management header element.
|
|
220
240
|
*/
|
|
221
|
-
|
|
241
|
+
columnsManagementHeader: string;
|
|
222
242
|
/**
|
|
223
|
-
* Styles applied to the columns
|
|
243
|
+
* Styles applied to the columns management footer element.
|
|
224
244
|
*/
|
|
225
|
-
|
|
245
|
+
columnsManagementFooter: string;
|
|
246
|
+
/**
|
|
247
|
+
* Styles applied to the top container.
|
|
248
|
+
*/
|
|
249
|
+
'container--top': string;
|
|
250
|
+
/**
|
|
251
|
+
* Styles applied to the bottom container.
|
|
252
|
+
*/
|
|
253
|
+
'container--bottom': string;
|
|
226
254
|
/**
|
|
227
255
|
* Styles applied to the detail panel element.
|
|
228
256
|
*/
|
|
@@ -271,6 +299,18 @@ export interface GridClasses {
|
|
|
271
299
|
* Styles applied to root of the boolean edit component.
|
|
272
300
|
*/
|
|
273
301
|
editBooleanCell: string;
|
|
302
|
+
/**
|
|
303
|
+
* Styles applied to the filler row.
|
|
304
|
+
*/
|
|
305
|
+
filler: string;
|
|
306
|
+
/**
|
|
307
|
+
* Styles applied to the filler row pinned left section.
|
|
308
|
+
*/
|
|
309
|
+
'filler--pinnedLeft': string;
|
|
310
|
+
/**
|
|
311
|
+
* Styles applied to the filler row pinned right section.
|
|
312
|
+
*/
|
|
313
|
+
'filler--pinnedRight': string;
|
|
274
314
|
/**
|
|
275
315
|
* Styles applied to the root of the filter form component.
|
|
276
316
|
*/
|
|
@@ -323,6 +363,10 @@ export interface GridClasses {
|
|
|
323
363
|
* Styles applied to the main container element.
|
|
324
364
|
*/
|
|
325
365
|
main: string;
|
|
366
|
+
/**
|
|
367
|
+
* Styles applied to the main container element when it has right pinned columns.
|
|
368
|
+
*/
|
|
369
|
+
'main--hasPinnedRight': string;
|
|
326
370
|
/**
|
|
327
371
|
* Styles applied to the menu element.
|
|
328
372
|
*/
|
|
@@ -375,14 +419,6 @@ export interface GridClasses {
|
|
|
375
419
|
* Styles applied to the pinned columns.
|
|
376
420
|
*/
|
|
377
421
|
pinnedColumns: string;
|
|
378
|
-
/**
|
|
379
|
-
* Styles applied to the left pinned columns.
|
|
380
|
-
*/
|
|
381
|
-
'pinnedColumns--left': string;
|
|
382
|
-
/**
|
|
383
|
-
* Styles applied to the right pinned columns.
|
|
384
|
-
*/
|
|
385
|
-
'pinnedColumns--right': string;
|
|
386
422
|
/**
|
|
387
423
|
* Styles applied to the pinned column headers.
|
|
388
424
|
*/
|
|
@@ -427,6 +463,10 @@ export interface GridClasses {
|
|
|
427
463
|
* Styles applied to the floating special row reorder cell element when it is dragged.
|
|
428
464
|
*/
|
|
429
465
|
'row--dragging': string;
|
|
466
|
+
/**
|
|
467
|
+
* Styles applied to the first visible row element on every page of the grid.
|
|
468
|
+
*/
|
|
469
|
+
'row--firstVisible': string;
|
|
430
470
|
/**
|
|
431
471
|
* Styles applied to the last visible row element on every page of the grid.
|
|
432
472
|
*/
|
|
@@ -472,6 +512,18 @@ export interface GridClasses {
|
|
|
472
512
|
* Styles applied to the right scroll area element.
|
|
473
513
|
*/
|
|
474
514
|
'scrollArea--right': string;
|
|
515
|
+
/**
|
|
516
|
+
* Styles applied to the scrollbars.
|
|
517
|
+
*/
|
|
518
|
+
scrollbar: string;
|
|
519
|
+
/**
|
|
520
|
+
* Styles applied to the horizontal scrollbar.
|
|
521
|
+
*/
|
|
522
|
+
'scrollbar--horizontal': string;
|
|
523
|
+
/**
|
|
524
|
+
* Styles applied to the horizontal scrollbar.
|
|
525
|
+
*/
|
|
526
|
+
'scrollbar--vertical': string;
|
|
475
527
|
/**
|
|
476
528
|
* Styles applied to the footer selected row count element.
|
|
477
529
|
*/
|
|
@@ -488,6 +540,10 @@ export interface GridClasses {
|
|
|
488
540
|
* Styles applied to the toolbar filter list element.
|
|
489
541
|
*/
|
|
490
542
|
toolbarFilterList: string;
|
|
543
|
+
/**
|
|
544
|
+
* Styles applied the grid if `showColumnVerticalBorder={true}`.
|
|
545
|
+
*/
|
|
546
|
+
withVerticalBorder: string;
|
|
491
547
|
/**
|
|
492
548
|
* Styles applied to cells, column header and other elements that have border.
|
|
493
549
|
* Sets border color only.
|
|
@@ -497,6 +553,10 @@ export interface GridClasses {
|
|
|
497
553
|
* Styles applied the cell if `showColumnVerticalBorder={true}`.
|
|
498
554
|
*/
|
|
499
555
|
'cell--withRightBorder': string;
|
|
556
|
+
/**
|
|
557
|
+
* Styles applied the cell if `showColumnVerticalBorder={true}`.
|
|
558
|
+
*/
|
|
559
|
+
'cell--withLeftBorder': string;
|
|
500
560
|
/**
|
|
501
561
|
* Styles applied the column header if `showColumnVerticalBorder={true}`.
|
|
502
562
|
*/
|
package/constants/gridClasses.js
CHANGED
|
@@ -2,4 +2,4 @@ import { unstable_generateUtilityClasses as generateUtilityClasses, unstable_gen
|
|
|
2
2
|
export function getDataGridUtilityClass(slot) {
|
|
3
3
|
return generateUtilityClass('MuiDataGrid', slot);
|
|
4
4
|
}
|
|
5
|
-
export const gridClasses = generateUtilityClasses('MuiDataGrid', ['actionsCell', 'aggregationColumnHeader', 'aggregationColumnHeader--alignLeft', 'aggregationColumnHeader--alignCenter', 'aggregationColumnHeader--alignRight', 'aggregationColumnHeaderLabel', 'autoHeight', 'autosizing', 'booleanCell', 'cell--editable', 'cell--editing', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--withRenderer', 'cell--rangeTop', 'cell--rangeBottom', 'cell--rangeLeft', 'cell--rangeRight', 'cell--selectionMode', 'cell', 'cellContent', 'cellCheckbox', 'cellSkeleton', 'checkboxInput', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderDropZone', 'columnHeaderTitle', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnGroupHeader', 'columnHeader--filledGroup', 'columnHeader--emptyGroup', 'columnHeader--showColumnBorder', 'columnHeaders', 'columnHeadersInner', 'columnHeadersInner--scrollable', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'columnSeparator', '
|
|
5
|
+
export const gridClasses = generateUtilityClasses('MuiDataGrid', ['actionsCell', 'aggregationColumnHeader', 'aggregationColumnHeader--alignLeft', 'aggregationColumnHeader--alignCenter', 'aggregationColumnHeader--alignRight', 'aggregationColumnHeaderLabel', 'autoHeight', 'autosizing', 'booleanCell', 'cell--editable', 'cell--editing', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--withRenderer', 'cell--rangeTop', 'cell--rangeBottom', 'cell--rangeLeft', 'cell--rangeRight', 'cell--pinnedLeft', 'cell--pinnedRight', 'cell--selectionMode', 'cell', 'cellContent', 'cellCheckbox', 'cellEmpty', 'cellSkeleton', 'checkboxInput', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderDropZone', 'columnHeaderTitle', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnGroupHeader', 'columnHeader--filledGroup', 'columnHeader--emptyGroup', 'columnHeader--showColumnBorder', 'columnHeaders', 'columnHeadersInner', 'columnHeadersInner--scrollable', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'columnSeparator', 'columnsManagement', 'columnsManagementRow', 'columnsManagementHeader', 'columnsManagementFooter', 'container--top', 'container--bottom', 'detailPanel', 'detailPanels', 'detailPanelToggleCell', 'detailPanelToggleCell--expanded', 'footerCell', 'panel', 'panelHeader', 'panelWrapper', 'panelContent', 'panelFooter', 'paper', 'editBooleanCell', 'editInputCell', 'filler', 'filler--pinnedLeft', 'filler--pinnedRight', 'filterForm', 'filterFormDeleteIcon', 'filterFormLogicOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'headerFilterRow', 'iconButtonContainer', 'iconSeparator', 'main', 'main--hasPinnedRight', 'menu', 'menuIcon', 'menuIconButton', 'menuOpen', 'menuList', 'overlay', 'overlayWrapper', 'overlayWrapperInner', 'root', 'root--densityStandard', 'root--densityComfortable', 'root--densityCompact', 'root--disableUserSelection', 'row', 'row--editable', 'row--editing', 'row--firstVisible', 'row--lastVisible', 'row--dragging', 'row--dynamicHeight', 'row--detailPanelExpanded', 'rowReorderCellPlaceholder', 'rowCount', 'rowReorderCellContainer', 'rowReorderCell', 'rowReorderCell--draggable', 'scrollArea--left', 'scrollArea--right', 'scrollArea', 'scrollbar', 'scrollbar--vertical', 'scrollbar--horizontal', 'selectedRowCount', 'sortIcon', 'toolbarContainer', 'toolbarFilterList', 'virtualScroller', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'pinnedColumns', 'pinnedColumnHeaders', 'pinnedColumnHeaders--left', 'pinnedColumnHeaders--right', 'withVerticalBorder', 'withBorderColor', 'cell--withRightBorder', 'cell--withLeftBorder', 'columnHeader--withRightBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'groupingCriteriaCell', 'groupingCriteriaCellToggle', 'pinnedRows', 'pinnedRows--top', 'pinnedRows--bottom', 'pinnedRowsRenderZone']);
|
|
@@ -27,12 +27,10 @@ export const GRID_DEFAULT_LOCALE_TEXT = {
|
|
|
27
27
|
toolbarExportCSV: 'Download as CSV',
|
|
28
28
|
toolbarExportPrint: 'Print',
|
|
29
29
|
toolbarExportExcel: 'Download as Excel',
|
|
30
|
-
// Columns
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
columnsPanelShowAllButton: 'Show all',
|
|
35
|
-
columnsPanelHideAllButton: 'Hide all',
|
|
30
|
+
// Columns management text
|
|
31
|
+
columnsManagementSearchTitle: 'Search',
|
|
32
|
+
columnsManagementNoColumns: 'No columns',
|
|
33
|
+
columnsManagementShowHideAllText: 'Show/Hide All',
|
|
36
34
|
// Filter panel text
|
|
37
35
|
filterPanelAddFilter: 'Add filter',
|
|
38
36
|
filterPanelRemoveAll: 'Remove all',
|
|
@@ -69,6 +69,7 @@ function createPublicAPI(privateApiRef) {
|
|
|
69
69
|
return publicApi;
|
|
70
70
|
}
|
|
71
71
|
export function useGridApiInitialization(inputApiRef, props) {
|
|
72
|
+
var _inputApiRef$current;
|
|
72
73
|
const publicApiRef = React.useRef();
|
|
73
74
|
const privateApiRef = React.useRef();
|
|
74
75
|
if (!privateApiRef.current) {
|
|
@@ -99,6 +100,9 @@ export function useGridApiInitialization(inputApiRef, props) {
|
|
|
99
100
|
subscribeEvent,
|
|
100
101
|
publishEvent
|
|
101
102
|
}, 'public');
|
|
103
|
+
if (inputApiRef && !((_inputApiRef$current = inputApiRef.current) != null && _inputApiRef$current.state)) {
|
|
104
|
+
inputApiRef.current = publicApiRef.current;
|
|
105
|
+
}
|
|
102
106
|
React.useImperativeHandle(inputApiRef, () => publicApiRef.current, [publicApiRef]);
|
|
103
107
|
React.useEffect(() => {
|
|
104
108
|
const api = privateApiRef.current;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { useGridRefs } from './useGridRefs';
|
|
2
|
+
import { useGridTheme } from './useGridTheme';
|
|
1
3
|
import { useGridLoggerFactory } from './useGridLoggerFactory';
|
|
2
4
|
import { useGridApiInitialization } from './useGridApiInitialization';
|
|
3
5
|
import { useGridLocaleText } from './useGridLocaleText';
|
|
@@ -10,6 +12,8 @@ import { useGridStateInitialization } from './useGridStateInitialization';
|
|
|
10
12
|
*/
|
|
11
13
|
export const useGridInitialization = (inputApiRef, props) => {
|
|
12
14
|
const privateApiRef = useGridApiInitialization(inputApiRef, props);
|
|
15
|
+
useGridRefs(privateApiRef);
|
|
16
|
+
useGridTheme(privateApiRef);
|
|
13
17
|
useGridLoggerFactory(privateApiRef, props);
|
|
14
18
|
useGridStateInitialization(privateApiRef, props);
|
|
15
19
|
useGridPipeProcessing(privateApiRef);
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export const useGridRefs = apiRef => {
|
|
3
|
+
const rootElementRef = React.useRef(null);
|
|
4
|
+
const mainElementRef = React.useRef(null);
|
|
5
|
+
const virtualScrollerRef = React.useRef(null);
|
|
6
|
+
apiRef.current.register('public', {
|
|
7
|
+
rootElementRef
|
|
8
|
+
});
|
|
9
|
+
apiRef.current.register('private', {
|
|
10
|
+
mainElementRef,
|
|
11
|
+
virtualScrollerRef
|
|
12
|
+
});
|
|
13
|
+
};
|