@mui/x-data-grid 7.0.0-alpha.7 → 7.0.0-alpha.8
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 +175 -49
- package/DataGrid/DataGrid.js +9 -21
- package/colDef/gridDateColDef.js +1 -1
- package/components/GridPagination.d.ts +4 -4
- package/components/GridPagination.js +1 -1
- package/components/cell/GridActionsCell.js +1 -1
- package/components/cell/GridActionsCellItem.d.ts +5 -5
- package/components/cell/GridCell.js +2 -2
- package/components/panel/GridPanel.d.ts +3 -3
- package/components/panel/filterPanel/GridFilterForm.js +1 -1
- package/components/toolbar/GridToolbarQuickFilter.d.ts +4 -0
- package/components/toolbar/GridToolbarQuickFilter.js +4 -0
- package/hooks/core/useGridLoggerFactory.js +2 -2
- package/hooks/features/columnGrouping/gridColumnGroupsUtils.js +1 -1
- package/hooks/features/columnGrouping/useGridColumnGrouping.js +6 -4
- package/hooks/features/editing/useGridCellEditing.js +4 -4
- package/hooks/features/editing/useGridRowEditing.js +4 -4
- package/hooks/features/export/serializers/csvSerializer.js +1 -1
- package/hooks/features/export/useGridPrintExport.js +1 -1
- package/hooks/features/filter/gridFilterUtils.js +5 -5
- package/hooks/features/pagination/gridPaginationUtils.js +2 -2
- package/hooks/features/rowSelection/useGridRowSelection.js +1 -1
- package/hooks/features/rows/gridRowsUtils.js +2 -2
- package/hooks/features/rows/useGridRows.js +7 -7
- package/hooks/features/rows/useGridRowsMeta.js +2 -2
- package/hooks/features/sorting/gridSortingUtils.js +4 -2
- package/hooks/utils/useGridApiContext.js +1 -1
- package/hooks/utils/useGridPrivateApiContext.js +1 -1
- package/hooks/utils/useGridRootProps.js +1 -1
- package/hooks/utils/useGridSelector.js +1 -1
- package/index.d.ts +0 -1
- package/index.js +1 -2
- package/internals/index.d.ts +1 -0
- package/internals/utils/index.d.ts +1 -0
- package/internals/utils/index.js +2 -1
- package/internals/utils/propValidation.d.ts +4 -0
- package/internals/utils/propValidation.js +19 -0
- package/legacy/DataGrid/DataGrid.js +14 -23
- package/legacy/colDef/gridDateColDef.js +1 -1
- package/legacy/components/GridPagination.js +1 -1
- package/legacy/components/cell/GridActionsCell.js +1 -1
- package/legacy/components/cell/GridCell.js +2 -2
- package/legacy/components/panel/filterPanel/GridFilterForm.js +1 -1
- package/legacy/components/toolbar/GridToolbarQuickFilter.js +4 -0
- package/legacy/hooks/core/useGridLoggerFactory.js +2 -2
- package/legacy/hooks/features/columnGrouping/gridColumnGroupsUtils.js +1 -1
- package/legacy/hooks/features/columnGrouping/useGridColumnGrouping.js +6 -4
- package/legacy/hooks/features/editing/useGridCellEditing.js +4 -4
- package/legacy/hooks/features/editing/useGridRowEditing.js +4 -4
- package/legacy/hooks/features/export/serializers/csvSerializer.js +1 -1
- package/legacy/hooks/features/export/useGridPrintExport.js +1 -1
- package/legacy/hooks/features/filter/gridFilterUtils.js +5 -5
- package/legacy/hooks/features/pagination/gridPaginationUtils.js +2 -2
- package/legacy/hooks/features/rowSelection/useGridRowSelection.js +1 -1
- package/legacy/hooks/features/rows/gridRowsUtils.js +2 -2
- package/legacy/hooks/features/rows/useGridParamsApi.js +4 -5
- package/legacy/hooks/features/rows/useGridRows.js +7 -7
- package/legacy/hooks/features/rows/useGridRowsMeta.js +2 -2
- package/legacy/hooks/features/sorting/gridSortingUtils.js +4 -2
- package/legacy/hooks/utils/useGridApiContext.js +1 -1
- package/legacy/hooks/utils/useGridPrivateApiContext.js +1 -1
- package/legacy/hooks/utils/useGridRootProps.js +1 -1
- package/legacy/hooks/utils/useGridSelector.js +1 -1
- package/legacy/index.js +1 -2
- package/legacy/internals/utils/index.js +2 -1
- package/legacy/internals/utils/propValidation.js +21 -0
- package/legacy/utils/createSelector.js +1 -1
- package/legacy/utils/exportAs.js +1 -1
- package/models/props/DataGridProps.d.ts +1 -1
- package/modern/DataGrid/DataGrid.js +9 -21
- package/modern/colDef/gridDateColDef.js +1 -1
- package/modern/components/GridPagination.js +1 -1
- package/modern/components/cell/GridActionsCell.js +1 -1
- package/modern/components/cell/GridCell.js +2 -2
- package/modern/components/panel/filterPanel/GridFilterForm.js +1 -1
- package/modern/components/toolbar/GridToolbarQuickFilter.js +4 -0
- package/modern/hooks/core/useGridLoggerFactory.js +2 -2
- package/modern/hooks/features/columnGrouping/gridColumnGroupsUtils.js +1 -1
- package/modern/hooks/features/columnGrouping/useGridColumnGrouping.js +6 -4
- package/modern/hooks/features/editing/useGridCellEditing.js +4 -4
- package/modern/hooks/features/editing/useGridRowEditing.js +4 -4
- package/modern/hooks/features/export/serializers/csvSerializer.js +1 -1
- package/modern/hooks/features/export/useGridPrintExport.js +1 -1
- package/modern/hooks/features/filter/gridFilterUtils.js +5 -5
- package/modern/hooks/features/pagination/gridPaginationUtils.js +2 -2
- package/modern/hooks/features/rowSelection/useGridRowSelection.js +1 -1
- package/modern/hooks/features/rows/gridRowsUtils.js +2 -2
- package/modern/hooks/features/rows/useGridRows.js +7 -7
- package/modern/hooks/features/rows/useGridRowsMeta.js +2 -2
- package/modern/hooks/features/sorting/gridSortingUtils.js +4 -2
- package/modern/hooks/utils/useGridApiContext.js +1 -1
- package/modern/hooks/utils/useGridPrivateApiContext.js +1 -1
- package/modern/hooks/utils/useGridRootProps.js +1 -1
- package/modern/hooks/utils/useGridSelector.js +1 -1
- package/modern/index.js +1 -2
- package/modern/internals/utils/index.js +2 -1
- package/modern/internals/utils/propValidation.js +19 -0
- package/modern/utils/createSelector.js +1 -1
- package/modern/utils/exportAs.js +1 -1
- package/node/DataGrid/DataGrid.js +9 -21
- package/node/colDef/gridDateColDef.js +1 -1
- package/node/components/GridPagination.js +1 -1
- package/node/components/cell/GridActionsCell.js +1 -1
- package/node/components/cell/GridCell.js +2 -2
- package/node/components/panel/filterPanel/GridFilterForm.js +1 -1
- package/node/components/toolbar/GridToolbarQuickFilter.js +4 -0
- package/node/hooks/core/useGridLoggerFactory.js +2 -2
- package/node/hooks/features/columnGrouping/gridColumnGroupsUtils.js +1 -1
- package/node/hooks/features/columnGrouping/useGridColumnGrouping.js +6 -4
- package/node/hooks/features/editing/useGridCellEditing.js +4 -4
- package/node/hooks/features/editing/useGridRowEditing.js +4 -4
- package/node/hooks/features/export/serializers/csvSerializer.js +1 -1
- package/node/hooks/features/export/useGridPrintExport.js +1 -1
- package/node/hooks/features/filter/gridFilterUtils.js +5 -5
- package/node/hooks/features/pagination/gridPaginationUtils.js +2 -2
- package/node/hooks/features/rowSelection/useGridRowSelection.js +1 -1
- package/node/hooks/features/rows/gridRowsUtils.js +2 -2
- package/node/hooks/features/rows/useGridRows.js +7 -7
- package/node/hooks/features/rows/useGridRowsMeta.js +2 -2
- package/node/hooks/features/sorting/gridSortingUtils.js +4 -2
- package/node/hooks/utils/useGridApiContext.js +1 -1
- package/node/hooks/utils/useGridPrivateApiContext.js +1 -1
- package/node/hooks/utils/useGridRootProps.js +1 -1
- package/node/hooks/utils/useGridSelector.js +1 -1
- package/node/index.js +1 -13
- package/node/internals/utils/index.js +11 -0
- package/node/internals/utils/propValidation.js +26 -0
- package/node/utils/createSelector.js +1 -1
- package/node/utils/exportAs.js +1 -1
- package/package.json +1 -1
- package/utils/createSelector.js +1 -1
- package/utils/exportAs.js +1 -1
|
@@ -20,17 +20,19 @@ const createGroupLookup = columnGroupingModel => {
|
|
|
20
20
|
} = node,
|
|
21
21
|
other = _objectWithoutPropertiesLoose(node, _excluded);
|
|
22
22
|
if (!groupId) {
|
|
23
|
-
throw new Error('MUI: An element of the columnGroupingModel does not have either `field` or `groupId`.');
|
|
23
|
+
throw new Error('MUI X: An element of the columnGroupingModel does not have either `field` or `groupId`.');
|
|
24
24
|
}
|
|
25
|
-
if (
|
|
26
|
-
|
|
25
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
26
|
+
if (!children) {
|
|
27
|
+
console.warn(`MUI X: group groupId=${groupId} has no children.`);
|
|
28
|
+
}
|
|
27
29
|
}
|
|
28
30
|
const groupParam = _extends({}, other, {
|
|
29
31
|
groupId
|
|
30
32
|
});
|
|
31
33
|
const subTreeLookup = createGroupLookup(children);
|
|
32
34
|
if (subTreeLookup[groupId] !== undefined || groupLookup[groupId] !== undefined) {
|
|
33
|
-
throw new Error(`MUI: The groupId ${groupId} is used multiple times in the columnGroupingModel.`);
|
|
35
|
+
throw new Error(`MUI X: The groupId ${groupId} is used multiple times in the columnGroupingModel.`);
|
|
34
36
|
}
|
|
35
37
|
groupLookup = _extends({}, groupLookup, subTreeLookup, {
|
|
36
38
|
[groupId]: groupParam
|
|
@@ -14,7 +14,7 @@ import { buildWarning } from '../../../utils/warning';
|
|
|
14
14
|
import { gridRowsDataRowIdToIdLookupSelector } from '../rows/gridRowsSelector';
|
|
15
15
|
import { deepClone } from '../../../utils/utils';
|
|
16
16
|
import { GridCellEditStartReasons, GridCellEditStopReasons } from '../../../models/params/gridEditCellParams';
|
|
17
|
-
const missingOnProcessRowUpdateErrorWarning = buildWarning(['MUI: A call to `processRowUpdate` threw an error which was not handled because `onProcessRowUpdateError` is missing.', 'To handle the error pass a callback to the `onProcessRowUpdateError` prop, e.g. `<DataGrid onProcessRowUpdateError={(error) => ...} />`.', 'For more detail, see
|
|
17
|
+
const missingOnProcessRowUpdateErrorWarning = buildWarning(['MUI X: A call to `processRowUpdate` threw an error which was not handled because `onProcessRowUpdateError` is missing.', 'To handle the error pass a callback to the `onProcessRowUpdateError` prop, e.g. `<DataGrid onProcessRowUpdateError={(error) => ...} />`.', 'For more detail, see https://mui.com/x/react-data-grid/editing/#server-side-persistence.'], 'error');
|
|
18
18
|
export const useGridCellEditing = (apiRef, props) => {
|
|
19
19
|
const [cellModesModel, setCellModesModel] = React.useState({});
|
|
20
20
|
const cellModesModelRef = React.useRef(cellModesModel);
|
|
@@ -33,12 +33,12 @@ export const useGridCellEditing = (apiRef, props) => {
|
|
|
33
33
|
const throwIfNotEditable = React.useCallback((id, field) => {
|
|
34
34
|
const params = apiRef.current.getCellParams(id, field);
|
|
35
35
|
if (!apiRef.current.isCellEditable(params)) {
|
|
36
|
-
throw new Error(`MUI: The cell with id=${id} and field=${field} is not editable.`);
|
|
36
|
+
throw new Error(`MUI X: The cell with id=${id} and field=${field} is not editable.`);
|
|
37
37
|
}
|
|
38
38
|
}, [apiRef]);
|
|
39
39
|
const throwIfNotInMode = React.useCallback((id, field, mode) => {
|
|
40
40
|
if (apiRef.current.getCellMode(id, field) !== mode) {
|
|
41
|
-
throw new Error(`MUI: The cell with id=${id} and field=${field} is not in ${mode} mode.`);
|
|
41
|
+
throw new Error(`MUI X: The cell with id=${id} and field=${field} is not in ${mode} mode.`);
|
|
42
42
|
}
|
|
43
43
|
}, [apiRef]);
|
|
44
44
|
const handleCellDoubleClick = React.useCallback((params, event) => {
|
|
@@ -302,7 +302,7 @@ export const useGridCellEditing = (apiRef, props) => {
|
|
|
302
302
|
});
|
|
303
303
|
if (onProcessRowUpdateError) {
|
|
304
304
|
onProcessRowUpdateError(errorThrown);
|
|
305
|
-
} else {
|
|
305
|
+
} else if (process.env.NODE_ENV !== 'production') {
|
|
306
306
|
missingOnProcessRowUpdateErrorWarning();
|
|
307
307
|
}
|
|
308
308
|
};
|
|
@@ -16,7 +16,7 @@ import { gridRowsDataRowIdToIdLookupSelector } from '../rows/gridRowsSelector';
|
|
|
16
16
|
import { deepClone } from '../../../utils/utils';
|
|
17
17
|
import { GridRowEditStopReasons, GridRowEditStartReasons } from '../../../models/params/gridRowParams';
|
|
18
18
|
import { GRID_ACTIONS_COLUMN_TYPE } from '../../../colDef';
|
|
19
|
-
const missingOnProcessRowUpdateErrorWarning = buildWarning(['MUI: A call to `processRowUpdate` threw an error which was not handled because `onProcessRowUpdateError` is missing.', 'To handle the error pass a callback to the `onProcessRowUpdateError` prop, e.g. `<DataGrid onProcessRowUpdateError={(error) => ...} />`.', 'For more detail, see
|
|
19
|
+
const missingOnProcessRowUpdateErrorWarning = buildWarning(['MUI X: A call to `processRowUpdate` threw an error which was not handled because `onProcessRowUpdateError` is missing.', 'To handle the error pass a callback to the `onProcessRowUpdateError` prop, e.g. `<DataGrid onProcessRowUpdateError={(error) => ...} />`.', 'For more detail, see https://mui.com/x/react-data-grid/editing/#server-side-persistence.'], 'error');
|
|
20
20
|
export const useGridRowEditing = (apiRef, props) => {
|
|
21
21
|
const [rowModesModel, setRowModesModel] = React.useState({});
|
|
22
22
|
const rowModesModelRef = React.useRef(rowModesModel);
|
|
@@ -37,12 +37,12 @@ export const useGridRowEditing = (apiRef, props) => {
|
|
|
37
37
|
const throwIfNotEditable = React.useCallback((id, field) => {
|
|
38
38
|
const params = apiRef.current.getCellParams(id, field);
|
|
39
39
|
if (!apiRef.current.isCellEditable(params)) {
|
|
40
|
-
throw new Error(`MUI: The cell with id=${id} and field=${field} is not editable.`);
|
|
40
|
+
throw new Error(`MUI X: The cell with id=${id} and field=${field} is not editable.`);
|
|
41
41
|
}
|
|
42
42
|
}, [apiRef]);
|
|
43
43
|
const throwIfNotInMode = React.useCallback((id, mode) => {
|
|
44
44
|
if (apiRef.current.getRowMode(id) !== mode) {
|
|
45
|
-
throw new Error(`MUI: The row with id=${id} is not in ${mode} mode.`);
|
|
45
|
+
throw new Error(`MUI X: The row with id=${id} is not in ${mode} mode.`);
|
|
46
46
|
}
|
|
47
47
|
}, [apiRef]);
|
|
48
48
|
const handleCellDoubleClick = React.useCallback((params, event) => {
|
|
@@ -379,7 +379,7 @@ export const useGridRowEditing = (apiRef, props) => {
|
|
|
379
379
|
});
|
|
380
380
|
if (onProcessRowUpdateError) {
|
|
381
381
|
onProcessRowUpdateError(errorThrown);
|
|
382
|
-
} else {
|
|
382
|
+
} else if (process.env.NODE_ENV !== 'production') {
|
|
383
383
|
missingOnProcessRowUpdateErrorWarning();
|
|
384
384
|
}
|
|
385
385
|
};
|
|
@@ -32,7 +32,7 @@ export const serializeCellValue = (cellParams, options) => {
|
|
|
32
32
|
}
|
|
33
33
|
return sanitizeCellValue(value, delimiterCharacter);
|
|
34
34
|
};
|
|
35
|
-
const objectFormattedValueWarning = buildWarning(['MUI: When the value of a field is an object or a `renderCell` is provided, the CSV export might not display the value correctly.', 'You can provide a `valueFormatter` with a string representation to be used.']);
|
|
35
|
+
const objectFormattedValueWarning = buildWarning(['MUI X: When the value of a field is an object or a `renderCell` is provided, the CSV export might not display the value correctly.', 'You can provide a `valueFormatter` with a string representation to be used.']);
|
|
36
36
|
class CSVRow {
|
|
37
37
|
constructor(options) {
|
|
38
38
|
this.options = void 0;
|
|
@@ -206,7 +206,7 @@ export const useGridPrintExport = (apiRef, props) => {
|
|
|
206
206
|
const exportDataAsPrint = React.useCallback(async options => {
|
|
207
207
|
logger.debug(`Export data as Print`);
|
|
208
208
|
if (!apiRef.current.rootElementRef.current) {
|
|
209
|
-
throw new Error('MUI: No grid root element available.');
|
|
209
|
+
throw new Error('MUI X: No grid root element available.');
|
|
210
210
|
}
|
|
211
211
|
previousGridState.current = apiRef.current.exportState();
|
|
212
212
|
// It appends that the visibility model is not exported, especially if columnVisibility is not controlled
|
|
@@ -36,9 +36,9 @@ export const cleanFilterItem = (item, apiRef) => {
|
|
|
36
36
|
}
|
|
37
37
|
return cleanItem;
|
|
38
38
|
};
|
|
39
|
-
const filterModelDisableMultiColumnsFilteringWarning = 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');
|
|
40
|
-
const filterModelMissingItemIdWarning = buildWarning('MUI: The `id` field is required on `filterModel.items` when you use multiple filters.', 'error');
|
|
41
|
-
const filterModelMissingItemOperatorWarning = buildWarning('MUI: The `operator` field is required on `filterModel.items`, one or more of your filtering item has no `operator` provided.', 'error');
|
|
39
|
+
const filterModelDisableMultiColumnsFilteringWarning = buildWarning(['MUI X: 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');
|
|
40
|
+
const filterModelMissingItemIdWarning = buildWarning('MUI X: The `id` field is required on `filterModel.items` when you use multiple filters.', 'error');
|
|
41
|
+
const filterModelMissingItemOperatorWarning = buildWarning('MUI X: The `operator` field is required on `filterModel.items`, one or more of your filtering item has no `operator` provided.', 'error');
|
|
42
42
|
export const sanitizeFilterModel = (model, disableMultipleColumnsFiltering, apiRef) => {
|
|
43
43
|
const hasSeveralItems = model.items.length > 1;
|
|
44
44
|
let items;
|
|
@@ -103,11 +103,11 @@ const getFilterCallbackFromItem = (filterItem, apiRef) => {
|
|
|
103
103
|
});
|
|
104
104
|
const filterOperators = column.filterOperators;
|
|
105
105
|
if (!filterOperators?.length) {
|
|
106
|
-
throw new Error(`MUI: No filter operators found for column '${column.field}'.`);
|
|
106
|
+
throw new Error(`MUI X: No filter operators found for column '${column.field}'.`);
|
|
107
107
|
}
|
|
108
108
|
const filterOperator = filterOperators.find(operator => operator.value === newFilterItem.operator);
|
|
109
109
|
if (!filterOperator) {
|
|
110
|
-
throw new Error(`MUI: No filter operator found for column '${column.field}' and operator value '${newFilterItem.operator}'.`);
|
|
110
|
+
throw new Error(`MUI X: No filter operator found for column '${column.field}' and operator value '${newFilterItem.operator}'.`);
|
|
111
111
|
}
|
|
112
112
|
const publicApiRef = getPublicApiRef(apiRef);
|
|
113
113
|
const applyFilterOnRow = filterOperator.getApplyFilterFn(newFilterItem, column);
|
|
@@ -8,7 +8,7 @@ export const getPageCount = (rowCount, pageSize) => {
|
|
|
8
8
|
}
|
|
9
9
|
return 0;
|
|
10
10
|
};
|
|
11
|
-
export const noRowCountInServerMode = buildWarning(["MUI: the 'rowCount' prop is undefined while using paginationMode='server'", 'For more detail, see http://mui.com/components/data-grid/pagination/#basic-implementation'], 'error');
|
|
11
|
+
export const noRowCountInServerMode = buildWarning(["MUI X: the 'rowCount' prop is undefined while using paginationMode='server'", 'For more detail, see http://mui.com/components/data-grid/pagination/#basic-implementation'], 'error');
|
|
12
12
|
export const getDefaultGridPaginationModel = autoPageSize => ({
|
|
13
13
|
page: 0,
|
|
14
14
|
pageSize: autoPageSize ? 0 : 100
|
|
@@ -21,6 +21,6 @@ export const getValidPage = (page, pageCount = 0) => {
|
|
|
21
21
|
};
|
|
22
22
|
export const throwIfPageSizeExceedsTheLimit = (pageSize, signatureProp) => {
|
|
23
23
|
if (signatureProp === GridSignature.DataGrid && pageSize > MAX_PAGE_SIZE) {
|
|
24
|
-
throw new Error(['MUI: `pageSize` cannot exceed 100 in the MIT version of the DataGrid.', 'You need to upgrade to DataGridPro or DataGridPremium component to unlock this feature.'].join('\n'));
|
|
24
|
+
throw new Error(['MUI X: `pageSize` cannot exceed 100 in the MIT version of the DataGrid.', 'You need to upgrade to DataGridPro or DataGridPremium component to unlock this feature.'].join('\n'));
|
|
25
25
|
}
|
|
26
26
|
};
|
|
@@ -92,7 +92,7 @@ export const useGridRowSelection = (apiRef, props) => {
|
|
|
92
92
|
*/
|
|
93
93
|
const setRowSelectionModel = React.useCallback(model => {
|
|
94
94
|
if (props.signature === GridSignature.DataGrid && !canHaveMultipleSelection && Array.isArray(model) && model.length > 1) {
|
|
95
|
-
throw new Error(['MUI: `rowSelectionModel` can only contain 1 item in DataGrid.', 'You need to upgrade to DataGridPro or DataGridPremium component to unlock multiple selection.'].join('\n'));
|
|
95
|
+
throw new Error(['MUI X: `rowSelectionModel` can only contain 1 item in DataGrid.', 'You need to upgrade to DataGridPro or DataGridPremium component to unlock multiple selection.'].join('\n'));
|
|
96
96
|
}
|
|
97
97
|
const currentModel = gridRowSelectionStateSelector(apiRef.current.state);
|
|
98
98
|
if (currentModel !== model) {
|
|
@@ -24,7 +24,7 @@ export const buildRootGroup = () => ({
|
|
|
24
24
|
*/
|
|
25
25
|
export function checkGridRowIdIsValid(id, row, detailErrorMessage = 'A row was provided without id in the rows prop:') {
|
|
26
26
|
if (id == null) {
|
|
27
|
-
throw new Error(['MUI: The data grid component requires all rows to have a unique `id` property.', 'Alternatively, you can use the `getRowId` prop to specify a custom id for each row.', detailErrorMessage, JSON.stringify(row)].join('\n'));
|
|
27
|
+
throw new Error(['MUI X: The data grid component requires all rows to have a unique `id` property.', 'Alternatively, you can use the `getRowId` prop to specify a custom id for each row.', detailErrorMessage, JSON.stringify(row)].join('\n'));
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
export const getRowIdFromRowModel = (rowModel, getRowId, detailErrorMessage) => {
|
|
@@ -144,7 +144,7 @@ export const updateCacheWithNewRows = ({
|
|
|
144
144
|
updates
|
|
145
145
|
}) => {
|
|
146
146
|
if (previousCache.updates.type === 'full') {
|
|
147
|
-
throw new Error('MUI: Unable to prepare a partial update if a full update is not applied yet');
|
|
147
|
+
throw new Error('MUI X: Unable to prepare a partial update if a full update is not applied yet.');
|
|
148
148
|
}
|
|
149
149
|
|
|
150
150
|
// Remove duplicate updates.
|
|
@@ -121,7 +121,7 @@ export const useGridRows = (apiRef, props) => {
|
|
|
121
121
|
}, [logger, props.getRowId, props.loading, props.rowCount, throttledRowsChange, apiRef]);
|
|
122
122
|
const updateRows = React.useCallback(updates => {
|
|
123
123
|
if (props.signature === GridSignature.DataGrid && updates.length > 1) {
|
|
124
|
-
throw new Error(["MUI: You can't update several rows at once in `apiRef.current.updateRows` on the DataGrid.", 'You need to upgrade to DataGridPro or DataGridPremium component to unlock this feature.'].join('\n'));
|
|
124
|
+
throw new Error(["MUI X: You can't update several rows at once in `apiRef.current.updateRows` on the DataGrid.", 'You need to upgrade to DataGridPro or DataGridPremium component to unlock this feature.'].join('\n'));
|
|
125
125
|
}
|
|
126
126
|
const nonPinnedRowsUpdates = [];
|
|
127
127
|
updates.forEach(update => {
|
|
@@ -159,10 +159,10 @@ export const useGridRows = (apiRef, props) => {
|
|
|
159
159
|
const setRowChildrenExpansion = React.useCallback((id, isExpanded) => {
|
|
160
160
|
const currentNode = apiRef.current.getRowNode(id);
|
|
161
161
|
if (!currentNode) {
|
|
162
|
-
throw new Error(`MUI: No row with id #${id} found
|
|
162
|
+
throw new Error(`MUI X: No row with id #${id} found.`);
|
|
163
163
|
}
|
|
164
164
|
if (currentNode.type !== 'group') {
|
|
165
|
-
throw new Error('MUI: Only group nodes can be expanded or collapsed');
|
|
165
|
+
throw new Error('MUI X: Only group nodes can be expanded or collapsed.');
|
|
166
166
|
}
|
|
167
167
|
const newNode = _extends({}, currentNode, {
|
|
168
168
|
childrenExpanded: isExpanded
|
|
@@ -214,13 +214,13 @@ export const useGridRows = (apiRef, props) => {
|
|
|
214
214
|
const setRowIndex = React.useCallback((rowId, targetIndex) => {
|
|
215
215
|
const node = apiRef.current.getRowNode(rowId);
|
|
216
216
|
if (!node) {
|
|
217
|
-
throw new Error(`MUI: No row with id #${rowId} found
|
|
217
|
+
throw new Error(`MUI X: No row with id #${rowId} found.`);
|
|
218
218
|
}
|
|
219
219
|
if (node.parent !== GRID_ROOT_GROUP_ID) {
|
|
220
|
-
throw new Error(`MUI: The row reordering do not support reordering of grouped rows yet
|
|
220
|
+
throw new Error(`MUI X: The row reordering do not support reordering of grouped rows yet.`);
|
|
221
221
|
}
|
|
222
222
|
if (node.type !== 'leaf') {
|
|
223
|
-
throw new Error(`MUI: The row reordering do not support reordering of footer or grouping rows
|
|
223
|
+
throw new Error(`MUI X: The row reordering do not support reordering of footer or grouping rows.`);
|
|
224
224
|
}
|
|
225
225
|
apiRef.current.setState(state => {
|
|
226
226
|
const group = gridRowTreeSelector(state, apiRef.current.instanceId)[GRID_ROOT_GROUP_ID];
|
|
@@ -246,7 +246,7 @@ export const useGridRows = (apiRef, props) => {
|
|
|
246
246
|
}, [apiRef, logger]);
|
|
247
247
|
const replaceRows = React.useCallback((firstRowToRender, newRows) => {
|
|
248
248
|
if (props.signature === GridSignature.DataGrid && newRows.length > 1) {
|
|
249
|
-
throw new Error(["MUI: You can't replace rows using `apiRef.current.unstable_replaceRows` on the DataGrid.", 'You need to upgrade to DataGridPro or DataGridPremium component to unlock this feature.'].join('\n'));
|
|
249
|
+
throw new Error(["MUI X: You can't replace rows using `apiRef.current.unstable_replaceRows` on the DataGrid.", 'You need to upgrade to DataGridPro or DataGridPremium component to unlock this feature.'].join('\n'));
|
|
250
250
|
}
|
|
251
251
|
if (newRows.length === 0) {
|
|
252
252
|
return;
|
|
@@ -28,8 +28,8 @@ const getValidRowHeight = (rowHeightProp, defaultRowHeight, warningMessage) => {
|
|
|
28
28
|
}
|
|
29
29
|
return defaultRowHeight;
|
|
30
30
|
};
|
|
31
|
-
const rowHeightWarning = [`MUI: The \`rowHeight\` prop should be a number greater than 0.`, `The default value will be used instead.`].join('\n');
|
|
32
|
-
const getRowHeightWarning = [`MUI: The \`getRowHeight\` prop should return a number greater than 0 or 'auto'.`, `The default value will be used instead.`].join('\n');
|
|
31
|
+
const rowHeightWarning = [`MUI X: The \`rowHeight\` prop should be a number greater than 0.`, `The default value will be used instead.`].join('\n');
|
|
32
|
+
const getRowHeightWarning = [`MUI X: The \`getRowHeight\` prop should return a number greater than 0 or 'auto'.`, `The default value will be used instead.`].join('\n');
|
|
33
33
|
|
|
34
34
|
/**
|
|
35
35
|
* @requires useGridPageSize (method)
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import { buildWarning } from '../../../utils/warning';
|
|
3
|
-
const sortModelDisableMultiColumnsSortingWarning = buildWarning(['MUI: The `sortModel` can only contain a single item when the `disableMultipleColumnsSorting` prop is set to `true`.', 'If you are using the community version of the `DataGrid`, this prop is always `true`.'], 'error');
|
|
3
|
+
const sortModelDisableMultiColumnsSortingWarning = buildWarning(['MUI X: The `sortModel` can only contain a single item when the `disableMultipleColumnsSorting` prop is set to `true`.', 'If you are using the community version of the `DataGrid`, this prop is always `true`.'], 'error');
|
|
4
4
|
export const sanitizeSortModel = (model, disableMultipleColumnsSorting) => {
|
|
5
5
|
if (disableMultipleColumnsSorting && model.length > 1) {
|
|
6
|
-
|
|
6
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
7
|
+
sortModelDisableMultiColumnsSortingWarning();
|
|
8
|
+
}
|
|
7
9
|
return [model[0]];
|
|
8
10
|
}
|
|
9
11
|
return model;
|
|
@@ -3,7 +3,7 @@ import { GridApiContext } from '../../components/GridApiContext';
|
|
|
3
3
|
export function useGridApiContext() {
|
|
4
4
|
const apiRef = React.useContext(GridApiContext);
|
|
5
5
|
if (apiRef === undefined) {
|
|
6
|
-
throw new Error(['MUI: Could not find the data grid context.', 'It looks like you rendered your component outside of a DataGrid, DataGridPro or DataGridPremium parent component.', 'This can also happen if you are bundling multiple versions of the data grid.'].join('\n'));
|
|
6
|
+
throw new Error(['MUI X: Could not find the data grid context.', 'It looks like you rendered your component outside of a DataGrid, DataGridPro or DataGridPremium parent component.', 'This can also happen if you are bundling multiple versions of the data grid.'].join('\n'));
|
|
7
7
|
}
|
|
8
8
|
return apiRef;
|
|
9
9
|
}
|
|
@@ -6,7 +6,7 @@ if (process.env.NODE_ENV !== 'production') {
|
|
|
6
6
|
export function useGridPrivateApiContext() {
|
|
7
7
|
const privateApiRef = React.useContext(GridPrivateApiContext);
|
|
8
8
|
if (privateApiRef === undefined) {
|
|
9
|
-
throw new Error(['MUI: Could not find the data grid private context.', 'It looks like you rendered your component outside of a DataGrid, DataGridPro or DataGridPremium parent component.', 'This can also happen if you are bundling multiple versions of the data grid.'].join('\n'));
|
|
9
|
+
throw new Error(['MUI X: Could not find the data grid private context.', 'It looks like you rendered your component outside of a DataGrid, DataGridPro or DataGridPremium parent component.', 'This can also happen if you are bundling multiple versions of the data grid.'].join('\n'));
|
|
10
10
|
}
|
|
11
11
|
return privateApiRef;
|
|
12
12
|
}
|
|
@@ -3,7 +3,7 @@ import { GridRootPropsContext } from '../../context/GridRootPropsContext';
|
|
|
3
3
|
export const useGridRootProps = () => {
|
|
4
4
|
const contextValue = React.useContext(GridRootPropsContext);
|
|
5
5
|
if (!contextValue) {
|
|
6
|
-
throw new Error('MUI: useGridRootProps should only be used inside the DataGrid, DataGridPro or DataGridPremium component.');
|
|
6
|
+
throw new Error('MUI X: useGridRootProps should only be used inside the DataGrid, DataGridPro or DataGridPremium component.');
|
|
7
7
|
}
|
|
8
8
|
return contextValue;
|
|
9
9
|
};
|
|
@@ -3,7 +3,7 @@ import { useLazyRef } from './useLazyRef';
|
|
|
3
3
|
import { useOnMount } from './useOnMount';
|
|
4
4
|
import { buildWarning } from '../../utils/warning';
|
|
5
5
|
import { fastObjectShallowCompare } from '../../utils/fastObjectShallowCompare';
|
|
6
|
-
const stateNotInitializedWarning = buildWarning(['MUI: `useGridSelector` has been called before the initialization of the state.', 'This hook can only be used inside the context of the grid.']);
|
|
6
|
+
const stateNotInitializedWarning = buildWarning(['MUI X: `useGridSelector` has been called before the initialization of the state.', 'This hook can only be used inside the context of the grid.']);
|
|
7
7
|
function isOutputSelector(selector) {
|
|
8
8
|
return selector.acceptsApiRef;
|
|
9
9
|
}
|
package/modern/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @mui/x-data-grid v7.0.0-alpha.
|
|
2
|
+
* @mui/x-data-grid v7.0.0-alpha.8
|
|
3
3
|
*
|
|
4
4
|
* @license MIT
|
|
5
5
|
* This source code is licensed under the MIT license found in the
|
|
@@ -12,7 +12,6 @@ export * from './DataGrid';
|
|
|
12
12
|
export * from './components';
|
|
13
13
|
export * from './constants';
|
|
14
14
|
export * from './hooks';
|
|
15
|
-
export * from './locales';
|
|
16
15
|
export * from './models';
|
|
17
16
|
export * from './context';
|
|
18
17
|
export * from './colDef';
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export const propValidatorsDataGrid = [props => props.autoPageSize && props.autoHeight && ['MUI X: `<DataGrid autoPageSize={true} autoHeight={true} />` are not valid props.', 'You can not use both the `autoPageSize` and `autoHeight` props at the same time because `autoHeight` scales the height of the Data Grid according to the `pageSize`.', '', 'Please remove one of these two props.'].join('\n') || undefined];
|
|
2
|
+
const warnedOnceMap = new Set();
|
|
3
|
+
const warnOnce = message => {
|
|
4
|
+
if (!warnedOnceMap.has(message)) {
|
|
5
|
+
console.error(message);
|
|
6
|
+
warnedOnceMap.add(message);
|
|
7
|
+
}
|
|
8
|
+
};
|
|
9
|
+
export const validateProps = (props, validators) => {
|
|
10
|
+
if (process.env.NODE_ENV === 'production') {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
validators.forEach(validator => {
|
|
14
|
+
const warning = validator(props);
|
|
15
|
+
if (warning) {
|
|
16
|
+
warnOnce(warning);
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
};
|
|
@@ -3,7 +3,7 @@ import { buildWarning } from './warning';
|
|
|
3
3
|
const cacheContainer = {
|
|
4
4
|
cache: new WeakMap()
|
|
5
5
|
};
|
|
6
|
-
const missingInstanceIdWarning = buildWarning(['MUI: A selector was called without passing the instance ID, which may impact the performance of the grid.', 'To fix, call it with `apiRef`, e.g. `mySelector(apiRef)`, or pass the instance ID explicitly, e.g. `mySelector(state, apiRef.current.instanceId)`.']);
|
|
6
|
+
const missingInstanceIdWarning = buildWarning(['MUI X: A selector was called without passing the instance ID, which may impact the performance of the grid.', 'To fix, call it with `apiRef`, e.g. `mySelector(apiRef)`, or pass the instance ID explicitly, e.g. `mySelector(state, apiRef.current.instanceId)`.']);
|
|
7
7
|
function checkIsAPIRef(value) {
|
|
8
8
|
return 'current' in value && 'instanceId' in value.current;
|
|
9
9
|
}
|
package/modern/utils/exportAs.js
CHANGED
|
@@ -8,18 +8,22 @@ exports.DataGrid = void 0;
|
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var React = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
-
var _utils = require("@mui/utils");
|
|
12
11
|
var _components = require("../components");
|
|
13
12
|
var _GridContextProvider = require("../context/GridContextProvider");
|
|
14
13
|
var _useDataGridComponent = require("./useDataGridComponent");
|
|
15
14
|
var _useDataGridProps = require("./useDataGridProps");
|
|
16
15
|
var _DataGridVirtualScroller = require("../components/DataGridVirtualScroller");
|
|
16
|
+
var _propValidation = require("../internals/utils/propValidation");
|
|
17
17
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
18
18
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
19
19
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
20
|
+
const propValidators = [..._propValidation.propValidatorsDataGrid,
|
|
21
|
+
// Only validate in MIT version
|
|
22
|
+
props => props.columns && props.columns.some(column => column.resizable) && [`MUI X: \`column.resizable = true\` is not a valid prop.`, 'Column resizing is not available in the MIT version.', '', 'You need to upgrade to DataGridPro or DataGridPremium component to unlock this feature.'].join('\n') || undefined];
|
|
20
23
|
const DataGridRaw = /*#__PURE__*/React.forwardRef(function DataGrid(inProps, ref) {
|
|
21
24
|
const props = (0, _useDataGridProps.useDataGridProps)(inProps);
|
|
22
25
|
const privateApiRef = (0, _useDataGridComponent.useDataGridComponent)(props.apiRef, props);
|
|
26
|
+
(0, _propValidation.validateProps)(props, propValidators);
|
|
23
27
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridContextProvider.GridContextProvider, {
|
|
24
28
|
privateApiRef: privateApiRef,
|
|
25
29
|
props: props,
|
|
@@ -71,12 +75,7 @@ DataGridRaw.propTypes = {
|
|
|
71
75
|
* If `true`, the pageSize is calculated according to the container size and the max number of rows to avoid rendering a vertical scroll bar.
|
|
72
76
|
* @default false
|
|
73
77
|
*/
|
|
74
|
-
autoPageSize:
|
|
75
|
-
if (props.autoHeight && props.autoPageSize) {
|
|
76
|
-
return new Error(['MUI: `<DataGrid autoPageSize={true} autoHeight={true} />` are not valid props.', 'You can not use both the `autoPageSize` and `autoHeight` props at the same time because `autoHeight` scales the height of the Data Grid according to the `pageSize`.', '', 'Please remove one of these two props.'].join('\n'));
|
|
77
|
-
}
|
|
78
|
-
return null;
|
|
79
|
-
}),
|
|
78
|
+
autoPageSize: _propTypes.default.bool,
|
|
80
79
|
/**
|
|
81
80
|
* Controls the modes of the cells.
|
|
82
81
|
*/
|
|
@@ -107,15 +106,9 @@ DataGridRaw.propTypes = {
|
|
|
107
106
|
*/
|
|
108
107
|
columnHeaderHeight: _propTypes.default.number,
|
|
109
108
|
/**
|
|
110
|
-
* Set of columns of type [[GridColDef
|
|
109
|
+
* Set of columns of type [[GridColDef]][].
|
|
111
110
|
*/
|
|
112
|
-
columns:
|
|
113
|
-
// @ts-ignore because otherwise `build:api` doesn't work
|
|
114
|
-
if (props.columns && props.columns.some(column => column.resizable)) {
|
|
115
|
-
return new Error([`MUI: \`column.resizable = true\` is not a valid prop.`, 'Column resizing is not available in the MIT version.', '', 'You need to upgrade to DataGridPro or DataGridPremium component to unlock this feature.'].join('\n'));
|
|
116
|
-
}
|
|
117
|
-
return null;
|
|
118
|
-
}),
|
|
111
|
+
columns: _propTypes.default.arrayOf(_propTypes.default.object).isRequired,
|
|
119
112
|
/**
|
|
120
113
|
* Number of rows from the `columnBuffer` that can be visible before a new slice is rendered.
|
|
121
114
|
* @default 3
|
|
@@ -560,12 +553,7 @@ DataGridRaw.propTypes = {
|
|
|
560
553
|
label: _propTypes.default.string.isRequired,
|
|
561
554
|
value: _propTypes.default.number.isRequired
|
|
562
555
|
})]).isRequired),
|
|
563
|
-
pagination:
|
|
564
|
-
if (props.pagination === false) {
|
|
565
|
-
return new Error(['MUI: `<DataGrid pagination={false} />` is not a valid prop.', 'Infinite scrolling is not available in the MIT version.', '', 'You need to upgrade to DataGridPro or DataGridPremium component to disable the pagination.'].join('\n'));
|
|
566
|
-
}
|
|
567
|
-
return null;
|
|
568
|
-
},
|
|
556
|
+
pagination: _propTypes.default.oneOf([true]),
|
|
569
557
|
/**
|
|
570
558
|
* Pagination can be processed on the server or client-side.
|
|
571
559
|
* Set it to 'client' if you would like to handle the pagination on the client-side.
|
|
@@ -19,7 +19,7 @@ function throwIfNotDateObject({
|
|
|
19
19
|
field
|
|
20
20
|
}) {
|
|
21
21
|
if (!(value instanceof Date)) {
|
|
22
|
-
throw new Error([`MUI: \`${columnType}\` column type only accepts \`Date\` objects as values.`, 'Use `valueGetter` to transform the value into a `Date` object.', `Row ID: ${rowId}, field: "${field}".`].join('\n'));
|
|
22
|
+
throw new Error([`MUI X: \`${columnType}\` column type only accepts \`Date\` objects as values.`, 'Use `valueGetter` to transform the value into a `Date` object.', `Row ID: ${rowId}, field: "${field}".`].join('\n'));
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
function gridDateFormatter({
|
|
@@ -65,7 +65,7 @@ const GridPagination = exports.GridPagination = /*#__PURE__*/React.forwardRef(fu
|
|
|
65
65
|
const warnedOnceMissingInPageSizeOptions = React.useRef(false);
|
|
66
66
|
const pageSize = rootProps.paginationModel?.pageSize ?? paginationModel.pageSize;
|
|
67
67
|
if (!warnedOnceMissingInPageSizeOptions.current && !rootProps.autoPageSize && !isPageSizeIncludedInPageSizeOptions(pageSize)) {
|
|
68
|
-
console.warn([`MUI: The page size \`${paginationModel.pageSize}\` is not preset in the \`pageSizeOptions
|
|
68
|
+
console.warn([`MUI X: The page size \`${paginationModel.pageSize}\` is not preset in the \`pageSizeOptions\`.`, `Add it to show the pagination select.`].join('\n'));
|
|
69
69
|
warnedOnceMissingInPageSizeOptions.current = true;
|
|
70
70
|
}
|
|
71
71
|
}
|
|
@@ -44,7 +44,7 @@ function GridActionsCell(props) {
|
|
|
44
44
|
const buttonId = (0, _utils.unstable_useId)();
|
|
45
45
|
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
46
46
|
if (!hasActions(colDef)) {
|
|
47
|
-
throw new Error('MUI: Missing the `getActions` property in the `GridColDef`.');
|
|
47
|
+
throw new Error('MUI X: Missing the `getActions` property in the `GridColDef`.');
|
|
48
48
|
}
|
|
49
49
|
const options = colDef.getActions(apiRef.current.getRowParams(id));
|
|
50
50
|
const iconButtons = options.filter(option => !option.props.showInMenu);
|
|
@@ -283,7 +283,7 @@ const GridCell = exports.GridCell = /*#__PURE__*/React.forwardRef((props, ref) =
|
|
|
283
283
|
return;
|
|
284
284
|
}
|
|
285
285
|
if (!warnedOnce) {
|
|
286
|
-
console.warn([`MUI: The cell with id=${rowId} and field=${field} received focus.`, `According to the state, the focus should be at id=${focusedCell?.id}, field=${focusedCell?.field}.`, "Not syncing the state may cause unwanted behaviors since the `cellFocusIn` event won't be fired.", 'Call `fireEvent.mouseUp` before the `fireEvent.click` to sync the focus with the state.'].join('\n'));
|
|
286
|
+
console.warn([`MUI X: The cell with id=${rowId} and field=${field} received focus.`, `According to the state, the focus should be at id=${focusedCell?.id}, field=${focusedCell?.field}.`, "Not syncing the state may cause unwanted behaviors since the `cellFocusIn` event won't be fired.", 'Call `fireEvent.mouseUp` before the `fireEvent.click` to sync the focus with the state.'].join('\n'));
|
|
287
287
|
warnedOnce = true;
|
|
288
288
|
}
|
|
289
289
|
};
|
|
@@ -552,7 +552,7 @@ const GridCellV7 = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
552
552
|
return;
|
|
553
553
|
}
|
|
554
554
|
if (!warnedOnce) {
|
|
555
|
-
console.warn([`MUI: The cell with id=${rowId} and field=${field} received focus.`, `According to the state, the focus should be at id=${focusedCell?.id}, field=${focusedCell?.field}.`, "Not syncing the state may cause unwanted behaviors since the `cellFocusIn` event won't be fired.", 'Call `fireEvent.mouseUp` before the `fireEvent.click` to sync the focus with the state.'].join('\n'));
|
|
555
|
+
console.warn([`MUI X: The cell with id=${rowId} and field=${field} received focus.`, `According to the state, the focus should be at id=${focusedCell?.id}, field=${focusedCell?.field}.`, "Not syncing the state may cause unwanted behaviors since the `cellFocusIn` event won't be fired.", 'Call `fireEvent.mouseUp` before the `fireEvent.click` to sync the focus with the state.'].join('\n'));
|
|
556
556
|
warnedOnce = true;
|
|
557
557
|
}
|
|
558
558
|
};
|
|
@@ -99,7 +99,7 @@ const getLogicOperatorLocaleKey = logicOperator => {
|
|
|
99
99
|
case _gridFilterItem.GridLogicOperator.Or:
|
|
100
100
|
return 'filterPanelOperatorOr';
|
|
101
101
|
default:
|
|
102
|
-
throw new Error('MUI: Invalid `logicOperator` property in the `GridFilterPanel`.');
|
|
102
|
+
throw new Error('MUI X: Invalid `logicOperator` property in the `GridFilterPanel`.');
|
|
103
103
|
}
|
|
104
104
|
};
|
|
105
105
|
const getColumnLabel = col => col.headerName || col.field;
|
|
@@ -132,12 +132,16 @@ process.env.NODE_ENV !== "production" ? GridToolbarQuickFilter.propTypes = {
|
|
|
132
132
|
* Function responsible for formatting values of quick filter in a string when the model is modified
|
|
133
133
|
* @param {any[]} values The new values passed to the quick filter model
|
|
134
134
|
* @returns {string} The string to display in the text field
|
|
135
|
+
* @default (values: string[]) => values.join(' ')
|
|
135
136
|
*/
|
|
136
137
|
quickFilterFormatter: _propTypes.default.func,
|
|
137
138
|
/**
|
|
138
139
|
* Function responsible for parsing text input in an array of independent values for quick filtering.
|
|
139
140
|
* @param {string} input The value entered by the user
|
|
140
141
|
* @returns {any[]} The array of value on which quick filter is applied
|
|
142
|
+
* @default (searchText: string) => searchText
|
|
143
|
+
* .split(' ')
|
|
144
|
+
* .filter((word) => word !== '')
|
|
141
145
|
*/
|
|
142
146
|
quickFilterParser: _propTypes.default.func
|
|
143
147
|
} : void 0;
|
|
@@ -21,13 +21,13 @@ const LOG_LEVELS = ['debug', 'info', 'warn', 'error'];
|
|
|
21
21
|
function getAppender(name, logLevel, appender = console) {
|
|
22
22
|
const minLogLevelIdx = LOG_LEVELS.indexOf(logLevel);
|
|
23
23
|
if (minLogLevelIdx === -1) {
|
|
24
|
-
throw new Error(`MUI: Log level ${logLevel} not recognized.`);
|
|
24
|
+
throw new Error(`MUI X: Log level ${logLevel} not recognized.`);
|
|
25
25
|
}
|
|
26
26
|
const logger = LOG_LEVELS.reduce((loggerObj, method, idx) => {
|
|
27
27
|
if (idx >= minLogLevelIdx) {
|
|
28
28
|
loggerObj[method] = (...args) => {
|
|
29
29
|
const [message, ...other] = args;
|
|
30
|
-
appender[method](`MUI: ${name} - ${message}`, ...other);
|
|
30
|
+
appender[method](`MUI X: ${name} - ${message}`, ...other);
|
|
31
31
|
};
|
|
32
32
|
} else {
|
|
33
33
|
loggerObj[method] = noop;
|
|
@@ -10,7 +10,7 @@ var _utils = require("../../../utils/utils");
|
|
|
10
10
|
const recurrentUnwrapGroupingColumnModel = (columnGroupNode, parents, unwrappedGroupingModelToComplete) => {
|
|
11
11
|
if ((0, _gridColumnGrouping.isLeaf)(columnGroupNode)) {
|
|
12
12
|
if (unwrappedGroupingModelToComplete[columnGroupNode.field] !== undefined) {
|
|
13
|
-
throw new Error([`MUI: columnGroupingModel contains duplicated field`, `column field ${columnGroupNode.field} occurs two times in the grouping model:`, `- ${unwrappedGroupingModelToComplete[columnGroupNode.field].join(' > ')}`, `- ${parents.join(' > ')}`].join('\n'));
|
|
13
|
+
throw new Error([`MUI X: columnGroupingModel contains duplicated field`, `column field ${columnGroupNode.field} occurs two times in the grouping model:`, `- ${unwrappedGroupingModelToComplete[columnGroupNode.field].join(' > ')}`, `- ${parents.join(' > ')}`].join('\n'));
|
|
14
14
|
}
|
|
15
15
|
unwrappedGroupingModelToComplete[columnGroupNode.field] = parents;
|
|
16
16
|
return;
|
|
@@ -29,17 +29,19 @@ const createGroupLookup = columnGroupingModel => {
|
|
|
29
29
|
} = node,
|
|
30
30
|
other = (0, _objectWithoutPropertiesLoose2.default)(node, _excluded);
|
|
31
31
|
if (!groupId) {
|
|
32
|
-
throw new Error('MUI: An element of the columnGroupingModel does not have either `field` or `groupId`.');
|
|
32
|
+
throw new Error('MUI X: An element of the columnGroupingModel does not have either `field` or `groupId`.');
|
|
33
33
|
}
|
|
34
|
-
if (
|
|
35
|
-
|
|
34
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
35
|
+
if (!children) {
|
|
36
|
+
console.warn(`MUI X: group groupId=${groupId} has no children.`);
|
|
37
|
+
}
|
|
36
38
|
}
|
|
37
39
|
const groupParam = (0, _extends2.default)({}, other, {
|
|
38
40
|
groupId
|
|
39
41
|
});
|
|
40
42
|
const subTreeLookup = createGroupLookup(children);
|
|
41
43
|
if (subTreeLookup[groupId] !== undefined || groupLookup[groupId] !== undefined) {
|
|
42
|
-
throw new Error(`MUI: The groupId ${groupId} is used multiple times in the columnGroupingModel.`);
|
|
44
|
+
throw new Error(`MUI X: The groupId ${groupId} is used multiple times in the columnGroupingModel.`);
|
|
43
45
|
}
|
|
44
46
|
groupLookup = (0, _extends2.default)({}, groupLookup, subTreeLookup, {
|
|
45
47
|
[groupId]: groupParam
|
|
@@ -23,7 +23,7 @@ const _excluded = ["id", "field"],
|
|
|
23
23
|
_excluded2 = ["id", "field"];
|
|
24
24
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
25
25
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
26
|
-
const missingOnProcessRowUpdateErrorWarning = (0, _warning.buildWarning)(['MUI: A call to `processRowUpdate` threw an error which was not handled because `onProcessRowUpdateError` is missing.', 'To handle the error pass a callback to the `onProcessRowUpdateError` prop, e.g. `<DataGrid onProcessRowUpdateError={(error) => ...} />`.', 'For more detail, see
|
|
26
|
+
const missingOnProcessRowUpdateErrorWarning = (0, _warning.buildWarning)(['MUI X: A call to `processRowUpdate` threw an error which was not handled because `onProcessRowUpdateError` is missing.', 'To handle the error pass a callback to the `onProcessRowUpdateError` prop, e.g. `<DataGrid onProcessRowUpdateError={(error) => ...} />`.', 'For more detail, see https://mui.com/x/react-data-grid/editing/#server-side-persistence.'], 'error');
|
|
27
27
|
const useGridCellEditing = (apiRef, props) => {
|
|
28
28
|
const [cellModesModel, setCellModesModel] = React.useState({});
|
|
29
29
|
const cellModesModelRef = React.useRef(cellModesModel);
|
|
@@ -42,12 +42,12 @@ const useGridCellEditing = (apiRef, props) => {
|
|
|
42
42
|
const throwIfNotEditable = React.useCallback((id, field) => {
|
|
43
43
|
const params = apiRef.current.getCellParams(id, field);
|
|
44
44
|
if (!apiRef.current.isCellEditable(params)) {
|
|
45
|
-
throw new Error(`MUI: The cell with id=${id} and field=${field} is not editable.`);
|
|
45
|
+
throw new Error(`MUI X: The cell with id=${id} and field=${field} is not editable.`);
|
|
46
46
|
}
|
|
47
47
|
}, [apiRef]);
|
|
48
48
|
const throwIfNotInMode = React.useCallback((id, field, mode) => {
|
|
49
49
|
if (apiRef.current.getCellMode(id, field) !== mode) {
|
|
50
|
-
throw new Error(`MUI: The cell with id=${id} and field=${field} is not in ${mode} mode.`);
|
|
50
|
+
throw new Error(`MUI X: The cell with id=${id} and field=${field} is not in ${mode} mode.`);
|
|
51
51
|
}
|
|
52
52
|
}, [apiRef]);
|
|
53
53
|
const handleCellDoubleClick = React.useCallback((params, event) => {
|
|
@@ -311,7 +311,7 @@ const useGridCellEditing = (apiRef, props) => {
|
|
|
311
311
|
});
|
|
312
312
|
if (onProcessRowUpdateError) {
|
|
313
313
|
onProcessRowUpdateError(errorThrown);
|
|
314
|
-
} else {
|
|
314
|
+
} else if (process.env.NODE_ENV !== 'production') {
|
|
315
315
|
missingOnProcessRowUpdateErrorWarning();
|
|
316
316
|
}
|
|
317
317
|
};
|