@mui/x-data-grid 7.0.0-beta.2 → 7.0.0-beta.4
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 +298 -23
- package/DataGrid/DataGrid.js +0 -6
- package/colDef/gridActionsColDef.js +1 -0
- package/colDef/gridBooleanColDef.js +1 -0
- package/colDef/gridCheckboxSelectionColDef.js +1 -0
- package/components/GridRow.d.ts +3 -1
- package/components/GridRow.js +10 -2
- package/components/GridScrollbarFillerCell.js +6 -21
- package/components/cell/GridCell.js +10 -12
- package/components/columnSelection/GridCellCheckboxRenderer.js +1 -2
- package/components/containers/GridRootStyles.js +51 -23
- package/components/panel/GridPanel.d.ts +1 -1
- package/components/panel/filterPanel/GridFilterInputBoolean.js +6 -4
- package/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +8 -2
- package/components/panel/filterPanel/GridFilterInputSingleSelect.js +6 -4
- package/components/panel/filterPanel/GridFilterInputValue.js +4 -3
- package/components/virtualization/GridVirtualScrollerRenderZone.js +10 -3
- package/constants/gridClasses.d.ts +24 -8
- package/constants/gridClasses.js +1 -1
- package/hooks/features/clipboard/useGridClipboard.js +1 -1
- package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +5 -5
- package/hooks/features/columnHeaders/useGridColumnHeaders.js +46 -48
- package/hooks/features/editing/useGridCellEditing.js +3 -4
- package/hooks/features/editing/useGridRowEditing.js +3 -4
- package/hooks/features/sorting/useGridSorting.js +1 -2
- package/hooks/features/virtualization/gridVirtualizationSelectors.d.ts +9 -0
- package/hooks/features/virtualization/gridVirtualizationSelectors.js +7 -0
- package/hooks/features/virtualization/useGridVirtualScroller.js +19 -16
- package/hooks/features/virtualization/useGridVirtualization.d.ts +8 -0
- package/hooks/features/virtualization/useGridVirtualization.js +6 -1
- package/index.js +1 -1
- package/internals/index.d.ts +1 -1
- package/internals/index.js +1 -1
- package/models/colDef/gridColDef.d.ts +6 -0
- package/models/events/gridEventLookup.d.ts +1 -8
- package/models/props/DataGridProps.d.ts +0 -6
- package/modern/DataGrid/DataGrid.js +0 -6
- package/modern/colDef/gridActionsColDef.js +1 -0
- package/modern/colDef/gridBooleanColDef.js +1 -0
- package/modern/colDef/gridCheckboxSelectionColDef.js +1 -0
- package/modern/components/GridRow.js +10 -2
- package/modern/components/GridScrollbarFillerCell.js +6 -21
- package/modern/components/cell/GridCell.js +10 -12
- package/modern/components/columnSelection/GridCellCheckboxRenderer.js +1 -2
- package/modern/components/containers/GridRootStyles.js +51 -23
- package/modern/components/panel/filterPanel/GridFilterInputBoolean.js +6 -4
- package/modern/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +8 -2
- package/modern/components/panel/filterPanel/GridFilterInputSingleSelect.js +6 -4
- package/modern/components/panel/filterPanel/GridFilterInputValue.js +4 -3
- package/modern/components/virtualization/GridVirtualScrollerRenderZone.js +10 -3
- package/modern/constants/gridClasses.js +1 -1
- package/modern/hooks/features/clipboard/useGridClipboard.js +1 -1
- package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +46 -48
- package/modern/hooks/features/editing/useGridCellEditing.js +3 -4
- package/modern/hooks/features/editing/useGridRowEditing.js +3 -4
- package/modern/hooks/features/sorting/useGridSorting.js +1 -2
- package/modern/hooks/features/virtualization/gridVirtualizationSelectors.js +7 -0
- package/modern/hooks/features/virtualization/useGridVirtualScroller.js +18 -14
- package/modern/hooks/features/virtualization/useGridVirtualization.js +6 -1
- package/modern/index.js +1 -1
- package/modern/internals/index.js +1 -1
- package/modern/utils/keyboardUtils.js +20 -11
- package/node/DataGrid/DataGrid.js +0 -6
- package/node/colDef/gridActionsColDef.js +1 -0
- package/node/colDef/gridBooleanColDef.js +1 -0
- package/node/colDef/gridCheckboxSelectionColDef.js +1 -0
- package/node/components/GridRow.js +10 -2
- package/node/components/GridScrollbarFillerCell.js +5 -20
- package/node/components/cell/GridCell.js +10 -12
- package/node/components/columnSelection/GridCellCheckboxRenderer.js +1 -2
- package/node/components/containers/GridRootStyles.js +51 -23
- package/node/components/panel/filterPanel/GridFilterInputBoolean.js +6 -4
- package/node/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +8 -2
- package/node/components/panel/filterPanel/GridFilterInputSingleSelect.js +6 -4
- package/node/components/panel/filterPanel/GridFilterInputValue.js +4 -3
- package/node/components/virtualization/GridVirtualScrollerRenderZone.js +10 -3
- package/node/constants/gridClasses.js +1 -1
- package/node/hooks/features/clipboard/useGridClipboard.js +1 -1
- package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +45 -47
- package/node/hooks/features/editing/useGridCellEditing.js +2 -3
- package/node/hooks/features/editing/useGridRowEditing.js +2 -3
- package/node/hooks/features/sorting/useGridSorting.js +1 -2
- package/node/hooks/features/virtualization/gridVirtualizationSelectors.js +8 -1
- package/node/hooks/features/virtualization/useGridVirtualScroller.js +17 -13
- package/node/hooks/features/virtualization/useGridVirtualization.js +7 -2
- package/node/index.js +1 -1
- package/node/internals/index.js +7 -0
- package/node/utils/keyboardUtils.js +25 -20
- package/package.json +3 -3
- package/utils/keyboardUtils.d.ts +7 -6
- package/utils/keyboardUtils.js +20 -11
- package/legacy/DataGrid/DataGrid.js +0 -670
- package/legacy/DataGrid/index.js +0 -2
- package/legacy/DataGrid/useDataGridComponent.js +0 -81
- package/legacy/DataGrid/useDataGridProps.js +0 -98
- package/legacy/colDef/gridActionsColDef.js +0 -18
- package/legacy/colDef/gridBooleanColDef.js +0 -42
- package/legacy/colDef/gridBooleanOperators.js +0 -16
- package/legacy/colDef/gridCheckboxSelectionColDef.js +0 -33
- package/legacy/colDef/gridDateColDef.js +0 -62
- package/legacy/colDef/gridDateOperators.js +0 -115
- package/legacy/colDef/gridDefaultColumnTypes.js +0 -19
- package/legacy/colDef/gridNumericColDef.js +0 -19
- package/legacy/colDef/gridNumericOperators.js +0 -145
- package/legacy/colDef/gridSingleSelectColDef.js +0 -64
- package/legacy/colDef/gridSingleSelectOperators.js +0 -46
- package/legacy/colDef/gridStringColDef.js +0 -27
- package/legacy/colDef/gridStringOperators.js +0 -112
- package/legacy/colDef/index.js +0 -13
- package/legacy/components/GridApiContext.js +0 -5
- package/legacy/components/GridColumnHeaders.js +0 -94
- package/legacy/components/GridDetailPanels.js +0 -4
- package/legacy/components/GridFooter.js +0 -42
- package/legacy/components/GridHeader.js +0 -13
- package/legacy/components/GridHeaders.js +0 -53
- package/legacy/components/GridLoadingOverlay.js +0 -21
- package/legacy/components/GridNoResultsOverlay.js +0 -14
- package/legacy/components/GridNoRowsOverlay.js +0 -23
- package/legacy/components/GridPagination.js +0 -85
- package/legacy/components/GridPinnedRows.js +0 -4
- package/legacy/components/GridRow.js +0 -457
- package/legacy/components/GridRowCount.js +0 -63
- package/legacy/components/GridScrollbarFillerCell.js +0 -34
- package/legacy/components/GridSelectedRowCount.js +0 -66
- package/legacy/components/base/GridBody.js +0 -2
- package/legacy/components/base/GridFooterPlaceholder.js +0 -12
- package/legacy/components/base/GridOverlays.js +0 -122
- package/legacy/components/base/index.js +0 -3
- package/legacy/components/cell/GridActionsCell.js +0 -294
- package/legacy/components/cell/GridActionsCellItem.js +0 -69
- package/legacy/components/cell/GridBooleanCell.js +0 -121
- package/legacy/components/cell/GridCell.js +0 -350
- package/legacy/components/cell/GridEditBooleanCell.js +0 -174
- package/legacy/components/cell/GridEditDateCell.js +0 -230
- package/legacy/components/cell/GridEditInputCell.js +0 -198
- package/legacy/components/cell/GridEditSingleSelectCell.js +0 -231
- package/legacy/components/cell/GridSkeletonCell.js +0 -52
- package/legacy/components/cell/index.js +0 -9
- package/legacy/components/columnHeaders/ColumnHeaderMenuIcon.js +0 -59
- package/legacy/components/columnHeaders/GridBaseColumnHeaders.js +0 -41
- package/legacy/components/columnHeaders/GridColumnGroupHeader.js +0 -132
- package/legacy/components/columnHeaders/GridColumnHeaderFilterIconButton.js +0 -93
- package/legacy/components/columnHeaders/GridColumnHeaderItem.js +0 -212
- package/legacy/components/columnHeaders/GridColumnHeaderSeparator.js +0 -71
- package/legacy/components/columnHeaders/GridColumnHeaderSortIcon.js +0 -79
- package/legacy/components/columnHeaders/GridColumnHeaderTitle.js +0 -84
- package/legacy/components/columnHeaders/GridColumnHeadersInner.js +0 -55
- package/legacy/components/columnHeaders/GridGenericColumnHeaderItem.js +0 -107
- package/legacy/components/columnHeaders/GridIconButtonContainer.js +0 -41
- package/legacy/components/columnHeaders/index.js +0 -5
- package/legacy/components/columnSelection/GridCellCheckboxRenderer.js +0 -160
- package/legacy/components/columnSelection/GridHeaderCheckbox.js +0 -134
- package/legacy/components/columnSelection/index.js +0 -2
- package/legacy/components/columnsManagement/GridColumnsManagement.js +0 -307
- package/legacy/components/columnsManagement/index.js +0 -1
- package/legacy/components/columnsManagement/utils.js +0 -22
- package/legacy/components/containers/GridFooterContainer.js +0 -50
- package/legacy/components/containers/GridOverlay.js +0 -52
- package/legacy/components/containers/GridRoot.js +0 -79
- package/legacy/components/containers/GridRootStyles.js +0 -398
- package/legacy/components/containers/GridToolbarContainer.js +0 -59
- package/legacy/components/containers/index.js +0 -4
- package/legacy/components/index.js +0 -19
- package/legacy/components/menu/GridMenu.js +0 -132
- package/legacy/components/menu/columnMenu/GridColumnHeaderMenu.js +0 -61
- package/legacy/components/menu/columnMenu/GridColumnMenu.js +0 -81
- package/legacy/components/menu/columnMenu/GridColumnMenuContainer.js +0 -56
- package/legacy/components/menu/columnMenu/GridColumnMenuItemProps.js +0 -1
- package/legacy/components/menu/columnMenu/GridColumnMenuProps.js +0 -1
- package/legacy/components/menu/columnMenu/index.js +0 -9
- package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuColumnsItem.js +0 -21
- package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +0 -41
- package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +0 -60
- package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +0 -41
- package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +0 -80
- package/legacy/components/menu/columnMenu/menuItems/index.js +0 -5
- package/legacy/components/menu/index.js +0 -2
- package/legacy/components/panel/GridColumnsPanel.js +0 -22
- package/legacy/components/panel/GridPanel.js +0 -137
- package/legacy/components/panel/GridPanelContent.js +0 -49
- package/legacy/components/panel/GridPanelFooter.js +0 -50
- package/legacy/components/panel/GridPanelHeader.js +0 -48
- package/legacy/components/panel/GridPanelWrapper.js +0 -64
- package/legacy/components/panel/GridPreferencesPanel.js +0 -26
- package/legacy/components/panel/filterPanel/GridFilterForm.js +0 -528
- package/legacy/components/panel/filterPanel/GridFilterInputBoolean.js +0 -115
- package/legacy/components/panel/filterPanel/GridFilterInputDate.js +0 -121
- package/legacy/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +0 -116
- package/legacy/components/panel/filterPanel/GridFilterInputMultipleValue.js +0 -102
- package/legacy/components/panel/filterPanel/GridFilterInputSingleSelect.js +0 -146
- package/legacy/components/panel/filterPanel/GridFilterInputValue.js +0 -104
- package/legacy/components/panel/filterPanel/GridFilterInputValueProps.js +0 -1
- package/legacy/components/panel/filterPanel/GridFilterPanel.js +0 -264
- package/legacy/components/panel/filterPanel/filterPanelUtils.js +0 -22
- package/legacy/components/panel/filterPanel/index.js +0 -9
- package/legacy/components/panel/index.js +0 -7
- package/legacy/components/reexportable.js +0 -1
- package/legacy/components/toolbar/GridToolbar.js +0 -64
- package/legacy/components/toolbar/GridToolbarColumnsButton.js +0 -68
- package/legacy/components/toolbar/GridToolbarDensitySelector.js +0 -142
- package/legacy/components/toolbar/GridToolbarExport.js +0 -80
- package/legacy/components/toolbar/GridToolbarExportContainer.js +0 -105
- package/legacy/components/toolbar/GridToolbarFilterButton.js +0 -136
- package/legacy/components/toolbar/GridToolbarQuickFilter.js +0 -164
- package/legacy/components/toolbar/index.js +0 -7
- package/legacy/components/virtualization/GridBottomContainer.js +0 -25
- package/legacy/components/virtualization/GridMainContainer.js +0 -20
- package/legacy/components/virtualization/GridTopContainer.js +0 -35
- package/legacy/components/virtualization/GridVirtualScrollbar.js +0 -129
- package/legacy/components/virtualization/GridVirtualScroller.js +0 -93
- package/legacy/components/virtualization/GridVirtualScrollerContent.js +0 -35
- package/legacy/components/virtualization/GridVirtualScrollerFiller.js +0 -70
- package/legacy/components/virtualization/GridVirtualScrollerRenderZone.js +0 -42
- package/legacy/constants/defaultGridSlotsComponents.js +0 -33
- package/legacy/constants/envConstants.js +0 -19
- package/legacy/constants/gridClasses.js +0 -5
- package/legacy/constants/gridDetailPanelToggleField.js +0 -2
- package/legacy/constants/index.js +0 -3
- package/legacy/constants/localeTextConstants.js +0 -158
- package/legacy/context/GridContextProvider.js +0 -21
- package/legacy/context/GridRootPropsContext.js +0 -6
- package/legacy/context/index.js +0 -1
- package/legacy/hooks/core/gridCoreSelector.js +0 -7
- package/legacy/hooks/core/index.js +0 -1
- package/legacy/hooks/core/pipeProcessing/gridPipeProcessingApi.js +0 -1
- package/legacy/hooks/core/pipeProcessing/index.js +0 -4
- package/legacy/hooks/core/pipeProcessing/useGridPipeProcessing.js +0 -114
- package/legacy/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +0 -26
- package/legacy/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +0 -26
- package/legacy/hooks/core/strategyProcessing/gridStrategyProcessingApi.js +0 -1
- package/legacy/hooks/core/strategyProcessing/index.js +0 -3
- package/legacy/hooks/core/strategyProcessing/useGridRegisterStrategyProcessor.js +0 -18
- package/legacy/hooks/core/strategyProcessing/useGridStrategyProcessing.js +0 -116
- package/legacy/hooks/core/useGridApiInitialization.js +0 -124
- package/legacy/hooks/core/useGridInitialization.js +0 -26
- package/legacy/hooks/core/useGridLocaleText.js +0 -12
- package/legacy/hooks/core/useGridLoggerFactory.js +0 -51
- package/legacy/hooks/core/useGridRefs.js +0 -13
- package/legacy/hooks/core/useGridStateInitialization.js +0 -106
- package/legacy/hooks/core/useGridTheme.js +0 -21
- package/legacy/hooks/features/clipboard/useGridClipboard.js +0 -92
- package/legacy/hooks/features/columnGrouping/gridColumnGroupsInterfaces.js +0 -1
- package/legacy/hooks/features/columnGrouping/gridColumnGroupsSelector.js +0 -24
- package/legacy/hooks/features/columnGrouping/gridColumnGroupsUtils.js +0 -92
- package/legacy/hooks/features/columnGrouping/index.js +0 -2
- package/legacy/hooks/features/columnGrouping/useGridColumnGrouping.js +0 -140
- package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +0 -275
- package/legacy/hooks/features/columnMenu/columnMenuInterfaces.js +0 -1
- package/legacy/hooks/features/columnMenu/columnMenuSelector.js +0 -3
- package/legacy/hooks/features/columnMenu/index.js +0 -2
- package/legacy/hooks/features/columnMenu/useGridColumnMenu.js +0 -108
- package/legacy/hooks/features/columnMenu/useGridColumnMenuSlots.js +0 -71
- package/legacy/hooks/features/columns/gridColumnsInterfaces.js +0 -9
- package/legacy/hooks/features/columns/gridColumnsSelector.js +0 -174
- package/legacy/hooks/features/columns/gridColumnsUtils.js +0 -338
- package/legacy/hooks/features/columns/index.js +0 -2
- package/legacy/hooks/features/columns/useGridColumnSpanning.js +0 -105
- package/legacy/hooks/features/columns/useGridColumns.js +0 -319
- package/legacy/hooks/features/density/densitySelector.js +0 -10
- package/legacy/hooks/features/density/densityState.js +0 -1
- package/legacy/hooks/features/density/index.js +0 -2
- package/legacy/hooks/features/density/useGridDensity.js +0 -48
- package/legacy/hooks/features/dimensions/gridDimensionsApi.js +0 -1
- package/legacy/hooks/features/dimensions/gridDimensionsSelectors.js +0 -3
- package/legacy/hooks/features/dimensions/index.js +0 -2
- package/legacy/hooks/features/dimensions/useGridDimensions.js +0 -302
- package/legacy/hooks/features/editing/gridEditingSelectors.js +0 -4
- package/legacy/hooks/features/editing/useGridCellEditing.js +0 -456
- package/legacy/hooks/features/editing/useGridEditing.js +0 -145
- package/legacy/hooks/features/editing/useGridRowEditing.js +0 -567
- package/legacy/hooks/features/events/useGridEvents.js +0 -23
- package/legacy/hooks/features/export/serializers/csvSerializer.js +0 -155
- package/legacy/hooks/features/export/useGridCsvExport.js +0 -75
- package/legacy/hooks/features/export/useGridPrintExport.js +0 -313
- package/legacy/hooks/features/export/utils.js +0 -49
- package/legacy/hooks/features/filter/gridFilterSelector.js +0 -165
- package/legacy/hooks/features/filter/gridFilterState.js +0 -20
- package/legacy/hooks/features/filter/gridFilterUtils.js +0 -330
- package/legacy/hooks/features/filter/index.js +0 -2
- package/legacy/hooks/features/filter/useGridFilter.js +0 -378
- package/legacy/hooks/features/focus/gridFocusState.js +0 -1
- package/legacy/hooks/features/focus/gridFocusStateSelector.js +0 -31
- package/legacy/hooks/features/focus/index.js +0 -2
- package/legacy/hooks/features/focus/useGridFocus.js +0 -408
- package/legacy/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +0 -10
- package/legacy/hooks/features/headerFiltering/index.js +0 -1
- package/legacy/hooks/features/headerFiltering/useGridHeaderFiltering.js +0 -93
- package/legacy/hooks/features/index.js +0 -16
- package/legacy/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +0 -565
- package/legacy/hooks/features/pagination/gridPaginationInterfaces.js +0 -1
- package/legacy/hooks/features/pagination/gridPaginationSelector.js +0 -115
- package/legacy/hooks/features/pagination/gridPaginationUtils.js +0 -31
- package/legacy/hooks/features/pagination/index.js +0 -2
- package/legacy/hooks/features/pagination/useGridPagination.js +0 -175
- package/legacy/hooks/features/preferencesPanel/gridPreferencePanelSelector.js +0 -3
- package/legacy/hooks/features/preferencesPanel/gridPreferencePanelState.js +0 -1
- package/legacy/hooks/features/preferencesPanel/gridPreferencePanelsValue.js +0 -6
- package/legacy/hooks/features/preferencesPanel/index.js +0 -3
- package/legacy/hooks/features/preferencesPanel/useGridPreferencesPanel.js +0 -125
- package/legacy/hooks/features/rowSelection/gridRowSelectionSelector.js +0 -19
- package/legacy/hooks/features/rowSelection/index.js +0 -1
- package/legacy/hooks/features/rowSelection/useGridRowSelection.js +0 -419
- package/legacy/hooks/features/rowSelection/useGridRowSelectionPreProcessors.js +0 -45
- package/legacy/hooks/features/rowSelection/utils.js +0 -8
- package/legacy/hooks/features/rows/gridRowsInterfaces.js +0 -1
- package/legacy/hooks/features/rows/gridRowsMetaSelector.js +0 -3
- package/legacy/hooks/features/rows/gridRowsMetaState.js +0 -1
- package/legacy/hooks/features/rows/gridRowsSelector.js +0 -90
- package/legacy/hooks/features/rows/gridRowsUtils.js +0 -294
- package/legacy/hooks/features/rows/index.js +0 -4
- package/legacy/hooks/features/rows/useGridParamsApi.js +0 -142
- package/legacy/hooks/features/rows/useGridRows.js +0 -466
- package/legacy/hooks/features/rows/useGridRowsMeta.js +0 -236
- package/legacy/hooks/features/rows/useGridRowsPreProcessors.js +0 -82
- package/legacy/hooks/features/scroll/useGridScroll.js +0 -133
- package/legacy/hooks/features/sorting/gridSortingSelector.js +0 -56
- package/legacy/hooks/features/sorting/gridSortingState.js +0 -1
- package/legacy/hooks/features/sorting/gridSortingUtils.js +0 -154
- package/legacy/hooks/features/sorting/index.js +0 -2
- package/legacy/hooks/features/sorting/useGridSorting.js +0 -276
- package/legacy/hooks/features/statePersistence/gridStatePersistenceInterface.js +0 -1
- package/legacy/hooks/features/statePersistence/index.js +0 -1
- package/legacy/hooks/features/statePersistence/useGridStatePersistence.js +0 -25
- package/legacy/hooks/features/virtualization/gridVirtualizationSelectors.js +0 -52
- package/legacy/hooks/features/virtualization/index.js +0 -2
- package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +0 -643
- package/legacy/hooks/features/virtualization/useGridVirtualization.js +0 -58
- package/legacy/hooks/index.js +0 -3
- package/legacy/hooks/utils/index.js +0 -9
- package/legacy/hooks/utils/useFirstRender.js +0 -8
- package/legacy/hooks/utils/useGridApiContext.js +0 -9
- package/legacy/hooks/utils/useGridApiEventHandler.js +0 -105
- package/legacy/hooks/utils/useGridApiMethod.js +0 -11
- package/legacy/hooks/utils/useGridApiRef.js +0 -7
- package/legacy/hooks/utils/useGridAriaAttributes.js +0 -25
- package/legacy/hooks/utils/useGridInitializeState.js +0 -8
- package/legacy/hooks/utils/useGridLogger.js +0 -10
- package/legacy/hooks/utils/useGridNativeEventListener.js +0 -32
- package/legacy/hooks/utils/useGridPrivateApiContext.js +0 -12
- package/legacy/hooks/utils/useGridRootProps.js +0 -9
- package/legacy/hooks/utils/useGridSelector.js +0 -54
- package/legacy/hooks/utils/useGridVisibleRows.js +0 -42
- package/legacy/hooks/utils/useLazyRef.js +0 -11
- package/legacy/hooks/utils/useOnMount.js +0 -7
- package/legacy/hooks/utils/useResizeObserver.js +0 -36
- package/legacy/hooks/utils/useRunOnce.js +0 -18
- package/legacy/hooks/utils/useTimeout.js +0 -38
- package/legacy/index.js +0 -38
- package/legacy/internals/index.js +0 -68
- package/legacy/internals/utils/computeSlots.js +0 -17
- package/legacy/internals/utils/index.js +0 -3
- package/legacy/internals/utils/propValidation.js +0 -21
- package/legacy/internals/utils/useProps.js +0 -32
- package/legacy/joy/icons.js +0 -432
- package/legacy/joy/index.js +0 -2
- package/legacy/joy/joySlots.js +0 -420
- package/legacy/locales/arSD.js +0 -160
- package/legacy/locales/beBY.js +0 -184
- package/legacy/locales/bgBG.js +0 -160
- package/legacy/locales/coreLocales.js +0 -62
- package/legacy/locales/csCZ.js +0 -181
- package/legacy/locales/daDK.js +0 -160
- package/legacy/locales/deDE.js +0 -160
- package/legacy/locales/elGR.js +0 -160
- package/legacy/locales/enUS.js +0 -4
- package/legacy/locales/esES.js +0 -160
- package/legacy/locales/faIR.js +0 -160
- package/legacy/locales/fiFI.js +0 -160
- package/legacy/locales/frFR.js +0 -160
- package/legacy/locales/heIL.js +0 -160
- package/legacy/locales/hrHR.js +0 -160
- package/legacy/locales/huHU.js +0 -160
- package/legacy/locales/index.js +0 -35
- package/legacy/locales/itIT.js +0 -160
- package/legacy/locales/jaJP.js +0 -160
- package/legacy/locales/koKR.js +0 -162
- package/legacy/locales/nbNO.js +0 -162
- package/legacy/locales/nlNL.js +0 -160
- package/legacy/locales/plPL.js +0 -163
- package/legacy/locales/ptBR.js +0 -160
- package/legacy/locales/ptPT.js +0 -160
- package/legacy/locales/roRO.js +0 -160
- package/legacy/locales/ruRU.js +0 -181
- package/legacy/locales/skSK.js +0 -181
- package/legacy/locales/svSE.js +0 -160
- package/legacy/locales/trTR.js +0 -161
- package/legacy/locales/ukUA.js +0 -182
- package/legacy/locales/urPK.js +0 -160
- package/legacy/locales/viVN.js +0 -160
- package/legacy/locales/zhCN.js +0 -160
- package/legacy/locales/zhHK.js +0 -160
- package/legacy/locales/zhTW.js +0 -160
- package/legacy/material/components/MUISelectOption.js +0 -14
- package/legacy/material/icons/GridColumnUnsortedIcon.js +0 -16
- package/legacy/material/icons/index.js +0 -89
- package/legacy/material/index.js +0 -69
- package/legacy/models/api/gridApiCommon.js +0 -1
- package/legacy/models/api/gridApiCommunity.js +0 -1
- package/legacy/models/api/gridCallbackDetails.js +0 -1
- package/legacy/models/api/gridColumnApi.js +0 -1
- package/legacy/models/api/gridColumnGroupingApi.js +0 -1
- package/legacy/models/api/gridColumnMenuApi.js +0 -1
- package/legacy/models/api/gridColumnSpanning.js +0 -1
- package/legacy/models/api/gridCoreApi.js +0 -1
- package/legacy/models/api/gridCsvExportApi.js +0 -1
- package/legacy/models/api/gridDensityApi.js +0 -1
- package/legacy/models/api/gridEditingApi.js +0 -1
- package/legacy/models/api/gridFilterApi.js +0 -1
- package/legacy/models/api/gridFocusApi.js +0 -1
- package/legacy/models/api/gridHeaderFilteringApi.js +0 -1
- package/legacy/models/api/gridLocaleTextApi.js +0 -1
- package/legacy/models/api/gridLoggerApi.js +0 -1
- package/legacy/models/api/gridParamsApi.js +0 -1
- package/legacy/models/api/gridPreferencesPanelApi.js +0 -1
- package/legacy/models/api/gridPrintExportApi.js +0 -1
- package/legacy/models/api/gridRowApi.js +0 -1
- package/legacy/models/api/gridRowSelectionApi.js +0 -1
- package/legacy/models/api/gridRowsMetaApi.js +0 -1
- package/legacy/models/api/gridScrollApi.js +0 -1
- package/legacy/models/api/gridSortApi.js +0 -1
- package/legacy/models/api/gridStateApi.js +0 -1
- package/legacy/models/api/gridVirtualizationApi.js +0 -1
- package/legacy/models/api/index.js +0 -16
- package/legacy/models/colDef/gridColDef.js +0 -1
- package/legacy/models/colDef/gridColType.js +0 -1
- package/legacy/models/colDef/gridColumnTypesRecord.js +0 -1
- package/legacy/models/colDef/index.js +0 -6
- package/legacy/models/controlStateItem.js +0 -1
- package/legacy/models/cursorCoordinates.js +0 -1
- package/legacy/models/elementSize.js +0 -1
- package/legacy/models/events/gridEventListener.js +0 -1
- package/legacy/models/events/gridEventLookup.js +0 -1
- package/legacy/models/events/gridEventPublisher.js +0 -1
- package/legacy/models/events/index.js +0 -3
- package/legacy/models/gridApiCaches.js +0 -1
- package/legacy/models/gridCell.js +0 -1
- package/legacy/models/gridCellClass.js +0 -1
- package/legacy/models/gridColumnGrouping.js +0 -11
- package/legacy/models/gridColumnHeaderClass.js +0 -1
- package/legacy/models/gridColumnSpanning.js +0 -1
- package/legacy/models/gridDensity.js +0 -1
- package/legacy/models/gridEditRowModel.js +0 -16
- package/legacy/models/gridExport.js +0 -1
- package/legacy/models/gridFeatureMode.js +0 -1
- package/legacy/models/gridFilterItem.js +0 -11
- package/legacy/models/gridFilterModel.js +0 -1
- package/legacy/models/gridFilterOperator.js +0 -1
- package/legacy/models/gridHeaderFilteringModel.js +0 -1
- package/legacy/models/gridIconSlotsComponent.js +0 -1
- package/legacy/models/gridPaginationProps.js +0 -1
- package/legacy/models/gridRenderContextProps.js +0 -1
- package/legacy/models/gridRowSelectionModel.js +0 -1
- package/legacy/models/gridRows.js +0 -1
- package/legacy/models/gridSlotsComponent.js +0 -1
- package/legacy/models/gridSlotsComponentsProps.js +0 -1
- package/legacy/models/gridSortModel.js +0 -1
- package/legacy/models/gridStateCommunity.js +0 -1
- package/legacy/models/index.js +0 -29
- package/legacy/models/logger.js +0 -1
- package/legacy/models/muiEvent.js +0 -1
- package/legacy/models/params/gridCellParams.js +0 -1
- package/legacy/models/params/gridColumnGroupHeaderParams.js +0 -1
- package/legacy/models/params/gridColumnHeaderParams.js +0 -1
- package/legacy/models/params/gridColumnOrderChangeParams.js +0 -1
- package/legacy/models/params/gridColumnResizeParams.js +0 -1
- package/legacy/models/params/gridEditCellParams.js +0 -27
- package/legacy/models/params/gridHeaderSelectionCheckboxParams.js +0 -1
- package/legacy/models/params/gridMenuParams.js +0 -1
- package/legacy/models/params/gridPreferencePanelParams.js +0 -1
- package/legacy/models/params/gridRowParams.js +0 -44
- package/legacy/models/params/gridRowSelectionCheckboxParams.js +0 -1
- package/legacy/models/params/gridScrollParams.js +0 -1
- package/legacy/models/params/gridValueOptionsParams.js +0 -1
- package/legacy/models/params/index.js +0 -13
- package/legacy/models/props/DataGridProps.js +0 -1
- package/legacy/themeAugmentation/index.js +0 -4
- package/legacy/themeAugmentation/overrides.js +0 -1
- package/legacy/themeAugmentation/props.js +0 -1
- package/legacy/utils/EventManager.js +0 -91
- package/legacy/utils/Store.js +0 -34
- package/legacy/utils/cleanupTracking/CleanupTracking.js +0 -1
- package/legacy/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.js +0 -29
- package/legacy/utils/cleanupTracking/TimerBasedCleanupTracking.js +0 -52
- package/legacy/utils/createControllablePromise.js +0 -11
- package/legacy/utils/createSelector.js +0 -120
- package/legacy/utils/doesSupportPreventScroll.js +0 -13
- package/legacy/utils/domUtils.js +0 -49
- package/legacy/utils/exportAs.js +0 -40
- package/legacy/utils/fastMemo.js +0 -5
- package/legacy/utils/fastObjectShallowCompare.js +0 -32
- package/legacy/utils/getGridLocalization.js +0 -15
- package/legacy/utils/getPublicApiRef.js +0 -5
- package/legacy/utils/index.js +0 -1
- package/legacy/utils/keyboardUtils.js +0 -60
- package/legacy/utils/utils.js +0 -189
- package/legacy/utils/warning.js +0 -25
|
@@ -1,236 +0,0 @@
|
|
|
1
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
-
import * as React from 'react';
|
|
3
|
-
import { unstable_debounce as debounce } from '@mui/utils';
|
|
4
|
-
import { useGridVisibleRows } from '../../utils/useGridVisibleRows';
|
|
5
|
-
import { useGridApiMethod } from '../../utils/useGridApiMethod';
|
|
6
|
-
import { useGridSelector } from '../../utils/useGridSelector';
|
|
7
|
-
import { gridDensityFactorSelector } from '../density/densitySelector';
|
|
8
|
-
import { gridFilterModelSelector } from '../filter/gridFilterSelector';
|
|
9
|
-
import { gridPaginationSelector } from '../pagination/gridPaginationSelector';
|
|
10
|
-
import { gridSortModelSelector } from '../sorting/gridSortingSelector';
|
|
11
|
-
import { useGridRegisterPipeApplier } from '../../core/pipeProcessing';
|
|
12
|
-
import { gridPinnedRowsSelector } from './gridRowsSelector';
|
|
13
|
-
import { DATA_GRID_PROPS_DEFAULT_VALUES } from '../../../DataGrid/useDataGridProps';
|
|
14
|
-
|
|
15
|
-
// TODO: I think the row heights can now be encoded as a single `size` instead of `sizes.baseXxxx`
|
|
16
|
-
|
|
17
|
-
export var rowsMetaStateInitializer = function rowsMetaStateInitializer(state) {
|
|
18
|
-
return _extends({}, state, {
|
|
19
|
-
rowsMeta: {
|
|
20
|
-
currentPageTotalHeight: 0,
|
|
21
|
-
positions: []
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
};
|
|
25
|
-
var warnedOnceInvalidRowHeight = false;
|
|
26
|
-
var getValidRowHeight = function getValidRowHeight(rowHeightProp, defaultRowHeight, warningMessage) {
|
|
27
|
-
if (typeof rowHeightProp === 'number' && rowHeightProp > 0) {
|
|
28
|
-
return rowHeightProp;
|
|
29
|
-
}
|
|
30
|
-
if (process.env.NODE_ENV !== 'production' && !warnedOnceInvalidRowHeight && typeof rowHeightProp !== 'undefined' && rowHeightProp !== null) {
|
|
31
|
-
console.warn(warningMessage);
|
|
32
|
-
warnedOnceInvalidRowHeight = true;
|
|
33
|
-
}
|
|
34
|
-
return defaultRowHeight;
|
|
35
|
-
};
|
|
36
|
-
var rowHeightWarning = ["MUI X: The `rowHeight` prop should be a number greater than 0.", "The default value will be used instead."].join('\n');
|
|
37
|
-
var getRowHeightWarning = ["MUI X: The `getRowHeight` prop should return a number greater than 0 or 'auto'.", "The default value will be used instead."].join('\n');
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* @requires useGridPageSize (method)
|
|
41
|
-
* @requires useGridPage (method)
|
|
42
|
-
*/
|
|
43
|
-
export var useGridRowsMeta = function useGridRowsMeta(apiRef, props) {
|
|
44
|
-
var getRowHeightProp = props.getRowHeight,
|
|
45
|
-
getRowSpacing = props.getRowSpacing,
|
|
46
|
-
getEstimatedRowHeight = props.getEstimatedRowHeight;
|
|
47
|
-
var rowsHeightLookup = React.useRef(Object.create(null));
|
|
48
|
-
|
|
49
|
-
// Inspired by https://github.com/bvaughn/react-virtualized/blob/master/source/Grid/utils/CellSizeAndPositionManager.js
|
|
50
|
-
var lastMeasuredRowIndex = React.useRef(-1);
|
|
51
|
-
var hasRowWithAutoHeight = React.useRef(false);
|
|
52
|
-
var densityFactor = useGridSelector(apiRef, gridDensityFactorSelector);
|
|
53
|
-
var filterModel = useGridSelector(apiRef, gridFilterModelSelector);
|
|
54
|
-
var paginationState = useGridSelector(apiRef, gridPaginationSelector);
|
|
55
|
-
var sortModel = useGridSelector(apiRef, gridSortModelSelector);
|
|
56
|
-
var currentPage = useGridVisibleRows(apiRef, props);
|
|
57
|
-
var pinnedRows = useGridSelector(apiRef, gridPinnedRowsSelector);
|
|
58
|
-
var validRowHeight = getValidRowHeight(props.rowHeight, DATA_GRID_PROPS_DEFAULT_VALUES.rowHeight, rowHeightWarning);
|
|
59
|
-
var rowHeight = Math.floor(validRowHeight * densityFactor);
|
|
60
|
-
var hydrateRowsMeta = React.useCallback(function () {
|
|
61
|
-
var _pinnedRows$top, _pinnedRows$bottom;
|
|
62
|
-
hasRowWithAutoHeight.current = false;
|
|
63
|
-
var calculateRowProcessedSizes = function calculateRowProcessedSizes(row) {
|
|
64
|
-
if (!rowsHeightLookup.current[row.id]) {
|
|
65
|
-
rowsHeightLookup.current[row.id] = {
|
|
66
|
-
sizes: {
|
|
67
|
-
baseCenter: rowHeight
|
|
68
|
-
},
|
|
69
|
-
isResized: false,
|
|
70
|
-
autoHeight: false,
|
|
71
|
-
needsFirstMeasurement: true // Assume all rows will need to be measured by default
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
var _rowsHeightLookup$cur = rowsHeightLookup.current[row.id],
|
|
75
|
-
isResized = _rowsHeightLookup$cur.isResized,
|
|
76
|
-
needsFirstMeasurement = _rowsHeightLookup$cur.needsFirstMeasurement,
|
|
77
|
-
sizes = _rowsHeightLookup$cur.sizes;
|
|
78
|
-
var baseRowHeight = typeof rowHeight === 'number' && rowHeight > 0 ? rowHeight : 52;
|
|
79
|
-
var existingBaseRowHeight = sizes.baseCenter;
|
|
80
|
-
if (isResized) {
|
|
81
|
-
// Do not recalculate resized row height and use the value from the lookup
|
|
82
|
-
baseRowHeight = existingBaseRowHeight;
|
|
83
|
-
} else if (getRowHeightProp) {
|
|
84
|
-
var rowHeightFromUser = getRowHeightProp(_extends({}, row, {
|
|
85
|
-
densityFactor: densityFactor
|
|
86
|
-
}));
|
|
87
|
-
if (rowHeightFromUser === 'auto') {
|
|
88
|
-
if (needsFirstMeasurement) {
|
|
89
|
-
var estimatedRowHeight = getEstimatedRowHeight ? getEstimatedRowHeight(_extends({}, row, {
|
|
90
|
-
densityFactor: densityFactor
|
|
91
|
-
})) : rowHeight;
|
|
92
|
-
|
|
93
|
-
// If the row was not measured yet use the estimated row height
|
|
94
|
-
baseRowHeight = estimatedRowHeight != null ? estimatedRowHeight : rowHeight;
|
|
95
|
-
} else {
|
|
96
|
-
baseRowHeight = existingBaseRowHeight;
|
|
97
|
-
}
|
|
98
|
-
hasRowWithAutoHeight.current = true;
|
|
99
|
-
rowsHeightLookup.current[row.id].autoHeight = true;
|
|
100
|
-
} else {
|
|
101
|
-
// Default back to base rowHeight if getRowHeight returns invalid value.
|
|
102
|
-
baseRowHeight = getValidRowHeight(rowHeightFromUser, rowHeight, getRowHeightWarning);
|
|
103
|
-
rowsHeightLookup.current[row.id].needsFirstMeasurement = false;
|
|
104
|
-
rowsHeightLookup.current[row.id].autoHeight = false;
|
|
105
|
-
}
|
|
106
|
-
} else {
|
|
107
|
-
rowsHeightLookup.current[row.id].needsFirstMeasurement = false;
|
|
108
|
-
}
|
|
109
|
-
var initialHeights = {};
|
|
110
|
-
/* eslint-disable-next-line no-restricted-syntax */
|
|
111
|
-
for (var _key in sizes) {
|
|
112
|
-
if (/^base[A-Z]/.test(_key)) {
|
|
113
|
-
initialHeights[_key] = sizes[_key];
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
initialHeights.baseCenter = baseRowHeight;
|
|
117
|
-
if (getRowSpacing) {
|
|
118
|
-
var _spacing$top, _spacing$bottom;
|
|
119
|
-
var indexRelativeToCurrentPage = apiRef.current.getRowIndexRelativeToVisibleRows(row.id);
|
|
120
|
-
var spacing = getRowSpacing(_extends({}, row, {
|
|
121
|
-
isFirstVisible: indexRelativeToCurrentPage === 0,
|
|
122
|
-
isLastVisible: indexRelativeToCurrentPage === currentPage.rows.length - 1,
|
|
123
|
-
indexRelativeToCurrentPage: indexRelativeToCurrentPage
|
|
124
|
-
}));
|
|
125
|
-
initialHeights.spacingTop = (_spacing$top = spacing.top) != null ? _spacing$top : 0;
|
|
126
|
-
initialHeights.spacingBottom = (_spacing$bottom = spacing.bottom) != null ? _spacing$bottom : 0;
|
|
127
|
-
}
|
|
128
|
-
var processedSizes = apiRef.current.unstable_applyPipeProcessors('rowHeight', initialHeights, row);
|
|
129
|
-
rowsHeightLookup.current[row.id].sizes = processedSizes;
|
|
130
|
-
return processedSizes;
|
|
131
|
-
};
|
|
132
|
-
var positions = [];
|
|
133
|
-
var currentPageTotalHeight = currentPage.rows.reduce(function (acc, row) {
|
|
134
|
-
positions.push(acc);
|
|
135
|
-
var maximumBaseSize = 0;
|
|
136
|
-
var otherSizes = 0;
|
|
137
|
-
var processedSizes = calculateRowProcessedSizes(row);
|
|
138
|
-
/* eslint-disable-next-line no-restricted-syntax, guard-for-in */
|
|
139
|
-
for (var _key2 in processedSizes) {
|
|
140
|
-
var value = processedSizes[_key2];
|
|
141
|
-
if (/^base[A-Z]/.test(_key2)) {
|
|
142
|
-
maximumBaseSize = value > maximumBaseSize ? value : maximumBaseSize;
|
|
143
|
-
} else {
|
|
144
|
-
otherSizes += value;
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
return acc + maximumBaseSize + otherSizes;
|
|
148
|
-
}, 0);
|
|
149
|
-
pinnedRows == null || (_pinnedRows$top = pinnedRows.top) == null || _pinnedRows$top.forEach(function (row) {
|
|
150
|
-
calculateRowProcessedSizes(row);
|
|
151
|
-
});
|
|
152
|
-
pinnedRows == null || (_pinnedRows$bottom = pinnedRows.bottom) == null || _pinnedRows$bottom.forEach(function (row) {
|
|
153
|
-
calculateRowProcessedSizes(row);
|
|
154
|
-
});
|
|
155
|
-
apiRef.current.setState(function (state) {
|
|
156
|
-
return _extends({}, state, {
|
|
157
|
-
rowsMeta: {
|
|
158
|
-
currentPageTotalHeight: currentPageTotalHeight,
|
|
159
|
-
positions: positions
|
|
160
|
-
}
|
|
161
|
-
});
|
|
162
|
-
});
|
|
163
|
-
if (!hasRowWithAutoHeight.current) {
|
|
164
|
-
// No row has height=auto, so all rows are already measured
|
|
165
|
-
lastMeasuredRowIndex.current = Infinity;
|
|
166
|
-
}
|
|
167
|
-
apiRef.current.forceUpdate();
|
|
168
|
-
}, [apiRef, currentPage.rows, rowHeight, getRowHeightProp, getRowSpacing, getEstimatedRowHeight, pinnedRows, densityFactor]);
|
|
169
|
-
var getRowHeight = React.useCallback(function (rowId) {
|
|
170
|
-
var height = rowsHeightLookup.current[rowId];
|
|
171
|
-
return height ? height.sizes.baseCenter : rowHeight;
|
|
172
|
-
}, [rowHeight]);
|
|
173
|
-
var getRowInternalSizes = function getRowInternalSizes(rowId) {
|
|
174
|
-
var _rowsHeightLookup$cur2;
|
|
175
|
-
return (_rowsHeightLookup$cur2 = rowsHeightLookup.current[rowId]) == null ? void 0 : _rowsHeightLookup$cur2.sizes;
|
|
176
|
-
};
|
|
177
|
-
var setRowHeight = React.useCallback(function (id, height) {
|
|
178
|
-
rowsHeightLookup.current[id].sizes.baseCenter = height;
|
|
179
|
-
rowsHeightLookup.current[id].isResized = true;
|
|
180
|
-
rowsHeightLookup.current[id].needsFirstMeasurement = false;
|
|
181
|
-
hydrateRowsMeta();
|
|
182
|
-
}, [hydrateRowsMeta]);
|
|
183
|
-
var debouncedHydrateRowsMeta = React.useMemo(function () {
|
|
184
|
-
return debounce(hydrateRowsMeta, props.rowPositionsDebounceMs);
|
|
185
|
-
}, [hydrateRowsMeta, props.rowPositionsDebounceMs]);
|
|
186
|
-
var storeMeasuredRowHeight = React.useCallback(function (id, height) {
|
|
187
|
-
if (!rowsHeightLookup.current[id] || !rowsHeightLookup.current[id].autoHeight) {
|
|
188
|
-
return;
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
// Only trigger hydration if the value is different, otherwise we trigger a loop
|
|
192
|
-
var needsHydration = rowsHeightLookup.current[id].sizes.baseCenter !== height;
|
|
193
|
-
rowsHeightLookup.current[id].needsFirstMeasurement = false;
|
|
194
|
-
rowsHeightLookup.current[id].sizes.baseCenter = height;
|
|
195
|
-
if (needsHydration) {
|
|
196
|
-
debouncedHydrateRowsMeta();
|
|
197
|
-
}
|
|
198
|
-
}, [debouncedHydrateRowsMeta]);
|
|
199
|
-
var rowHasAutoHeight = React.useCallback(function (id) {
|
|
200
|
-
var _rowsHeightLookup$cur3;
|
|
201
|
-
return ((_rowsHeightLookup$cur3 = rowsHeightLookup.current[id]) == null ? void 0 : _rowsHeightLookup$cur3.autoHeight) || false;
|
|
202
|
-
}, []);
|
|
203
|
-
var getLastMeasuredRowIndex = React.useCallback(function () {
|
|
204
|
-
return lastMeasuredRowIndex.current;
|
|
205
|
-
}, []);
|
|
206
|
-
var setLastMeasuredRowIndex = React.useCallback(function (index) {
|
|
207
|
-
if (hasRowWithAutoHeight.current && index > lastMeasuredRowIndex.current) {
|
|
208
|
-
lastMeasuredRowIndex.current = index;
|
|
209
|
-
}
|
|
210
|
-
}, []);
|
|
211
|
-
var resetRowHeights = React.useCallback(function () {
|
|
212
|
-
rowsHeightLookup.current = {};
|
|
213
|
-
hydrateRowsMeta();
|
|
214
|
-
}, [hydrateRowsMeta]);
|
|
215
|
-
|
|
216
|
-
// The effect is used to build the rows meta data - currentPageTotalHeight and positions.
|
|
217
|
-
// Because of variable row height this is needed for the virtualization
|
|
218
|
-
React.useEffect(function () {
|
|
219
|
-
hydrateRowsMeta();
|
|
220
|
-
}, [rowHeight, filterModel, paginationState, sortModel, hydrateRowsMeta]);
|
|
221
|
-
useGridRegisterPipeApplier(apiRef, 'rowHeight', hydrateRowsMeta);
|
|
222
|
-
var rowsMetaApi = {
|
|
223
|
-
unstable_setLastMeasuredRowIndex: setLastMeasuredRowIndex,
|
|
224
|
-
unstable_getRowHeight: getRowHeight,
|
|
225
|
-
unstable_getRowInternalSizes: getRowInternalSizes,
|
|
226
|
-
unstable_setRowHeight: setRowHeight,
|
|
227
|
-
unstable_storeRowHeightMeasurement: storeMeasuredRowHeight,
|
|
228
|
-
resetRowHeights: resetRowHeights
|
|
229
|
-
};
|
|
230
|
-
var rowsMetaPrivateApi = {
|
|
231
|
-
getLastMeasuredRowIndex: getLastMeasuredRowIndex,
|
|
232
|
-
rowHasAutoHeight: rowHasAutoHeight
|
|
233
|
-
};
|
|
234
|
-
useGridApiMethod(apiRef, rowsMetaApi, 'public');
|
|
235
|
-
useGridApiMethod(apiRef, rowsMetaPrivateApi, 'private');
|
|
236
|
-
};
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
2
|
-
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
3
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
|
-
import { GRID_DEFAULT_STRATEGY, useGridRegisterStrategyProcessor } from '../../core/strategyProcessing';
|
|
5
|
-
import { buildRootGroup, GRID_ROOT_GROUP_ID } from './gridRowsUtils';
|
|
6
|
-
var createFlatRowTree = function createFlatRowTree(rows) {
|
|
7
|
-
var tree = _defineProperty({}, GRID_ROOT_GROUP_ID, _extends({}, buildRootGroup(), {
|
|
8
|
-
children: rows
|
|
9
|
-
}));
|
|
10
|
-
for (var i = 0; i < rows.length; i += 1) {
|
|
11
|
-
var rowId = rows[i];
|
|
12
|
-
tree[rowId] = {
|
|
13
|
-
id: rowId,
|
|
14
|
-
depth: 0,
|
|
15
|
-
parent: GRID_ROOT_GROUP_ID,
|
|
16
|
-
type: 'leaf',
|
|
17
|
-
groupingKey: null
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
return {
|
|
21
|
-
groupingName: GRID_DEFAULT_STRATEGY,
|
|
22
|
-
tree: tree,
|
|
23
|
-
treeDepths: {
|
|
24
|
-
0: rows.length
|
|
25
|
-
},
|
|
26
|
-
dataRowIds: rows
|
|
27
|
-
};
|
|
28
|
-
};
|
|
29
|
-
var updateFlatRowTree = function updateFlatRowTree(_ref) {
|
|
30
|
-
var previousTree = _ref.previousTree,
|
|
31
|
-
actions = _ref.actions;
|
|
32
|
-
var tree = _extends({}, previousTree);
|
|
33
|
-
var idsToRemoveFromRootGroup = {};
|
|
34
|
-
for (var i = 0; i < actions.remove.length; i += 1) {
|
|
35
|
-
var idToDelete = actions.remove[i];
|
|
36
|
-
idsToRemoveFromRootGroup[idToDelete] = true;
|
|
37
|
-
delete tree[idToDelete];
|
|
38
|
-
}
|
|
39
|
-
for (var _i = 0; _i < actions.insert.length; _i += 1) {
|
|
40
|
-
var idToInsert = actions.insert[_i];
|
|
41
|
-
tree[idToInsert] = {
|
|
42
|
-
id: idToInsert,
|
|
43
|
-
depth: 0,
|
|
44
|
-
parent: GRID_ROOT_GROUP_ID,
|
|
45
|
-
type: 'leaf',
|
|
46
|
-
groupingKey: null
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
// TODO rows v6: Support row unpinning
|
|
51
|
-
|
|
52
|
-
var rootGroup = tree[GRID_ROOT_GROUP_ID];
|
|
53
|
-
var rootGroupChildren = [].concat(_toConsumableArray(rootGroup.children), _toConsumableArray(actions.insert));
|
|
54
|
-
if (Object.values(idsToRemoveFromRootGroup).length) {
|
|
55
|
-
rootGroupChildren = rootGroupChildren.filter(function (id) {
|
|
56
|
-
return !idsToRemoveFromRootGroup[id];
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
tree[GRID_ROOT_GROUP_ID] = _extends({}, rootGroup, {
|
|
60
|
-
children: rootGroupChildren
|
|
61
|
-
});
|
|
62
|
-
return {
|
|
63
|
-
groupingName: GRID_DEFAULT_STRATEGY,
|
|
64
|
-
tree: tree,
|
|
65
|
-
treeDepths: {
|
|
66
|
-
0: rootGroupChildren.length
|
|
67
|
-
},
|
|
68
|
-
dataRowIds: rootGroupChildren
|
|
69
|
-
};
|
|
70
|
-
};
|
|
71
|
-
var flatRowTreeCreationMethod = function flatRowTreeCreationMethod(params) {
|
|
72
|
-
if (params.updates.type === 'full') {
|
|
73
|
-
return createFlatRowTree(params.updates.rows);
|
|
74
|
-
}
|
|
75
|
-
return updateFlatRowTree({
|
|
76
|
-
previousTree: params.previousTree,
|
|
77
|
-
actions: params.updates.actions
|
|
78
|
-
});
|
|
79
|
-
};
|
|
80
|
-
export var useGridRowsPreProcessors = function useGridRowsPreProcessors(apiRef) {
|
|
81
|
-
useGridRegisterStrategyProcessor(apiRef, GRID_DEFAULT_STRATEGY, 'rowTreeCreation', flatRowTreeCreationMethod);
|
|
82
|
-
};
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
import _typeof from "@babel/runtime/helpers/esm/typeof";
|
|
2
|
-
import * as React from 'react';
|
|
3
|
-
import { useTheme } from '@mui/material/styles';
|
|
4
|
-
import { useGridLogger } from '../../utils/useGridLogger';
|
|
5
|
-
import { gridColumnPositionsSelector, gridVisibleColumnDefinitionsSelector } from '../columns/gridColumnsSelector';
|
|
6
|
-
import { useGridSelector } from '../../utils/useGridSelector';
|
|
7
|
-
import { gridPageSelector, gridPageSizeSelector } from '../pagination/gridPaginationSelector';
|
|
8
|
-
import { gridRowCountSelector } from '../rows/gridRowsSelector';
|
|
9
|
-
import { gridRowsMetaSelector } from '../rows/gridRowsMetaSelector';
|
|
10
|
-
import { useGridApiMethod } from '../../utils/useGridApiMethod';
|
|
11
|
-
import { gridExpandedSortedRowEntriesSelector } from '../filter/gridFilterSelector';
|
|
12
|
-
import { gridDimensionsSelector } from '../dimensions';
|
|
13
|
-
|
|
14
|
-
// Logic copied from https://www.w3.org/TR/wai-aria-practices/examples/listbox/js/listbox.js
|
|
15
|
-
// Similar to https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView
|
|
16
|
-
function scrollIntoView(dimensions) {
|
|
17
|
-
var clientHeight = dimensions.clientHeight,
|
|
18
|
-
scrollTop = dimensions.scrollTop,
|
|
19
|
-
offsetHeight = dimensions.offsetHeight,
|
|
20
|
-
offsetTop = dimensions.offsetTop;
|
|
21
|
-
var elementBottom = offsetTop + offsetHeight;
|
|
22
|
-
// Always scroll to top when cell is higher than viewport to avoid scroll jump
|
|
23
|
-
// See https://github.com/mui/mui-x/issues/4513 and https://github.com/mui/mui-x/issues/4514
|
|
24
|
-
if (offsetHeight > clientHeight) {
|
|
25
|
-
return offsetTop;
|
|
26
|
-
}
|
|
27
|
-
if (elementBottom - clientHeight > scrollTop) {
|
|
28
|
-
return elementBottom - clientHeight;
|
|
29
|
-
}
|
|
30
|
-
if (offsetTop < scrollTop) {
|
|
31
|
-
return offsetTop;
|
|
32
|
-
}
|
|
33
|
-
return undefined;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* @requires useGridPagination (state) - can be after, async only
|
|
38
|
-
* @requires useGridColumns (state) - can be after, async only
|
|
39
|
-
* @requires useGridRows (state) - can be after, async only
|
|
40
|
-
* @requires useGridRowsMeta (state) - can be after, async only
|
|
41
|
-
* @requires useGridFilter (state)
|
|
42
|
-
* @requires useGridColumnSpanning (method)
|
|
43
|
-
*/
|
|
44
|
-
export var useGridScroll = function useGridScroll(apiRef, props) {
|
|
45
|
-
var theme = useTheme();
|
|
46
|
-
var logger = useGridLogger(apiRef, 'useGridScroll');
|
|
47
|
-
var colRef = apiRef.current.columnHeadersElementRef;
|
|
48
|
-
var virtualScrollerRef = apiRef.current.virtualScrollerRef;
|
|
49
|
-
var visibleSortedRows = useGridSelector(apiRef, gridExpandedSortedRowEntriesSelector);
|
|
50
|
-
var scrollToIndexes = React.useCallback(function (params) {
|
|
51
|
-
var dimensions = gridDimensionsSelector(apiRef.current.state);
|
|
52
|
-
var totalRowCount = gridRowCountSelector(apiRef);
|
|
53
|
-
var visibleColumns = gridVisibleColumnDefinitionsSelector(apiRef);
|
|
54
|
-
var scrollToHeader = params.rowIndex == null;
|
|
55
|
-
if (!scrollToHeader && totalRowCount === 0 || visibleColumns.length === 0) {
|
|
56
|
-
return false;
|
|
57
|
-
}
|
|
58
|
-
logger.debug("Scrolling to cell at row ".concat(params.rowIndex, ", col: ").concat(params.colIndex, " "));
|
|
59
|
-
var scrollCoordinates = {};
|
|
60
|
-
if (params.colIndex !== undefined) {
|
|
61
|
-
var columnPositions = gridColumnPositionsSelector(apiRef);
|
|
62
|
-
var cellWidth;
|
|
63
|
-
if (typeof params.rowIndex !== 'undefined') {
|
|
64
|
-
var _visibleSortedRows$pa;
|
|
65
|
-
var rowId = (_visibleSortedRows$pa = visibleSortedRows[params.rowIndex]) == null ? void 0 : _visibleSortedRows$pa.id;
|
|
66
|
-
var cellColSpanInfo = apiRef.current.unstable_getCellColSpanInfo(rowId, params.colIndex);
|
|
67
|
-
if (cellColSpanInfo && !cellColSpanInfo.spannedByColSpan) {
|
|
68
|
-
cellWidth = cellColSpanInfo.cellProps.width;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
if (typeof cellWidth === 'undefined') {
|
|
72
|
-
cellWidth = visibleColumns[params.colIndex].computedWidth;
|
|
73
|
-
}
|
|
74
|
-
// When using RTL, `scrollLeft` becomes negative, so we must ensure that we only compare values.
|
|
75
|
-
scrollCoordinates.left = scrollIntoView({
|
|
76
|
-
clientHeight: dimensions.viewportInnerSize.width,
|
|
77
|
-
scrollTop: Math.abs(virtualScrollerRef.current.scrollLeft),
|
|
78
|
-
offsetHeight: cellWidth,
|
|
79
|
-
offsetTop: columnPositions[params.colIndex]
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
if (params.rowIndex !== undefined) {
|
|
83
|
-
var rowsMeta = gridRowsMetaSelector(apiRef.current.state);
|
|
84
|
-
var page = gridPageSelector(apiRef);
|
|
85
|
-
var pageSize = gridPageSizeSelector(apiRef);
|
|
86
|
-
var elementIndex = !props.pagination ? params.rowIndex : params.rowIndex - page * pageSize;
|
|
87
|
-
var targetOffsetHeight = rowsMeta.positions[elementIndex + 1] ? rowsMeta.positions[elementIndex + 1] - rowsMeta.positions[elementIndex] : rowsMeta.currentPageTotalHeight - rowsMeta.positions[elementIndex];
|
|
88
|
-
scrollCoordinates.top = scrollIntoView({
|
|
89
|
-
clientHeight: dimensions.viewportInnerSize.height,
|
|
90
|
-
scrollTop: virtualScrollerRef.current.scrollTop,
|
|
91
|
-
offsetHeight: targetOffsetHeight,
|
|
92
|
-
offsetTop: rowsMeta.positions[elementIndex]
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
scrollCoordinates = apiRef.current.unstable_applyPipeProcessors('scrollToIndexes', scrollCoordinates, params);
|
|
96
|
-
if (_typeof(scrollCoordinates.left) !== undefined || _typeof(scrollCoordinates.top) !== undefined) {
|
|
97
|
-
apiRef.current.scroll(scrollCoordinates);
|
|
98
|
-
return true;
|
|
99
|
-
}
|
|
100
|
-
return false;
|
|
101
|
-
}, [logger, apiRef, virtualScrollerRef, props.pagination, visibleSortedRows]);
|
|
102
|
-
var scroll = React.useCallback(function (params) {
|
|
103
|
-
if (virtualScrollerRef.current && params.left !== undefined && colRef.current) {
|
|
104
|
-
var direction = theme.direction === 'rtl' ? -1 : 1;
|
|
105
|
-
colRef.current.scrollLeft = params.left;
|
|
106
|
-
virtualScrollerRef.current.scrollLeft = direction * params.left;
|
|
107
|
-
logger.debug("Scrolling left: ".concat(params.left));
|
|
108
|
-
}
|
|
109
|
-
if (virtualScrollerRef.current && params.top !== undefined) {
|
|
110
|
-
virtualScrollerRef.current.scrollTop = params.top;
|
|
111
|
-
logger.debug("Scrolling top: ".concat(params.top));
|
|
112
|
-
}
|
|
113
|
-
logger.debug("Scrolling, updating container, and viewport");
|
|
114
|
-
}, [virtualScrollerRef, theme.direction, colRef, logger]);
|
|
115
|
-
var getScrollPosition = React.useCallback(function () {
|
|
116
|
-
if (!(virtualScrollerRef != null && virtualScrollerRef.current)) {
|
|
117
|
-
return {
|
|
118
|
-
top: 0,
|
|
119
|
-
left: 0
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
|
-
return {
|
|
123
|
-
top: virtualScrollerRef.current.scrollTop,
|
|
124
|
-
left: virtualScrollerRef.current.scrollLeft
|
|
125
|
-
};
|
|
126
|
-
}, [virtualScrollerRef]);
|
|
127
|
-
var scrollApi = {
|
|
128
|
-
scroll: scroll,
|
|
129
|
-
scrollToIndexes: scrollToIndexes,
|
|
130
|
-
getScrollPosition: getScrollPosition
|
|
131
|
-
};
|
|
132
|
-
useGridApiMethod(apiRef, scrollApi, 'public');
|
|
133
|
-
};
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { createSelector, createSelectorMemoized } from '../../../utils/createSelector';
|
|
2
|
-
import { gridRowsLookupSelector } from '../rows/gridRowsSelector';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* @category Sorting
|
|
6
|
-
* @ignore - do not document.
|
|
7
|
-
*/
|
|
8
|
-
var gridSortingStateSelector = function gridSortingStateSelector(state) {
|
|
9
|
-
return state.sorting;
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Get the id of the rows after the sorting process.
|
|
14
|
-
* @category Sorting
|
|
15
|
-
*/
|
|
16
|
-
export var gridSortedRowIdsSelector = createSelector(gridSortingStateSelector, function (sortingState) {
|
|
17
|
-
return sortingState.sortedRows;
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Get the id and the model of the rows after the sorting process.
|
|
22
|
-
* @category Sorting
|
|
23
|
-
*/
|
|
24
|
-
export var gridSortedRowEntriesSelector = createSelectorMemoized(gridSortedRowIdsSelector, gridRowsLookupSelector,
|
|
25
|
-
// TODO rows v6: Is this the best approach ?
|
|
26
|
-
function (sortedIds, idRowsLookup) {
|
|
27
|
-
return sortedIds.map(function (id) {
|
|
28
|
-
var _idRowsLookup$id;
|
|
29
|
-
return {
|
|
30
|
-
id: id,
|
|
31
|
-
model: (_idRowsLookup$id = idRowsLookup[id]) != null ? _idRowsLookup$id : {}
|
|
32
|
-
};
|
|
33
|
-
});
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Get the current sorting model.
|
|
38
|
-
* @category Sorting
|
|
39
|
-
*/
|
|
40
|
-
export var gridSortModelSelector = createSelector(gridSortingStateSelector, function (sorting) {
|
|
41
|
-
return sorting.sortModel;
|
|
42
|
-
});
|
|
43
|
-
/**
|
|
44
|
-
* @category Sorting
|
|
45
|
-
* @ignore - do not document.
|
|
46
|
-
*/
|
|
47
|
-
export var gridSortColumnLookupSelector = createSelectorMemoized(gridSortModelSelector, function (sortModel) {
|
|
48
|
-
var result = sortModel.reduce(function (res, sortItem, index) {
|
|
49
|
-
res[sortItem.field] = {
|
|
50
|
-
sortDirection: sortItem.sort,
|
|
51
|
-
sortIndex: sortModel.length > 1 ? index + 1 : undefined
|
|
52
|
-
};
|
|
53
|
-
return res;
|
|
54
|
-
}, {});
|
|
55
|
-
return result;
|
|
56
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
-
import { buildWarning } from '../../../utils/warning';
|
|
3
|
-
var sortModelDisableMultiColumnsSortingWarning = buildWarning(['MUI X: The `sortModel` can only contain a single item when the `disableMultipleColumnsSorting` prop is set to `true`.', 'If you are using the community version of the `DataGrid`, this prop is always `true`.'], 'error');
|
|
4
|
-
export var sanitizeSortModel = function sanitizeSortModel(model, disableMultipleColumnsSorting) {
|
|
5
|
-
if (disableMultipleColumnsSorting && model.length > 1) {
|
|
6
|
-
if (process.env.NODE_ENV !== 'production') {
|
|
7
|
-
sortModelDisableMultiColumnsSortingWarning();
|
|
8
|
-
}
|
|
9
|
-
return [model[0]];
|
|
10
|
-
}
|
|
11
|
-
return model;
|
|
12
|
-
};
|
|
13
|
-
export var mergeStateWithSortModel = function mergeStateWithSortModel(sortModel, disableMultipleColumnsSorting) {
|
|
14
|
-
return function (state) {
|
|
15
|
-
return _extends({}, state, {
|
|
16
|
-
sorting: _extends({}, state.sorting, {
|
|
17
|
-
sortModel: sanitizeSortModel(sortModel, disableMultipleColumnsSorting)
|
|
18
|
-
})
|
|
19
|
-
});
|
|
20
|
-
};
|
|
21
|
-
};
|
|
22
|
-
var isDesc = function isDesc(direction) {
|
|
23
|
-
return direction === 'desc';
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Transform an item of the sorting model into a method comparing two rows.
|
|
28
|
-
* @param {GridSortItem} sortItem The sort item we want to apply.
|
|
29
|
-
* @param {React.MutableRefObject<GridApiCommunity>} apiRef The API of the grid.
|
|
30
|
-
* @returns {GridParsedSortItem | null} The parsed sort item. Returns `null` is the sort item is not valid.
|
|
31
|
-
*/
|
|
32
|
-
var parseSortItem = function parseSortItem(sortItem, apiRef) {
|
|
33
|
-
var column = apiRef.current.getColumn(sortItem.field);
|
|
34
|
-
if (!column || sortItem.sort === null) {
|
|
35
|
-
return null;
|
|
36
|
-
}
|
|
37
|
-
var comparator = isDesc(sortItem.sort) ? function () {
|
|
38
|
-
return -1 * column.sortComparator.apply(column, arguments);
|
|
39
|
-
} : column.sortComparator;
|
|
40
|
-
var getSortCellParams = function getSortCellParams(id) {
|
|
41
|
-
return {
|
|
42
|
-
id: id,
|
|
43
|
-
field: column.field,
|
|
44
|
-
rowNode: apiRef.current.getRowNode(id),
|
|
45
|
-
value: apiRef.current.getCellValue(id, column.field),
|
|
46
|
-
api: apiRef.current
|
|
47
|
-
};
|
|
48
|
-
};
|
|
49
|
-
return {
|
|
50
|
-
getSortCellParams: getSortCellParams,
|
|
51
|
-
comparator: comparator
|
|
52
|
-
};
|
|
53
|
-
};
|
|
54
|
-
/**
|
|
55
|
-
* Compare two rows according to a list of valid sort items.
|
|
56
|
-
* The `row1Params` and `row2Params` must have the same length as `parsedSortItems`,
|
|
57
|
-
* and each of their index must contain the `GridSortCellParams` of the sort item with the same index.
|
|
58
|
-
* @param {GridParsedSortItem[]} parsedSortItems All the sort items with which we want to compare the rows.
|
|
59
|
-
* @param {GridRowAggregatedSortingParams} row1 The node and params of the 1st row for each sort item.
|
|
60
|
-
* @param {GridRowAggregatedSortingParams} row2 The node and params of the 2nd row for each sort item.
|
|
61
|
-
*/
|
|
62
|
-
var compareRows = function compareRows(parsedSortItems, row1, row2) {
|
|
63
|
-
return parsedSortItems.reduce(function (res, item, index) {
|
|
64
|
-
if (res !== 0) {
|
|
65
|
-
// return the results of the first comparator which distinguish the two rows
|
|
66
|
-
return res;
|
|
67
|
-
}
|
|
68
|
-
var sortCellParams1 = row1.params[index];
|
|
69
|
-
var sortCellParams2 = row2.params[index];
|
|
70
|
-
res = item.comparator(sortCellParams1.value, sortCellParams2.value, sortCellParams1, sortCellParams2);
|
|
71
|
-
return res;
|
|
72
|
-
}, 0);
|
|
73
|
-
};
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
* Generates a method to easily sort a list of rows according to the current sort model.
|
|
77
|
-
* @param {GridSortModel} sortModel The model with which we want to sort the rows.
|
|
78
|
-
* @param {React.MutableRefObject<GridApiCommunity>} apiRef The API of the grid.
|
|
79
|
-
* @returns {GridSortingModelApplier | null} A method that generates a list of sorted row ids from a list of rows according to the current sort model. If `null`, we consider that the rows should remain in the order there were provided.
|
|
80
|
-
*/
|
|
81
|
-
export var buildAggregatedSortingApplier = function buildAggregatedSortingApplier(sortModel, apiRef) {
|
|
82
|
-
var comparatorList = sortModel.map(function (item) {
|
|
83
|
-
return parseSortItem(item, apiRef);
|
|
84
|
-
}).filter(function (comparator) {
|
|
85
|
-
return !!comparator;
|
|
86
|
-
});
|
|
87
|
-
if (comparatorList.length === 0) {
|
|
88
|
-
return null;
|
|
89
|
-
}
|
|
90
|
-
return function (rowList) {
|
|
91
|
-
return rowList.map(function (node) {
|
|
92
|
-
return {
|
|
93
|
-
node: node,
|
|
94
|
-
params: comparatorList.map(function (el) {
|
|
95
|
-
return el.getSortCellParams(node.id);
|
|
96
|
-
})
|
|
97
|
-
};
|
|
98
|
-
}).sort(function (a, b) {
|
|
99
|
-
return compareRows(comparatorList, a, b);
|
|
100
|
-
}).map(function (row) {
|
|
101
|
-
return row.node.id;
|
|
102
|
-
});
|
|
103
|
-
};
|
|
104
|
-
};
|
|
105
|
-
export var getNextGridSortDirection = function getNextGridSortDirection(sortingOrder, current) {
|
|
106
|
-
var currentIdx = sortingOrder.indexOf(current);
|
|
107
|
-
if (!current || currentIdx === -1 || currentIdx + 1 === sortingOrder.length) {
|
|
108
|
-
return sortingOrder[0];
|
|
109
|
-
}
|
|
110
|
-
return sortingOrder[currentIdx + 1];
|
|
111
|
-
};
|
|
112
|
-
var gridNillComparator = function gridNillComparator(v1, v2) {
|
|
113
|
-
if (v1 == null && v2 != null) {
|
|
114
|
-
return -1;
|
|
115
|
-
}
|
|
116
|
-
if (v2 == null && v1 != null) {
|
|
117
|
-
return 1;
|
|
118
|
-
}
|
|
119
|
-
if (v1 == null && v2 == null) {
|
|
120
|
-
return 0;
|
|
121
|
-
}
|
|
122
|
-
return null;
|
|
123
|
-
};
|
|
124
|
-
var collator = new Intl.Collator();
|
|
125
|
-
export var gridStringOrNumberComparator = function gridStringOrNumberComparator(value1, value2) {
|
|
126
|
-
var nillResult = gridNillComparator(value1, value2);
|
|
127
|
-
if (nillResult !== null) {
|
|
128
|
-
return nillResult;
|
|
129
|
-
}
|
|
130
|
-
if (typeof value1 === 'string') {
|
|
131
|
-
return collator.compare(value1.toString(), value2.toString());
|
|
132
|
-
}
|
|
133
|
-
return value1 - value2;
|
|
134
|
-
};
|
|
135
|
-
export var gridNumberComparator = function gridNumberComparator(value1, value2) {
|
|
136
|
-
var nillResult = gridNillComparator(value1, value2);
|
|
137
|
-
if (nillResult !== null) {
|
|
138
|
-
return nillResult;
|
|
139
|
-
}
|
|
140
|
-
return Number(value1) - Number(value2);
|
|
141
|
-
};
|
|
142
|
-
export var gridDateComparator = function gridDateComparator(value1, value2) {
|
|
143
|
-
var nillResult = gridNillComparator(value1, value2);
|
|
144
|
-
if (nillResult !== null) {
|
|
145
|
-
return nillResult;
|
|
146
|
-
}
|
|
147
|
-
if (value1 > value2) {
|
|
148
|
-
return 1;
|
|
149
|
-
}
|
|
150
|
-
if (value1 < value2) {
|
|
151
|
-
return -1;
|
|
152
|
-
}
|
|
153
|
-
return 0;
|
|
154
|
-
};
|