@mui/x-data-grid 7.0.0-beta.0 → 7.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/CHANGELOG.md +247 -0
  2. package/DataGrid/useDataGridComponent.js +1 -1
  3. package/colDef/gridBooleanColDef.js +3 -6
  4. package/colDef/gridCheckboxSelectionColDef.js +4 -3
  5. package/colDef/gridDateColDef.d.ts +3 -4
  6. package/colDef/gridDateColDef.js +10 -16
  7. package/colDef/gridNumericColDef.js +1 -3
  8. package/colDef/gridSingleSelectColDef.js +7 -12
  9. package/components/cell/GridEditInputCell.js +1 -1
  10. package/components/columnsManagement/GridColumnsManagement.d.ts +7 -0
  11. package/components/columnsManagement/GridColumnsManagement.js +26 -21
  12. package/hooks/features/columns/useGridColumnSpanning.js +3 -1
  13. package/hooks/features/editing/useGridCellEditing.js +2 -5
  14. package/hooks/features/editing/useGridRowEditing.js +2 -5
  15. package/hooks/features/filter/gridFilterUtils.js +1 -1
  16. package/hooks/features/rows/useGridParamsApi.d.ts +1 -2
  17. package/hooks/features/rows/useGridParamsApi.js +14 -49
  18. package/index.js +1 -1
  19. package/legacy/DataGrid/useDataGridComponent.js +1 -1
  20. package/legacy/colDef/gridBooleanColDef.js +3 -5
  21. package/legacy/colDef/gridCheckboxSelectionColDef.js +4 -3
  22. package/legacy/colDef/gridDateColDef.js +10 -14
  23. package/legacy/colDef/gridNumericColDef.js +1 -2
  24. package/legacy/colDef/gridSingleSelectColDef.js +7 -10
  25. package/legacy/components/cell/GridEditInputCell.js +1 -1
  26. package/legacy/components/columnsManagement/GridColumnsManagement.js +38 -31
  27. package/legacy/hooks/features/columns/useGridColumnSpanning.js +3 -1
  28. package/legacy/hooks/features/editing/useGridCellEditing.js +2 -5
  29. package/legacy/hooks/features/editing/useGridRowEditing.js +2 -5
  30. package/legacy/hooks/features/filter/gridFilterUtils.js +2 -2
  31. package/legacy/hooks/features/rows/useGridParamsApi.js +14 -47
  32. package/legacy/index.js +1 -1
  33. package/legacy/locales/heIL.js +7 -8
  34. package/locales/heIL.js +7 -8
  35. package/models/colDef/gridColDef.d.ts +11 -17
  36. package/models/colDef/index.d.ts +1 -1
  37. package/models/params/gridCellParams.d.ts +0 -26
  38. package/modern/DataGrid/useDataGridComponent.js +1 -1
  39. package/modern/colDef/gridBooleanColDef.js +3 -6
  40. package/modern/colDef/gridCheckboxSelectionColDef.js +4 -3
  41. package/modern/colDef/gridDateColDef.js +10 -16
  42. package/modern/colDef/gridNumericColDef.js +1 -3
  43. package/modern/colDef/gridSingleSelectColDef.js +7 -12
  44. package/modern/components/cell/GridEditInputCell.js +1 -1
  45. package/modern/components/columnsManagement/GridColumnsManagement.js +26 -21
  46. package/modern/hooks/features/columns/useGridColumnSpanning.js +3 -1
  47. package/modern/hooks/features/editing/useGridCellEditing.js +2 -5
  48. package/modern/hooks/features/editing/useGridRowEditing.js +2 -5
  49. package/modern/hooks/features/filter/gridFilterUtils.js +1 -1
  50. package/modern/hooks/features/rows/useGridParamsApi.js +14 -47
  51. package/modern/index.js +1 -1
  52. package/modern/locales/heIL.js +7 -8
  53. package/node/DataGrid/useDataGridComponent.js +1 -1
  54. package/node/colDef/gridBooleanColDef.js +3 -6
  55. package/node/colDef/gridCheckboxSelectionColDef.js +4 -3
  56. package/node/colDef/gridDateColDef.js +13 -19
  57. package/node/colDef/gridNumericColDef.js +1 -3
  58. package/node/colDef/gridSingleSelectColDef.js +7 -12
  59. package/node/components/cell/GridEditInputCell.js +1 -1
  60. package/node/components/columnsManagement/GridColumnsManagement.js +26 -21
  61. package/node/hooks/features/columns/useGridColumnSpanning.js +3 -1
  62. package/node/hooks/features/editing/useGridCellEditing.js +2 -5
  63. package/node/hooks/features/editing/useGridRowEditing.js +2 -5
  64. package/node/hooks/features/filter/gridFilterUtils.js +1 -1
  65. package/node/hooks/features/rows/useGridParamsApi.js +14 -47
  66. package/node/index.js +1 -1
  67. package/node/locales/heIL.js +7 -8
  68. package/package.json +4 -4
@@ -1,6 +1,5 @@
1
1
  import * as React from 'react';
2
2
  import { getGridCellElement, getGridColumnHeaderElement, getGridRowElement } from '../../../utils/domUtils';
3
- import { GRID_ID_AUTOGENERATED } from './gridRowsUtils';
4
3
  import { useGridApiMethod } from '../../utils/useGridApiMethod';
5
4
  import { gridFocusCellSelector, gridTabIndexCellSelector } from '../focus/gridFocusStateSelector';
6
5
  export class MissingRowIdError extends Error {}
@@ -13,10 +12,7 @@ export class MissingRowIdError extends Error {}
13
12
  * TODO: Impossible priority - useGridEditing also needs to be after useGridParamsApi
14
13
  * TODO: Impossible priority - useGridFocus also needs to be after useGridParamsApi
15
14
  */
16
- export function useGridParamsApi(apiRef, props) {
17
- const {
18
- getRowId
19
- } = props;
15
+ export function useGridParamsApi(apiRef) {
20
16
  const getColumnHeaderParams = React.useCallback(field => ({
21
17
  field,
22
18
  colDef: apiRef.current.getColumn(field)
@@ -33,28 +29,6 @@ export function useGridParamsApi(apiRef, props) {
33
29
  };
34
30
  return params;
35
31
  }, [apiRef]);
36
- const getBaseCellParams = React.useCallback((id, field) => {
37
- const row = apiRef.current.getRow(id);
38
- const rowNode = apiRef.current.getRowNode(id);
39
- if (!row || !rowNode) {
40
- throw new MissingRowIdError(`No row with id #${id} found`);
41
- }
42
- const cellFocus = gridFocusCellSelector(apiRef);
43
- const cellTabIndex = gridTabIndexCellSelector(apiRef);
44
- const params = {
45
- id,
46
- field,
47
- row,
48
- rowNode,
49
- value: row[field],
50
- colDef: apiRef.current.getColumn(field),
51
- cellMode: apiRef.current.getCellMode(id, field),
52
- api: apiRef.current,
53
- hasFocus: cellFocus !== null && cellFocus.field === field && cellFocus.id === id,
54
- tabIndex: cellTabIndex && cellTabIndex.field === field && cellTabIndex.id === id ? 0 : -1
55
- };
56
- return params;
57
- }, [apiRef]);
58
32
  const getCellParams = React.useCallback((id, field) => {
59
33
  const colDef = apiRef.current.getColumn(field);
60
34
  const value = apiRef.current.getCellValue(id, field);
@@ -79,12 +53,7 @@ export function useGridParamsApi(apiRef, props) {
79
53
  isEditable: false
80
54
  };
81
55
  if (colDef && colDef.valueFormatter) {
82
- params.formattedValue = colDef.valueFormatter({
83
- id,
84
- field: params.field,
85
- value: params.value,
86
- api: apiRef.current
87
- });
56
+ params.formattedValue = colDef.valueFormatter(value, row, colDef, apiRef);
88
57
  }
89
58
  params.isEditable = colDef && apiRef.current.isCellEditable(params);
90
59
  return params;
@@ -98,32 +67,28 @@ export function useGridParamsApi(apiRef, props) {
98
67
  }
99
68
  return rowModel[field];
100
69
  }
101
- return colDef.valueGetter(getBaseCellParams(id, field));
102
- }, [apiRef, getBaseCellParams]);
70
+ const row = apiRef.current.getRow(id);
71
+ if (!row) {
72
+ throw new MissingRowIdError(`No row with id #${id} found`);
73
+ }
74
+ const value = row[colDef.field];
75
+ return colDef.valueGetter(value, row, colDef, apiRef);
76
+ }, [apiRef]);
103
77
  const getRowValue = React.useCallback((row, colDef) => {
104
- var _getRowId;
105
- const id = GRID_ID_AUTOGENERATED in row ? row[GRID_ID_AUTOGENERATED] : (_getRowId = getRowId == null ? void 0 : getRowId(row)) != null ? _getRowId : row.id;
106
78
  const field = colDef.field;
107
79
  if (!colDef || !colDef.valueGetter) {
108
80
  return row[field];
109
81
  }
110
- return colDef.valueGetter(getBaseCellParams(id, field));
111
- }, [getBaseCellParams, getRowId]);
82
+ const value = row[colDef.field];
83
+ return colDef.valueGetter(value, row, colDef, apiRef);
84
+ }, [apiRef]);
112
85
  const getRowFormattedValue = React.useCallback((row, colDef) => {
113
- var _ref;
114
86
  const value = getRowValue(row, colDef);
115
87
  if (!colDef || !colDef.valueFormatter) {
116
88
  return value;
117
89
  }
118
- const id = (_ref = getRowId ? getRowId(row) : row.id) != null ? _ref : row[GRID_ID_AUTOGENERATED];
119
- const field = colDef.field;
120
- return colDef.valueFormatter({
121
- id,
122
- field,
123
- value,
124
- api: apiRef.current
125
- });
126
- }, [apiRef, getRowId, getRowValue]);
90
+ return colDef.valueFormatter(value, row, colDef, apiRef);
91
+ }, [apiRef, getRowValue]);
127
92
  const getColumnHeaderElement = React.useCallback(field => {
128
93
  if (!apiRef.current.rootElementRef.current) {
129
94
  return null;
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid v7.0.0-beta.0
2
+ * @mui/x-data-grid v7.0.0-beta.1
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -57,7 +57,7 @@ export var useDataGridComponent = function useDataGridComponent(inputApiRef, pro
57
57
  useGridRowSelection(apiRef, props);
58
58
  useGridColumns(apiRef, props);
59
59
  useGridRows(apiRef, props);
60
- useGridParamsApi(apiRef, props);
60
+ useGridParamsApi(apiRef);
61
61
  useGridColumnSpanning(apiRef);
62
62
  useGridColumnGrouping(apiRef, props);
63
63
  useGridEditing(apiRef, props);
@@ -4,11 +4,9 @@ import { renderBooleanCell } from '../components/cell/GridBooleanCell';
4
4
  import { renderEditBooleanCell } from '../components/cell/GridEditBooleanCell';
5
5
  import { gridNumberComparator } from '../hooks/features/sorting/gridSortingUtils';
6
6
  import { getGridBooleanOperators } from './gridBooleanOperators';
7
- function gridBooleanFormatter(_ref) {
8
- var value = _ref.value,
9
- api = _ref.api;
10
- return value ? api.getLocaleText('booleanCellTrueLabel') : api.getLocaleText('booleanCellFalseLabel');
11
- }
7
+ var gridBooleanFormatter = function gridBooleanFormatter(value, row, column, apiRef) {
8
+ return value ? apiRef.current.getLocaleText('booleanCellTrueLabel') : apiRef.current.getLocaleText('booleanCellFalseLabel');
9
+ };
12
10
  var stringToBoolean = function stringToBoolean(value) {
13
11
  switch (value.toLowerCase().trim()) {
14
12
  case 'true':
@@ -19,9 +19,10 @@ export var GRID_CHECKBOX_SELECTION_COL_DEF = _extends({}, GRID_BOOLEAN_COL_DEF,
19
19
  disableReorder: true,
20
20
  disableExport: true,
21
21
  getApplyQuickFilterFn: undefined,
22
- valueGetter: function valueGetter(params) {
23
- var selectionLookup = selectedIdsLookupSelector(params.api.state, params.api.instanceId);
24
- return selectionLookup[params.id] !== undefined;
22
+ valueGetter: function valueGetter(value, row, column, apiRef) {
23
+ var selectionLookup = selectedIdsLookupSelector(apiRef);
24
+ var rowId = apiRef.current.getRowId(row);
25
+ return selectionLookup[rowId] !== undefined;
25
26
  },
26
27
  renderHeader: function renderHeader(params) {
27
28
  return /*#__PURE__*/_jsx(GridHeaderCheckbox, _extends({}, params));
@@ -12,36 +12,32 @@ function throwIfNotDateObject(_ref) {
12
12
  throw new Error(["MUI X: `".concat(columnType, "` column type only accepts `Date` objects as values."), 'Use `valueGetter` to transform the value into a `Date` object.', "Row ID: ".concat(rowId, ", field: \"").concat(field, "\".")].join('\n'));
13
13
  }
14
14
  }
15
- export function gridDateFormatter(_ref2) {
16
- var value = _ref2.value,
17
- field = _ref2.field,
18
- id = _ref2.id;
15
+ export var gridDateFormatter = function gridDateFormatter(value, row, column, apiRef) {
19
16
  if (!value) {
20
17
  return '';
21
18
  }
19
+ var rowId = apiRef.current.getRowId(row);
22
20
  throwIfNotDateObject({
23
21
  value: value,
24
22
  columnType: 'date',
25
- rowId: id,
26
- field: field
23
+ rowId: rowId,
24
+ field: column.field
27
25
  });
28
26
  return value.toLocaleDateString();
29
- }
30
- export function gridDateTimeFormatter(_ref3) {
31
- var value = _ref3.value,
32
- field = _ref3.field,
33
- id = _ref3.id;
27
+ };
28
+ export var gridDateTimeFormatter = function gridDateTimeFormatter(value, row, column, apiRef) {
34
29
  if (!value) {
35
30
  return '';
36
31
  }
32
+ var rowId = apiRef.current.getRowId(row);
37
33
  throwIfNotDateObject({
38
34
  value: value,
39
35
  columnType: 'dateTime',
40
- rowId: id,
41
- field: field
36
+ rowId: rowId,
37
+ field: column.field
42
38
  });
43
39
  return value.toLocaleString();
44
- }
40
+ };
45
41
  export var GRID_DATE_COL_DEF = _extends({}, GRID_STRING_COL_DEF, {
46
42
  type: 'date',
47
43
  sortComparator: gridDateComparator,
@@ -11,8 +11,7 @@ export var GRID_NUMERIC_COL_DEF = _extends({}, GRID_STRING_COL_DEF, {
11
11
  valueParser: function valueParser(value) {
12
12
  return value === '' ? null : Number(value);
13
13
  },
14
- valueFormatter: function valueFormatter(_ref) {
15
- var value = _ref.value;
14
+ valueFormatter: function valueFormatter(value) {
16
15
  return isNumber(value) ? value.toLocaleString() : value || '';
17
16
  },
18
17
  filterOperators: getGridNumericOperators(),
@@ -18,18 +18,15 @@ export var GRID_SINGLE_SELECT_COL_DEF = _extends({}, GRID_STRING_COL_DEF, {
18
18
  type: 'singleSelect',
19
19
  getOptionLabel: defaultGetOptionLabel,
20
20
  getOptionValue: defaultGetOptionValue,
21
- valueFormatter: function valueFormatter(params) {
22
- var id = params.id,
23
- field = params.field,
24
- value = params.value,
25
- api = params.api;
26
- var colDef = params.api.getColumn(field);
21
+ valueFormatter: function valueFormatter(value, row, colDef, apiRef) {
22
+ // const { id, field, value, api } = params;
23
+ var rowId = apiRef.current.getRowId(row);
27
24
  if (!isSingleSelectColDef(colDef)) {
28
25
  return '';
29
26
  }
30
27
  var valueOptions = getValueOptions(colDef, {
31
- id: id,
32
- row: id ? api.getRow(id) : null
28
+ id: rowId,
29
+ row: row
33
30
  });
34
31
  if (value == null) {
35
32
  return '';
@@ -48,8 +45,8 @@ export var GRID_SINGLE_SELECT_COL_DEF = _extends({}, GRID_STRING_COL_DEF, {
48
45
  renderEditCell: renderEditSingleSelectCell,
49
46
  filterOperators: getGridSingleSelectOperators(),
50
47
  // @ts-ignore
51
- pastedValueParser: function pastedValueParser(value, params) {
52
- var colDef = params.colDef;
48
+ pastedValueParser: function pastedValueParser(value, row, column) {
49
+ var colDef = column;
53
50
  var valueOptions = getValueOptions(colDef) || [];
54
51
  var getOptionValue = colDef.getOptionValue;
55
52
  var valueOption = valueOptions.find(function (option) {
@@ -80,7 +80,7 @@ var GridEditInputCell = /*#__PURE__*/React.forwardRef(function (props, ref) {
80
80
  column = apiRef.current.getColumn(field);
81
81
  parsedValue = newValue;
82
82
  if (column.valueParser) {
83
- parsedValue = column.valueParser(newValue, apiRef.current.getCellParams(id, field));
83
+ parsedValue = column.valueParser(newValue, apiRef.current.getRow(id), column, apiRef);
84
84
  }
85
85
  setValueState(parsedValue);
86
86
  apiRef.current.setEditCellValue({
@@ -1,4 +1,3 @@
1
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
1
  import _extends from "@babel/runtime/helpers/esm/extends";
3
2
  import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
4
3
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
@@ -52,6 +51,8 @@ function GridColumnsManagement(props) {
52
51
  disableShowHideToggle = _props$disableShowHid === void 0 ? false : _props$disableShowHid,
53
52
  _props$disableResetBu = props.disableResetButton,
54
53
  disableResetButton = _props$disableResetBu === void 0 ? false : _props$disableResetBu,
54
+ _props$toggleAllMode = props.toggleAllMode,
55
+ toggleAllMode = _props$toggleAllMode === void 0 ? 'all' : _props$toggleAllMode,
55
56
  getTogglableColumns = props.getTogglableColumns;
56
57
  var isResetDisabled = React.useMemo(function () {
57
58
  return checkColumnVisibilityModelsSame(columnVisibilityModel, initialColumnVisibilityModel);
@@ -75,11 +76,24 @@ function GridColumnsManagement(props) {
75
76
  field = _ref.name;
76
77
  apiRef.current.setColumnVisibility(field, columnVisibilityModel[field] === false);
77
78
  };
79
+ var currentColumns = React.useMemo(function () {
80
+ var togglableColumns = getTogglableColumns ? getTogglableColumns(sortedColumns) : null;
81
+ var togglableSortedColumns = togglableColumns ? sortedColumns.filter(function (_ref2) {
82
+ var field = _ref2.field;
83
+ return togglableColumns.includes(field);
84
+ }) : sortedColumns;
85
+ if (!searchValue) {
86
+ return togglableSortedColumns;
87
+ }
88
+ return togglableSortedColumns.filter(function (column) {
89
+ return searchPredicate(column, searchValue.toLowerCase());
90
+ });
91
+ }, [sortedColumns, searchValue, searchPredicate, getTogglableColumns]);
78
92
  var toggleAllColumns = React.useCallback(function (isVisible) {
79
93
  var currentModel = gridColumnVisibilityModelSelector(apiRef);
80
94
  var newModel = _extends({}, currentModel);
81
95
  var togglableColumns = getTogglableColumns ? getTogglableColumns(columns) : null;
82
- columns.forEach(function (col) {
96
+ (toggleAllMode === 'filteredOnly' ? currentColumns : columns).forEach(function (col) {
83
97
  if (col.hideable && (togglableColumns == null || togglableColumns.includes(col.field))) {
84
98
  if (isVisible) {
85
99
  // delete the key from the model instead of setting it to `true`
@@ -90,23 +104,10 @@ function GridColumnsManagement(props) {
90
104
  }
91
105
  });
92
106
  return apiRef.current.setColumnVisibilityModel(newModel);
93
- }, [apiRef, columns, getTogglableColumns]);
107
+ }, [apiRef, columns, getTogglableColumns, toggleAllMode, currentColumns]);
94
108
  var handleSearchValueChange = React.useCallback(function (event) {
95
109
  setSearchValue(event.target.value);
96
110
  }, []);
97
- var currentColumns = React.useMemo(function () {
98
- var togglableColumns = getTogglableColumns ? getTogglableColumns(sortedColumns) : null;
99
- var togglableSortedColumns = togglableColumns ? sortedColumns.filter(function (_ref2) {
100
- var field = _ref2.field;
101
- return togglableColumns.includes(field);
102
- }) : sortedColumns;
103
- if (!searchValue) {
104
- return togglableSortedColumns;
105
- }
106
- return togglableSortedColumns.filter(function (column) {
107
- return searchPredicate(column, searchValue.toLowerCase());
108
- });
109
- }, [sortedColumns, searchValue, searchPredicate, getTogglableColumns]);
110
111
  var hideableColumns = React.useMemo(function () {
111
112
  return currentColumns.filter(function (col) {
112
113
  return col.hideable;
@@ -194,12 +195,11 @@ function GridColumnsManagement(props) {
194
195
  onClick: function onClick() {
195
196
  return toggleAllColumns(!allHideableColumnsVisible);
196
197
  },
197
- name: apiRef.current.getLocaleText('columnsManagementShowHideAllText')
198
+ name: apiRef.current.getLocaleText('columnsManagementShowHideAllText'),
199
+ sx: {
200
+ p: 0.5
201
+ }
198
202
  }, (_rootProps$slotProps3 = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps3.baseCheckbox)),
199
- sx: _defineProperty({}, ".MuiFormControlLabel-label", {
200
- textTransform: 'uppercase',
201
- fontSize: '14px'
202
- }),
203
203
  label: apiRef.current.getLocaleText('columnsManagementShowHideAllText')
204
204
  }) : /*#__PURE__*/_jsx("span", {}), !disableResetButton ? /*#__PURE__*/_jsx(rootProps.slots.baseButton, _extends({
205
205
  onClick: function onClick() {
@@ -243,7 +243,14 @@ process.env.NODE_ENV !== "production" ? GridColumnsManagement.propTypes = {
243
243
  */
244
244
  getTogglableColumns: PropTypes.func,
245
245
  searchPredicate: PropTypes.func,
246
- sort: PropTypes.oneOf(['asc', 'desc'])
246
+ sort: PropTypes.oneOf(['asc', 'desc']),
247
+ /**
248
+ * Changes the behavior of the `Show/Hide All` toggle when the search field is used:
249
+ * - `all`: Will toggle all columns.
250
+ * - `filteredOnly`: Will only toggle columns that match the search criteria.
251
+ * @default 'all'
252
+ */
253
+ toggleAllMode: PropTypes.oneOf(['all', 'filteredOnly'])
247
254
  } : void 0;
248
255
  var GridColumnsManagementBody = styled('div', {
249
256
  name: 'MuiDataGrid',
@@ -251,8 +258,8 @@ var GridColumnsManagementBody = styled('div', {
251
258
  overridesResolver: function overridesResolver(props, styles) {
252
259
  return styles.columnsManagement;
253
260
  }
254
- })(function (_ref4) {
255
- var theme = _ref4.theme;
261
+ })(function (_ref3) {
262
+ var theme = _ref3.theme;
256
263
  return {
257
264
  padding: theme.spacing(0, 3, 1.5),
258
265
  display: 'flex',
@@ -269,8 +276,8 @@ var GridColumnsManagementHeader = styled('div', {
269
276
  overridesResolver: function overridesResolver(props, styles) {
270
277
  return styles.columnsManagementHeader;
271
278
  }
272
- })(function (_ref5) {
273
- var theme = _ref5.theme;
279
+ })(function (_ref4) {
280
+ var theme = _ref4.theme;
274
281
  return {
275
282
  padding: theme.spacing(1.5, 3)
276
283
  };
@@ -281,17 +288,17 @@ var GridColumnsManagementFooter = styled('div', {
281
288
  overridesResolver: function overridesResolver(props, styles) {
282
289
  return styles.columnsManagementFooter;
283
290
  }
284
- })(function (_ref6) {
285
- var theme = _ref6.theme;
291
+ })(function (_ref5) {
292
+ var theme = _ref5.theme;
286
293
  return {
287
- padding: theme.spacing(0.5, 1, 0.5, 2.4),
294
+ padding: theme.spacing(0.5, 1, 0.5, 3),
288
295
  display: 'flex',
289
296
  justifyContent: 'space-between',
290
297
  borderTop: "1px solid ".concat(theme.palette.divider)
291
298
  };
292
299
  });
293
- var GridColumnsManagementEmptyText = styled('div')(function (_ref7) {
294
- var theme = _ref7.theme;
300
+ var GridColumnsManagementEmptyText = styled('div')(function (_ref6) {
301
+ var theme = _ref6.theme;
295
302
  return {
296
303
  padding: theme.spacing(0.5, 0),
297
304
  color: theme.palette.grey[500]
@@ -57,7 +57,9 @@ function calculateCellColSpan(params) {
57
57
  columns = params.columns;
58
58
  var columnsLength = columns.length;
59
59
  var column = columns[columnIndex];
60
- var colSpan = typeof column.colSpan === 'function' ? column.colSpan(apiRef.current.getCellParams(rowId, column.field)) : column.colSpan;
60
+ var row = apiRef.current.getRow(rowId);
61
+ var value = apiRef.current.getRowValue(row, column);
62
+ var colSpan = typeof column.colSpan === 'function' ? column.colSpan(value, row, column, apiRef) : column.colSpan;
61
63
  if (!colSpan || colSpan === 1) {
62
64
  setCellColSpanInfo(lookup, rowId, columnIndex, {
63
65
  spannedByColSpan: false,
@@ -340,7 +340,7 @@ export var useGridCellEditing = function useGridCellEditing(apiRef, props) {
340
340
  row = apiRef.current.getRow(id);
341
341
  parsedValue = value;
342
342
  if (column.valueParser && !skipValueParser) {
343
- parsedValue = column.valueParser(value, apiRef.current.getCellParams(id, field));
343
+ parsedValue = column.valueParser(value, row, column, apiRef);
344
344
  }
345
345
  editingState = gridEditRowsStateSelector(apiRef.current.state);
346
346
  newProps = _extends({}, editingState[id][field], {
@@ -401,10 +401,7 @@ export var useGridCellEditing = function useGridCellEditing(apiRef, props) {
401
401
  return apiRef.current.getRow(id);
402
402
  }
403
403
  var value = editingState[id][field].value;
404
- return column.valueSetter ? column.valueSetter({
405
- value: value,
406
- row: row
407
- }) : _extends({}, row, _defineProperty({}, field, value));
404
+ return column.valueSetter ? column.valueSetter(value, row, column, apiRef) : _extends({}, row, _defineProperty({}, field, value));
408
405
  }, [apiRef]);
409
406
  var editingApi = {
410
407
  getCellMode: getCellMode,
@@ -406,7 +406,7 @@ export var useGridRowEditing = function useGridRowEditing(apiRef, props) {
406
406
  var row = apiRef.current.getRow(id);
407
407
  var parsedValue = value;
408
408
  if (column.valueParser && !skipValueParser) {
409
- parsedValue = column.valueParser(value, apiRef.current.getCellParams(id, field));
409
+ parsedValue = column.valueParser(value, row, column, apiRef);
410
410
  }
411
411
  var editingState = gridEditRowsStateSelector(apiRef.current.state);
412
412
  var newProps = _extends({}, editingState[id][field], {
@@ -514,10 +514,7 @@ export var useGridRowEditing = function useGridRowEditing(apiRef, props) {
514
514
  fieldProps = _ref4[1];
515
515
  var column = apiRef.current.getColumn(field);
516
516
  if (column.valueSetter) {
517
- rowUpdate = column.valueSetter({
518
- value: fieldProps.value,
519
- row: rowUpdate
520
- });
517
+ rowUpdate = column.valueSetter(fieldProps.value, rowUpdate, column, apiRef);
521
518
  } else {
522
519
  rowUpdate[field] = fieldProps.value;
523
520
  }
@@ -100,8 +100,8 @@ var getFilterCallbackFromItem = function getFilterCallbackFromItem(filterItem, a
100
100
  var _filterItem$value;
101
101
  var parser = column.valueParser;
102
102
  parsedValue = Array.isArray(filterItem.value) ? (_filterItem$value = filterItem.value) == null ? void 0 : _filterItem$value.map(function (x) {
103
- return parser(x);
104
- }) : parser(filterItem.value);
103
+ return parser(x, undefined, column, apiRef);
104
+ }) : parser(filterItem.value, undefined, column, apiRef);
105
105
  } else {
106
106
  parsedValue = filterItem.value;
107
107
  }
@@ -8,7 +8,6 @@ function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstruct
8
8
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
9
9
  import * as React from 'react';
10
10
  import { getGridCellElement, getGridColumnHeaderElement, getGridRowElement } from '../../../utils/domUtils';
11
- import { GRID_ID_AUTOGENERATED } from './gridRowsUtils';
12
11
  import { useGridApiMethod } from '../../utils/useGridApiMethod';
13
12
  import { gridFocusCellSelector, gridTabIndexCellSelector } from '../focus/gridFocusStateSelector';
14
13
  export var MissingRowIdError = /*#__PURE__*/function (_Error) {
@@ -28,8 +27,7 @@ export var MissingRowIdError = /*#__PURE__*/function (_Error) {
28
27
  * TODO: Impossible priority - useGridEditing also needs to be after useGridParamsApi
29
28
  * TODO: Impossible priority - useGridFocus also needs to be after useGridParamsApi
30
29
  */
31
- export function useGridParamsApi(apiRef, props) {
32
- var getRowId = props.getRowId;
30
+ export function useGridParamsApi(apiRef) {
33
31
  var getColumnHeaderParams = React.useCallback(function (field) {
34
32
  return {
35
33
  field: field,
@@ -48,28 +46,6 @@ export function useGridParamsApi(apiRef, props) {
48
46
  };
49
47
  return params;
50
48
  }, [apiRef]);
51
- var getBaseCellParams = React.useCallback(function (id, field) {
52
- var row = apiRef.current.getRow(id);
53
- var rowNode = apiRef.current.getRowNode(id);
54
- if (!row || !rowNode) {
55
- throw new MissingRowIdError("No row with id #".concat(id, " found"));
56
- }
57
- var cellFocus = gridFocusCellSelector(apiRef);
58
- var cellTabIndex = gridTabIndexCellSelector(apiRef);
59
- var params = {
60
- id: id,
61
- field: field,
62
- row: row,
63
- rowNode: rowNode,
64
- value: row[field],
65
- colDef: apiRef.current.getColumn(field),
66
- cellMode: apiRef.current.getCellMode(id, field),
67
- api: apiRef.current,
68
- hasFocus: cellFocus !== null && cellFocus.field === field && cellFocus.id === id,
69
- tabIndex: cellTabIndex && cellTabIndex.field === field && cellTabIndex.id === id ? 0 : -1
70
- };
71
- return params;
72
- }, [apiRef]);
73
49
  var getCellParams = React.useCallback(function (id, field) {
74
50
  var colDef = apiRef.current.getColumn(field);
75
51
  var value = apiRef.current.getCellValue(id, field);
@@ -94,12 +70,7 @@ export function useGridParamsApi(apiRef, props) {
94
70
  isEditable: false
95
71
  };
96
72
  if (colDef && colDef.valueFormatter) {
97
- params.formattedValue = colDef.valueFormatter({
98
- id: id,
99
- field: params.field,
100
- value: params.value,
101
- api: apiRef.current
102
- });
73
+ params.formattedValue = colDef.valueFormatter(value, row, colDef, apiRef);
103
74
  }
104
75
  params.isEditable = colDef && apiRef.current.isCellEditable(params);
105
76
  return params;
@@ -113,32 +84,28 @@ export function useGridParamsApi(apiRef, props) {
113
84
  }
114
85
  return rowModel[field];
115
86
  }
116
- return colDef.valueGetter(getBaseCellParams(id, field));
117
- }, [apiRef, getBaseCellParams]);
87
+ var row = apiRef.current.getRow(id);
88
+ if (!row) {
89
+ throw new MissingRowIdError("No row with id #".concat(id, " found"));
90
+ }
91
+ var value = row[colDef.field];
92
+ return colDef.valueGetter(value, row, colDef, apiRef);
93
+ }, [apiRef]);
118
94
  var getRowValue = React.useCallback(function (row, colDef) {
119
- var _getRowId;
120
- var id = GRID_ID_AUTOGENERATED in row ? row[GRID_ID_AUTOGENERATED] : (_getRowId = getRowId == null ? void 0 : getRowId(row)) != null ? _getRowId : row.id;
121
95
  var field = colDef.field;
122
96
  if (!colDef || !colDef.valueGetter) {
123
97
  return row[field];
124
98
  }
125
- return colDef.valueGetter(getBaseCellParams(id, field));
126
- }, [getBaseCellParams, getRowId]);
99
+ var value = row[colDef.field];
100
+ return colDef.valueGetter(value, row, colDef, apiRef);
101
+ }, [apiRef]);
127
102
  var getRowFormattedValue = React.useCallback(function (row, colDef) {
128
- var _ref;
129
103
  var value = getRowValue(row, colDef);
130
104
  if (!colDef || !colDef.valueFormatter) {
131
105
  return value;
132
106
  }
133
- var id = (_ref = getRowId ? getRowId(row) : row.id) != null ? _ref : row[GRID_ID_AUTOGENERATED];
134
- var field = colDef.field;
135
- return colDef.valueFormatter({
136
- id: id,
137
- field: field,
138
- value: value,
139
- api: apiRef.current
140
- });
141
- }, [apiRef, getRowId, getRowValue]);
107
+ return colDef.valueFormatter(value, row, colDef, apiRef);
108
+ }, [apiRef, getRowValue]);
142
109
  var getColumnHeaderElement = React.useCallback(function (field) {
143
110
  if (!apiRef.current.rootElementRef.current) {
144
111
  return null;
package/legacy/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid v7.0.0-beta.0
2
+ * @mui/x-data-grid v7.0.0-beta.1
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -61,13 +61,12 @@ var heILGrid = {
61
61
  filterOperatorIsEmpty: 'ריק',
62
62
  filterOperatorIsNotEmpty: 'אינו ריק',
63
63
  filterOperatorIsAnyOf: 'הוא אחד מ-',
64
- // 'filterOperator=': '=',
65
- // 'filterOperator!=': '!=',
66
- // 'filterOperator>': '>',
67
- // 'filterOperator>=': '>=',
68
- // 'filterOperator<': '<',
69
- // 'filterOperator<=': '<=',
70
-
64
+ 'filterOperator=': '=',
65
+ 'filterOperator!=': '!=',
66
+ 'filterOperator>': '>',
67
+ 'filterOperator>=': '>=',
68
+ 'filterOperator<': '<',
69
+ 'filterOperator<=': '<=',
71
70
  // Header filter operators text
72
71
  headerFilterOperatorContains: 'מכיל',
73
72
  headerFilterOperatorEquals: 'שווה',
@@ -145,7 +144,7 @@ var heILGrid = {
145
144
  return "\u05D4\u05E4\u05E1\u05E7 \u05DC\u05E7\u05D1\u05E5 \u05DC\u05E4\u05D9 ".concat(name);
146
145
  },
147
146
  // Master/detail
148
- // detailPanelToggle: 'Detail panel toggle',
147
+ detailPanelToggle: 'הצג/הסתר פרטים',
149
148
  expandDetailPanel: 'הרחב',
150
149
  collapseDetailPanel: 'כווץ',
151
150
  // Row reordering text
package/locales/heIL.js CHANGED
@@ -59,13 +59,12 @@ const heILGrid = {
59
59
  filterOperatorIsEmpty: 'ריק',
60
60
  filterOperatorIsNotEmpty: 'אינו ריק',
61
61
  filterOperatorIsAnyOf: 'הוא אחד מ-',
62
- // 'filterOperator=': '=',
63
- // 'filterOperator!=': '!=',
64
- // 'filterOperator>': '>',
65
- // 'filterOperator>=': '>=',
66
- // 'filterOperator<': '<',
67
- // 'filterOperator<=': '<=',
68
-
62
+ 'filterOperator=': '=',
63
+ 'filterOperator!=': '!=',
64
+ 'filterOperator>': '>',
65
+ 'filterOperator>=': '>=',
66
+ 'filterOperator<': '<',
67
+ 'filterOperator<=': '<=',
69
68
  // Header filter operators text
70
69
  headerFilterOperatorContains: 'מכיל',
71
70
  headerFilterOperatorEquals: 'שווה',
@@ -133,7 +132,7 @@ const heILGrid = {
133
132
  groupColumn: name => `קבץ לפי ${name}`,
134
133
  unGroupColumn: name => `הפסק לקבץ לפי ${name}`,
135
134
  // Master/detail
136
- // detailPanelToggle: 'Detail panel toggle',
135
+ detailPanelToggle: 'הצג/הסתר פרטים',
137
136
  expandDetailPanel: 'הרחב',
138
137
  collapseDetailPanel: 'כווץ',
139
138
  // Row reordering text