@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
|
@@ -87,11 +87,20 @@ const GridToolbarDensitySelector = /*#__PURE__*/React.forwardRef(function GridTo
|
|
|
87
87
|
}, [densityValue, rootProps]);
|
|
88
88
|
|
|
89
89
|
const handleDensitySelectorOpen = event => {
|
|
90
|
-
setOpen(
|
|
90
|
+
setOpen(prevOpen => !prevOpen);
|
|
91
91
|
onClick == null ? void 0 : onClick(event);
|
|
92
92
|
};
|
|
93
93
|
|
|
94
|
-
const
|
|
94
|
+
const handleDensitySelectorClickAway = event => {
|
|
95
|
+
var _buttonRef$current;
|
|
96
|
+
|
|
97
|
+
if (buttonRef.current === event.target || // if user clicked on the icon
|
|
98
|
+
(_buttonRef$current = buttonRef.current) != null && _buttonRef$current.contains(event.target)) {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
setOpen(false);
|
|
103
|
+
};
|
|
95
104
|
|
|
96
105
|
const handleDensityUpdate = newDensity => {
|
|
97
106
|
apiRef.current.setDensity(newDensity);
|
|
@@ -104,7 +113,7 @@ const GridToolbarDensitySelector = /*#__PURE__*/React.forwardRef(function GridTo
|
|
|
104
113
|
}
|
|
105
114
|
|
|
106
115
|
if ((0, _keyboardUtils.isHideMenuKey)(event.key)) {
|
|
107
|
-
|
|
116
|
+
setOpen(false);
|
|
108
117
|
}
|
|
109
118
|
}; // Disable the button if the corresponding is disabled
|
|
110
119
|
|
|
@@ -137,7 +146,7 @@ const GridToolbarDensitySelector = /*#__PURE__*/React.forwardRef(function GridTo
|
|
|
137
146
|
})), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridMenu.GridMenu, {
|
|
138
147
|
open: open,
|
|
139
148
|
target: buttonRef.current,
|
|
140
|
-
onClickAway:
|
|
149
|
+
onClickAway: handleDensitySelectorClickAway,
|
|
141
150
|
position: "bottom-start",
|
|
142
151
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_MenuList.default, {
|
|
143
152
|
id: densityMenuId,
|
|
@@ -23,7 +23,9 @@ var _GridToolbarExportContainer = require("./GridToolbarExportContainer");
|
|
|
23
23
|
|
|
24
24
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
25
25
|
|
|
26
|
-
const _excluded = ["
|
|
26
|
+
const _excluded = ["hideMenu", "options"],
|
|
27
|
+
_excluded2 = ["hideMenu", "options"],
|
|
28
|
+
_excluded3 = ["csvOptions", "printOptions", "excelOptions"];
|
|
27
29
|
|
|
28
30
|
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); }
|
|
29
31
|
|
|
@@ -34,14 +36,16 @@ const GridCsvExportMenuItem = props => {
|
|
|
34
36
|
const {
|
|
35
37
|
hideMenu,
|
|
36
38
|
options
|
|
37
|
-
} = props
|
|
38
|
-
|
|
39
|
+
} = props,
|
|
40
|
+
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
41
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_MenuItem.default, (0, _extends2.default)({
|
|
39
42
|
onClick: () => {
|
|
40
43
|
apiRef.current.exportDataAsCsv(options);
|
|
41
44
|
hideMenu == null ? void 0 : hideMenu();
|
|
42
|
-
}
|
|
45
|
+
}
|
|
46
|
+
}, other, {
|
|
43
47
|
children: apiRef.current.getLocaleText('toolbarExportCSV')
|
|
44
|
-
});
|
|
48
|
+
}));
|
|
45
49
|
};
|
|
46
50
|
|
|
47
51
|
exports.GridCsvExportMenuItem = GridCsvExportMenuItem;
|
|
@@ -51,14 +55,16 @@ const GridPrintExportMenuItem = props => {
|
|
|
51
55
|
const {
|
|
52
56
|
hideMenu,
|
|
53
57
|
options
|
|
54
|
-
} = props
|
|
55
|
-
|
|
58
|
+
} = props,
|
|
59
|
+
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded2);
|
|
60
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_MenuItem.default, (0, _extends2.default)({
|
|
56
61
|
onClick: () => {
|
|
57
62
|
apiRef.current.exportDataAsPrint(options);
|
|
58
63
|
hideMenu == null ? void 0 : hideMenu();
|
|
59
|
-
}
|
|
64
|
+
}
|
|
65
|
+
}, other, {
|
|
60
66
|
children: apiRef.current.getLocaleText('toolbarExportPrint')
|
|
61
|
-
});
|
|
67
|
+
}));
|
|
62
68
|
};
|
|
63
69
|
|
|
64
70
|
exports.GridPrintExportMenuItem = GridPrintExportMenuItem;
|
|
@@ -68,7 +74,7 @@ const GridToolbarExport = /*#__PURE__*/React.forwardRef(function GridToolbarExpo
|
|
|
68
74
|
printOptions = {},
|
|
69
75
|
excelOptions
|
|
70
76
|
} = props,
|
|
71
|
-
other = (0, _objectWithoutPropertiesLoose2.default)(props,
|
|
77
|
+
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded3);
|
|
72
78
|
const apiRef = (0, _useGridApiContext.useGridApiContext)();
|
|
73
79
|
const preProcessedButtons = apiRef.current.unstable_applyPipeProcessors('exportMenu', [], {
|
|
74
80
|
excelOptions,
|
|
@@ -52,7 +52,7 @@ const GridToolbarExportContainer = /*#__PURE__*/React.forwardRef(function GridTo
|
|
|
52
52
|
const handleRef = (0, _utils.useForkRef)(ref, buttonRef);
|
|
53
53
|
|
|
54
54
|
const handleMenuOpen = event => {
|
|
55
|
-
setOpen(
|
|
55
|
+
setOpen(prevOpen => !prevOpen);
|
|
56
56
|
onClick == null ? void 0 : onClick(event);
|
|
57
57
|
};
|
|
58
58
|
|
|
@@ -68,6 +68,17 @@ const GridToolbarExportContainer = /*#__PURE__*/React.forwardRef(function GridTo
|
|
|
68
68
|
}
|
|
69
69
|
};
|
|
70
70
|
|
|
71
|
+
const handleMenuClickAway = event => {
|
|
72
|
+
var _buttonRef$current;
|
|
73
|
+
|
|
74
|
+
if (buttonRef.current === event.target || // if user clicked on the icon
|
|
75
|
+
(_buttonRef$current = buttonRef.current) != null && _buttonRef$current.contains(event.target)) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
setOpen(false);
|
|
80
|
+
};
|
|
81
|
+
|
|
71
82
|
if (children == null) {
|
|
72
83
|
return null;
|
|
73
84
|
}
|
|
@@ -89,7 +100,7 @@ const GridToolbarExportContainer = /*#__PURE__*/React.forwardRef(function GridTo
|
|
|
89
100
|
})), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridMenu.GridMenu, {
|
|
90
101
|
open: open,
|
|
91
102
|
target: buttonRef.current,
|
|
92
|
-
onClickAway:
|
|
103
|
+
onClickAway: handleMenuClickAway,
|
|
93
104
|
position: "bottom-start",
|
|
94
105
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_MenuList.default, {
|
|
95
106
|
id: menuId,
|
|
@@ -4,10 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.GRID_EXPERIMENTAL_ENABLED = void 0;
|
|
7
|
-
|
|
8
|
-
var _utils = require("../utils/utils");
|
|
9
|
-
|
|
10
|
-
// A guide to feature toggling.
|
|
7
|
+
// A guide to feature toggling (deprecated)
|
|
11
8
|
//
|
|
12
9
|
// The feature toggle is:
|
|
13
10
|
// - independent from the NODE_ENV
|
|
@@ -24,13 +21,5 @@ var _utils = require("../utils/utils");
|
|
|
24
21
|
//
|
|
25
22
|
// Developers (users) are discouraged to enable the experimental feature by setting the GRID_EXPERIMENTAL_ENABLED env.
|
|
26
23
|
// Instead, prefer exposing experimental APIs, for instance, a prop or a new `unstable_` module.
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
if (typeof process !== 'undefined' && process.env.GRID_EXPERIMENTAL_ENABLED !== undefined && (0, _utils.localStorageAvailable)() && window.localStorage.getItem('GRID_EXPERIMENTAL_ENABLED')) {
|
|
30
|
-
experimentalEnabled = window.localStorage.getItem('GRID_EXPERIMENTAL_ENABLED') === 'true';
|
|
31
|
-
} else if (typeof process !== 'undefined') {
|
|
32
|
-
experimentalEnabled = process.env.GRID_EXPERIMENTAL_ENABLED === 'true';
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
const GRID_EXPERIMENTAL_ENABLED = experimentalEnabled;
|
|
24
|
+
const GRID_EXPERIMENTAL_ENABLED = false;
|
|
36
25
|
exports.GRID_EXPERIMENTAL_ENABLED = GRID_EXPERIMENTAL_ENABLED;
|
|
@@ -12,5 +12,5 @@ function getDataGridUtilityClass(slot) {
|
|
|
12
12
|
return (0, _material.generateUtilityClass)('MuiDataGrid', slot);
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
const gridClasses = (0, _material.generateUtilityClasses)('MuiDataGrid', ['actionsCell', 'autoHeight', 'booleanCell', 'cell--editable', 'cell--editing', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--withRenderer', 'cell', 'cellContent', 'cellCheckbox', 'checkboxInput', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderDropZone', 'columnHeaderTitle', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnHeaders', 'columnHeadersInner', 'columnHeadersInner--scrollable', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'columnSeparator', 'columnsPanel', 'columnsPanelRow', 'detailPanel', 'detailPanels', 'detailPanelToggleCell', 'detailPanelToggleCell--expanded', 'panel', 'panelHeader', 'panelWrapper', 'panelContent', 'panelFooter', 'paper', 'editBooleanCell', 'editInputCell', 'filterForm', 'filterFormDeleteIcon', 'filterFormLinkOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'iconButtonContainer', 'iconSeparator', 'main', 'menu', 'menuIcon', 'menuIconButton', 'menuOpen', 'menuList', 'overlay', 'root', 'root--densityStandard', 'root--densityComfortable', 'root--densityCompact', 'row', 'row--editable', 'row--editing', 'row--lastVisible', 'row--dragging', 'row--dynamicHeight', 'rowReorderCellPlaceholder', 'rowCount', 'rowReorderCellContainer', 'rowReorderCell', 'rowReorderCell--draggable', 'scrollArea--left', 'scrollArea--right', 'scrollArea', 'selectedRowCount', 'sortIcon', 'toolbarContainer', 'toolbarFilterList', 'virtualScroller', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'pinnedColumns', 'pinnedColumns--left', 'pinnedColumns--right', 'pinnedColumnHeaders', 'pinnedColumnHeaders--left', 'pinnedColumnHeaders--right', 'withBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'groupingCriteriaCell', 'groupingCriteriaCellToggle']);
|
|
15
|
+
const gridClasses = (0, _material.generateUtilityClasses)('MuiDataGrid', ['actionsCell', 'aggregationColumnHeader', 'aggregationColumnHeader--alignLeft', 'aggregationColumnHeader--alignCenter', 'aggregationColumnHeader--alignRight', 'autoHeight', 'booleanCell', 'cell--editable', 'cell--editing', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--withRenderer', 'cell', 'cellContent', 'cellCheckbox', 'checkboxInput', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderDropZone', 'columnHeaderTitle', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnHeaders', 'columnHeadersInner', 'columnHeadersInner--scrollable', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'columnSeparator', 'columnsPanel', 'columnsPanelRow', 'detailPanel', 'detailPanels', 'detailPanelToggleCell', 'detailPanelToggleCell--expanded', 'footerCell', 'panel', 'panelHeader', 'panelWrapper', 'panelContent', 'panelFooter', 'paper', 'editBooleanCell', 'editInputCell', 'filterForm', 'filterFormDeleteIcon', 'filterFormLinkOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'iconButtonContainer', 'iconSeparator', 'main', 'menu', 'menuIcon', 'menuIconButton', 'menuOpen', 'menuList', 'overlay', 'root', 'root--densityStandard', 'root--densityComfortable', 'root--densityCompact', 'row', 'row--editable', 'row--editing', 'row--lastVisible', 'row--dragging', 'row--dynamicHeight', 'rowReorderCellPlaceholder', 'rowCount', 'rowReorderCellContainer', 'rowReorderCell', 'rowReorderCell--draggable', 'scrollArea--left', 'scrollArea--right', 'scrollArea', 'selectedRowCount', 'sortIcon', 'toolbarContainer', 'toolbarFilterList', 'virtualScroller', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'pinnedColumns', 'pinnedColumns--left', 'pinnedColumns--right', 'pinnedColumnHeaders', 'pinnedColumnHeaders--left', 'pinnedColumnHeaders--right', 'withBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'groupingCriteriaCell', 'groupingCriteriaCellToggle', 'pinnedRows', 'pinnedRows--top', 'pinnedRows--bottom', 'pinnedRowsRenderZone']);
|
|
16
16
|
exports.gridClasses = gridClasses;
|
|
@@ -25,7 +25,7 @@ const GRID_DEFAULT_LOCALE_TEXT = {
|
|
|
25
25
|
toolbarFiltersTooltipShow: 'Show filters',
|
|
26
26
|
toolbarFiltersTooltipActive: count => count !== 1 ? `${count} active filters` : `${count} active filter`,
|
|
27
27
|
// Quick filter toolbar field
|
|
28
|
-
toolbarQuickFilterPlaceholder: 'Search
|
|
28
|
+
toolbarQuickFilterPlaceholder: 'Search…',
|
|
29
29
|
toolbarQuickFilterLabel: 'Search',
|
|
30
30
|
toolbarQuickFilterDeleteIconLabel: 'Clear',
|
|
31
31
|
// Export selector toolbar button text
|
|
@@ -117,6 +117,13 @@ const GRID_DEFAULT_LOCALE_TEXT = {
|
|
|
117
117
|
// Used core components translation keys
|
|
118
118
|
MuiTablePagination: {},
|
|
119
119
|
// Row reordering text
|
|
120
|
-
rowReorderingHeaderName: 'Row reordering'
|
|
120
|
+
rowReorderingHeaderName: 'Row reordering',
|
|
121
|
+
// Aggregation
|
|
122
|
+
aggregationMenuItemHeader: 'Aggregation',
|
|
123
|
+
aggregationFunctionLabelSum: 'sum',
|
|
124
|
+
aggregationFunctionLabelAvg: 'avg',
|
|
125
|
+
aggregationFunctionLabelMin: 'min',
|
|
126
|
+
aggregationFunctionLabelMax: 'max',
|
|
127
|
+
aggregationFunctionLabelSize: 'size'
|
|
121
128
|
};
|
|
122
129
|
exports.GRID_DEFAULT_LOCALE_TEXT = GRID_DEFAULT_LOCALE_TEXT;
|
|
@@ -41,11 +41,11 @@ const useGridColumnSpanning = apiRef => {
|
|
|
41
41
|
columnIndex,
|
|
42
42
|
rowId,
|
|
43
43
|
minFirstColumnIndex,
|
|
44
|
-
maxLastColumnIndex
|
|
44
|
+
maxLastColumnIndex,
|
|
45
|
+
columns
|
|
45
46
|
} = params;
|
|
46
|
-
const
|
|
47
|
-
const
|
|
48
|
-
const column = visibleColumns[columnIndex];
|
|
47
|
+
const columnsLength = columns.length;
|
|
48
|
+
const column = columns[columnIndex];
|
|
49
49
|
const colSpan = typeof column.colSpan === 'function' ? column.colSpan(apiRef.current.getCellParams(rowId, column.field)) : column.colSpan;
|
|
50
50
|
|
|
51
51
|
if (!colSpan || colSpan === 1) {
|
|
@@ -67,7 +67,7 @@ const useGridColumnSpanning = apiRef => {
|
|
|
67
67
|
const nextColumnIndex = columnIndex + j; // Cells should be spanned only within their column section (left-pinned, right-pinned and unpinned).
|
|
68
68
|
|
|
69
69
|
if (nextColumnIndex >= minFirstColumnIndex && nextColumnIndex < maxLastColumnIndex) {
|
|
70
|
-
const nextColumn =
|
|
70
|
+
const nextColumn = columns[nextColumnIndex];
|
|
71
71
|
width += nextColumn.computedWidth;
|
|
72
72
|
setCellColSpanInfo(rowId, columnIndex + j, {
|
|
73
73
|
spannedByColSpan: true,
|
|
@@ -93,14 +93,16 @@ const useGridColumnSpanning = apiRef => {
|
|
|
93
93
|
const calculateColSpan = React.useCallback(({
|
|
94
94
|
rowId,
|
|
95
95
|
minFirstColumn,
|
|
96
|
-
maxLastColumn
|
|
96
|
+
maxLastColumn,
|
|
97
|
+
columns
|
|
97
98
|
}) => {
|
|
98
99
|
for (let i = minFirstColumn; i < maxLastColumn; i += 1) {
|
|
99
100
|
const cellProps = calculateCellColSpan({
|
|
100
101
|
columnIndex: i,
|
|
101
102
|
rowId,
|
|
102
103
|
minFirstColumnIndex: minFirstColumn,
|
|
103
|
-
maxLastColumnIndex: maxLastColumn
|
|
104
|
+
maxLastColumnIndex: maxLastColumn,
|
|
105
|
+
columns
|
|
104
106
|
});
|
|
105
107
|
|
|
106
108
|
if (cellProps.colSpan > 1) {
|
|
@@ -63,7 +63,7 @@ const columnsStateInitializer = (state, props, apiRef) => {
|
|
|
63
63
|
exports.columnsStateInitializer = columnsStateInitializer;
|
|
64
64
|
|
|
65
65
|
function useGridColumns(apiRef, props) {
|
|
66
|
-
var _props$componentsProp2;
|
|
66
|
+
var _props$initialState5, _props$componentsProp2;
|
|
67
67
|
|
|
68
68
|
const logger = (0, _useGridLogger.useGridLogger)(apiRef, 'useGridColumns');
|
|
69
69
|
const columnTypes = React.useMemo(() => (0, _gridColumnsUtils.computeColumnTypes)(props.columnTypes), [props.columnTypes]);
|
|
@@ -214,14 +214,21 @@ function useGridColumns(apiRef, props) {
|
|
|
214
214
|
* PRE-PROCESSING
|
|
215
215
|
*/
|
|
216
216
|
|
|
217
|
-
const stateExportPreProcessing = React.useCallback(prevState => {
|
|
217
|
+
const stateExportPreProcessing = React.useCallback((prevState, context) => {
|
|
218
218
|
const columnsStateToExport = {};
|
|
219
219
|
|
|
220
220
|
if (apiRef.current.unstable_caches.columns.isUsingColumnVisibilityModel) {
|
|
221
|
-
|
|
222
|
-
const hasHiddenColumns = Object.values(columnVisibilityModelToExport).some(value => value === false);
|
|
221
|
+
var _props$initialState$c2, _props$initialState4, _props$initialState4$;
|
|
223
222
|
|
|
224
|
-
|
|
223
|
+
const columnVisibilityModelToExport = (0, _gridColumnsSelector.gridColumnVisibilityModelSelector)(apiRef);
|
|
224
|
+
const shouldExportColumnVisibilityModel = // Always export if the `exportOnlyDirtyModels` property is activated
|
|
225
|
+
!context.exportOnlyDirtyModels || // Always export if the model is controlled
|
|
226
|
+
props.columnVisibilityModel != null || // Always export if the model has been initialized
|
|
227
|
+
// TODO v6 Do a nullish check instead to export even if the initial model equals "{}"
|
|
228
|
+
Object.keys((_props$initialState$c2 = (_props$initialState4 = props.initialState) == null ? void 0 : (_props$initialState4$ = _props$initialState4.columns) == null ? void 0 : _props$initialState4$.columnVisibilityModel) != null ? _props$initialState$c2 : {}).length > 0 || // Always export if the model is not empty
|
|
229
|
+
Object.keys(columnVisibilityModelToExport).length > 0;
|
|
230
|
+
|
|
231
|
+
if (shouldExportColumnVisibilityModel) {
|
|
225
232
|
columnsStateToExport.columnVisibilityModel = columnVisibilityModelToExport;
|
|
226
233
|
}
|
|
227
234
|
}
|
|
@@ -254,7 +261,7 @@ function useGridColumns(apiRef, props) {
|
|
|
254
261
|
return (0, _extends2.default)({}, prevState, {
|
|
255
262
|
columns: columnsStateToExport
|
|
256
263
|
});
|
|
257
|
-
}, [apiRef]);
|
|
264
|
+
}, [apiRef, props.columnVisibilityModel, (_props$initialState5 = props.initialState) == null ? void 0 : _props$initialState5.columns]);
|
|
258
265
|
const stateRestorePreProcessing = React.useCallback((params, context) => {
|
|
259
266
|
var _context$stateToResto;
|
|
260
267
|
|
|
@@ -25,6 +25,8 @@ var _useGridVisibleRows = require("../../utils/useGridVisibleRows");
|
|
|
25
25
|
|
|
26
26
|
var _gridRowsMetaSelector = require("../rows/gridRowsMetaSelector");
|
|
27
27
|
|
|
28
|
+
var _gridRowsUtils = require("../rows/gridRowsUtils");
|
|
29
|
+
|
|
28
30
|
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); }
|
|
29
31
|
|
|
30
32
|
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; }
|
|
@@ -68,6 +70,7 @@ function useGridDimensions(apiRef, props) {
|
|
|
68
70
|
|
|
69
71
|
const rootElement = (_apiRef$current$rootE = apiRef.current.rootElementRef) == null ? void 0 : _apiRef$current$rootE.current;
|
|
70
72
|
const columnsTotalWidth = (0, _columns.gridColumnsTotalWidthSelector)(apiRef);
|
|
73
|
+
const pinnedRowsHeight = (0, _gridRowsUtils.calculatePinnedRowsHeight)(apiRef);
|
|
71
74
|
|
|
72
75
|
if (!rootDimensionsRef.current) {
|
|
73
76
|
return;
|
|
@@ -113,7 +116,10 @@ function useGridDimensions(apiRef, props) {
|
|
|
113
116
|
width: Math.round(columnsTotalWidth),
|
|
114
117
|
height: rowsMeta.currentPageTotalHeight
|
|
115
118
|
},
|
|
116
|
-
container:
|
|
119
|
+
container: {
|
|
120
|
+
width: viewportOuterSize.width,
|
|
121
|
+
height: viewportOuterSize.height - pinnedRowsHeight.top - pinnedRowsHeight.bottom
|
|
122
|
+
},
|
|
117
123
|
scrollBarSize
|
|
118
124
|
});
|
|
119
125
|
hasScrollY = scrollInformation.hasScrollY;
|
|
@@ -121,15 +121,14 @@ const useGridCellEditing = (apiRef, props) => {
|
|
|
121
121
|
} else if (params.isEditable) {
|
|
122
122
|
let reason;
|
|
123
123
|
|
|
124
|
-
if ((0, _keyboardUtils.isPrintableKey)(event
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
}
|
|
128
|
-
|
|
124
|
+
if ((0, _keyboardUtils.isPrintableKey)(event)) {
|
|
125
|
+
reason = _gridEditCellParams.GridCellEditStartReasons.printableKeyDown;
|
|
126
|
+
} else if ((event.ctrlKey || event.metaKey) && event.key === 'v') {
|
|
129
127
|
reason = _gridEditCellParams.GridCellEditStartReasons.printableKeyDown;
|
|
130
128
|
} else if (event.key === 'Enter') {
|
|
131
129
|
reason = _gridEditCellParams.GridCellEditStartReasons.enterKeyDown;
|
|
132
|
-
} else if (event.key === 'Delete') {
|
|
130
|
+
} else if (event.key === 'Delete' || event.key === 'Backspace') {
|
|
131
|
+
// Delete on Windows, Backspace on macOS
|
|
133
132
|
reason = _gridEditCellParams.GridCellEditStartReasons.deleteKeyDown;
|
|
134
133
|
}
|
|
135
134
|
|
|
@@ -164,6 +163,7 @@ const useGridCellEditing = (apiRef, props) => {
|
|
|
164
163
|
field,
|
|
165
164
|
reason
|
|
166
165
|
} = params;
|
|
166
|
+
apiRef.current.unstable_runPendingEditCellValueMutation(id, field);
|
|
167
167
|
let cellToFocusAfter;
|
|
168
168
|
|
|
169
169
|
if (reason === _gridEditCellParams.GridCellEditStopReasons.enterKeyDown) {
|
|
@@ -177,7 +177,7 @@ const useGridCellEditing = (apiRef, props) => {
|
|
|
177
177
|
let ignoreModifications = reason === 'escapeKeyDown';
|
|
178
178
|
const editingState = (0, _gridEditRowsSelector.gridEditRowsStateSelector)(apiRef.current.state);
|
|
179
179
|
|
|
180
|
-
if (editingState[id][field].isProcessingProps) {
|
|
180
|
+
if (editingState[id][field].isProcessingProps && !props.disableIgnoreModificationsIfProcessingProps) {
|
|
181
181
|
// The user wants to stop editing the cell but we can't wait for the props to be processed.
|
|
182
182
|
// In this case, discard the modifications.
|
|
183
183
|
ignoreModifications = true;
|
|
@@ -189,7 +189,7 @@ const useGridCellEditing = (apiRef, props) => {
|
|
|
189
189
|
ignoreModifications,
|
|
190
190
|
cellToFocusAfter
|
|
191
191
|
});
|
|
192
|
-
}, [apiRef]);
|
|
192
|
+
}, [apiRef, props.disableIgnoreModificationsIfProcessingProps]);
|
|
193
193
|
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'cellDoubleClick', runIfEditModeIsCell(handleCellDoubleClick));
|
|
194
194
|
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'cellFocusOut', runIfEditModeIsCell(handleCellFocusOut));
|
|
195
195
|
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'cellKeyDown', runIfEditModeIsCell(handleCellKeyDown));
|
|
@@ -363,6 +363,8 @@ const useGridCellEditing = (apiRef, props) => {
|
|
|
363
363
|
}
|
|
364
364
|
}, [apiRef, onProcessRowUpdateError, processRowUpdate, throwIfNotInMode, updateFieldInCellModesModel, updateOrDeleteFieldState]);
|
|
365
365
|
const setCellEditingEditCellValue = React.useCallback(async params => {
|
|
366
|
+
var _editingState$id, _editingState$id$fiel;
|
|
367
|
+
|
|
366
368
|
const {
|
|
367
369
|
id,
|
|
368
370
|
field,
|
|
@@ -413,7 +415,7 @@ const useGridCellEditing = (apiRef, props) => {
|
|
|
413
415
|
newProps.value = column.preProcessEditCellProps ? editingState[id][field].value : parsedValue;
|
|
414
416
|
updateOrDeleteFieldState(id, field, newProps);
|
|
415
417
|
editingState = (0, _gridEditRowsSelector.gridEditRowsStateSelector)(apiRef.current.state);
|
|
416
|
-
return !editingState[id][field].error;
|
|
418
|
+
return !((_editingState$id = editingState[id]) != null && (_editingState$id$fiel = _editingState$id[field]) != null && _editingState$id$fiel.error);
|
|
417
419
|
}, [apiRef, throwIfNotEditable, throwIfNotInMode, updateOrDeleteFieldState]);
|
|
418
420
|
const getRowWithUpdatedValuesFromCellEditing = React.useCallback((id, field) => {
|
|
419
421
|
const column = apiRef.current.getColumn(field);
|
|
@@ -219,7 +219,7 @@ const useCellEditing = (apiRef, props) => {
|
|
|
219
219
|
const isEditMode = cellMode === _gridEditRowModel.GridCellModes.Edit;
|
|
220
220
|
const isModifierKeyPressed = event.ctrlKey || event.metaKey || event.altKey;
|
|
221
221
|
|
|
222
|
-
if (!isEditMode && (0, _keyboardUtils.isCellEnterEditModeKeys)(event
|
|
222
|
+
if (!isEditMode && (0, _keyboardUtils.isCellEnterEditModeKeys)(event) && !isModifierKeyPressed && !(event.key === ' ' && event.shiftKey)) {
|
|
223
223
|
apiRef.current.publishEvent('cellEditStart', params, event);
|
|
224
224
|
}
|
|
225
225
|
|
|
@@ -289,7 +289,7 @@ const useCellEditing = (apiRef, props) => {
|
|
|
289
289
|
|
|
290
290
|
apiRef.current.setCellMode(params.id, params.field, _gridEditRowModel.GridCellModes.Edit);
|
|
291
291
|
|
|
292
|
-
if ((0, _keyboardUtils.isKeyboardEvent)(event) && (0, _keyboardUtils.isPrintableKey)(event
|
|
292
|
+
if ((0, _keyboardUtils.isKeyboardEvent)(event) && (0, _keyboardUtils.isPrintableKey)(event)) {
|
|
293
293
|
apiRef.current.unstable_setEditCellProps({
|
|
294
294
|
id: params.id,
|
|
295
295
|
field: params.field,
|
|
@@ -56,7 +56,7 @@ function useGridEditing(apiRef, props) {
|
|
|
56
56
|
stateSelector: _gridEditRowsSelector.gridEditRowsStateSelector,
|
|
57
57
|
changeEvent: 'editRowsModelChange'
|
|
58
58
|
});
|
|
59
|
-
const isCellEditable = React.useCallback(params => !params.rowNode.isAutoGenerated && !!params.colDef.editable && !!params.colDef.renderEditCell && (!props.isCellEditable || props.isCellEditable(params)), // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
59
|
+
const isCellEditable = React.useCallback(params => !params.rowNode.isAutoGenerated && !params.rowNode.isPinned && !!params.colDef.editable && !!params.colDef.renderEditCell && (!props.isCellEditable || props.isCellEditable(params)), // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
60
60
|
[props.isCellEditable]);
|
|
61
61
|
|
|
62
62
|
const maybeDebounce = (id, field, debounceMs, callback) => {
|
|
@@ -175,15 +175,14 @@ const useGridRowEditing = (apiRef, props) => {
|
|
|
175
175
|
} else if (params.isEditable) {
|
|
176
176
|
let reason;
|
|
177
177
|
|
|
178
|
-
if ((0, _keyboardUtils.isPrintableKey)(event
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
}
|
|
182
|
-
|
|
178
|
+
if ((0, _keyboardUtils.isPrintableKey)(event)) {
|
|
179
|
+
reason = _gridRowParams.GridRowEditStartReasons.printableKeyDown;
|
|
180
|
+
} else if ((event.ctrlKey || event.metaKey) && event.key === 'v') {
|
|
183
181
|
reason = _gridRowParams.GridRowEditStartReasons.printableKeyDown;
|
|
184
182
|
} else if (event.key === 'Enter') {
|
|
185
183
|
reason = _gridRowParams.GridRowEditStartReasons.enterKeyDown;
|
|
186
|
-
} else if (event.key === 'Delete') {
|
|
184
|
+
} else if (event.key === 'Delete' || event.key === 'Backspace') {
|
|
185
|
+
// Delete on Windows, Backspace on macOS
|
|
187
186
|
reason = _gridRowParams.GridRowEditStartReasons.deleteKeyDown;
|
|
188
187
|
}
|
|
189
188
|
|
|
@@ -234,7 +233,7 @@ const useGridRowEditing = (apiRef, props) => {
|
|
|
234
233
|
let ignoreModifications = reason === 'escapeKeyDown';
|
|
235
234
|
const editingState = (0, _gridEditRowsSelector.gridEditRowsStateSelector)(apiRef.current.state);
|
|
236
235
|
|
|
237
|
-
if (!ignoreModifications) {
|
|
236
|
+
if (!ignoreModifications && !props.disableIgnoreModificationsIfProcessingProps) {
|
|
238
237
|
// The user wants to stop editing the cell but we can't wait for the props to be processed.
|
|
239
238
|
// In this case, discard the modifications if any field is processing its props.
|
|
240
239
|
ignoreModifications = Object.values(editingState[id]).some(fieldProps => {
|
|
@@ -248,7 +247,7 @@ const useGridRowEditing = (apiRef, props) => {
|
|
|
248
247
|
field,
|
|
249
248
|
cellToFocusAfter
|
|
250
249
|
});
|
|
251
|
-
}, [apiRef]);
|
|
250
|
+
}, [apiRef, props.disableIgnoreModificationsIfProcessingProps]);
|
|
252
251
|
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'cellDoubleClick', runIfEditModeIsRow(handleCellDoubleClick));
|
|
253
252
|
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'cellFocusIn', runIfEditModeIsRow(handleCellFocusIn));
|
|
254
253
|
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'cellFocusOut', runIfEditModeIsRow(handleCellFocusOut));
|
|
@@ -9,6 +9,8 @@ var _columns = require("../columns");
|
|
|
9
9
|
|
|
10
10
|
var _filter = require("../filter");
|
|
11
11
|
|
|
12
|
+
var _gridRowsSelector = require("../rows/gridRowsSelector");
|
|
13
|
+
|
|
12
14
|
const getColumnsToExport = ({
|
|
13
15
|
apiRef,
|
|
14
16
|
options
|
|
@@ -28,14 +30,27 @@ exports.getColumnsToExport = getColumnsToExport;
|
|
|
28
30
|
const defaultGetRowsToExport = ({
|
|
29
31
|
apiRef
|
|
30
32
|
}) => {
|
|
33
|
+
var _pinnedRows$top, _pinnedRows$bottom;
|
|
34
|
+
|
|
31
35
|
const filteredSortedRowIds = (0, _filter.gridFilteredSortedRowIdsSelector)(apiRef);
|
|
36
|
+
const rowTree = (0, _gridRowsSelector.gridRowTreeSelector)(apiRef);
|
|
32
37
|
const selectedRows = apiRef.current.getSelectedRows();
|
|
38
|
+
const bodyRows = filteredSortedRowIds.filter(id => {
|
|
39
|
+
var _rowTree$id$position;
|
|
40
|
+
|
|
41
|
+
return ((_rowTree$id$position = rowTree[id].position) != null ? _rowTree$id$position : 'body') === 'body';
|
|
42
|
+
});
|
|
43
|
+
const pinnedRows = (0, _gridRowsSelector.gridPinnedRowsSelector)(apiRef);
|
|
44
|
+
const topPinnedRowsIds = (pinnedRows == null ? void 0 : (_pinnedRows$top = pinnedRows.top) == null ? void 0 : _pinnedRows$top.map(row => row.id)) || [];
|
|
45
|
+
const bottomPinnedRowsIds = (pinnedRows == null ? void 0 : (_pinnedRows$bottom = pinnedRows.bottom) == null ? void 0 : _pinnedRows$bottom.map(row => row.id)) || [];
|
|
46
|
+
bodyRows.unshift(...topPinnedRowsIds);
|
|
47
|
+
bodyRows.push(...bottomPinnedRowsIds);
|
|
33
48
|
|
|
34
49
|
if (selectedRows.size > 0) {
|
|
35
|
-
return
|
|
50
|
+
return bodyRows.filter(id => selectedRows.has(id));
|
|
36
51
|
}
|
|
37
52
|
|
|
38
|
-
return
|
|
53
|
+
return bodyRows;
|
|
39
54
|
};
|
|
40
55
|
|
|
41
56
|
exports.defaultGetRowsToExport = defaultGetRowsToExport;
|
|
@@ -15,6 +15,8 @@ var _warning = require("../../../utils/warning");
|
|
|
15
15
|
|
|
16
16
|
var _columns = require("../columns");
|
|
17
17
|
|
|
18
|
+
var _gridRowsSelector = require("../rows/gridRowsSelector");
|
|
19
|
+
|
|
18
20
|
/**
|
|
19
21
|
* Adds default values to the optional fields of a filter items.
|
|
20
22
|
* @param {GridFilterItem} item The raw filter item.
|
|
@@ -101,6 +103,7 @@ const buildAggregatedFilterItemsApplier = (filterModel, apiRef) => {
|
|
|
101
103
|
items,
|
|
102
104
|
linkOperator = _models.GridLinkOperator.And
|
|
103
105
|
} = filterModel;
|
|
106
|
+
const tree = (0, _gridRowsSelector.gridRowTreeSelector)(apiRef);
|
|
104
107
|
|
|
105
108
|
const getFilterCallbackFromItem = filterItem => {
|
|
106
109
|
if (!filterItem.columnField || !filterItem.operatorValue) {
|
|
@@ -163,6 +166,10 @@ const buildAggregatedFilterItemsApplier = (filterModel, apiRef) => {
|
|
|
163
166
|
}
|
|
164
167
|
|
|
165
168
|
return (rowId, shouldApplyFilter) => {
|
|
169
|
+
if (tree[rowId].position === 'footer') {
|
|
170
|
+
return true;
|
|
171
|
+
}
|
|
172
|
+
|
|
166
173
|
const filteredAppliers = shouldApplyFilter ? appliers.filter(applier => shouldApplyFilter(applier.item.columnField)) : appliers; // Return `false` as soon as we have a failing filter
|
|
167
174
|
|
|
168
175
|
if (linkOperator === _models.GridLinkOperator.And) {
|
|
@@ -67,7 +67,7 @@ const filterStateInitializer = (state, props, apiRef) => {
|
|
|
67
67
|
exports.filterStateInitializer = filterStateInitializer;
|
|
68
68
|
|
|
69
69
|
const useGridFilter = (apiRef, props) => {
|
|
70
|
-
var _props$componentsProp2;
|
|
70
|
+
var _props$initialState3, _props$initialState3$, _props$componentsProp2;
|
|
71
71
|
|
|
72
72
|
const logger = (0, _useGridLogger.useGridLogger)(apiRef, 'useGridFilter');
|
|
73
73
|
apiRef.current.unstable_registerControlState({
|
|
@@ -243,10 +243,17 @@ const useGridFilter = (apiRef, props) => {
|
|
|
243
243
|
* PRE-PROCESSING
|
|
244
244
|
*/
|
|
245
245
|
|
|
246
|
-
const stateExportPreProcessing = React.useCallback(prevState => {
|
|
246
|
+
const stateExportPreProcessing = React.useCallback((prevState, context) => {
|
|
247
|
+
var _props$initialState2, _props$initialState2$;
|
|
248
|
+
|
|
247
249
|
const filterModelToExport = (0, _gridFilterSelector.gridFilterModelSelector)(apiRef);
|
|
250
|
+
const shouldExportFilterModel = // Always export if the `exportOnlyDirtyModels` property is activated
|
|
251
|
+
!context.exportOnlyDirtyModels || // Always export if the model is controlled
|
|
252
|
+
props.filterModel != null || // Always export if the model has been initialized
|
|
253
|
+
((_props$initialState2 = props.initialState) == null ? void 0 : (_props$initialState2$ = _props$initialState2.filter) == null ? void 0 : _props$initialState2$.filterModel) != null || // Export if the model is not equal to the default value
|
|
254
|
+
!(0, _utils.isDeepEqual)(filterModelToExport, (0, _gridFilterState.getDefaultGridFilterModel)());
|
|
248
255
|
|
|
249
|
-
if (
|
|
256
|
+
if (!shouldExportFilterModel) {
|
|
250
257
|
return prevState;
|
|
251
258
|
}
|
|
252
259
|
|
|
@@ -255,7 +262,7 @@ const useGridFilter = (apiRef, props) => {
|
|
|
255
262
|
filterModel: filterModelToExport
|
|
256
263
|
}
|
|
257
264
|
});
|
|
258
|
-
}, [apiRef]);
|
|
265
|
+
}, [apiRef, props.filterModel, (_props$initialState3 = props.initialState) == null ? void 0 : (_props$initialState3$ = _props$initialState3.filter) == null ? void 0 : _props$initialState3$.filterModel]);
|
|
259
266
|
const stateRestorePreProcessing = React.useCallback((params, context) => {
|
|
260
267
|
var _context$stateToResto;
|
|
261
268
|
|