@mui/x-data-grid 5.13.1 → 5.15.1
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 +147 -6
- package/DataGrid/DataGrid.js +6 -0
- package/DataGrid/useDataGridComponent.js +1 -1
- package/DataGrid/useDataGridProps.js +1 -0
- package/colDef/gridActionsColDef.js +2 -0
- package/colDef/gridBooleanColDef.js +3 -1
- package/colDef/gridCheckboxSelectionColDef.js +2 -0
- package/colDef/gridDateOperators.d.ts +1 -1
- package/colDef/gridStringColDef.d.ts +3 -0
- package/colDef/gridStringColDef.js +6 -0
- package/components/GridRow.js +5 -1
- package/components/base/GridOverlays.js +4 -1
- package/components/cell/GridBooleanCell.d.ts +5 -2
- package/components/cell/GridBooleanCell.js +93 -2
- package/components/cell/GridEditDateCell.js +5 -1
- package/components/cell/GridEditInputCell.d.ts +2 -5
- package/components/cell/GridEditInputCell.js +13 -14
- package/components/cell/GridEditSingleSelectCell.d.ts +4 -0
- package/components/cell/GridEditSingleSelectCell.js +11 -4
- package/components/cell/index.d.ts +1 -0
- package/components/cell/index.js +1 -0
- package/components/columnSelection/GridCellCheckboxRenderer.js +12 -1
- package/components/containers/GridRoot.js +4 -2
- package/components/containers/GridRootStyles.js +10 -0
- package/components/toolbar/GridToolbarDensitySelector.js +13 -4
- package/components/toolbar/GridToolbarExport.js +20 -10
- package/components/toolbar/GridToolbarExportContainer.js +13 -2
- package/constants/envConstants.d.ts +1 -1
- package/constants/envConstants.js +2 -11
- package/constants/gridClasses.d.ts +41 -1
- package/constants/gridClasses.js +1 -1
- package/constants/localeTextConstants.js +9 -2
- package/hooks/core/pipeProcessing/gridPipeProcessingApi.d.ts +2 -1
- package/hooks/features/columns/useGridColumnSpanning.js +9 -7
- package/hooks/features/columns/useGridColumns.d.ts +1 -1
- package/hooks/features/columns/useGridColumns.js +13 -6
- package/hooks/features/dimensions/useGridDimensions.js +6 -1
- package/hooks/features/editRows/useGridCellEditing.new.d.ts +1 -1
- package/hooks/features/editRows/useGridCellEditing.new.js +11 -9
- package/hooks/features/editRows/useGridCellEditing.old.js +2 -2
- package/hooks/features/editRows/useGridEditing.new.d.ts +1 -1
- package/hooks/features/editRows/useGridEditing.new.js +4 -0
- package/hooks/features/editRows/useGridEditing.old.js +1 -1
- package/hooks/features/editRows/useGridRowEditing.new.d.ts +1 -1
- package/hooks/features/editRows/useGridRowEditing.new.js +7 -8
- package/hooks/features/export/utils.d.ts +1 -1
- package/hooks/features/export/utils.js +16 -2
- package/hooks/features/filter/gridFilterUtils.js +6 -0
- package/hooks/features/filter/useGridFilter.d.ts +1 -1
- package/hooks/features/filter/useGridFilter.js +11 -4
- package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.d.ts +1 -1
- package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +42 -34
- package/hooks/features/pagination/useGridPage.js +4 -3
- package/hooks/features/pagination/useGridPageSize.js +7 -4
- package/hooks/features/preferencesPanel/useGridPreferencesPanel.d.ts +1 -1
- package/hooks/features/preferencesPanel/useGridPreferencesPanel.js +12 -4
- package/hooks/features/rows/gridRowsSelector.d.ts +14 -0
- package/hooks/features/rows/gridRowsSelector.js +20 -1
- package/hooks/features/rows/gridRowsState.d.ts +8 -1
- package/hooks/features/rows/gridRowsUtils.d.ts +5 -1
- package/hooks/features/rows/gridRowsUtils.js +21 -3
- package/hooks/features/rows/index.d.ts +1 -1
- package/hooks/features/rows/index.js +1 -1
- package/hooks/features/rows/useGridRowsMeta.js +19 -4
- package/hooks/features/rows/useGridRowsPreProcessors.js +2 -1
- package/hooks/features/scroll/useGridScroll.js +7 -2
- package/hooks/features/selection/useGridSelection.js +28 -10
- package/hooks/features/sorting/gridSortingUtils.d.ts +1 -0
- package/hooks/features/sorting/gridSortingUtils.js +10 -11
- package/hooks/features/sorting/useGridSorting.d.ts +1 -1
- package/hooks/features/sorting/useGridSorting.js +42 -6
- package/hooks/features/statePersistence/gridStatePersistenceInterface.d.ts +12 -1
- package/hooks/features/statePersistence/index.d.ts +1 -1
- package/hooks/features/statePersistence/useGridStatePersistence.js +2 -2
- package/hooks/features/virtualization/useGridVirtualScroller.d.ts +3 -1
- package/hooks/features/virtualization/useGridVirtualScroller.js +32 -18
- package/hooks/utils/useGridApiEventHandler.d.ts +2 -2
- package/hooks/utils/useGridNativeEventListener.d.ts +1 -1
- package/hooks/utils/useGridNativeEventListener.js +1 -1
- package/index.js +1 -1
- package/internals/index.d.ts +6 -3
- package/internals/index.js +5 -2
- package/legacy/DataGrid/DataGrid.js +6 -0
- package/legacy/DataGrid/useDataGridComponent.js +1 -1
- package/legacy/DataGrid/useDataGridProps.js +1 -0
- package/legacy/colDef/gridActionsColDef.js +2 -0
- package/legacy/colDef/gridBooleanColDef.js +3 -1
- package/legacy/colDef/gridCheckboxSelectionColDef.js +2 -0
- package/legacy/colDef/gridStringColDef.js +6 -0
- package/legacy/components/GridRow.js +5 -1
- package/legacy/components/base/GridOverlays.js +4 -1
- package/legacy/components/cell/GridBooleanCell.js +93 -2
- package/legacy/components/cell/GridEditDateCell.js +5 -1
- package/legacy/components/cell/GridEditInputCell.js +13 -14
- package/legacy/components/cell/GridEditSingleSelectCell.js +11 -3
- package/legacy/components/cell/index.js +1 -0
- package/legacy/components/columnSelection/GridCellCheckboxRenderer.js +11 -1
- package/legacy/components/containers/GridRoot.js +4 -2
- package/legacy/components/containers/GridRootStyles.js +3 -3
- package/legacy/components/toolbar/GridToolbarDensitySelector.js +14 -5
- package/legacy/components/toolbar/GridToolbarExport.js +20 -10
- package/legacy/components/toolbar/GridToolbarExportContainer.js +15 -2
- package/legacy/constants/envConstants.js +2 -11
- package/legacy/constants/gridClasses.js +1 -1
- package/legacy/constants/localeTextConstants.js +9 -2
- package/legacy/hooks/features/columns/useGridColumnSpanning.js +9 -7
- package/legacy/hooks/features/columns/useGridColumns.js +13 -8
- package/legacy/hooks/features/dimensions/useGridDimensions.js +6 -1
- package/legacy/hooks/features/editRows/useGridCellEditing.new.js +11 -9
- package/legacy/hooks/features/editRows/useGridCellEditing.old.js +2 -2
- package/legacy/hooks/features/editRows/useGridEditing.new.js +4 -0
- package/legacy/hooks/features/editRows/useGridEditing.old.js +1 -1
- package/legacy/hooks/features/editRows/useGridRowEditing.new.js +7 -8
- package/legacy/hooks/features/export/utils.js +21 -2
- package/legacy/hooks/features/filter/gridFilterUtils.js +6 -0
- package/legacy/hooks/features/filter/useGridFilter.js +11 -4
- package/legacy/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +47 -34
- package/legacy/hooks/features/pagination/useGridPage.js +4 -3
- package/legacy/hooks/features/pagination/useGridPageSize.js +7 -4
- package/legacy/hooks/features/preferencesPanel/useGridPreferencesPanel.js +12 -4
- package/legacy/hooks/features/rows/gridRowsSelector.js +23 -0
- package/legacy/hooks/features/rows/gridRowsUtils.js +21 -3
- package/legacy/hooks/features/rows/index.js +1 -1
- package/legacy/hooks/features/rows/useGridRowsMeta.js +19 -4
- package/legacy/hooks/features/rows/useGridRowsPreProcessors.js +2 -1
- package/legacy/hooks/features/scroll/useGridScroll.js +7 -2
- package/legacy/hooks/features/selection/useGridSelection.js +30 -12
- package/legacy/hooks/features/sorting/gridSortingUtils.js +11 -12
- package/legacy/hooks/features/sorting/useGridSorting.js +42 -6
- package/legacy/hooks/features/statePersistence/useGridStatePersistence.js +2 -1
- package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +33 -18
- package/legacy/hooks/utils/useGridNativeEventListener.js +1 -1
- package/legacy/index.js +1 -1
- package/legacy/internals/index.js +5 -2
- package/legacy/locales/arSD.js +8 -1
- package/legacy/locales/bgBG.js +8 -1
- package/legacy/locales/csCZ.js +8 -1
- package/legacy/locales/daDK.js +8 -1
- package/legacy/locales/deDE.js +9 -2
- package/legacy/locales/elGR.js +8 -1
- package/legacy/locales/esES.js +8 -1
- package/legacy/locales/faIR.js +8 -1
- package/legacy/locales/fiFI.js +8 -1
- package/legacy/locales/frFR.js +9 -2
- package/legacy/locales/heIL.js +9 -2
- package/legacy/locales/huHU.js +8 -1
- package/legacy/locales/index.js +2 -1
- package/legacy/locales/itIT.js +21 -14
- package/legacy/locales/jaJP.js +11 -4
- package/legacy/locales/koKR.js +35 -24
- package/legacy/locales/nbNO.js +9 -2
- package/legacy/locales/nlNL.js +9 -2
- package/legacy/locales/plPL.js +8 -1
- package/legacy/locales/ptBR.js +9 -2
- package/legacy/locales/roRO.js +9 -2
- package/legacy/locales/ruRU.js +8 -1
- package/legacy/locales/skSK.js +9 -2
- package/legacy/locales/svSE.js +9 -2
- package/legacy/locales/trTR.js +8 -1
- package/legacy/locales/ukUA.js +8 -1
- package/legacy/locales/viVN.js +8 -1
- package/legacy/locales/zhCN.js +38 -27
- package/legacy/locales/zhTW.js +135 -0
- package/legacy/models/events/gridEvents.js +1 -0
- package/legacy/utils/keyboardUtils.js +8 -5
- package/locales/arSD.js +8 -1
- package/locales/bgBG.js +8 -1
- package/locales/csCZ.js +8 -1
- package/locales/daDK.js +8 -1
- package/locales/deDE.js +9 -2
- package/locales/elGR.js +8 -1
- package/locales/esES.js +8 -1
- package/locales/faIR.js +8 -1
- package/locales/fiFI.js +8 -1
- package/locales/frFR.js +9 -2
- package/locales/heIL.js +9 -2
- package/locales/huHU.js +8 -1
- package/locales/index.d.ts +1 -0
- package/locales/index.js +2 -1
- package/locales/itIT.js +21 -14
- package/locales/jaJP.js +11 -4
- package/locales/koKR.js +31 -24
- package/locales/nbNO.js +9 -2
- package/locales/nlNL.js +9 -2
- package/locales/plPL.js +8 -1
- package/locales/ptBR.js +9 -2
- package/locales/roRO.js +9 -2
- package/locales/ruRU.js +8 -1
- package/locales/skSK.js +9 -2
- package/locales/svSE.js +9 -2
- package/locales/trTR.js +8 -1
- package/locales/ukUA.js +8 -1
- package/locales/viVN.js +8 -1
- package/locales/zhCN.js +34 -27
- package/locales/zhTW.d.ts +2 -0
- package/locales/zhTW.js +123 -0
- package/models/api/gridColumnSpanning.d.ts +2 -0
- package/models/api/gridLocaleTextApi.d.ts +8 -2
- package/models/api/gridSelectionApi.d.ts +6 -0
- package/models/events/gridEvents.d.ts +1 -0
- package/models/events/gridEvents.js +1 -0
- package/models/gridRows.d.ts +15 -1
- package/models/params/gridCellParams.d.ts +4 -4
- package/models/props/DataGridProps.d.ts +5 -0
- package/modern/DataGrid/DataGrid.js +6 -0
- package/modern/DataGrid/useDataGridComponent.js +1 -1
- package/modern/DataGrid/useDataGridProps.js +1 -0
- package/modern/colDef/gridActionsColDef.js +2 -0
- package/modern/colDef/gridBooleanColDef.js +3 -1
- package/modern/colDef/gridCheckboxSelectionColDef.js +2 -0
- package/modern/colDef/gridStringColDef.js +6 -0
- package/modern/components/GridRow.js +5 -1
- package/modern/components/base/GridOverlays.js +4 -1
- package/modern/components/cell/GridBooleanCell.js +93 -2
- package/modern/components/cell/GridEditDateCell.js +5 -1
- package/modern/components/cell/GridEditInputCell.js +13 -14
- package/modern/components/cell/GridEditSingleSelectCell.js +11 -4
- package/modern/components/cell/index.js +1 -0
- package/modern/components/columnSelection/GridCellCheckboxRenderer.js +12 -1
- package/modern/components/containers/GridRoot.js +4 -2
- package/modern/components/containers/GridRootStyles.js +10 -0
- package/modern/components/toolbar/GridToolbarDensitySelector.js +11 -4
- package/modern/components/toolbar/GridToolbarExport.js +20 -10
- package/modern/components/toolbar/GridToolbarExportContainer.js +11 -2
- package/modern/constants/envConstants.js +2 -11
- package/modern/constants/gridClasses.js +1 -1
- package/modern/constants/localeTextConstants.js +9 -2
- package/modern/hooks/features/columns/useGridColumnSpanning.js +9 -7
- package/modern/hooks/features/columns/useGridColumns.js +10 -5
- package/modern/hooks/features/dimensions/useGridDimensions.js +6 -1
- package/modern/hooks/features/editRows/useGridCellEditing.new.js +9 -9
- package/modern/hooks/features/editRows/useGridCellEditing.old.js +2 -2
- package/modern/hooks/features/editRows/useGridEditing.new.js +4 -0
- package/modern/hooks/features/editRows/useGridEditing.old.js +1 -1
- package/modern/hooks/features/editRows/useGridRowEditing.new.js +7 -8
- package/modern/hooks/features/export/utils.js +10 -2
- package/modern/hooks/features/filter/gridFilterUtils.js +6 -0
- package/modern/hooks/features/filter/useGridFilter.js +8 -3
- package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +42 -30
- package/modern/hooks/features/pagination/useGridPage.js +4 -3
- package/modern/hooks/features/pagination/useGridPageSize.js +7 -4
- package/modern/hooks/features/preferencesPanel/useGridPreferencesPanel.js +8 -4
- package/modern/hooks/features/rows/gridRowsSelector.js +18 -1
- package/modern/hooks/features/rows/gridRowsUtils.js +19 -3
- package/modern/hooks/features/rows/index.js +1 -1
- package/modern/hooks/features/rows/useGridRowsMeta.js +17 -4
- package/modern/hooks/features/rows/useGridRowsPreProcessors.js +2 -1
- package/modern/hooks/features/scroll/useGridScroll.js +5 -2
- package/modern/hooks/features/selection/useGridSelection.js +28 -10
- package/modern/hooks/features/sorting/gridSortingUtils.js +10 -11
- package/modern/hooks/features/sorting/useGridSorting.js +38 -6
- package/modern/hooks/features/statePersistence/useGridStatePersistence.js +2 -2
- package/modern/hooks/features/virtualization/useGridVirtualScroller.js +31 -17
- package/modern/hooks/utils/useGridNativeEventListener.js +1 -1
- package/modern/index.js +1 -1
- package/modern/internals/index.js +5 -2
- package/modern/locales/arSD.js +8 -1
- package/modern/locales/bgBG.js +8 -1
- package/modern/locales/csCZ.js +8 -1
- package/modern/locales/daDK.js +8 -1
- package/modern/locales/deDE.js +9 -2
- package/modern/locales/elGR.js +8 -1
- package/modern/locales/esES.js +8 -1
- package/modern/locales/faIR.js +8 -1
- package/modern/locales/fiFI.js +8 -1
- package/modern/locales/frFR.js +9 -2
- package/modern/locales/heIL.js +9 -2
- package/modern/locales/huHU.js +8 -1
- package/modern/locales/index.js +2 -1
- package/modern/locales/itIT.js +21 -14
- package/modern/locales/jaJP.js +11 -4
- package/modern/locales/koKR.js +31 -24
- package/modern/locales/nbNO.js +9 -2
- package/modern/locales/nlNL.js +9 -2
- package/modern/locales/plPL.js +8 -1
- package/modern/locales/ptBR.js +9 -2
- package/modern/locales/roRO.js +9 -2
- package/modern/locales/ruRU.js +8 -1
- package/modern/locales/skSK.js +9 -2
- package/modern/locales/svSE.js +9 -2
- package/modern/locales/trTR.js +8 -1
- package/modern/locales/ukUA.js +8 -1
- package/modern/locales/viVN.js +8 -1
- package/modern/locales/zhCN.js +34 -27
- package/modern/locales/zhTW.js +123 -0
- package/modern/models/events/gridEvents.js +1 -0
- package/modern/utils/keyboardUtils.js +7 -2
- package/node/DataGrid/DataGrid.js +6 -0
- package/node/DataGrid/useDataGridComponent.js +1 -1
- package/node/DataGrid/useDataGridProps.js +1 -0
- package/node/colDef/gridActionsColDef.js +2 -0
- package/node/colDef/gridBooleanColDef.js +3 -1
- package/node/colDef/gridCheckboxSelectionColDef.js +2 -0
- package/node/colDef/gridStringColDef.js +5 -0
- package/node/components/GridRow.js +5 -1
- package/node/components/base/GridOverlays.js +4 -1
- package/node/components/cell/GridBooleanCell.js +93 -2
- package/node/components/cell/GridEditDateCell.js +7 -1
- package/node/components/cell/GridEditInputCell.js +15 -16
- package/node/components/cell/GridEditSingleSelectCell.js +10 -4
- package/node/components/cell/index.js +13 -0
- package/node/components/columnSelection/GridCellCheckboxRenderer.js +12 -1
- package/node/components/containers/GridRoot.js +3 -1
- package/node/components/containers/GridRootStyles.js +10 -0
- package/node/components/toolbar/GridToolbarDensitySelector.js +13 -4
- package/node/components/toolbar/GridToolbarExport.js +16 -10
- package/node/components/toolbar/GridToolbarExportContainer.js +13 -2
- package/node/constants/envConstants.js +2 -13
- package/node/constants/gridClasses.js +1 -1
- package/node/constants/localeTextConstants.js +9 -2
- package/node/hooks/features/columns/useGridColumnSpanning.js +9 -7
- package/node/hooks/features/columns/useGridColumns.js +13 -6
- package/node/hooks/features/dimensions/useGridDimensions.js +7 -1
- package/node/hooks/features/editRows/useGridCellEditing.new.js +11 -9
- package/node/hooks/features/editRows/useGridCellEditing.old.js +2 -2
- package/node/hooks/features/editRows/useGridEditing.new.js +4 -0
- package/node/hooks/features/editRows/useGridEditing.old.js +1 -1
- package/node/hooks/features/editRows/useGridRowEditing.new.js +7 -8
- package/node/hooks/features/export/utils.js +17 -2
- package/node/hooks/features/filter/gridFilterUtils.js +7 -0
- package/node/hooks/features/filter/useGridFilter.js +11 -4
- package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +43 -34
- package/node/hooks/features/pagination/useGridPage.js +4 -3
- package/node/hooks/features/pagination/useGridPageSize.js +8 -4
- package/node/hooks/features/preferencesPanel/useGridPreferencesPanel.js +12 -4
- package/node/hooks/features/rows/gridRowsSelector.js +24 -2
- package/node/hooks/features/rows/gridRowsUtils.js +23 -2
- package/node/hooks/features/rows/index.js +70 -12
- package/node/hooks/features/rows/useGridRowsMeta.js +20 -4
- package/node/hooks/features/rows/useGridRowsPreProcessors.js +2 -1
- package/node/hooks/features/scroll/useGridScroll.js +7 -1
- package/node/hooks/features/selection/useGridSelection.js +28 -10
- package/node/hooks/features/sorting/gridSortingUtils.js +10 -11
- package/node/hooks/features/sorting/useGridSorting.js +42 -6
- package/node/hooks/features/statePersistence/useGridStatePersistence.js +2 -2
- package/node/hooks/features/virtualization/useGridVirtualScroller.js +32 -18
- package/node/hooks/utils/useGridNativeEventListener.js +1 -1
- package/node/index.js +1 -1
- package/node/internals/index.js +46 -0
- package/node/locales/arSD.js +8 -1
- package/node/locales/bgBG.js +8 -1
- package/node/locales/csCZ.js +8 -1
- package/node/locales/daDK.js +8 -1
- package/node/locales/deDE.js +9 -2
- package/node/locales/elGR.js +8 -1
- package/node/locales/esES.js +8 -1
- package/node/locales/faIR.js +8 -1
- package/node/locales/fiFI.js +8 -1
- package/node/locales/frFR.js +9 -2
- package/node/locales/heIL.js +9 -2
- package/node/locales/huHU.js +8 -1
- package/node/locales/index.js +13 -0
- package/node/locales/itIT.js +21 -14
- package/node/locales/jaJP.js +11 -4
- package/node/locales/koKR.js +31 -24
- package/node/locales/nbNO.js +9 -2
- package/node/locales/nlNL.js +9 -2
- package/node/locales/plPL.js +8 -1
- package/node/locales/ptBR.js +9 -2
- package/node/locales/roRO.js +9 -2
- package/node/locales/ruRU.js +8 -1
- package/node/locales/skSK.js +9 -2
- package/node/locales/svSE.js +9 -2
- package/node/locales/trTR.js +8 -1
- package/node/locales/ukUA.js +8 -1
- package/node/locales/viVN.js +8 -1
- package/node/locales/zhCN.js +34 -27
- package/node/locales/zhTW.js +133 -0
- package/node/models/events/gridEvents.js +1 -0
- package/node/utils/keyboardUtils.js +10 -4
- package/package.json +1 -1
- package/utils/getGridLocalization.d.ts +1 -1
- package/utils/keyboardUtils.d.ts +2 -2
- package/utils/keyboardUtils.js +7 -2
|
@@ -27,10 +27,16 @@ var _keyboardUtils = require("../../../utils/keyboardUtils");
|
|
|
27
27
|
|
|
28
28
|
var _gridDetailPanelToggleField = require("../../../constants/gridDetailPanelToggleField");
|
|
29
29
|
|
|
30
|
+
var _gridRowsSelector = require("../rows/gridRowsSelector");
|
|
31
|
+
|
|
30
32
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
31
33
|
|
|
32
34
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
33
35
|
|
|
36
|
+
function enrichPageRowsWithPinnedRows(apiRef, rows) {
|
|
37
|
+
const pinnedRows = (0, _gridRowsSelector.gridPinnedRowsSelector)(apiRef) || {};
|
|
38
|
+
return [...(pinnedRows.top || []), ...rows, ...(pinnedRows.bottom || [])];
|
|
39
|
+
}
|
|
34
40
|
/**
|
|
35
41
|
* @requires useGridSorting (method) - can be after
|
|
36
42
|
* @requires useGridFilter (state) - can be after
|
|
@@ -40,20 +46,20 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
40
46
|
* @requires useGridScroll (method) - can be after
|
|
41
47
|
* @requires useGridColumnSpanning (method) - can be after
|
|
42
48
|
*/
|
|
49
|
+
|
|
50
|
+
|
|
43
51
|
const useGridKeyboardNavigation = (apiRef, props) => {
|
|
44
52
|
const logger = (0, _useGridLogger.useGridLogger)(apiRef, 'useGridKeyboardNavigation');
|
|
45
|
-
const
|
|
53
|
+
const initialCurrentPageRows = (0, _useGridVisibleRows.useGridVisibleRows)(apiRef, props).rows;
|
|
54
|
+
const currentPageRows = React.useMemo(() => enrichPageRowsWithPinnedRows(apiRef, initialCurrentPageRows), [apiRef, initialCurrentPageRows]);
|
|
46
55
|
/**
|
|
47
56
|
* @param {number} colIndex Index of the column to focus
|
|
48
57
|
* @param {number} rowIndex index of the row to focus
|
|
49
58
|
* @param {string} closestColumnToUse Which closest column cell to use when the cell is spanned by `colSpan`.
|
|
50
59
|
*/
|
|
51
60
|
|
|
52
|
-
const goToCell = React.useCallback((colIndex,
|
|
53
|
-
var _visibleSortedRows$ro;
|
|
54
|
-
|
|
61
|
+
const goToCell = React.useCallback((colIndex, rowId, closestColumnToUse = 'left') => {
|
|
55
62
|
const visibleSortedRows = (0, _gridFilterSelector.gridVisibleSortedRowEntriesSelector)(apiRef);
|
|
56
|
-
const rowId = (_visibleSortedRows$ro = visibleSortedRows[rowIndex]) == null ? void 0 : _visibleSortedRows$ro.id;
|
|
57
63
|
const nextCellColSpanInfo = apiRef.current.unstable_getCellColSpanInfo(rowId, colIndex);
|
|
58
64
|
|
|
59
65
|
if (nextCellColSpanInfo && nextCellColSpanInfo.spannedByColSpan) {
|
|
@@ -62,12 +68,15 @@ const useGridKeyboardNavigation = (apiRef, props) => {
|
|
|
62
68
|
} else if (closestColumnToUse === 'right') {
|
|
63
69
|
colIndex = nextCellColSpanInfo.rightVisibleCellIndex;
|
|
64
70
|
}
|
|
65
|
-
}
|
|
71
|
+
} // `scrollToIndexes` requires a rowIndex relative to all visible rows.
|
|
72
|
+
// Those rows do not include pinned rows, but pinned rows do not need scroll anyway.
|
|
73
|
+
|
|
66
74
|
|
|
67
|
-
|
|
75
|
+
const rowIndexRelativeToAllRows = visibleSortedRows.findIndex(row => row.id === rowId);
|
|
76
|
+
logger.debug(`Navigating to cell row ${rowIndexRelativeToAllRows}, col ${colIndex}`);
|
|
68
77
|
apiRef.current.scrollToIndexes({
|
|
69
78
|
colIndex,
|
|
70
|
-
rowIndex
|
|
79
|
+
rowIndex: rowIndexRelativeToAllRows
|
|
71
80
|
});
|
|
72
81
|
const field = apiRef.current.getVisibleColumns()[colIndex].field;
|
|
73
82
|
apiRef.current.setCellFocus(rowId, field);
|
|
@@ -80,19 +89,21 @@ const useGridKeyboardNavigation = (apiRef, props) => {
|
|
|
80
89
|
const field = apiRef.current.getVisibleColumns()[colIndex].field;
|
|
81
90
|
apiRef.current.setColumnHeaderFocus(field, event);
|
|
82
91
|
}, [apiRef, logger]);
|
|
92
|
+
const getRowIdFromIndex = React.useCallback(rowIndex => {
|
|
93
|
+
return currentPageRows[rowIndex].id;
|
|
94
|
+
}, [currentPageRows]);
|
|
83
95
|
const handleCellNavigationKeyDown = React.useCallback((params, event) => {
|
|
84
96
|
const dimensions = apiRef.current.getRootDimensions();
|
|
85
97
|
|
|
86
|
-
if (
|
|
98
|
+
if (currentPageRows.length === 0 || !dimensions) {
|
|
87
99
|
return;
|
|
88
100
|
}
|
|
89
101
|
|
|
90
102
|
const viewportPageSize = apiRef.current.unstable_getViewportPageSize();
|
|
91
|
-
const visibleSortedRows = (0, _gridFilterSelector.gridVisibleSortedRowEntriesSelector)(apiRef);
|
|
92
103
|
const colIndexBefore = params.field ? apiRef.current.getColumnIndex(params.field) : 0;
|
|
93
|
-
const rowIndexBefore =
|
|
94
|
-
const firstRowIndexInPage =
|
|
95
|
-
const lastRowIndexInPage =
|
|
104
|
+
const rowIndexBefore = currentPageRows.findIndex(row => row.id === params.id);
|
|
105
|
+
const firstRowIndexInPage = 0;
|
|
106
|
+
const lastRowIndexInPage = currentPageRows.length - 1;
|
|
96
107
|
const firstColIndex = 0;
|
|
97
108
|
const lastColIndex = (0, _gridColumnsSelector.gridVisibleColumnDefinitionsSelector)(apiRef).length - 1;
|
|
98
109
|
let shouldPreventDefault = true;
|
|
@@ -103,7 +114,7 @@ const useGridKeyboardNavigation = (apiRef, props) => {
|
|
|
103
114
|
{
|
|
104
115
|
// "Enter" is only triggered by the row / cell editing feature
|
|
105
116
|
if (rowIndexBefore < lastRowIndexInPage) {
|
|
106
|
-
goToCell(colIndexBefore, rowIndexBefore + 1);
|
|
117
|
+
goToCell(colIndexBefore, getRowIdFromIndex(rowIndexBefore + 1));
|
|
107
118
|
}
|
|
108
119
|
|
|
109
120
|
break;
|
|
@@ -112,7 +123,7 @@ const useGridKeyboardNavigation = (apiRef, props) => {
|
|
|
112
123
|
case 'ArrowUp':
|
|
113
124
|
{
|
|
114
125
|
if (rowIndexBefore > firstRowIndexInPage) {
|
|
115
|
-
goToCell(colIndexBefore, rowIndexBefore - 1);
|
|
126
|
+
goToCell(colIndexBefore, getRowIdFromIndex(rowIndexBefore - 1));
|
|
116
127
|
} else {
|
|
117
128
|
goToHeader(colIndexBefore, event);
|
|
118
129
|
}
|
|
@@ -123,7 +134,7 @@ const useGridKeyboardNavigation = (apiRef, props) => {
|
|
|
123
134
|
case 'ArrowRight':
|
|
124
135
|
{
|
|
125
136
|
if (colIndexBefore < lastColIndex) {
|
|
126
|
-
goToCell(colIndexBefore + 1, rowIndexBefore, 'right');
|
|
137
|
+
goToCell(colIndexBefore + 1, getRowIdFromIndex(rowIndexBefore), 'right');
|
|
127
138
|
}
|
|
128
139
|
|
|
129
140
|
break;
|
|
@@ -132,7 +143,7 @@ const useGridKeyboardNavigation = (apiRef, props) => {
|
|
|
132
143
|
case 'ArrowLeft':
|
|
133
144
|
{
|
|
134
145
|
if (colIndexBefore > firstColIndex) {
|
|
135
|
-
goToCell(colIndexBefore - 1, rowIndexBefore);
|
|
146
|
+
goToCell(colIndexBefore - 1, getRowIdFromIndex(rowIndexBefore));
|
|
136
147
|
}
|
|
137
148
|
|
|
138
149
|
break;
|
|
@@ -142,9 +153,9 @@ const useGridKeyboardNavigation = (apiRef, props) => {
|
|
|
142
153
|
{
|
|
143
154
|
// "Tab" is only triggered by the row / cell editing feature
|
|
144
155
|
if (event.shiftKey && colIndexBefore > firstColIndex) {
|
|
145
|
-
goToCell(colIndexBefore - 1, rowIndexBefore, 'left');
|
|
156
|
+
goToCell(colIndexBefore - 1, getRowIdFromIndex(rowIndexBefore), 'left');
|
|
146
157
|
} else if (!event.shiftKey && colIndexBefore < lastColIndex) {
|
|
147
|
-
goToCell(colIndexBefore + 1, rowIndexBefore, 'right');
|
|
158
|
+
goToCell(colIndexBefore + 1, getRowIdFromIndex(rowIndexBefore), 'right');
|
|
148
159
|
}
|
|
149
160
|
|
|
150
161
|
break;
|
|
@@ -165,7 +176,7 @@ const useGridKeyboardNavigation = (apiRef, props) => {
|
|
|
165
176
|
}
|
|
166
177
|
|
|
167
178
|
if (!event.shiftKey && rowIndexBefore < lastRowIndexInPage) {
|
|
168
|
-
goToCell(colIndexBefore, Math.min(rowIndexBefore + viewportPageSize, lastRowIndexInPage));
|
|
179
|
+
goToCell(colIndexBefore, getRowIdFromIndex(Math.min(rowIndexBefore + viewportPageSize, lastRowIndexInPage)));
|
|
169
180
|
}
|
|
170
181
|
|
|
171
182
|
break;
|
|
@@ -174,7 +185,7 @@ const useGridKeyboardNavigation = (apiRef, props) => {
|
|
|
174
185
|
case 'PageDown':
|
|
175
186
|
{
|
|
176
187
|
if (rowIndexBefore < lastRowIndexInPage) {
|
|
177
|
-
goToCell(colIndexBefore, Math.min(rowIndexBefore + viewportPageSize, lastRowIndexInPage));
|
|
188
|
+
goToCell(colIndexBefore, getRowIdFromIndex(Math.min(rowIndexBefore + viewportPageSize, lastRowIndexInPage)));
|
|
178
189
|
}
|
|
179
190
|
|
|
180
191
|
break;
|
|
@@ -186,7 +197,7 @@ const useGridKeyboardNavigation = (apiRef, props) => {
|
|
|
186
197
|
const nextRowIndex = Math.max(rowIndexBefore - viewportPageSize, firstRowIndexInPage);
|
|
187
198
|
|
|
188
199
|
if (nextRowIndex !== rowIndexBefore && nextRowIndex >= firstRowIndexInPage) {
|
|
189
|
-
goToCell(colIndexBefore, nextRowIndex);
|
|
200
|
+
goToCell(colIndexBefore, getRowIdFromIndex(nextRowIndex));
|
|
190
201
|
} else {
|
|
191
202
|
goToHeader(colIndexBefore, event);
|
|
192
203
|
}
|
|
@@ -197,9 +208,9 @@ const useGridKeyboardNavigation = (apiRef, props) => {
|
|
|
197
208
|
case 'Home':
|
|
198
209
|
{
|
|
199
210
|
if (event.ctrlKey || event.metaKey || event.shiftKey) {
|
|
200
|
-
goToCell(firstColIndex, firstRowIndexInPage);
|
|
211
|
+
goToCell(firstColIndex, getRowIdFromIndex(firstRowIndexInPage));
|
|
201
212
|
} else {
|
|
202
|
-
goToCell(firstColIndex, rowIndexBefore);
|
|
213
|
+
goToCell(firstColIndex, getRowIdFromIndex(rowIndexBefore));
|
|
203
214
|
}
|
|
204
215
|
|
|
205
216
|
break;
|
|
@@ -208,9 +219,9 @@ const useGridKeyboardNavigation = (apiRef, props) => {
|
|
|
208
219
|
case 'End':
|
|
209
220
|
{
|
|
210
221
|
if (event.ctrlKey || event.metaKey || event.shiftKey) {
|
|
211
|
-
goToCell(lastColIndex, lastRowIndexInPage);
|
|
222
|
+
goToCell(lastColIndex, getRowIdFromIndex(lastRowIndexInPage));
|
|
212
223
|
} else {
|
|
213
|
-
goToCell(lastColIndex, rowIndexBefore);
|
|
224
|
+
goToCell(lastColIndex, getRowIdFromIndex(rowIndexBefore));
|
|
214
225
|
}
|
|
215
226
|
|
|
216
227
|
break;
|
|
@@ -225,10 +236,8 @@ const useGridKeyboardNavigation = (apiRef, props) => {
|
|
|
225
236
|
if (shouldPreventDefault) {
|
|
226
237
|
event.preventDefault();
|
|
227
238
|
}
|
|
228
|
-
}, [apiRef,
|
|
239
|
+
}, [apiRef, currentPageRows, goToCell, goToHeader, getRowIdFromIndex]);
|
|
229
240
|
const handleColumnHeaderKeyDown = React.useCallback((params, event) => {
|
|
230
|
-
var _currentPage$range$fi, _currentPage$range, _currentPage$range$la, _currentPage$range2;
|
|
231
|
-
|
|
232
241
|
const headerTitleNode = event.currentTarget.querySelector(`.${_gridClasses.gridClasses.columnHeaderTitleContainerContent}`);
|
|
233
242
|
const isFromInsideContent = !!headerTitleNode && headerTitleNode.contains(event.target);
|
|
234
243
|
|
|
@@ -246,8 +255,8 @@ const useGridKeyboardNavigation = (apiRef, props) => {
|
|
|
246
255
|
|
|
247
256
|
const viewportPageSize = apiRef.current.unstable_getViewportPageSize();
|
|
248
257
|
const colIndexBefore = params.field ? apiRef.current.getColumnIndex(params.field) : 0;
|
|
249
|
-
const firstRowIndexInPage =
|
|
250
|
-
const lastRowIndexInPage =
|
|
258
|
+
const firstRowIndexInPage = 0;
|
|
259
|
+
const lastRowIndexInPage = currentPageRows.length - 1;
|
|
251
260
|
const firstColIndex = 0;
|
|
252
261
|
const lastColIndex = (0, _gridColumnsSelector.gridVisibleColumnDefinitionsSelector)(apiRef).length - 1;
|
|
253
262
|
let shouldPreventDefault = true;
|
|
@@ -256,7 +265,7 @@ const useGridKeyboardNavigation = (apiRef, props) => {
|
|
|
256
265
|
case 'ArrowDown':
|
|
257
266
|
{
|
|
258
267
|
if (firstRowIndexInPage !== null) {
|
|
259
|
-
goToCell(colIndexBefore, firstRowIndexInPage);
|
|
268
|
+
goToCell(colIndexBefore, getRowIdFromIndex(firstRowIndexInPage));
|
|
260
269
|
}
|
|
261
270
|
|
|
262
271
|
break;
|
|
@@ -283,7 +292,7 @@ const useGridKeyboardNavigation = (apiRef, props) => {
|
|
|
283
292
|
case 'PageDown':
|
|
284
293
|
{
|
|
285
294
|
if (firstRowIndexInPage !== null && lastRowIndexInPage !== null) {
|
|
286
|
-
goToCell(colIndexBefore, Math.min(firstRowIndexInPage + viewportPageSize, lastRowIndexInPage));
|
|
295
|
+
goToCell(colIndexBefore, getRowIdFromIndex(Math.min(firstRowIndexInPage + viewportPageSize, lastRowIndexInPage)));
|
|
287
296
|
}
|
|
288
297
|
|
|
289
298
|
break;
|
|
@@ -325,7 +334,7 @@ const useGridKeyboardNavigation = (apiRef, props) => {
|
|
|
325
334
|
if (shouldPreventDefault) {
|
|
326
335
|
event.preventDefault();
|
|
327
336
|
}
|
|
328
|
-
}, [apiRef,
|
|
337
|
+
}, [apiRef, currentPageRows, goToCell, goToHeader, getRowIdFromIndex]);
|
|
329
338
|
const handleCellKeyDown = React.useCallback((params, event) => {
|
|
330
339
|
// Ignore portal
|
|
331
340
|
if (!event.currentTarget.contains(event.target)) {
|
|
@@ -85,13 +85,14 @@ const useGridPage = (apiRef, props) => {
|
|
|
85
85
|
* PRE-PROCESSING
|
|
86
86
|
*/
|
|
87
87
|
|
|
88
|
-
const stateExportPreProcessing = React.useCallback(prevState => {
|
|
88
|
+
const stateExportPreProcessing = React.useCallback((prevState, context) => {
|
|
89
89
|
var _props$initialState, _props$initialState$p;
|
|
90
90
|
|
|
91
91
|
const pageToExport = (0, _gridPaginationSelector.gridPageSelector)(apiRef);
|
|
92
|
-
const shouldExportPage = // Always export if the
|
|
92
|
+
const shouldExportPage = // Always export if the `exportOnlyDirtyModels` property is activated
|
|
93
|
+
!context.exportOnlyDirtyModels || // Always export if the page is controlled
|
|
93
94
|
props.page != null || // Always export if the page has been initialized
|
|
94
|
-
((_props$initialState = props.initialState) == null ? void 0 : (_props$initialState$p = _props$initialState.pagination) == null ? void 0 : _props$initialState$p.page) != null || // Export if the page
|
|
95
|
+
((_props$initialState = props.initialState) == null ? void 0 : (_props$initialState$p = _props$initialState.pagination) == null ? void 0 : _props$initialState$p.page) != null || // Export if the page is not equal to the default value
|
|
95
96
|
pageToExport !== 0;
|
|
96
97
|
|
|
97
98
|
if (!shouldExportPage) {
|
|
@@ -19,6 +19,8 @@ var _density = require("../density");
|
|
|
19
19
|
|
|
20
20
|
var _pipeProcessing = require("../../core/pipeProcessing");
|
|
21
21
|
|
|
22
|
+
var _gridRowsUtils = require("../rows/gridRowsUtils");
|
|
23
|
+
|
|
22
24
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
23
25
|
|
|
24
26
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -70,13 +72,14 @@ const useGridPageSize = (apiRef, props) => {
|
|
|
70
72
|
* PRE-PROCESSING
|
|
71
73
|
*/
|
|
72
74
|
|
|
73
|
-
const stateExportPreProcessing = React.useCallback(prevState => {
|
|
75
|
+
const stateExportPreProcessing = React.useCallback((prevState, context) => {
|
|
74
76
|
var _props$initialState, _props$initialState$p;
|
|
75
77
|
|
|
76
78
|
const pageSizeToExport = (0, _gridPaginationSelector.gridPageSizeSelector)(apiRef);
|
|
77
|
-
const shouldExportPageSize = // Always export if the
|
|
79
|
+
const shouldExportPageSize = // Always export if the `exportOnlyDirtyModels` property is activated
|
|
80
|
+
!context.exportOnlyDirtyModels || // Always export if the page size is controlled
|
|
78
81
|
props.pageSize != null || // Always export if the page size has been initialized
|
|
79
|
-
((_props$initialState = props.initialState) == null ? void 0 : (_props$initialState$p = _props$initialState.pagination) == null ? void 0 : _props$initialState$p.pageSize) != null || // Export if the page size
|
|
82
|
+
((_props$initialState = props.initialState) == null ? void 0 : (_props$initialState$p = _props$initialState.pagination) == null ? void 0 : _props$initialState$p.pageSize) != null || // Export if the page size is not equal to the default value
|
|
80
83
|
pageSizeToExport !== defaultPageSize(props.autoPageSize);
|
|
81
84
|
|
|
82
85
|
if (!shouldExportPageSize) {
|
|
@@ -117,7 +120,8 @@ const useGridPageSize = (apiRef, props) => {
|
|
|
117
120
|
return;
|
|
118
121
|
}
|
|
119
122
|
|
|
120
|
-
const
|
|
123
|
+
const pinnedRowsHeight = (0, _gridRowsUtils.calculatePinnedRowsHeight)(apiRef);
|
|
124
|
+
const maximumPageSizeWithoutScrollBar = Math.floor((dimensions.viewportInnerSize.height - pinnedRowsHeight.top - pinnedRowsHeight.bottom) / rowHeight);
|
|
121
125
|
apiRef.current.setPageSize(maximumPageSizeWithoutScrollBar);
|
|
122
126
|
}, [apiRef, props.autoPageSize, rowHeight]);
|
|
123
127
|
(0, _utils.useGridApiEventHandler)(apiRef, 'viewportInnerSizeChange', handleUpdateAutoPageSize);
|
|
@@ -39,7 +39,9 @@ const preferencePanelStateInitializer = (state, props) => {
|
|
|
39
39
|
|
|
40
40
|
exports.preferencePanelStateInitializer = preferencePanelStateInitializer;
|
|
41
41
|
|
|
42
|
-
const useGridPreferencesPanel = apiRef => {
|
|
42
|
+
const useGridPreferencesPanel = (apiRef, props) => {
|
|
43
|
+
var _props$initialState3;
|
|
44
|
+
|
|
43
45
|
const logger = (0, _useGridLogger.useGridLogger)(apiRef, 'useGridPreferencesPanel');
|
|
44
46
|
const hideTimeout = React.useRef();
|
|
45
47
|
const immediateTimeout = React.useRef();
|
|
@@ -96,17 +98,23 @@ const useGridPreferencesPanel = apiRef => {
|
|
|
96
98
|
* PRE-PROCESSING
|
|
97
99
|
*/
|
|
98
100
|
|
|
99
|
-
const stateExportPreProcessing = React.useCallback(prevState => {
|
|
101
|
+
const stateExportPreProcessing = React.useCallback((prevState, context) => {
|
|
102
|
+
var _props$initialState2;
|
|
103
|
+
|
|
100
104
|
const preferencePanelToExport = (0, _gridPreferencePanelSelector.gridPreferencePanelStateSelector)(apiRef.current.state);
|
|
105
|
+
const shouldExportPreferencePanel = // Always export if the `exportOnlyDirtyModels` property is activated
|
|
106
|
+
!context.exportOnlyDirtyModels || // Always export if the panel was initialized
|
|
107
|
+
((_props$initialState2 = props.initialState) == null ? void 0 : _props$initialState2.preferencePanel) != null || // Always export if the panel is opened
|
|
108
|
+
preferencePanelToExport.open;
|
|
101
109
|
|
|
102
|
-
if (!
|
|
110
|
+
if (!shouldExportPreferencePanel) {
|
|
103
111
|
return prevState;
|
|
104
112
|
}
|
|
105
113
|
|
|
106
114
|
return (0, _extends2.default)({}, prevState, {
|
|
107
115
|
preferencePanel: preferencePanelToExport
|
|
108
116
|
});
|
|
109
|
-
}, [apiRef]);
|
|
117
|
+
}, [apiRef, (_props$initialState3 = props.initialState) == null ? void 0 : _props$initialState3.preferencePanel]);
|
|
110
118
|
const stateRestorePreProcessing = React.useCallback((params, context) => {
|
|
111
119
|
const preferencePanel = context.stateToRestore.preferencePanel;
|
|
112
120
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.gridTopLevelRowCountSelector = exports.gridRowsStateSelector = exports.gridRowsLookupSelector = exports.gridRowsLoadingSelector = exports.gridRowsIdToIdLookupSelector = exports.gridRowTreeSelector = exports.gridRowTreeDepthSelector = exports.gridRowIdsSelector = exports.gridRowGroupingNameSelector = exports.gridRowCountSelector = void 0;
|
|
6
|
+
exports.gridTopLevelRowCountSelector = exports.gridRowsStateSelector = exports.gridRowsLookupSelector = exports.gridRowsLoadingSelector = exports.gridRowsIdToIdLookupSelector = exports.gridRowTreeSelector = exports.gridRowTreeDepthSelector = exports.gridRowIdsSelector = exports.gridRowGroupingNameSelector = exports.gridRowCountSelector = exports.gridPinnedRowsSelector = exports.gridPinnedRowsCountSelector = exports.gridAdditionalRowGroupsSelector = void 0;
|
|
7
7
|
|
|
8
8
|
var _createSelector = require("../../../utils/createSelector");
|
|
9
9
|
|
|
@@ -27,4 +27,26 @@ exports.gridRowGroupingNameSelector = gridRowGroupingNameSelector;
|
|
|
27
27
|
const gridRowTreeDepthSelector = (0, _createSelector.createSelector)(gridRowsStateSelector, rows => rows.treeDepth);
|
|
28
28
|
exports.gridRowTreeDepthSelector = gridRowTreeDepthSelector;
|
|
29
29
|
const gridRowIdsSelector = (0, _createSelector.createSelector)(gridRowsStateSelector, rows => rows.ids);
|
|
30
|
-
|
|
30
|
+
/**
|
|
31
|
+
* @ignore - do not document.
|
|
32
|
+
*/
|
|
33
|
+
|
|
34
|
+
exports.gridRowIdsSelector = gridRowIdsSelector;
|
|
35
|
+
const gridAdditionalRowGroupsSelector = (0, _createSelector.createSelector)(gridRowsStateSelector, rows => rows == null ? void 0 : rows.additionalRowGroups);
|
|
36
|
+
/**
|
|
37
|
+
* @ignore - do not document.
|
|
38
|
+
*/
|
|
39
|
+
|
|
40
|
+
exports.gridAdditionalRowGroupsSelector = gridAdditionalRowGroupsSelector;
|
|
41
|
+
const gridPinnedRowsSelector = (0, _createSelector.createSelector)(gridAdditionalRowGroupsSelector, additionalRowGroups => additionalRowGroups == null ? void 0 : additionalRowGroups.pinnedRows);
|
|
42
|
+
/**
|
|
43
|
+
* @ignore - do not document.
|
|
44
|
+
*/
|
|
45
|
+
|
|
46
|
+
exports.gridPinnedRowsSelector = gridPinnedRowsSelector;
|
|
47
|
+
const gridPinnedRowsCountSelector = (0, _createSelector.createSelector)(gridPinnedRowsSelector, pinnedRows => {
|
|
48
|
+
var _pinnedRows$top, _pinnedRows$bottom;
|
|
49
|
+
|
|
50
|
+
return ((pinnedRows == null ? void 0 : (_pinnedRows$top = pinnedRows.top) == null ? void 0 : _pinnedRows$top.length) || 0) + ((pinnedRows == null ? void 0 : (_pinnedRows$bottom = pinnedRows.bottom) == null ? void 0 : _pinnedRows$bottom.length) || 0);
|
|
51
|
+
});
|
|
52
|
+
exports.gridPinnedRowsCountSelector = gridPinnedRowsCountSelector;
|
|
@@ -5,6 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
+
exports.calculatePinnedRowsHeight = calculatePinnedRowsHeight;
|
|
8
9
|
exports.checkGridRowIdIsValid = checkGridRowIdIsValid;
|
|
9
10
|
exports.getTreeNodeDescendants = exports.getRowsStateFromCache = exports.getRowIdFromRowModel = exports.createRowsInternalCache = void 0;
|
|
10
11
|
|
|
@@ -12,6 +13,8 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
12
13
|
|
|
13
14
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
14
15
|
|
|
16
|
+
var _gridRowsSelector = require("./gridRowsSelector");
|
|
17
|
+
|
|
15
18
|
const _excluded = ["rowsBeforePartialUpdates"];
|
|
16
19
|
|
|
17
20
|
/**
|
|
@@ -73,7 +76,7 @@ const getRowsStateFromCache = ({
|
|
|
73
76
|
previousTree
|
|
74
77
|
}));
|
|
75
78
|
const processedGroupingResponse = apiRef.current.unstable_applyPipeProcessors('hydrateRows', groupingResponse);
|
|
76
|
-
const dataTopLevelRowCount = processedGroupingResponse.treeDepth === 1 ? processedGroupingResponse.ids.length : Object.values(processedGroupingResponse.tree).filter(node => node.parent == null).length;
|
|
79
|
+
const dataTopLevelRowCount = processedGroupingResponse.treeDepth === 1 ? processedGroupingResponse.ids.length : Object.values(processedGroupingResponse.tree).filter(node => node.parent == null && !node.isPinned).length;
|
|
77
80
|
return (0, _extends2.default)({}, processedGroupingResponse, {
|
|
78
81
|
groupingResponseBeforeRowHydration: groupingResponse,
|
|
79
82
|
loading: loadingProp,
|
|
@@ -109,4 +112,22 @@ const getTreeNodeDescendants = (tree, parentId, skipAutoGeneratedRows) => {
|
|
|
109
112
|
return validDescendants;
|
|
110
113
|
};
|
|
111
114
|
|
|
112
|
-
exports.getTreeNodeDescendants = getTreeNodeDescendants;
|
|
115
|
+
exports.getTreeNodeDescendants = getTreeNodeDescendants;
|
|
116
|
+
|
|
117
|
+
function calculatePinnedRowsHeight(apiRef) {
|
|
118
|
+
var _pinnedRows$top, _pinnedRows$bottom;
|
|
119
|
+
|
|
120
|
+
const pinnedRows = (0, _gridRowsSelector.gridPinnedRowsSelector)(apiRef);
|
|
121
|
+
const topPinnedRowsHeight = (pinnedRows == null ? void 0 : (_pinnedRows$top = pinnedRows.top) == null ? void 0 : _pinnedRows$top.reduce((acc, value) => {
|
|
122
|
+
acc += apiRef.current.unstable_getRowHeight(value.id);
|
|
123
|
+
return acc;
|
|
124
|
+
}, 0)) || 0;
|
|
125
|
+
const bottomPinnedRowsHeight = (pinnedRows == null ? void 0 : (_pinnedRows$bottom = pinnedRows.bottom) == null ? void 0 : _pinnedRows$bottom.reduce((acc, value) => {
|
|
126
|
+
acc += apiRef.current.unstable_getRowHeight(value.id);
|
|
127
|
+
return acc;
|
|
128
|
+
}, 0)) || 0;
|
|
129
|
+
return {
|
|
130
|
+
top: topPinnedRowsHeight,
|
|
131
|
+
bottom: bottomPinnedRowsHeight
|
|
132
|
+
};
|
|
133
|
+
}
|
|
@@ -4,6 +4,16 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
var _exportNames = {
|
|
7
|
+
gridRowsStateSelector: true,
|
|
8
|
+
gridRowCountSelector: true,
|
|
9
|
+
gridRowsLoadingSelector: true,
|
|
10
|
+
gridTopLevelRowCountSelector: true,
|
|
11
|
+
gridRowsLookupSelector: true,
|
|
12
|
+
gridRowsIdToIdLookupSelector: true,
|
|
13
|
+
gridRowTreeSelector: true,
|
|
14
|
+
gridRowGroupingNameSelector: true,
|
|
15
|
+
gridRowTreeDepthSelector: true,
|
|
16
|
+
gridRowIdsSelector: true,
|
|
7
17
|
checkGridRowIdIsValid: true
|
|
8
18
|
};
|
|
9
19
|
Object.defineProperty(exports, "checkGridRowIdIsValid", {
|
|
@@ -12,6 +22,66 @@ Object.defineProperty(exports, "checkGridRowIdIsValid", {
|
|
|
12
22
|
return _gridRowsUtils.checkGridRowIdIsValid;
|
|
13
23
|
}
|
|
14
24
|
});
|
|
25
|
+
Object.defineProperty(exports, "gridRowCountSelector", {
|
|
26
|
+
enumerable: true,
|
|
27
|
+
get: function () {
|
|
28
|
+
return _gridRowsSelector.gridRowCountSelector;
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
Object.defineProperty(exports, "gridRowGroupingNameSelector", {
|
|
32
|
+
enumerable: true,
|
|
33
|
+
get: function () {
|
|
34
|
+
return _gridRowsSelector.gridRowGroupingNameSelector;
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
Object.defineProperty(exports, "gridRowIdsSelector", {
|
|
38
|
+
enumerable: true,
|
|
39
|
+
get: function () {
|
|
40
|
+
return _gridRowsSelector.gridRowIdsSelector;
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
Object.defineProperty(exports, "gridRowTreeDepthSelector", {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
get: function () {
|
|
46
|
+
return _gridRowsSelector.gridRowTreeDepthSelector;
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
Object.defineProperty(exports, "gridRowTreeSelector", {
|
|
50
|
+
enumerable: true,
|
|
51
|
+
get: function () {
|
|
52
|
+
return _gridRowsSelector.gridRowTreeSelector;
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
Object.defineProperty(exports, "gridRowsIdToIdLookupSelector", {
|
|
56
|
+
enumerable: true,
|
|
57
|
+
get: function () {
|
|
58
|
+
return _gridRowsSelector.gridRowsIdToIdLookupSelector;
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
Object.defineProperty(exports, "gridRowsLoadingSelector", {
|
|
62
|
+
enumerable: true,
|
|
63
|
+
get: function () {
|
|
64
|
+
return _gridRowsSelector.gridRowsLoadingSelector;
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
Object.defineProperty(exports, "gridRowsLookupSelector", {
|
|
68
|
+
enumerable: true,
|
|
69
|
+
get: function () {
|
|
70
|
+
return _gridRowsSelector.gridRowsLookupSelector;
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
Object.defineProperty(exports, "gridRowsStateSelector", {
|
|
74
|
+
enumerable: true,
|
|
75
|
+
get: function () {
|
|
76
|
+
return _gridRowsSelector.gridRowsStateSelector;
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
Object.defineProperty(exports, "gridTopLevelRowCountSelector", {
|
|
80
|
+
enumerable: true,
|
|
81
|
+
get: function () {
|
|
82
|
+
return _gridRowsSelector.gridTopLevelRowCountSelector;
|
|
83
|
+
}
|
|
84
|
+
});
|
|
15
85
|
|
|
16
86
|
var _gridRowsMetaSelector = require("./gridRowsMetaSelector");
|
|
17
87
|
|
|
@@ -43,16 +113,4 @@ Object.keys(_gridRowsMetaState).forEach(function (key) {
|
|
|
43
113
|
|
|
44
114
|
var _gridRowsSelector = require("./gridRowsSelector");
|
|
45
115
|
|
|
46
|
-
Object.keys(_gridRowsSelector).forEach(function (key) {
|
|
47
|
-
if (key === "default" || key === "__esModule") return;
|
|
48
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
49
|
-
if (key in exports && exports[key] === _gridRowsSelector[key]) return;
|
|
50
|
-
Object.defineProperty(exports, key, {
|
|
51
|
-
enumerable: true,
|
|
52
|
-
get: function () {
|
|
53
|
-
return _gridRowsSelector[key];
|
|
54
|
-
}
|
|
55
|
-
});
|
|
56
|
-
});
|
|
57
|
-
|
|
58
116
|
var _gridRowsUtils = require("./gridRowsUtils");
|
|
@@ -29,6 +29,8 @@ var _gridSortingSelector = require("../sorting/gridSortingSelector");
|
|
|
29
29
|
|
|
30
30
|
var _pipeProcessing = require("../../core/pipeProcessing");
|
|
31
31
|
|
|
32
|
+
var _gridRowsSelector = require("./gridRowsSelector");
|
|
33
|
+
|
|
32
34
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
33
35
|
|
|
34
36
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -62,13 +64,14 @@ const useGridRowsMeta = (apiRef, props) => {
|
|
|
62
64
|
const paginationState = (0, _useGridSelector.useGridSelector)(apiRef, _gridPaginationSelector.gridPaginationSelector);
|
|
63
65
|
const sortingState = (0, _useGridSelector.useGridSelector)(apiRef, _gridSortingSelector.gridSortingStateSelector);
|
|
64
66
|
const currentPage = (0, _useGridVisibleRows.useGridVisibleRows)(apiRef, props);
|
|
67
|
+
const pinnedRows = (0, _useGridSelector.useGridSelector)(apiRef, _gridRowsSelector.gridPinnedRowsSelector);
|
|
65
68
|
const hydrateRowsMeta = React.useCallback(() => {
|
|
69
|
+
var _pinnedRows$top, _pinnedRows$bottom;
|
|
70
|
+
|
|
66
71
|
hasRowWithAutoHeight.current = false;
|
|
67
72
|
const densityFactor = (0, _densitySelector.gridDensityFactorSelector)(apiRef.current.state, apiRef.current.instanceId);
|
|
68
|
-
const positions = [];
|
|
69
|
-
const currentPageTotalHeight = currentPage.rows.reduce((acc, row) => {
|
|
70
|
-
positions.push(acc);
|
|
71
73
|
|
|
74
|
+
const calculateRowProcessedSizes = row => {
|
|
72
75
|
if (!rowsHeightLookup.current[row.id]) {
|
|
73
76
|
rowsHeightLookup.current[row.id] = {
|
|
74
77
|
sizes: {
|
|
@@ -140,9 +143,22 @@ const useGridRowsMeta = (apiRef, props) => {
|
|
|
140
143
|
|
|
141
144
|
const processedSizes = apiRef.current.unstable_applyPipeProcessors('rowHeight', initialHeights, row);
|
|
142
145
|
rowsHeightLookup.current[row.id].sizes = processedSizes;
|
|
146
|
+
return processedSizes;
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
const positions = [];
|
|
150
|
+
const currentPageTotalHeight = currentPage.rows.reduce((acc, row) => {
|
|
151
|
+
positions.push(acc);
|
|
152
|
+
const processedSizes = calculateRowProcessedSizes(row);
|
|
143
153
|
const finalRowHeight = Object.values(processedSizes).reduce((acc2, value) => acc2 + value, 0);
|
|
144
154
|
return acc + finalRowHeight;
|
|
145
155
|
}, 0);
|
|
156
|
+
pinnedRows == null ? void 0 : (_pinnedRows$top = pinnedRows.top) == null ? void 0 : _pinnedRows$top.forEach(row => {
|
|
157
|
+
calculateRowProcessedSizes(row);
|
|
158
|
+
});
|
|
159
|
+
pinnedRows == null ? void 0 : (_pinnedRows$bottom = pinnedRows.bottom) == null ? void 0 : _pinnedRows$bottom.forEach(row => {
|
|
160
|
+
calculateRowProcessedSizes(row);
|
|
161
|
+
});
|
|
146
162
|
apiRef.current.setState(state => {
|
|
147
163
|
return (0, _extends2.default)({}, state, {
|
|
148
164
|
rowsMeta: {
|
|
@@ -158,7 +174,7 @@ const useGridRowsMeta = (apiRef, props) => {
|
|
|
158
174
|
}
|
|
159
175
|
|
|
160
176
|
apiRef.current.forceUpdate();
|
|
161
|
-
}, [apiRef, currentPage.rows, rowHeightFromDensity, getRowHeightProp, getRowSpacing, getEstimatedRowHeight]);
|
|
177
|
+
}, [apiRef, currentPage.rows, rowHeightFromDensity, getRowHeightProp, getRowSpacing, getEstimatedRowHeight, pinnedRows]);
|
|
162
178
|
const getRowHeight = React.useCallback(rowId => {
|
|
163
179
|
const height = rowsHeightLookup.current[rowId];
|
|
164
180
|
return height ? height.sizes.base : rowHeightFromDensity;
|
|
@@ -18,7 +18,8 @@ const flatRowTreeCreationMethod = ({
|
|
|
18
18
|
for (let i = 0; i < ids.length; i += 1) {
|
|
19
19
|
const rowId = ids[i];
|
|
20
20
|
|
|
21
|
-
if (previousTree && previousTree[rowId] && previousTree[rowId].depth === 0 && previousTree[rowId].parent == null
|
|
21
|
+
if (previousTree && previousTree[rowId] && previousTree[rowId].depth === 0 && previousTree[rowId].parent == null && // pinned row can be unpinned
|
|
22
|
+
!previousTree[rowId].isPinned) {
|
|
22
23
|
tree[rowId] = previousTree[rowId];
|
|
23
24
|
} else {
|
|
24
25
|
tree[rowId] = {
|
|
@@ -23,6 +23,8 @@ var _useGridApiMethod = require("../../utils/useGridApiMethod");
|
|
|
23
23
|
|
|
24
24
|
var _gridFilterSelector = require("../filter/gridFilterSelector");
|
|
25
25
|
|
|
26
|
+
var _gridClasses = require("../../../constants/gridClasses");
|
|
27
|
+
|
|
26
28
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
27
29
|
|
|
28
30
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -108,13 +110,17 @@ const useGridScroll = (apiRef, props) => {
|
|
|
108
110
|
}
|
|
109
111
|
|
|
110
112
|
if (params.rowIndex != null) {
|
|
113
|
+
var _querySelector, _querySelector2;
|
|
114
|
+
|
|
111
115
|
const rowsMeta = (0, _gridRowsMetaSelector.gridRowsMetaSelector)(apiRef.current.state);
|
|
112
116
|
const page = (0, _gridPaginationSelector.gridPageSelector)(apiRef);
|
|
113
117
|
const pageSize = (0, _gridPaginationSelector.gridPageSizeSelector)(apiRef);
|
|
114
118
|
const elementIndex = !props.pagination ? params.rowIndex : params.rowIndex - page * pageSize;
|
|
115
119
|
const targetOffsetHeight = rowsMeta.positions[elementIndex + 1] ? rowsMeta.positions[elementIndex + 1] - rowsMeta.positions[elementIndex] : rowsMeta.currentPageTotalHeight - rowsMeta.positions[elementIndex];
|
|
120
|
+
const topPinnedRowsHeight = ((_querySelector = windowRef.current.querySelector(`.${_gridClasses.gridClasses['pinnedRows--top']}`)) == null ? void 0 : _querySelector.clientHeight) || 0;
|
|
121
|
+
const bottomPinnedRowsHeight = ((_querySelector2 = windowRef.current.querySelector(`.${_gridClasses.gridClasses['pinnedRows--bottom']}`)) == null ? void 0 : _querySelector2.clientHeight) || 0;
|
|
116
122
|
scrollCoordinates.top = scrollIntoView({
|
|
117
|
-
clientHeight: windowRef.current.clientHeight,
|
|
123
|
+
clientHeight: windowRef.current.clientHeight - topPinnedRowsHeight - bottomPinnedRowsHeight,
|
|
118
124
|
scrollTop: windowRef.current.scrollTop,
|
|
119
125
|
offsetHeight: targetOffsetHeight,
|
|
120
126
|
offsetTop: rowsMeta.positions[elementIndex]
|