@mui/x-data-grid 7.0.0-alpha.8 → 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 +379 -2
- package/DataGrid/DataGrid.js +6 -6
- package/DataGrid/useDataGridComponent.js +2 -1
- package/DataGrid/useDataGridProps.js +1 -0
- package/README.md +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/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/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/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.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 +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/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 +4 -4
- 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 +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/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/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 +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 +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/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 +4 -4
- 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/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/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 +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 +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/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/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 +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 +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/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 +4 -4
- 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/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/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 +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/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/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 +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 +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/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 +4 -4
- 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/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/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
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,344 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## 7.0.0-alpha.9
|
|
7
|
+
|
|
8
|
+
_Jan 19, 2024_
|
|
9
|
+
|
|
10
|
+
We'd like to offer a big thanks to the 11 contributors who made this release possible. Here are some highlights ✨:
|
|
11
|
+
|
|
12
|
+
- 🎁 The Data Grid headers have been refactored to bring immense improvements to scrolling, state management, and overall performance of the grid.
|
|
13
|
+
- ⚙️ The Data Grid disabled column-specific features like filtering, sorting, grouping, etc. could now be accessed programmatically. See the related [docs](https://next.mui.com/x/react-data-grid/api-object/#access-the-disabled-column-features) section.
|
|
14
|
+
- 🚀 Uplift the `SimpleTreeView` customization examples (#11424) @noraleonte
|
|
15
|
+
- 🌍 Add Croatian (hr-HR), Portuguese (pt-PT), and Chinese (Hong Kong) (zh-HK) locales (#11668) on the Data Grid @BCaspari
|
|
16
|
+
- 🐞 Bugfixes
|
|
17
|
+
- 💔 Bump `@mui/material` peer dependency for all packages (#11692) @LukasTy
|
|
18
|
+
The minimum required version of `@mui/material` is now `5.15.0`.
|
|
19
|
+
|
|
20
|
+
### Data Grid
|
|
21
|
+
|
|
22
|
+
#### Breaking changes
|
|
23
|
+
|
|
24
|
+
- The `ariaV7` experimental flag has been removed and the Data Grid now uses the improved accessibility implementation by default.
|
|
25
|
+
If you were using the `ariaV7` flag, you can remove it from the `experimentalFeatures` prop:
|
|
26
|
+
|
|
27
|
+
```diff
|
|
28
|
+
-<DataGrid experimentalFeatures={{ ariaV7: true }} />
|
|
29
|
+
+<DataGrid />
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
The most notable changes that might affect your application or tests are:
|
|
33
|
+
|
|
34
|
+
- The `role="grid"` attribute along with related ARIA attributes are now applied to the inner `div` element instead of the root `div` element:
|
|
35
|
+
|
|
36
|
+
```diff
|
|
37
|
+
-<div class="MuiDataGrid-root" role="grid" aria-colcount="5" aria-rowcount="101" aria-multiselectable="false">
|
|
38
|
+
+<div class="MuiDataGrid-root">
|
|
39
|
+
<div class="MuiDataGrid-toolbarContainer"></div>
|
|
40
|
+
- <div class="MuiDataGrid-main"></div>
|
|
41
|
+
+ <div class="MuiDataGrid-main" role="grid" aria-colcount="5" aria-rowcount="101" aria-multiselectable="false"></div>
|
|
42
|
+
<div class="MuiDataGrid-footerContainer"></div>
|
|
43
|
+
</div>
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
- When the [Tree data](https://next.mui.com/x/react-data-grid/tree-data/) feature is used, the grid role is now `role="treegrid"` instead of `role="grid"`.
|
|
47
|
+
- The Data Grid cells now have `role="gridcell"` instead of `role="cell"`.
|
|
48
|
+
|
|
49
|
+
- The buttons in toolbar composable components `GridToolbarColumnsButton`, `GridToolbarFilterButton`, `GridToolbarDensity`, and `GridToolbarExport` are now wrapped with a tooltip component and have a consistent interface. To override some props corresponding to the toolbar buttons or their corresponding tooltips, you can use the `slotProps` prop. Following is an example diff. See [Toolbar section](https://next.mui.com/x/react-data-grid/components/#toolbar) for more details.
|
|
50
|
+
|
|
51
|
+
```diff
|
|
52
|
+
function CustomToolbar() {
|
|
53
|
+
return (
|
|
54
|
+
<GridToolbarContainer>
|
|
55
|
+
<GridToolbarColumnsButton />
|
|
56
|
+
<GridToolbarFilterButton
|
|
57
|
+
- title="Custom filter" // 🛑 This was previously forwarded to the tooltip component
|
|
58
|
+
+ slotProps={{ tooltip: { title: 'Custom filter' } }} // ✅ This is the correct way now
|
|
59
|
+
/>
|
|
60
|
+
<GridToolbarDensitySelector
|
|
61
|
+
- variant="outlined" // 🛑 This was previously forwarded to the button component
|
|
62
|
+
+ slotProps={{ button: { variant: 'outlined' } }} // ✅ This is the correct way now
|
|
63
|
+
/>
|
|
64
|
+
</GridToolbarContainer>
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
- Column grouping is now enabled by default. The flag `columnGrouping` is no longer needed to be passed to the `experimentalFeatures` prop to enable it.
|
|
70
|
+
|
|
71
|
+
```diff
|
|
72
|
+
-<DataGrid experimentalFeatures={{ columnGrouping: true }} />
|
|
73
|
+
+<DataGrid />
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
- The column grouping API methods `getColumnGroupPath` and `getAllGroupDetails` are no longer prefixed with `unstable_`.
|
|
77
|
+
|
|
78
|
+
- The column grouping selectors `gridFocusColumnGroupHeaderSelector` and `gridTabIndexColumnGroupHeaderSelector` are no longer prefixed with `unstable_`.
|
|
79
|
+
|
|
80
|
+
- The disabled column specific features like `hiding`, `sorting`, `filtering`, `pinning`, `row grouping`, etc could now be controlled programmatically using `initialState`, respective controlled models, or the [API object](https://next.mui.com/x/react-data-grid/api-object/). See the related [docs](https://next.mui.com/x/react-data-grid/api-object/#access-the-disabled-column-features) section.
|
|
81
|
+
|
|
82
|
+
#### `@mui/x-data-grid@7.0.0-alpha.9`
|
|
83
|
+
|
|
84
|
+
- [DataGrid] Allow to filter non-filterable columns programmatically (#11538) @MBilalShafi
|
|
85
|
+
- [DataGrid] Allow to programmatically sort unsortable columns (#11512) @MBilalShafi
|
|
86
|
+
- [DataGrid] Fix incorrect default value for `filterModel.logicOperator` (#11673) @MBilalShafi
|
|
87
|
+
- [DataGrid] Make `column grouping` feature stable (#11698) @MBilalShafi
|
|
88
|
+
- [DataGrid] Remove the `ariaV7` experimental flag (#11428) @cherniavskii
|
|
89
|
+
- [DataGrid] Start the FAQ page (#11686) @MBilalShafi
|
|
90
|
+
- [DataGrid] Sticky headers (#10059) @romgrk
|
|
91
|
+
- [DataGrid] Wrap toolbar buttons with tooltip (#11357) @MBilalShafi
|
|
92
|
+
- [l10n] Add Croatian (hr-HR), Portuguese (pt-PT), and Chinese (Hong Kong) (zh-HK) locales (#11668) @BCaspari
|
|
93
|
+
|
|
94
|
+
#### `@mui/x-data-grid-pro@7.0.0-alpha.9` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
95
|
+
|
|
96
|
+
Same changes as in `@mui/x-data-grid@7.0.0-alpha.9`, plus:
|
|
97
|
+
|
|
98
|
+
- [DataGridPro] Allow non-pinnable columns to be pinned programmatically (#11680) @MBilalShafi
|
|
99
|
+
|
|
100
|
+
#### `@mui/x-data-grid-premium@7.0.0-alpha.9` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
101
|
+
|
|
102
|
+
Same changes as in `@mui/x-data-grid-pro@7.0.0-alpha.9`, plus:
|
|
103
|
+
|
|
104
|
+
- [DataGridPremium] Allow aggregation to be applied for non-aggregable columns (#11574) @MBilalShafi
|
|
105
|
+
- [DataGridPremium] Allow programmatically grouping non-groupable columns (#11539) @MBilalShafi
|
|
106
|
+
|
|
107
|
+
### Date Pickers
|
|
108
|
+
|
|
109
|
+
#### Breaking changes
|
|
110
|
+
|
|
111
|
+
- The `locales` export has been removed from the root of the packages.
|
|
112
|
+
If you were importing locales from the root, be sure to update it:
|
|
113
|
+
|
|
114
|
+
```diff
|
|
115
|
+
-import { frFR } from '@mui/x-date-pickers';
|
|
116
|
+
+import { frFR } from '@mui/x-date-pickers/locales';
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
#### `@mui/x-date-pickers@7.0.0-alpha.9`
|
|
120
|
+
|
|
121
|
+
- [fields] Make `PickersTextField` and its dependencies public (#11581) @flaviendelangle
|
|
122
|
+
- [fields] Support farsi digits (#11639) @flaviendelangle
|
|
123
|
+
- [pickers] Fix AdapterLuxon `getWeekNumber` behavior (#11697) @LukasTy
|
|
124
|
+
- [pickers] Stop root exporting `locales` (#11612) @LukasTy
|
|
125
|
+
|
|
126
|
+
#### `@mui/x-date-pickers-pro@7.0.0-alpha.9` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
127
|
+
|
|
128
|
+
Same changes as in `@mui/x-date-pickers@7.0.0-alpha.9`.
|
|
129
|
+
|
|
130
|
+
### Charts / `@mui/x-charts@7.0.0-alpha.9`
|
|
131
|
+
|
|
132
|
+
- [charts] Do not propagate `innerRadius` and `outerRadius` to the DOM (#11689) @alexfauquette
|
|
133
|
+
- [charts] Fix default `stackOffset` for `LineChart` (#11647) @alexfauquette
|
|
134
|
+
- [charts] Remove a TS ignore (#11688) @alexfauquette
|
|
135
|
+
|
|
136
|
+
### Tree View
|
|
137
|
+
|
|
138
|
+
#### Breaking changes
|
|
139
|
+
|
|
140
|
+
- The `expandIcon` / `defaultExpandIcon` props, used to expand the children of a node (rendered when it is collapsed),
|
|
141
|
+
is now defined as a slot both on the Tree View and the Tree Item components.
|
|
142
|
+
|
|
143
|
+
If you were using the `ChevronRight` icon from `@mui/icons-material`,
|
|
144
|
+
you can stop passing it to your component because it is now the default value:
|
|
145
|
+
|
|
146
|
+
```diff
|
|
147
|
+
-import ChevronRightIcon from '@mui/icons-material/ChevronRight';
|
|
148
|
+
|
|
149
|
+
<SimpleTreeView
|
|
150
|
+
- defaultExpandIcon={<ChevronRightIcon />}
|
|
151
|
+
>
|
|
152
|
+
{items}
|
|
153
|
+
</SimpleTreeView>
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
If you were passing another icon to your Tree View component,
|
|
157
|
+
you need to use the new `expandIcon` slot on this component:
|
|
158
|
+
|
|
159
|
+
```diff
|
|
160
|
+
<SimpleTreeView
|
|
161
|
+
- defaultExpandIcon={<MyCustomExpandIcon />}
|
|
162
|
+
+ slots={{ expandIcon: MyCustomExpandIcon }}
|
|
163
|
+
>
|
|
164
|
+
{items}
|
|
165
|
+
</SimpleTreeView>
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
If you were passing another icon to your Tree Item component,
|
|
169
|
+
you need to use the new `expandIcon` slot on this component:
|
|
170
|
+
|
|
171
|
+
```diff
|
|
172
|
+
<SimpleTreeView>
|
|
173
|
+
<TreeItem
|
|
174
|
+
nodeId="1"
|
|
175
|
+
label="Node 1"
|
|
176
|
+
- expandIcon={<MyCustomExpandIcon />}
|
|
177
|
+
+ slots={{ expandIcon: MyCustomExpandIcon }}
|
|
178
|
+
/>
|
|
179
|
+
</SimpleTreeView>
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
- The `collapseIcon` / `defaultCollapseIcon` props, used to collapse the children of a node (rendered when it is expanded),
|
|
183
|
+
is now defined as a slot both on the Tree View and the Tree Item components.
|
|
184
|
+
|
|
185
|
+
If you were using the `ExpandMore` icon from `@mui/icons-material`,
|
|
186
|
+
you can stop passing it to your component because it is now the default value:
|
|
187
|
+
|
|
188
|
+
```diff
|
|
189
|
+
- import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
|
|
190
|
+
|
|
191
|
+
<SimpleTreeView
|
|
192
|
+
- defaultCollapseIcon={<ExpandMoreIcon />}
|
|
193
|
+
>
|
|
194
|
+
{items}
|
|
195
|
+
</SimpleTreeView>
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
If you were passing another icon to your Tree View component,
|
|
199
|
+
you need to use the new `collapseIcon` slot on this component:
|
|
200
|
+
|
|
201
|
+
```diff
|
|
202
|
+
<SimpleTreeView
|
|
203
|
+
- defaultCollapseIcon={<MyCustomCollapseIcon />}
|
|
204
|
+
+ slots={{ collapseIcon: MyCustomCollapseIcon }}
|
|
205
|
+
>
|
|
206
|
+
{items}
|
|
207
|
+
</SimpleTreeView>
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
If you were passing another icon to your Tree Item component,
|
|
211
|
+
you need to use the new `collapseIcon` slot on this component:
|
|
212
|
+
|
|
213
|
+
```diff
|
|
214
|
+
<SimpleTreeView>
|
|
215
|
+
<TreeItem
|
|
216
|
+
nodeId="1"
|
|
217
|
+
label="Node 1"
|
|
218
|
+
- collapseIcon={<MyCustomCollapseIcon />}
|
|
219
|
+
+ slots={{ collapseIcon: MyCustomCollapseIcon }}
|
|
220
|
+
/>
|
|
221
|
+
</SimpleTreeView>
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
- The `useTreeItem` hook has been renamed `useTreeItemState`.
|
|
225
|
+
This will help create a new headless version of the `TreeItem` component based on a future `useTreeItem` hook.
|
|
226
|
+
|
|
227
|
+
```diff
|
|
228
|
+
-import { TreeItem, useTreeItem } from '@mui/x-tree-view/TreeItem';
|
|
229
|
+
+import { TreeItem, useTreeItemState } from '@mui/x-tree-view/TreeItem';
|
|
230
|
+
|
|
231
|
+
const CustomContent = React.forwardRef((props, ref) => {
|
|
232
|
+
- const { disabled } = useTreeItem(props.nodeId);
|
|
233
|
+
+ const { disabled } = useTreeItemState(props.nodeId);
|
|
234
|
+
|
|
235
|
+
// Render some UI
|
|
236
|
+
});
|
|
237
|
+
|
|
238
|
+
function App() {
|
|
239
|
+
return (
|
|
240
|
+
<SimpleTreeView>
|
|
241
|
+
<TreeItem ContentComponent={CustomContent} />
|
|
242
|
+
</SimpleTreeView>
|
|
243
|
+
)
|
|
244
|
+
}
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
- The `parentIcon` prop has been removed from the Tree View components.
|
|
248
|
+
|
|
249
|
+
If you were passing an icon to your Tree View component,
|
|
250
|
+
you can achieve the same behavior
|
|
251
|
+
by passing the same icon to both the `collapseIcon` and the `expandIcon` slots on this component:
|
|
252
|
+
|
|
253
|
+
```diff
|
|
254
|
+
<SimpleTreeView
|
|
255
|
+
- defaultParentIcon={<MyCustomParentIcon />}
|
|
256
|
+
+ slots={{ collapseIcon: MyCustomParentIcon, expandIcon: MyCustomParentIcon }}
|
|
257
|
+
>
|
|
258
|
+
{items}
|
|
259
|
+
</SimpleTreeView>
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
- The `endIcon` / `defaultEndIcon` props, rendered next to an item without children,
|
|
263
|
+
is now defined as a slot both on the Tree View and the Tree Item components.
|
|
264
|
+
|
|
265
|
+
If you were passing an icon to your Tree View component,
|
|
266
|
+
you need to use the new `endIcon` slot on this component:
|
|
267
|
+
|
|
268
|
+
```diff
|
|
269
|
+
<SimpleTreeView
|
|
270
|
+
- defaultEndIcon={<MyCustomEndIcon />}
|
|
271
|
+
+ slots={{ endIcon: MyCustomEndIcon }}
|
|
272
|
+
>
|
|
273
|
+
{items}
|
|
274
|
+
</SimpleTreeView>
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
If you were passing an icon to your Tree Item component,
|
|
278
|
+
you need to use the new `endIcon` slot on this component:
|
|
279
|
+
|
|
280
|
+
```diff
|
|
281
|
+
<SimpleTreeView>
|
|
282
|
+
<TreeItem
|
|
283
|
+
nodeId="1"
|
|
284
|
+
label="Node 1"
|
|
285
|
+
- endIcon={<MyCustomEndIcon />}
|
|
286
|
+
+ slots={{ endIcon: MyCustomEndIcon }}
|
|
287
|
+
/>
|
|
288
|
+
</SimpleTreeView>
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
- The `icon` prop, rendered next to an item without children,
|
|
292
|
+
is now defined as a slot on the Tree Item component.
|
|
293
|
+
|
|
294
|
+
If you were passing an icon to your Tree Item component,
|
|
295
|
+
you need to use the new `icon` slot on this component:
|
|
296
|
+
|
|
297
|
+
```diff
|
|
298
|
+
<SimpleTreeView>
|
|
299
|
+
<TreeItem
|
|
300
|
+
nodeId="1"
|
|
301
|
+
label="Node 1"
|
|
302
|
+
- icon={<MyCustomIcon />}
|
|
303
|
+
+ slots={{ icon: MyCustomIcon }}
|
|
304
|
+
/>
|
|
305
|
+
</SimpleTreeView>
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
#### `@mui/x-tree-view@7.0.0-alpha.9`
|
|
309
|
+
|
|
310
|
+
- [TreeView] Adjust expansion and selection docs (#11723) @noraleonte
|
|
311
|
+
- [TreeView] Improve plugin signature definition (#11665) @flaviendelangle
|
|
312
|
+
- [TreeView] Make each plugin responsible for its context value (#11623) @flaviendelangle
|
|
313
|
+
- [TreeView] Migrate remaining icon props to slots (#11713) @flaviendelangle
|
|
314
|
+
- [TreeView] Pass through `Theme` generic to variants (#11480) @dhulme
|
|
315
|
+
- [TreeView] Rename `useTreeItem` to `useTreeItemState` (#11712) @flaviendelangle
|
|
316
|
+
- [TreeView] Add `slots` and `slotProps` on the Tree View components (#11664) @flaviendelangle
|
|
317
|
+
- [TreeView] Explore a better plugin model API (#11567) @flaviendelangle
|
|
318
|
+
|
|
319
|
+
### Docs
|
|
320
|
+
|
|
321
|
+
- [docs] Clean the pickers migration guide (#11694) @flaviendelangle
|
|
322
|
+
- [docs] Cleanup and fix Pickers Playground styling (#11700) @LukasTy
|
|
323
|
+
- [docs] First draft of the Tree View custom plugin doc (#11564) @flaviendelangle
|
|
324
|
+
- [docs] Fix Pickers migration syntax and diffs (#11695) @LukasTy
|
|
325
|
+
- [docs] Fix generated tree view API docs (#11737) @LukasTy
|
|
326
|
+
- [docs] Generate docs for Tree View slots (#11730) @flaviendelangle
|
|
327
|
+
- [docs] Improve codemod for v7 (#11650) @oliviertassinari
|
|
328
|
+
- [docs] Improve data grid `pageSizeOptions` prop documentation (#11682) @oliviertassinari
|
|
329
|
+
- [docs] Parse markdown on API docs demo titles (#11728) @LukasTy
|
|
330
|
+
- [docs] Remove the description from the `className` prop (#11693) @oliviertassinari
|
|
331
|
+
- [docs] Uplift `SimpleTreeView` customization examples (#11424) @noraleonte
|
|
332
|
+
- [docs] Uplift the Date Pickers playground (#11555) @danilo-leal
|
|
333
|
+
|
|
334
|
+
### Core
|
|
335
|
+
|
|
336
|
+
- [core] Bump `@mui/material` peer dependency for all packages (#11692) @LukasTy
|
|
337
|
+
- [core] Make `karma` run in parallel (#11571) @romgrk
|
|
338
|
+
- [core] make `karma-parallel` run under a new command (#11716) @romgrk
|
|
339
|
+
- [code-infra] Migrate all prettier APIs to the async version (#11732) @Janpot
|
|
340
|
+
- [code-infra] Update the Babel macro path (#11479) @michaldudak
|
|
341
|
+
- [docs-infra] Enforce brand name rules (#11651) @oliviertassinari
|
|
342
|
+
- [test] Fix flaky Data Grid test (#11725) @cherniavskii
|
|
343
|
+
|
|
6
344
|
## 7.0.0-alpha.8
|
|
7
345
|
|
|
8
346
|
_Jan 11, 2024_
|
|
@@ -103,8 +441,8 @@ We'd like to offer a big thanks to the 7 contributors who made this release poss
|
|
|
103
441
|
id: 'node-1',
|
|
104
442
|
label: 'Node 1',
|
|
105
443
|
children: [
|
|
106
|
-
{ id: 'node-1-1', label: Node 1.1' },
|
|
107
|
-
{ id: 'node-1-2', label: Node 1.2' },
|
|
444
|
+
{ id: 'node-1-1', label: 'Node 1.1' },
|
|
445
|
+
{ id: 'node-1-2', label: 'Node 1.2' },
|
|
108
446
|
],
|
|
109
447
|
},
|
|
110
448
|
{
|
|
@@ -1119,10 +1457,20 @@ And if you need the exact same output you can apply the following transformation
|
|
|
1119
1457
|
- The `adapter.toISO` method have been removed, you can directly use your date library:
|
|
1120
1458
|
|
|
1121
1459
|
```diff
|
|
1460
|
+
// For Day.js
|
|
1122
1461
|
-const isoString = adapter.toISO(value);
|
|
1123
1462
|
+const isoString = value.toISOString();
|
|
1463
|
+
|
|
1464
|
+
// For Luxon
|
|
1465
|
+
-const isoString = adapter.toISO(value);
|
|
1124
1466
|
+const isoString = value.toUTC().toISO({ format: 'extended' });
|
|
1467
|
+
|
|
1468
|
+
// For DateFns
|
|
1469
|
+
-const isoString = adapter.toISO(value);
|
|
1125
1470
|
+const isoString = dateFns.formatISO(value, { format: 'extended' });
|
|
1471
|
+
|
|
1472
|
+
// For Moment
|
|
1473
|
+
-const isoString = adapter.toISO(value);
|
|
1126
1474
|
+const isoString = value.toISOString();
|
|
1127
1475
|
```
|
|
1128
1476
|
|
|
@@ -1424,6 +1772,35 @@ Here is an example of the renaming for the `<ChartsTooltip />` component.
|
|
|
1424
1772
|
- [core] Update release instructions as per v7 configuration (#10962) @MBilalShafi
|
|
1425
1773
|
- [license] Correctly throw errors (#10924) @oliviertassinari
|
|
1426
1774
|
|
|
1775
|
+
## 6.19.1
|
|
1776
|
+
|
|
1777
|
+
_Jan 19, 2024_
|
|
1778
|
+
|
|
1779
|
+
We'd like to offer a big thanks to the 1 contributors who made this release possible. Here are some highlights ✨:
|
|
1780
|
+
|
|
1781
|
+
- 🌍 Add Croatian (hr-HR), Portuguese (pt-PT), and Chinese (Hong Kong) (zh-HK) locales (#11717) @BCaspari
|
|
1782
|
+
- 🐞 Bugfixes
|
|
1783
|
+
|
|
1784
|
+
### Data Grid
|
|
1785
|
+
|
|
1786
|
+
#### `@mui/x-data-grid@6.19.1`
|
|
1787
|
+
|
|
1788
|
+
- [l10n] Add Croatian (hr-HR), Portuguese (pt-PT), and Chinese (Hong Kong) (zh-HK) locales (#11717) @BCaspari
|
|
1789
|
+
|
|
1790
|
+
#### `@mui/x-data-grid-pro@6.19.1` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
1791
|
+
|
|
1792
|
+
Same changes as in `@mui/x-data-grid@6.19.1`.
|
|
1793
|
+
|
|
1794
|
+
#### `@mui/x-data-grid-premium@6.19.1` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
1795
|
+
|
|
1796
|
+
Same changes as in `@mui/x-data-grid-pro@6.19.1`.
|
|
1797
|
+
|
|
1798
|
+
### Charts / `@mui/x-charts@6.19.1`
|
|
1799
|
+
|
|
1800
|
+
- [charts] Add `arcLabelRadius` property (#11563) @alexfauquette
|
|
1801
|
+
- [charts] Do not propagate `innerRadius` and `outerRadius` to the DOM (#11719) @alexfauquette
|
|
1802
|
+
- [charts] Fix default `stackOffset` for `LineChart` (#11703) @alexfauquette
|
|
1803
|
+
|
|
1427
1804
|
## 6.19.0
|
|
1428
1805
|
|
|
1429
1806
|
_Jan 11, 2024_
|
package/DataGrid/DataGrid.js
CHANGED
|
@@ -5,7 +5,6 @@ import { GridBody, GridFooterPlaceholder, GridHeader, GridRoot } from '../compon
|
|
|
5
5
|
import { GridContextProvider } from '../context/GridContextProvider';
|
|
6
6
|
import { useDataGridComponent } from './useDataGridComponent';
|
|
7
7
|
import { useDataGridProps } from './useDataGridProps';
|
|
8
|
-
import { DataGridVirtualScroller } from '../components/DataGridVirtualScroller';
|
|
9
8
|
import { propValidatorsDataGrid, validateProps } from '../internals/utils/propValidation';
|
|
10
9
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
10
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -25,9 +24,7 @@ const DataGridRaw = /*#__PURE__*/React.forwardRef(function DataGrid(inProps, ref
|
|
|
25
24
|
sx: props.sx,
|
|
26
25
|
ref: ref
|
|
27
26
|
}, props.forwardedProps, {
|
|
28
|
-
children: [/*#__PURE__*/_jsx(GridHeader, {}), /*#__PURE__*/_jsx(GridBody, {
|
|
29
|
-
VirtualScrollerComponent: DataGridVirtualScroller
|
|
30
|
-
}), /*#__PURE__*/_jsx(GridFooterPlaceholder, {})]
|
|
27
|
+
children: [/*#__PURE__*/_jsx(GridHeader, {}), /*#__PURE__*/_jsx(GridBody, {}), /*#__PURE__*/_jsx(GridFooterPlaceholder, {})]
|
|
31
28
|
}))
|
|
32
29
|
});
|
|
33
30
|
});
|
|
@@ -131,6 +128,11 @@ DataGridRaw.propTypes = {
|
|
|
131
128
|
* @default false
|
|
132
129
|
*/
|
|
133
130
|
disableColumnSelector: PropTypes.bool,
|
|
131
|
+
/**
|
|
132
|
+
* If `true`, the column sorting feature will be disabled.
|
|
133
|
+
* @default false
|
|
134
|
+
*/
|
|
135
|
+
disableColumnSorting: PropTypes.bool,
|
|
134
136
|
/**
|
|
135
137
|
* If `true`, the density selector is disabled.
|
|
136
138
|
* @default false
|
|
@@ -167,8 +169,6 @@ DataGridRaw.propTypes = {
|
|
|
167
169
|
* For each feature, if the flag is not explicitly set to `true`, the feature will be fully disabled and any property / method call will not have any effect.
|
|
168
170
|
*/
|
|
169
171
|
experimentalFeatures: PropTypes.shape({
|
|
170
|
-
ariaV7: PropTypes.bool,
|
|
171
|
-
columnGrouping: PropTypes.bool,
|
|
172
172
|
warnIfFocusStateIsNotSynced: PropTypes.bool
|
|
173
173
|
}),
|
|
174
174
|
/**
|
|
@@ -20,7 +20,7 @@ import { useGridRowSelectionPreProcessors } from '../hooks/features/rowSelection
|
|
|
20
20
|
import { useGridSorting, sortingStateInitializer } from '../hooks/features/sorting/useGridSorting';
|
|
21
21
|
import { useGridScroll } from '../hooks/features/scroll/useGridScroll';
|
|
22
22
|
import { useGridEvents } from '../hooks/features/events/useGridEvents';
|
|
23
|
-
import { useGridDimensions } from '../hooks/features/dimensions/useGridDimensions';
|
|
23
|
+
import { dimensionsStateInitializer, useGridDimensions } from '../hooks/features/dimensions/useGridDimensions';
|
|
24
24
|
import { rowsMetaStateInitializer, useGridRowsMeta } from '../hooks/features/rows/useGridRowsMeta';
|
|
25
25
|
import { useGridStatePersistence } from '../hooks/features/statePersistence/useGridStatePersistence';
|
|
26
26
|
import { useGridColumnSpanning } from '../hooks/features/columns/useGridColumnSpanning';
|
|
@@ -38,6 +38,7 @@ export const useDataGridComponent = (inputApiRef, props) => {
|
|
|
38
38
|
/**
|
|
39
39
|
* Register all state initializers here.
|
|
40
40
|
*/
|
|
41
|
+
useGridInitializeState(dimensionsStateInitializer, apiRef, props);
|
|
41
42
|
useGridInitializeState(rowSelectionStateInitializer, apiRef, props);
|
|
42
43
|
useGridInitializeState(columnsStateInitializer, apiRef, props);
|
|
43
44
|
useGridInitializeState(rowsStateInitializer, apiRef, props);
|
|
@@ -39,6 +39,7 @@ export const DATA_GRID_PROPS_DEFAULT_VALUES = {
|
|
|
39
39
|
disableEval: false,
|
|
40
40
|
disableMultipleColumnsFiltering: false,
|
|
41
41
|
disableMultipleRowSelection: false,
|
|
42
|
+
disableColumnSorting: false,
|
|
42
43
|
disableMultipleColumnsSorting: false,
|
|
43
44
|
disableRowSelectionOnClick: false,
|
|
44
45
|
disableVirtualization: false,
|
package/README.md
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { UseGridColumnHeadersProps } from '../hooks/features/columnHeaders/useGridColumnHeaders';
|
|
3
|
-
interface GridColumnHeadersProps extends React.HTMLAttributes<HTMLDivElement>, Omit<UseGridColumnHeadersProps, 'innerRef'> {
|
|
3
|
+
export interface GridColumnHeadersProps extends React.HTMLAttributes<HTMLDivElement>, Omit<UseGridColumnHeadersProps, 'innerRef'> {
|
|
4
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
4
5
|
innerRef?: React.Ref<HTMLDivElement>;
|
|
5
6
|
}
|
|
6
|
-
declare const MemoizedGridColumnHeaders: React.ForwardRefExoticComponent<GridColumnHeadersProps & React.RefAttributes<HTMLDivElement>>;
|
|
7
|
+
declare const MemoizedGridColumnHeaders: React.ForwardRefExoticComponent<Omit<GridColumnHeadersProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
7
8
|
export { MemoizedGridColumnHeaders as GridColumnHeaders };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
const _excluded = ["innerRef", "className", "visibleColumns", "sortColumnLookup", "filterColumnLookup", "
|
|
3
|
+
const _excluded = ["innerRef", "className", "visibleColumns", "sortColumnLookup", "filterColumnLookup", "columnHeaderTabIndexState", "columnGroupHeaderTabIndexState", "columnHeaderFocus", "columnGroupHeaderFocus", "headerGroupingMaxDepth", "columnMenuState", "columnVisibility", "columnGroupsHeaderStructure", "hasOtherElementInTabSequence"];
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
import { refType } from '@mui/utils';
|
|
@@ -10,18 +10,16 @@ import { GridBaseColumnHeaders } from './columnHeaders/GridBaseColumnHeaders';
|
|
|
10
10
|
import { GridColumnHeadersInner } from './columnHeaders/GridColumnHeadersInner';
|
|
11
11
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
-
const GridColumnHeaders = /*#__PURE__*/React.forwardRef(function
|
|
13
|
+
const GridColumnHeaders = /*#__PURE__*/React.forwardRef(function GridColumnHeaders(props, ref) {
|
|
14
14
|
const {
|
|
15
15
|
innerRef,
|
|
16
16
|
visibleColumns,
|
|
17
17
|
sortColumnLookup,
|
|
18
18
|
filterColumnLookup,
|
|
19
|
-
columnPositions,
|
|
20
19
|
columnHeaderTabIndexState,
|
|
21
20
|
columnGroupHeaderTabIndexState,
|
|
22
21
|
columnHeaderFocus,
|
|
23
22
|
columnGroupHeaderFocus,
|
|
24
|
-
densityFactor,
|
|
25
23
|
headerGroupingMaxDepth,
|
|
26
24
|
columnMenuState,
|
|
27
25
|
columnVisibility,
|
|
@@ -31,7 +29,6 @@ const GridColumnHeaders = /*#__PURE__*/React.forwardRef(function GridColumnsHead
|
|
|
31
29
|
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
32
30
|
const {
|
|
33
31
|
isDragging,
|
|
34
|
-
getRootProps,
|
|
35
32
|
getInnerProps,
|
|
36
33
|
getColumnHeaders,
|
|
37
34
|
getColumnGroupHeaders
|
|
@@ -40,12 +37,10 @@ const GridColumnHeaders = /*#__PURE__*/React.forwardRef(function GridColumnsHead
|
|
|
40
37
|
visibleColumns,
|
|
41
38
|
sortColumnLookup,
|
|
42
39
|
filterColumnLookup,
|
|
43
|
-
columnPositions,
|
|
44
40
|
columnHeaderTabIndexState,
|
|
45
41
|
columnGroupHeaderTabIndexState,
|
|
46
42
|
columnHeaderFocus,
|
|
47
43
|
columnGroupHeaderFocus,
|
|
48
|
-
densityFactor,
|
|
49
44
|
headerGroupingMaxDepth,
|
|
50
45
|
columnMenuState,
|
|
51
46
|
columnVisibility,
|
|
@@ -54,7 +49,7 @@ const GridColumnHeaders = /*#__PURE__*/React.forwardRef(function GridColumnsHead
|
|
|
54
49
|
});
|
|
55
50
|
return /*#__PURE__*/_jsx(GridBaseColumnHeaders, _extends({
|
|
56
51
|
ref: ref
|
|
57
|
-
},
|
|
52
|
+
}, other, {
|
|
58
53
|
children: /*#__PURE__*/_jsxs(GridColumnHeadersInner, _extends({
|
|
59
54
|
isDragging: isDragging
|
|
60
55
|
}, getInnerProps(), {
|
|
@@ -89,14 +84,11 @@ process.env.NODE_ENV !== "production" ? GridColumnHeaders.propTypes = {
|
|
|
89
84
|
field: PropTypes.string,
|
|
90
85
|
open: PropTypes.bool.isRequired
|
|
91
86
|
}).isRequired,
|
|
92
|
-
columnPositions: PropTypes.arrayOf(PropTypes.number).isRequired,
|
|
93
87
|
columnVisibility: PropTypes.object.isRequired,
|
|
94
|
-
densityFactor: PropTypes.number.isRequired,
|
|
95
88
|
filterColumnLookup: PropTypes.object.isRequired,
|
|
96
89
|
hasOtherElementInTabSequence: PropTypes.bool.isRequired,
|
|
97
90
|
headerGroupingMaxDepth: PropTypes.number.isRequired,
|
|
98
91
|
innerRef: refType,
|
|
99
|
-
minColumnIndex: PropTypes.number,
|
|
100
92
|
sortColumnLookup: PropTypes.object.isRequired,
|
|
101
93
|
visibleColumns: PropTypes.arrayOf(PropTypes.object).isRequired
|
|
102
94
|
} : void 0;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { fastMemo } from '../utils/fastMemo';
|
|
3
|
+
import { useGridPrivateApiContext } from '../hooks/utils/useGridPrivateApiContext';
|
|
4
|
+
import { useGridSelector } from '../hooks/utils/useGridSelector';
|
|
5
|
+
import { useGridRootProps } from '../hooks/utils/useGridRootProps';
|
|
6
|
+
import { gridColumnVisibilityModelSelector, gridVisibleColumnDefinitionsSelector } from '../hooks/features/columns/gridColumnsSelector';
|
|
7
|
+
import { gridFilterActiveItemsLookupSelector } from '../hooks/features/filter/gridFilterSelector';
|
|
8
|
+
import { gridSortColumnLookupSelector } from '../hooks/features/sorting/gridSortingSelector';
|
|
9
|
+
import { gridTabIndexColumnHeaderSelector, gridTabIndexCellSelector, gridFocusColumnHeaderSelector, gridTabIndexColumnGroupHeaderSelector, gridFocusColumnGroupHeaderSelector } from '../hooks/features/focus/gridFocusStateSelector';
|
|
10
|
+
import { gridColumnGroupsHeaderMaxDepthSelector, gridColumnGroupsHeaderStructureSelector } from '../hooks/features/columnGrouping/gridColumnGroupsSelector';
|
|
11
|
+
import { gridColumnMenuSelector } from '../hooks/features/columnMenu/columnMenuSelector';
|
|
12
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
+
function GridHeaders() {
|
|
14
|
+
const apiRef = useGridPrivateApiContext();
|
|
15
|
+
const rootProps = useGridRootProps();
|
|
16
|
+
const visibleColumns = useGridSelector(apiRef, gridVisibleColumnDefinitionsSelector);
|
|
17
|
+
const filterColumnLookup = useGridSelector(apiRef, gridFilterActiveItemsLookupSelector);
|
|
18
|
+
const sortColumnLookup = useGridSelector(apiRef, gridSortColumnLookupSelector);
|
|
19
|
+
const columnHeaderTabIndexState = useGridSelector(apiRef, gridTabIndexColumnHeaderSelector);
|
|
20
|
+
const cellTabIndexState = useGridSelector(apiRef, gridTabIndexCellSelector);
|
|
21
|
+
const columnGroupHeaderTabIndexState = useGridSelector(apiRef, gridTabIndexColumnGroupHeaderSelector);
|
|
22
|
+
const columnHeaderFocus = useGridSelector(apiRef, gridFocusColumnHeaderSelector);
|
|
23
|
+
const columnGroupHeaderFocus = useGridSelector(apiRef, gridFocusColumnGroupHeaderSelector);
|
|
24
|
+
const headerGroupingMaxDepth = useGridSelector(apiRef, gridColumnGroupsHeaderMaxDepthSelector);
|
|
25
|
+
const columnMenuState = useGridSelector(apiRef, gridColumnMenuSelector);
|
|
26
|
+
const columnVisibility = useGridSelector(apiRef, gridColumnVisibilityModelSelector);
|
|
27
|
+
const columnGroupsHeaderStructure = useGridSelector(apiRef, gridColumnGroupsHeaderStructureSelector);
|
|
28
|
+
const hasOtherElementInTabSequence = !(columnGroupHeaderTabIndexState === null && columnHeaderTabIndexState === null && cellTabIndexState === null);
|
|
29
|
+
const columnHeadersRef = React.useRef(null);
|
|
30
|
+
const columnsContainerRef = React.useRef(null);
|
|
31
|
+
apiRef.current.register('private', {
|
|
32
|
+
columnHeadersContainerElementRef: columnsContainerRef,
|
|
33
|
+
columnHeadersElementRef: columnHeadersRef
|
|
34
|
+
});
|
|
35
|
+
return /*#__PURE__*/_jsx(rootProps.slots.columnHeaders, {
|
|
36
|
+
ref: columnsContainerRef,
|
|
37
|
+
innerRef: columnHeadersRef,
|
|
38
|
+
visibleColumns: visibleColumns,
|
|
39
|
+
filterColumnLookup: filterColumnLookup,
|
|
40
|
+
sortColumnLookup: sortColumnLookup,
|
|
41
|
+
columnHeaderTabIndexState: columnHeaderTabIndexState,
|
|
42
|
+
columnGroupHeaderTabIndexState: columnGroupHeaderTabIndexState,
|
|
43
|
+
columnHeaderFocus: columnHeaderFocus,
|
|
44
|
+
columnGroupHeaderFocus: columnGroupHeaderFocus,
|
|
45
|
+
headerGroupingMaxDepth: headerGroupingMaxDepth,
|
|
46
|
+
columnMenuState: columnMenuState,
|
|
47
|
+
columnVisibility: columnVisibility,
|
|
48
|
+
columnGroupsHeaderStructure: columnGroupsHeaderStructure,
|
|
49
|
+
hasOtherElementInTabSequence: hasOtherElementInTabSequence
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
const MemoizedGridHeaders = fastMemo(GridHeaders);
|
|
53
|
+
export { MemoizedGridHeaders as GridHeaders };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import type { VirtualScroller } from '../hooks/features/virtualization/useGridVirtualScroller';
|
|
3
|
+
export interface GridPinnedRowsProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
4
|
+
position: 'top' | 'bottom';
|
|
5
|
+
virtualScroller: VirtualScroller;
|
|
6
|
+
}
|
|
7
|
+
export declare function GridPinnedRows(_: GridPinnedRowsProps): null;
|