@mui/x-data-grid 5.7.0 → 5.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +241 -53
- package/DataGrid/DataGrid.d.ts +8 -3
- package/DataGrid/DataGrid.js +28 -5
- package/DataGrid/useDataGridComponent.js +5 -5
- package/DataGrid/useDataGridProps.d.ts +2 -1
- package/LICENSE +21 -0
- package/README.md +6 -4
- package/colDef/gridBooleanColDef.d.ts +1 -1
- package/colDef/gridBooleanOperators.d.ts +1 -1
- package/colDef/gridDateColDef.d.ts +5 -9
- package/colDef/gridDateColDef.js +2 -2
- package/colDef/gridDateOperators.d.ts +1 -1
- package/{models/colDef → colDef}/gridDefaultColumnTypes.d.ts +1 -1
- package/{models/colDef → colDef}/gridDefaultColumnTypes.js +6 -6
- package/colDef/gridNumericColDef.d.ts +1 -1
- package/colDef/gridNumericOperators.d.ts +2 -2
- package/colDef/gridStringColDef.d.ts +1 -1
- package/colDef/gridStringOperators.d.ts +1 -1
- package/colDef/index.d.ts +1 -0
- package/colDef/index.js +2 -1
- package/components/GridRow.d.ts +4 -0
- package/components/GridRow.js +55 -24
- package/components/base/GridOverlays.js +4 -3
- package/components/cell/GridActionsCell.d.ts +5 -1
- package/components/cell/GridActionsCell.js +170 -21
- package/components/cell/GridActionsCellItem.d.ts +66 -4
- package/components/cell/GridActionsCellItem.js +7 -5
- package/components/cell/GridCell.d.ts +5 -4
- package/components/cell/GridCell.js +30 -9
- package/components/cell/GridEditInputCell.js +3 -3
- package/components/cell/GridEditSingleSelectCell.js +24 -15
- package/components/columnHeaders/GridColumnHeaderFilterIconButton.d.ts +12 -0
- package/components/columnHeaders/{ColumnHeaderFilterIcon.js → GridColumnHeaderFilterIconButton.js} +22 -4
- package/components/columnHeaders/GridColumnHeaderItem.js +9 -12
- package/components/columnHeaders/GridColumnHeaders.d.ts +0 -1
- package/components/columnHeaders/GridColumnHeaders.js +1 -1
- package/components/columnHeaders/index.d.ts +1 -0
- package/components/columnHeaders/index.js +1 -0
- package/components/columnSelection/GridCellCheckboxRenderer.d.ts +3 -3
- package/components/columnSelection/GridCellCheckboxRenderer.js +22 -5
- package/components/columnSelection/GridHeaderCheckbox.d.ts +1 -1
- package/components/containers/GridRoot.js +29 -17
- package/components/containers/GridRootStyles.js +36 -1
- package/components/menu/GridMenu.js +1 -0
- package/components/menu/columnMenu/GridColumnMenu.js +1 -1
- package/components/panel/GridPanel.d.ts +2 -2
- package/components/panel/GridPanel.js +1 -0
- package/components/panel/GridPreferencesPanel.js +1 -1
- package/components/panel/filterPanel/GridFilterForm.js +14 -10
- package/components/panel/filterPanel/GridFilterInputBoolean.js +13 -8
- package/components/panel/filterPanel/GridFilterInputSingleSelect.js +22 -15
- package/components/panel/filterPanel/GridFilterInputValue.js +22 -15
- package/components/toolbar/GridToolbarDensitySelector.js +1 -1
- package/components/toolbar/GridToolbarFilterButton.d.ts +1 -1
- package/components/virtualization/GridVirtualScroller.js +2 -0
- package/components/virtualization/GridVirtualScrollerContent.js +1 -3
- package/constants/defaultGridSlotsComponents.js +4 -2
- package/constants/gridClasses.d.ts +35 -3
- package/constants/gridClasses.js +1 -1
- package/constants/gridDetailPanelToggleField.d.ts +1 -0
- package/constants/gridDetailPanelToggleField.js +2 -0
- package/constants/localeTextConstants.js +3 -1
- package/hooks/core/index.d.ts +1 -1
- package/hooks/core/pipeProcessing/gridPipeProcessingApi.d.ts +85 -0
- package/hooks/core/{preProcessing/gridPreProcessingApi.js → pipeProcessing/gridPipeProcessingApi.js} +0 -0
- package/hooks/core/pipeProcessing/index.d.ts +4 -0
- package/hooks/core/pipeProcessing/index.js +4 -0
- package/hooks/core/pipeProcessing/useGridPipeProcessing.d.ts +32 -0
- package/hooks/core/pipeProcessing/useGridPipeProcessing.js +108 -0
- package/hooks/core/pipeProcessing/useGridRegisterPipeApplier.d.ts +3 -0
- package/{modern/hooks/core/preProcessing/useGridRegisterPreProcessor.js → hooks/core/pipeProcessing/useGridRegisterPipeApplier.js} +2 -6
- package/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.d.ts +4 -0
- package/hooks/core/{preProcessing/useGridRegisterPreProcessor.js → pipeProcessing/useGridRegisterPipeProcessor.js} +2 -6
- package/hooks/core/strategyProcessing/useGridStrategyProcessing.d.ts +27 -16
- package/hooks/core/strategyProcessing/useGridStrategyProcessing.js +26 -15
- package/hooks/core/useGridInitialization.js +2 -2
- package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +0 -1
- package/hooks/features/columnHeaders/useGridColumnHeaders.js +77 -11
- package/hooks/features/columnMenu/useGridColumnMenu.js +2 -1
- package/hooks/features/columns/gridColumnsInterfaces.d.ts +3 -1
- package/hooks/features/columns/gridColumnsSelector.d.ts +6 -6
- package/hooks/features/columns/gridColumnsUtils.d.ts +22 -4
- package/hooks/features/columns/gridColumnsUtils.js +105 -20
- package/hooks/features/columns/useGridColumnSpanning.d.ts +7 -0
- package/hooks/features/columns/useGridColumnSpanning.js +109 -0
- package/hooks/features/columns/useGridColumns.d.ts +1 -1
- package/hooks/features/columns/useGridColumns.js +55 -40
- package/hooks/features/dimensions/gridDimensionsApi.d.ts +5 -0
- package/hooks/features/dimensions/useGridDimensions.js +5 -4
- package/hooks/features/editRows/useGridCellEditing.new.d.ts +1 -1
- package/hooks/features/editRows/useGridCellEditing.new.js +40 -17
- package/hooks/features/editRows/useGridEditing.new.js +7 -3
- package/hooks/features/editRows/useGridRowEditing.new.d.ts +1 -1
- package/hooks/features/editRows/useGridRowEditing.new.js +44 -21
- package/hooks/features/events/useGridEvents.d.ts +1 -1
- package/hooks/features/events/useGridEvents.js +2 -0
- package/hooks/features/filter/gridFilterSelector.d.ts +3 -9
- package/hooks/features/filter/useGridFilter.js +18 -13
- package/hooks/features/focus/useGridFocus.js +19 -9
- package/hooks/features/{keyboard → keyboardNavigation}/useGridKeyboardNavigation.d.ts +3 -5
- package/hooks/features/{keyboard → keyboardNavigation}/useGridKeyboardNavigation.js +66 -13
- package/hooks/features/pagination/gridPaginationSelector.d.ts +1 -3
- package/hooks/features/pagination/useGridPage.js +9 -4
- package/hooks/features/pagination/useGridPageSize.js +3 -3
- package/hooks/features/preferencesPanel/useGridPreferencesPanel.js +18 -5
- package/hooks/features/rows/gridRowsSelector.d.ts +2 -1
- package/hooks/features/rows/gridRowsSelector.js +1 -0
- package/hooks/features/rows/gridRowsState.d.ts +4 -0
- package/hooks/features/rows/gridRowsUtils.d.ts +8 -0
- package/hooks/features/rows/gridRowsUtils.js +11 -0
- package/hooks/features/rows/index.d.ts +1 -0
- package/hooks/features/rows/index.js +1 -1
- package/hooks/features/rows/useGridRows.d.ts +2 -2
- package/hooks/features/rows/useGridRows.js +27 -7
- package/hooks/features/rows/useGridRowsMeta.js +7 -14
- package/hooks/features/scroll/useGridScroll.d.ts +2 -0
- package/hooks/features/scroll/useGridScroll.js +27 -14
- package/hooks/features/selection/gridSelectionSelector.d.ts +1 -3
- package/hooks/features/selection/useGridSelection.d.ts +4 -2
- package/hooks/features/selection/useGridSelection.js +75 -27
- package/hooks/features/selection/useGridSelectionPreProcessors.js +2 -2
- package/hooks/features/sorting/gridSortingSelector.d.ts +1 -3
- package/hooks/features/sorting/gridSortingUtils.d.ts +1 -2
- package/hooks/features/sorting/useGridSorting.js +13 -13
- package/hooks/features/statePersistence/useGridStatePersistence.js +2 -2
- package/hooks/features/virtualization/useGridVirtualScroller.d.ts +9 -0
- package/hooks/features/virtualization/useGridVirtualScroller.js +64 -27
- package/hooks/utils/useGridRootProps.d.ts +1 -1
- package/hooks/utils/useGridVisibleRows.d.ts +2 -2
- package/index.js +1 -1
- package/internals/index.d.ts +4 -6
- package/internals/index.js +3 -3
- package/legacy/DataGrid/DataGrid.js +28 -5
- package/legacy/DataGrid/useDataGridComponent.js +5 -5
- package/legacy/colDef/gridDateColDef.js +2 -2
- package/legacy/{models/colDef → colDef}/gridDefaultColumnTypes.js +6 -6
- package/legacy/colDef/index.js +2 -1
- package/legacy/components/GridRow.js +53 -24
- package/legacy/components/base/GridOverlays.js +4 -3
- package/legacy/components/cell/GridActionsCell.js +188 -27
- package/legacy/components/cell/GridActionsCellItem.js +7 -5
- package/legacy/components/cell/GridCell.js +31 -9
- package/legacy/components/cell/GridEditInputCell.js +3 -3
- package/legacy/components/cell/GridEditSingleSelectCell.js +35 -26
- package/legacy/components/columnHeaders/{ColumnHeaderFilterIcon.js → GridColumnHeaderFilterIconButton.js} +22 -4
- package/legacy/components/columnHeaders/GridColumnHeaderItem.js +9 -12
- package/legacy/components/columnHeaders/GridColumnHeaders.js +2 -3
- package/legacy/components/columnHeaders/index.js +1 -0
- package/legacy/components/columnSelection/GridCellCheckboxRenderer.js +23 -5
- package/legacy/components/containers/GridRoot.js +34 -17
- package/legacy/components/containers/GridRootStyles.js +26 -5
- package/legacy/components/menu/GridMenu.js +1 -0
- package/legacy/components/menu/columnMenu/GridColumnMenu.js +1 -1
- package/legacy/components/panel/GridPanel.js +1 -0
- package/legacy/components/panel/GridPreferencesPanel.js +1 -1
- package/legacy/components/panel/filterPanel/GridFilterForm.js +14 -10
- package/legacy/components/panel/filterPanel/GridFilterInputBoolean.js +13 -8
- package/legacy/components/panel/filterPanel/GridFilterInputSingleSelect.js +22 -17
- package/legacy/components/panel/filterPanel/GridFilterInputValue.js +22 -17
- package/legacy/components/toolbar/GridToolbarDensitySelector.js +1 -1
- package/legacy/components/virtualization/GridVirtualScroller.js +2 -0
- package/legacy/components/virtualization/GridVirtualScrollerContent.js +1 -3
- package/legacy/constants/defaultGridSlotsComponents.js +4 -2
- package/legacy/constants/gridClasses.js +1 -1
- package/legacy/constants/gridDetailPanelToggleField.js +2 -0
- package/legacy/constants/localeTextConstants.js +3 -1
- package/legacy/hooks/core/{preProcessing/gridPreProcessingApi.js → pipeProcessing/gridPipeProcessingApi.js} +0 -0
- package/legacy/hooks/core/pipeProcessing/index.js +4 -0
- package/legacy/hooks/core/pipeProcessing/useGridPipeProcessing.js +119 -0
- package/legacy/hooks/core/{preProcessing/useGridRegisterPreProcessor.js → pipeProcessing/useGridRegisterPipeApplier.js} +2 -6
- package/legacy/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +27 -0
- package/legacy/hooks/core/strategyProcessing/useGridStrategyProcessing.js +26 -15
- package/legacy/hooks/core/useGridInitialization.js +2 -2
- package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +90 -11
- package/legacy/hooks/features/columnMenu/useGridColumnMenu.js +2 -1
- package/legacy/hooks/features/columns/gridColumnsUtils.js +120 -32
- package/legacy/hooks/features/columns/useGridColumnSpanning.js +107 -0
- package/legacy/hooks/features/columns/useGridColumns.js +55 -40
- package/legacy/hooks/features/dimensions/useGridDimensions.js +5 -4
- package/legacy/hooks/features/editRows/useGridCellEditing.new.js +36 -15
- package/legacy/hooks/features/editRows/useGridEditing.new.js +7 -3
- package/legacy/hooks/features/editRows/useGridRowEditing.new.js +53 -30
- package/legacy/hooks/features/events/useGridEvents.js +2 -0
- package/legacy/hooks/features/filter/useGridFilter.js +18 -13
- package/legacy/hooks/features/focus/useGridFocus.js +19 -9
- package/legacy/hooks/features/{keyboard → keyboardNavigation}/useGridKeyboardNavigation.js +66 -12
- package/legacy/hooks/features/pagination/useGridPage.js +11 -4
- package/legacy/hooks/features/pagination/useGridPageSize.js +3 -3
- package/legacy/hooks/features/preferencesPanel/useGridPreferencesPanel.js +18 -5
- package/legacy/hooks/features/rows/gridRowsSelector.js +3 -0
- package/legacy/hooks/features/rows/gridRowsUtils.js +13 -0
- package/legacy/hooks/features/rows/index.js +1 -1
- package/legacy/hooks/features/rows/useGridRows.js +35 -9
- package/legacy/hooks/features/rows/useGridRowsMeta.js +7 -14
- package/legacy/hooks/features/scroll/useGridScroll.js +27 -14
- package/legacy/hooks/features/selection/useGridSelection.js +77 -27
- package/legacy/hooks/features/selection/useGridSelectionPreProcessors.js +2 -2
- package/legacy/hooks/features/sorting/useGridSorting.js +8 -10
- package/legacy/hooks/features/statePersistence/useGridStatePersistence.js +2 -2
- package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +75 -37
- package/legacy/index.js +1 -1
- package/legacy/internals/index.js +3 -3
- package/legacy/locales/arSD.js +3 -1
- package/legacy/locales/bgBG.js +3 -1
- package/legacy/locales/csCZ.js +2 -0
- package/legacy/locales/daDK.js +37 -31
- package/legacy/locales/deDE.js +3 -1
- package/legacy/locales/elGR.js +2 -0
- package/legacy/locales/esES.js +2 -0
- package/legacy/locales/faIR.js +3 -1
- package/legacy/locales/fiFI.js +2 -0
- package/legacy/locales/frFR.js +2 -0
- package/legacy/locales/heIL.js +3 -1
- package/legacy/locales/huHU.js +122 -0
- package/legacy/locales/index.js +1 -0
- package/legacy/locales/itIT.js +2 -0
- package/legacy/locales/jaJP.js +2 -0
- package/legacy/locales/koKR.js +2 -0
- package/legacy/locales/nlNL.js +2 -0
- package/legacy/locales/plPL.js +3 -1
- package/legacy/locales/ptBR.js +3 -1
- package/legacy/locales/ruRU.js +2 -0
- package/legacy/locales/skSK.js +2 -0
- package/legacy/locales/trTR.js +3 -1
- package/legacy/locales/ukUA.js +2 -0
- package/legacy/locales/viVN.js +2 -0
- package/legacy/locales/zhCN.js +2 -0
- package/{modern/hooks/core/preProcessing/gridPreProcessingApi.js → legacy/models/api/gridColumnSpanning.js} +0 -0
- package/legacy/models/colDef/index.js +1 -2
- package/legacy/models/events/gridEvents.js +10 -3
- package/legacy/models/gridColumnSpanning.js +1 -0
- package/legacy/models/gridRows.js +1 -33
- package/legacy/models/index.js +2 -2
- package/legacy/models/params/gridPreferencePanelParams.js +1 -0
- package/legacy/models/params/index.js +2 -1
- package/locales/arSD.js +3 -1
- package/locales/bgBG.js +3 -1
- package/locales/csCZ.js +2 -0
- package/locales/daDK.js +33 -31
- package/locales/deDE.js +3 -1
- package/locales/elGR.js +2 -0
- package/locales/esES.js +2 -0
- package/locales/faIR.js +3 -1
- package/locales/fiFI.js +2 -0
- package/locales/frFR.js +2 -0
- package/locales/heIL.js +3 -1
- package/locales/huHU.d.ts +2 -0
- package/locales/huHU.js +110 -0
- package/locales/index.d.ts +1 -0
- package/locales/index.js +1 -0
- package/locales/itIT.js +2 -0
- package/locales/jaJP.js +2 -0
- package/locales/koKR.js +2 -0
- package/locales/nlNL.js +2 -0
- package/locales/plPL.js +3 -1
- package/locales/ptBR.js +3 -1
- package/locales/ruRU.js +2 -0
- package/locales/skSK.js +2 -0
- package/locales/trTR.js +3 -1
- package/locales/ukUA.js +2 -0
- package/locales/viVN.js +2 -0
- package/locales/zhCN.js +2 -0
- package/models/api/gridApiCommon.d.ts +3 -2
- package/models/api/gridColumnSpanning.d.ts +28 -0
- package/models/api/gridColumnSpanning.js +1 -0
- package/models/api/gridEditingApi.d.ts +51 -5
- package/models/api/gridLocaleTextApi.d.ts +1 -0
- package/models/api/gridParamsApi.d.ts +5 -5
- package/models/api/gridRowApi.d.ts +8 -2
- package/models/colDef/gridColDef.d.ts +38 -28
- package/models/colDef/index.d.ts +0 -1
- package/models/colDef/index.js +1 -2
- package/models/events/gridEventLookup.d.ts +30 -9
- package/models/events/gridEvents.d.ts +50 -17
- package/models/events/gridEvents.js +10 -3
- package/models/gridCell.d.ts +1 -0
- package/models/gridColumnSpanning.d.ts +12 -0
- package/models/gridColumnSpanning.js +1 -0
- package/models/gridEditRowModel.d.ts +1 -1
- package/models/gridFilterOperator.d.ts +3 -2
- package/models/gridIconSlotsComponent.d.ts +5 -0
- package/models/gridRows.d.ts +10 -18
- package/models/gridRows.js +1 -31
- package/models/gridSlotsComponent.d.ts +5 -0
- package/models/gridSlotsComponentsProps.d.ts +1 -0
- package/models/gridSortModel.d.ts +3 -4
- package/models/index.d.ts +1 -1
- package/models/index.js +2 -2
- package/models/params/gridCellParams.d.ts +25 -15
- package/models/params/gridColumnHeaderParams.d.ts +3 -2
- package/models/params/gridEditCellParams.d.ts +2 -3
- package/models/params/gridPreferencePanelParams.d.ts +3 -0
- package/models/params/gridPreferencePanelParams.js +1 -0
- package/models/params/gridRowParams.d.ts +12 -8
- package/models/params/gridValueOptionsParams.d.ts +3 -3
- package/models/params/index.d.ts +1 -0
- package/models/params/index.js +2 -1
- package/models/props/DataGridProps.d.ts +37 -17
- package/modern/DataGrid/DataGrid.js +28 -5
- package/modern/DataGrid/useDataGridComponent.js +5 -5
- package/modern/colDef/gridDateColDef.js +2 -2
- package/modern/{models/colDef → colDef}/gridDefaultColumnTypes.js +6 -6
- package/modern/colDef/index.js +2 -1
- package/modern/components/GridRow.js +53 -22
- package/modern/components/base/GridOverlays.js +4 -3
- package/modern/components/cell/GridActionsCell.js +168 -21
- package/modern/components/cell/GridActionsCellItem.js +7 -5
- package/modern/components/cell/GridCell.js +30 -9
- package/modern/components/cell/GridEditInputCell.js +3 -3
- package/modern/components/cell/GridEditSingleSelectCell.js +22 -13
- package/modern/components/columnHeaders/{ColumnHeaderFilterIcon.js → GridColumnHeaderFilterIconButton.js} +22 -4
- package/modern/components/columnHeaders/GridColumnHeaderItem.js +7 -10
- package/modern/components/columnHeaders/GridColumnHeaders.js +1 -1
- package/modern/components/columnHeaders/index.js +1 -0
- package/modern/components/columnSelection/GridCellCheckboxRenderer.js +22 -5
- package/modern/components/containers/GridRoot.js +29 -17
- package/modern/components/containers/GridRootStyles.js +36 -1
- package/modern/components/menu/GridMenu.js +1 -0
- package/modern/components/menu/columnMenu/GridColumnMenu.js +1 -1
- package/modern/components/panel/GridPanel.js +1 -0
- package/modern/components/panel/GridPreferencesPanel.js +1 -1
- package/modern/components/panel/filterPanel/GridFilterForm.js +10 -6
- package/modern/components/panel/filterPanel/GridFilterInputBoolean.js +11 -6
- package/modern/components/panel/filterPanel/GridFilterInputSingleSelect.js +20 -13
- package/modern/components/panel/filterPanel/GridFilterInputValue.js +20 -13
- package/modern/components/toolbar/GridToolbarDensitySelector.js +1 -1
- package/modern/components/virtualization/GridVirtualScroller.js +2 -0
- package/modern/components/virtualization/GridVirtualScrollerContent.js +1 -3
- package/modern/constants/defaultGridSlotsComponents.js +4 -2
- package/modern/constants/gridClasses.js +1 -1
- package/modern/constants/gridDetailPanelToggleField.js +2 -0
- package/modern/constants/localeTextConstants.js +3 -1
- package/modern/hooks/core/pipeProcessing/gridPipeProcessingApi.js +1 -0
- package/modern/hooks/core/pipeProcessing/index.js +4 -0
- package/modern/hooks/core/pipeProcessing/useGridPipeProcessing.js +108 -0
- package/modern/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +27 -0
- package/modern/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +27 -0
- package/modern/hooks/core/strategyProcessing/useGridStrategyProcessing.js +26 -15
- package/modern/hooks/core/useGridInitialization.js +2 -2
- package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +77 -11
- package/modern/hooks/features/columnMenu/useGridColumnMenu.js +2 -1
- package/modern/hooks/features/columns/gridColumnsUtils.js +105 -20
- package/modern/hooks/features/columns/useGridColumnSpanning.js +107 -0
- package/modern/hooks/features/columns/useGridColumns.js +55 -40
- package/modern/hooks/features/dimensions/useGridDimensions.js +5 -4
- package/modern/hooks/features/editRows/useGridCellEditing.new.js +40 -17
- package/modern/hooks/features/editRows/useGridEditing.new.js +7 -3
- package/modern/hooks/features/editRows/useGridRowEditing.new.js +44 -21
- package/modern/hooks/features/events/useGridEvents.js +2 -0
- package/modern/hooks/features/filter/useGridFilter.js +18 -13
- package/modern/hooks/features/focus/useGridFocus.js +19 -9
- package/modern/hooks/features/{keyboard → keyboardNavigation}/useGridKeyboardNavigation.js +64 -13
- package/modern/hooks/features/pagination/useGridPage.js +9 -4
- package/modern/hooks/features/pagination/useGridPageSize.js +3 -3
- package/modern/hooks/features/preferencesPanel/useGridPreferencesPanel.js +18 -5
- package/modern/hooks/features/rows/gridRowsSelector.js +1 -0
- package/modern/hooks/features/rows/gridRowsUtils.js +11 -0
- package/modern/hooks/features/rows/index.js +1 -1
- package/modern/hooks/features/rows/useGridRows.js +25 -5
- package/modern/hooks/features/rows/useGridRowsMeta.js +7 -14
- package/modern/hooks/features/scroll/useGridScroll.js +25 -10
- package/modern/hooks/features/selection/useGridSelection.js +75 -27
- package/modern/hooks/features/selection/useGridSelectionPreProcessors.js +2 -2
- package/modern/hooks/features/sorting/useGridSorting.js +13 -13
- package/modern/hooks/features/statePersistence/useGridStatePersistence.js +2 -2
- package/modern/hooks/features/virtualization/useGridVirtualScroller.js +64 -23
- package/modern/index.js +1 -1
- package/modern/internals/index.js +3 -3
- package/modern/locales/arSD.js +3 -1
- package/modern/locales/bgBG.js +3 -1
- package/modern/locales/csCZ.js +2 -0
- package/modern/locales/daDK.js +33 -31
- package/modern/locales/deDE.js +3 -1
- package/modern/locales/elGR.js +2 -0
- package/modern/locales/esES.js +2 -0
- package/modern/locales/faIR.js +3 -1
- package/modern/locales/fiFI.js +2 -0
- package/modern/locales/frFR.js +2 -0
- package/modern/locales/heIL.js +3 -1
- package/modern/locales/huHU.js +110 -0
- package/modern/locales/index.js +1 -0
- package/modern/locales/itIT.js +2 -0
- package/modern/locales/jaJP.js +2 -0
- package/modern/locales/koKR.js +2 -0
- package/modern/locales/nlNL.js +2 -0
- package/modern/locales/plPL.js +3 -1
- package/modern/locales/ptBR.js +3 -1
- package/modern/locales/ruRU.js +2 -0
- package/modern/locales/skSK.js +2 -0
- package/modern/locales/trTR.js +3 -1
- package/modern/locales/ukUA.js +2 -0
- package/modern/locales/viVN.js +2 -0
- package/modern/locales/zhCN.js +2 -0
- package/modern/models/api/gridColumnSpanning.js +1 -0
- package/modern/models/colDef/index.js +1 -2
- package/modern/models/events/gridEvents.js +10 -3
- package/modern/models/gridColumnSpanning.js +1 -0
- package/modern/models/gridRows.js +1 -31
- package/modern/models/index.js +2 -2
- package/modern/models/params/gridPreferencePanelParams.js +1 -0
- package/modern/models/params/index.js +2 -1
- package/node/DataGrid/DataGrid.js +28 -5
- package/node/DataGrid/useDataGridComponent.js +6 -6
- package/node/colDef/gridDateColDef.js +2 -2
- package/node/{models/colDef → colDef}/gridDefaultColumnTypes.js +6 -6
- package/node/colDef/index.js +13 -0
- package/node/components/GridRow.js +56 -24
- package/node/components/base/GridOverlays.js +3 -2
- package/node/components/cell/GridActionsCell.js +172 -21
- package/node/components/cell/GridActionsCellItem.js +7 -4
- package/node/components/cell/GridCell.js +30 -9
- package/node/components/cell/GridEditInputCell.js +3 -3
- package/node/components/cell/GridEditSingleSelectCell.js +25 -15
- package/node/components/columnHeaders/{ColumnHeaderFilterIcon.js → GridColumnHeaderFilterIconButton.js} +23 -5
- package/node/components/columnHeaders/GridColumnHeaderItem.js +9 -13
- package/node/components/columnHeaders/GridColumnHeaders.js +1 -1
- package/node/components/columnHeaders/index.js +13 -0
- package/node/components/columnSelection/GridCellCheckboxRenderer.js +22 -5
- package/node/components/containers/GridRoot.js +28 -17
- package/node/components/containers/GridRootStyles.js +36 -1
- package/node/components/menu/GridMenu.js +1 -0
- package/node/components/menu/columnMenu/GridColumnMenu.js +1 -1
- package/node/components/panel/GridPanel.js +1 -0
- package/node/components/panel/GridPreferencesPanel.js +1 -1
- package/node/components/panel/filterPanel/GridFilterForm.js +15 -10
- package/node/components/panel/filterPanel/GridFilterInputBoolean.js +14 -8
- package/node/components/panel/filterPanel/GridFilterInputSingleSelect.js +23 -15
- package/node/components/panel/filterPanel/GridFilterInputValue.js +23 -15
- package/node/components/toolbar/GridToolbarDensitySelector.js +1 -1
- package/node/components/virtualization/GridVirtualScroller.js +2 -0
- package/node/components/virtualization/GridVirtualScrollerContent.js +1 -3
- package/node/constants/defaultGridSlotsComponents.js +3 -1
- package/node/constants/gridClasses.js +1 -1
- package/node/constants/gridDetailPanelToggleField.js +9 -0
- package/node/constants/localeTextConstants.js +3 -1
- package/node/hooks/core/{preProcessing/gridPreProcessingApi.js → pipeProcessing/gridPipeProcessingApi.js} +0 -0
- package/node/hooks/core/pipeProcessing/index.js +57 -0
- package/node/hooks/core/pipeProcessing/useGridPipeProcessing.js +124 -0
- package/node/hooks/core/{preProcessing/useGridRegisterPreProcessor.js → pipeProcessing/useGridRegisterPipeApplier.js} +4 -7
- package/node/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +42 -0
- package/node/hooks/core/strategyProcessing/useGridStrategyProcessing.js +26 -15
- package/node/hooks/core/useGridInitialization.js +2 -2
- package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +81 -11
- package/node/hooks/features/columnMenu/useGridColumnMenu.js +2 -1
- package/node/hooks/features/columns/gridColumnsUtils.js +114 -25
- package/node/hooks/features/columns/useGridColumnSpanning.js +130 -0
- package/node/hooks/features/columns/useGridColumns.js +55 -40
- package/node/hooks/features/dimensions/useGridDimensions.js +5 -4
- package/node/hooks/features/editRows/useGridCellEditing.new.js +42 -17
- package/node/hooks/features/editRows/useGridEditing.new.js +6 -2
- package/node/hooks/features/editRows/useGridRowEditing.new.js +45 -21
- package/node/hooks/features/events/useGridEvents.js +2 -0
- package/node/hooks/features/filter/useGridFilter.js +18 -13
- package/node/hooks/features/focus/useGridFocus.js +19 -9
- package/node/hooks/features/{keyboard → keyboardNavigation}/useGridKeyboardNavigation.js +69 -13
- package/node/hooks/features/pagination/useGridPage.js +8 -3
- package/node/hooks/features/pagination/useGridPageSize.js +3 -3
- package/node/hooks/features/preferencesPanel/useGridPreferencesPanel.js +20 -5
- package/node/hooks/features/rows/gridRowsSelector.js +3 -1
- package/node/hooks/features/rows/gridRowsUtils.js +18 -0
- package/node/hooks/features/rows/index.js +15 -1
- package/node/hooks/features/rows/useGridRows.js +29 -9
- package/node/hooks/features/rows/useGridRowsMeta.js +7 -15
- package/node/hooks/features/scroll/useGridScroll.js +28 -14
- package/node/hooks/features/selection/useGridSelection.js +75 -26
- package/node/hooks/features/selection/useGridSelectionPreProcessors.js +2 -2
- package/node/hooks/features/sorting/useGridSorting.js +13 -13
- package/node/hooks/features/statePersistence/useGridStatePersistence.js +2 -2
- package/node/hooks/features/virtualization/useGridVirtualScroller.js +69 -27
- package/node/index.js +1 -1
- package/node/internals/index.js +12 -12
- package/node/locales/arSD.js +3 -1
- package/node/locales/bgBG.js +3 -1
- package/node/locales/csCZ.js +2 -0
- package/node/locales/daDK.js +33 -31
- package/node/locales/deDE.js +3 -1
- package/node/locales/elGR.js +2 -0
- package/node/locales/esES.js +2 -0
- package/node/locales/faIR.js +3 -1
- package/node/locales/fiFI.js +2 -0
- package/node/locales/frFR.js +2 -0
- package/node/locales/heIL.js +3 -1
- package/node/locales/huHU.js +120 -0
- package/node/locales/index.js +13 -0
- package/node/locales/itIT.js +2 -0
- package/node/locales/jaJP.js +2 -0
- package/node/locales/koKR.js +2 -0
- package/node/locales/nlNL.js +2 -0
- package/node/locales/plPL.js +3 -1
- package/node/locales/ptBR.js +3 -1
- package/node/locales/ruRU.js +2 -0
- package/node/locales/skSK.js +2 -0
- package/node/locales/trTR.js +3 -1
- package/node/locales/ukUA.js +2 -0
- package/node/locales/viVN.js +2 -0
- package/node/locales/zhCN.js +2 -0
- package/node/models/api/gridColumnSpanning.js +5 -0
- package/node/models/colDef/index.js +0 -13
- package/node/models/events/gridEvents.js +10 -3
- package/node/models/gridColumnSpanning.js +5 -0
- package/node/models/gridRows.js +1 -34
- package/node/models/index.js +13 -13
- package/node/models/params/gridPreferencePanelParams.js +5 -0
- package/node/models/params/index.js +13 -0
- package/package.json +4 -4
- package/utils/domUtils.d.ts +2 -2
- package/components/columnHeaders/ColumnHeaderFilterIcon.d.ts +0 -5
- package/hooks/core/preProcessing/gridPreProcessingApi.d.ts +0 -67
- package/hooks/core/preProcessing/index.d.ts +0 -3
- package/hooks/core/preProcessing/index.js +0 -3
- package/hooks/core/preProcessing/useGridPreProcessing.d.ts +0 -6
- package/hooks/core/preProcessing/useGridPreProcessing.js +0 -53
- package/hooks/core/preProcessing/useGridRegisterPreProcessor.d.ts +0 -7
- package/hooks/features/keyboard/useGridKeyboard.d.ts +0 -10
- package/hooks/features/keyboard/useGridKeyboard.js +0 -70
- package/legacy/hooks/core/preProcessing/index.js +0 -3
- package/legacy/hooks/core/preProcessing/useGridPreProcessing.js +0 -62
- package/legacy/hooks/features/keyboard/useGridKeyboard.js +0 -70
- package/modern/hooks/core/preProcessing/index.js +0 -3
- package/modern/hooks/core/preProcessing/useGridPreProcessing.js +0 -53
- package/modern/hooks/features/keyboard/useGridKeyboard.js +0 -70
- package/node/hooks/core/preProcessing/index.js +0 -44
- package/node/hooks/core/preProcessing/useGridPreProcessing.js +0 -72
- package/node/hooks/features/keyboard/useGridKeyboard.js +0 -91
|
@@ -5,14 +5,15 @@ import { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';
|
|
|
5
5
|
import { useGridApiMethod } from '../../utils/useGridApiMethod';
|
|
6
6
|
import { useGridLogger } from '../../utils/useGridLogger';
|
|
7
7
|
import { gridRowsLookupSelector } from '../rows/gridRowsSelector';
|
|
8
|
-
import { isGridCellRoot } from '../../../utils/domUtils';
|
|
9
8
|
import { gridSelectionStateSelector, selectedGridRowsSelector, selectedIdsLookupSelector } from './gridSelectionSelector';
|
|
10
9
|
import { gridPaginatedVisibleSortedGridRowIdsSelector } from '../pagination';
|
|
10
|
+
import { gridFocusCellSelector } from '../focus/gridFocusStateSelector';
|
|
11
11
|
import { gridVisibleSortedRowIdsSelector } from '../filter/gridFilterSelector';
|
|
12
12
|
import { GRID_CHECKBOX_SELECTION_COL_DEF, GRID_ACTIONS_COLUMN_TYPE } from '../../../colDef';
|
|
13
13
|
import { GridCellModes } from '../../../models/gridEditRowModel';
|
|
14
|
-
import { isKeyboardEvent } from '../../../utils/keyboardUtils';
|
|
15
|
-
import { getVisibleRows } from '../../utils/useGridVisibleRows';
|
|
14
|
+
import { isKeyboardEvent, isNavigationKey } from '../../../utils/keyboardUtils';
|
|
15
|
+
import { getVisibleRows, useGridVisibleRows } from '../../utils/useGridVisibleRows';
|
|
16
|
+
import { GRID_DETAIL_PANEL_TOGGLE_FIELD } from '../../../constants/gridDetailPanelToggleField';
|
|
16
17
|
|
|
17
18
|
const getSelectionModelPropValue = (selectionModelProp, prevSelectionModel) => {
|
|
18
19
|
if (selectionModelProp == null) {
|
|
@@ -34,8 +35,10 @@ export const selectionStateInitializer = (state, props) => _extends({}, state, {
|
|
|
34
35
|
selection: getSelectionModelPropValue(props.selectionModel) ?? []
|
|
35
36
|
});
|
|
36
37
|
/**
|
|
37
|
-
* @requires useGridRows (state, method)
|
|
38
|
-
* @requires useGridParamsApi (method)
|
|
38
|
+
* @requires useGridRows (state, method) - can be after
|
|
39
|
+
* @requires useGridParamsApi (method) - can be after
|
|
40
|
+
* @requires useGridFocus (state) - can be after
|
|
41
|
+
* @requires useGridKeyboardNavigation (`cellKeyDown` event must first be consumed by it)
|
|
39
42
|
*/
|
|
40
43
|
|
|
41
44
|
export const useGridSelection = (apiRef, props) => {
|
|
@@ -60,7 +63,8 @@ export const useGridSelection = (apiRef, props) => {
|
|
|
60
63
|
paginationMode
|
|
61
64
|
} = props;
|
|
62
65
|
const canHaveMultipleSelection = !disableMultipleSelection || checkboxSelection;
|
|
63
|
-
const
|
|
66
|
+
const visibleRows = useGridVisibleRows(apiRef, props);
|
|
67
|
+
const expandMouseRowRangeSelection = React.useCallback(id => {
|
|
64
68
|
let endId = id;
|
|
65
69
|
const startId = lastRowToggled.current ?? id;
|
|
66
70
|
const isSelected = apiRef.current.isRowSelected(id);
|
|
@@ -165,12 +169,13 @@ export const useGridSelection = (apiRef, props) => {
|
|
|
165
169
|
return;
|
|
166
170
|
}
|
|
167
171
|
|
|
168
|
-
logger.debug(`Expanding selection from row ${startId} to row ${endId}`);
|
|
169
|
-
|
|
170
|
-
const
|
|
171
|
-
const
|
|
172
|
+
logger.debug(`Expanding selection from row ${startId} to row ${endId}`); // Using rows from all pages allow to select a range across several pages
|
|
173
|
+
|
|
174
|
+
const allPagesRowIds = gridVisibleSortedRowIdsSelector(apiRef);
|
|
175
|
+
const startIndex = allPagesRowIds.indexOf(startId);
|
|
176
|
+
const endIndex = allPagesRowIds.indexOf(endId);
|
|
172
177
|
const [start, end] = startIndex > endIndex ? [endIndex, startIndex] : [startIndex, endIndex];
|
|
173
|
-
const rowsBetweenStartAndEnd =
|
|
178
|
+
const rowsBetweenStartAndEnd = allPagesRowIds.slice(start, end + 1);
|
|
174
179
|
apiRef.current.selectRows(rowsBetweenStartAndEnd, isSelected, resetSelection);
|
|
175
180
|
}, [apiRef, logger]);
|
|
176
181
|
const selectionApi = {
|
|
@@ -230,7 +235,7 @@ export const useGridSelection = (apiRef, props) => {
|
|
|
230
235
|
return;
|
|
231
236
|
}
|
|
232
237
|
|
|
233
|
-
if (params.field ===
|
|
238
|
+
if (params.field === GRID_DETAIL_PANEL_TOGGLE_FIELD) {
|
|
234
239
|
// click to open the detail panel should not select the row
|
|
235
240
|
return;
|
|
236
241
|
}
|
|
@@ -244,11 +249,11 @@ export const useGridSelection = (apiRef, props) => {
|
|
|
244
249
|
}
|
|
245
250
|
|
|
246
251
|
if (event.shiftKey && (canHaveMultipleSelection || checkboxSelection)) {
|
|
247
|
-
|
|
252
|
+
expandMouseRowRangeSelection(params.id);
|
|
248
253
|
} else {
|
|
249
254
|
handleSingleRowSelection(params.id, event);
|
|
250
255
|
}
|
|
251
|
-
}, [disableSelectionOnClick, canHaveMultipleSelection, checkboxSelection, apiRef,
|
|
256
|
+
}, [disableSelectionOnClick, canHaveMultipleSelection, checkboxSelection, apiRef, expandMouseRowRangeSelection, handleSingleRowSelection]);
|
|
252
257
|
const preventSelectionOnShift = React.useCallback((params, event) => {
|
|
253
258
|
if (canHaveMultipleSelection && event.shiftKey) {
|
|
254
259
|
window.getSelection()?.removeAllRanges();
|
|
@@ -256,35 +261,78 @@ export const useGridSelection = (apiRef, props) => {
|
|
|
256
261
|
}, [canHaveMultipleSelection]);
|
|
257
262
|
const handleRowSelectionCheckboxChange = React.useCallback((params, event) => {
|
|
258
263
|
if (event.nativeEvent.shiftKey) {
|
|
259
|
-
|
|
264
|
+
expandMouseRowRangeSelection(params.id);
|
|
260
265
|
} else {
|
|
261
266
|
apiRef.current.selectRow(params.id, params.value);
|
|
262
267
|
}
|
|
263
|
-
}, [apiRef,
|
|
268
|
+
}, [apiRef, expandMouseRowRangeSelection]);
|
|
264
269
|
const handleHeaderSelectionCheckboxChange = React.useCallback(params => {
|
|
265
270
|
const shouldLimitSelectionToCurrentPage = props.checkboxSelectionVisibleOnly && props.pagination;
|
|
266
271
|
const rowsToBeSelected = shouldLimitSelectionToCurrentPage ? gridPaginatedVisibleSortedGridRowIdsSelector(apiRef) : gridVisibleSortedRowIdsSelector(apiRef);
|
|
267
272
|
apiRef.current.selectRows(rowsToBeSelected, params.value);
|
|
268
273
|
}, [apiRef, props.checkboxSelectionVisibleOnly, props.pagination]);
|
|
269
274
|
const handleCellKeyDown = React.useCallback((params, event) => {
|
|
270
|
-
//
|
|
275
|
+
// Get the most recent cell mode because it may have been changed by another listener
|
|
276
|
+
if (apiRef.current.getCellMode(params.id, params.field) === GridCellModes.Edit) {
|
|
277
|
+
return;
|
|
278
|
+
} // Ignore portal
|
|
271
279
|
// Do not apply shortcuts if the focus is not on the cell root component
|
|
272
|
-
|
|
273
|
-
|
|
280
|
+
|
|
281
|
+
|
|
282
|
+
if (!event.currentTarget.contains(event.target)) {
|
|
274
283
|
return;
|
|
275
|
-
}
|
|
284
|
+
}
|
|
276
285
|
|
|
286
|
+
if (isNavigationKey(event.key) && event.shiftKey) {
|
|
287
|
+
// The cell that has focus after the keyboard navigation
|
|
288
|
+
const focusCell = gridFocusCellSelector(apiRef);
|
|
277
289
|
|
|
278
|
-
|
|
279
|
-
|
|
290
|
+
if (focusCell && focusCell.id !== params.id) {
|
|
291
|
+
event.preventDefault();
|
|
292
|
+
const isNextRowSelected = apiRef.current.isRowSelected(focusCell.id);
|
|
280
293
|
|
|
281
|
-
|
|
282
|
-
|
|
294
|
+
if (!canHaveMultipleSelection) {
|
|
295
|
+
apiRef.current.selectRow(focusCell.id, !isNextRowSelected, true);
|
|
296
|
+
return;
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
const newRowIndex = apiRef.current.getRowIndexRelativeToVisibleRows(focusCell.id);
|
|
300
|
+
const previousRowIndex = apiRef.current.getRowIndexRelativeToVisibleRows(params.id);
|
|
301
|
+
let start;
|
|
302
|
+
let end;
|
|
303
|
+
|
|
304
|
+
if (newRowIndex > previousRowIndex) {
|
|
305
|
+
if (isNextRowSelected) {
|
|
306
|
+
// We are navigating to the bottom of the page and adding selected rows
|
|
307
|
+
start = previousRowIndex;
|
|
308
|
+
end = newRowIndex - 1;
|
|
309
|
+
} else {
|
|
310
|
+
// We are navigating to the bottom of the page and removing selected rows
|
|
311
|
+
start = previousRowIndex;
|
|
312
|
+
end = newRowIndex;
|
|
313
|
+
}
|
|
314
|
+
} else {
|
|
315
|
+
// eslint-disable-next-line no-lonely-if
|
|
316
|
+
if (isNextRowSelected) {
|
|
317
|
+
// We are navigating to the top of the page and removing selected rows
|
|
318
|
+
start = newRowIndex + 1;
|
|
319
|
+
end = previousRowIndex;
|
|
320
|
+
} else {
|
|
321
|
+
// We are navigating to the top of the page and adding selected rows
|
|
322
|
+
start = newRowIndex;
|
|
323
|
+
end = previousRowIndex;
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
const rowsBetweenStartAndEnd = visibleRows.rows.slice(start, end + 1).map(row => row.id);
|
|
328
|
+
apiRef.current.selectRows(rowsBetweenStartAndEnd, !isNextRowSelected);
|
|
329
|
+
return;
|
|
330
|
+
}
|
|
283
331
|
}
|
|
284
332
|
|
|
285
333
|
if (event.key === ' ' && event.shiftKey) {
|
|
286
334
|
event.preventDefault();
|
|
287
|
-
handleSingleRowSelection(
|
|
335
|
+
handleSingleRowSelection(params.id, event);
|
|
288
336
|
return;
|
|
289
337
|
}
|
|
290
338
|
|
|
@@ -292,8 +340,8 @@ export const useGridSelection = (apiRef, props) => {
|
|
|
292
340
|
event.preventDefault();
|
|
293
341
|
selectRows(apiRef.current.getAllRowIds(), true);
|
|
294
342
|
}
|
|
295
|
-
}, [apiRef, handleSingleRowSelection, selectRows]);
|
|
296
|
-
useGridApiEventHandler(apiRef, GridEvents.
|
|
343
|
+
}, [apiRef, handleSingleRowSelection, selectRows, visibleRows.rows, canHaveMultipleSelection]);
|
|
344
|
+
useGridApiEventHandler(apiRef, GridEvents.sortedRowsSet, removeOutdatedSelection);
|
|
297
345
|
useGridApiEventHandler(apiRef, GridEvents.cellClick, handleCellClick);
|
|
298
346
|
useGridApiEventHandler(apiRef, GridEvents.rowSelectionCheckboxChange, handleRowSelectionCheckboxChange);
|
|
299
347
|
useGridApiEventHandler(apiRef, GridEvents.headerSelectionCheckboxChange, handleHeaderSelectionCheckboxChange);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { unstable_composeClasses as composeClasses } from '@mui/material';
|
|
4
|
-
import {
|
|
4
|
+
import { useGridRegisterPipeProcessor } from '../../core/pipeProcessing';
|
|
5
5
|
import { getDataGridUtilityClass } from '../../../constants';
|
|
6
6
|
import { GRID_CHECKBOX_SELECTION_COL_DEF } from '../../../colDef';
|
|
7
7
|
|
|
@@ -43,5 +43,5 @@ export const useGridSelectionPreProcessors = (apiRef, props) => {
|
|
|
43
43
|
|
|
44
44
|
return columnsState;
|
|
45
45
|
}, [apiRef, classes, props.checkboxSelection]);
|
|
46
|
-
|
|
46
|
+
useGridRegisterPipeProcessor(apiRef, 'hydrateColumns', updateSelectionColumn);
|
|
47
47
|
};
|
|
@@ -12,7 +12,7 @@ import { gridRowIdsSelector, gridRowTreeSelector } from '../rows';
|
|
|
12
12
|
import { useFirstRender } from '../../utils/useFirstRender';
|
|
13
13
|
import { useGridRegisterStrategyProcessor, GRID_DEFAULT_STRATEGY } from '../../core/strategyProcessing';
|
|
14
14
|
import { buildAggregatedSortingApplier, mergeStateWithSortModel, getNextGridSortDirection, sanitizeSortModel } from './gridSortingUtils';
|
|
15
|
-
import {
|
|
15
|
+
import { useGridRegisterPipeProcessor } from '../../core/pipeProcessing';
|
|
16
16
|
export const sortingStateInitializer = (state, props) => {
|
|
17
17
|
const sortModel = props.sortModel ?? props.initialState?.sorting?.sortModel ?? [];
|
|
18
18
|
return _extends({}, state, {
|
|
@@ -74,17 +74,16 @@ export const useGridSorting = (apiRef, props) => {
|
|
|
74
74
|
*/
|
|
75
75
|
|
|
76
76
|
const applySorting = React.useCallback(() => {
|
|
77
|
-
if (props.sortingMode === GridFeatureModeConstant.server) {
|
|
78
|
-
logger.debug('Skipping sorting rows as sortingMode = server');
|
|
79
|
-
apiRef.current.setState(state => _extends({}, state, {
|
|
80
|
-
sorting: _extends({}, state.sorting, {
|
|
81
|
-
sortedRows: gridRowIdsSelector(state, apiRef.current.instanceId)
|
|
82
|
-
})
|
|
83
|
-
}));
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
77
|
apiRef.current.setState(state => {
|
|
78
|
+
if (props.sortingMode === GridFeatureModeConstant.server) {
|
|
79
|
+
logger.debug('Skipping sorting rows as sortingMode = server');
|
|
80
|
+
return _extends({}, state, {
|
|
81
|
+
sorting: _extends({}, state.sorting, {
|
|
82
|
+
sortedRows: gridRowIdsSelector(state, apiRef.current.instanceId)
|
|
83
|
+
})
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
|
|
88
87
|
const sortModel = gridSortModelSelector(state, apiRef.current.instanceId);
|
|
89
88
|
const sortRowList = buildAggregatedSortingApplier(sortModel, apiRef);
|
|
90
89
|
const sortedRows = apiRef.current.unstable_applyStrategyProcessor('sorting', {
|
|
@@ -96,6 +95,7 @@ export const useGridSorting = (apiRef, props) => {
|
|
|
96
95
|
})
|
|
97
96
|
});
|
|
98
97
|
});
|
|
98
|
+
apiRef.current.publishEvent(GridEvents.sortedRowsSet);
|
|
99
99
|
apiRef.current.forceUpdate();
|
|
100
100
|
}, [apiRef, logger, props.sortingMode]);
|
|
101
101
|
const setSortModel = React.useCallback(model => {
|
|
@@ -180,8 +180,8 @@ export const useGridSorting = (apiRef, props) => {
|
|
|
180
180
|
const rowTree = gridRowTreeSelector(apiRef);
|
|
181
181
|
return params.sortRowList(Object.values(rowTree));
|
|
182
182
|
}, [apiRef]);
|
|
183
|
-
|
|
184
|
-
|
|
183
|
+
useGridRegisterPipeProcessor(apiRef, 'exportState', stateExportPreProcessing);
|
|
184
|
+
useGridRegisterPipeProcessor(apiRef, 'restoreState', stateRestorePreProcessing);
|
|
185
185
|
useGridRegisterStrategyProcessor(apiRef, GRID_DEFAULT_STRATEGY, 'sorting', flatSortingMethod);
|
|
186
186
|
/**
|
|
187
187
|
* EVENTS
|
|
@@ -2,11 +2,11 @@ import * as React from 'react';
|
|
|
2
2
|
import { useGridApiMethod } from '../../utils';
|
|
3
3
|
export const useGridStatePersistence = apiRef => {
|
|
4
4
|
const exportState = React.useCallback(() => {
|
|
5
|
-
const stateToExport = apiRef.current.
|
|
5
|
+
const stateToExport = apiRef.current.unstable_applyPipeProcessors('exportState', {});
|
|
6
6
|
return stateToExport;
|
|
7
7
|
}, [apiRef]);
|
|
8
8
|
const restoreState = React.useCallback(stateToRestore => {
|
|
9
|
-
const response = apiRef.current.
|
|
9
|
+
const response = apiRef.current.unstable_applyPipeProcessors('restoreState', {
|
|
10
10
|
callbacks: []
|
|
11
11
|
}, {
|
|
12
12
|
stateToRestore
|
|
@@ -2,6 +2,7 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
|
|
|
2
2
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
3
|
const _excluded = ["style"];
|
|
4
4
|
import * as React from 'react';
|
|
5
|
+
import * as ReactDOM from 'react-dom';
|
|
5
6
|
import { useForkRef } from '@mui/material/utils';
|
|
6
7
|
import { useGridApiContext } from '../../utils/useGridApiContext';
|
|
7
8
|
import { useGridRootProps } from '../../utils/useGridRootProps';
|
|
@@ -16,8 +17,9 @@ import { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';
|
|
|
16
17
|
import { clamp } from '../../../utils/utils';
|
|
17
18
|
import { selectedIdsLookupSelector } from '../selection/gridSelectionSelector';
|
|
18
19
|
import { gridRowsMetaSelector } from '../rows/gridRowsMetaSelector';
|
|
20
|
+
import { getFirstNonSpannedColumnToRender } from '../columns/gridColumnsUtils'; // Uses binary search to avoid looping through all possible positions
|
|
21
|
+
|
|
19
22
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
20
|
-
// Uses binary search to avoid looping through all possible positions
|
|
21
23
|
export function getIndexFromScroll(offset, positions, sliceStart = 0, sliceEnd = positions.length) {
|
|
22
24
|
if (positions.length <= 0) {
|
|
23
25
|
return -1;
|
|
@@ -31,6 +33,15 @@ export function getIndexFromScroll(offset, positions, sliceStart = 0, sliceEnd =
|
|
|
31
33
|
const itemOffset = positions[pivot];
|
|
32
34
|
return offset <= itemOffset ? getIndexFromScroll(offset, positions, sliceStart, pivot) : getIndexFromScroll(offset, positions, pivot + 1, sliceEnd);
|
|
33
35
|
}
|
|
36
|
+
export const getRenderableIndexes = ({
|
|
37
|
+
firstIndex,
|
|
38
|
+
lastIndex,
|
|
39
|
+
buffer,
|
|
40
|
+
minFirstIndex,
|
|
41
|
+
maxLastIndex
|
|
42
|
+
}) => {
|
|
43
|
+
return [clamp(firstIndex - buffer, minFirstIndex, maxLastIndex), clamp(lastIndex + buffer, minFirstIndex, maxLastIndex)];
|
|
44
|
+
};
|
|
34
45
|
export const useGridVirtualScroller = props => {
|
|
35
46
|
const apiRef = useGridApiContext();
|
|
36
47
|
const rootProps = useGridRootProps();
|
|
@@ -106,32 +117,28 @@ export const useGridVirtualScroller = props => {
|
|
|
106
117
|
}
|
|
107
118
|
}, []);
|
|
108
119
|
useGridApiEventHandler(apiRef, GridEvents.resize, handleResize);
|
|
109
|
-
|
|
110
|
-
const getRenderableIndexes = ({
|
|
111
|
-
firstIndex,
|
|
112
|
-
lastIndex,
|
|
113
|
-
buffer,
|
|
114
|
-
minFirstIndex,
|
|
115
|
-
maxLastIndex
|
|
116
|
-
}) => {
|
|
117
|
-
return [clamp(firstIndex - buffer, minFirstIndex, maxLastIndex), clamp(lastIndex + buffer, minFirstIndex, maxLastIndex)];
|
|
118
|
-
};
|
|
119
|
-
|
|
120
120
|
const updateRenderZonePosition = React.useCallback(nextRenderContext => {
|
|
121
|
-
const [firstRowToRender] = getRenderableIndexes({
|
|
121
|
+
const [firstRowToRender, lastRowToRender] = getRenderableIndexes({
|
|
122
122
|
firstIndex: nextRenderContext.firstRowIndex,
|
|
123
123
|
lastIndex: nextRenderContext.lastRowIndex,
|
|
124
124
|
minFirstIndex: 0,
|
|
125
|
-
maxLastIndex: currentPage.
|
|
125
|
+
maxLastIndex: currentPage.rows.length,
|
|
126
126
|
buffer: rootProps.rowBuffer
|
|
127
127
|
});
|
|
128
|
-
const [
|
|
128
|
+
const [initialFirstColumnToRender] = getRenderableIndexes({
|
|
129
129
|
firstIndex: nextRenderContext.firstColumnIndex,
|
|
130
130
|
lastIndex: nextRenderContext.lastColumnIndex,
|
|
131
131
|
minFirstIndex: renderZoneMinColumnIndex,
|
|
132
132
|
maxLastIndex: renderZoneMaxColumnIndex,
|
|
133
133
|
buffer: rootProps.columnBuffer
|
|
134
134
|
});
|
|
135
|
+
const firstColumnToRender = getFirstNonSpannedColumnToRender({
|
|
136
|
+
firstColumnToRender: initialFirstColumnToRender,
|
|
137
|
+
apiRef,
|
|
138
|
+
firstRowToRender,
|
|
139
|
+
lastRowToRender,
|
|
140
|
+
visibleRows: currentPage.rows
|
|
141
|
+
});
|
|
135
142
|
const top = gridRowsMetaSelector(apiRef.current.state).positions[firstRowToRender];
|
|
136
143
|
const left = gridColumnPositionsSelector(apiRef)[firstColumnToRender]; // Call directly the selector because it might be outdated when this method is called
|
|
137
144
|
|
|
@@ -143,19 +150,22 @@ export const useGridVirtualScroller = props => {
|
|
|
143
150
|
left
|
|
144
151
|
});
|
|
145
152
|
}
|
|
146
|
-
}, [apiRef, currentPage.
|
|
153
|
+
}, [apiRef, currentPage.rows, onRenderZonePositioning, renderZoneMinColumnIndex, renderZoneMaxColumnIndex, rootProps.columnBuffer, rootProps.rowBuffer]);
|
|
154
|
+
React.useLayoutEffect(() => {
|
|
155
|
+
if (renderContext) {
|
|
156
|
+
updateRenderZonePosition(renderContext);
|
|
157
|
+
}
|
|
158
|
+
}, [renderContext, updateRenderZonePosition]);
|
|
147
159
|
const updateRenderContext = React.useCallback(nextRenderContext => {
|
|
148
160
|
setRenderContext(nextRenderContext);
|
|
149
|
-
updateRenderZonePosition(nextRenderContext);
|
|
150
161
|
prevRenderContext.current = nextRenderContext;
|
|
151
|
-
}, [setRenderContext, prevRenderContext
|
|
162
|
+
}, [setRenderContext, prevRenderContext]);
|
|
152
163
|
React.useEffect(() => {
|
|
153
164
|
if (containerWidth == null) {
|
|
154
165
|
return;
|
|
155
166
|
}
|
|
156
167
|
|
|
157
168
|
const initialRenderContext = computeRenderContext();
|
|
158
|
-
prevRenderContext.current = initialRenderContext;
|
|
159
169
|
updateRenderContext(initialRenderContext);
|
|
160
170
|
const {
|
|
161
171
|
top,
|
|
@@ -193,14 +203,25 @@ export const useGridVirtualScroller = props => {
|
|
|
193
203
|
top: scrollTop,
|
|
194
204
|
left: scrollLeft,
|
|
195
205
|
renderContext: shouldSetState ? nextRenderContext : prevRenderContext.current
|
|
196
|
-
});
|
|
206
|
+
}, event);
|
|
197
207
|
|
|
198
208
|
if (shouldSetState) {
|
|
199
|
-
|
|
209
|
+
// Prevents batching render context changes
|
|
210
|
+
ReactDOM.flushSync(() => {
|
|
211
|
+
updateRenderContext(nextRenderContext);
|
|
212
|
+
});
|
|
200
213
|
prevTotalWidth.current = columnsTotalWidth;
|
|
201
214
|
}
|
|
202
215
|
};
|
|
203
216
|
|
|
217
|
+
const handleWheel = event => {
|
|
218
|
+
apiRef.current.publishEvent(GridEvents.virtualScrollerWheel, {}, event);
|
|
219
|
+
};
|
|
220
|
+
|
|
221
|
+
const handleTouchMove = event => {
|
|
222
|
+
apiRef.current.publishEvent(GridEvents.virtualScrollerTouchMove, {}, event);
|
|
223
|
+
};
|
|
224
|
+
|
|
204
225
|
const getRows = (params = {
|
|
205
226
|
renderContext
|
|
206
227
|
}) => {
|
|
@@ -224,14 +245,32 @@ export const useGridVirtualScroller = props => {
|
|
|
224
245
|
maxLastIndex: currentPage.rows.length,
|
|
225
246
|
buffer: rowBuffer
|
|
226
247
|
});
|
|
227
|
-
const
|
|
248
|
+
const renderedRows = [];
|
|
249
|
+
|
|
250
|
+
for (let i = firstRowToRender; i < lastRowToRender; i += 1) {
|
|
251
|
+
const row = currentPage.rows[i];
|
|
252
|
+
renderedRows.push(row);
|
|
253
|
+
apiRef.current.unstable_calculateColSpan({
|
|
254
|
+
rowId: row.id,
|
|
255
|
+
minFirstColumn,
|
|
256
|
+
maxLastColumn
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
const [initialFirstColumnToRender, lastColumnToRender] = getRenderableIndexes({
|
|
228
261
|
firstIndex: nextRenderContext.firstColumnIndex,
|
|
229
262
|
lastIndex: nextRenderContext.lastColumnIndex,
|
|
230
263
|
minFirstIndex: minFirstColumn,
|
|
231
264
|
maxLastIndex: maxLastColumn,
|
|
232
265
|
buffer: columnBuffer
|
|
233
266
|
});
|
|
234
|
-
const
|
|
267
|
+
const firstColumnToRender = getFirstNonSpannedColumnToRender({
|
|
268
|
+
firstColumnToRender: initialFirstColumnToRender,
|
|
269
|
+
apiRef,
|
|
270
|
+
firstRowToRender,
|
|
271
|
+
lastRowToRender,
|
|
272
|
+
visibleRows: currentPage.rows
|
|
273
|
+
});
|
|
235
274
|
const renderedColumns = visibleColumns.slice(firstColumnToRender, lastColumnToRender);
|
|
236
275
|
const rows = [];
|
|
237
276
|
|
|
@@ -331,6 +370,8 @@ export const useGridVirtualScroller = props => {
|
|
|
331
370
|
return _extends({
|
|
332
371
|
ref: handleRef,
|
|
333
372
|
onScroll: handleScroll,
|
|
373
|
+
onWheel: handleWheel,
|
|
374
|
+
onTouchMove: handleTouchMove,
|
|
334
375
|
style: _extends({}, style, rootStyle)
|
|
335
376
|
}, other);
|
|
336
377
|
},
|
package/modern/index.js
CHANGED
|
@@ -3,20 +3,20 @@ export { GridVirtualScrollerContent } from '../components/virtualization/GridVir
|
|
|
3
3
|
export { GridVirtualScrollerRenderZone } from '../components/virtualization/GridVirtualScrollerRenderZone';
|
|
4
4
|
export { GridColumnHeaders } from '../components/columnHeaders/GridColumnHeaders';
|
|
5
5
|
export { GridColumnHeadersInner } from '../components/columnHeaders/GridColumnHeadersInner';
|
|
6
|
-
export {
|
|
6
|
+
export { useGridRegisterPipeProcessor } from '../hooks/core/pipeProcessing';
|
|
7
7
|
export { useGridRegisterStrategyProcessor } from '../hooks/core/strategyProcessing';
|
|
8
8
|
export { useGridInitialization } from '../hooks/core/useGridInitialization';
|
|
9
9
|
export { useGridClipboard } from '../hooks/features/clipboard/useGridClipboard';
|
|
10
10
|
export { useGridColumnHeaders } from '../hooks/features/columnHeaders/useGridColumnHeaders';
|
|
11
11
|
export { useGridColumnMenu, columnMenuStateInitializer } from '../hooks/features/columnMenu/useGridColumnMenu';
|
|
12
12
|
export { useGridColumns, columnsStateInitializer } from '../hooks/features/columns/useGridColumns';
|
|
13
|
+
export { useGridColumnSpanning } from '../hooks/features/columns/useGridColumnSpanning';
|
|
13
14
|
export { useGridDensity, densityStateInitializer } from '../hooks/features/density/useGridDensity';
|
|
14
15
|
export { useGridCsvExport } from '../hooks/features/export/useGridCsvExport';
|
|
15
16
|
export { useGridPrintExport } from '../hooks/features/export/useGridPrintExport';
|
|
16
17
|
export { useGridFilter, filterStateInitializer } from '../hooks/features/filter/useGridFilter';
|
|
17
18
|
export { useGridFocus, focusStateInitializer } from '../hooks/features/focus/useGridFocus';
|
|
18
|
-
export {
|
|
19
|
-
export { useGridKeyboardNavigation } from '../hooks/features/keyboard/useGridKeyboardNavigation';
|
|
19
|
+
export { useGridKeyboardNavigation } from '../hooks/features/keyboardNavigation/useGridKeyboardNavigation';
|
|
20
20
|
export { useGridPagination, paginationStateInitializer } from '../hooks/features/pagination/useGridPagination';
|
|
21
21
|
export { useGridPreferencesPanel, preferencePanelStateInitializer } from '../hooks/features/preferencesPanel/useGridPreferencesPanel';
|
|
22
22
|
export { useGridEditing as useGridEditing_new, editingStateInitializer as editingStateInitializer_new } from '../hooks/features/editRows/useGridEditing.new';
|
package/modern/locales/arSD.js
CHANGED
|
@@ -103,6 +103,8 @@ const arSDGrid = {
|
|
|
103
103
|
unGroupColumn: name => `إيقاف التجميع حسب ${name}`,
|
|
104
104
|
// Master/detail
|
|
105
105
|
expandDetailPanel: 'توسيع',
|
|
106
|
-
collapseDetailPanel: 'طوي'
|
|
106
|
+
collapseDetailPanel: 'طوي' // Row reordering text
|
|
107
|
+
// rowReorderingHeaderName: 'Row reordering',
|
|
108
|
+
|
|
107
109
|
};
|
|
108
110
|
export const arSD = getGridLocalization(arSDGrid, arSDCore);
|
package/modern/locales/bgBG.js
CHANGED
|
@@ -103,6 +103,8 @@ const bgBGGrid = {
|
|
|
103
103
|
unGroupColumn: name => `Спри групиране по ${name}`,
|
|
104
104
|
// Master/detail
|
|
105
105
|
expandDetailPanel: 'Разгъване',
|
|
106
|
-
collapseDetailPanel: 'Свиване'
|
|
106
|
+
collapseDetailPanel: 'Свиване' // Row reordering text
|
|
107
|
+
// rowReorderingHeaderName: 'Row reordering',
|
|
108
|
+
|
|
107
109
|
};
|
|
108
110
|
export const bgBG = getGridLocalization(bgBGGrid, bgBGCore);
|
package/modern/locales/csCZ.js
CHANGED
|
@@ -138,6 +138,8 @@ const csCZGrid = {
|
|
|
138
138
|
unGroupColumn: name => `Přestat zoskupovat podle ${name}` // Master/detail
|
|
139
139
|
// expandDetailPanel: 'Expand',
|
|
140
140
|
// collapseDetailPanel: 'Collapse',
|
|
141
|
+
// Row reordering text
|
|
142
|
+
// rowReorderingHeaderName: 'Row reordering',
|
|
141
143
|
|
|
142
144
|
};
|
|
143
145
|
export const csCZ = getGridLocalization(csCZGrid, csCZCore);
|
package/modern/locales/daDK.js
CHANGED
|
@@ -6,7 +6,7 @@ const daDKGrid = {
|
|
|
6
6
|
noResultsOverlayLabel: 'Ingen resultater',
|
|
7
7
|
errorOverlayDefaultLabel: 'Der skete en fejl.',
|
|
8
8
|
// Density selector toolbar button text
|
|
9
|
-
|
|
9
|
+
toolbarDensity: 'Tæthed',
|
|
10
10
|
toolbarDensityLabel: 'Tæthed',
|
|
11
11
|
toolbarDensityCompact: 'Kompakt',
|
|
12
12
|
toolbarDensityStandard: 'Standard',
|
|
@@ -15,7 +15,7 @@ const daDKGrid = {
|
|
|
15
15
|
toolbarColumns: 'Kolonne',
|
|
16
16
|
toolbarColumnsLabel: 'Vælg kolonne',
|
|
17
17
|
// Filters toolbar button text
|
|
18
|
-
|
|
18
|
+
toolbarFilters: 'Filtre',
|
|
19
19
|
toolbarFiltersLabel: 'Vis filtre',
|
|
20
20
|
toolbarFiltersTooltipHide: 'Skjul filtre',
|
|
21
21
|
toolbarFiltersTooltipShow: 'Vis filtre',
|
|
@@ -24,7 +24,7 @@ const daDKGrid = {
|
|
|
24
24
|
// toolbarExport: 'Export',
|
|
25
25
|
toolbarExportLabel: 'Eksporter',
|
|
26
26
|
toolbarExportCSV: 'Download som CSV',
|
|
27
|
-
|
|
27
|
+
toolbarExportPrint: 'Print',
|
|
28
28
|
// Columns panel text
|
|
29
29
|
columnsPanelTextFieldLabel: 'Find kolonne',
|
|
30
30
|
columnsPanelTextFieldPlaceholder: 'Kolonne titel',
|
|
@@ -34,11 +34,11 @@ const daDKGrid = {
|
|
|
34
34
|
// Filter panel text
|
|
35
35
|
filterPanelAddFilter: 'Tilføj filter',
|
|
36
36
|
filterPanelDeleteIconLabel: 'Slet',
|
|
37
|
-
|
|
37
|
+
filterPanelLinkOperator: 'Logisk operator',
|
|
38
38
|
filterPanelOperators: 'Operatorer',
|
|
39
39
|
// TODO v6: rename to filterPanelOperator
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
filterPanelOperatorAnd: 'Og',
|
|
41
|
+
filterPanelOperatorOr: 'Eller',
|
|
42
42
|
filterPanelColumns: 'Kolonne',
|
|
43
43
|
filterPanelInputLabel: 'Værdi',
|
|
44
44
|
filterPanelInputPlaceholder: 'Filter værdi',
|
|
@@ -47,46 +47,46 @@ const daDKGrid = {
|
|
|
47
47
|
filterOperatorEquals: 'Lig med',
|
|
48
48
|
filterOperatorStartsWith: 'Begynder med',
|
|
49
49
|
filterOperatorEndsWith: 'Ender med',
|
|
50
|
-
filterOperatorIs: '
|
|
51
|
-
filterOperatorNot: '
|
|
50
|
+
filterOperatorIs: 'Er lig med',
|
|
51
|
+
filterOperatorNot: 'Er ikke lig med',
|
|
52
52
|
filterOperatorAfter: 'Efter',
|
|
53
53
|
filterOperatorOnOrAfter: 'På eller efter',
|
|
54
54
|
filterOperatorBefore: 'Før',
|
|
55
55
|
filterOperatorOnOrBefore: 'På eller før',
|
|
56
|
-
filterOperatorIsEmpty: 'Indeholder data',
|
|
57
|
-
filterOperatorIsNotEmpty: 'Indeholder
|
|
58
|
-
|
|
56
|
+
filterOperatorIsEmpty: 'Indeholder ikke data',
|
|
57
|
+
filterOperatorIsNotEmpty: 'Indeholder data',
|
|
58
|
+
filterOperatorIsAnyOf: 'indeholder en af',
|
|
59
59
|
// Filter values text
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
60
|
+
filterValueAny: 'hvilken som helst',
|
|
61
|
+
filterValueTrue: 'positiv',
|
|
62
|
+
filterValueFalse: 'negativ',
|
|
63
63
|
// Column menu text
|
|
64
|
-
|
|
64
|
+
columnMenuLabel: 'Menu',
|
|
65
65
|
columnMenuShowColumns: 'Vis Kolonner',
|
|
66
|
-
|
|
66
|
+
columnMenuFilter: 'Filtre',
|
|
67
67
|
columnMenuHideColumn: 'Skjul',
|
|
68
68
|
columnMenuUnsort: 'Fjern sortering',
|
|
69
69
|
columnMenuSortAsc: 'Sorter stigende',
|
|
70
70
|
columnMenuSortDesc: 'Sorter faldende',
|
|
71
71
|
// Column header text
|
|
72
|
-
columnHeaderFiltersTooltipActive: count => count !== 1 ? `${count} aktive filtre` :
|
|
72
|
+
columnHeaderFiltersTooltipActive: count => count !== 1 ? `${count} aktive filtre` : `Ét aktivt filter`,
|
|
73
73
|
columnHeaderFiltersLabel: 'Vis filtre',
|
|
74
74
|
columnHeaderSortIconLabel: 'Sorter',
|
|
75
75
|
// Rows selected footer text
|
|
76
|
-
footerRowSelected: count => count !== 1 ? `${count.toLocaleString()} rækker valgt` :
|
|
76
|
+
footerRowSelected: count => count !== 1 ? `${count.toLocaleString()} rækker valgt` : `Én række valgt`,
|
|
77
77
|
// Total row amount footer text
|
|
78
|
-
footerTotalRows: '
|
|
78
|
+
footerTotalRows: 'Antal rækker i alt:',
|
|
79
79
|
// Total visible row amount footer text
|
|
80
80
|
footerTotalVisibleRows: (visibleCount, totalCount) => `${visibleCount.toLocaleString()} af ${totalCount.toLocaleString()}`,
|
|
81
81
|
// Checkbox selection text
|
|
82
82
|
checkboxSelectionHeaderName: 'Afkrydsningsvalg',
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
83
|
+
checkboxSelectionSelectAllRows: 'Vælg alle rækker',
|
|
84
|
+
checkboxSelectionUnselectAllRows: 'Fravælg alle rækker',
|
|
85
|
+
checkboxSelectionSelectRow: 'Vælg række',
|
|
86
|
+
checkboxSelectionUnselectRow: 'Fravælg række',
|
|
87
87
|
// Boolean cell text
|
|
88
|
-
|
|
89
|
-
|
|
88
|
+
booleanCellTrueLabel: 'ja',
|
|
89
|
+
booleanCellFalseLabel: 'nej',
|
|
90
90
|
// Actions cell more text
|
|
91
91
|
actionsCellMore: 'mere',
|
|
92
92
|
// Column pinning text
|
|
@@ -96,13 +96,15 @@ const daDKGrid = {
|
|
|
96
96
|
// Tree Data
|
|
97
97
|
treeDataGroupingHeaderName: 'Gruppering',
|
|
98
98
|
treeDataExpand: 'Vis underelementer',
|
|
99
|
-
treeDataCollapse: 'Skjul underelementer'
|
|
100
|
-
//
|
|
101
|
-
|
|
102
|
-
|
|
99
|
+
treeDataCollapse: 'Skjul underelementer',
|
|
100
|
+
// Grouping columns
|
|
101
|
+
groupingColumnHeaderName: 'Gruppér',
|
|
102
|
+
groupColumn: name => `Gruppér efter ${name}`,
|
|
103
|
+
unGroupColumn: name => `Fjern gruppéring efter ${name}`,
|
|
103
104
|
// Master/detail
|
|
104
|
-
|
|
105
|
-
|
|
105
|
+
expandDetailPanel: 'Udvid',
|
|
106
|
+
collapseDetailPanel: 'Kollaps' // Row reordering text
|
|
107
|
+
// rowReorderingHeaderName: 'Row reordering',
|
|
106
108
|
|
|
107
109
|
};
|
|
108
110
|
export const daDK = getGridLocalization(daDKGrid, daDKCore);
|
package/modern/locales/deDE.js
CHANGED
|
@@ -103,6 +103,8 @@ const deDEGrid = {
|
|
|
103
103
|
unGroupColumn: name => `Gruppierung nach ${name} aufheben`,
|
|
104
104
|
// Master/detail
|
|
105
105
|
expandDetailPanel: 'Aufklappen',
|
|
106
|
-
collapseDetailPanel: 'Zuklappen'
|
|
106
|
+
collapseDetailPanel: 'Zuklappen' // Row reordering text
|
|
107
|
+
// rowReorderingHeaderName: 'Row reordering',
|
|
108
|
+
|
|
107
109
|
};
|
|
108
110
|
export const deDE = getGridLocalization(deDEGrid, deDECore);
|