@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
|
@@ -29,17 +29,19 @@ const createGroupLookup = columnGroupingModel => {
|
|
|
29
29
|
} = node,
|
|
30
30
|
other = (0, _objectWithoutPropertiesLoose2.default)(node, _excluded);
|
|
31
31
|
if (!groupId) {
|
|
32
|
-
throw new Error('MUI: An element of the columnGroupingModel does not have either `field` or `groupId`.');
|
|
32
|
+
throw new Error('MUI X: An element of the columnGroupingModel does not have either `field` or `groupId`.');
|
|
33
33
|
}
|
|
34
|
-
if (
|
|
35
|
-
|
|
34
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
35
|
+
if (!children) {
|
|
36
|
+
console.warn(`MUI X: group groupId=${groupId} has no children.`);
|
|
37
|
+
}
|
|
36
38
|
}
|
|
37
39
|
const groupParam = (0, _extends2.default)({}, other, {
|
|
38
40
|
groupId
|
|
39
41
|
});
|
|
40
42
|
const subTreeLookup = createGroupLookup(children);
|
|
41
43
|
if (subTreeLookup[groupId] !== undefined || groupLookup[groupId] !== undefined) {
|
|
42
|
-
throw new Error(`MUI: The groupId ${groupId} is used multiple times in the columnGroupingModel.`);
|
|
44
|
+
throw new Error(`MUI X: The groupId ${groupId} is used multiple times in the columnGroupingModel.`);
|
|
43
45
|
}
|
|
44
46
|
groupLookup = (0, _extends2.default)({}, groupLookup, subTreeLookup, {
|
|
45
47
|
[groupId]: groupParam
|
|
@@ -48,16 +50,14 @@ const createGroupLookup = columnGroupingModel => {
|
|
|
48
50
|
return (0, _extends2.default)({}, groupLookup);
|
|
49
51
|
};
|
|
50
52
|
const columnGroupsStateInitializer = (state, props, apiRef) => {
|
|
51
|
-
if (!props.
|
|
53
|
+
if (!props.columnGroupingModel) {
|
|
52
54
|
return state;
|
|
53
55
|
}
|
|
54
56
|
const columnFields = (0, _columns.gridColumnFieldsSelector)(apiRef);
|
|
55
57
|
const visibleColumnFields = (0, _columns.gridVisibleColumnFieldsSelector)(apiRef);
|
|
56
58
|
const groupLookup = createGroupLookup(props.columnGroupingModel ?? []);
|
|
57
59
|
const unwrappedGroupingModel = (0, _gridColumnGroupsUtils.unwrapGroupingColumnModel)(props.columnGroupingModel ?? []);
|
|
58
|
-
const columnGroupsHeaderStructure = (0, _gridColumnGroupsUtils.getColumnGroupsHeaderStructure)(columnFields, unwrappedGroupingModel,
|
|
59
|
-
// @ts-expect-error Move this part to `Pro` package
|
|
60
|
-
apiRef.current.state.pinnedColumns ?? {});
|
|
60
|
+
const columnGroupsHeaderStructure = (0, _gridColumnGroupsUtils.getColumnGroupsHeaderStructure)(columnFields, unwrappedGroupingModel, apiRef.current.state.pinnedColumns ?? {});
|
|
61
61
|
const maxDepth = visibleColumnFields.length === 0 ? 0 : Math.max(...visibleColumnFields.map(field => unwrappedGroupingModel[field]?.length ?? 0));
|
|
62
62
|
return (0, _extends2.default)({}, state, {
|
|
63
63
|
columnGrouping: {
|
|
@@ -87,16 +87,14 @@ const useGridColumnGrouping = (apiRef, props) => {
|
|
|
87
87
|
return columnGroupLookup;
|
|
88
88
|
}, [apiRef]);
|
|
89
89
|
const columnGroupingApi = {
|
|
90
|
-
|
|
91
|
-
|
|
90
|
+
getColumnGroupPath,
|
|
91
|
+
getAllGroupDetails
|
|
92
92
|
};
|
|
93
93
|
(0, _useGridApiMethod.useGridApiMethod)(apiRef, columnGroupingApi, 'public');
|
|
94
94
|
const handleColumnIndexChange = React.useCallback(() => {
|
|
95
95
|
const unwrappedGroupingModel = (0, _gridColumnGroupsUtils.unwrapGroupingColumnModel)(props.columnGroupingModel ?? []);
|
|
96
96
|
apiRef.current.setState(state => {
|
|
97
97
|
const orderedFields = state.columns?.orderedFields ?? [];
|
|
98
|
-
|
|
99
|
-
// @ts-expect-error Move this logic to `Pro` package
|
|
100
98
|
const pinnedColumns = state.pinnedColumns ?? {};
|
|
101
99
|
const columnGroupsHeaderStructure = (0, _gridColumnGroupsUtils.getColumnGroupsHeaderStructure)(orderedFields, unwrappedGroupingModel, pinnedColumns);
|
|
102
100
|
return (0, _extends2.default)({}, state, {
|
|
@@ -107,9 +105,6 @@ const useGridColumnGrouping = (apiRef, props) => {
|
|
|
107
105
|
});
|
|
108
106
|
}, [apiRef, props.columnGroupingModel]);
|
|
109
107
|
const updateColumnGroupingState = React.useCallback(columnGroupingModel => {
|
|
110
|
-
if (!props.experimentalFeatures?.columnGrouping) {
|
|
111
|
-
return;
|
|
112
|
-
}
|
|
113
108
|
// @ts-expect-error Move this logic to `Pro` package
|
|
114
109
|
const pinnedColumns = apiRef.current.getPinnedColumns?.() ?? {};
|
|
115
110
|
const columnFields = (0, _columns.gridColumnFieldsSelector)(apiRef);
|
|
@@ -128,7 +123,7 @@ const useGridColumnGrouping = (apiRef, props) => {
|
|
|
128
123
|
}
|
|
129
124
|
});
|
|
130
125
|
});
|
|
131
|
-
}, [apiRef
|
|
126
|
+
}, [apiRef]);
|
|
132
127
|
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'columnIndexChange', handleColumnIndexChange);
|
|
133
128
|
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'columnsChange', () => {
|
|
134
129
|
updateColumnGroupingState(props.columnGroupingModel);
|
|
@@ -4,150 +4,75 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.useGridColumnHeaders = void 0;
|
|
7
|
+
exports.useGridColumnHeaders = exports.GridColumnHeaderRow = void 0;
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var React = _interopRequireWildcard(require("react"));
|
|
10
|
-
var ReactDOM = _interopRequireWildcard(require("react-dom"));
|
|
11
10
|
var _utils = require("@mui/utils");
|
|
12
11
|
var _styles = require("@mui/material/styles");
|
|
13
|
-
var _reselect = require("reselect");
|
|
14
12
|
var _utils2 = require("../../utils");
|
|
15
13
|
var _useGridPrivateApiContext = require("../../utils/useGridPrivateApiContext");
|
|
16
|
-
var _useGridRootProps = require("../../utils/useGridRootProps");
|
|
17
14
|
var _useGridApiEventHandler = require("../../utils/useGridApiEventHandler");
|
|
18
15
|
var _GridColumnHeaderItem = require("../../../components/columnHeaders/GridColumnHeaderItem");
|
|
19
|
-
var
|
|
20
|
-
var _useGridVisibleRows = require("../../utils/useGridVisibleRows");
|
|
21
|
-
var _useGridVirtualScroller = require("../virtualization/useGridVirtualScroller");
|
|
16
|
+
var _dimensions = require("../dimensions");
|
|
22
17
|
var _virtualization = require("../virtualization");
|
|
23
18
|
var _GridColumnGroupHeader = require("../../../components/columnHeaders/GridColumnGroupHeader");
|
|
19
|
+
var _columns = require("../columns");
|
|
20
|
+
var _GridScrollbarFillerCell = require("../../../components/GridScrollbarFillerCell");
|
|
21
|
+
var _gridClasses = require("../../../constants/gridClasses");
|
|
24
22
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
25
23
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
26
24
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
27
|
-
const
|
|
25
|
+
const SpaceFiller = (0, _styles.styled)('div')({
|
|
26
|
+
/* GridRootStyles conflict */
|
|
27
|
+
'&&': {
|
|
28
|
+
padding: 0,
|
|
29
|
+
width: 'calc(var(--DataGrid-width) - var(--DataGrid-columnsTotalWidth))'
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
const GridColumnHeaderRow = exports.GridColumnHeaderRow = (0, _styles.styled)('div', {
|
|
28
33
|
name: 'MuiDataGrid',
|
|
29
34
|
slot: 'ColumnHeaderRow',
|
|
30
35
|
overridesResolver: (props, styles) => styles.columnHeaderRow
|
|
31
|
-
})((
|
|
32
|
-
|
|
36
|
+
})(({
|
|
37
|
+
ownerState: {
|
|
38
|
+
params: {
|
|
39
|
+
position
|
|
40
|
+
} = {},
|
|
41
|
+
leftOverflow = 0
|
|
42
|
+
}
|
|
43
|
+
}) => ({
|
|
44
|
+
display: 'flex',
|
|
45
|
+
height: 'var(--DataGrid-headerHeight)',
|
|
46
|
+
transform: position === undefined ? `translate3d(${leftOverflow !== 0 ? `calc(var(--DataGrid-offsetLeft) - ${leftOverflow}px)` : 'var(--DataGrid-offsetLeft)'}, 0, 0)` : undefined
|
|
33
47
|
}));
|
|
34
|
-
function isUIEvent(event) {
|
|
35
|
-
return !!event.target;
|
|
36
|
-
}
|
|
37
48
|
const useGridColumnHeaders = props => {
|
|
38
49
|
const {
|
|
39
50
|
innerRef: innerRefProp,
|
|
40
|
-
minColumnIndex = 0,
|
|
41
51
|
visibleColumns,
|
|
42
52
|
sortColumnLookup,
|
|
43
53
|
filterColumnLookup,
|
|
44
|
-
columnPositions,
|
|
45
54
|
columnHeaderTabIndexState,
|
|
46
55
|
columnGroupHeaderTabIndexState,
|
|
47
56
|
columnHeaderFocus,
|
|
48
57
|
columnGroupHeaderFocus,
|
|
49
|
-
densityFactor,
|
|
50
58
|
headerGroupingMaxDepth,
|
|
51
59
|
columnMenuState,
|
|
52
60
|
columnVisibility,
|
|
53
61
|
columnGroupsHeaderStructure,
|
|
54
62
|
hasOtherElementInTabSequence
|
|
55
63
|
} = props;
|
|
56
|
-
const theme = (0, _styles.useTheme)();
|
|
57
64
|
const [dragCol, setDragCol] = React.useState('');
|
|
58
65
|
const [resizeCol, setResizeCol] = React.useState('');
|
|
59
66
|
const apiRef = (0, _useGridPrivateApiContext.useGridPrivateApiContext)();
|
|
60
67
|
const hasVirtualization = (0, _utils2.useGridSelector)(apiRef, _virtualization.gridVirtualizationColumnEnabledSelector);
|
|
61
|
-
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
62
68
|
const innerRef = React.useRef(null);
|
|
63
69
|
const handleInnerRef = (0, _utils.unstable_useForkRef)(innerRefProp, innerRef);
|
|
64
|
-
const
|
|
65
|
-
const
|
|
66
|
-
const
|
|
67
|
-
const currentPage = (0, _useGridVisibleRows.useGridVisibleRows)(apiRef, rootProps);
|
|
68
|
-
const totalHeaderHeight = (0, _gridColumnsUtils.getTotalHeaderHeight)(apiRef, rootProps.columnHeaderHeight);
|
|
69
|
-
const headerHeight = Math.floor(rootProps.columnHeaderHeight * densityFactor);
|
|
70
|
-
const setRenderContext = React.useCallback(nextRenderContext => {
|
|
71
|
-
if (renderContext && nextRenderContext && (0, _useGridVirtualScroller.areRenderContextsEqual)(renderContext, nextRenderContext)) {
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
setRenderContextRaw(nextRenderContext);
|
|
75
|
-
}, [renderContext]);
|
|
70
|
+
const dimensions = (0, _utils2.useGridSelector)(apiRef, _dimensions.gridDimensionsSelector);
|
|
71
|
+
const renderContext = (0, _utils2.useGridSelector)(apiRef, _virtualization.gridRenderContextColumnsSelector);
|
|
72
|
+
const visiblePinnedColumns = (0, _utils2.useGridSelector)(apiRef, _columns.gridVisiblePinnedColumnDefinitionsSelector);
|
|
76
73
|
React.useEffect(() => {
|
|
77
74
|
apiRef.current.columnHeadersContainerElementRef.current.scrollLeft = 0;
|
|
78
75
|
}, [apiRef]);
|
|
79
|
-
|
|
80
|
-
// memoize `getFirstColumnIndexToRender`, since it's called on scroll
|
|
81
|
-
const getFirstColumnIndexToRenderRef = React.useRef((0, _reselect.defaultMemoize)(_gridColumnsUtils.getFirstColumnIndexToRender, {
|
|
82
|
-
equalityCheck: (a, b) => ['firstColumnIndex', 'minColumnIndex', 'columnBuffer'].every(key => a[key] === b[key])
|
|
83
|
-
}));
|
|
84
|
-
const updateInnerPosition = React.useCallback(nextRenderContext => {
|
|
85
|
-
const [firstRowToRender, lastRowToRender] = (0, _useGridVirtualScroller.getRenderableIndexes)({
|
|
86
|
-
firstIndex: nextRenderContext.firstRowIndex,
|
|
87
|
-
lastIndex: nextRenderContext.lastRowIndex,
|
|
88
|
-
minFirstIndex: 0,
|
|
89
|
-
maxLastIndex: currentPage.rows.length,
|
|
90
|
-
buffer: rootProps.rowBuffer
|
|
91
|
-
});
|
|
92
|
-
const firstColumnToRender = getFirstColumnIndexToRenderRef.current({
|
|
93
|
-
firstColumnIndex: nextRenderContext.firstColumnIndex,
|
|
94
|
-
minColumnIndex,
|
|
95
|
-
columnBuffer: rootProps.columnBuffer,
|
|
96
|
-
firstRowToRender,
|
|
97
|
-
lastRowToRender,
|
|
98
|
-
apiRef,
|
|
99
|
-
visibleRows: currentPage.rows
|
|
100
|
-
});
|
|
101
|
-
const direction = theme.direction === 'ltr' ? 1 : -1;
|
|
102
|
-
const offset = firstColumnToRender > 0 ? prevScrollLeft.current - direction * columnPositions[firstColumnToRender] : prevScrollLeft.current;
|
|
103
|
-
innerRef.current.style.transform = `translate3d(${-offset}px, 0px, 0px)`;
|
|
104
|
-
}, [columnPositions, minColumnIndex, rootProps.columnBuffer, apiRef, currentPage.rows, rootProps.rowBuffer, theme.direction]);
|
|
105
|
-
React.useLayoutEffect(() => {
|
|
106
|
-
if (renderContext) {
|
|
107
|
-
updateInnerPosition(renderContext);
|
|
108
|
-
}
|
|
109
|
-
}, [renderContext, updateInnerPosition]);
|
|
110
|
-
const handleScroll = React.useCallback(({
|
|
111
|
-
left,
|
|
112
|
-
renderContext: nextRenderContext = null
|
|
113
|
-
}, event) => {
|
|
114
|
-
if (!innerRef.current) {
|
|
115
|
-
return;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
// Ignore vertical scroll.
|
|
119
|
-
// Excepts the first event which sets the previous render context.
|
|
120
|
-
if (prevScrollLeft.current === left && prevRenderContext.current?.firstColumnIndex === nextRenderContext?.firstColumnIndex && prevRenderContext.current?.lastColumnIndex === nextRenderContext?.lastColumnIndex) {
|
|
121
|
-
return;
|
|
122
|
-
}
|
|
123
|
-
prevScrollLeft.current = left;
|
|
124
|
-
|
|
125
|
-
// We can only update the position when we guarantee that the render context has been
|
|
126
|
-
// rendered. This is achieved using ReactDOM.flushSync or when the context doesn't change.
|
|
127
|
-
let canUpdateInnerPosition = false;
|
|
128
|
-
if (nextRenderContext !== prevRenderContext.current || !prevRenderContext.current) {
|
|
129
|
-
// ReactDOM.flushSync cannot be called on `scroll` events fired inside effects
|
|
130
|
-
if (isUIEvent(event)) {
|
|
131
|
-
// To prevent flickering, the inner position can only be updated after the new context has
|
|
132
|
-
// been rendered. ReactDOM.flushSync ensures that the state changes will happen before
|
|
133
|
-
// updating the position.
|
|
134
|
-
ReactDOM.flushSync(() => {
|
|
135
|
-
setRenderContext(nextRenderContext);
|
|
136
|
-
});
|
|
137
|
-
canUpdateInnerPosition = true;
|
|
138
|
-
} else {
|
|
139
|
-
setRenderContext(nextRenderContext);
|
|
140
|
-
}
|
|
141
|
-
prevRenderContext.current = nextRenderContext;
|
|
142
|
-
} else {
|
|
143
|
-
canUpdateInnerPosition = true;
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
// Pass directly the render context to avoid waiting for the next render
|
|
147
|
-
if (nextRenderContext && canUpdateInnerPosition) {
|
|
148
|
-
updateInnerPosition(nextRenderContext);
|
|
149
|
-
}
|
|
150
|
-
}, [updateInnerPosition, setRenderContext]);
|
|
151
76
|
const handleColumnResizeStart = React.useCallback(params => setResizeCol(params.field), []);
|
|
152
77
|
const handleColumnResizeStop = React.useCallback(() => setResizeCol(''), []);
|
|
153
78
|
const handleColumnReorderStart = React.useCallback(params => setDragCol(params.field), []);
|
|
@@ -156,53 +81,41 @@ const useGridColumnHeaders = props => {
|
|
|
156
81
|
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'columnResizeStop', handleColumnResizeStop);
|
|
157
82
|
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'columnHeaderDragStart', handleColumnReorderStart);
|
|
158
83
|
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'columnHeaderDragEnd', handleColumnReorderStop);
|
|
159
|
-
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'scrollPositionChange', handleScroll);
|
|
160
84
|
|
|
161
85
|
// Helper for computation common between getColumnHeaders and getColumnGroupHeaders
|
|
162
86
|
const getColumnsToRender = params => {
|
|
163
87
|
const {
|
|
164
|
-
renderContext:
|
|
165
|
-
minFirstColumn
|
|
88
|
+
renderContext: currentContext = renderContext,
|
|
89
|
+
// TODO: `minFirstColumn` is not used anymore, could be refactored out.
|
|
166
90
|
maxLastColumn = visibleColumns.length
|
|
167
91
|
} = params || {};
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
}
|
|
171
|
-
const [firstRowToRender, lastRowToRender] = (0, _useGridVirtualScroller.getRenderableIndexes)({
|
|
172
|
-
firstIndex: nextRenderContext.firstRowIndex,
|
|
173
|
-
lastIndex: nextRenderContext.lastRowIndex,
|
|
174
|
-
minFirstIndex: 0,
|
|
175
|
-
maxLastIndex: currentPage.rows.length,
|
|
176
|
-
buffer: rootProps.rowBuffer
|
|
177
|
-
});
|
|
178
|
-
const firstColumnToRender = !hasVirtualization ? 0 : getFirstColumnIndexToRenderRef.current({
|
|
179
|
-
firstColumnIndex: nextRenderContext.firstColumnIndex,
|
|
180
|
-
minColumnIndex: minFirstColumn,
|
|
181
|
-
columnBuffer: rootProps.columnBuffer,
|
|
182
|
-
apiRef,
|
|
183
|
-
firstRowToRender,
|
|
184
|
-
lastRowToRender,
|
|
185
|
-
visibleRows: currentPage.rows
|
|
186
|
-
});
|
|
187
|
-
const lastColumnToRender = !hasVirtualization ? maxLastColumn : Math.min(nextRenderContext.lastColumnIndex + rootProps.columnBuffer, maxLastColumn);
|
|
92
|
+
const firstColumnToRender = !hasVirtualization ? 0 : currentContext.firstColumnIndex;
|
|
93
|
+
const lastColumnToRender = !hasVirtualization ? maxLastColumn : currentContext.lastColumnIndex;
|
|
188
94
|
const renderedColumns = visibleColumns.slice(firstColumnToRender, lastColumnToRender);
|
|
189
95
|
return {
|
|
190
96
|
renderedColumns,
|
|
191
97
|
firstColumnToRender,
|
|
192
|
-
lastColumnToRender
|
|
193
|
-
minFirstColumn,
|
|
194
|
-
maxLastColumn
|
|
98
|
+
lastColumnToRender
|
|
195
99
|
};
|
|
196
100
|
};
|
|
101
|
+
const getFiller = (params, borderTop = false) => {
|
|
102
|
+
const isPinnedRight = params?.position === _columns.GridPinnedColumnPosition.RIGHT;
|
|
103
|
+
const hasScrollbarFiller = visiblePinnedColumns.right.length > 0 && isPinnedRight || visiblePinnedColumns.right.length === 0 && params?.position === undefined;
|
|
104
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
|
|
105
|
+
children: [params?.position === undefined && /*#__PURE__*/(0, _jsxRuntime.jsx)(SpaceFiller, {
|
|
106
|
+
className: _gridClasses.gridClasses.columnHeader
|
|
107
|
+
}), hasScrollbarFiller && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridScrollbarFillerCell.GridScrollbarFillerCell, {
|
|
108
|
+
header: true,
|
|
109
|
+
borderTop: borderTop,
|
|
110
|
+
pinnedRight: isPinnedRight
|
|
111
|
+
})]
|
|
112
|
+
});
|
|
113
|
+
};
|
|
197
114
|
const getColumnHeaders = (params, other = {}) => {
|
|
198
|
-
const columnsToRender = getColumnsToRender(params);
|
|
199
|
-
if (columnsToRender == null) {
|
|
200
|
-
return null;
|
|
201
|
-
}
|
|
202
115
|
const {
|
|
203
116
|
renderedColumns,
|
|
204
117
|
firstColumnToRender
|
|
205
|
-
} =
|
|
118
|
+
} = getColumnsToRender(params);
|
|
206
119
|
const columns = [];
|
|
207
120
|
for (let i = 0; i < renderedColumns.length; i += 1) {
|
|
208
121
|
const colDef = renderedColumns[i];
|
|
@@ -214,7 +127,7 @@ const useGridColumnHeaders = props => {
|
|
|
214
127
|
columns.push( /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridColumnHeaderItem.GridColumnHeaderItem, (0, _extends2.default)({}, sortColumnLookup[colDef.field], {
|
|
215
128
|
columnMenuOpen: open,
|
|
216
129
|
filterItemsCounter: filterColumnLookup[colDef.field] && filterColumnLookup[colDef.field].length,
|
|
217
|
-
headerHeight: headerHeight,
|
|
130
|
+
headerHeight: dimensions.headerHeight,
|
|
218
131
|
isDragging: colDef.field === dragCol,
|
|
219
132
|
colDef: colDef,
|
|
220
133
|
colIndex: columnIndex,
|
|
@@ -223,11 +136,13 @@ const useGridColumnHeaders = props => {
|
|
|
223
136
|
tabIndex: tabIndex
|
|
224
137
|
}, other), colDef.field));
|
|
225
138
|
}
|
|
226
|
-
return /*#__PURE__*/(0, _jsxRuntime.
|
|
139
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(GridColumnHeaderRow, {
|
|
227
140
|
role: "row",
|
|
228
141
|
"aria-rowindex": headerGroupingMaxDepth + 1,
|
|
229
|
-
ownerState:
|
|
230
|
-
|
|
142
|
+
ownerState: {
|
|
143
|
+
params
|
|
144
|
+
},
|
|
145
|
+
children: [columns, getFiller(params)]
|
|
231
146
|
});
|
|
232
147
|
};
|
|
233
148
|
const getColumnGroupHeaders = params => {
|
|
@@ -235,7 +150,7 @@ const useGridColumnHeaders = props => {
|
|
|
235
150
|
return null;
|
|
236
151
|
}
|
|
237
152
|
const columnsToRender = getColumnsToRender(params);
|
|
238
|
-
if (columnsToRender
|
|
153
|
+
if (columnsToRender.renderedColumns.length === 0) {
|
|
239
154
|
return null;
|
|
240
155
|
}
|
|
241
156
|
const {
|
|
@@ -247,13 +162,13 @@ const useGridColumnHeaders = props => {
|
|
|
247
162
|
for (let depth = 0; depth < headerGroupingMaxDepth; depth += 1) {
|
|
248
163
|
const rowStructure = columnGroupsHeaderStructure[depth];
|
|
249
164
|
const firstColumnFieldToRender = visibleColumns[firstColumnToRender].field;
|
|
250
|
-
const firstGroupToRender = apiRef.current.
|
|
165
|
+
const firstGroupToRender = apiRef.current.getColumnGroupPath(firstColumnFieldToRender)[depth] ?? null;
|
|
251
166
|
const firstGroupIndex = rowStructure.findIndex(({
|
|
252
167
|
groupId,
|
|
253
168
|
columnFields
|
|
254
169
|
}) => groupId === firstGroupToRender && columnFields.includes(firstColumnFieldToRender));
|
|
255
170
|
const lastColumnFieldToRender = visibleColumns[lastColumnToRender - 1].field;
|
|
256
|
-
const lastGroupToRender = apiRef.current.
|
|
171
|
+
const lastGroupToRender = apiRef.current.getColumnGroupPath(lastColumnFieldToRender)[depth] ?? null;
|
|
257
172
|
const lastGroupIndex = rowStructure.findIndex(({
|
|
258
173
|
groupId,
|
|
259
174
|
columnFields
|
|
@@ -293,15 +208,14 @@ const useGridColumnHeaders = props => {
|
|
|
293
208
|
});
|
|
294
209
|
}
|
|
295
210
|
headerToRender.forEach((depthInfo, depthIndex) => {
|
|
296
|
-
columns.push( /*#__PURE__*/(0, _jsxRuntime.
|
|
297
|
-
style: {
|
|
298
|
-
height: `${headerHeight}px`,
|
|
299
|
-
transform: `translateX(-${depthInfo.leftOverflow}px)`
|
|
300
|
-
},
|
|
211
|
+
columns.push( /*#__PURE__*/(0, _jsxRuntime.jsxs)(GridColumnHeaderRow, {
|
|
301
212
|
role: "row",
|
|
302
213
|
"aria-rowindex": depthIndex + 1,
|
|
303
|
-
ownerState:
|
|
304
|
-
|
|
214
|
+
ownerState: {
|
|
215
|
+
params,
|
|
216
|
+
leftOverflow: depthInfo.leftOverflow
|
|
217
|
+
},
|
|
218
|
+
children: [depthInfo.elements.map(({
|
|
305
219
|
groupId,
|
|
306
220
|
width,
|
|
307
221
|
fields,
|
|
@@ -317,34 +231,26 @@ const useGridColumnHeaders = props => {
|
|
|
317
231
|
depth: depthIndex,
|
|
318
232
|
isLastColumn: colIndex === visibleColumns.length - fields.length,
|
|
319
233
|
maxDepth: headerToRender.length,
|
|
320
|
-
height: headerHeight,
|
|
234
|
+
height: dimensions.headerHeight,
|
|
321
235
|
hasFocus: hasFocus,
|
|
322
236
|
tabIndex: tabIndex
|
|
323
237
|
}, groupIndex);
|
|
324
|
-
})
|
|
238
|
+
}), getFiller(params)]
|
|
325
239
|
}, depthIndex));
|
|
326
240
|
});
|
|
327
241
|
return columns;
|
|
328
242
|
};
|
|
329
|
-
const rootStyle = {
|
|
330
|
-
minHeight: totalHeaderHeight,
|
|
331
|
-
maxHeight: totalHeaderHeight,
|
|
332
|
-
lineHeight: `${headerHeight}px`
|
|
333
|
-
};
|
|
334
243
|
return {
|
|
335
244
|
renderContext,
|
|
245
|
+
getFiller,
|
|
336
246
|
getColumnHeaders,
|
|
337
247
|
getColumnsToRender,
|
|
338
248
|
getColumnGroupHeaders,
|
|
339
249
|
isDragging: !!dragCol,
|
|
340
|
-
getRootProps: (other = {}) => (0, _extends2.default)({
|
|
341
|
-
style: rootStyle
|
|
342
|
-
}, other),
|
|
343
250
|
getInnerProps: () => ({
|
|
344
251
|
ref: handleInnerRef,
|
|
345
252
|
role: 'rowgroup'
|
|
346
|
-
})
|
|
347
|
-
headerHeight
|
|
253
|
+
})
|
|
348
254
|
};
|
|
349
255
|
};
|
|
350
256
|
exports.useGridColumnHeaders = useGridColumnHeaders;
|
|
@@ -30,19 +30,25 @@ const useGridColumnMenu = apiRef => {
|
|
|
30
30
|
* API METHODS
|
|
31
31
|
*/
|
|
32
32
|
const showColumnMenu = React.useCallback(field => {
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
33
|
+
const columnMenuState = (0, _columnMenuSelector.gridColumnMenuSelector)(apiRef.current.state);
|
|
34
|
+
const newState = {
|
|
35
|
+
open: true,
|
|
36
|
+
field
|
|
37
|
+
};
|
|
38
|
+
const shouldUpdate = newState.open !== columnMenuState.open || newState.field !== columnMenuState.field;
|
|
39
|
+
if (shouldUpdate) {
|
|
40
|
+
apiRef.current.setState(state => {
|
|
41
|
+
if (state.columnMenu.open && state.columnMenu.field === field) {
|
|
42
|
+
return state;
|
|
42
43
|
}
|
|
44
|
+
logger.debug('Opening Column Menu');
|
|
45
|
+
return (0, _extends2.default)({}, state, {
|
|
46
|
+
columnMenu: {
|
|
47
|
+
open: true,
|
|
48
|
+
field
|
|
49
|
+
}
|
|
50
|
+
});
|
|
43
51
|
});
|
|
44
|
-
});
|
|
45
|
-
if (shouldUpdate) {
|
|
46
52
|
apiRef.current.hidePreferences();
|
|
47
53
|
apiRef.current.forceUpdate();
|
|
48
54
|
}
|
|
@@ -74,19 +80,18 @@ const useGridColumnMenu = apiRef => {
|
|
|
74
80
|
}
|
|
75
81
|
apiRef.current.setColumnHeaderFocus(fieldToFocus);
|
|
76
82
|
}
|
|
77
|
-
const
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
return (0, _extends2.default)({}, state, {
|
|
83
|
-
columnMenu: (0, _extends2.default)({}, state.columnMenu, {
|
|
84
|
-
open: false,
|
|
85
|
-
field: undefined
|
|
86
|
-
})
|
|
87
|
-
});
|
|
88
|
-
});
|
|
83
|
+
const newState = {
|
|
84
|
+
open: false,
|
|
85
|
+
field: undefined
|
|
86
|
+
};
|
|
87
|
+
const shouldUpdate = newState.open !== columnMenuState.open || newState.field !== columnMenuState.field;
|
|
89
88
|
if (shouldUpdate) {
|
|
89
|
+
apiRef.current.setState(state => {
|
|
90
|
+
logger.debug('Hiding Column Menu');
|
|
91
|
+
return (0, _extends2.default)({}, state, {
|
|
92
|
+
columnMenu: newState
|
|
93
|
+
});
|
|
94
|
+
});
|
|
90
95
|
apiRef.current.forceUpdate();
|
|
91
96
|
}
|
|
92
97
|
}, [apiRef, logger]);
|
|
@@ -2,4 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
|
-
});
|
|
5
|
+
});
|
|
6
|
+
exports.GridPinnedColumnPosition = exports.EMPTY_PINNED_COLUMN_FIELDS = void 0;
|
|
7
|
+
let GridPinnedColumnPosition = exports.GridPinnedColumnPosition = /*#__PURE__*/function (GridPinnedColumnPosition) {
|
|
8
|
+
GridPinnedColumnPosition["LEFT"] = "left";
|
|
9
|
+
GridPinnedColumnPosition["RIGHT"] = "right";
|
|
10
|
+
return GridPinnedColumnPosition;
|
|
11
|
+
}({});
|
|
12
|
+
const EMPTY_PINNED_COLUMN_FIELDS = exports.EMPTY_PINNED_COLUMN_FIELDS = {
|
|
13
|
+
left: [],
|
|
14
|
+
right: []
|
|
15
|
+
};
|
|
@@ -3,8 +3,10 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.gridVisibleColumnFieldsSelector = exports.gridVisibleColumnDefinitionsSelector = exports.gridFilterableColumnLookupSelector = exports.gridFilterableColumnDefinitionsSelector = exports.gridColumnsTotalWidthSelector = exports.gridColumnsStateSelector = exports.gridColumnVisibilityModelSelector = exports.gridColumnPositionsSelector = exports.gridColumnLookupSelector = exports.gridColumnFieldsSelector = exports.gridColumnDefinitionsSelector = void 0;
|
|
6
|
+
exports.gridVisiblePinnedColumnDefinitionsSelector = exports.gridVisibleColumnFieldsSelector = exports.gridVisibleColumnDefinitionsSelector = exports.gridPinnedColumnsSelector = exports.gridFilterableColumnLookupSelector = exports.gridFilterableColumnDefinitionsSelector = exports.gridColumnsTotalWidthSelector = exports.gridColumnsStateSelector = exports.gridColumnVisibilityModelSelector = exports.gridColumnPositionsSelector = exports.gridColumnLookupSelector = exports.gridColumnFieldsSelector = exports.gridColumnDefinitionsSelector = void 0;
|
|
7
7
|
var _createSelector = require("../../../utils/createSelector");
|
|
8
|
+
var _gridColumnsInterfaces = require("./gridColumnsInterfaces");
|
|
9
|
+
var _gridCoreSelector = require("../../core/gridCoreSelector");
|
|
8
10
|
/**
|
|
9
11
|
* Get the columns state
|
|
10
12
|
* @category Columns
|
|
@@ -49,6 +51,55 @@ const gridVisibleColumnDefinitionsSelector = exports.gridVisibleColumnDefinition
|
|
|
49
51
|
*/
|
|
50
52
|
const gridVisibleColumnFieldsSelector = exports.gridVisibleColumnFieldsSelector = (0, _createSelector.createSelectorMemoized)(gridVisibleColumnDefinitionsSelector, visibleColumns => visibleColumns.map(column => column.field));
|
|
51
53
|
|
|
54
|
+
/**
|
|
55
|
+
* Get the visible pinned columns model.
|
|
56
|
+
* @category Visible Columns
|
|
57
|
+
*/
|
|
58
|
+
const gridPinnedColumnsSelector = state => state.pinnedColumns;
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Get the visible pinned columns.
|
|
62
|
+
* @category Visible Columns
|
|
63
|
+
*/
|
|
64
|
+
exports.gridPinnedColumnsSelector = gridPinnedColumnsSelector;
|
|
65
|
+
const gridVisiblePinnedColumnDefinitionsSelector = exports.gridVisiblePinnedColumnDefinitionsSelector = (0, _createSelector.createSelectorMemoized)(gridColumnsStateSelector, gridPinnedColumnsSelector, gridVisibleColumnFieldsSelector, _gridCoreSelector.gridThemeSelector, (columnsState, model, visibleColumnFields, theme) => {
|
|
66
|
+
const visiblePinnedFields = filterVisibleColumns(model, visibleColumnFields, theme.direction === 'rtl');
|
|
67
|
+
const visiblePinnedColumns = {
|
|
68
|
+
left: visiblePinnedFields.left.map(field => columnsState.lookup[field]),
|
|
69
|
+
right: visiblePinnedFields.right.map(field => columnsState.lookup[field])
|
|
70
|
+
};
|
|
71
|
+
return visiblePinnedColumns;
|
|
72
|
+
});
|
|
73
|
+
function filterVisibleColumns(pinnedColumns, columns, invert) {
|
|
74
|
+
if (!Array.isArray(pinnedColumns.left) && !Array.isArray(pinnedColumns.right)) {
|
|
75
|
+
return _gridColumnsInterfaces.EMPTY_PINNED_COLUMN_FIELDS;
|
|
76
|
+
}
|
|
77
|
+
if (pinnedColumns.left?.length === 0 && pinnedColumns.right?.length === 0) {
|
|
78
|
+
return _gridColumnsInterfaces.EMPTY_PINNED_COLUMN_FIELDS;
|
|
79
|
+
}
|
|
80
|
+
const filter = (newPinnedColumns, remainingColumns) => {
|
|
81
|
+
if (!Array.isArray(newPinnedColumns)) {
|
|
82
|
+
return [];
|
|
83
|
+
}
|
|
84
|
+
return newPinnedColumns.filter(field => remainingColumns.includes(field));
|
|
85
|
+
};
|
|
86
|
+
const leftPinnedColumns = filter(pinnedColumns.left, columns);
|
|
87
|
+
const columnsWithoutLeftPinnedColumns = columns.filter(
|
|
88
|
+
// Filter out from the remaining columns those columns already pinned to the left
|
|
89
|
+
field => !leftPinnedColumns.includes(field));
|
|
90
|
+
const rightPinnedColumns = filter(pinnedColumns.right, columnsWithoutLeftPinnedColumns);
|
|
91
|
+
if (invert) {
|
|
92
|
+
return {
|
|
93
|
+
left: rightPinnedColumns,
|
|
94
|
+
right: leftPinnedColumns
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
return {
|
|
98
|
+
left: leftPinnedColumns,
|
|
99
|
+
right: rightPinnedColumns
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
|
|
52
103
|
/**
|
|
53
104
|
* Get the left position in pixel of each visible columns relative to the left of the first column.
|
|
54
105
|
* @category Visible Columns
|
|
@@ -10,7 +10,7 @@ exports.createColumnsState = void 0;
|
|
|
10
10
|
exports.getFirstColumnIndexToRender = getFirstColumnIndexToRender;
|
|
11
11
|
exports.getFirstNonSpannedColumnToRender = getFirstNonSpannedColumnToRender;
|
|
12
12
|
exports.getTotalHeaderHeight = getTotalHeaderHeight;
|
|
13
|
-
exports.
|
|
13
|
+
exports.hydrateColumnsWidth = void 0;
|
|
14
14
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
15
15
|
var _colDef = require("../../../colDef");
|
|
16
16
|
var _gridColumnsSelector = require("./gridColumnsSelector");
|
|
@@ -18,6 +18,8 @@ var _utils = require("../../../utils/utils");
|
|
|
18
18
|
var _densitySelector = require("../density/densitySelector");
|
|
19
19
|
var _gridColumnGroupsSelector = require("../columnGrouping/gridColumnGroupsSelector");
|
|
20
20
|
const COLUMNS_DIMENSION_PROPERTIES = exports.COLUMNS_DIMENSION_PROPERTIES = ['maxWidth', 'minWidth', 'width', 'flex'];
|
|
21
|
+
const COLUMN_TYPES = (0, _colDef.getGridDefaultColumnTypes)();
|
|
22
|
+
|
|
21
23
|
/**
|
|
22
24
|
* Computes width for flex columns.
|
|
23
25
|
* Based on CSS Flexbox specification:
|
|
@@ -211,10 +213,10 @@ const applyInitialState = (columnsState, initialState) => {
|
|
|
211
213
|
return newColumnsState;
|
|
212
214
|
};
|
|
213
215
|
exports.applyInitialState = applyInitialState;
|
|
214
|
-
function getDefaultColTypeDef(
|
|
215
|
-
let colDef =
|
|
216
|
-
if (type &&
|
|
217
|
-
colDef =
|
|
216
|
+
function getDefaultColTypeDef(type) {
|
|
217
|
+
let colDef = COLUMN_TYPES[_colDef.DEFAULT_GRID_COL_TYPE_KEY];
|
|
218
|
+
if (type && COLUMN_TYPES[type]) {
|
|
219
|
+
colDef = COLUMN_TYPES[type];
|
|
218
220
|
}
|
|
219
221
|
return colDef;
|
|
220
222
|
}
|
|
@@ -222,7 +224,6 @@ const createColumnsState = ({
|
|
|
222
224
|
apiRef,
|
|
223
225
|
columnsToUpsert,
|
|
224
226
|
initialState,
|
|
225
|
-
columnTypes,
|
|
226
227
|
columnVisibilityModel = (0, _gridColumnsSelector.gridColumnVisibilityModelSelector)(apiRef),
|
|
227
228
|
keepOnlyColumnsToUpsert = false
|
|
228
229
|
}) => {
|
|
@@ -258,7 +259,7 @@ const createColumnsState = ({
|
|
|
258
259
|
columnsToKeep[field] = true;
|
|
259
260
|
let existingState = columnsState.lookup[field];
|
|
260
261
|
if (existingState == null) {
|
|
261
|
-
existingState = (0, _extends2.default)({}, getDefaultColTypeDef(
|
|
262
|
+
existingState = (0, _extends2.default)({}, getDefaultColTypeDef(newColumn.type), {
|
|
262
263
|
field,
|
|
263
264
|
hasBeenResized: false
|
|
264
265
|
});
|
|
@@ -269,7 +270,7 @@ const createColumnsState = ({
|
|
|
269
270
|
|
|
270
271
|
// If the column type has changed - merge the existing state with the default column type definition
|
|
271
272
|
if (existingState && existingState.type !== newColumn.type) {
|
|
272
|
-
existingState = (0, _extends2.default)({}, getDefaultColTypeDef(
|
|
273
|
+
existingState = (0, _extends2.default)({}, getDefaultColTypeDef(newColumn.type), {
|
|
273
274
|
field
|
|
274
275
|
});
|
|
275
276
|
}
|
|
@@ -295,13 +296,9 @@ const createColumnsState = ({
|
|
|
295
296
|
}
|
|
296
297
|
const columnsStateWithPreProcessing = apiRef.current.unstable_applyPipeProcessors('hydrateColumns', columnsState);
|
|
297
298
|
const columnsStateWithPortableColumns = applyInitialState(columnsStateWithPreProcessing, initialState);
|
|
298
|
-
return hydrateColumnsWidth(columnsStateWithPortableColumns, apiRef.current.getRootDimensions?.()
|
|
299
|
+
return hydrateColumnsWidth(columnsStateWithPortableColumns, apiRef.current.getRootDimensions?.().viewportInnerSize.width ?? 0);
|
|
299
300
|
};
|
|
300
301
|
exports.createColumnsState = createColumnsState;
|
|
301
|
-
const mergeColumnsState = columnsState => state => (0, _extends2.default)({}, state, {
|
|
302
|
-
columns: columnsState
|
|
303
|
-
});
|
|
304
|
-
exports.mergeColumnsState = mergeColumnsState;
|
|
305
302
|
function getFirstNonSpannedColumnToRender({
|
|
306
303
|
firstColumnToRender,
|
|
307
304
|
apiRef,
|