@mui/x-data-grid 5.11.1 → 5.12.2
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 +199 -20
- package/DataGrid/DataGrid.js +26 -1
- package/README.md +2 -2
- package/colDef/gridCheckboxSelectionColDef.d.ts +1 -0
- package/colDef/gridCheckboxSelectionColDef.js +2 -1
- package/colDef/gridDateOperators.d.ts +1 -1
- package/colDef/gridNumericColDef.js +1 -1
- package/components/GridRow.d.ts +1 -1
- package/components/GridRow.js +51 -12
- package/components/cell/GridActionsCellItem.d.ts +1 -1
- package/components/cell/GridCell.d.ts +2 -1
- package/components/cell/GridCell.js +12 -7
- package/components/columnHeaders/GridColumnHeaderItem.js +9 -6
- package/components/columnSelection/GridCellCheckboxRenderer.js +0 -1
- package/components/columnSelection/GridHeaderCheckbox.js +0 -1
- package/components/containers/GridRootStyles.js +8 -3
- package/components/menu/GridMenu.js +9 -2
- package/components/panel/GridColumnsPanel.js +12 -7
- package/components/panel/GridPanelWrapper.d.ts +1 -1
- package/components/panel/GridPanelWrapper.js +3 -3
- package/components/panel/filterPanel/GridFilterForm.d.ts +61 -4
- package/components/panel/filterPanel/GridFilterForm.js +88 -8
- package/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +0 -1
- package/components/panel/filterPanel/GridFilterPanel.d.ts +8 -5
- package/components/panel/filterPanel/GridFilterPanel.js +26 -11
- package/components/toolbar/GridToolbarColumnsButton.js +0 -1
- package/components/toolbar/GridToolbarDensitySelector.js +0 -1
- package/components/toolbar/GridToolbarExportContainer.js +0 -1
- package/components/toolbar/GridToolbarFilterButton.d.ts +1 -1
- package/components/toolbar/GridToolbarFilterButton.js +0 -1
- package/components/toolbar/GridToolbarQuickFilter.d.ts +7 -0
- package/components/toolbar/GridToolbarQuickFilter.js +57 -4
- package/constants/defaultGridSlotsComponents.js +2 -1
- package/constants/gridClasses.d.ts +4 -0
- package/constants/gridClasses.js +1 -1
- package/constants/localeTextConstants.js +1 -0
- package/hooks/core/useGridStateInitialization.js +19 -6
- package/hooks/features/columnMenu/useGridColumnMenu.js +22 -0
- package/hooks/features/columns/gridColumnsInterfaces.d.ts +3 -0
- package/hooks/features/columns/useGridColumnSpanning.d.ts +1 -1
- package/hooks/features/columns/useGridColumnSpanning.js +1 -1
- package/hooks/features/columns/useGridColumns.d.ts +1 -1
- package/hooks/features/columns/useGridColumns.js +13 -15
- package/hooks/features/dimensions/gridDimensionsApi.d.ts +5 -0
- package/hooks/features/dimensions/useGridDimensions.js +9 -8
- package/hooks/features/editRows/useGridCellEditing.new.js +11 -4
- package/hooks/features/editRows/useGridEditing.old.js +1 -1
- package/hooks/features/editRows/useGridRowEditing.new.js +10 -4
- package/hooks/features/events/useGridEvents.d.ts +1 -1
- package/hooks/features/events/useGridEvents.js +2 -0
- package/hooks/features/filter/gridFilterSelector.d.ts +5 -0
- package/hooks/features/filter/gridFilterSelector.js +6 -0
- package/hooks/features/filter/gridFilterState.d.ts +1 -1
- package/hooks/features/filter/gridFilterUtils.d.ts +10 -2
- package/hooks/features/filter/gridFilterUtils.js +3 -6
- package/hooks/features/filter/useGridFilter.d.ts +1 -1
- package/hooks/features/filter/useGridFilter.js +29 -12
- package/hooks/features/pagination/useGridPage.js +1 -1
- package/hooks/features/pagination/useGridPageSize.js +1 -1
- package/hooks/features/rows/useGridRowsMeta.d.ts +1 -1
- package/hooks/features/rows/useGridRowsMeta.js +133 -67
- package/hooks/features/selection/useGridSelection.js +1 -1
- package/hooks/features/selection/useGridSelectionPreProcessors.js +8 -6
- package/hooks/features/sorting/useGridSorting.d.ts +1 -1
- package/hooks/features/sorting/useGridSorting.js +1 -1
- package/hooks/features/virtualization/useGridVirtualScroller.d.ts +2 -1
- package/hooks/features/virtualization/useGridVirtualScroller.js +65 -11
- package/index.js +1 -1
- package/internals/index.d.ts +1 -0
- package/legacy/DataGrid/DataGrid.js +26 -1
- package/legacy/colDef/gridCheckboxSelectionColDef.js +2 -1
- package/legacy/colDef/gridNumericColDef.js +1 -1
- package/legacy/components/GridRow.js +56 -12
- package/legacy/components/cell/GridCell.js +12 -7
- package/legacy/components/columnHeaders/GridColumnHeaderItem.js +11 -6
- package/legacy/components/columnSelection/GridCellCheckboxRenderer.js +0 -1
- package/legacy/components/columnSelection/GridHeaderCheckbox.js +0 -1
- package/legacy/components/containers/GridRootStyles.js +10 -7
- package/legacy/components/menu/GridMenu.js +9 -2
- package/legacy/components/panel/GridColumnsPanel.js +14 -7
- package/legacy/components/panel/GridPanelWrapper.js +3 -3
- package/legacy/components/panel/filterPanel/GridFilterForm.js +89 -8
- package/legacy/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +0 -1
- package/legacy/components/panel/filterPanel/GridFilterPanel.js +28 -12
- package/legacy/components/toolbar/GridToolbarColumnsButton.js +0 -1
- package/legacy/components/toolbar/GridToolbarDensitySelector.js +0 -1
- package/legacy/components/toolbar/GridToolbarExportContainer.js +0 -1
- package/legacy/components/toolbar/GridToolbarFilterButton.js +0 -1
- package/legacy/components/toolbar/GridToolbarQuickFilter.js +67 -6
- package/legacy/constants/defaultGridSlotsComponents.js +2 -1
- package/legacy/constants/gridClasses.js +1 -1
- package/legacy/constants/localeTextConstants.js +1 -0
- package/legacy/hooks/core/useGridStateInitialization.js +18 -6
- package/legacy/hooks/features/columnMenu/useGridColumnMenu.js +22 -0
- package/legacy/hooks/features/columns/useGridColumnSpanning.js +1 -1
- package/legacy/hooks/features/columns/useGridColumns.js +13 -15
- package/legacy/hooks/features/dimensions/useGridDimensions.js +9 -8
- package/legacy/hooks/features/editRows/useGridCellEditing.new.js +14 -7
- package/legacy/hooks/features/editRows/useGridEditing.old.js +1 -1
- package/legacy/hooks/features/editRows/useGridRowEditing.new.js +10 -4
- package/legacy/hooks/features/events/useGridEvents.js +2 -0
- package/legacy/hooks/features/filter/gridFilterSelector.js +8 -0
- package/legacy/hooks/features/filter/gridFilterUtils.js +4 -7
- package/legacy/hooks/features/filter/useGridFilter.js +33 -12
- package/legacy/hooks/features/pagination/useGridPage.js +1 -1
- package/legacy/hooks/features/pagination/useGridPageSize.js +1 -1
- package/legacy/hooks/features/rows/useGridRowsMeta.js +133 -66
- package/legacy/hooks/features/selection/useGridSelection.js +1 -1
- package/legacy/hooks/features/selection/useGridSelectionPreProcessors.js +8 -6
- package/legacy/hooks/features/sorting/useGridSorting.js +1 -1
- package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +84 -26
- package/legacy/index.js +1 -1
- package/legacy/locales/arSD.js +1 -0
- package/legacy/locales/bgBG.js +1 -0
- package/legacy/locales/csCZ.js +1 -0
- package/legacy/locales/daDK.js +1 -0
- package/legacy/locales/deDE.js +1 -0
- package/legacy/locales/elGR.js +1 -0
- package/legacy/locales/esES.js +1 -0
- package/legacy/locales/faIR.js +1 -0
- package/legacy/locales/fiFI.js +1 -0
- package/legacy/locales/frFR.js +1 -0
- package/legacy/locales/heIL.js +10 -9
- package/legacy/locales/huHU.js +1 -0
- package/legacy/locales/itIT.js +1 -0
- package/legacy/locales/jaJP.js +29 -24
- package/legacy/locales/koKR.js +1 -0
- package/legacy/locales/nbNO.js +128 -0
- package/legacy/locales/nlNL.js +1 -0
- package/legacy/locales/plPL.js +1 -0
- package/legacy/locales/ptBR.js +1 -0
- package/legacy/locales/ruRU.js +7 -6
- package/legacy/locales/skSK.js +1 -0
- package/legacy/locales/trTR.js +8 -7
- package/legacy/locales/ukUA.js +1 -0
- package/legacy/locales/viVN.js +1 -0
- package/legacy/locales/zhCN.js +1 -0
- package/legacy/models/events/gridEvents.js +2 -0
- package/legacy/models/gridApiCaches.js +1 -0
- package/legacy/models/params/gridMenuParams.js +1 -0
- package/legacy/models/params/index.js +2 -1
- package/locales/arSD.js +1 -0
- package/locales/bgBG.js +1 -0
- package/locales/csCZ.js +1 -0
- package/locales/daDK.js +1 -0
- package/locales/deDE.js +1 -0
- package/locales/elGR.js +1 -0
- package/locales/esES.js +1 -0
- package/locales/faIR.js +1 -0
- package/locales/fiFI.js +1 -0
- package/locales/frFR.js +1 -0
- package/locales/heIL.js +10 -9
- package/locales/huHU.js +1 -0
- package/locales/itIT.js +1 -0
- package/locales/jaJP.js +25 -24
- package/locales/koKR.js +1 -0
- package/locales/nbNO.d.ts +2 -0
- package/locales/nbNO.js +116 -0
- package/locales/nlNL.js +1 -0
- package/locales/plPL.js +1 -0
- package/locales/ptBR.js +1 -0
- package/locales/ruRU.js +7 -6
- package/locales/skSK.js +1 -0
- package/locales/trTR.js +8 -7
- package/locales/ukUA.js +1 -0
- package/locales/viVN.js +1 -0
- package/locales/zhCN.js +1 -0
- package/models/api/gridCallbackDetails.d.ts +6 -1
- package/models/api/gridCoreApi.d.ts +2 -6
- package/models/api/gridFilterApi.d.ts +8 -1
- package/models/api/gridLocaleTextApi.d.ts +1 -0
- package/models/api/gridRowsMetaApi.d.ts +24 -0
- package/models/api/gridStateApi.d.ts +14 -3
- package/models/colDef/gridColDef.d.ts +4 -4
- package/models/events/gridEventLookup.d.ts +16 -1
- package/models/events/gridEvents.d.ts +3 -1
- package/models/events/gridEvents.js +2 -0
- package/models/gridApiCaches.d.ts +6 -0
- package/models/gridApiCaches.js +1 -0
- package/models/gridIconSlotsComponent.d.ts +5 -0
- package/models/params/gridMenuParams.d.ts +7 -0
- package/models/params/gridMenuParams.js +1 -0
- package/models/params/gridRowParams.d.ts +1 -1
- package/models/params/index.d.ts +1 -0
- package/models/params/index.js +2 -1
- package/models/props/DataGridProps.d.ts +24 -2
- package/modern/DataGrid/DataGrid.js +26 -1
- package/modern/colDef/gridCheckboxSelectionColDef.js +2 -1
- package/modern/colDef/gridNumericColDef.js +1 -1
- package/modern/components/GridRow.js +51 -12
- package/modern/components/cell/GridCell.js +12 -7
- package/modern/components/columnHeaders/GridColumnHeaderItem.js +9 -6
- package/modern/components/columnSelection/GridCellCheckboxRenderer.js +0 -1
- package/modern/components/columnSelection/GridHeaderCheckbox.js +0 -1
- package/modern/components/containers/GridRootStyles.js +8 -3
- package/modern/components/menu/GridMenu.js +9 -2
- package/modern/components/panel/GridColumnsPanel.js +12 -7
- package/modern/components/panel/GridPanelWrapper.js +3 -3
- package/modern/components/panel/filterPanel/GridFilterForm.js +88 -8
- package/modern/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +0 -1
- package/modern/components/panel/filterPanel/GridFilterPanel.js +26 -11
- package/modern/components/toolbar/GridToolbarColumnsButton.js +0 -1
- package/modern/components/toolbar/GridToolbarDensitySelector.js +0 -1
- package/modern/components/toolbar/GridToolbarExportContainer.js +0 -1
- package/modern/components/toolbar/GridToolbarFilterButton.js +0 -1
- package/modern/components/toolbar/GridToolbarQuickFilter.js +57 -4
- package/modern/constants/defaultGridSlotsComponents.js +2 -1
- package/modern/constants/gridClasses.js +1 -1
- package/modern/constants/localeTextConstants.js +1 -0
- package/modern/hooks/core/useGridStateInitialization.js +19 -6
- package/modern/hooks/features/columnMenu/useGridColumnMenu.js +22 -0
- package/modern/hooks/features/columns/useGridColumnSpanning.js +1 -1
- package/modern/hooks/features/columns/useGridColumns.js +12 -14
- package/modern/hooks/features/dimensions/useGridDimensions.js +9 -8
- package/modern/hooks/features/editRows/useGridCellEditing.new.js +10 -3
- package/modern/hooks/features/editRows/useGridEditing.old.js +1 -1
- package/modern/hooks/features/editRows/useGridRowEditing.new.js +9 -3
- package/modern/hooks/features/events/useGridEvents.js +2 -0
- package/modern/hooks/features/filter/gridFilterSelector.js +6 -0
- package/modern/hooks/features/filter/gridFilterUtils.js +3 -6
- package/modern/hooks/features/filter/useGridFilter.js +29 -12
- package/modern/hooks/features/pagination/useGridPage.js +1 -1
- package/modern/hooks/features/pagination/useGridPageSize.js +1 -1
- package/modern/hooks/features/rows/useGridRowsMeta.js +129 -59
- package/modern/hooks/features/selection/useGridSelection.js +1 -1
- package/modern/hooks/features/selection/useGridSelectionPreProcessors.js +8 -6
- package/modern/hooks/features/sorting/useGridSorting.js +1 -1
- package/modern/hooks/features/virtualization/useGridVirtualScroller.js +65 -11
- package/modern/index.js +1 -1
- package/modern/locales/arSD.js +1 -0
- package/modern/locales/bgBG.js +1 -0
- package/modern/locales/csCZ.js +1 -0
- package/modern/locales/daDK.js +1 -0
- package/modern/locales/deDE.js +1 -0
- package/modern/locales/elGR.js +1 -0
- package/modern/locales/esES.js +1 -0
- package/modern/locales/faIR.js +1 -0
- package/modern/locales/fiFI.js +1 -0
- package/modern/locales/frFR.js +1 -0
- package/modern/locales/heIL.js +10 -9
- package/modern/locales/huHU.js +1 -0
- package/modern/locales/itIT.js +1 -0
- package/modern/locales/jaJP.js +25 -24
- package/modern/locales/koKR.js +1 -0
- package/modern/locales/nbNO.js +116 -0
- package/modern/locales/nlNL.js +1 -0
- package/modern/locales/plPL.js +1 -0
- package/modern/locales/ptBR.js +1 -0
- package/modern/locales/ruRU.js +7 -6
- package/modern/locales/skSK.js +1 -0
- package/modern/locales/trTR.js +8 -7
- package/modern/locales/ukUA.js +1 -0
- package/modern/locales/viVN.js +1 -0
- package/modern/locales/zhCN.js +1 -0
- package/modern/models/events/gridEvents.js +2 -0
- package/modern/models/gridApiCaches.js +1 -0
- package/modern/models/params/gridMenuParams.js +1 -0
- package/modern/models/params/index.js +2 -1
- package/node/DataGrid/DataGrid.js +26 -1
- package/node/colDef/gridCheckboxSelectionColDef.js +4 -2
- package/node/colDef/gridNumericColDef.js +1 -1
- package/node/components/GridRow.js +53 -12
- package/node/components/cell/GridCell.js +12 -7
- package/node/components/columnHeaders/GridColumnHeaderItem.js +9 -6
- package/node/components/columnSelection/GridCellCheckboxRenderer.js +0 -1
- package/node/components/columnSelection/GridHeaderCheckbox.js +0 -1
- package/node/components/containers/GridRootStyles.js +8 -3
- package/node/components/menu/GridMenu.js +10 -2
- package/node/components/panel/GridColumnsPanel.js +12 -7
- package/node/components/panel/GridPanelWrapper.js +5 -3
- package/node/components/panel/filterPanel/GridFilterForm.js +91 -9
- package/node/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +0 -1
- package/node/components/panel/filterPanel/GridFilterPanel.js +28 -11
- package/node/components/toolbar/GridToolbarColumnsButton.js +0 -1
- package/node/components/toolbar/GridToolbarDensitySelector.js +0 -1
- package/node/components/toolbar/GridToolbarExportContainer.js +0 -1
- package/node/components/toolbar/GridToolbarFilterButton.js +0 -1
- package/node/components/toolbar/GridToolbarQuickFilter.js +61 -4
- package/node/constants/defaultGridSlotsComponents.js +2 -1
- package/node/constants/gridClasses.js +1 -1
- package/node/constants/localeTextConstants.js +1 -0
- package/node/hooks/core/useGridStateInitialization.js +19 -6
- package/node/hooks/features/columnMenu/useGridColumnMenu.js +23 -0
- package/node/hooks/features/columns/useGridColumnSpanning.js +11 -16
- package/node/hooks/features/columns/useGridColumns.js +13 -15
- package/node/hooks/features/dimensions/useGridDimensions.js +9 -8
- package/node/hooks/features/editRows/useGridCellEditing.new.js +11 -4
- package/node/hooks/features/editRows/useGridEditing.old.js +1 -1
- package/node/hooks/features/editRows/useGridRowEditing.new.js +10 -4
- package/node/hooks/features/events/useGridEvents.js +2 -0
- package/node/hooks/features/filter/gridFilterSelector.js +9 -2
- package/node/hooks/features/filter/gridFilterUtils.js +4 -5
- package/node/hooks/features/filter/useGridFilter.js +28 -11
- package/node/hooks/features/pagination/useGridPage.js +1 -1
- package/node/hooks/features/pagination/useGridPageSize.js +1 -1
- package/node/hooks/features/rows/useGridRowsMeta.js +136 -69
- package/node/hooks/features/selection/useGridSelection.js +1 -1
- package/node/hooks/features/selection/useGridSelectionPreProcessors.js +7 -5
- package/node/hooks/features/sorting/useGridSorting.js +1 -1
- package/node/hooks/features/virtualization/useGridVirtualScroller.js +65 -12
- package/node/index.js +1 -1
- package/node/locales/arSD.js +1 -0
- package/node/locales/bgBG.js +1 -0
- package/node/locales/csCZ.js +1 -0
- package/node/locales/daDK.js +1 -0
- package/node/locales/deDE.js +1 -0
- package/node/locales/elGR.js +1 -0
- package/node/locales/esES.js +1 -0
- package/node/locales/faIR.js +1 -0
- package/node/locales/fiFI.js +1 -0
- package/node/locales/frFR.js +1 -0
- package/node/locales/heIL.js +10 -9
- package/node/locales/huHU.js +1 -0
- package/node/locales/itIT.js +1 -0
- package/node/locales/jaJP.js +25 -24
- package/node/locales/koKR.js +1 -0
- package/node/locales/nbNO.js +126 -0
- package/node/locales/nlNL.js +1 -0
- package/node/locales/plPL.js +1 -0
- package/node/locales/ptBR.js +1 -0
- package/node/locales/ruRU.js +7 -6
- package/node/locales/skSK.js +1 -0
- package/node/locales/trTR.js +8 -7
- package/node/locales/ukUA.js +1 -0
- package/node/locales/viVN.js +1 -0
- package/node/locales/zhCN.js +1 -0
- package/node/models/events/gridEvents.js +2 -0
- package/node/models/gridApiCaches.js +5 -0
- package/node/models/params/gridMenuParams.js +5 -0
- package/node/models/params/index.js +13 -0
- package/package.json +6 -5
|
@@ -36,6 +36,9 @@ const columnsStateInitializer = (state, props, apiRef) => {
|
|
|
36
36
|
var _props$initialState, _props$initialState$c, _props$initialState2, _ref, _props$columnVisibili, _props$initialState3, _props$initialState3$;
|
|
37
37
|
|
|
38
38
|
const isUsingColumnVisibilityModel = !!props.columnVisibilityModel || !!((_props$initialState = props.initialState) != null && (_props$initialState$c = _props$initialState.columns) != null && _props$initialState$c.columnVisibilityModel);
|
|
39
|
+
apiRef.current.unstable_caches.columns = {
|
|
40
|
+
isUsingColumnVisibilityModel
|
|
41
|
+
};
|
|
39
42
|
const columnsTypes = (0, _gridColumnsUtils.computeColumnTypes)(props.columnTypes);
|
|
40
43
|
const columnsState = (0, _gridColumnsUtils.createColumnsState)({
|
|
41
44
|
apiRef,
|
|
@@ -60,19 +63,13 @@ const columnsStateInitializer = (state, props, apiRef) => {
|
|
|
60
63
|
exports.columnsStateInitializer = columnsStateInitializer;
|
|
61
64
|
|
|
62
65
|
function useGridColumns(apiRef, props) {
|
|
63
|
-
var _props$
|
|
66
|
+
var _props$componentsProp2;
|
|
64
67
|
|
|
65
68
|
const logger = (0, _useGridLogger.useGridLogger)(apiRef, 'useGridColumns');
|
|
66
69
|
const columnTypes = React.useMemo(() => (0, _gridColumnsUtils.computeColumnTypes)(props.columnTypes), [props.columnTypes]);
|
|
67
70
|
const previousColumnsProp = React.useRef(props.columns);
|
|
68
71
|
const previousColumnTypesProp = React.useRef(columnTypes);
|
|
69
|
-
|
|
70
|
-
* If `initialState.columns.columnVisibilityModel` or `columnVisibilityModel` was defined during the 1st render, we are directly updating the model
|
|
71
|
-
* If not, we keep the old behavior and update the `GridColDef.hide` option (which will update the state model through the `GridColDef.hide` => `columnVisibilityModel` sync in `createColumnsState`
|
|
72
|
-
*/
|
|
73
|
-
|
|
74
|
-
const isUsingColumnVisibilityModel = React.useRef(!!props.columnVisibilityModel || !!((_props$initialState4 = props.initialState) != null && (_props$initialState4$ = _props$initialState4.columns) != null && _props$initialState4$.columnVisibilityModel));
|
|
75
|
-
apiRef.current.unstable_updateControlState({
|
|
72
|
+
apiRef.current.unstable_registerControlState({
|
|
76
73
|
stateId: 'visibleColumns',
|
|
77
74
|
propModel: props.columnVisibilityModel,
|
|
78
75
|
propOnChange: props.onColumnVisibilityModelChange,
|
|
@@ -135,7 +132,7 @@ function useGridColumns(apiRef, props) {
|
|
|
135
132
|
// We keep updating the `hide` option of `GridColDef` when not controlling the model to avoid any breaking change.
|
|
136
133
|
// `updateColumns` take care of updating the model itself if needs be.
|
|
137
134
|
// TODO v6: stop using the `hide` field even when the model is not defined
|
|
138
|
-
if (
|
|
135
|
+
if (apiRef.current.unstable_caches.columns.isUsingColumnVisibilityModel) {
|
|
139
136
|
var _columnVisibilityMode;
|
|
140
137
|
|
|
141
138
|
const columnVisibilityModel = (0, _gridColumnsSelector.gridColumnVisibilityModelSelector)(apiRef);
|
|
@@ -171,7 +168,8 @@ function useGridColumns(apiRef, props) {
|
|
|
171
168
|
|
|
172
169
|
logger.debug(`Moving column ${field} to index ${targetIndexPosition}`);
|
|
173
170
|
const updatedColumns = [...allColumns];
|
|
174
|
-
|
|
171
|
+
const fieldRemoved = updatedColumns.splice(oldIndexPosition, 1)[0];
|
|
172
|
+
updatedColumns.splice(targetIndexPosition, 0, fieldRemoved);
|
|
175
173
|
setGridColumnsState((0, _extends2.default)({}, (0, _gridColumnsSelector.gridColumnsSelector)(apiRef.current.state), {
|
|
176
174
|
all: updatedColumns
|
|
177
175
|
}));
|
|
@@ -219,7 +217,7 @@ function useGridColumns(apiRef, props) {
|
|
|
219
217
|
const stateExportPreProcessing = React.useCallback(prevState => {
|
|
220
218
|
const columnsStateToExport = {};
|
|
221
219
|
|
|
222
|
-
if (
|
|
220
|
+
if (apiRef.current.unstable_caches.columns.isUsingColumnVisibilityModel) {
|
|
223
221
|
const columnVisibilityModelToExport = (0, _gridColumnsSelector.gridColumnVisibilityModelSelector)(apiRef);
|
|
224
222
|
const hasHiddenColumns = Object.values(columnVisibilityModelToExport).some(value => value === false);
|
|
225
223
|
|
|
@@ -260,7 +258,7 @@ function useGridColumns(apiRef, props) {
|
|
|
260
258
|
const stateRestorePreProcessing = React.useCallback((params, context) => {
|
|
261
259
|
var _context$stateToResto;
|
|
262
260
|
|
|
263
|
-
const columnVisibilityModelToImport =
|
|
261
|
+
const columnVisibilityModelToImport = apiRef.current.unstable_caches.columns.isUsingColumnVisibilityModel ? (_context$stateToResto = context.stateToRestore.columns) == null ? void 0 : _context$stateToResto.columnVisibilityModel : undefined;
|
|
264
262
|
const initialState = context.stateToRestore.columns;
|
|
265
263
|
|
|
266
264
|
if (columnVisibilityModelToImport == null && initialState == null) {
|
|
@@ -272,7 +270,7 @@ function useGridColumns(apiRef, props) {
|
|
|
272
270
|
columnTypes,
|
|
273
271
|
columnsToUpsert: [],
|
|
274
272
|
initialState,
|
|
275
|
-
shouldRegenColumnVisibilityModelFromColumns: !
|
|
273
|
+
shouldRegenColumnVisibilityModelFromColumns: !apiRef.current.unstable_caches.columns.isUsingColumnVisibilityModel,
|
|
276
274
|
currentColumnVisibilityModel: columnVisibilityModelToImport,
|
|
277
275
|
keepOnlyColumnsToUpsert: false
|
|
278
276
|
});
|
|
@@ -323,7 +321,7 @@ function useGridColumns(apiRef, props) {
|
|
|
323
321
|
columnTypes,
|
|
324
322
|
columnsToUpsert: [],
|
|
325
323
|
initialState: undefined,
|
|
326
|
-
shouldRegenColumnVisibilityModelFromColumns: !
|
|
324
|
+
shouldRegenColumnVisibilityModelFromColumns: !apiRef.current.unstable_caches.columns.isUsingColumnVisibilityModel,
|
|
327
325
|
keepOnlyColumnsToUpsert: false
|
|
328
326
|
});
|
|
329
327
|
setGridColumnsState(columnsState);
|
|
@@ -353,7 +351,7 @@ function useGridColumns(apiRef, props) {
|
|
|
353
351
|
columnTypes,
|
|
354
352
|
initialState: undefined,
|
|
355
353
|
// If the user provides a model, we don't want to set it in the state here because it has it's dedicated `useEffect` which calls `setColumnVisibilityModel`
|
|
356
|
-
shouldRegenColumnVisibilityModelFromColumns: !
|
|
354
|
+
shouldRegenColumnVisibilityModelFromColumns: !apiRef.current.unstable_caches.columns.isUsingColumnVisibilityModel,
|
|
357
355
|
columnsToUpsert: props.columns,
|
|
358
356
|
keepOnlyColumnsToUpsert: true
|
|
359
357
|
});
|
|
@@ -58,7 +58,7 @@ const hasScroll = ({
|
|
|
58
58
|
|
|
59
59
|
function useGridDimensions(apiRef, props) {
|
|
60
60
|
const logger = (0, _useGridLogger.useGridLogger)(apiRef, 'useResizeContainer');
|
|
61
|
-
const
|
|
61
|
+
const errorShown = React.useRef(false);
|
|
62
62
|
const rootDimensionsRef = React.useRef(null);
|
|
63
63
|
const fullDimensionsRef = React.useRef(null);
|
|
64
64
|
const rowsMeta = (0, _utils2.useGridSelector)(apiRef, _gridRowsMetaSelector.gridRowsMetaSelector);
|
|
@@ -115,7 +115,8 @@ function useGridDimensions(apiRef, props) {
|
|
|
115
115
|
viewportOuterSize,
|
|
116
116
|
viewportInnerSize,
|
|
117
117
|
hasScrollX,
|
|
118
|
-
hasScrollY
|
|
118
|
+
hasScrollY,
|
|
119
|
+
scrollBarSize
|
|
119
120
|
};
|
|
120
121
|
const prevDimensions = fullDimensionsRef.current;
|
|
121
122
|
fullDimensionsRef.current = newFullDimensions;
|
|
@@ -165,14 +166,14 @@ function useGridDimensions(apiRef, props) {
|
|
|
165
166
|
|
|
166
167
|
const isJSDOM = /jsdom/.test(window.navigator.userAgent);
|
|
167
168
|
|
|
168
|
-
if (size.height === 0 && !
|
|
169
|
-
logger.
|
|
170
|
-
|
|
169
|
+
if (size.height === 0 && !errorShown.current && !props.autoHeight && !isJSDOM) {
|
|
170
|
+
logger.error(['The parent DOM element of the data grid has an empty height.', 'Please make sure that this element has an intrinsic height.', 'The grid displays with a height of 0px.', '', 'More details: https://mui.com/r/x-data-grid-no-dimensions.'].join('\n'));
|
|
171
|
+
errorShown.current = true;
|
|
171
172
|
}
|
|
172
173
|
|
|
173
|
-
if (size.width === 0 && !
|
|
174
|
-
logger.
|
|
175
|
-
|
|
174
|
+
if (size.width === 0 && !errorShown.current && !isJSDOM) {
|
|
175
|
+
logger.error(['The parent DOM element of the data grid has an empty width.', 'Please make sure that this element has an intrinsic width.', 'The grid displays with a width of 0px.', '', 'More details: https://mui.com/r/x-data-grid-no-dimensions.'].join('\n'));
|
|
176
|
+
errorShown.current = true;
|
|
176
177
|
}
|
|
177
178
|
|
|
178
179
|
if (isTestEnvironment) {
|
|
@@ -323,6 +323,9 @@ const useGridCellEditing = (apiRef, props) => {
|
|
|
323
323
|
} = editingState[id][field];
|
|
324
324
|
|
|
325
325
|
if (error || isProcessingProps) {
|
|
326
|
+
// Attempt to change cell mode to "view" was not successful
|
|
327
|
+
// Update previous mode to allow another attempt
|
|
328
|
+
prevCellModesModel.current[id][field].mode = _gridEditRowModel.GridCellModes.Edit;
|
|
326
329
|
return;
|
|
327
330
|
}
|
|
328
331
|
|
|
@@ -330,6 +333,8 @@ const useGridCellEditing = (apiRef, props) => {
|
|
|
330
333
|
|
|
331
334
|
if (processRowUpdate) {
|
|
332
335
|
const handleError = errorThrown => {
|
|
336
|
+
prevCellModesModel.current[id][field].mode = _gridEditRowModel.GridCellModes.Edit;
|
|
337
|
+
|
|
333
338
|
if (onProcessRowUpdateError) {
|
|
334
339
|
onProcessRowUpdateError(errorThrown);
|
|
335
340
|
} else {
|
|
@@ -432,12 +437,15 @@ const useGridCellEditing = (apiRef, props) => {
|
|
|
432
437
|
}
|
|
433
438
|
}, [cellModesModelProp, updateCellModesModel]);
|
|
434
439
|
React.useEffect(() => {
|
|
435
|
-
const idToIdLookup = (0, _gridRowsSelector.gridRowsIdToIdLookupSelector)(apiRef);
|
|
440
|
+
const idToIdLookup = (0, _gridRowsSelector.gridRowsIdToIdLookupSelector)(apiRef); // Update the ref here because updateStateToStopCellEditMode may change it later
|
|
441
|
+
|
|
442
|
+
const copyOfPrevCellModes = prevCellModesModel.current;
|
|
443
|
+
prevCellModesModel.current = cellModesModel;
|
|
436
444
|
Object.entries(cellModesModel).forEach(([id, fields]) => {
|
|
437
445
|
Object.entries(fields).forEach(([field, params]) => {
|
|
438
|
-
var
|
|
446
|
+
var _copyOfPrevCellModes$, _copyOfPrevCellModes$2, _idToIdLookup$id;
|
|
439
447
|
|
|
440
|
-
const prevMode = ((
|
|
448
|
+
const prevMode = ((_copyOfPrevCellModes$ = copyOfPrevCellModes[id]) == null ? void 0 : (_copyOfPrevCellModes$2 = _copyOfPrevCellModes$[field]) == null ? void 0 : _copyOfPrevCellModes$2.mode) || _gridEditRowModel.GridCellModes.View;
|
|
441
449
|
const originalId = (_idToIdLookup$id = idToIdLookup[id]) != null ? _idToIdLookup$id : id;
|
|
442
450
|
|
|
443
451
|
if (params.mode === _gridEditRowModel.GridCellModes.Edit && prevMode === _gridEditRowModel.GridCellModes.View) {
|
|
@@ -453,7 +461,6 @@ const useGridCellEditing = (apiRef, props) => {
|
|
|
453
461
|
}
|
|
454
462
|
});
|
|
455
463
|
});
|
|
456
|
-
prevCellModesModel.current = cellModesModel;
|
|
457
464
|
}, [apiRef, cellModesModel, updateStateToStartCellEditMode, updateStateToStopCellEditMode]);
|
|
458
465
|
};
|
|
459
466
|
|
|
@@ -49,7 +49,7 @@ function useGridEditing(apiRef, props) {
|
|
|
49
49
|
(0, _useGridCellEditing.useCellEditing)(apiRef, props);
|
|
50
50
|
(0, _useGridRowEditing.useGridRowEditing)(apiRef, props);
|
|
51
51
|
const debounceMap = React.useRef({});
|
|
52
|
-
apiRef.current.
|
|
52
|
+
apiRef.current.unstable_registerControlState({
|
|
53
53
|
stateId: 'editRows',
|
|
54
54
|
propModel: props.editRowsModel,
|
|
55
55
|
propOnChange: props.onEditRowsModelChange,
|
|
@@ -402,12 +402,14 @@ const useGridRowEditing = (apiRef, props) => {
|
|
|
402
402
|
const isSomeFieldProcessingProps = Object.values(editingState[id]).some(fieldProps => fieldProps.isProcessingProps);
|
|
403
403
|
|
|
404
404
|
if (isSomeFieldProcessingProps) {
|
|
405
|
+
prevRowModesModel.current[id].mode = _gridEditRowModel.GridRowModes.Edit;
|
|
405
406
|
return;
|
|
406
407
|
}
|
|
407
408
|
|
|
408
409
|
const hasSomeFieldWithError = Object.values(editingState[id]).some(fieldProps => fieldProps.error);
|
|
409
410
|
|
|
410
411
|
if (hasSomeFieldWithError) {
|
|
412
|
+
prevRowModesModel.current[id].mode = _gridEditRowModel.GridRowModes.Edit;
|
|
411
413
|
return;
|
|
412
414
|
}
|
|
413
415
|
|
|
@@ -415,6 +417,8 @@ const useGridRowEditing = (apiRef, props) => {
|
|
|
415
417
|
|
|
416
418
|
if (processRowUpdate) {
|
|
417
419
|
const handleError = errorThrown => {
|
|
420
|
+
prevRowModesModel.current[id].mode = _gridEditRowModel.GridRowModes.Edit;
|
|
421
|
+
|
|
418
422
|
if (onProcessRowUpdateError) {
|
|
419
423
|
onProcessRowUpdateError(errorThrown);
|
|
420
424
|
} else {
|
|
@@ -578,11 +582,14 @@ const useGridRowEditing = (apiRef, props) => {
|
|
|
578
582
|
}
|
|
579
583
|
}, [rowModesModelProp, updateRowModesModel]);
|
|
580
584
|
React.useEffect(() => {
|
|
581
|
-
const idToIdLookup = (0, _gridRowsSelector.gridRowsIdToIdLookupSelector)(apiRef);
|
|
585
|
+
const idToIdLookup = (0, _gridRowsSelector.gridRowsIdToIdLookupSelector)(apiRef); // Update the ref here because updateStateToStopRowEditMode may change it later
|
|
586
|
+
|
|
587
|
+
const copyOfPrevRowModesModel = prevRowModesModel.current;
|
|
588
|
+
prevRowModesModel.current = rowModesModel;
|
|
582
589
|
Object.entries(rowModesModel).forEach(([id, params]) => {
|
|
583
|
-
var
|
|
590
|
+
var _copyOfPrevRowModesMo, _idToIdLookup$id;
|
|
584
591
|
|
|
585
|
-
const prevMode = ((
|
|
592
|
+
const prevMode = ((_copyOfPrevRowModesMo = copyOfPrevRowModesModel[id]) == null ? void 0 : _copyOfPrevRowModesMo.mode) || _gridEditRowModel.GridRowModes.View;
|
|
586
593
|
const originalId = (_idToIdLookup$id = idToIdLookup[id]) != null ? _idToIdLookup$id : id;
|
|
587
594
|
|
|
588
595
|
if (params.mode === _gridEditRowModel.GridRowModes.Edit && prevMode === _gridEditRowModel.GridRowModes.View) {
|
|
@@ -595,7 +602,6 @@ const useGridRowEditing = (apiRef, props) => {
|
|
|
595
602
|
}, params));
|
|
596
603
|
}
|
|
597
604
|
});
|
|
598
|
-
prevRowModesModel.current = rowModesModel;
|
|
599
605
|
}, [apiRef, rowModesModel, updateStateToStartRowEditMode, updateStateToStopRowEditMode]);
|
|
600
606
|
};
|
|
601
607
|
|
|
@@ -25,6 +25,8 @@ function useGridEvents(apiRef, props) {
|
|
|
25
25
|
(0, _useGridApiEventHandler.useGridApiOptionHandler)(apiRef, 'cellFocusOut', props.onCellFocusOut);
|
|
26
26
|
(0, _useGridApiEventHandler.useGridApiOptionHandler)(apiRef, 'preferencePanelClose', props.onPreferencePanelClose);
|
|
27
27
|
(0, _useGridApiEventHandler.useGridApiOptionHandler)(apiRef, 'preferencePanelOpen', props.onPreferencePanelOpen);
|
|
28
|
+
(0, _useGridApiEventHandler.useGridApiOptionHandler)(apiRef, 'menuOpen', props.onMenuOpen);
|
|
29
|
+
(0, _useGridApiEventHandler.useGridApiOptionHandler)(apiRef, 'menuClose', props.onMenuClose);
|
|
28
30
|
(0, _useGridApiEventHandler.useGridApiOptionHandler)(apiRef, 'rowDoubleClick', props.onRowDoubleClick);
|
|
29
31
|
(0, _useGridApiEventHandler.useGridApiOptionHandler)(apiRef, 'rowClick', props.onRowClick);
|
|
30
32
|
(0, _useGridApiEventHandler.useGridApiOptionHandler)(apiRef, 'componentError', props.onError);
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.gridVisibleTopLevelRowCountSelector = exports.gridVisibleSortedTopLevelRowEntriesSelector = exports.gridVisibleSortedRowIdsSelector = exports.gridVisibleSortedRowEntriesSelector = exports.gridVisibleRowsSelector = exports.gridVisibleRowsLookupSelector = exports.gridVisibleRowCountSelector = exports.gridFilteredSortedRowIdsSelector = exports.gridFilteredSortedRowEntriesSelector = exports.gridFilteredRowsLookupSelector = exports.gridFilteredDescendantCountLookupSelector = exports.gridFilterStateSelector = exports.gridFilterModelSelector = exports.gridFilterActiveItemsSelector = exports.gridFilterActiveItemsLookupSelector = void 0;
|
|
6
|
+
exports.gridVisibleTopLevelRowCountSelector = exports.gridVisibleSortedTopLevelRowEntriesSelector = exports.gridVisibleSortedRowIdsSelector = exports.gridVisibleSortedRowEntriesSelector = exports.gridVisibleRowsSelector = exports.gridVisibleRowsLookupSelector = exports.gridVisibleRowCountSelector = exports.gridQuickFilterValuesSelector = exports.gridFilteredSortedRowIdsSelector = exports.gridFilteredSortedRowEntriesSelector = exports.gridFilteredRowsLookupSelector = exports.gridFilteredDescendantCountLookupSelector = exports.gridFilterStateSelector = exports.gridFilterModelSelector = exports.gridFilterActiveItemsSelector = exports.gridFilterActiveItemsLookupSelector = void 0;
|
|
7
7
|
|
|
8
8
|
var _createSelector = require("../../../utils/createSelector");
|
|
9
9
|
|
|
@@ -26,11 +26,18 @@ const gridFilterStateSelector = state => state.filter;
|
|
|
26
26
|
exports.gridFilterStateSelector = gridFilterStateSelector;
|
|
27
27
|
const gridFilterModelSelector = (0, _createSelector.createSelector)(gridFilterStateSelector, filterState => filterState.filterModel);
|
|
28
28
|
/**
|
|
29
|
+
* Get the current quick filter values.
|
|
29
30
|
* @category Filtering
|
|
30
|
-
* @ignore - do not document.
|
|
31
31
|
*/
|
|
32
32
|
|
|
33
33
|
exports.gridFilterModelSelector = gridFilterModelSelector;
|
|
34
|
+
const gridQuickFilterValuesSelector = (0, _createSelector.createSelector)(gridFilterModelSelector, filterModel => filterModel.quickFilterValues);
|
|
35
|
+
/**
|
|
36
|
+
* @category Filtering
|
|
37
|
+
* @ignore - do not document.
|
|
38
|
+
*/
|
|
39
|
+
|
|
40
|
+
exports.gridQuickFilterValuesSelector = gridQuickFilterValuesSelector;
|
|
34
41
|
const gridVisibleRowsLookupSelector = (0, _createSelector.createSelector)(gridFilterStateSelector, filterState => filterState.visibleRowsLookup);
|
|
35
42
|
/**
|
|
36
43
|
* @category Filtering
|
|
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.sanitizeFilterModel = exports.mergeStateWithFilterModel = exports.buildAggregatedQuickFilterApplier = exports.buildAggregatedFilterItemsApplier = exports.buildAggregatedFilterApplier = void 0;
|
|
8
|
+
exports.sanitizeFilterModel = exports.mergeStateWithFilterModel = exports.cleanFilterItem = exports.buildAggregatedQuickFilterApplier = exports.buildAggregatedFilterItemsApplier = exports.buildAggregatedFilterApplier = void 0;
|
|
9
9
|
|
|
10
10
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
11
|
|
|
@@ -38,6 +38,7 @@ const cleanFilterItem = (item, apiRef) => {
|
|
|
38
38
|
return cleanItem;
|
|
39
39
|
};
|
|
40
40
|
|
|
41
|
+
exports.cleanFilterItem = cleanFilterItem;
|
|
41
42
|
const filterModelDisableMultiColumnsFilteringWarning = (0, _warning.buildWarning)(['MUI: The `filterModel` can only contain a single item when the `disableMultipleColumnsFiltering` prop is set to `true`.', 'If you are using the community version of the `DataGrid`, this prop is always `true`.'], 'error');
|
|
42
43
|
const filterModelMissingItemIdWarning = (0, _warning.buildWarning)("MUI: The 'id' field is required on `filterModel.items` when you use multiple filters.", 'error');
|
|
43
44
|
const filterModelMissingItemOperatorWarning = (0, _warning.buildWarning)(['MUI: One of your filtering item have no `operatorValue` provided.', 'This property will become required on `@mui/x-data-grid@6.X`.']);
|
|
@@ -81,10 +82,8 @@ const sanitizeFilterModel = (model, disableMultipleColumnsFiltering, apiRef) =>
|
|
|
81
82
|
|
|
82
83
|
exports.sanitizeFilterModel = sanitizeFilterModel;
|
|
83
84
|
|
|
84
|
-
const mergeStateWithFilterModel = (filterModel, disableMultipleColumnsFiltering, apiRef) =>
|
|
85
|
-
|
|
86
|
-
filterModel: sanitizeFilterModel(filterModel, disableMultipleColumnsFiltering, apiRef)
|
|
87
|
-
})
|
|
85
|
+
const mergeStateWithFilterModel = (filterModel, disableMultipleColumnsFiltering, apiRef) => filteringState => (0, _extends2.default)({}, filteringState, {
|
|
86
|
+
filterModel: sanitizeFilterModel(filterModel, disableMultipleColumnsFiltering, apiRef)
|
|
88
87
|
});
|
|
89
88
|
/**
|
|
90
89
|
* Generates a method to easily check if a row is matching the current filter model.
|
|
@@ -70,7 +70,7 @@ const useGridFilter = (apiRef, props) => {
|
|
|
70
70
|
var _props$componentsProp2;
|
|
71
71
|
|
|
72
72
|
const logger = (0, _useGridLogger.useGridLogger)(apiRef, 'useGridFilter');
|
|
73
|
-
apiRef.current.
|
|
73
|
+
apiRef.current.unstable_registerControlState({
|
|
74
74
|
stateId: 'filter',
|
|
75
75
|
propModel: props.filterModel,
|
|
76
76
|
propOnChange: props.onFilterModelChange,
|
|
@@ -111,7 +111,23 @@ const useGridFilter = (apiRef, props) => {
|
|
|
111
111
|
|
|
112
112
|
apiRef.current.setFilterModel((0, _extends2.default)({}, filterModel, {
|
|
113
113
|
items
|
|
114
|
-
}));
|
|
114
|
+
}), 'upsertFilterItem');
|
|
115
|
+
}, [apiRef]);
|
|
116
|
+
const upsertFilterItems = React.useCallback(items => {
|
|
117
|
+
const filterModel = (0, _gridFilterSelector.gridFilterModelSelector)(apiRef);
|
|
118
|
+
const existingItems = [...filterModel.items];
|
|
119
|
+
items.forEach(item => {
|
|
120
|
+
const itemIndex = items.findIndex(filterItem => filterItem.id === item.id);
|
|
121
|
+
|
|
122
|
+
if (itemIndex === -1) {
|
|
123
|
+
existingItems.push(item);
|
|
124
|
+
} else {
|
|
125
|
+
existingItems[itemIndex] = item;
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
apiRef.current.setFilterModel((0, _extends2.default)({}, filterModel, {
|
|
129
|
+
items
|
|
130
|
+
}), 'upsertFilterItems');
|
|
115
131
|
}, [apiRef]);
|
|
116
132
|
const deleteFilterItem = React.useCallback(itemToDelete => {
|
|
117
133
|
const filterModel = (0, _gridFilterSelector.gridFilterModelSelector)(apiRef);
|
|
@@ -123,7 +139,7 @@ const useGridFilter = (apiRef, props) => {
|
|
|
123
139
|
|
|
124
140
|
apiRef.current.setFilterModel((0, _extends2.default)({}, filterModel, {
|
|
125
141
|
items
|
|
126
|
-
}));
|
|
142
|
+
}), 'deleteFilterItem');
|
|
127
143
|
}, [apiRef]);
|
|
128
144
|
const showFilterPanel = React.useCallback(targetColumnField => {
|
|
129
145
|
logger.debug('Displaying filter panel');
|
|
@@ -137,13 +153,13 @@ const useGridFilter = (apiRef, props) => {
|
|
|
137
153
|
if (filterItemOnTarget) {
|
|
138
154
|
newFilterItems = filterItemsWithValue;
|
|
139
155
|
} else if (props.disableMultipleColumnsFiltering) {
|
|
140
|
-
newFilterItems = [{
|
|
156
|
+
newFilterItems = [(0, _gridFilterUtils.cleanFilterItem)({
|
|
141
157
|
columnField: targetColumnField
|
|
142
|
-
}];
|
|
158
|
+
}, apiRef)];
|
|
143
159
|
} else {
|
|
144
|
-
newFilterItems = [...filterItemsWithValue, {
|
|
160
|
+
newFilterItems = [...filterItemsWithValue, (0, _gridFilterUtils.cleanFilterItem)({
|
|
145
161
|
columnField: targetColumnField
|
|
146
|
-
}];
|
|
162
|
+
}, apiRef)];
|
|
147
163
|
}
|
|
148
164
|
|
|
149
165
|
apiRef.current.setFilterModel((0, _extends2.default)({}, filterModel, {
|
|
@@ -166,7 +182,7 @@ const useGridFilter = (apiRef, props) => {
|
|
|
166
182
|
|
|
167
183
|
apiRef.current.setFilterModel((0, _extends2.default)({}, filterModel, {
|
|
168
184
|
linkOperator
|
|
169
|
-
}));
|
|
185
|
+
}), 'changeLogicOperator');
|
|
170
186
|
}, [apiRef]);
|
|
171
187
|
const setQuickFilterValues = React.useCallback(values => {
|
|
172
188
|
const filterModel = (0, _gridFilterSelector.gridFilterModelSelector)(apiRef);
|
|
@@ -179,12 +195,12 @@ const useGridFilter = (apiRef, props) => {
|
|
|
179
195
|
quickFilterValues: [...values]
|
|
180
196
|
}));
|
|
181
197
|
}, [apiRef]);
|
|
182
|
-
const setFilterModel = React.useCallback(model => {
|
|
198
|
+
const setFilterModel = React.useCallback((model, reason) => {
|
|
183
199
|
const currentModel = (0, _gridFilterSelector.gridFilterModelSelector)(apiRef);
|
|
184
200
|
|
|
185
201
|
if (currentModel !== model) {
|
|
186
202
|
logger.debug('Setting filter model');
|
|
187
|
-
apiRef.current.
|
|
203
|
+
apiRef.current.unstable_updateControlState('filter', (0, _gridFilterUtils.mergeStateWithFilterModel)(model, props.disableMultipleColumnsFiltering, apiRef), reason);
|
|
188
204
|
apiRef.current.unstable_applyFilters();
|
|
189
205
|
}
|
|
190
206
|
}, [apiRef, logger, props.disableMultipleColumnsFiltering]);
|
|
@@ -197,6 +213,7 @@ const useGridFilter = (apiRef, props) => {
|
|
|
197
213
|
unstable_applyFilters: applyFilters,
|
|
198
214
|
deleteFilterItem,
|
|
199
215
|
upsertFilterItem,
|
|
216
|
+
upsertFilterItems,
|
|
200
217
|
setFilterModel,
|
|
201
218
|
showFilterPanel,
|
|
202
219
|
hideFilterPanel,
|
|
@@ -230,7 +247,7 @@ const useGridFilter = (apiRef, props) => {
|
|
|
230
247
|
return params;
|
|
231
248
|
}
|
|
232
249
|
|
|
233
|
-
apiRef.current.
|
|
250
|
+
apiRef.current.unstable_updateControlState('filter', (0, _gridFilterUtils.mergeStateWithFilterModel)(filterModel, props.disableMultipleColumnsFiltering, apiRef), 'restoreState');
|
|
234
251
|
return (0, _extends2.default)({}, params, {
|
|
235
252
|
callbacks: [...params.callbacks, apiRef.current.unstable_applyFilters]
|
|
236
253
|
});
|
|
@@ -61,7 +61,7 @@ const useGridPage = (apiRef, props) => {
|
|
|
61
61
|
|
|
62
62
|
const logger = (0, _utils.useGridLogger)(apiRef, 'useGridPage');
|
|
63
63
|
const visibleTopLevelRowCount = (0, _utils.useGridSelector)(apiRef, _filter.gridVisibleTopLevelRowCountSelector);
|
|
64
|
-
apiRef.current.
|
|
64
|
+
apiRef.current.unstable_registerControlState({
|
|
65
65
|
stateId: 'page',
|
|
66
66
|
propModel: props.page,
|
|
67
67
|
propOnChange: props.onPageChange,
|
|
@@ -42,7 +42,7 @@ const useGridPageSize = (apiRef, props) => {
|
|
|
42
42
|
|
|
43
43
|
const logger = (0, _utils.useGridLogger)(apiRef, 'useGridPageSize');
|
|
44
44
|
const rowHeight = (0, _utils.useGridSelector)(apiRef, _density.gridDensityRowHeightSelector);
|
|
45
|
-
apiRef.current.
|
|
45
|
+
apiRef.current.unstable_registerControlState({
|
|
46
46
|
stateId: 'pageSize',
|
|
47
47
|
propModel: props.pageSize,
|
|
48
48
|
propOnChange: props.onPageSizeChange,
|